@brftech/filex-core 0.30.1 → 0.32.0

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.
Files changed (38) hide show
  1. package/README.md +37 -2
  2. package/dist/filex-core.js +10571 -8278
  3. package/dist/filex-core.js.map +1 -1
  4. package/dist/filex-core.umd.cjs +95 -87
  5. package/dist/filex-core.umd.cjs.map +1 -1
  6. package/dist/index.d.ts +548 -66
  7. package/dist/style.css +1 -1
  8. package/package.json +1 -1
  9. package/src/FileExplorer.vue +1104 -26
  10. package/src/components/Breadcrumb.vue +4 -2
  11. package/src/components/CommandPalette.vue +18 -2
  12. package/src/components/E2eRecoveryUnlockModal.vue +193 -0
  13. package/src/components/EncryptedFolderModal.vue +10 -0
  14. package/src/components/FilterBar.vue +244 -0
  15. package/src/components/GalleryView.vue +48 -0
  16. package/src/components/GridView.vue +85 -3
  17. package/src/components/InspectorPanel.vue +231 -8
  18. package/src/components/ListView.vue +11 -1
  19. package/src/components/RecoveryKeyModal.vue +133 -0
  20. package/src/components/SecondaryPane.vue +15 -1
  21. package/src/components/SideNav.vue +329 -6
  22. package/src/components/StarButton.vue +27 -15
  23. package/src/components/Toolbar.vue +235 -49
  24. package/src/components/ViewSwitcher.vue +81 -0
  25. package/src/composables/useFileApi.ts +83 -0
  26. package/src/composables/useKeyboardShortcuts.ts +7 -0
  27. package/src/index.ts +33 -1
  28. package/src/lib/e2ecrypto.ts +716 -70
  29. package/src/lib/fileFilters.ts +143 -0
  30. package/src/lib/listing.ts +103 -1
  31. package/src/lib/star.ts +42 -0
  32. package/src/lib/tags.ts +105 -0
  33. package/src/locales/en.ts +154 -2
  34. package/src/locales/tr.ts +154 -2
  35. package/src/modals/PermissionsModal.vue +18 -2
  36. package/src/styles/base.css +743 -0
  37. package/src/types/ExplorerConfig.ts +53 -1
  38. package/src/types/FileNode.ts +23 -0
package/README.md CHANGED
@@ -50,7 +50,8 @@ const config = {
50
50
  trashVisible: true,
51
51
  sideNav: true, // the navigation panel (default on)
52
52
  connections: true, // its "How to connect" + "API keys" entries
53
- uiProfile: 'standard', // or 'simple' — one pane, list/grid, no tabs
53
+ uiProfile: 'standard', // 'simple' — one pane, list/grid, no tabs
54
+ // 'drive' — that, plus the Drive-shaped shell
54
55
  };
55
56
  </script>
56
57
 
@@ -108,7 +109,7 @@ const config = {
108
109
  apiBase: 'https://files.example.com',
109
110
  auth: { kind: 'bearer', token },
110
111
  sideNav: true, // default; `rootPath` flips it off
111
- uiProfile: 'simple', // 'standard' (default) | 'simple'
112
+ uiProfile: 'simple', // 'standard' (default) | 'simple' | 'drive'
112
113
  };
113
114
  ```
114
115
 
@@ -121,11 +122,45 @@ to be told to ask an administrator. Set `connections: false` to leave them out.
121
122
  ⚠ Never gated on role in the UI: `/api/tokens` caps every scope against the
122
123
  caller's own account, and the panel renders what the API returns.
123
124
 
125
+ ⚠ **API keys is dropped for an app token** — along with Recent, Starred and
126
+ Shared with me — because those surfaces belong to one person and an app token
127
+ belongs to none. `ConnectionsPanel` degrades with it: the guides stay, and
128
+ `S3KeysPanel` / `SSHKeysPanel` / `NFSExportsPanel` / `TokensPanel` show their
129
+ existing "cannot mint" note instead of a form, driven by the server's 403
130
+ through the `canMint` / `canAdd` flag each composable already reports. That is `callerKind`, read from
131
+ `GET /api/files/capabilities` (`caller_kind`) and overridable per embed; it is a
132
+ credential-kind check, not the role check the paragraph above forbids. "How to
133
+ connect", Upload, the storages and Trash stay. See
134
+ [docs/MCP.md → Token kinds](https://github.com/BRF-Tech/filex/blob/main/docs/MCP.md#token-kinds--user-vs-app).
135
+
124
136
  `uiProfile: 'simple'` is a preset, not a feature switch — nothing is removed
125
137
  from the build. It turns off the tab strip and the split pane, reduces the view
126
138
  switcher to list + grid, and starts the navigation panel expanded, for the
127
139
  people who want a file drive rather than a file manager.
128
140
 
141
+ `uiProfile: 'drive'` is `simple` plus the shell those people already know:
142
+
143
+ - one primary **+ New** menu in the panel (upload files · new folder · request
144
+ files) instead of the Upload / New folder pair,
145
+ - one **search field across the header** with a ⌘K / Ctrl+K chip that hands the
146
+ query to the command palette — the field searches the folder you are in, the
147
+ palette is where "everywhere", saved searches and commands live,
148
+ - a **filter row** under the breadcrumb: Type · Modified · Size,
149
+ - **Folders** and **Files** as labelled sections in grid view,
150
+ - the details panel split into **Details** and **Activity**, with "People with
151
+ access" and a share-link row,
152
+ - a **storage line** under the navigation (`GET /api/files/quota/me`).
153
+
154
+ Nothing is removed here either: density, theme, the shortcut editor, the tour
155
+ and the other view modes all live in the header's "⋯" menu, and the view
156
+ switcher and details toggle move to the breadcrumb row rather than disappearing.
157
+
158
+ ⚠ There is deliberately **no People filter** and no Owner column, though the
159
+ mockups this profile came from draw both: a listing row carries no owner
160
+ (`nodes.owner_id` is quota bookkeeping, serialized by nothing) and the listing
161
+ endpoint reads no owner parameter. A chip that opens, offers names and changes
162
+ nothing is worse than no chip.
163
+
129
164
  ### Connections
130
165
 
131
166
  A second surface, for reaching the same server *without* a browser. filex can