@hienlh/ppm 0.13.15 → 0.13.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/CLAUDE.md +5 -0
- package/assets/skills/ppm/SKILL.md +1 -1
- package/assets/skills/ppm/references/http-api.md +1 -1
- package/bun.lock +2135 -0
- package/bunfig.toml +2 -0
- package/dist/web/assets/{audio-preview-YOG6Biao.js → audio-preview-CEYHVcPO.js} +1 -1
- package/dist/web/assets/{chat-tab-DbdDJuLu.js → chat-tab-DgKpBVjE.js} +3 -3
- package/dist/web/assets/code-editor-Cq2IOaV8.js +8 -0
- package/dist/web/assets/{conflict-editor-DnGfriL5.js → conflict-editor-C3l0f_1F.js} +1 -1
- package/dist/web/assets/{database-viewer-AodppoTs.js → database-viewer-Bsj5g3RI.js} +1 -1
- package/dist/web/assets/{diff-viewer-DykLUwna.js → diff-viewer-LNzXRYQX.js} +1 -1
- package/dist/web/assets/{extension-webview-Bck7QuaB.js → extension-webview-ClSDQWq_.js} +1 -1
- package/dist/web/assets/file-store-DOxcU_7s.js +1 -0
- package/dist/web/assets/{glide-data-grid-BVt0mwcA.js → glide-data-grid-rA_8qdHA.js} +1 -1
- package/dist/web/assets/{image-preview-DaSmrIvY.js → image-preview-BEC5d-NV.js} +1 -1
- package/dist/web/assets/index-VDmxXycP.js +27 -0
- package/dist/web/assets/index-nC9UURj4.css +2 -0
- package/dist/web/assets/keybindings-store-CNsaPqyF.js +1 -0
- package/dist/web/assets/{markdown-renderer-B1me_hz2.js → markdown-renderer-CPVvj7aP.js} +1 -1
- package/dist/web/assets/{pdf-preview-Dci7TIL1.js → pdf-preview-Dn0-iiir.js} +1 -1
- package/dist/web/assets/{port-forwarding-tab-BeM40G-J.js → port-forwarding-tab-BTScoTXw.js} +1 -1
- package/dist/web/assets/{postgres-viewer-CGVBOwA9.js → postgres-viewer-zrm-uI0Y.js} +1 -1
- package/dist/web/assets/{settings-tab-CYS8VfNl.js → settings-tab-D3_bKOG3.js} +1 -1
- package/dist/web/assets/{sql-query-editor-DstPySPF.js → sql-query-editor-CGIWCq6O.js} +1 -1
- package/dist/web/assets/{sqlite-viewer-SUGEk_G1.js → sqlite-viewer-Bvd2SXu-.js} +1 -1
- package/dist/web/assets/{terminal-tab-CJvjF79J.js → terminal-tab-BwdYHHa4.js} +1 -1
- package/dist/web/assets/{video-preview-gJSKmPQr.js → video-preview-onuXf7EW.js} +1 -1
- package/dist/web/index.html +3 -3
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +0 -0
- package/src/server/routes/files.ts +15 -0
- package/src/services/file.service.ts +15 -0
- package/src/web/components/editor/editor-breadcrumb.tsx +88 -36
- package/src/web/components/explorer/file-actions.tsx +12 -129
- package/src/web/components/explorer/file-icon-map.ts +69 -0
- package/src/web/components/explorer/file-tree.tsx +177 -362
- package/src/web/components/explorer/inline-tree-input.tsx +120 -0
- package/src/web/components/explorer/tree-node-context-menu.tsx +97 -0
- package/src/web/components/explorer/tree-node.tsx +343 -0
- package/src/web/components/explorer/use-file-upload-drag.ts +84 -0
- package/src/web/components/explorer/use-tree-keyboard-nav.ts +126 -0
- package/src/web/components/layout/mobile-nav.tsx +73 -84
- package/src/web/components/layout/project-bottom-sheet.tsx +61 -82
- package/src/web/components/ui/adaptive-context-menu.tsx +245 -0
- package/src/web/components/ui/mobile-bottom-sheet.tsx +155 -0
- package/src/web/hooks/use-is-mobile.ts +28 -0
- package/src/web/hooks/use-swipe-to-dismiss.ts +51 -0
- package/src/web/stores/file-store.ts +74 -3
- package/src/web/stores/git-status-store.ts +87 -2
- package/dist/web/assets/code-editor-C4nuAsy6.js +0 -8
- package/dist/web/assets/file-store-4BpOJthN.js +0 -1
- package/dist/web/assets/index-CSK33ACc.css +0 -2
- package/dist/web/assets/index-gZKF1YKy.js +0 -27
- package/dist/web/assets/keybindings-store-DBKLTPrk.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.17] - 2026-04-25
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
- **Swipe-to-dismiss stale closure**: Bottom sheet swipe gesture could fail to dismiss due to stale `dragY` state in touch end handler — now uses ref for reliable threshold check
|
|
7
|
+
- **No upload progress feedback**: Dragging files into the file tree showed no visual feedback — now shows toast with loading spinner, success/error result
|
|
8
|
+
- **Duplicate Loader2 import**: Consolidated duplicate lucide-react import in file-tree.tsx
|
|
9
|
+
|
|
10
|
+
## [0.13.16] - 2026-04-25
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **File tree explorer overhaul**: VS Code-style file explorer with git decorations, inline rename/create, drag-to-move, cut/copy/paste, collapse all, keyboard navigation (arrow keys, Enter, F2, Delete), multi-selection (Ctrl+Click, Shift+Click), compact folders, reveal active file
|
|
14
|
+
- **File copy API**: `POST /files/copy` endpoint for copying files/folders within a project
|
|
15
|
+
- **File icon map**: 40+ file type icons with color coding in the explorer tree
|
|
16
|
+
- **Adaptive context menu**: Unified component (`adaptive-context-menu.tsx`) — right-click menu on desktop, long-press bottom sheet on mobile. Drop-in replacement for radix ContextMenu
|
|
17
|
+
- **Reusable bottom sheet**: Shared `BottomSheet` component with swipe-to-dismiss gesture, used by context menus, project selector, and mobile nav action sheets
|
|
18
|
+
- **Mobile detection hook**: Centralized `useIsMobile()` hook for reactive breakpoint checks
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
- **Project bottom sheet**: Migrated to shared `BottomSheet` component with swipe-to-dismiss
|
|
22
|
+
- **Mobile nav action sheets**: Migrated to shared `BottomSheet` component with swipe-to-dismiss
|
|
23
|
+
- **File tree modularized**: Split into tree-node, context menu, inline input, keyboard nav, file upload drag, and file icon map modules
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Double context menu on mobile**: Nested radix ContextMenus caused two menus to open on long-press — resolved by adaptive component with stopPropagation
|
|
27
|
+
- **File opens during long-press**: Click event suppressed after long-press context menu trigger on mobile
|
|
28
|
+
- **Git folder decorations broken**: `isDir` variable used before declaration in tree-node git status selector
|
|
29
|
+
- **Missing useState import**: `useState` removed from file-tree.tsx imports but still used — restored
|
|
30
|
+
- **Global clipboard shortcuts**: Ctrl+X/C/V was intercepting all keyboard events globally — scoped to file tree container focus
|
|
31
|
+
|
|
3
32
|
## [0.13.15] - 2026-04-24
|
|
4
33
|
|
|
5
34
|
### Fixed
|
package/CLAUDE.md
CHANGED
|
@@ -76,6 +76,11 @@ When creating or modifying any UI component, you MUST read and follow `docs/desi
|
|
|
76
76
|
- Thumb zone: primary actions in bottom 1/3 of screen for one-handed use
|
|
77
77
|
- Always test both mobile and desktop layouts
|
|
78
78
|
|
|
79
|
+
### Reusable Adaptive Components
|
|
80
|
+
|
|
81
|
+
- **Context menus**: Always use `@/components/ui/adaptive-context-menu` instead of `@/components/ui/context-menu`. It auto-detects mobile (< 768px) and renders a bottom sheet with long-press trigger instead of radix right-click menu. Same API — just swap the import path. Sub-menus are flattened inline on mobile.
|
|
82
|
+
- **Mobile detection**: Use `useIsMobile()` from `@/hooks/use-is-mobile` for reactive mobile breakpoint checks.
|
|
83
|
+
|
|
79
84
|
## Roadmap & Context
|
|
80
85
|
|
|
81
86
|
Before planning or implementing a new feature, read `docs/project-roadmap.md` to understand:
|
|
@@ -71,4 +71,4 @@ This skill covers the `ppm` CLI, its HTTP API, and its config DB. It does **not*
|
|
|
71
71
|
- Third-party extensions (inspect via `ppm ext list`).
|
|
72
72
|
- The Claude Agent SDK internals (separate skill).
|
|
73
73
|
|
|
74
|
-
<!-- Generated for PPM v0.13.
|
|
74
|
+
<!-- Generated for PPM v0.13.17 at build time. Re-run `ppm export skill --install` to refresh. -->
|
|
@@ -201,4 +201,4 @@ _Base URL: `http://localhost:8080` (default; override via `ppm config set port <
|
|
|
201
201
|
- `ws://<host>/ws/terminal` — PTY terminal multiplexer
|
|
202
202
|
- `ws://<host>/ws/extensions` — extension host channel
|
|
203
203
|
|
|
204
|
-
<!-- Generated from src/server/routes/ for PPM v0.13.
|
|
204
|
+
<!-- Generated from src/server/routes/ for PPM v0.13.17 -->
|