@svgrid/enterprise 3.0.0 → 3.0.2

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 (390) hide show
  1. package/README.md +95 -95
  2. package/dist/ExpressionEditorHarness.svelte.d.ts +2 -2
  3. package/dist/SvAdvancedFilter.svelte.d.ts +2 -2
  4. package/dist/SvAlertRuleEditor.svelte.d.ts +2 -2
  5. package/dist/SvAlertsManager.svelte.d.ts +3 -3
  6. package/dist/SvAlertsPanel.svelte.d.ts +1 -1
  7. package/dist/SvAuthGate.svelte +115 -115
  8. package/dist/SvAuthGate.svelte.d.ts +1 -1
  9. package/dist/SvBoard.svelte.d.ts +1 -1
  10. package/dist/SvExportMenu.svelte +553 -553
  11. package/dist/SvExportMenu.svelte.d.ts +2 -2
  12. package/dist/SvExpressionEditor.svelte.d.ts +2 -2
  13. package/dist/SvFileInput.svelte +113 -113
  14. package/dist/SvFormulaBar.svelte +606 -0
  15. package/dist/SvFormulaBar.svelte.d.ts +62 -0
  16. package/dist/SvGridAlerts.svelte.d.ts +2 -2
  17. package/dist/SvGridBoard.svelte +2358 -2358
  18. package/dist/SvGridBulkEditDrawer.svelte.d.ts +1 -1
  19. package/dist/SvGridEditPanel.svelte +1157 -1157
  20. package/dist/SvGridEditPanel.svelte.d.ts +3 -3
  21. package/dist/SvGridMasterDetail.svelte +116 -116
  22. package/dist/SvGridMasterDetail.svelte.d.ts +1 -1
  23. package/dist/SvGridScheduler.svelte +5358 -5358
  24. package/dist/SvImportDialog.svelte +1020 -1020
  25. package/dist/SvImportDialog.svelte.d.ts +2 -2
  26. package/dist/SvLookupInput.svelte +180 -180
  27. package/dist/SvLookupInput.svelte.d.ts +1 -1
  28. package/dist/SvPivotDesigner.svelte +2041 -1990
  29. package/dist/SvPivotDesigner.svelte.d.ts +2 -2
  30. package/dist/SvRecordDetail.svelte.d.ts +1 -1
  31. package/dist/SvRibbonIcon.svelte +46 -0
  32. package/dist/SvRibbonIcon.svelte.d.ts +17 -0
  33. package/dist/SvSchedule.svelte.d.ts +1 -1
  34. package/dist/SvSchemaChart.svelte +236 -234
  35. package/dist/SvSchemaChart.svelte.d.ts +2 -2
  36. package/dist/SvSchemaDashboard.svelte +130 -130
  37. package/dist/SvSchemaDashboard.svelte.d.ts +3 -3
  38. package/dist/SvSheet.svelte +4114 -0
  39. package/dist/SvSheet.svelte.d.ts +142 -0
  40. package/dist/SvSheetComment.svelte +98 -0
  41. package/dist/SvSheetComment.svelte.d.ts +22 -0
  42. package/dist/SvSheetConditionalFormat.svelte +162 -0
  43. package/dist/SvSheetConditionalFormat.svelte.d.ts +14 -0
  44. package/dist/SvSheetDataValidation.svelte +249 -0
  45. package/dist/SvSheetDataValidation.svelte.d.ts +14 -0
  46. package/dist/SvSheetFilterMenu.svelte +217 -0
  47. package/dist/SvSheetFilterMenu.svelte.d.ts +17 -0
  48. package/dist/SvSheetFindReplace.svelte +132 -0
  49. package/dist/SvSheetFindReplace.svelte.d.ts +10 -0
  50. package/dist/SvSheetFormatCells.svelte +421 -0
  51. package/dist/SvSheetFormatCells.svelte.d.ts +17 -0
  52. package/dist/SvSheetGoalSeek.svelte +144 -0
  53. package/dist/SvSheetGoalSeek.svelte.d.ts +12 -0
  54. package/dist/SvSheetInsertFunction.svelte +147 -0
  55. package/dist/SvSheetInsertFunction.svelte.d.ts +8 -0
  56. package/dist/SvSheetListPicker.svelte +89 -0
  57. package/dist/SvSheetListPicker.svelte.d.ts +16 -0
  58. package/dist/SvSheetManageRules.svelte +185 -0
  59. package/dist/SvSheetManageRules.svelte.d.ts +16 -0
  60. package/dist/SvSheetNameManager.svelte +225 -0
  61. package/dist/SvSheetNameManager.svelte.d.ts +11 -0
  62. package/dist/SvSheetPasteSpecial.svelte +105 -0
  63. package/dist/SvSheetPasteSpecial.svelte.d.ts +12 -0
  64. package/dist/SvSheetRemoveDuplicates.svelte +149 -0
  65. package/dist/SvSheetRemoveDuplicates.svelte.d.ts +12 -0
  66. package/dist/SvSheetRibbon.svelte +1201 -0
  67. package/dist/SvSheetRibbon.svelte.d.ts +34 -0
  68. package/dist/SvSheetSizeDialog.svelte +58 -0
  69. package/dist/SvSheetSizeDialog.svelte.d.ts +11 -0
  70. package/dist/SvSheetTabs.svelte +441 -0
  71. package/dist/SvSheetTabs.svelte.d.ts +36 -0
  72. package/dist/SvSheetTabs.test-harness.svelte.d.ts +17 -0
  73. package/dist/SvSheetTabs.test-harness.svelte.js +22 -0
  74. package/dist/SvSheetTextToColumns.svelte +172 -0
  75. package/dist/SvSheetTextToColumns.svelte.d.ts +13 -0
  76. package/dist/SvSheetValidationAlert.svelte +83 -0
  77. package/dist/SvSheetValidationAlert.svelte.d.ts +15 -0
  78. package/dist/advanced-filter/expr-columns-from-grid.d.ts +1 -1
  79. package/dist/advanced-filter-enable.js +3 -3
  80. package/dist/alerts/alert-engine-attach.d.ts +2 -2
  81. package/dist/alerts/alert-engine-attach.js +3 -3
  82. package/dist/alerts/alert-engine.d.ts +1 -1
  83. package/dist/alerts/alert-engine.js +2 -2
  84. package/dist/alerts/alert-formats.d.ts +1 -1
  85. package/dist/alerts/alert-formats.js +1 -1
  86. package/dist/alerts/alert-observer.d.ts +3 -3
  87. package/dist/alerts/alert-observer.js +1 -1
  88. package/dist/alerts/alert-storage.d.ts +1 -1
  89. package/dist/alerts/alert-store.svelte.d.ts +1 -1
  90. package/dist/alerts/alert-types.d.ts +2 -2
  91. package/dist/alerts.js +2 -2
  92. package/dist/board.js +2 -2
  93. package/dist/cdn/svgrid-enterprise.svelte-external.js +19046 -5428
  94. package/dist/designer/assets/GridMenus-BlsvL_aU.js +8 -0
  95. package/dist/designer/assets/SvChartMenu-BYO9cYdy.css +1 -0
  96. package/dist/designer/assets/SvChartMenu-D9hEeHar.js +1 -0
  97. package/dist/designer/assets/SvDateRangeInput-BBRzrQeg.js +1 -0
  98. package/dist/designer/assets/SvDateRangeInput-C0iCCZ8o.css +1 -0
  99. package/dist/designer/assets/SvDateTimePicker-DARvKUL2.js +1 -0
  100. package/dist/designer/assets/SvDateTimePicker-DPv09DIT.css +1 -0
  101. package/dist/designer/assets/{preload-helper-CG0n22O7.js → SvGrid.helpers-BgT-gnCo.js} +1 -1
  102. package/dist/designer/assets/SvGridCellEditor-C7uQXYds.js +4 -0
  103. package/dist/designer/assets/SvGridChart-B8j1SSy3.js +3 -0
  104. package/dist/designer/assets/SvGridChart-BgLuPO7I.css +1 -0
  105. package/dist/designer/assets/SvGridChartBuilder-08YWWeqY.css +1 -0
  106. package/dist/designer/assets/SvGridChartBuilder-kvyIU_Rl.js +1 -0
  107. package/dist/designer/assets/SvGridChartPanel-4Pc8y5yO.css +1 -0
  108. package/dist/designer/assets/SvGridChartPanel-pT6ITc2P.js +4 -0
  109. package/dist/designer/assets/SvGridChartView-7msfnWZT.css +1 -0
  110. package/dist/designer/assets/SvGridChartView-bg281UA1.js +1 -0
  111. package/dist/designer/assets/SvGridDropdown-Bb3HH2Aj.js +1 -0
  112. package/dist/designer/assets/SvGridDropdown-CcidB3rm.css +1 -0
  113. package/dist/designer/assets/SvListBox-BDS66lmZ.js +110 -0
  114. package/dist/designer/assets/SvListBox-BXfyqy4a.css +1 -0
  115. package/dist/designer/assets/SvMenuList-DJ47ba1h.css +1 -0
  116. package/dist/designer/assets/SvMenuList-Dgq2D5VN.js +1 -0
  117. package/dist/designer/assets/SvTabs-DKmwb5p1.css +1 -0
  118. package/dist/designer/assets/SvTabs-UFCMTHXS.js +1 -0
  119. package/dist/designer/assets/cell-formatting-wr5wm7US.js +1 -0
  120. package/dist/designer/assets/chart-cIPUsbM5.js +1 -0
  121. package/dist/designer/assets/chart-export-B6bkQ3X8.js +11 -0
  122. package/dist/designer/assets/chart-export-pdf-BbA28-gt.js +11 -0
  123. package/dist/designer/assets/chart-panel-messages-DtTxpBUU.js +1 -0
  124. package/dist/designer/assets/chart-summary-Czu_5epb.js +1 -0
  125. package/dist/designer/assets/chart-trend-D5I5VEe8.js +1 -0
  126. package/dist/designer/assets/chart-validate-BMqM-qkF.js +1 -0
  127. package/dist/designer/assets/column-resize-BYDzR1Ve.js +1 -0
  128. package/dist/designer/assets/date-format-B8JbEtIG.js +1 -0
  129. package/dist/designer/assets/date-format-DKS-z0xS.css +1 -0
  130. package/dist/designer/assets/editor-contract-Bpoa7A5g.js +1 -0
  131. package/dist/designer/assets/export-format-D-eP4b2l.js +6 -0
  132. package/dist/designer/assets/focus-trap-CAreAhlU.js +1 -0
  133. package/dist/designer/assets/index-CMFgAoVV.css +1 -0
  134. package/dist/designer/assets/{index-zUBix-JQ.js → index-DwU7CAMm.js} +2985 -141
  135. package/dist/designer/assets/list-option-BP_dWS66.js +1 -0
  136. package/dist/designer/assets/preload-helper-HclGiUj8.js +1 -0
  137. package/dist/designer/assets/row-resize-DLktcqUK.js +1 -0
  138. package/dist/designer/assets/src-CITpcm6b.js +1 -0
  139. package/dist/designer/assets/src-EdI3Xqds.js +58 -0
  140. package/dist/designer/index.html +32 -23
  141. package/dist/export-conditional.d.ts +1 -1
  142. package/dist/export-pdf.d.ts +89 -0
  143. package/dist/export-pdf.js +130 -0
  144. package/dist/export-print.js +19 -19
  145. package/dist/export-xls.d.ts +2 -2
  146. package/dist/export.d.ts +2 -2
  147. package/dist/export.js +23 -16
  148. package/dist/expressions/builder-tree.d.ts +2 -2
  149. package/dist/expressions/builder-tree.js +1 -1
  150. package/dist/expressions/compile.d.ts +1 -1
  151. package/dist/import.js +1 -1
  152. package/dist/index.d.ts +116 -53
  153. package/dist/index.js +117 -50
  154. package/dist/install.d.ts +4 -4
  155. package/dist/install.js +16 -11
  156. package/dist/license.d.ts +3 -2
  157. package/dist/license.js +9 -4
  158. package/dist/node/studio.js +187 -116
  159. package/dist/pivot-chart.d.ts +26 -2
  160. package/dist/pivot-chart.js +25 -69
  161. package/dist/pivot-designer.d.ts +1 -1
  162. package/dist/pivot-enable.js +3 -3
  163. package/dist/print.d.ts +1 -1
  164. package/dist/print.js +4 -4
  165. package/dist/scheduler-config.d.ts +5 -5
  166. package/dist/scheduler-freebusy.d.ts +1 -1
  167. package/dist/scheduler-freebusy.js +1 -1
  168. package/dist/scheduler.js +2 -2
  169. package/dist/schema-designer.d.ts +1 -1
  170. package/dist/schema-designer.js +2 -2
  171. package/dist/selection-bar.js +2 -2
  172. package/dist/sheet/address.d.ts +43 -0
  173. package/dist/sheet/address.js +81 -0
  174. package/dist/sheet/ast.d.ts +94 -0
  175. package/dist/sheet/ast.js +56 -0
  176. package/dist/sheet/auto-filter.d.ts +66 -0
  177. package/dist/sheet/auto-filter.js +147 -0
  178. package/dist/sheet/autocomplete.d.ts +42 -0
  179. package/dist/sheet/autocomplete.js +162 -0
  180. package/dist/sheet/coerce.d.ts +31 -0
  181. package/dist/sheet/coerce.js +122 -0
  182. package/dist/sheet/commands.d.ts +89 -0
  183. package/dist/sheet/commands.js +230 -0
  184. package/dist/sheet/comments.d.ts +29 -0
  185. package/dist/sheet/comments.js +73 -0
  186. package/dist/sheet/conditional-formats.d.ts +144 -0
  187. package/dist/sheet/conditional-formats.js +316 -0
  188. package/dist/sheet/deps.d.ts +60 -0
  189. package/dist/sheet/deps.js +199 -0
  190. package/dist/sheet/document.d.ts +150 -0
  191. package/dist/sheet/document.js +264 -0
  192. package/dist/sheet/edit-keys.d.ts +14 -0
  193. package/dist/sheet/edit-keys.js +40 -0
  194. package/dist/sheet/entry.d.ts +31 -0
  195. package/dist/sheet/entry.js +76 -0
  196. package/dist/sheet/evaluate.d.ts +61 -0
  197. package/dist/sheet/evaluate.js +337 -0
  198. package/dist/sheet/find-replace.d.ts +62 -0
  199. package/dist/sheet/find-replace.js +152 -0
  200. package/dist/sheet/format-store.d.ts +99 -0
  201. package/dist/sheet/format-store.js +233 -0
  202. package/dist/sheet/freeze.d.ts +54 -0
  203. package/dist/sheet/freeze.js +58 -0
  204. package/dist/sheet/function-catalog.d.ts +10 -0
  205. package/dist/sheet/function-catalog.js +94 -0
  206. package/dist/sheet/functions.d.ts +28 -0
  207. package/dist/sheet/functions.js +362 -0
  208. package/dist/sheet/goal-seek.d.ts +73 -0
  209. package/dist/sheet/goal-seek.js +153 -0
  210. package/dist/sheet/index.d.ts +53 -0
  211. package/dist/sheet/index.js +53 -0
  212. package/dist/sheet/merges.d.ts +71 -0
  213. package/dist/sheet/merges.js +137 -0
  214. package/dist/sheet/names.d.ts +31 -0
  215. package/dist/sheet/names.js +87 -0
  216. package/dist/sheet/navigate.d.ts +52 -0
  217. package/dist/sheet/navigate.js +135 -0
  218. package/dist/sheet/number-format.d.ts +63 -0
  219. package/dist/sheet/number-format.js +508 -0
  220. package/dist/sheet/palette.d.ts +19 -0
  221. package/dist/sheet/palette.js +84 -0
  222. package/dist/sheet/parse.d.ts +13 -0
  223. package/dist/sheet/parse.js +108 -0
  224. package/dist/sheet/paste-special.d.ts +164 -0
  225. package/dist/sheet/paste-special.js +592 -0
  226. package/dist/sheet/protection.d.ts +21 -0
  227. package/dist/sheet/protection.js +48 -0
  228. package/dist/sheet/rects.d.ts +45 -0
  229. package/dist/sheet/rects.js +112 -0
  230. package/dist/sheet/refs.d.ts +82 -0
  231. package/dist/sheet/refs.js +266 -0
  232. package/dist/sheet/ribbon-icons.d.ts +31 -0
  233. package/dist/sheet/ribbon-icons.js +350 -0
  234. package/dist/sheet/ribbon.d.ts +173 -0
  235. package/dist/sheet/ribbon.js +753 -0
  236. package/dist/sheet/shortcuts.d.ts +164 -0
  237. package/dist/sheet/shortcuts.js +623 -0
  238. package/dist/sheet/structure.d.ts +87 -0
  239. package/dist/sheet/structure.js +166 -0
  240. package/dist/sheet/tables.d.ts +70 -0
  241. package/dist/sheet/tables.js +147 -0
  242. package/dist/sheet/tokenize.d.ts +54 -0
  243. package/dist/sheet/tokenize.js +304 -0
  244. package/dist/sheet/transforms.d.ts +76 -0
  245. package/dist/sheet/transforms.js +154 -0
  246. package/dist/sheet/validation.d.ts +92 -0
  247. package/dist/sheet/validation.js +241 -0
  248. package/dist/sheet/workbook.d.ts +72 -0
  249. package/dist/sheet/workbook.js +409 -0
  250. package/dist/sheet-enable.d.ts +6 -0
  251. package/dist/sheet-enable.js +46 -0
  252. package/dist/sources/aggregate.d.ts +1 -1
  253. package/dist/sources/auth-supabase.js +1 -1
  254. package/dist/sources/dashboard.d.ts +2 -2
  255. package/dist/sources/dashboard.js +1 -1
  256. package/dist/sources/index.d.ts +13 -13
  257. package/dist/sources/index.js +13 -13
  258. package/dist/sources/realtime-supabase.js +1 -1
  259. package/dist/sources/relation-lookup.d.ts +1 -1
  260. package/dist/sources/relation-lookup.js +1 -1
  261. package/dist/sources/rest-adapters.d.ts +1 -1
  262. package/dist/sources/rest-adapters.js +1 -1
  263. package/dist/sources/rest.d.ts +2 -2
  264. package/dist/sources/rest.js +3 -3
  265. package/dist/sources/supabase.d.ts +2 -2
  266. package/dist/sources/supabase.js +3 -3
  267. package/dist/sources/with-entity-rules.d.ts +1 -1
  268. package/dist/sources/with-entity-rules.js +1 -1
  269. package/dist/sources/with-relation-labels.d.ts +1 -1
  270. package/dist/studio/emit-project.js +2161 -2127
  271. package/dist/studio/emit-schema.js +369 -369
  272. package/dist/studio/index.d.ts +1 -1
  273. package/dist/studio/index.js +1 -1
  274. package/dist/studio/introspect-db.js +45 -45
  275. package/dist/studio/project.d.ts +10 -0
  276. package/dist/studio/samples/crm.js +6 -6
  277. package/dist/studio/samples/fleet.js +7 -7
  278. package/dist/studio/samples/insurance.js +9 -9
  279. package/dist/studio/samples/inventory.js +12 -12
  280. package/dist/studio/samples/projects.js +5 -5
  281. package/dist/studio/samples/support.js +8 -8
  282. package/dist/studio/scaffold-app.js +104 -104
  283. package/dist/studio/scaffold.js +151 -151
  284. package/dist/studio/ui-components.d.ts +7 -0
  285. package/dist/studio/ui-components.generated.js +63 -1
  286. package/dist/studio/ui-components.js +35 -0
  287. package/dist/sveltekit/in-memory.d.ts +3 -3
  288. package/dist/sveltekit/in-memory.js +4 -4
  289. package/dist/sveltekit/index.d.ts +6 -6
  290. package/dist/sveltekit/index.js +5 -5
  291. package/dist/sveltekit/query-plan.d.ts +1 -1
  292. package/dist/sveltekit/sql-source.d.ts +4 -4
  293. package/dist/sveltekit/sql-source.js +4 -4
  294. package/dist/sveltekit/sql.d.ts +1 -1
  295. package/dist/sveltekit/transport.d.ts +2 -2
  296. package/dist/sveltekit/transport.js +1 -1
  297. package/dist/upgrade-prompt.js +25 -25
  298. package/dist/version.d.ts +1 -1
  299. package/dist/version.js +1 -1
  300. package/package.json +12 -4
  301. package/dist/designer/assets/GridMenus-Cgilexpk.js +0 -8
  302. package/dist/designer/assets/SvDateRangeInput-BV5OXYQ2.css +0 -1
  303. package/dist/designer/assets/SvDateRangeInput-CVn-yqrQ.js +0 -1
  304. package/dist/designer/assets/SvDateTimePicker-BdioTrJQ.js +0 -1
  305. package/dist/designer/assets/SvDateTimePicker-CY8TK4BT.css +0 -1
  306. package/dist/designer/assets/SvField-BF-9TJSd.css +0 -1
  307. package/dist/designer/assets/SvField-BsqiA5me.js +0 -1
  308. package/dist/designer/assets/SvGridCellEditor-dLY7_kk9.js +0 -2
  309. package/dist/designer/assets/SvGridChart-BEDNTdc5.js +0 -2
  310. package/dist/designer/assets/SvGridChart-Vu4Nvjiv.css +0 -1
  311. package/dist/designer/assets/SvGridChartPanel-x3lzSxuf.js +0 -10
  312. package/dist/designer/assets/SvGridChartView-CAKhPELi.js +0 -1
  313. package/dist/designer/assets/SvGridChartView-DX9HfkBR.css +0 -1
  314. package/dist/designer/assets/SvGridDropdown-CAYG7Y-O.js +0 -1
  315. package/dist/designer/assets/SvGridDropdown-Crwb2P3Q.css +0 -1
  316. package/dist/designer/assets/SvListBox-CVYQcLX9.js +0 -1
  317. package/dist/designer/assets/SvListBox-DgN8kvjt.css +0 -1
  318. package/dist/designer/assets/chart-DHEgt4lN.js +0 -1
  319. package/dist/designer/assets/column-resize-C_inr5zT.js +0 -1
  320. package/dist/designer/assets/date-format-4DJvNtG2.js +0 -1
  321. package/dist/designer/assets/date-format-Dzy4mTGh.css +0 -1
  322. package/dist/designer/assets/easing-zaypKrr0.js +0 -3
  323. package/dist/designer/assets/export-format-DwjuTfrQ.js +0 -6
  324. package/dist/designer/assets/index-Cp7fDJ3b.css +0 -1
  325. package/dist/designer/assets/js-scroller.svelte-Bhxqb3-c.js +0 -110
  326. package/dist/designer/assets/row-resize-B0FWHcNr.js +0 -1
  327. package/dist/designer/assets/src-B7DNcoQK.css +0 -1
  328. package/dist/designer/assets/src-BoYyigAC.js +0 -2896
  329. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/_svelte_metadata.json +0 -1
  330. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/_metadata.json +0 -178
  331. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js +0 -3875
  332. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js.map +0 -1
  333. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js +0 -21
  334. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js.map +0 -1
  335. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js +0 -1938
  336. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js.map +0 -1
  337. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js +0 -205
  338. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js.map +0 -1
  339. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js +0 -18
  340. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js.map +0 -1
  341. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js +0 -264
  342. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js.map +0 -1
  343. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js +0 -697
  344. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js.map +0 -1
  345. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/package.json +0 -3
  346. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js +0 -134
  347. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js.map +0 -1
  348. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js +0 -55
  349. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js.map +0 -1
  350. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_attachments.js +0 -2
  351. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js +0 -46843
  352. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js.map +0 -1
  353. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js +0 -237
  354. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js.map +0 -1
  355. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_events.js +0 -2
  356. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js +0 -4
  357. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js.map +0 -1
  358. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_client.js +0 -7
  359. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js +0 -4
  360. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js.map +0 -1
  361. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js +0 -5
  362. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js.map +0 -1
  363. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js +0 -5
  364. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js.map +0 -1
  365. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js +0 -5
  366. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js.map +0 -1
  367. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_server.js +0 -6
  368. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js +0 -83
  369. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js.map +0 -1
  370. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js +0 -559
  371. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js.map +0 -1
  372. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js +0 -24
  373. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js.map +0 -1
  374. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js +0 -122
  375. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js.map +0 -1
  376. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_server.js +0 -2
  377. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js +0 -89
  378. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js.map +0 -1
  379. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js +0 -241
  380. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js.map +0 -1
  381. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js +0 -4938
  382. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js.map +0 -1
  383. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js +0 -495
  384. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js.map +0 -1
  385. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js +0 -190
  386. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js.map +0 -1
  387. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js +0 -8
  388. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js.map +0 -1
  389. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js +0 -138
  390. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js.map +0 -1
