@lavalogic/scoria 0.35.0 → 0.37.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 (555) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +46 -42
  3. package/dist/Components/AccordionGroupButton.svelte +106 -106
  4. package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
  5. package/dist/Components/AccordionGroupProps.d.ts +10 -2
  6. package/dist/Components/Action.svelte +137 -139
  7. package/dist/Components/ActionProps.d.ts +23 -3
  8. package/dist/Components/AlertModal.svelte +176 -125
  9. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
  10. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
  11. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
  12. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
  13. package/dist/Components/Base/BaseModal.svelte +172 -0
  14. package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
  15. package/dist/Components/Base/BaseModalProps.d.ts +73 -0
  16. package/dist/Components/Base/BaseModalProps.js +1 -0
  17. package/dist/Components/Base/ContextWrapper.svelte +72 -50
  18. package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
  19. package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
  20. package/dist/Components/Base/Pagination.svelte +198 -190
  21. package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
  22. package/dist/Components/Base/PaginationProps.d.ts +60 -3
  23. package/dist/Components/Base/Snippets.svelte +36 -29
  24. package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
  25. package/dist/Components/BigRadioSet.svelte +39 -30
  26. package/dist/Components/BigRadioSetProps.d.ts +17 -1
  27. package/dist/Components/Bubble.svelte +110 -77
  28. package/dist/Components/Bubble.svelte.d.ts +23 -2
  29. package/dist/Components/BubbleProps.d.ts +55 -4
  30. package/dist/Components/Button.svelte +209 -197
  31. package/dist/Components/ButtonProps.d.ts +66 -1
  32. package/dist/Components/Checkbox.svelte +100 -72
  33. package/dist/Components/Checkbox.svelte.d.ts +1 -12
  34. package/dist/Components/CheckboxProps.d.ts +27 -0
  35. package/dist/Components/CheckboxProps.js +1 -0
  36. package/dist/Components/CollapsibleCard.svelte +114 -83
  37. package/dist/Components/CollapsibleCardProps.d.ts +22 -1
  38. package/dist/Components/Contexts/ContextMenu.svelte +178 -157
  39. package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
  40. package/dist/Components/Contexts/ContextMenuDivider.svelte +19 -11
  41. package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
  42. package/dist/Components/Contexts/ContextMenuOption.svelte +66 -57
  43. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
  44. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
  45. package/dist/Components/Contexts/Toast.svelte +88 -64
  46. package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
  47. package/dist/Components/Contexts/ToastContainer.svelte +68 -49
  48. package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
  49. package/dist/Components/Contexts/ToastProps.d.ts +14 -1
  50. package/dist/Components/Contexts/Tooltip.svelte +47 -36
  51. package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
  52. package/dist/Components/DataMatrixIcon.svelte +113 -42
  53. package/dist/Components/DataMatrixIconProps.d.ts +73 -1
  54. package/dist/Components/DateInput.svelte +144 -109
  55. package/dist/Components/DateInput.svelte.d.ts +1 -1
  56. package/dist/Components/DateOnlyInputProps.d.ts +31 -5
  57. package/dist/Components/DatePicker.svelte +301 -313
  58. package/dist/Components/DatePickerProps.d.ts +18 -1
  59. package/dist/Components/DateTimeInputProps.d.ts +30 -5
  60. package/dist/Components/DesktopModal.svelte +90 -119
  61. package/dist/Components/DesktopModalProps.d.ts +5 -4
  62. package/dist/Components/Dial.svelte +213 -151
  63. package/dist/Components/DialProps.d.ts +74 -2
  64. package/dist/Components/DimensionInput.svelte +171 -185
  65. package/dist/Components/DimensionInput.svelte.d.ts +1 -1
  66. package/dist/Components/DimensionInputProps.d.ts +39 -4
  67. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -107
  68. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
  69. package/dist/Components/DragMenu/DraggableCard.svelte +77 -41
  70. package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
  71. package/dist/Components/FileCard.svelte +24 -20
  72. package/dist/Components/FileCardProps.d.ts +17 -1
  73. package/dist/Components/FileUpload.svelte +236 -196
  74. package/dist/Components/FileUploadProps.d.ts +34 -4
  75. package/dist/Components/GridInput.svelte +201 -191
  76. package/dist/Components/GridInput.svelte.d.ts +5 -5
  77. package/dist/Components/GridInputProps.d.ts +4 -1
  78. package/dist/Components/GridInputSet.svelte +31 -24
  79. package/dist/Components/GridInputSet.svelte.d.ts +5 -5
  80. package/dist/Components/GridInputSetProps.d.ts +4 -2
  81. package/dist/Components/HorizontalTabGroup.svelte +81 -79
  82. package/dist/Components/HorizontalTabGroupButton.svelte +51 -103
  83. package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
  84. package/dist/Components/Icon.svelte +144 -103
  85. package/dist/Components/IconProps.d.ts +54 -6
  86. package/dist/Components/Icons.d.ts +8 -0
  87. package/dist/Components/Icons.js +591 -572
  88. package/dist/Components/LoadingAnimation.svelte +39 -39
  89. package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
  90. package/dist/Components/LoadingAnimationProps.d.ts +16 -0
  91. package/dist/Components/LoadingAnimationProps.js +1 -0
  92. package/dist/Components/LoadingModal.svelte +48 -50
  93. package/dist/Components/LoadingModal.svelte.d.ts +1 -4
  94. package/dist/Components/LoadingModalProps.d.ts +17 -0
  95. package/dist/Components/LoadingModalProps.js +1 -0
  96. package/dist/Components/LoadingOverlay.svelte +28 -30
  97. package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
  98. package/dist/Components/LoadingOverlayProps.d.ts +28 -0
  99. package/dist/Components/LoadingOverlayProps.js +1 -0
  100. package/dist/Components/Modal.svelte +250 -255
  101. package/dist/Components/Modal.svelte.d.ts +1 -25
  102. package/dist/Components/ModalProps.d.ts +65 -0
  103. package/dist/Components/ModalProps.js +1 -0
  104. package/dist/Components/MultiSelect.svelte +238 -226
  105. package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
  106. package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
  107. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  108. package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
  109. package/dist/Components/Nav/Nav.svelte +115 -110
  110. package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
  111. package/dist/Components/Nav/NavProps.d.ts +50 -3
  112. package/dist/Components/Nav/NavServiceMenuList.svelte +44 -35
  113. package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
  114. package/dist/Components/Nav/NavTab.svelte +62 -91
  115. package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
  116. package/dist/Components/Nav/NavTabProps.d.ts +16 -2
  117. package/dist/Components/Nav/ServiceMenuItem.svelte +101 -92
  118. package/dist/Components/Nav/ServicesNav.svelte +96 -70
  119. package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
  120. package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
  121. package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
  122. package/dist/Components/NumberInput.svelte +155 -145
  123. package/dist/Components/NumberInputProps.d.ts +37 -0
  124. package/dist/Components/PageHeading.svelte +25 -36
  125. package/dist/Components/PageHeading.svelte.d.ts +1 -6
  126. package/dist/Components/PageHeadingProps.d.ts +23 -0
  127. package/dist/Components/PageHeadingProps.js +1 -0
  128. package/dist/Components/PasswordInput.svelte +85 -73
  129. package/dist/Components/PasswordInput.svelte.d.ts +2 -2
  130. package/dist/Components/PasswordInputProps.d.ts +21 -0
  131. package/dist/Components/PasswordInputProps.js +1 -0
  132. package/dist/Components/Portal.svelte +36 -25
  133. package/dist/Components/PortalProps.d.ts +20 -1
  134. package/dist/Components/ProgressBubble.svelte +129 -84
  135. package/dist/Components/ProgressBubbleProps.d.ts +23 -2
  136. package/dist/Components/QuerySelect.svelte +384 -440
  137. package/dist/Components/QuerySelect.svelte.d.ts +2 -29
  138. package/dist/Components/QuerySelectProps.d.ts +66 -0
  139. package/dist/Components/QuerySelectProps.js +1 -0
  140. package/dist/Components/SingleSelect.svelte +268 -290
  141. package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
  142. package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
  143. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
  144. package/dist/Components/StepButton.svelte +70 -120
  145. package/dist/Components/StepForm.svelte +147 -147
  146. package/dist/Components/StepFormProps.d.ts +16 -2
  147. package/dist/Components/Switch.svelte +84 -47
  148. package/dist/Components/Switch.svelte.d.ts +1 -1
  149. package/dist/Components/SwitchProps.d.ts +46 -0
  150. package/dist/Components/Table/Body/HeightData.d.ts +1 -6
  151. package/dist/Components/Table/Body/HeightData.js +8 -0
  152. package/dist/Components/Table/Body/QuickSearchCell.svelte +697 -641
  153. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
  154. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  155. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +68 -34
  156. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
  157. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
  158. package/dist/Components/Table/Body/Rows/ColumnList.svelte +66 -56
  159. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
  160. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
  161. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +515 -182
  162. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
  163. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
  164. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -49
  165. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
  166. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +203 -191
  167. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
  168. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
  169. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  170. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +150 -115
  171. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
  172. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
  173. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
  174. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +149 -129
  175. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +149 -126
  176. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
  177. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
  178. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +142 -108
  179. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
  180. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
  181. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  182. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
  183. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
  184. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -72
  185. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
  186. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +148 -137
  187. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
  188. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
  189. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
  190. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -144
  191. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
  192. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
  193. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
  194. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +279 -249
  195. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
  196. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
  197. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +249 -370
  198. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
  199. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
  200. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
  201. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +291 -354
  202. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
  203. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
  204. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +201 -189
  205. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
  206. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
  207. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
  208. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +263 -325
  209. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
  210. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
  211. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +230 -381
  212. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
  213. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
  214. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +187 -177
  215. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
  216. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
  217. package/dist/Components/Table/Body/Rows/TableRow.svelte +331 -263
  218. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  219. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
  220. package/dist/Components/Table/Body/TableBody.svelte +198 -81
  221. package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
  222. package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
  223. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
  224. package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
  225. package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
  226. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -39
  227. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -28
  229. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  230. package/dist/Components/Table/Headers/TableHead.svelte +434 -294
  231. package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
  232. package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
  233. package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
  234. package/dist/Components/Table/Misc/ColumnPanel.svelte +154 -96
  235. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -99
  237. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
  238. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
  239. package/dist/Components/Table/Misc/FilterInput.svelte +545 -556
  240. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  241. package/dist/Components/Table/Misc/FilterPanel.svelte +409 -51
  242. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -77
  244. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  245. package/dist/Components/Table/Misc/SidePanel.svelte +35 -32
  246. package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
  247. package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
  248. package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
  249. package/dist/Components/Table/Misc/TableFooter.svelte +315 -306
  250. package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
  251. package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
  252. package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
  253. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +126 -157
  254. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  255. package/dist/Components/Table/Misc/TableSidebar.svelte +158 -177
  256. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte +147 -81
  258. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -100
  260. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
  261. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
  262. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
  263. package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
  264. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
  265. package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
  266. package/dist/Components/Table/NestedTable.svelte +132 -88
  267. package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
  268. package/dist/Components/Table/NestedTableProps.d.ts +25 -0
  269. package/dist/Components/Table/NestedTableProps.js +1 -0
  270. package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
  271. package/dist/Components/Table/SubApis.svelte.js +359 -0
  272. package/dist/Components/Table/Table.svelte +694 -519
  273. package/dist/Components/Table/Table.svelte.d.ts +24 -1
  274. package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
  275. package/dist/Components/Table/TableHelpers.svelte.js +88 -0
  276. package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
  277. package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
  278. package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
  279. package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
  280. package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
  281. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
  282. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
  283. package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
  284. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
  285. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
  286. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
  287. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
  288. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
  290. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
  291. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
  292. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
  293. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
  294. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
  295. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
  296. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
  297. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
  298. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
  299. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
  300. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
  301. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
  302. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
  303. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
  304. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
  305. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
  307. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
  308. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
  309. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
  310. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
  311. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
  312. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
  313. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
  314. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
  315. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
  316. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
  317. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
  318. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
  319. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
  320. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
  321. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
  322. package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
  323. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
  324. package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
  325. package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
  326. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
  327. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
  328. package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
  329. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
  330. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
  331. package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
  332. package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
  333. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
  334. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
  335. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
  336. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
  337. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
  338. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
  339. package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
  340. package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
  341. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
  342. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
  343. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
  344. package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
  345. package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
  346. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
  347. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
  348. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
  349. package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
  350. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
  351. package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
  352. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
  353. package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
  354. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
  355. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
  356. package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
  357. package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
  358. package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
  359. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
  360. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
  361. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
  362. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
  363. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
  364. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
  365. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
  366. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
  367. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
  368. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
  369. package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
  370. package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
  371. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
  372. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
  373. package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
  374. package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
  375. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
  376. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
  377. package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
  378. package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
  379. package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
  380. package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
  381. package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
  382. package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
  383. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
  384. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
  385. package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
  386. package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
  387. package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
  388. package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
  389. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
  390. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
  391. package/dist/Components/Table/Types/Header.d.ts +8 -0
  392. package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
  393. package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
  394. package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
  395. package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
  396. package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
  397. package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
  398. package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
  399. package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
  400. package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
  401. package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
  402. package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
  403. package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
  404. package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
  405. package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
  406. package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
  407. package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
  408. package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
  409. package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
  410. package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
  411. package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
  412. package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
  413. package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
  414. package/dist/Components/Table/Types/Public/RowSource.js +1 -0
  415. package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
  416. package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
  417. package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
  418. package/dist/Components/Table/Types/Public/Table.js +1 -0
  419. package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
  420. package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
  421. package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
  422. package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
  423. package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
  424. package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
  425. package/dist/Components/Table/Types/Public/index.d.ts +20 -0
  426. package/dist/Components/Table/Types/Public/index.js +8 -0
  427. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
  428. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
  429. package/dist/Components/Table/createTable.svelte.d.ts +53 -0
  430. package/dist/Components/Table/createTable.svelte.js +269 -0
  431. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  432. package/dist/Components/TextArea.svelte +127 -108
  433. package/dist/Components/TextAreaProps.d.ts +37 -0
  434. package/dist/Components/TextInput.svelte +166 -147
  435. package/dist/Components/TextInputProps.d.ts +58 -1
  436. package/dist/Components/ThreeStateRadio.svelte +140 -143
  437. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  438. package/dist/Components/Touch/BoolCard.svelte +45 -52
  439. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  440. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  441. package/dist/Components/Touch/BoolCardProps.js +1 -0
  442. package/dist/Components/Touch/DateModal.svelte +209 -217
  443. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  444. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  445. package/dist/Components/Touch/DateModalProps.js +1 -0
  446. package/dist/Components/Touch/EditCard.svelte +59 -52
  447. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  448. package/dist/Components/Touch/InfoCard.svelte +35 -28
  449. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  450. package/dist/Components/Touch/InfoTextCard.svelte +28 -21
  451. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  452. package/dist/Components/Touch/ModalExplanation.svelte +17 -20
  453. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  454. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  455. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  456. package/dist/Components/Touch/NumberKeyboard.svelte +225 -268
  457. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  458. package/dist/Components/Touch/NumberModal.svelte +79 -69
  459. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  460. package/dist/Components/Touch/PlusMinusCard.svelte +48 -52
  461. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  462. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  463. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  464. package/dist/Components/Touch/SelectModal.svelte +123 -105
  465. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  466. package/dist/Components/Touch/SummaryCard.svelte +107 -65
  467. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  468. package/dist/Components/Touch/TextAreaModal.svelte +95 -86
  469. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  470. package/dist/Components/Touch/TextModal.svelte +106 -123
  471. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  472. package/dist/Components/Touch/TouchCard.svelte +34 -72
  473. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  474. package/dist/Components/Touch/TouchModal.svelte +265 -259
  475. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  476. package/dist/Components/Touch/UtilityButton.svelte +116 -98
  477. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  478. package/dist/Components/VerticalTabGroup.svelte +80 -102
  479. package/dist/Components/VerticalTabGroupButton.svelte +59 -98
  480. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  481. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  482. package/dist/Contexts/AlertContext.svelte.js +69 -6
  483. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  484. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  485. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  486. package/dist/Contexts/TestContext.svelte.js +29 -1
  487. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  488. package/dist/Contexts/ToastContext.svelte.js +93 -24
  489. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  490. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  491. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  492. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  493. package/dist/Delay/Delay.js +1 -1
  494. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  495. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  496. package/dist/Helpers/Datamatrix.d.ts +19 -10
  497. package/dist/Helpers/Datamatrix.js +291 -2
  498. package/dist/Helpers/Helpers.svelte.d.ts +252 -17
  499. package/dist/Helpers/Helpers.svelte.js +271 -60
  500. package/dist/Helpers/INamed.d.ts +6 -0
  501. package/dist/Helpers/Storage.d.ts +67 -0
  502. package/dist/Helpers/Storage.js +138 -0
  503. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  504. package/dist/Helpers/dropdownPortal.js +232 -0
  505. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  506. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  507. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  508. package/dist/Helpers/memoiseByRow.js +78 -0
  509. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  510. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  511. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  512. package/dist/Helpers/useTooltip.svelte.js +62 -0
  513. package/dist/Types/Examples/ExampleModal.svelte +35 -34
  514. package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
  515. package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
  516. package/dist/Types/Internal/AsyncFlag.js +1 -0
  517. package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
  518. package/dist/Types/Internal/ButtonProp.d.ts +24 -2
  519. package/dist/Types/Internal/CallbackButton.d.ts +12 -0
  520. package/dist/Types/Internal/DateChange.d.ts +8 -0
  521. package/dist/Types/Internal/DatePickerType.d.ts +5 -0
  522. package/dist/Types/Internal/DatePickerType.js +6 -1
  523. package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
  524. package/dist/Types/Internal/InputVariant.d.ts +5 -0
  525. package/dist/Types/Internal/InputVariant.js +6 -1
  526. package/dist/Types/Internal/Misc.d.ts +91 -0
  527. package/dist/Types/Internal/RefWrapper.d.ts +6 -0
  528. package/dist/Types/Internal/SelectOption.d.ts +8 -0
  529. package/dist/Types/Internal/Shape.d.ts +1 -0
  530. package/dist/Types/Internal/Shape.js +2 -1
  531. package/dist/Types/Internal/Side.d.ts +1 -0
  532. package/dist/Types/Internal/Side.js +2 -1
  533. package/dist/Types/Internal/Size.d.ts +5 -0
  534. package/dist/Types/Internal/Size.js +6 -1
  535. package/dist/Types/Internal/TabOption.d.ts +15 -5
  536. package/dist/Types/Internal/Ternary.d.ts +6 -0
  537. package/dist/Types/Internal/Ternary.js +7 -1
  538. package/dist/Types/Internal/ToastMessage.d.ts +28 -0
  539. package/dist/Types/Internal/Validity.d.ts +6 -0
  540. package/dist/Types/Internal/Validity.js +7 -1
  541. package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
  542. package/dist/Types/Internal/Variant.d.ts +5 -0
  543. package/dist/Types/Internal/Variant.js +6 -1
  544. package/dist/index.d.ts +27 -82
  545. package/dist/index.js +24 -62
  546. package/dist/scss/_basics.scss +12 -12
  547. package/dist/scss/_colours.scss +134 -134
  548. package/dist/scss/_mixins.scss +3300 -3016
  549. package/dist/scss/_motion.scss +57 -0
  550. package/dist/scss/_sizing.scss +85 -69
  551. package/dist/scss/_transitions.scss +8 -8
  552. package/dist/scss/colours.js +2 -2
  553. package/dist/scss/sizing.d.ts +9 -0
  554. package/dist/scss/sizing.js +10 -1
  555. package/package.json +6 -2
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Per-Table persistence configuration. Every field defaults to `true`. Pass
3
+ * the literal `false` to disable persistence entirely (no storage reads, no
4
+ * storage writes); pass an object to enable a subset.
5
+ *
6
+ * Storage namespace is `scoria-table:<userId|'anon'>:<name>:<suffix>` as
7
+ * established in Phase 5 Group 6. The `name` segment is the Table's `name`
8
+ * option passed to `createTable`; the `userId` segment is whatever
9
+ * `getUserId()` returns at the time of the read or write, or the literal
10
+ * `'anon'` when it returns undefined.
11
+ */
12
+ export type TablePersistence = boolean | TablePersistenceObject;
13
+ /** Object form of `TablePersistence`. Use when enabling some layers and
14
+ * disabling others; the boolean form is the all-or-nothing shortcut. */
15
+ export interface TablePersistenceObject {
16
+ /** Saved column presets (visibility / pinning / sizing snapshots). Default
17
+ * true. */
18
+ presets?: boolean;
19
+ /** User-controlled table settings (compact mode, alternate row colours,
20
+ * single-click editing, etc.). Default true. */
21
+ settings?: boolean;
22
+ /** Last-selected page size. Default true. */
23
+ pageSize?: boolean;
24
+ /** Currently-expanded sub-table id (when the table has `ExpandDef`
25
+ * columns). Default true. */
26
+ activeExpand?: boolean;
27
+ /** Custom storage backend. Useful for tests; defaults to `localStorage`
28
+ * for presets and settings, `sessionStorage` for active state. */
29
+ storage?: TableStorageAdapter;
30
+ }
31
+ /** Storage backend hook for tests and custom persistence. Mirrors the subset
32
+ * of the `Storage` interface scoria actually uses; matches the existing
33
+ * internal contract so swapping a real backend in is a single-line change. */
34
+ export interface TableStorageAdapter {
35
+ getItem(key: string): string | null;
36
+ setItem(key: string, value: string): void;
37
+ removeItem(key: string): void;
38
+ }
@@ -0,0 +1,157 @@
1
+ import type { SvelteMap } from 'svelte/reactivity';
2
+ import type { CellCoordinates } from '../Coordinates/CellCoordinates.js';
3
+ import type { ColumnFiltersState } from '../Filtering/ColumnFiltersState.js';
4
+ import type { ColumnPinningState } from '../Columns/ColumnPinningState.js';
5
+ import type { ColumnSizingState } from '../Columns/ColumnSizingState.js';
6
+ import type { FilterMode } from '../Filtering/FilterMode.js';
7
+ import type { Primitive } from '../Context/TableInitOptions.js';
8
+ import type { SortingState } from '../DataRepository/SortingState.js';
9
+ import type { TableSettings } from '../Context/TableSettings.js';
10
+ import type { VisibilityState } from '../Columns/VisibilityState.js';
11
+ import type { ColumnSpec } from './ColumnSpec.js';
12
+ /**
13
+ * Public sub-API surface of a `Table<TRow, TRowId>` instance. Each interface
14
+ * here is the canonical consumer-facing replacement for one of the Phase 6
15
+ * internal sub-contexts (`_selection`, `_filtering`, `_columnLayout`,
16
+ * `_preferences`, `_focus`, `_sorting`, plus pagination and clipboard which
17
+ * stayed on `TableContext` proper).
18
+ *
19
+ * The interfaces are intentionally narrower than the underlying internals.
20
+ * Methods that exist purely for internal lifecycle reasons (boot-time
21
+ * hydration, abort-controller plumbing, the per-row mutation rebind path)
22
+ * are not surfaced here. If a consumer use case appears that needs one of
23
+ * those, surface it explicitly on the matching sub-API rather than exposing
24
+ * the internal symbol.
25
+ *
26
+ * Every field is reactive: reading triggers the Svelte 5 reactivity graph
27
+ * just as it does for the underlying `$state`/`$derived` slot on the
28
+ * implementation. Writes go through the listed setter methods.
29
+ */
30
+ export interface SelectionApi<TRow extends object, TRowId extends Primitive> {
31
+ /** Live selection map. Reactive; identical reference whether selection is
32
+ * internally owned or externally bound. */
33
+ readonly map: SvelteMap<TRowId, TRow>;
34
+ /** Number of selected rows. Reactive convenience read. */
35
+ readonly size: number;
36
+ /** Per-row toggle. Honours `isSelectable`; no-ops when false. */
37
+ toggle(row: TRow): void;
38
+ /** Set or clear selection for a single row. */
39
+ set(rowId: TRowId, row: TRow): void;
40
+ delete(rowId: TRowId): void;
41
+ clear(): void;
42
+ values(): IterableIterator<TRow>;
43
+ keys(): IterableIterator<TRowId>;
44
+ entries(): IterableIterator<[TRowId, TRow]>;
45
+ /** Selects every row on the current page that passes `isSelectable`. */
46
+ selectAll(): void;
47
+ /** Map of selected rows whose `isValid` returned `Validity.Invalid`. */
48
+ readonly invalidMap: SvelteMap<TRowId, TRow>;
49
+ /** Convenience: `invalidMap.size > 0`. */
50
+ readonly hasInvalid: boolean;
51
+ }
52
+ export interface FilteringApi<TRow extends object> {
53
+ /** Current column-filter state. Reactive. */
54
+ readonly state: ColumnFiltersState;
55
+ /** Set or clear the filter for a single column. */
56
+ set(columnId: keyof TRow & string, value: unknown): void;
57
+ /** Reset every column's filter to its default. */
58
+ reset(): void;
59
+ /** Change the filter mode (e.g. `'contains'` vs `'starts-with'`) for a
60
+ * string column or `'between'` for a number / date column. */
61
+ setMode(columnId: keyof TRow & string, mode: FilterMode): void;
62
+ /** Whether the quick-filter input row is visible. */
63
+ showQuickFilter: boolean;
64
+ /** Whether the table is showing only selected rows. */
65
+ showSelectedOnly: boolean;
66
+ }
67
+ export interface SortingApi<TRow extends object> {
68
+ /** Current sort state. Reactive. */
69
+ readonly state: SortingState;
70
+ /** Set the sort for a single column. When `desc` is omitted, ascending. */
71
+ setSort(columnId: keyof TRow & string, desc?: boolean): void;
72
+ /** Clear sorting on every column. */
73
+ clear(): void;
74
+ }
75
+ export interface PaginationApi {
76
+ readonly page: number;
77
+ readonly pageSize: number;
78
+ readonly totalPages: number;
79
+ readonly totalRows: number;
80
+ next(): void;
81
+ prev(): void;
82
+ goTo(page: number): void;
83
+ setPageSize(size: number): void;
84
+ }
85
+ export interface ColumnsApi<TRow extends object> {
86
+ /** Ordered column specs in memory order. */
87
+ readonly specs: ReadonlyArray<ColumnSpec<TRow>>;
88
+ /** Lookup map by column id. */
89
+ readonly byId: ReadonlyMap<string, ColumnSpec<TRow>>;
90
+ /** Visual order of column ids (pinned-left -> centre -> pinned-right,
91
+ * excluding hidden columns). */
92
+ readonly visualOrder: ReadonlyArray<string>;
93
+ /** Current visibility map. */
94
+ readonly visibility: VisibilityState;
95
+ /** Current pinning map. */
96
+ readonly pinning: ColumnPinningState;
97
+ /** Current sizing map. */
98
+ readonly sizing: ColumnSizingState;
99
+ setVisibility(columnId: string, visible: boolean): void;
100
+ setPinning(columnId: string, side: 'left' | 'right' | 'none'): void;
101
+ resize(columnId: string, width: number): void;
102
+ reorder(fromIndex: number, toIndex: number): void;
103
+ }
104
+ export interface FocusApi<TRow extends object> {
105
+ /** Start of the focused range, or `undefined` when no cell is focused. */
106
+ readonly start: CellCoordinates | undefined;
107
+ /** End of the focused range (equals `start` for single-cell focus). */
108
+ readonly end: CellCoordinates | undefined;
109
+ /** Whether the focused cell is currently in edit mode. */
110
+ readonly isEditing: boolean;
111
+ /** Move focus to a specific cell. */
112
+ moveTo(row: number, column: number): void;
113
+ /** Clear focus. */
114
+ clear(): void;
115
+ /** Phantom; carries the row type through the API so generic inference
116
+ * flows from `Table<TRow, ...>` into focus callbacks. Never read. */
117
+ readonly _row?: TRow;
118
+ }
119
+ /** Stored preset shape. Mirrors the existing internal `JSONColumnDefSet`. */
120
+ export interface SavedPreset {
121
+ readonly name: string;
122
+ readonly savedAt: string;
123
+ readonly columns: ReadonlyArray<{
124
+ readonly id: string;
125
+ readonly visible: boolean;
126
+ readonly width: number;
127
+ readonly pinned: 'left' | 'right' | 'none';
128
+ }>;
129
+ }
130
+ export interface PreferencesApi<TRow extends object> {
131
+ /** Saved column presets. Reactive. */
132
+ readonly presets: ReadonlyArray<SavedPreset>;
133
+ /** Currently-applied preset, or `undefined`. */
134
+ readonly selectedPreset: SavedPreset | undefined;
135
+ savePreset(name: string): void;
136
+ applyPreset(preset: SavedPreset): void;
137
+ deletePreset(name: string): void;
138
+ /** Live table settings (compact mode, etc). Reading via `.settings.x`
139
+ * is reactive; writing via the per-field setters below persists. */
140
+ readonly settings: Readonly<TableSettings>;
141
+ compact: boolean;
142
+ alternateRowColours: boolean;
143
+ singleClickEditing: boolean;
144
+ changeColourOnHover: boolean;
145
+ copyWithHeaders: boolean;
146
+ commaSeparatedCopy: boolean;
147
+ /** Phantom; carries the row type. */
148
+ readonly _row?: TRow;
149
+ }
150
+ export interface ClipboardApi<TRow extends object> {
151
+ /** Copy the current selection to the clipboard. */
152
+ copySelection(): Promise<void>;
153
+ /** Copy the currently-highlighted range. */
154
+ copyHighlighted(): Promise<void>;
155
+ /** Copy a single cell. */
156
+ copyCell(row: TRow, columnId: string): Promise<void>;
157
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Barrel re-export of every public Table API type. Imported by
3
+ * `src/lib/index.ts` and by sub-deliverable 1.2's `ColumnFactory`
4
+ * runtime module.
5
+ *
6
+ * Phase 1 is type-only; no runtime symbols flow through this barrel.
7
+ */
8
+ export type { AnyEditEvent } from './AnyEditEvent.js';
9
+ export type { BaseColumnOptions } from './BaseColumnOptions.js';
10
+ export type { ColumnFactory } from './ColumnFactory.js';
11
+ export type { ActionsColumnOptions, BubbleColumnOptions, CheckboxColumnOptions, DateColumnOptions, DisplayColumnOptions, DisplayModalProps, ExpandColumnOptions, FilterOnlyColumnOptions, NumberColumnOptions, ProgressColumnOptions, QueryColumnOptions, RowAction, RowSelectionColumnOptions, SelectColumnOptions, TextColumnOptions, ValidityColumnOptions, } from './ColumnOptions.js';
12
+ export type { ColumnKind, ColumnSpec } from './ColumnSpec.js';
13
+ export type { CreateTableOptions } from './CreateTableOptions.js';
14
+ export type { BooleanKeyOf, DateKeyOf, LiteralRowIdKey, NumberKeyOf, StringKeyOf, } from './KeyConstraints.js';
15
+ export type { CustomRowSource, LocalRowSource, RemoteRowSource, RowFetchRequest, RowFetchResponse, RowSource, } from './RowSource.js';
16
+ export type { SelectionOptions } from './SelectionOptions.js';
17
+ export type { Table } from './Table.js';
18
+ export type { TableInitialState } from './TableInitialState.js';
19
+ export type { TablePersistence, TablePersistenceObject, TableStorageAdapter, } from './TablePersistence.js';
20
+ export type { ClipboardApi, ColumnsApi, FilteringApi, FocusApi, PaginationApi, PreferencesApi, SavedPreset, SelectionApi, SortingApi, } from './TableSubApis.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Barrel re-export of every public Table API type. Imported by
3
+ * `src/lib/index.ts` and by sub-deliverable 1.2's `ColumnFactory`
4
+ * runtime module.
5
+ *
6
+ * Phase 1 is type-only; no runtime symbols flow through this barrel.
7
+ */
8
+ export {};
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Placement of the table's toolbar. Set via `TableInitOptions.toolbar`
3
+ * (defaults to `Right` when the option is omitted).
4
+ */
1
5
  export declare const ToolbarPosition: {
2
6
  readonly None: "None";
3
7
  readonly Left: "Left";
@@ -1,7 +1,11 @@
1
+ /**
2
+ * Placement of the table's toolbar. Set via `TableInitOptions.toolbar`
3
+ * (defaults to `Right` when the option is omitted).
4
+ */
1
5
  export const ToolbarPosition = {
2
6
  None: 'None',
3
7
  Left: 'Left',
4
8
  Top: 'Top',
5
- Right: 'Right'
9
+ Right: 'Right',
6
10
  };
7
11
  Object.freeze(ToolbarPosition);
@@ -0,0 +1,53 @@
1
+ /**
2
+ * `createTable` is the entry point for the new public Table API. It accepts
3
+ * a single options object and returns a structured `Table<TRow, TRowId>`
4
+ * instance.
5
+ *
6
+ * Phase 1 implementation strategy: this function is a thin facade. It
7
+ * unwraps the column specs, constructs the existing internal repository
8
+ * (`LocalTableDataRepository` for `kind: 'local'`, the new
9
+ * `BuiltInRemoteRepository` for `kind: 'remote'`, an adapter for
10
+ * `kind: 'custom'`), invokes `TableContext.init`, wires the per-column
11
+ * edit handlers and the optional `onAnyEdit` observer, then returns a
12
+ * structured `Table` instance whose sub-APIs are facades over the Phase 6
13
+ * sub-contexts. Phase 2 will inline the internals.
14
+ *
15
+ * The structured `Table` instance is also exposed as the `_context` field
16
+ * for the Phase 1 `<Table>` component which still reads from a
17
+ * `TableContext` via `setContext`. Phase 2 reshapes `<Table>` to consume
18
+ * the structured instance directly.
19
+ */
20
+ import { TableContext } from './Types/Context/TableContext.svelte.js';
21
+ import type { Primitive } from './Types/Context/TableInitOptions.js';
22
+ import type { CreateTableOptions } from './Types/Public/CreateTableOptions.js';
23
+ import type { CustomRowSource, LocalRowSource, RemoteRowSource } from './Types/Public/RowSource.js';
24
+ import type { Table } from './Types/Public/Table.js';
25
+ /**
26
+ * Construct a new Table from the supplied options. Returns the structured
27
+ * `Table<TRow, TRowId>` instance. Mount the rendering component via
28
+ * `<Table {table} />` (Phase 1 also accepts the legacy
29
+ * `<Table tableContext={table._context} />` form).
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const table = createTable<PickWave>({
34
+ * name: 'pick-waves',
35
+ * rowId: 'id',
36
+ * rows: { kind: 'local', source: dataRef },
37
+ * columns: (col) => [
38
+ * col.rowSelection(),
39
+ * col.text({ id: 'reference', header: 'Reference' }),
40
+ * col.number({ id: 'lineCount', header: 'Lines' }),
41
+ * ],
42
+ * });
43
+ * ```
44
+ */
45
+ export declare function createTable<TRow extends object, TRowId extends Primitive = string>(options: CreateTableOptions<TRow, TRowId>): Table<TRow, TRowId> & {
46
+ readonly _context: TableContext<TRow, TRowId>;
47
+ };
48
+ /** Helper that stamps `kind: 'local'` for type-safe row-source construction. */
49
+ export declare function localRows<TRow extends object>(options: Omit<LocalRowSource<TRow>, 'kind'>): LocalRowSource<TRow>;
50
+ /** Helper that stamps `kind: 'remote'`. */
51
+ export declare function remoteRows<TRow extends object>(options: Omit<RemoteRowSource<TRow>, 'kind'>): RemoteRowSource<TRow>;
52
+ /** Helper that stamps `kind: 'custom'`. */
53
+ export declare function customRows<TRow extends object>(options: Omit<CustomRowSource<TRow>, 'kind'>): CustomRowSource<TRow>;
@@ -0,0 +1,269 @@
1
+ /**
2
+ * `createTable` is the entry point for the new public Table API. It accepts
3
+ * a single options object and returns a structured `Table<TRow, TRowId>`
4
+ * instance.
5
+ *
6
+ * Phase 1 implementation strategy: this function is a thin facade. It
7
+ * unwraps the column specs, constructs the existing internal repository
8
+ * (`LocalTableDataRepository` for `kind: 'local'`, the new
9
+ * `BuiltInRemoteRepository` for `kind: 'remote'`, an adapter for
10
+ * `kind: 'custom'`), invokes `TableContext.init`, wires the per-column
11
+ * edit handlers and the optional `onAnyEdit` observer, then returns a
12
+ * structured `Table` instance whose sub-APIs are facades over the Phase 6
13
+ * sub-contexts. Phase 2 will inline the internals.
14
+ *
15
+ * The structured `Table` instance is also exposed as the `_context` field
16
+ * for the Phase 1 `<Table>` component which still reads from a
17
+ * `TableContext` via `setContext`. Phase 2 reshapes `<Table>` to consume
18
+ * the structured instance directly.
19
+ */
20
+ import { devCatch, refWrapper } from '../../Helpers/Helpers.svelte.js';
21
+ import { BuiltInRemoteRepository, CustomRemoteRepository, } from './Types/DataRepository/BuiltInRemoteRepository.svelte.js';
22
+ import { LocalTableDataRepository } from './Types/DataRepository/LocalTableDataRepository.svelte.js';
23
+ import { TableContext } from './Types/Context/TableContext.svelte.js';
24
+ import { ToolbarPosition } from './Types/Toolbar/ToolbarPosition.js';
25
+ import { createColumnFactory, unwrapColumnSpec } from './ColumnFactory.svelte.js';
26
+ import { makeClipboardApi, makeColumnsApi, makeFilteringApi, makeFocusApi, makePaginationApi, makePreferencesApi, makeSelectionApi, makeSortingApi, } from './SubApis.svelte.js';
27
+ // ─────────────────────────────────────────────────────────────────────────
28
+ // Public entry point
29
+ // ─────────────────────────────────────────────────────────────────────────
30
+ /**
31
+ * Construct a new Table from the supplied options. Returns the structured
32
+ * `Table<TRow, TRowId>` instance. Mount the rendering component via
33
+ * `<Table {table} />` (Phase 1 also accepts the legacy
34
+ * `<Table tableContext={table._context} />` form).
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const table = createTable<PickWave>({
39
+ * name: 'pick-waves',
40
+ * rowId: 'id',
41
+ * rows: { kind: 'local', source: dataRef },
42
+ * columns: (col) => [
43
+ * col.rowSelection(),
44
+ * col.text({ id: 'reference', header: 'Reference' }),
45
+ * col.number({ id: 'lineCount', header: 'Lines' }),
46
+ * ],
47
+ * });
48
+ * ```
49
+ */
50
+ export function createTable(options) {
51
+ // ── 1. Resolve rowId ────────────────────────────────────────────
52
+ const rowIdFn = resolveRowId(options.rowId);
53
+ // ── 2. Run the column-builder closure ───────────────────────────
54
+ const factory = createColumnFactory();
55
+ const specs = options.columns(factory);
56
+ // Build a Map<columnId, ColumnSpec> for the ColumnsApi, plus a
57
+ // Map<columnId, perColumnOnEdit> for the onEditCell dispatcher.
58
+ // These are constructed once during init and never reassigned reactively,
59
+ // so a plain Map is correct here.
60
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
61
+ const specsById = new Map();
62
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
63
+ const editHandlers = new Map();
64
+ const defs = specs.map((spec) => {
65
+ specsById.set(spec.id, spec);
66
+ const internal = unwrapColumnSpec(spec);
67
+ if (internal.onEdit) {
68
+ editHandlers.set(spec.id, internal.onEdit);
69
+ }
70
+ return internal.def;
71
+ });
72
+ const defsWrapper = { defs };
73
+ // ── 3. Construct the repository for the chosen row source ──────
74
+ const repository = makeRepository(options.name, options.rows, options.getUserId);
75
+ // ── 4. Build the `onEditCell` wrapper ──────────────────────────
76
+ const onEditCell = makeOnEditCell(editHandlers, options.onAnyEdit);
77
+ // ── 5. Translate the new options to TableInitOptions ───────────
78
+ const initOptions = {
79
+ selectionExtractor: rowIdFn,
80
+ getUserId: options.getUserId ?? (() => undefined),
81
+ allowCopy: options.allowCopy,
82
+ enableResize: options.allowResize,
83
+ allowColumnReordering: options.allowReorder,
84
+ allowQuickFiltering: options.allowQuickFilter,
85
+ showQuickFilterByDefault: options.showQuickFilterByDefault,
86
+ allowAdvancedFiltering: options.allowAdvancedFilter,
87
+ toolbar: translateToolbar(options.toolbar),
88
+ displayFooter: options.showFooter,
89
+ onEditCell,
90
+ debug: options.debug,
91
+ };
92
+ // ── 6. Build the TableContext ──────────────────────────────────
93
+ const ctx = TableContext.init(defsWrapper, options.name, repository, initOptions);
94
+ // ── 7. Wire selection.bindTo (Phase 1 uses the existing setter) ─
95
+ if (options.selection && options.selection.mode !== 'none' && options.selection.bindTo) {
96
+ ctx.setSelectionMap(options.selection.bindTo);
97
+ }
98
+ // ── 8. Apply initialState ───────────────────────────────────────
99
+ if (options.initialState) {
100
+ applyInitialState(ctx, options.initialState);
101
+ }
102
+ // ── 9. Build the structured Table instance ─────────────────────
103
+ const table = Object.freeze({
104
+ get name() {
105
+ return ctx.tableName;
106
+ },
107
+ get rows() {
108
+ return ctx.currentPageData;
109
+ },
110
+ get totalRows() {
111
+ return ctx.dataRepo.totalRows;
112
+ },
113
+ get isLoading() {
114
+ return ctx.dataRepo.isLoading ?? false;
115
+ },
116
+ columns: makeColumnsApi(ctx, specsById),
117
+ selection: makeSelectionApi(ctx),
118
+ filtering: makeFilteringApi(ctx),
119
+ sorting: makeSortingApi(ctx),
120
+ pagination: makePaginationApi(ctx),
121
+ focus: makeFocusApi(ctx),
122
+ preferences: makePreferencesApi(ctx),
123
+ clipboard: makeClipboardApi(ctx),
124
+ reload() {
125
+ return ctx.dataRepo.reload?.() ?? Promise.resolve();
126
+ },
127
+ destroy() {
128
+ // Phase 1: no teardown hook exists on TableContext. Phase 2 will
129
+ // introduce one when <Table> consumes the structured instance.
130
+ },
131
+ _context: ctx,
132
+ });
133
+ return table;
134
+ }
135
+ // ─────────────────────────────────────────────────────────────────────────
136
+ // Row-source helpers (nominal `kind` stampers)
137
+ // ─────────────────────────────────────────────────────────────────────────
138
+ /** Helper that stamps `kind: 'local'` for type-safe row-source construction. */
139
+ export function localRows(options) {
140
+ return { kind: 'local', ...options };
141
+ }
142
+ /** Helper that stamps `kind: 'remote'`. */
143
+ export function remoteRows(options) {
144
+ return { kind: 'remote', ...options };
145
+ }
146
+ /** Helper that stamps `kind: 'custom'`. */
147
+ export function customRows(options) {
148
+ return { kind: 'custom', ...options };
149
+ }
150
+ // ─────────────────────────────────────────────────────────────────────────
151
+ // Internals
152
+ // ─────────────────────────────────────────────────────────────────────────
153
+ /** Resolve the `rowId` option (function form or literal-key form) to a
154
+ * uniform `(row) => TRowId | Promise<TRowId>` function. */
155
+ function resolveRowId(rowId) {
156
+ if (typeof rowId === 'function') {
157
+ return rowId;
158
+ }
159
+ const key = rowId;
160
+ return (row) => row[key];
161
+ }
162
+ /** Construct the underlying `IDataRepository<TRow>` for the chosen row
163
+ * source variant. */
164
+ function makeRepository(tableName, source, getUserId) {
165
+ const userIdFn = getUserId ?? (() => undefined);
166
+ switch (source.kind) {
167
+ case 'local': {
168
+ const raw = source.source;
169
+ const dataRef = Array.isArray(raw)
170
+ ? refWrapper(Array.from(raw))
171
+ : raw;
172
+ return new LocalTableDataRepository(tableName, dataRef, userIdFn);
173
+ }
174
+ case 'remote': {
175
+ const repo = new BuiltInRemoteRepository({
176
+ tableName,
177
+ getUserId: userIdFn,
178
+ endpoint: source.endpoint,
179
+ method: source.method,
180
+ defaultFilters: source.defaultFilters,
181
+ responseTransform: source.responseTransform,
182
+ filterEncoding: source.filterEncoding,
183
+ headers: source.headers,
184
+ reloadDebounce: source.reloadDebounce,
185
+ });
186
+ // Fire the first fetch immediately so the table shows real data
187
+ // on mount. Errors route to devCatch inside the repository.
188
+ void repo.reload();
189
+ return repo;
190
+ }
191
+ case 'custom': {
192
+ const repo = new CustomRemoteRepository(tableName, userIdFn, source.fetch);
193
+ void repo.reload();
194
+ return repo;
195
+ }
196
+ }
197
+ }
198
+ /** Build the `onEditCell` wrapper. Dispatches to the per-column `onEdit`
199
+ * (from the column factory) first; if that resolves successfully and the
200
+ * consumer supplied a top-level `onAnyEdit`, fires that next. A per-column
201
+ * callback that throws or rejects suppresses the corresponding
202
+ * `onAnyEdit`. */
203
+ function makeOnEditCell(editHandlers, onAnyEdit) {
204
+ if (editHandlers.size === 0 && !onAnyEdit) {
205
+ return () => {
206
+ /* no-op: no edit handlers wired */
207
+ };
208
+ }
209
+ return async (item, coords, value) => {
210
+ const handler = editHandlers.get(coords.id);
211
+ if (handler) {
212
+ try {
213
+ await handler(item, value, coords);
214
+ }
215
+ catch (e) {
216
+ devCatch(e);
217
+ // Suppress onAnyEdit on per-column failure (documented behaviour).
218
+ return;
219
+ }
220
+ }
221
+ if (onAnyEdit) {
222
+ try {
223
+ await onAnyEdit({ column: coords.id, value, row: item, coords });
224
+ }
225
+ catch (e) {
226
+ devCatch(e);
227
+ }
228
+ }
229
+ };
230
+ }
231
+ /** Translate the public `toolbar` string into the internal
232
+ * `ToolbarPosition` enum value. */
233
+ function translateToolbar(toolbar) {
234
+ if (!toolbar) {
235
+ return undefined;
236
+ }
237
+ switch (toolbar) {
238
+ case 'top':
239
+ return ToolbarPosition.Top;
240
+ case 'right':
241
+ return ToolbarPosition.Right;
242
+ case 'left':
243
+ return ToolbarPosition.Left;
244
+ case 'none':
245
+ return ToolbarPosition.None;
246
+ }
247
+ }
248
+ /** Apply the `initialState` options to a freshly-constructed TableContext.
249
+ * Phase 1 wires the subset of fields the existing sub-contexts already
250
+ * support; Phase 2 may extend the surface. */
251
+ function applyInitialState(ctx, state) {
252
+ if (state.sortBy && state.sortBy.length > 0) {
253
+ ctx.dataRepo.updateSorting?.(state.sortBy.map((s) => ({ id: s.id, desc: s.desc ?? false })));
254
+ }
255
+ if (state.filters && state.filters.size > 0) {
256
+ for (const [columnId, value] of state.filters) {
257
+ ctx.dataRepo.filterBy(columnId, value);
258
+ }
259
+ }
260
+ if (state.columnVisibility) {
261
+ ctx._columnLayout.columnVisibility = {
262
+ ...ctx._columnLayout.columnVisibility,
263
+ ...state.columnVisibility,
264
+ };
265
+ }
266
+ if (state.compact !== undefined) {
267
+ ctx.setIsCompact(state.compact);
268
+ }
269
+ }
@@ -1,13 +1,13 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { TestContext } from '../../Contexts/TestContext.svelte.js';
5
- import { getContext } from 'svelte';
6
-
7
- const testContext = getContext<TestContext>(TestContext.identifier);
8
- </script>
9
-
10
- <h1>counter 1: {testContext.value1.value}</h1>
11
- <p>Ref wrapper 1 is incremented every time you click the button</p>
12
- <h2>counter 2: {testContext.value2.value}</h2>
13
- <p>ref wrapper 2 adds ref wrapper 1's value every time ref wrapper 1's value is divisible by 3</p>
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">
4
+ import { TestContext } from '../../Contexts/TestContext.svelte.js';
5
+ import { getContext } from 'svelte';
6
+
7
+ const testContext = getContext<TestContext>(TestContext.identifier);
8
+ </script>
9
+
10
+ <h1>counter 1: {testContext.value1.value}</h1>
11
+ <p>Ref wrapper 1 is incremented every time you click the button</p>
12
+ <h2>counter 2: {testContext.value2.value}</h2>
13
+ <p>ref wrapper 2 adds ref wrapper 1's value every time ref wrapper 1's value is divisible by 3</p>