Compare commits
No commits in common. "master" and "pages" have entirely different histories.
|
|
@ -1,53 +0,0 @@
|
|||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# Virtual environments
|
||||
.venv/
|
||||
venv/
|
||||
ENV/
|
||||
|
||||
# IDE
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Testing
|
||||
.pytest_cache/
|
||||
.coverage
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
|
||||
# Local config
|
||||
.env
|
||||
*.local.yaml
|
||||
|
||||
# Documentation symlink (points to project-docs)
|
||||
docs
|
||||
76
CLAUDE.md
76
CLAUDE.md
|
|
@ -1,76 +0,0 @@
|
|||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
**Directory MapView** - A reimagined file picker dialog that displays the filesystem like a road map.
|
||||
|
||||
### Vision
|
||||
|
||||
Traditional file dialogs show directories as indented trees or lists. You never see what's beside you or the broader context. Directory MapView changes this:
|
||||
|
||||
- Directories appear as connected pathways/roads with labels
|
||||
- Current path highlighted like a navigation route
|
||||
- "You are here" marker at current location
|
||||
- Zoom out to see the big picture, zoom in for details
|
||||
- Pan around to explore like Google Maps
|
||||
|
||||
### Interaction Model
|
||||
|
||||
- **Mouse wheel**: Zoom in/out
|
||||
- **Left-click + drag**: Pan the view
|
||||
- **Click on directory**: Navigate there
|
||||
- **Hover**: Show directory info
|
||||
|
||||
## Development Commands
|
||||
|
||||
```bash
|
||||
# Install for development
|
||||
pip install -e ".[dev]"
|
||||
|
||||
# Run tests
|
||||
pytest
|
||||
|
||||
# Run the demo
|
||||
python -m dir_mapview.demo
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Technical Approach
|
||||
|
||||
- **PyQt6/PySide6** for the widget
|
||||
- **QGraphicsScene** for zoomable/pannable canvas
|
||||
- **Tree layout algorithm** for positioning directories
|
||||
- Lazy loading for large filesystems
|
||||
- Caching for performance
|
||||
|
||||
### Key Modules
|
||||
|
||||
- `src/dir_mapview/widget.py` - Main MapView widget (QGraphicsView subclass)
|
||||
- `src/dir_mapview/scene.py` - Scene management and directory rendering
|
||||
- `src/dir_mapview/layout.py` - Directory tree layout algorithm
|
||||
- `src/dir_mapview/scanner.py` - Filesystem scanning with lazy loading
|
||||
- `src/dir_mapview/dialog.py` - Drop-in file picker dialog replacement
|
||||
|
||||
### Key Paths
|
||||
|
||||
- **Source code**: `src/dir_mapview/`
|
||||
- **Tests**: `tests/`
|
||||
- **Documentation**: `docs/` (symlink to project-docs)
|
||||
|
||||
## Documentation
|
||||
|
||||
Documentation for this project lives in the centralized docs system:
|
||||
|
||||
- **Source**: `~/PycharmProjects/project-docs/docs/projects/dir-mapview/`
|
||||
- **Public URL**: `https://pages.brrd.tech/rob/dir-mapview/`
|
||||
|
||||
When updating documentation:
|
||||
1. Edit files in `docs/` (the symlink) or the full path above
|
||||
2. Use `public: true` frontmatter for public-facing docs
|
||||
3. Use `<!-- PRIVATE_START -->` / `<!-- PRIVATE_END -->` to hide sections
|
||||
4. Run `~/PycharmProjects/project-docs/scripts/build-public-docs.sh dir-mapview --deploy` to publish
|
||||
|
||||
Do NOT create documentation files directly in this repository.
|
||||
39
README.md
39
README.md
|
|
@ -1,39 +0,0 @@
|
|||
# Directory MapView
|
||||
|
||||
Map-style directory navigator with zoom and pan
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
*TODO: Add usage instructions*
|
||||
|
||||
## Documentation
|
||||
|
||||
Full documentation is available at: https://pages.brrd.tech/rob/dir-mapview/
|
||||
|
||||
## Development
|
||||
|
||||
```bash
|
||||
# Clone the repository
|
||||
git clone https://gitea.brrd.tech/rob/dir-mapview.git
|
||||
cd dir-mapview
|
||||
|
||||
# Create virtual environment
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate
|
||||
|
||||
# Install for development
|
||||
pip install -e ".[dev]"
|
||||
|
||||
# Run tests
|
||||
pytest
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
*TODO: Add license*
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[237],{2237(e,t,i){i.r(t),i.d(t,{default:()=>l});i(6540);var o=i(1312),n=i(5500),s=i(1656),r=i(3363),a=i(4848);function l(){const e=(0,o.T)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.be,{title:e}),(0,a.jsx)(s.A,{children:(0,a.jsx)(r.A,{})})]})}},3363(e,t,i){i.d(t,{A:()=>a});i(6540);var o=i(4164),n=i(1312),s=i(1107),r=i(4848);function a({className:e}){return(0,r.jsx)("main",{className:(0,o.A)("container margin-vert--xl",e),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(s.A,{as:"h1",className:"hero__title",children:(0,r.jsx)(n.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(n.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(n.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[647],{7121(e,c,s){s.r(c),s.d(c,{default:()=>t});s(6540);var r=s(4164),u=s(7559),a=s(5500),l=s(2831),o=s(1656),p=s(4848);function t(e){return(0,p.jsx)(a.e3,{className:(0,r.A)(u.G.wrapper.docsPages),children:(0,p.jsx)(o.A,{children:(0,l.v)(e.route.routes)})})}}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[894],{7836(e,i,s){s.r(i),s.d(i,{assets:()=>r,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>t,toc:()=>c});const t=JSON.parse('{"id":"goals","title":"Goals","description":"Active","source":"@site/docs/goals.md","sourceDirName":".","slug":"/goals","permalink":"/rob/dir-mapview/goals","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"goals","project":"dir-mapview","updated":"2026-01-08T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Directory MapView","permalink":"/rob/dir-mapview/"},"next":{"title":"Ideas & Exploration","permalink":"/rob/dir-mapview/ideas-and-exploration"}}');var a=s(4848),n=s(8453);const l={type:"goals",project:"dir-mapview",updated:new Date("2026-01-08T00:00:00.000Z")},o="Goals",r={},c=[{value:"Active",id:"active",level:2},{value:"Future",id:"future",level:2},{value:"Non-Goals",id:"non-goals",level:2}];function d(e){const i={h1:"h1",h2:"h2",header:"header",input:"input",li:"li",strong:"strong",ul:"ul",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.header,{children:(0,a.jsx)(i.h1,{id:"goals",children:"Goals"})}),"\n",(0,a.jsx)(i.h2,{id:"active",children:"Active"}),"\n",(0,a.jsxs)(i.ul,{className:"contains-task-list",children:["\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Create a map-style directory visualization that displays filesystem structure like a road map #high"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Provide zoom and pan navigation for exploring directory hierarchies #high"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",'Show "you are here" marker for clear context of current location #medium']}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Enable click-to-navigate for intuitive directory traversal #high"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Support hover previews for quick directory information #medium"]}),"\n"]}),"\n",(0,a.jsx)(i.h2,{id:"future",children:"Future"}),"\n",(0,a.jsxs)(i.ul,{className:"contains-task-list",children:["\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Replace standard file picker dialogs with MapView component #high"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",'Visualize disk usage through directory "road" widths #medium']}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Integrate with Artifact Editor for save location navigation #medium"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Integrate with CmdForge for tool configuration paths #low"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ","Provide customizable visualization themes #low"]}),"\n"]}),"\n",(0,a.jsx)(i.h2,{id:"non-goals",children:"Non-Goals"}),"\n",(0,a.jsxs)(i.ul,{className:"contains-task-list",children:["\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",(0,a.jsx)(i.strong,{children:"Real-time file system monitoring"})," - Not a file watcher #medium"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",(0,a.jsx)(i.strong,{children:"File content preview/editing"})," - Focus is on navigation only #medium"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",(0,a.jsx)(i.strong,{children:"Replace full-featured file managers"})," - This is a navigation widget #medium"]}),"\n",(0,a.jsxs)(i.li,{className:"task-list-item",children:[(0,a.jsx)(i.input,{type:"checkbox",disabled:!0})," ",(0,a.jsx)(i.strong,{children:"Support for network/remote filesystems"})," - Local filesystem focus initially #medium"]}),"\n"]})]})}function u(e={}){const{wrapper:i}={...(0,n.R)(),...e.components};return i?(0,a.jsx)(i,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453(e,i,s){s.d(i,{R:()=>l,x:()=>o});var t=s(6540);const a={},n=t.createContext(a);function l(e){const i=t.useContext(n);return t.useMemo(function(){return"function"==typeof e?e(i):{...i,...e}},[i,e])}function o(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:l(e.components),t.createElement(n.Provider,{value:i},e.children)}}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[574],{921(e,t,n){n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>d});const o=JSON.parse('{"id":"milestones","title":"Milestones","description":"M1: Proof of Concept","source":"@site/docs/milestones.md","sourceDirName":".","slug":"/milestones","permalink":"/rob/dir-mapview/milestones","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"milestones","project":"dir-mapview","updated":"2026-01-08T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Ideas & Exploration","permalink":"/rob/dir-mapview/ideas-and-exploration"},"next":{"title":"Dir-MapView TODOs","permalink":"/rob/dir-mapview/todos"}}');var i=n(4848),r=n(8453);const s={type:"milestones",project:"dir-mapview",updated:new Date("2026-01-08T00:00:00.000Z")},a="Milestones",c={},d=[{value:"M1: Proof of Concept",id:"m1-proof-of-concept",level:4},{value:"M2: File Picker Integration",id:"m2-file-picker-integration",level:4},{value:"M3: Advanced Features",id:"m3-advanced-features",level:4}];function l(e){const t={h1:"h1",h4:"h4",header:"header",hr:"hr",p:"p",strong:"strong",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"milestones",children:"Milestones"})}),"\n",(0,i.jsx)(t.h4,{id:"m1-proof-of-concept",children:"M1: Proof of Concept"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Target"}),": Q2 2026\n",(0,i.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,i.jsx)(t.p,{children:"Create the foundational map-style directory visualization widget with basic navigation capabilities. This proves the concept of a zoomable, pannable filesystem view."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h4,{id:"m2-file-picker-integration",children:"M2: File Picker Integration"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Target"}),": Q3 2026\n",(0,i.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,i.jsx)(t.p,{children:"Replace or augment standard file dialogs with the MapView component, adding hover previews and performance optimizations for real-world usage."}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h4,{id:"m3-advanced-features",children:"M3: Advanced Features"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.strong,{children:"Target"}),": Q4 2026\n",(0,i.jsx)(t.strong,{children:"Status"}),": Not Started"]}),"\n",(0,i.jsx)(t.p,{children:"Extend functionality with disk usage visualization, custom themes, and integrations with other ecosystem tools (Artifact Editor, CmdForge)."}),"\n",(0,i.jsx)(t.hr,{})]})}function p(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453(e,t,n){n.d(t,{R:()=>s,x:()=>a});var o=n(6540);const i={},r=o.createContext(i);function s(e){const t=o.useContext(r);return o.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[176],{1178(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","href":"/rob/dir-mapview/","label":"Directory MapView","docId":"overview","unlisted":false},{"type":"link","href":"/rob/dir-mapview/goals","label":"Goals","docId":"goals","unlisted":false},{"type":"link","href":"/rob/dir-mapview/ideas-and-exploration","label":"Ideas & Exploration","docId":"ideas-and-exploration","unlisted":false},{"type":"link","href":"/rob/dir-mapview/milestones","label":"Milestones","docId":"milestones","unlisted":false},{"type":"link","href":"/rob/dir-mapview/todos","label":"Dir-MapView TODOs","docId":"todos","unlisted":false}]},"docs":{"goals":{"id":"goals","title":"Goals","description":"Active","sidebar":"docs"},"ideas-and-exploration":{"id":"ideas-and-exploration","title":"Ideas & Exploration","description":"Ideas","sidebar":"docs"},"milestones":{"id":"milestones","title":"Milestones","description":"M1: Proof of Concept","sidebar":"docs"},"overview":{"id":"overview","title":"Directory MapView","description":"Map-style directory navigator with zoom and pan - a reimagined file picker dialog.","sidebar":"docs"},"todos":{"id":"todos","title":"Dir-MapView TODOs","description":"Active Tasks","sidebar":"docs"}}}}')}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[98],{1723(n,e,s){s.r(e),s.d(e,{default:()=>d});s(6540);var r=s(5500);function o(n,e){return`docs-${n}-${e}`}var c=s(3025),t=s(2831),i=s(1463),u=s(4848);function l(n){const{version:e}=n;return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(i.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,u.jsx)(r.be,{children:e.noIndex&&(0,u.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function a(n){const{version:e,route:s}=n;return(0,u.jsx)(r.e3,{className:e.className,children:(0,u.jsx)(c.n,{version:e,children:(0,t.v)(s.routes)})})}function d(n){return(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(l,{...n}),(0,u.jsx)(a,{...n})]})}}}]);
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[742],{7093(c){c.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]);
|
||||
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[]).push([[207],{7271(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>d});const s=JSON.parse('{"id":"ideas-and-exploration","title":"Ideas & Exploration","description":"Ideas","source":"@site/docs/ideas-and-exploration.md","sourceDirName":".","slug":"/ideas-and-exploration","permalink":"/rob/dir-mapview/ideas-and-exploration","draft":false,"unlisted":false,"tags":[],"version":"current","frontMatter":{"type":"ideas","project":"dir-mapview","updated":"2026-01-08T00:00:00.000Z"},"sidebar":"docs","previous":{"title":"Goals","permalink":"/rob/dir-mapview/goals"},"next":{"title":"Milestones","permalink":"/rob/dir-mapview/milestones"}}');var n=i(4848),a=i(8453);const o={type:"ideas",project:"dir-mapview",updated:new Date("2026-01-08T00:00:00.000Z")},r="Ideas & Exploration",l={},d=[{value:"Ideas",id:"ideas",level:2}];function c(e){const t={h1:"h1",h2:"h2",header:"header",input:"input",li:"li",ul:"ul",...(0,a.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"ideas--exploration",children:"Ideas & Exploration"})}),"\n",(0,n.jsx)(t.h2,{id:"ideas",children:"Ideas"}),"\n",(0,n.jsxs)(t.ul,{className:"contains-task-list",children:["\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Metro/subway map style visualization option #medium"]}),"\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Force-directed graph layout as alternative to tree layout #medium"]}),"\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Integration with version control (show git status on directories) #high"]}),"\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Bookmarks/favorites for frequently accessed directories #medium"]}),"\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Search overlay for quick directory jumping #high"]}),"\n",(0,n.jsxs)(t.li,{className:"task-list-item",children:[(0,n.jsx)(t.input,{type:"checkbox",disabled:!0})," ","Animation transitions when navigating #low"]}),"\n"]})]})}function p(e={}){const{wrapper:t}={...(0,a.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},8453(e,t,i){i.d(t,{R:()=>o,x:()=>r});var s=i(6540);const n={},a=s.createContext(n);function o(e){const t=s.useContext(a);return s.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]);
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1,61 @@
|
|||
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
||||
* @license MIT */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom-client.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-dom.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* scheduler.production.js
|
||||
*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
|
@ -0,0 +1 @@
|
|||
(()=>{"use strict";var e,r,t,a,o,n={},i={};function c(e){var r=i[e];if(void 0!==r)return r.exports;var t=i[e]={id:e,loaded:!1,exports:{}};return n[e].call(t.exports,t,t.exports,c),t.loaded=!0,t.exports}c.m=n,c.c=i,e=[],c.O=(r,t,a,o)=>{if(!t){var n=1/0;for(l=0;l<e.length;l++){for(var[t,a,o]=e[l],i=!0,d=0;d<t.length;d++)(!1&o||n>=o)&&Object.keys(c.O).every(e=>c.O[e](t[d]))?t.splice(d--,1):(i=!1,o<n&&(n=o));if(i){e.splice(l--,1);var f=a();void 0!==f&&(r=f)}}return r}o=o||0;for(var l=e.length;l>0&&e[l-1][2]>o;l--)e[l]=e[l-1];e[l]=[t,a,o]},c.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return c.d(r,{a:r}),r},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var o=Object.create(null);c.r(o);var n={};r=r||[null,t({}),t([]),t(t)];for(var i=2&a&&e;("object"==typeof i||"function"==typeof i)&&!~r.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach(r=>n[r]=()=>e[r]);return n.default=()=>e,c.d(o,n),o},c.d=(e,r)=>{for(var t in r)c.o(r,t)&&!c.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((r,t)=>(c.f[t](e,r),r),[])),c.u=e=>"assets/js/"+({48:"a94703ab",98:"a7bd4aaa",176:"a34f593b",207:"e719f3dc",393:"1db78e9f",401:"17896441",413:"1db64337",574:"817f7194",647:"5e95c892",742:"aba21aa0",894:"5eebbccf"}[e]||e)+"."+{48:"b8c77466",98:"3ba34601",176:"ac5944a9",207:"1290d273",237:"447ba118",393:"144c1dae",401:"a2525508",413:"ff583722",574:"a8d1a093",647:"a3b66919",742:"4a552a5c",894:"e6e4c75f"}[e]+".js",c.miniCssF=e=>{},c.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),a={},o="project-public-docs:",c.l=(e,r,t,n)=>{if(a[e])a[e].push(r);else{var i,d;if(void 0!==t)for(var f=document.getElementsByTagName("script"),l=0;l<f.length;l++){var u=f[l];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==o+t){i=u;break}}i||(d=!0,(i=document.createElement("script")).charset="utf-8",c.nc&&i.setAttribute("nonce",c.nc),i.setAttribute("data-webpack",o+t),i.src=e),a[e]=[r];var b=(r,t)=>{i.onerror=i.onload=null,clearTimeout(s);var o=a[e];if(delete a[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach(e=>e(t)),r)return r(t)},s=setTimeout(b.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=b.bind(null,i.onerror),i.onload=b.bind(null,i.onload),d&&document.head.appendChild(i)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/rob/dir-mapview/",c.gca=function(e){return e={17896441:"401",a94703ab:"48",a7bd4aaa:"98",a34f593b:"176",e719f3dc:"207","1db78e9f":"393","1db64337":"413","817f7194":"574","5e95c892":"647",aba21aa0:"742","5eebbccf":"894"}[e]||e,c.p+c.u(e)},(()=>{var e={354:0,869:0};c.f.j=(r,t)=>{var a=c.o(e,r)?e[r]:void 0;if(0!==a)if(a)t.push(a[2]);else if(/^(354|869)$/.test(r))e[r]=0;else{var o=new Promise((t,o)=>a=e[r]=[t,o]);t.push(a[2]=o);var n=c.p+c.u(r),i=new Error;c.l(n,t=>{if(c.o(e,r)&&(0!==(a=e[r])&&(e[r]=void 0),a)){var o=t&&("load"===t.type?"missing":t.type),n=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+n+")",i.name="ChunkLoadError",i.type=o,i.request=n,a[1](i)}},"chunk-"+r,r)}},c.O.j=r=>0===e[r];var r=(r,t)=>{var a,o,[n,i,d]=t,f=0;if(n.some(r=>0!==e[r])){for(a in i)c.o(i,a)&&(c.m[a]=i[a]);if(d)var l=d(c)}for(r&&r(t);f<n.length;f++)o=n[f],c.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return c.O(l)},t=globalThis.webpackChunkproject_public_docs=globalThis.webpackChunkproject_public_docs||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})()})();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,23 +0,0 @@
|
|||
[build-system]
|
||||
requires = ["setuptools>=61.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "dir-mapview"
|
||||
version = "0.1.0"
|
||||
description = "Map-style directory navigator with zoom and pan"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
dependencies = []
|
||||
|
||||
[project.optional-dependencies]
|
||||
dev = [
|
||||
"pytest>=7.0",
|
||||
"pytest-cov>=4.0",
|
||||
]
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
testpaths = ["tests"]
|
||||
|
|
@ -0,0 +1 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://pages.brrd.tech/rob/dir-mapview/goals/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://pages.brrd.tech/rob/dir-mapview/ideas-and-exploration/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://pages.brrd.tech/rob/dir-mapview/milestones/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://pages.brrd.tech/rob/dir-mapview/todos/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url><url><loc>https://pages.brrd.tech/rob/dir-mapview/</loc><changefreq>weekly</changefreq><priority>0.5</priority></url></urlset>
|
||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue