@dcs-tech/ui 0.4.0 → 0.7.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 (70) hide show
  1. package/README.md +27 -0
  2. package/dist/ChartImageMenu-C6MwKKjc.js +1494 -0
  3. package/dist/{ChartView-Cehrcr05.js → ChartView-nS4f4EU_.js} +514 -514
  4. package/dist/{SummaryChart-y27q_BBN.js → SummaryChart-CVg6i2mx.js} +2 -2
  5. package/dist/{SummaryImage-DDNEEu_K.js → SummaryImage-OHJHjCqe.js} +2 -2
  6. package/dist/{SummarySeeAll-0dX-_LFe.js → SummarySeeAll-BYrvXSJ6.js} +5 -5
  7. package/dist/assets/fileTask.worker-BHT1olUk.js +1 -0
  8. package/dist/columnValue-K98ElfJc.js +610 -0
  9. package/dist/exportContext-CJaIv8R-.js +166 -0
  10. package/dist/{exportEngine-DL-jEXFU.js → exportEngine-S8JHzYbS.js} +355 -356
  11. package/dist/file-worker.js +1 -0
  12. package/dist/fileActions-COf5Q4Eg.js +144 -0
  13. package/dist/{geometry-CG2nOEnw.js → geometry-ChwYB45B.js} +433 -497
  14. package/dist/index.js +8817 -8596
  15. package/dist/{defaults-DL745PK1.js → labels-CnqqTrne.js} +3 -79
  16. package/dist/runFileTask--4YjQH7Y.js +210 -0
  17. package/dist/scrollArea-DAlVT5U7.js +214 -0
  18. package/dist/style.css +1 -1
  19. package/dist/{summaryChartData-Djo73zb8.js → summaryChartData-pNvzaEHp.js} +1 -1
  20. package/dist/types/components/Charts/parts.d.ts +1 -1
  21. package/dist/types/components/Collapsible/index.d.ts +1 -1
  22. package/dist/types/components/DataTable/DataTable.d.ts +1 -1
  23. package/dist/types/components/DataTable/cards/cardFields.d.ts +2 -4
  24. package/dist/types/components/DataTable/columnValue.d.ts +19 -0
  25. package/dist/types/components/DataTable/export/exportCells.d.ts +13 -0
  26. package/dist/types/components/DataTable/export/exportEngine.d.ts +13 -4
  27. package/dist/types/components/DataTable/export/useTableExport.d.ts +2 -0
  28. package/dist/types/components/DataTable/host.d.ts +2 -0
  29. package/dist/types/components/DataTable/index.d.ts +1 -1
  30. package/dist/types/components/DataTable/labels.d.ts +2 -0
  31. package/dist/types/components/DataTable/types.d.ts +11 -0
  32. package/dist/types/components/DataTable/useTable.d.ts +4 -1
  33. package/dist/types/components/DataTable/vendor/index.d.ts +1 -1
  34. package/dist/types/components/Dialog/DialogHost.d.ts +1 -0
  35. package/dist/types/components/EditableTable/EditableTableCell.d.ts +1 -1
  36. package/dist/types/components/FileEngine/FileEngineContext.d.ts +17 -0
  37. package/dist/types/components/FileEngine/FileEngineProvider.d.ts +31 -0
  38. package/dist/types/components/FileEngine/FileJobsTray.d.ts +10 -0
  39. package/dist/types/components/FileEngine/index.d.ts +8 -0
  40. package/dist/types/components/FileEngine/labels.d.ts +29 -0
  41. package/dist/types/components/Toast/ToastHost.d.ts +1 -0
  42. package/dist/types/components/UIProvider/UIFormatContext.d.ts +7 -0
  43. package/dist/types/components/UIProvider/UIHostContext.d.ts +20 -0
  44. package/dist/types/components/UIProvider/UILabelsContext.d.ts +116 -0
  45. package/dist/types/components/UIProvider/UIProvider.d.ts +8 -1
  46. package/dist/types/components/UIProvider/index.d.ts +6 -0
  47. package/dist/types/core/logic/collapsible.logic.d.ts +6 -1
  48. package/dist/types/core/logic/datePicker.logic.d.ts +5 -0
  49. package/dist/types/core/logic/exportSafety.logic.d.ts +1 -0
  50. package/dist/types/core/logic/fileQueue.logic.d.ts +28 -0
  51. package/dist/types/core/logic/format.logic.d.ts +4 -0
  52. package/dist/types/core/logic/index.d.ts +4 -0
  53. package/dist/types/core/logic/tableDate.logic.d.ts +7 -0
  54. package/dist/types/core/logic/tableSummary.logic.d.ts +2 -2
  55. package/dist/types/core/types/collapsible.types.d.ts +4 -16
  56. package/dist/types/core/types/fileEngine.types.d.ts +116 -0
  57. package/dist/types/core/types/form.types.d.ts +4 -0
  58. package/dist/types/core/types/format.types.d.ts +15 -0
  59. package/dist/types/core/types/index.d.ts +2 -0
  60. package/dist/types/core/types/table.types.d.ts +1 -0
  61. package/dist/types/{components/DataTable/vendor → file}/fileActions.d.ts +17 -7
  62. package/dist/types/file/fileEngine.d.ts +49 -0
  63. package/dist/types/file/tasks/fileTask.worker.d.ts +1 -0
  64. package/dist/types/file/tasks/runFileTask.d.ts +9 -0
  65. package/dist/types/file/workerPool.d.ts +18 -0
  66. package/dist/types/index.d.ts +11 -2
  67. package/package.json +3 -2
  68. package/dist/ChartImageMenu-HILSfn5A.js +0 -1115
  69. package/dist/exportContext-CdpsOzE8.js +0 -235
  70. package/dist/scrollArea-CkPGDYH2.js +0 -210
package/README.md CHANGED
@@ -69,6 +69,33 @@ The table's runtime dependencies (`@tanstack/react-table`, `@tanstack/react-virt
69
69
  `@tanstack/match-sorter-utils`, `exceljs`, `pdfmake` — loaded on the first PDF export —
70
70
  and `react-icons`) install with the package.
71
71
 
72
+ ## Files and the background worker
73
+
74
+ Exports (DataTable, chart images, your own reports) run through one file engine that
75
+ `UIProvider` sets up. Excel and PDF files build in a **background worker**, so a large
76
+ export does not freeze the page.
77
+
78
+ The worker ships as its own file and imports `exceljs` and `pdfmake` by package name, so
79
+ **your bundler must treat it as a worker entry**:
80
+
81
+ - **Vite** and **webpack 5**: nothing to do. They follow the package's
82
+ `new Worker(new URL(…, import.meta.url))` and bundle the worker themselves.
83
+ - **Anything else**: build a worker from `@dcs-tech/ui/file-worker` with your bundler and hand it
84
+ to the engine:
85
+
86
+ ```ts
87
+ // file.worker.ts — bundled by your setup as a module worker
88
+ import '@dcs-tech/ui/file-worker';
89
+ ```
90
+
91
+ ```tsx
92
+ <UIProvider fileEngine={{ createWorker: () => new Worker('/assets/file.worker.js', { type: 'module' }) }}>
93
+ ```
94
+
95
+ If a worker cannot start, the engine builds the same file on the main thread instead.
96
+ `fileEngine={{ workers: 'off' }}` always uses the main thread. Large PDF fonts (a script font)
97
+ belong on the engine, so they reach each worker once: `fileEngine={{ pdfFonts: { fonts, vfs } }}`.
98
+
72
99
  ## Theming
73
100
 
74
101
  Every colour, size and spacing value is a CSS custom property. Override them on