@brftech/filex-core 0.42.1 → 0.43.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.
- package/README.md +14 -2
- package/dist/ArchiveViewer-BqU761Wk.js +149 -0
- package/dist/ArchiveViewer-BqU761Wk.js.map +1 -0
- package/dist/CsvViewer-ByHVK5ga.js +172 -0
- package/dist/CsvViewer-ByHVK5ga.js.map +1 -0
- package/dist/{DrawioViewer-BuhZOAx6.js → DrawioViewer-Bgrj8-zG.js} +45 -44
- package/dist/DrawioViewer-Bgrj8-zG.js.map +1 -0
- package/dist/{EpubViewer-DS3mb3k8.js → EpubViewer-DJwUKlHW.js} +50 -50
- package/dist/EpubViewer-DJwUKlHW.js.map +1 -0
- package/dist/IpynbViewer-Bz0eJ4NS.js +184 -0
- package/dist/IpynbViewer-Bz0eJ4NS.js.map +1 -0
- package/dist/MermaidViewer-CEDTD_pp.js +136 -0
- package/dist/MermaidViewer-CEDTD_pp.js.map +1 -0
- package/dist/PsdViewer-CZcxUpZO.js +121 -0
- package/dist/PsdViewer-CZcxUpZO.js.map +1 -0
- package/dist/TiffViewer-BwI62CbQ.js +141 -0
- package/dist/TiffViewer-BwI62CbQ.js.map +1 -0
- package/dist/{Viewer3D-CIrOn63I.js → Viewer3D-DoeZcuMm.js} +16 -16
- package/dist/Viewer3D-DoeZcuMm.js.map +1 -0
- package/dist/filex-core.js +475 -219
- package/dist/filex-core.umd.cjs +165 -108
- package/dist/filex-core.umd.cjs.map +1 -1
- package/dist/fonts/caveat-latin-ext.woff2 +0 -0
- package/dist/fonts/caveat-latin.woff2 +0 -0
- package/dist/fonts/dancing-script-latin-ext.woff2 +0 -0
- package/dist/fonts/dancing-script-latin.woff2 +0 -0
- package/dist/fonts/homemade-apple-latin.woff2 +0 -0
- package/dist/fonts/source-serif-4-latin-ext.woff2 +0 -0
- package/dist/fonts/source-serif-4-latin.woff2 +0 -0
- package/dist/index-DuWnGuv5.js +35901 -0
- package/dist/index-DuWnGuv5.js.map +1 -0
- package/dist/index.d.ts +5241 -553
- package/dist/pdf-CaPYsOUo.js +21302 -0
- package/dist/pdf-CaPYsOUo.js.map +1 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/FileExplorer.vue +1207 -343
- package/src/assets/fonts/LICENSE-Apache-2.0.txt +202 -0
- package/src/assets/fonts/LICENSE-OFL-1.1.txt +93 -0
- package/src/assets/fonts/README.md +58 -0
- package/src/assets/fonts/caveat-latin-ext.woff2 +0 -0
- package/src/assets/fonts/caveat-latin.woff2 +0 -0
- package/src/assets/fonts/dancing-script-latin-ext.woff2 +0 -0
- package/src/assets/fonts/dancing-script-latin.woff2 +0 -0
- package/src/assets/fonts/homemade-apple-latin.woff2 +0 -0
- package/src/assets/fonts/source-serif-4-latin-ext.woff2 +0 -0
- package/src/assets/fonts/source-serif-4-latin.woff2 +0 -0
- package/src/components/AdvancedSearch.vue +49 -0
- package/src/components/Breadcrumb.vue +5 -5
- package/src/components/ChoiceButtons.vue +152 -0
- package/src/components/CommandPalette.vue +5 -5
- package/src/components/ConnectionGuideView.vue +1 -1
- package/src/components/ConnectionNotice.vue +59 -0
- package/src/components/ConnectionsPanel.vue +30 -568
- package/src/components/ContextMenu.vue +31 -5
- package/src/components/DataTable.vue +1331 -0
- package/src/components/FilePane.vue +3 -0
- package/src/components/FilterBar.vue +12 -5
- package/src/components/GalleryView.vue +50 -2
- package/src/components/GridView.vue +51 -3
- package/src/components/HomeView.vue +18 -6
- package/src/components/InspectorPanel.vue +134 -17
- package/src/components/ListView.vue +366 -900
- package/src/components/LogoMark.vue +57 -0
- package/src/components/NFSExportsPanel.vue +76 -28
- package/src/components/OnboardingTour.vue +19 -7
- package/src/components/OperationsCenter.vue +77 -1
- package/src/components/PendingOpsTray.vue +59 -5
- package/src/components/PresenceBar.vue +7 -7
- package/src/components/ProductVersion.vue +31 -0
- package/src/components/QuickLook.vue +10 -14
- package/src/components/RecentlyOpened.vue +47 -17
- package/src/components/RecoveryKeyModal.vue +1 -1
- package/src/components/RowActions.vue +134 -0
- package/src/components/S3KeysPanel.vue +98 -56
- package/src/components/SSHKeysPanel.vue +79 -26
- package/src/components/SideNav.vue +260 -96
- package/src/components/StarButton.vue +1 -0
- package/src/components/StorageFields.vue +74 -6
- package/src/components/StorageTags.vue +62 -0
- package/src/components/TabBar.vue +1 -1
- package/src/components/TagKindIcon.vue +56 -0
- package/src/components/TagPicker.vue +226 -40
- package/src/components/ThemePalette.vue +4 -4
- package/src/components/TimeZonePicker.vue +29 -10
- package/src/components/TokensPanel.vue +82 -27
- package/src/components/Toolbar.vue +28 -6
- package/src/components/plugin/PluginConfirmModal.vue +54 -0
- package/src/components/plugin/PluginInspectorSection.vue +149 -0
- package/src/components/plugin/PluginPageView.vue +339 -0
- package/src/components/plugin/PluginViewModal.vue +159 -0
- package/src/components/plugin/SurfaceConversation.vue +76 -0
- package/src/components/plugin/SurfaceFooterButtons.vue +73 -0
- package/src/components/plugin/SurfaceRenderer.vue +299 -0
- package/src/components/plugin/SurfaceSections.vue +91 -0
- package/src/components/plugin/nodes/PdfFieldEditor.vue +509 -0
- package/src/components/plugin/nodes/SurfaceFileChooser.vue +94 -0
- package/src/components/plugin/nodes/SurfaceForm.vue +82 -0
- package/src/components/plugin/nodes/SurfaceList.vue +127 -0
- package/src/components/plugin/nodes/SurfacePdfFields.vue +1285 -0
- package/src/components/plugin/nodes/SurfacePeoplePicker.vue +213 -0
- package/src/components/plugin/nodes/SurfacePinInput.vue +57 -0
- package/src/components/plugin/nodes/SurfacePreview.vue +119 -0
- package/src/components/plugin/nodes/SurfaceProgress.vue +48 -0
- package/src/components/plugin/nodes/SurfaceSignaturePad.vue +472 -0
- package/src/components/plugin/nodes/SurfaceSteps.vue +53 -0
- package/src/components/public/PublicLanguagePicker.vue +58 -0
- package/src/components/public/PublicLinkPage.vue +286 -0
- package/src/components/public/PublicLinkPreview.vue +85 -0
- package/src/components/public/PublicPinGate.vue +108 -0
- package/src/components/public/PublicRequestBody.vue +204 -0
- package/src/components/public/PublicShareBody.vue +188 -0
- package/src/components/public/PublicShell.vue +332 -0
- package/src/composables/useConnections.ts +8 -2
- package/src/composables/useFileApi.ts +183 -44
- package/src/composables/useLocale.ts +277 -41
- package/src/composables/useNFSExports.ts +8 -10
- package/src/composables/useOperations.ts +44 -3
- package/src/composables/usePendingOps.ts +59 -8
- package/src/composables/usePluginActions.ts +121 -0
- package/src/composables/usePluginSurface.ts +223 -0
- package/src/composables/usePublicBranding.ts +172 -0
- package/src/composables/usePublicLink.ts +573 -0
- package/src/composables/usePublicPage.ts +61 -0
- package/src/composables/useS3Keys.ts +17 -12
- package/src/composables/useSSHKeys.ts +8 -10
- package/src/composables/useTokens.ts +8 -12
- package/src/composables/useUploadChunked.ts +18 -8
- package/src/composables/useViewerFetch.ts +6 -3
- package/src/index.ts +404 -8
- package/src/lib/actionIcons.ts +46 -1
- package/src/lib/advSearch.ts +14 -7
- package/src/lib/appLock.ts +130 -0
- package/src/lib/connection.ts +110 -0
- package/src/lib/destinationTree.ts +19 -3
- package/src/lib/direction.ts +353 -0
- package/src/lib/dragGhost.ts +6 -0
- package/src/lib/dropLimits.ts +69 -0
- package/src/lib/errorWords.ts +394 -0
- package/src/lib/externalReach.ts +5 -1
- package/src/lib/fileFilters.ts +7 -2
- package/src/lib/fileIcons.ts +4 -0
- package/src/lib/internalPaths.ts +77 -0
- package/src/lib/listInput.ts +64 -0
- package/src/lib/listing.ts +58 -23
- package/src/lib/modalStack.ts +26 -0
- package/src/lib/nodeRow.ts +121 -0
- package/src/lib/pdfFieldRules.ts +126 -0
- package/src/lib/pdfFields.ts +589 -0
- package/src/lib/pdfFieldsGeom.ts +203 -0
- package/src/lib/pdfjsLoader.ts +51 -0
- package/src/lib/personName.ts +47 -0
- package/src/lib/pluginApplies.ts +123 -0
- package/src/lib/pluginLabel.ts +72 -0
- package/src/lib/pluginMenu.ts +253 -0
- package/src/lib/pluginPage.ts +58 -0
- package/src/lib/plural.ts +181 -0
- package/src/lib/popupLayer.ts +103 -0
- package/src/lib/prefs.ts +563 -0
- package/src/lib/productVersion.ts +35 -0
- package/src/lib/publicLayout.ts +39 -0
- package/src/lib/serviceGate.ts +104 -0
- package/src/lib/shareTtl.ts +25 -11
- package/src/lib/signFonts.ts +85 -0
- package/src/lib/signaturePad.ts +111 -0
- package/src/lib/sortOrder.ts +100 -38
- package/src/lib/star.ts +7 -1
- package/src/lib/surfaceCell.ts +41 -0
- package/src/lib/surfaceConditions.ts +156 -0
- package/src/lib/surfaceOpen.ts +106 -0
- package/src/lib/surfaceSteps.ts +68 -0
- package/src/lib/surfaceValues.ts +191 -0
- package/src/lib/symlink.ts +150 -0
- package/src/lib/tableColumns.ts +493 -0
- package/src/lib/tableEnv.ts +34 -0
- package/src/lib/tablePrefs.ts +84 -0
- package/src/lib/tags.ts +121 -12
- package/src/lib/themes.ts +286 -18
- package/src/lib/tour.ts +152 -0
- package/src/lib/trashEmpty.ts +111 -0
- package/src/lib/trashTimeLeft.ts +23 -0
- package/src/lib/uiLocales.ts +460 -0
- package/src/lib/viewPrefs.ts +696 -660
- package/src/lib/viewPrefsHttp.ts +78 -0
- package/src/locales/en.ts +522 -119
- package/src/locales/resolve.ts +17 -8
- package/src/locales/tr.ts +539 -155
- package/src/modals/ConvertModal.vue +62 -11
- package/src/modals/DestinationPickerModal.vue +59 -16
- package/src/modals/Modal.vue +113 -23
- package/src/modals/NewDocumentModal.vue +16 -6
- package/src/modals/NewFolderModal.vue +8 -0
- package/src/modals/PermissionsModal.vue +272 -163
- package/src/modals/PreviewModal.vue +119 -20
- package/src/modals/RenameModal.vue +37 -1
- package/src/styles/base.css +2895 -241
- package/src/styles/sign-fonts.css +118 -0
- package/src/styles/variables.css +60 -0
- package/src/types/Connections.ts +17 -0
- package/src/types/ExplorerConfig.ts +117 -1
- package/src/types/FileNode.ts +58 -0
- package/src/types/Plugins.ts +494 -0
- package/src/types/Public.ts +212 -0
- package/src/viewers/ArchiveViewer.vue +93 -48
- package/src/viewers/CsvViewer.vue +99 -53
- package/src/viewers/DrawioViewer.vue +35 -9
- package/src/viewers/EpubViewer.vue +7 -8
- package/src/viewers/IpynbViewer.vue +3 -1
- package/src/viewers/MermaidViewer.vue +4 -5
- package/src/viewers/PdfViewer.vue +8 -17
- package/src/viewers/PsdViewer.vue +2 -4
- package/src/viewers/TiffViewer.vue +4 -5
- package/src/viewers/Viewer3D.vue +1 -1
- package/LICENSE +0 -21
- package/dist/ArchiveViewer-CLNevfPE.js +0 -124
- package/dist/ArchiveViewer-CLNevfPE.js.map +0 -1
- package/dist/CsvViewer-K8XA3z7N.js +0 -141
- package/dist/CsvViewer-K8XA3z7N.js.map +0 -1
- package/dist/DrawioViewer-BuhZOAx6.js.map +0 -1
- package/dist/EpubViewer-DS3mb3k8.js.map +0 -1
- package/dist/IpynbViewer-BTk7p4Dn.js +0 -184
- package/dist/IpynbViewer-BTk7p4Dn.js.map +0 -1
- package/dist/MermaidViewer-DqucH_io.js +0 -137
- package/dist/MermaidViewer-DqucH_io.js.map +0 -1
- package/dist/PsdViewer-CwiVENmq.js +0 -122
- package/dist/PsdViewer-CwiVENmq.js.map +0 -1
- package/dist/TiffViewer-CpewSVmQ.js +0 -142
- package/dist/TiffViewer-CpewSVmQ.js.map +0 -1
- package/dist/Viewer3D-CIrOn63I.js.map +0 -1
- package/dist/index-Dx0IbBcI.js +0 -26831
- package/dist/index-Dx0IbBcI.js.map +0 -1
- package/dist/useViewerFetch-czqbd2Lj.js +0 -25
- package/dist/useViewerFetch-czqbd2Lj.js.map +0 -1
|
@@ -12,6 +12,8 @@ import type { FileNode } from '../types/FileNode';
|
|
|
12
12
|
import { useLocale } from '../composables/useLocale';
|
|
13
13
|
import { menuShortcutHint } from '../composables/useKeyboardShortcuts';
|
|
14
14
|
import { actionIconSvg } from '../lib/actionIcons';
|
|
15
|
+
import { openAlongInline } from '../lib/direction';
|
|
16
|
+
import { POPUP_BASE_Z, openerCandidates, popupLayer } from '../lib/popupLayer'; /* katman:z1 */
|
|
15
17
|
|
|
16
18
|
export interface ContextAction {
|
|
17
19
|
key: string;
|
|
@@ -42,6 +44,14 @@ export interface ContextAction {
|
|
|
42
44
|
title?: string;
|
|
43
45
|
hidden?: boolean;
|
|
44
46
|
divider?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* A test hook on the menu ITEM. The menu teleports to <body>, so an
|
|
49
|
+
* entry cannot be addressed through the component that opened it; a spec
|
|
50
|
+
* (or a plugin's own e2e) that used to click a loose row button needs a
|
|
51
|
+
* name for the verb now that the verb lives in here. Absent for every
|
|
52
|
+
* explorer action, which are addressed by label.
|
|
53
|
+
*/
|
|
54
|
+
testid?: string;
|
|
45
55
|
/**
|
|
46
56
|
* tus:t1 — registry action id whose key this row should print. Optional:
|
|
47
57
|
* rows whose `key` already matches the registry (rename, delete, copy…)
|
|
@@ -75,7 +85,10 @@ const emit = defineEmits<{
|
|
|
75
85
|
(e: 'select', action: ContextAction, target: FileNode[]): void;
|
|
76
86
|
}>();
|
|
77
87
|
|
|
78
|
-
|
|
88
|
+
// bag:b4 — sheet aria labels need t(). ⚠ RTL: `dir` goes on the teleported
|
|
89
|
+
// backdrop — under <body> the menu would otherwise take the HOST page's
|
|
90
|
+
// direction, not the language its own rows are written in.
|
|
91
|
+
const { t, dir } = useLocale(() => props.locale);
|
|
79
92
|
|
|
80
93
|
/* tus:t1 — a row's key label. `shortcutId` wins when an embedder sets one;
|
|
81
94
|
* otherwise the row's own key is looked up in the shared menu map. */
|
|
@@ -95,6 +108,11 @@ function iconFor(a: ContextAction): string {
|
|
|
95
108
|
const open = ref(false);
|
|
96
109
|
const x = ref(0);
|
|
97
110
|
const y = ref(0);
|
|
111
|
+
/* katman:z1 — the layer this menu is painted on, measured from whatever opened
|
|
112
|
+
* it. See lib/popupLayer.ts: a menu opened inside the explorer's Connections /
|
|
113
|
+
* API-keys overlay (`.fe-overlay`, z-index 130) used to be drawn at 80 and was
|
|
114
|
+
* invisible. The stylesheet's 80 stays as the value for every ordinary open. */
|
|
115
|
+
const layerZ = ref(POPUP_BASE_Z);
|
|
98
116
|
const targetNodes = ref<FileNode[]>([]);
|
|
99
117
|
const menuEl = ref<HTMLElement | null>(null);
|
|
100
118
|
|
|
@@ -110,6 +128,9 @@ let prevFocus: HTMLElement | null = null;
|
|
|
110
128
|
|
|
111
129
|
async function show(ev: { clientX: number; clientY: number }, nodes: FileNode[]) {
|
|
112
130
|
prevFocus = (document.activeElement as HTMLElement | null) ?? null; /* wiring:c4 */
|
|
131
|
+
/* katman:z1 — BEFORE the backdrop exists: once it does it covers the
|
|
132
|
+
* viewport and `elementFromPoint` answers with the backdrop itself. */
|
|
133
|
+
layerZ.value = popupLayer(openerCandidates(ev.clientX, ev.clientY));
|
|
113
134
|
open.value = true;
|
|
114
135
|
x.value = ev.clientX;
|
|
115
136
|
y.value = ev.clientY;
|
|
@@ -144,10 +165,11 @@ function clampToViewport() {
|
|
|
144
165
|
const flipped = anchorY - rect.height;
|
|
145
166
|
y.value = flipped >= margin ? flipped : Math.max(margin, vh - rect.height - margin);
|
|
146
167
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
168
|
+
/* ⚠ RTL: the menu opens toward the inline END of the pointer — down-LEFT in
|
|
169
|
+
* a right-to-left interface — and flips to the other side the same way.
|
|
170
|
+
* `openAlongInline` is the flip-then-clamp this block used to spell out,
|
|
171
|
+
* mirrored for RTL; in LTR it is the same arithmetic, number for number. */
|
|
172
|
+
x.value = openAlongInline(anchorX, rect.width, vw, dir.value, margin);
|
|
151
173
|
}
|
|
152
174
|
|
|
153
175
|
function hide() {
|
|
@@ -321,7 +343,9 @@ defineExpose({ show, hide });
|
|
|
321
343
|
<div
|
|
322
344
|
v-if="open"
|
|
323
345
|
class="fe-ctx-backdrop"
|
|
346
|
+
:dir="dir"
|
|
324
347
|
:class="[themeClass, { 'fe-ctx-backdrop--sheet': sheet }]"
|
|
348
|
+
:style="{ zIndex: layerZ /* katman:z1 */ }"
|
|
325
349
|
:data-prefers-dark="prefersDark ? '1' : '0'"
|
|
326
350
|
@click="hide"
|
|
327
351
|
@contextmenu.prevent="hide"
|
|
@@ -360,6 +384,7 @@ defineExpose({ show, hide });
|
|
|
360
384
|
:class="{ 'is-danger': a.danger, 'is-disabled': a.disabled }"
|
|
361
385
|
:disabled="a.disabled"
|
|
362
386
|
:title="a.title"
|
|
387
|
+
:data-testid="a.testid"
|
|
363
388
|
role="menuitem"
|
|
364
389
|
@click="pick(a)"
|
|
365
390
|
>
|
|
@@ -391,6 +416,7 @@ defineExpose({ show, hide });
|
|
|
391
416
|
:class="{ 'is-danger': a.danger, 'is-disabled': a.disabled }"
|
|
392
417
|
:disabled="a.disabled"
|
|
393
418
|
:title="a.title"
|
|
419
|
+
:data-testid="a.testid"
|
|
394
420
|
role="menuitem"
|
|
395
421
|
@click="pick(a)"
|
|
396
422
|
>
|