@svgrid/enterprise 3.0.0 → 3.0.1

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 (235) 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/SvGridAlerts.svelte.d.ts +2 -2
  15. package/dist/SvGridBoard.svelte +2358 -2358
  16. package/dist/SvGridBulkEditDrawer.svelte.d.ts +1 -1
  17. package/dist/SvGridEditPanel.svelte +1157 -1157
  18. package/dist/SvGridEditPanel.svelte.d.ts +3 -3
  19. package/dist/SvGridMasterDetail.svelte +116 -116
  20. package/dist/SvGridMasterDetail.svelte.d.ts +1 -1
  21. package/dist/SvGridScheduler.svelte +5358 -5358
  22. package/dist/SvImportDialog.svelte +1020 -1020
  23. package/dist/SvImportDialog.svelte.d.ts +2 -2
  24. package/dist/SvLookupInput.svelte +180 -180
  25. package/dist/SvLookupInput.svelte.d.ts +1 -1
  26. package/dist/SvPivotDesigner.svelte +1990 -1990
  27. package/dist/SvPivotDesigner.svelte.d.ts +2 -2
  28. package/dist/SvRecordDetail.svelte.d.ts +1 -1
  29. package/dist/SvSchedule.svelte.d.ts +1 -1
  30. package/dist/SvSchemaChart.svelte +234 -234
  31. package/dist/SvSchemaChart.svelte.d.ts +2 -2
  32. package/dist/SvSchemaDashboard.svelte +130 -130
  33. package/dist/SvSchemaDashboard.svelte.d.ts +3 -3
  34. package/dist/advanced-filter/expr-columns-from-grid.d.ts +1 -1
  35. package/dist/advanced-filter-enable.js +3 -3
  36. package/dist/alerts/alert-engine-attach.d.ts +2 -2
  37. package/dist/alerts/alert-engine-attach.js +3 -3
  38. package/dist/alerts/alert-engine.d.ts +1 -1
  39. package/dist/alerts/alert-engine.js +2 -2
  40. package/dist/alerts/alert-formats.d.ts +1 -1
  41. package/dist/alerts/alert-formats.js +1 -1
  42. package/dist/alerts/alert-observer.d.ts +3 -3
  43. package/dist/alerts/alert-observer.js +1 -1
  44. package/dist/alerts/alert-storage.d.ts +1 -1
  45. package/dist/alerts/alert-store.svelte.d.ts +1 -1
  46. package/dist/alerts/alert-types.d.ts +2 -2
  47. package/dist/alerts.js +2 -2
  48. package/dist/board.js +2 -2
  49. package/dist/cdn/svgrid-enterprise.svelte-external.js +1161 -1144
  50. package/dist/designer/assets/GridMenus-B1JtIN21.js +8 -0
  51. package/dist/designer/assets/SvDateRangeInput-C0iCCZ8o.css +1 -0
  52. package/dist/designer/assets/{SvDateRangeInput-CVn-yqrQ.js → SvDateRangeInput-CjO7nn_x.js} +1 -1
  53. package/dist/designer/assets/SvDateTimePicker-ByBD_ov6.js +1 -0
  54. package/dist/designer/assets/SvDateTimePicker-DPv09DIT.css +1 -0
  55. package/dist/designer/assets/SvField-YDLipR6O.css +1 -0
  56. package/dist/designer/assets/{SvField-BsqiA5me.js → SvField-cj1PFNgZ.js} +1 -1
  57. package/dist/designer/assets/{preload-helper-CG0n22O7.js → SvGrid.helpers-BgT-gnCo.js} +1 -1
  58. package/dist/designer/assets/SvGridCellEditor-0W1L2hJ1.js +2 -0
  59. package/dist/designer/assets/SvGridChart-DBOR4xcz.js +2 -0
  60. package/dist/designer/assets/SvGridChart-fkMWeh1J.css +1 -0
  61. package/dist/designer/assets/SvGridChartPanel-symrhNnR.js +11 -0
  62. package/dist/designer/assets/SvGridChartView-BmRxq6mU.js +1 -0
  63. package/dist/designer/assets/SvGridChartView-DUc-1RUf.css +1 -0
  64. package/dist/designer/assets/SvGridDropdown-Bb3HH2Aj.js +1 -0
  65. package/dist/designer/assets/SvGridDropdown-CcidB3rm.css +1 -0
  66. package/dist/designer/assets/SvListBox-1oUF6Iav.js +110 -0
  67. package/dist/designer/assets/SvListBox-BXfyqy4a.css +1 -0
  68. package/dist/designer/assets/cell-formatting-wr5wm7US.js +1 -0
  69. package/dist/designer/assets/chart-DXFganU8.js +1 -0
  70. package/dist/designer/assets/date-format-DGagAqRc.css +1 -0
  71. package/dist/designer/assets/{date-format-4DJvNtG2.js → date-format-onlYDsrY.js} +1 -1
  72. package/dist/designer/assets/export-format-D-eP4b2l.js +6 -0
  73. package/dist/designer/assets/{index-zUBix-JQ.js → index-C_a9Cj8Y.js} +2984 -141
  74. package/dist/designer/assets/index-k2stW6L8.css +1 -0
  75. package/dist/designer/assets/preload-helper-HclGiUj8.js +1 -0
  76. package/dist/designer/assets/src-D9p27OGC.js +58 -0
  77. package/dist/designer/index.html +22 -22
  78. package/dist/export-conditional.d.ts +1 -1
  79. package/dist/export-print.js +19 -19
  80. package/dist/export-xls.d.ts +2 -2
  81. package/dist/export.d.ts +2 -2
  82. package/dist/export.js +7 -7
  83. package/dist/expressions/builder-tree.d.ts +2 -2
  84. package/dist/expressions/builder-tree.js +1 -1
  85. package/dist/expressions/compile.d.ts +1 -1
  86. package/dist/import.js +1 -1
  87. package/dist/index.d.ts +53 -53
  88. package/dist/index.js +50 -50
  89. package/dist/install.d.ts +4 -4
  90. package/dist/install.js +11 -11
  91. package/dist/license.d.ts +3 -2
  92. package/dist/license.js +9 -4
  93. package/dist/node/studio.js +123 -114
  94. package/dist/pivot-chart.d.ts +1 -1
  95. package/dist/pivot-designer.d.ts +1 -1
  96. package/dist/pivot-enable.js +3 -3
  97. package/dist/print.d.ts +1 -1
  98. package/dist/print.js +4 -4
  99. package/dist/scheduler-config.d.ts +5 -5
  100. package/dist/scheduler-freebusy.d.ts +1 -1
  101. package/dist/scheduler-freebusy.js +1 -1
  102. package/dist/scheduler.js +2 -2
  103. package/dist/schema-designer.d.ts +1 -1
  104. package/dist/schema-designer.js +2 -2
  105. package/dist/selection-bar.js +2 -2
  106. package/dist/sources/aggregate.d.ts +1 -1
  107. package/dist/sources/auth-supabase.js +1 -1
  108. package/dist/sources/dashboard.d.ts +2 -2
  109. package/dist/sources/dashboard.js +1 -1
  110. package/dist/sources/index.d.ts +13 -13
  111. package/dist/sources/index.js +13 -13
  112. package/dist/sources/realtime-supabase.js +1 -1
  113. package/dist/sources/relation-lookup.d.ts +1 -1
  114. package/dist/sources/relation-lookup.js +1 -1
  115. package/dist/sources/rest-adapters.d.ts +1 -1
  116. package/dist/sources/rest-adapters.js +1 -1
  117. package/dist/sources/rest.d.ts +2 -2
  118. package/dist/sources/rest.js +3 -3
  119. package/dist/sources/supabase.d.ts +2 -2
  120. package/dist/sources/supabase.js +3 -3
  121. package/dist/sources/with-entity-rules.d.ts +1 -1
  122. package/dist/sources/with-entity-rules.js +1 -1
  123. package/dist/sources/with-relation-labels.d.ts +1 -1
  124. package/dist/studio/emit-project.js +2161 -2127
  125. package/dist/studio/emit-schema.js +369 -369
  126. package/dist/studio/index.d.ts +1 -1
  127. package/dist/studio/index.js +1 -1
  128. package/dist/studio/introspect-db.js +45 -45
  129. package/dist/studio/project.d.ts +10 -0
  130. package/dist/studio/samples/crm.js +6 -6
  131. package/dist/studio/samples/fleet.js +7 -7
  132. package/dist/studio/samples/insurance.js +9 -9
  133. package/dist/studio/samples/inventory.js +12 -12
  134. package/dist/studio/samples/projects.js +5 -5
  135. package/dist/studio/samples/support.js +8 -8
  136. package/dist/studio/scaffold-app.js +104 -104
  137. package/dist/studio/scaffold.js +151 -151
  138. package/dist/studio/ui-components.d.ts +7 -0
  139. package/dist/studio/ui-components.js +35 -0
  140. package/dist/sveltekit/in-memory.d.ts +3 -3
  141. package/dist/sveltekit/in-memory.js +4 -4
  142. package/dist/sveltekit/index.d.ts +6 -6
  143. package/dist/sveltekit/index.js +5 -5
  144. package/dist/sveltekit/query-plan.d.ts +1 -1
  145. package/dist/sveltekit/sql-source.d.ts +4 -4
  146. package/dist/sveltekit/sql-source.js +4 -4
  147. package/dist/sveltekit/sql.d.ts +1 -1
  148. package/dist/sveltekit/transport.d.ts +2 -2
  149. package/dist/sveltekit/transport.js +1 -1
  150. package/dist/upgrade-prompt.js +25 -25
  151. package/package.json +6 -3
  152. package/dist/designer/assets/GridMenus-Cgilexpk.js +0 -8
  153. package/dist/designer/assets/SvDateRangeInput-BV5OXYQ2.css +0 -1
  154. package/dist/designer/assets/SvDateTimePicker-BdioTrJQ.js +0 -1
  155. package/dist/designer/assets/SvDateTimePicker-CY8TK4BT.css +0 -1
  156. package/dist/designer/assets/SvField-BF-9TJSd.css +0 -1
  157. package/dist/designer/assets/SvGridCellEditor-dLY7_kk9.js +0 -2
  158. package/dist/designer/assets/SvGridChart-BEDNTdc5.js +0 -2
  159. package/dist/designer/assets/SvGridChart-Vu4Nvjiv.css +0 -1
  160. package/dist/designer/assets/SvGridChartPanel-x3lzSxuf.js +0 -10
  161. package/dist/designer/assets/SvGridChartView-CAKhPELi.js +0 -1
  162. package/dist/designer/assets/SvGridChartView-DX9HfkBR.css +0 -1
  163. package/dist/designer/assets/SvGridDropdown-CAYG7Y-O.js +0 -1
  164. package/dist/designer/assets/SvGridDropdown-Crwb2P3Q.css +0 -1
  165. package/dist/designer/assets/SvListBox-CVYQcLX9.js +0 -1
  166. package/dist/designer/assets/SvListBox-DgN8kvjt.css +0 -1
  167. package/dist/designer/assets/chart-DHEgt4lN.js +0 -1
  168. package/dist/designer/assets/date-format-Dzy4mTGh.css +0 -1
  169. package/dist/designer/assets/export-format-DwjuTfrQ.js +0 -6
  170. package/dist/designer/assets/index-Cp7fDJ3b.css +0 -1
  171. package/dist/designer/assets/js-scroller.svelte-Bhxqb3-c.js +0 -110
  172. package/dist/designer/assets/src-B7DNcoQK.css +0 -1
  173. package/dist/designer/assets/src-BoYyigAC.js +0 -2896
  174. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/_svelte_metadata.json +0 -1
  175. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/_metadata.json +0 -178
  176. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js +0 -3875
  177. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/attachments-BOv1rBKp.js.map +0 -1
  178. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js +0 -21
  179. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/constants-B9vgIdCd.js.map +0 -1
  180. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js +0 -1938
  181. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/dev-T1qbW_qD.js.map +0 -1
  182. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js +0 -205
  183. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/events-Bo11SfVK.js.map +0 -1
  184. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js +0 -18
  185. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/flags-X7D4vfrZ.js.map +0 -1
  186. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js +0 -264
  187. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/hydration-oyUje5i1.js.map +0 -1
  188. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js +0 -697
  189. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/legacy-client-DeSQgSFm.js.map +0 -1
  190. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/package.json +0 -3
  191. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js +0 -134
  192. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte.js.map +0 -1
  193. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js +0 -55
  194. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_animate.js.map +0 -1
  195. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_attachments.js +0 -2
  196. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js +0 -46843
  197. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_compiler.js.map +0 -1
  198. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js +0 -237
  199. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_easing.js.map +0 -1
  200. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_events.js +0 -2
  201. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js +0 -4
  202. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal.js.map +0 -1
  203. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_client.js +0 -7
  204. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js +0 -4
  205. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_disclose-version.js.map +0 -1
  206. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js +0 -5
  207. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_async.js.map +0 -1
  208. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js +0 -5
  209. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_legacy.js.map +0 -1
  210. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js +0 -5
  211. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_flags_tracing.js.map +0 -1
  212. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_internal_server.js +0 -6
  213. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js +0 -83
  214. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_legacy.js.map +0 -1
  215. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js +0 -559
  216. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_motion.js.map +0 -1
  217. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js +0 -24
  218. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity.js.map +0 -1
  219. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js +0 -122
  220. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_reactivity_window.js.map +0 -1
  221. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_server.js +0 -2
  222. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js +0 -89
  223. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_store.js.map +0 -1
  224. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js +0 -241
  225. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/svelte_transition.js.map +0 -1
  226. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js +0 -4938
  227. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-BbWyXNk1.js.map +0 -1
  228. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js +0 -495
  229. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/utils-DI_fC7vt.js.map +0 -1
  230. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js +0 -190
  231. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/validate-Dyr3lQv9.js.map +0 -1
  232. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js +0 -8
  233. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/version-_9FHH-LF.js.map +0 -1
  234. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js +0 -138
  235. package/dist/studio/node_modules/.vite/vitest/be65d27ae088a0e03fd8e1331d90b01649464cb6/deps___vitest__/warnings-CUbSPnyP.js.map +0 -1
