@brftech/filex-core 0.31.0 → 0.33.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 (62) hide show
  1. package/README.md +26 -2
  2. package/dist/{CsvViewer-DxujFEM3.js → CsvViewer-CqWeV8VO.js} +22 -22
  3. package/dist/CsvViewer-CqWeV8VO.js.map +1 -0
  4. package/dist/{DrawioViewer-DCvWnX2t.js → DrawioViewer-BNALOB04.js} +16 -16
  5. package/dist/DrawioViewer-BNALOB04.js.map +1 -0
  6. package/dist/filex-core.js +9346 -8069
  7. package/dist/filex-core.js.map +1 -1
  8. package/dist/filex-core.umd.cjs +49 -49
  9. package/dist/filex-core.umd.cjs.map +1 -1
  10. package/dist/index.d.ts +235 -16
  11. package/dist/style.css +1 -1
  12. package/package.json +1 -1
  13. package/src/FileExplorer.vue +776 -246
  14. package/src/components/CommandPalette.vue +21 -5
  15. package/src/components/ConnectionsPanel.vue +2 -1
  16. package/src/components/E2eRecoveryUnlockModal.vue +29 -4
  17. package/src/components/FilterBar.vue +244 -0
  18. package/src/components/GalleryView.vue +12 -1
  19. package/src/components/GridView.vue +48 -5
  20. package/src/components/InspectorPanel.vue +231 -8
  21. package/src/components/ListView.vue +12 -3
  22. package/src/components/NFSExportsPanel.vue +2 -1
  23. package/src/components/PendingOpsTray.vue +1 -1
  24. package/src/components/PresenceBar.vue +3 -2
  25. package/src/components/S3KeysPanel.vue +2 -1
  26. package/src/components/SSHKeysPanel.vue +2 -1
  27. package/src/components/SecondaryPane.vue +28 -13
  28. package/src/components/SideNav.vue +161 -1
  29. package/src/components/StarButton.vue +2 -1
  30. package/src/components/TabBar.vue +2 -2
  31. package/src/components/ThemeGallery.vue +1 -1
  32. package/src/components/TokensPanel.vue +2 -1
  33. package/src/components/Toolbar.vue +244 -58
  34. package/src/components/ViewSwitcher.vue +81 -0
  35. package/src/composables/useFileApi.ts +49 -2
  36. package/src/composables/useLocale.ts +1 -1
  37. package/src/composables/useOperations.ts +3 -3
  38. package/src/composables/usePendingOps.ts +1 -1
  39. package/src/composables/useTabs.ts +1 -1
  40. package/src/composables/useUploadChunked.ts +39 -7
  41. package/src/index.ts +8 -2
  42. package/src/lib/e2ecrypto.ts +191 -3
  43. package/src/lib/fileFilters.ts +143 -0
  44. package/src/lib/listing.ts +47 -0
  45. package/src/lib/themes.ts +7 -7
  46. package/src/lib/transfer.ts +6 -6
  47. package/src/locales/en.ts +115 -0
  48. package/src/locales/index.ts +1 -0
  49. package/src/locales/resolve.ts +66 -0
  50. package/src/locales/tr.ts +116 -0
  51. package/src/modals/ConvertModal.vue +14 -12
  52. package/src/modals/NewFolderModal.vue +1 -1
  53. package/src/modals/PermissionsModal.vue +30 -13
  54. package/src/modals/PreviewModal.vue +9 -9
  55. package/src/styles/base.css +520 -26
  56. package/src/styles/variables.css +1 -1
  57. package/src/types/ExplorerConfig.ts +18 -2
  58. package/src/types/FileNode.ts +1 -1
  59. package/src/viewers/CsvViewer.vue +4 -4
  60. package/src/viewers/DrawioViewer.vue +2 -2
  61. package/dist/CsvViewer-DxujFEM3.js.map +0 -1
  62. package/dist/DrawioViewer-DCvWnX2t.js.map +0 -1
@@ -12,7 +12,7 @@
12
12
  * office (docx/xlsx/pptx) → OnlyOffice iframe (config.onlyOfficeBase)
13
13
  * plain text (txt/log/conf) → CodeMirror when saveText is set,
14
14
  * `<pre>` otherwise
15
- * anything else → "indir" fallback
15
+ * anything else → "Download" fallback
16
16
  *
17
17
  * Monaco is dynamic-imported at FileExplorer onMounted; by the time the
18
18
  * user clicks an editable code file the chunk is usually already cached.