@@ -0,0 +1,172 @@
1
+ <script lang="ts">
2
+ /**
3
+ * Excel's Convert Text to Columns Wizard, the delimited page: pick the
4
+ * delimiter (guessed from the column first), see the split in a preview,
5
+ * Finish writes the fields into the columns to the right of the source
6
+ * inside one batch, so the whole split is one Ctrl+Z.
7
+ */
8
+ import { untrack } from 'svelte'
9
+ import { SvModal } from '@svgrid/grid'
10
+ import type { GridCommandContext } from '@svgrid/grid/shortcuts'
11
+ import type { Workbook } from './sheet/workbook'
12
+ import { textToColumns, guessDelimiter } from './sheet/transforms'
13
+ import { colToLetters } from './sheet/address'
14
+
15
+ type Props = {
16
+ open?: boolean
17
+ workbook: Workbook
18
+ cmd: () => GridCommandContext | null
19
+ /** Called after the split, so the shell repaints and refocuses. */
20
+ onDone: (message: string) => void
21
+ onClose?: () => void
22
+ }
23
+
24
+ let { open = $bindable(false), workbook, cmd, onDone, onClose }: Props = $props()
25
+
26
+ const DELIMITERS = [
27
+ { id: 'tab', label: 'Tab', sep: '\t' },
28
+ { id: 'semicolon', label: 'Semicolon', sep: ';' },
29
+ { id: 'comma', label: 'Comma', sep: ',' },
30
+ { id: 'space', label: 'Space', sep: ' ' },
31
+ { id: 'other', label: 'Other', sep: '' },
32
+ ] as const
33
+ type DelimiterId = (typeof DELIMITERS)[number]['id']
34
+
35
+ let delimiter = $state<DelimiterId>('comma')
36
+ let other = $state('|')
37
+ let collapse = $state(false)
38
+ let trim = $state(true)
39
+ let column = $state<{ index: number; top: number; texts: string[] }>({ index: 0, top: 0, texts: [] })
40
+
41
+ const separator = $derived(
42
+ delimiter === 'other' ? other : DELIMITERS.find((d) => d.id === delimiter)!.sep,
43
+ )
44
+ const preview = $derived.by(() =>
45
+ textToColumns(column.texts.slice(0, 6), {
46
+ delimiters: separator ? [separator] : [','],
47
+ collapse,
48
+ trim,
49
+ }),
50
+ )
51
+
52
+ /**
53
+ * The column under the selection, from the selection's first row (a
54
+ * whole-column selection starts at the top) down to the last used row.
55
+ */
56
+ $effect(() => {
57
+ if (!open) return
58
+ untrack(prepare)
59
+ })
60
+
61
+ function prepare() {
62
+ const c = cmd()
63
+ const range = c?.ranges[c.ranges.length - 1]
64
+ const left = range ? range[1] : (c?.activeCell?.colIndex ?? 0)
65
+ const top = range ? range[0] : (c?.activeCell?.rowIndex ?? 0)
66
+ const bottom = Math.max(workbook.rowCount(workbook.active) - 1, top)
67
+ const texts = Array.from({ length: bottom - top + 1 }, (_, i) => workbook.getRaw(workbook.active, top + i, left))
68
+ column = { index: left, top, texts }
69
+ const guess = guessDelimiter(texts.filter((t) => t !== ''))
70
+ const known = DELIMITERS.find((d) => d.sep === guess && d.id !== 'other')
71
+ if (known) delimiter = known.id
72
+ else if (guess) { delimiter = 'other'; other = guess }
73
+ }
74
+
75
+ function finish() {
76
+ const c = cmd()
77
+ if (!c) return
78
+ const { rows, width } = textToColumns(column.texts, {
79
+ delimiters: separator ? [separator] : [','],
80
+ collapse,
81
+ trim,
82
+ })
83
+ c.batch(() => {
84
+ rows.forEach((fields, r) => {
85
+ for (let i = 0; i < width; i += 1) {
86
+ c.setCellValue(column.top + r, column.index + i, fields[i] ?? '')
87
+ }
88
+ })
89
+ })
90
+ open = false
91
+ c.setSelection(column.top, column.index)
92
+ c.extendSelection(column.top + rows.length - 1, column.index + width - 1)
93
+ onDone(`Split ${rows.length} rows into ${width} columns.`)
94
+ onClose?.()
95
+ }
96
+
97
+ function close() {
98
+ open = false
99
+ onClose?.()
100
+ }
101
+ </script>
102
+
103
+ <SvModal bind:open onClose={onClose} title="Convert Text to Columns Wizard" size="md">
104
+ <div class="sv-sheet-dialog" role="group" aria-label="Convert Text to Columns">
105
+ <p class="lead">Choose the delimiter your data contains. The preview shows how it splits.</p>
106
+ <fieldset class="group">
107
+ <legend>Delimiters</legend>
108
+ {#each DELIMITERS as d (d.id)}
109
+ <label class="check">
110
+ <input type="radio" name="sheet-delimiter" value={d.id} bind:group={delimiter} />
111
+ {d.label}
112
+ {#if d.id === 'other'}
113
+ <input class="other" type="text" maxlength="1" bind:value={other} aria-label="Other delimiter" />
114
+ {/if}
115
+ </label>
116
+ {/each}
117
+ </fieldset>
118
+ <div class="checks">
119
+ <label class="check"><input type="checkbox" bind:checked={collapse} /> Treat consecutive delimiters as one</label>
120
+ <label class="check"><input type="checkbox" bind:checked={trim} /> Trim spaces around each field</label>
121
+ </div>
122
+ <div class="preview" aria-label="Data preview">
123
+ <table>
124
+ <tbody>
125
+ {#each preview.rows as fields, i (i)}
126
+ <tr>{#each fields as field, j (j)}<td>{field}</td>{/each}</tr>
127
+ {/each}
128
+ </tbody>
129
+ </table>
130
+ </div>
131
+ <p class="status">
132
+ {column.texts.length} rows in column {colToLetters(column.index)}
133
+ become {preview.width} column{preview.width === 1 ? '' : 's'} from column {colToLetters(column.index)}.
134
+ Anything already in those columns is replaced.
135
+ </p>
136
+ </div>
137
+ {#snippet footer()}
138
+ <div class="sv-sheet-dialog-buttons">
139
+ <button type="button" class="btn primary" onclick={finish} disabled={column.texts.length === 0}>Finish</button>
140
+ <button type="button" class="btn" onclick={close}>Cancel</button>
141
+ </div>
142
+ {/snippet}
143
+ </SvModal>
144
+
145
+ <style>
146
+ .lead { margin: 0; }
147
+ .group {
148
+ display: flex;
149
+ flex-wrap: wrap;
150
+ gap: 6px 16px;
151
+ margin: 0;
152
+ padding: 6px 10px 8px;
153
+ border: 1px solid var(--sg-border, #d1d1d1);
154
+ border-radius: var(--sg-radius, 3px);
155
+ }
156
+ .group legend { padding: 0 4px; font-weight: 600; }
157
+ .other { width: 32px !important; height: 22px !important; padding: 0 4px !important; text-align: center; }
158
+ .preview {
159
+ max-height: 150px;
160
+ overflow: auto;
161
+ border: 1px solid var(--sg-border, #d1d1d1);
162
+ border-radius: var(--sg-radius, 3px);
163
+ background: var(--sg-bg, #fff);
164
+ }
165
+ .preview table { border-collapse: collapse; font-size: 12px; }
166
+ .preview td {
167
+ padding: 3px 8px;
168
+ border-right: 1px solid var(--sg-border, #e5e5e5);
169
+ border-bottom: 1px solid var(--sg-border, #e5e5e5);
170
+ white-space: nowrap;
171
+ }
172
+ </style>
@@ -0,0 +1,13 @@
1
+ import type { GridCommandContext } from '@svgrid/grid/shortcuts';
2
+ import type { Workbook } from './sheet/workbook.js';
3
+ type Props = {
4
+ open?: boolean;
5
+ workbook: Workbook;
6
+ cmd: () => GridCommandContext | null;
7
+ /** Called after the split, so the shell repaints and refocuses. */
8
+ onDone: (message: string) => void;
9
+ onClose?: () => void;
10
+ };
11
+ declare const SvSheetTextToColumns: import("svelte").Component<Props, {}, "open">;
12
+ type SvSheetTextToColumns = ReturnType<typeof SvSheetTextToColumns>;
13
+ export default SvSheetTextToColumns;
@@ -0,0 +1,83 @@
1
+ <script lang="ts">
2
+ /**
3
+ * The box Excel shows when an entry breaks a validation rule. Stop: the
4
+ * message, Retry (the cell reopens with the entry) and Cancel. Warning:
5
+ * the message, "Continue?", Yes (the entry lands anyway), No (retry) and
6
+ * Cancel. Enter takes the first button, Escape cancels.
7
+ */
8
+ import { SvModal } from '@svgrid/grid'
9
+
10
+ type Props = {
11
+ open?: boolean
12
+ alert: { style: 'stop' | 'warning'; title: string; message: string } | null
13
+ onRetry: () => void
14
+ /** Warning only: keep the entry. */
15
+ onAccept: () => void
16
+ onCancel: () => void
17
+ }
18
+
19
+ let { open = $bindable(false), alert, onRetry, onAccept, onCancel }: Props = $props()
20
+ let first = $state<HTMLButtonElement | null>(null)
21
+
22
+ $effect(() => {
23
+ if (!open) return
24
+ queueMicrotask(() => first?.focus())
25
+ })
26
+
27
+ function done(fn: () => void) {
28
+ open = false
29
+ fn()
30
+ }
31
+ </script>
32
+
33
+ <SvModal bind:open onClose={onCancel} title={alert?.title ?? 'Data validation'} size="sm">
34
+ <div class="sv-sheet-dialog alert" role="alertdialog" aria-describedby="sv-sheet-validation-message">
35
+ <span class="mark" class:warning={alert?.style === 'warning'} aria-hidden="true">{alert?.style === 'warning' ? '!' : '×'}</span>
36
+ <div>
37
+ <p id="sv-sheet-validation-message" class="message">{alert?.message}</p>
38
+ {#if alert?.style === 'warning'}<p class="message">Continue?</p>{/if}
39
+ </div>
40
+ </div>
41
+ {#snippet footer()}
42
+ <div class="sv-sheet-dialog-buttons">
43
+ {#if alert?.style === 'warning'}
44
+ <button bind:this={first} type="button" class="btn primary" onclick={() => done(onAccept)}>Yes</button>
45
+ <button type="button" class="btn" onclick={() => done(onRetry)}>No</button>
46
+ {:else}
47
+ <button bind:this={first} type="button" class="btn primary" onclick={() => done(onRetry)}>Retry</button>
48
+ {/if}
49
+ <button type="button" class="btn" onclick={() => done(onCancel)}>Cancel</button>
50
+ </div>
51
+ {/snippet}
52
+ </SvModal>
53
+
54
+ <style>
55
+ .alert {
56
+ flex-direction: row;
57
+ align-items: flex-start;
58
+ gap: 14px;
59
+ min-width: 300px;
60
+ max-width: 420px;
61
+ }
62
+ .mark {
63
+ flex: 0 0 auto;
64
+ width: 32px;
65
+ height: 32px;
66
+ display: grid;
67
+ place-items: center;
68
+ font-size: 20px;
69
+ font-weight: 700;
70
+ line-height: 1;
71
+ color: var(--sg-on-accent, #fff);
72
+ background: var(--sg-danger, #c42b1c);
73
+ border-radius: 50%;
74
+ }
75
+ .mark.warning {
76
+ color: #242424;
77
+ background: var(--sg-warning, #f2c811);
78
+ }
79
+ .message {
80
+ margin: 0 0 6px;
81
+ white-space: pre-wrap;
82
+ }
83
+ </style>
@@ -0,0 +1,15 @@
1
+ type Props = {
2
+ open?: boolean;
3
+ alert: {
4
+ style: 'stop' | 'warning';
5
+ title: string;
6
+ message: string;
7
+ } | null;
8
+ onRetry: () => void;
9
+ /** Warning only: keep the entry. */
10
+ onAccept: () => void;
11
+ onCancel: () => void;
12
+ };
13
+ declare const SvSheetValidationAlert: import("svelte").Component<Props, {}, "open">;
14
+ type SvSheetValidationAlert = ReturnType<typeof SvSheetValidationAlert>;
15
+ export default SvSheetValidationAlert;
@@ -4,7 +4,7 @@
4
4
  * Saves every consumer from hand-writing an `ExprColumn[]` that mirrors their
5
5
  * column defs and then drifting from it.
6
6
  */
7
- import type { ExprColumn } from '../expressions/expression-columns';
7
+ import type { ExprColumn } from '../expressions/expression-columns.js';
8
8
  /** Grid columns as `api.getColumns()` reports them. */
9
9
  type GridColumnInfo = {
10
10
  id: string;
@@ -6,9 +6,9 @@
6
6
  * compiler that turns an expression into a row predicate.
7
7
  */
8
8
  import { registerAdvancedFilterEngine } from '@svgrid/grid';
9
- import { isLicenseKeySet } from './license';
10
- import { emitUnlicensedNudge } from './watermark';
11
- import { compilePredicate } from './expressions/compile';
9
+ import { isLicenseKeySet } from './license.js';
10
+ import { emitUnlicensedNudge } from './watermark.js';
11
+ import { compilePredicate } from './expressions/compile.js';
12
12
  let enabled = false;
13
13
  const advancedFilterEngine = (expr, ctx) => {
14
14
  // The grid treats null as "do not filter" and never surfaces a partially
@@ -12,8 +12,8 @@
12
12
  * same as a plain-JS interval poll for non-Svelte hosts.
13
13
  */
14
14
  import type { ConditionalFormat } from '@svgrid/grid/format';
15
- import { type AlertEngine } from './alert-engine';
16
- import type { AlertEvent, AlertRule } from './alert-types';
15
+ import { type AlertEngine } from './alert-engine.js';
16
+ import type { AlertEvent, AlertRule } from './alert-types.js';
17
17
  export type FlashTarget = {
18
18
  rowId: string;
19
19
  columnId?: string;
@@ -1,7 +1,7 @@
1
1
  import { toast } from '@svgrid/grid';
2
- import { alertStore } from './alert-store.svelte';
3
- import { toConditionalFormats } from './alert-formats';
4
- import { createAlertEngine } from './alert-engine';
2
+ import { alertStore } from './alert-store.svelte.js';
3
+ import { toConditionalFormats } from './alert-formats.js';
4
+ import { createAlertEngine } from './alert-engine.js';
5
5
  /**
6
6
  * Perform the side effects of a batch of fired events and return the visual
7
7
  * output: every event is recorded in the log (so the badge/panel stay accurate),
@@ -1,4 +1,4 @@
1
- import type { AlertEvent, AlertRule } from './alert-types';
1
+ import type { AlertEvent, AlertRule } from './alert-types.js';
2
2
  export type AlertEngineOptions<TData> = {
3
3
  rules: AlertRule[];
4
4
  getRowId: (row: TData) => string;
@@ -4,8 +4,8 @@
4
4
  * once when a row starts matching (not on every re-evaluation while it keeps
5
5
  * matching). The reactive/observing wrapper lives in `alert-engine-attach.ts`.
6
6
  */
7
- import { evaluateChange, evaluatePredicate } from '../expressions/evaluate';
8
- import { collectColumnRefs } from '../expressions/parse';
7
+ import { evaluateChange, evaluatePredicate } from '../expressions/evaluate.js';
8
+ import { collectColumnRefs } from '../expressions/parse.js';
9
9
  const AGG_ROW_KEY = '*';
10
10
  /** Fill message-template tokens from the firing context. */
11
11
  export function renderTemplate(template, ctx) {
@@ -5,7 +5,7 @@
5
5
  * already uses for color scales and data bars. No new rendering path.
6
6
  */
7
7
  import type { ConditionalFormat } from '@svgrid/grid/format';
8
- import type { AlertEvent, AlertRule } from './alert-types';
8
+ import type { AlertEvent, AlertRule } from './alert-types.js';
9
9
  export type StylingContext<TData> = {
10
10
  getValue?: (row: TData, columnId: string) => unknown;
11
11
  locale?: string | ReadonlyArray<string>;
@@ -1,4 +1,4 @@
1
- import { evaluatePredicate } from '../expressions/evaluate';
1
+ import { evaluatePredicate } from '../expressions/evaluate.js';
2
2
  /** Which action kinds paint onto cells. */
3
3
  const STYLING_KINDS = new Set(['badge', 'highlight']);
4
4
  /**
@@ -25,9 +25,9 @@
25
25
  * instance to a scheduler and an `onEvents` sink; `attachAlertEngine` wraps it
26
26
  * for non-Svelte hosts.
27
27
  */
28
- import type { AlertEngine } from './alert-engine';
29
- import type { AlertEvent, AlertRule } from './alert-types';
30
- import { type AlertScheduler, type AlertSchedulerMode } from './alert-scheduler';
28
+ import type { AlertEngine } from './alert-engine.js';
29
+ import type { AlertEvent, AlertRule } from './alert-types.js';
30
+ import { type AlertScheduler, type AlertSchedulerMode } from './alert-scheduler.js';
31
31
  export type AlertObserverOptions<TData> = {
32
32
  engine: AlertEngine<TData>;
33
33
  getRowId: (row: TData) => string;
@@ -1,4 +1,4 @@
1
- import { createAlertScheduler } from './alert-scheduler';
1
+ import { createAlertScheduler } from './alert-scheduler.js';
2
2
  const clone = (r) => r && typeof r === 'object' ? { ...r } : r;
3
3
  export function createAlertObserver(opts) {
4
4
  const { engine, getRowId, onEvents } = opts;
@@ -4,7 +4,7 @@
4
4
  * a small CRUD manager. `export()` / `import()` make a rule set shareable as
5
5
  * JSON, so a team lead can hand round a set of alerts.
6
6
  */
7
- import type { AlertRule } from './alert-types';
7
+ import type { AlertRule } from './alert-types.js';
8
8
  export type AlertRulesStorage = {
9
9
  read(): AlertRule[];
10
10
  write(rules: AlertRule[]): void;
@@ -8,7 +8,7 @@
8
8
  * `pushMany` (not one reassignment per event), and `activeCount` is a maintained
9
9
  * counter - not an O(n) reduce recomputed on every render.
10
10
  */
11
- import type { AlertEvent } from './alert-types';
11
+ import type { AlertEvent } from './alert-types.js';
12
12
  /** The shared alerts log. Read `.events` / `.activeCount` inside a component. */
13
13
  export declare const alertStore: {
14
14
  readonly events: AlertEvent[];
@@ -9,8 +9,8 @@
9
9
  *
10
10
  * Predicates and change tests come from the expression layer (`../expressions`).
11
11
  */
12
- import type { ChangeExpr, PredicateExpr } from '../expressions/expression-types';
13
- import type { Schedule } from '../scheduling';
12
+ import type { ChangeExpr, PredicateExpr } from '../expressions/expression-types.js';
13
+ import type { Schedule } from '../scheduling.js';
14
14
  /** Maps onto the toast variants + conditional-format intent. */
15
15
  export type AlertSeverity = 'info' | 'success' | 'warning' | 'error';
16
16
  /** What the rule watches over. */
package/dist/alerts.js CHANGED
@@ -15,8 +15,8 @@
15
15
  * // spread `formats` into <SvGrid conditionalFormats={[...base, ...formats]} />
16
16
  * ```
17
17
  */
18
- import { isLicenseKeySet } from './license';
19
- import { emitUnlicensedNudge } from './watermark';
18
+ import { isLicenseKeySet } from './license.js';
19
+ import { emitUnlicensedNudge } from './watermark.js';
20
20
  let enabled = false;
21
21
  /** Turn on the alerts feature (soft-gated). Idempotent. */
22
22
  export function enableAlerts() {
package/dist/board.js CHANGED
@@ -15,8 +15,8 @@
15
15
  * ```
16
16
  */
17
17
  import { registerBoardView } from '@svgrid/grid';
18
- import { isLicenseKeySet } from './license';
19
- import { emitUnlicensedNudge } from './watermark';
18
+ import { isLicenseKeySet } from './license.js';
19
+ import { emitUnlicensedNudge } from './watermark.js';
20
20
  import SvGridBoard from './SvGridBoard.svelte';
21
21
  let enabled = false;
22
22
  /**