@@ -13,8 +13,8 @@
13
13
  */
14
14
  import type { RowData, TableFeatures } from '@svgrid/grid';
15
15
  import type { ConditionalFormat } from '@svgrid/grid/format';
16
- import type { EnterpriseGridApi } from './install';
17
- import type { ExportFormat, ExportRowSource } from './export';
16
+ import type { EnterpriseGridApi } from './install.js';
17
+ import type { ExportFormat, ExportRowSource } from './export.js';
18
18
  declare function $$render<TFeatures extends TableFeatures, TData extends RowData>(): {
19
19
  props: {
20
20
  api: EnterpriseGridApi<TFeatures, TData> | null | undefined;
@@ -1,5 +1,5 @@
1
- import { type ExprColumn } from './expressions/expression-columns';
2
- import type { PredicateExpr } from './expressions/expression-types';
1
+ import { type ExprColumn } from './expressions/expression-columns.js';
2
+ import type { PredicateExpr } from './expressions/expression-types.js';
3
3
  type Props = {
4
4
  columns: ReadonlyArray<ExprColumn>;
5
5
  value?: PredicateExpr;
@@ -1,113 +1,113 @@
1
- <script lang="ts">
2
- /**
3
- * SvFileInput - a file / image upload control for the edit form. Picks a file,
4
- * shows an image preview (when `image`), and stores a URL. With an `upload`
5
- * handler it pushes to your storage and stores the returned URL; without one it
6
- * falls back to an inline data URL (great for demos / small assets). Used by
7
- * SvGridEditPanel for fields with an `upload` config.
8
- */
9
- type Props = {
10
- value: unknown
11
- onChange: (url: string) => void
12
- id?: string
13
- accept?: string
14
- image?: boolean
15
- disabled?: boolean
16
- /** Push the file to storage and resolve with the URL to store. */
17
- upload?: (file: File) => Promise<string>
18
- }
19
-
20
- let { value, onChange, id, accept, image = false, disabled = false, upload }: Props = $props()
21
-
22
- let loading = $state(false)
23
- let error = $state<string | null>(null)
24
- let name = $state('')
25
- let inputEl: HTMLInputElement | undefined = $state()
26
-
27
- const url = $derived(typeof value === 'string' ? value : '')
28
-
29
- function readAsDataUrl(file: File): Promise<string> {
30
- return new Promise((resolve, reject) => {
31
- const reader = new FileReader()
32
- reader.onload = () => resolve(String(reader.result))
33
- reader.onerror = () => reject(new Error('Could not read the file'))
34
- reader.readAsDataURL(file)
35
- })
36
- }
37
-
38
- async function onPick(e: Event) {
39
- const file = (e.currentTarget as HTMLInputElement).files?.[0]
40
- if (!file) return
41
- name = file.name
42
- error = null
43
- loading = true
44
- try {
45
- onChange(upload ? await upload(file) : await readAsDataUrl(file))
46
- } catch (err) {
47
- error = err instanceof Error ? err.message : 'Upload failed'
48
- } finally {
49
- loading = false
50
- }
51
- }
52
-
53
- function clear() {
54
- onChange('')
55
- name = ''
56
- if (inputEl) inputEl.value = ''
57
- }
58
- </script>
59
-
60
- <div class="sv-file">
61
- {#if image && url}
62
- <img class="sv-file__preview" src={url} alt="preview" />
63
- {/if}
64
-
65
- <div class="sv-file__row">
66
- <button
67
- type="button"
68
- class="sv-file__btn"
69
- {disabled}
70
- onclick={() => inputEl?.click()}
71
- >{loading ? 'Uploading…' : url ? 'Replace' : 'Choose file'}</button>
72
-
73
- {#if url && !image}
74
- <span class="sv-file__name" title={name || url}>{name || 'Uploaded file'}</span>
75
- {/if}
76
- {#if url && !disabled}
77
- <button type="button" class="sv-file__clear" aria-label="Remove" title="Remove" onclick={clear}>&times;</button>
78
- {/if}
79
-
80
- <input
81
- {id}
82
- bind:this={inputEl}
83
- class="sv-file__input"
84
- type="file"
85
- {accept}
86
- {disabled}
87
- onchange={onPick}
88
- />
89
- </div>
90
-
91
- {#if error}<p class="sv-file__err">{error}</p>{/if}
92
- </div>
93
-
94
- <style>
95
- .sv-file { display: flex; flex-direction: column; gap: 8px; }
96
- .sv-file__row { display: flex; align-items: center; gap: 8px; }
97
- .sv-file__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
98
- .sv-file__preview {
99
- width: 64px; height: 64px; object-fit: cover; border-radius: 8px;
100
- border: 1px solid var(--sg-border, #ddd); background: var(--sg-header-bg, #f6f6f6);
101
- }
102
- .sv-file__btn {
103
- padding: 7px 12px; border: 1px solid var(--sg-border, #ccc); border-radius: 6px;
104
- background: var(--sg-bg, #fff); color: var(--sg-fg, inherit); cursor: pointer; font: inherit;
105
- }
106
- .sv-file__btn:disabled { opacity: 0.6; cursor: default; }
107
- .sv-file__name { font-size: 12px; color: var(--sg-muted, #666); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160px; }
108
- .sv-file__clear {
109
- border: none; background: none; cursor: pointer; font-size: 16px; line-height: 1;
110
- color: var(--sg-muted, #888); padding: 2px 4px;
111
- }
112
- .sv-file__err { margin: 0; font-size: 12px; color: #dc2626; }
113
- </style>
1
+ <script lang="ts">
2
+ /**
3
+ * SvFileInput - a file / image upload control for the edit form. Picks a file,
4
+ * shows an image preview (when `image`), and stores a URL. With an `upload`
5
+ * handler it pushes to your storage and stores the returned URL; without one it
6
+ * falls back to an inline data URL (great for demos / small assets). Used by
7
+ * SvGridEditPanel for fields with an `upload` config.
8
+ */
9
+ type Props = {
10
+ value: unknown
11
+ onChange: (url: string) => void
12
+ id?: string
13
+ accept?: string
14
+ image?: boolean
15
+ disabled?: boolean
16
+ /** Push the file to storage and resolve with the URL to store. */
17
+ upload?: (file: File) => Promise<string>
18
+ }
19
+
20
+ let { value, onChange, id, accept, image = false, disabled = false, upload }: Props = $props()
21
+
22
+ let loading = $state(false)
23
+ let error = $state<string | null>(null)
24
+ let name = $state('')
25
+ let inputEl: HTMLInputElement | undefined = $state()
26
+
27
+ const url = $derived(typeof value === 'string' ? value : '')
28
+
29
+ function readAsDataUrl(file: File): Promise<string> {
30
+ return new Promise((resolve, reject) => {
31
+ const reader = new FileReader()
32
+ reader.onload = () => resolve(String(reader.result))
33
+ reader.onerror = () => reject(new Error('Could not read the file'))
34
+ reader.readAsDataURL(file)
35
+ })
36
+ }
37
+
38
+ async function onPick(e: Event) {
39
+ const file = (e.currentTarget as HTMLInputElement).files?.[0]
40
+ if (!file) return
41
+ name = file.name
42
+ error = null
43
+ loading = true
44
+ try {
45
+ onChange(upload ? await upload(file) : await readAsDataUrl(file))
46
+ } catch (err) {
47
+ error = err instanceof Error ? err.message : 'Upload failed'
48
+ } finally {
49
+ loading = false
50
+ }
51
+ }
52
+
53
+ function clear() {
54
+ onChange('')
55
+ name = ''
56
+ if (inputEl) inputEl.value = ''
57
+ }
58
+ </script>
59
+
60
+ <div class="sv-file">
61
+ {#if image && url}
62
+ <img class="sv-file__preview" src={url} alt="preview" />
63
+ {/if}
64
+
65
+ <div class="sv-file__row">
66
+ <button
67
+ type="button"
68
+ class="sv-file__btn"
69
+ {disabled}
70
+ onclick={() => inputEl?.click()}
71
+ >{loading ? 'Uploading…' : url ? 'Replace' : 'Choose file'}</button>
72
+
73
+ {#if url && !image}
74
+ <span class="sv-file__name" title={name || url}>{name || 'Uploaded file'}</span>
75
+ {/if}
76
+ {#if url && !disabled}
77
+ <button type="button" class="sv-file__clear" aria-label="Remove" title="Remove" onclick={clear}>&times;</button>
78
+ {/if}
79
+
80
+ <input
81
+ {id}
82
+ bind:this={inputEl}
83
+ class="sv-file__input"
84
+ type="file"
85
+ {accept}
86
+ {disabled}
87
+ onchange={onPick}
88
+ />
89
+ </div>
90
+
91
+ {#if error}<p class="sv-file__err">{error}</p>{/if}
92
+ </div>
93
+
94
+ <style>
95
+ .sv-file { display: flex; flex-direction: column; gap: 8px; }
96
+ .sv-file__row { display: flex; align-items: center; gap: 8px; }
97
+ .sv-file__input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
98
+ .sv-file__preview {
99
+ width: 64px; height: 64px; object-fit: cover; border-radius: 8px;
100
+ border: 1px solid var(--sg-border, #ddd); background: var(--sg-header-bg, #f6f6f6);
101
+ }
102
+ .sv-file__btn {
103
+ padding: 7px 12px; border: 1px solid var(--sg-border, #ccc); border-radius: 6px;
104
+ background: var(--sg-bg, #fff); color: var(--sg-fg, inherit); cursor: pointer; font: inherit;
105
+ }
106
+ .sv-file__btn:disabled { opacity: 0.6; cursor: default; }
107
+ .sv-file__name { font-size: 12px; color: var(--sg-muted, #666); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 160px; }
108
+ .sv-file__clear {
109
+ border: none; background: none; cursor: pointer; font-size: 16px; line-height: 1;
110
+ color: var(--sg-muted, #888); padding: 2px 4px;
111
+ }
112
+ .sv-file__err { margin: 0; font-size: 12px; color: #dc2626; }
113
+ </style>
@@ -1,6 +1,6 @@
1
1
  import type { ConditionalFormat } from '@svgrid/grid/format';
2
- import type { ExprColumn } from './expressions/expression-columns';
3
- import type { AlertEvent, AlertRule } from './alerts/alert-types';
2
+ import type { ExprColumn } from './expressions/expression-columns.js';
3
+ import type { AlertEvent, AlertRule } from './alerts/alert-types.js';
4
4
  declare function $$render<TRow extends Record<string, unknown>>(): {
5
5
  props: {
6
6
  /** The same rows bound to the grid. In watch mode, observed for changes. */