@@ -46,7 +46,7 @@ const props = defineProps<{
46
46
  pdfSaveUrl?: string | null;
47
47
  /** Standalone full-screen viewer route — `?path=…&storage=…&type=…`. */
48
48
  viewerBaseUrl?: string | null;
49
- /* wiring:e2 — false hides the "Düzenle" / "Yeni Sekmede " buttons.
49
+ /* wiring:e2 — false hides the "Edit" / "Open in New Tab" buttons.
50
50
  * The standalone route fetches RAW server bytes, which inside an
51
51
  * E2E-encrypted folder is ciphertext (and its save path could clobber
52
52
  * the encrypted blob) — the host disables the escape hatches there. */
@@ -258,7 +258,7 @@ function buildAndOpenStandalone(mode: 'view' | 'edit'): void {
258
258
 
259
259
  /**
260
260
  * Extensions that have a meaningful "edit" surface. Read-only kinds
261
- * (image/video/audio/3D/archive) don't surface a "Düzenle" button.
261
+ * (image/video/audio/3D/archive) don't surface an "Edit" button.
262
262
  */
263
263
  const EDITABLE_EXTS = new Set([
264
264
  // OnlyOffice — open the in-page office editor (or new tab) with
@@ -311,7 +311,7 @@ function onMdInput() {
311
311
  mdReRenderTimer = setTimeout(() => {
312
312
  renderMarkdown(rawText.value);
313
313
  }, 250);
314
- // Autosave 1.5s after last keystroke — manual Kaydet button + Ctrl+S
314
+ // Autosave 1.5s after last keystroke — the manual Save button + Ctrl+S
315
315
  // still work; saveMarkdown() guards against overlap.
316
316
  if (mdAutosaveTimer) clearTimeout(mdAutosaveTimer);
317
317
  mdAutosaveTimer = setTimeout(() => {
@@ -785,7 +785,7 @@ async function mountOnlyOfficeEditor(): Promise<void> {
785
785
  officeError.value = null;
786
786
  if (!props.file || kind.value !== 'office') return;
787
787
  if (!props.onlyOfficeConfigEndpoint) {
788
- officeError.value = 'OnlyOffice yapılandırması yok';
788
+ officeError.value = t('viewer.office_unconfigured');
789
789
  return;
790
790
  }
791
791
  if (!officeEl.value) return;
@@ -916,8 +916,8 @@ function loadOnlyOfficeScript(base: string): Promise<void> {
916
916
  <object :data="src" type="application/pdf" class="fe-preview__iframe">
917
917
  <div class="fe-preview__fallback">
918
918
  <span class="fe-preview__fallback-icon">📕</span>
919
- <p>Tarayıcı PDF'i inline açamadı.</p>
920
- <a :href="download" class="fe-btn fe-btn--primary" target="_blank" rel="noopener">PDF'i Yeni Sekmede Aç</a>
919
+ <p>{{ t('viewer.pdf_inline_failed') }}</p>
920
+ <a :href="download" class="fe-btn fe-btn--primary" target="_blank" rel="noopener">{{ t('viewer.open_in_new_tab') }}</a>
921
921
  </div>
922
922
  </object>
923
923
  </template>
@@ -925,7 +925,7 @@ function loadOnlyOfficeScript(base: string): Promise<void> {
925
925
  <template v-else-if="kind === 'markdown'">
926
926
  <div v-if="loading" class="fe-preview__fallback">{{ t('viewer.loading') }}</div>
927
927
  <div v-else-if="tooLarge" class="fe-preview__fallback">
928
- Dosya çok büyük (>1 MB). <a :href="download" class="fe-btn">{{ t('viewer.download') }}</a>
928
+ {{ t('viewer.too_large') }} <a :href="download" class="fe-btn">{{ t('viewer.download') }}</a>
929
929
  </div>
930
930
  <div
931
931
  v-else-if="openMode === 'edit' && saveTextEndpoint"
@@ -995,7 +995,7 @@ function loadOnlyOfficeScript(base: string): Promise<void> {
995
995
  <template v-else-if="kind === 'code' || kind === 'text'">
996
996
  <div v-if="loading" class="fe-preview__fallback">{{ t('viewer.loading') }}</div>
997
997
  <div v-else-if="tooLarge" class="fe-preview__fallback">
998
- Dosya çok büyük (>1 MB). <a :href="download" class="fe-btn">{{ t('viewer.download') }}</a>
998
+ {{ t('viewer.too_large') }} <a :href="download" class="fe-btn">{{ t('viewer.download') }}</a>
999
999
  </div>
1000
1000
  <div v-else-if="fetchError" class="fe-preview__fallback">
1001
1001
  <p>{{ fetchError }}</p>