@lavalogic/scoria 0.36.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 (550) hide show
  1. package/dist/Components/AccordionGroup.svelte +6 -2
  2. package/dist/Components/AccordionGroupButton.svelte +78 -78
  3. package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
  4. package/dist/Components/AccordionGroupProps.d.ts +10 -2
  5. package/dist/Components/Action.svelte +31 -33
  6. package/dist/Components/ActionProps.d.ts +23 -3
  7. package/dist/Components/AlertModal.svelte +90 -39
  8. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
  9. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
  10. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
  11. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
  12. package/dist/Components/Base/BaseModal.svelte +172 -0
  13. package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
  14. package/dist/Components/Base/BaseModalProps.d.ts +73 -0
  15. package/dist/Components/Base/BaseModalProps.js +1 -0
  16. package/dist/Components/Base/ContextWrapper.svelte +37 -15
  17. package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
  18. package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
  19. package/dist/Components/Base/Pagination.svelte +70 -62
  20. package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
  21. package/dist/Components/Base/PaginationProps.d.ts +60 -3
  22. package/dist/Components/Base/Snippets.svelte +7 -0
  23. package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
  24. package/dist/Components/BigRadioSet.svelte +18 -9
  25. package/dist/Components/BigRadioSetProps.d.ts +17 -1
  26. package/dist/Components/Bubble.svelte +67 -34
  27. package/dist/Components/Bubble.svelte.d.ts +23 -2
  28. package/dist/Components/BubbleProps.d.ts +55 -4
  29. package/dist/Components/Button.svelte +50 -38
  30. package/dist/Components/ButtonProps.d.ts +66 -1
  31. package/dist/Components/Checkbox.svelte +57 -29
  32. package/dist/Components/Checkbox.svelte.d.ts +1 -12
  33. package/dist/Components/CheckboxProps.d.ts +27 -0
  34. package/dist/Components/CheckboxProps.js +1 -0
  35. package/dist/Components/CollapsibleCard.svelte +53 -22
  36. package/dist/Components/CollapsibleCardProps.d.ts +22 -1
  37. package/dist/Components/Contexts/ContextMenu.svelte +53 -32
  38. package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
  39. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -7
  40. package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
  41. package/dist/Components/Contexts/ContextMenuOption.svelte +27 -18
  42. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
  43. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
  44. package/dist/Components/Contexts/Toast.svelte +28 -4
  45. package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
  46. package/dist/Components/Contexts/ToastContainer.svelte +30 -11
  47. package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
  48. package/dist/Components/Contexts/ToastProps.d.ts +14 -1
  49. package/dist/Components/Contexts/Tooltip.svelte +21 -10
  50. package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
  51. package/dist/Components/DataMatrixIcon.svelte +82 -11
  52. package/dist/Components/DataMatrixIconProps.d.ts +73 -1
  53. package/dist/Components/DateInput.svelte +64 -29
  54. package/dist/Components/DateInput.svelte.d.ts +1 -1
  55. package/dist/Components/DateOnlyInputProps.d.ts +31 -5
  56. package/dist/Components/DatePicker.svelte +96 -108
  57. package/dist/Components/DatePickerProps.d.ts +18 -1
  58. package/dist/Components/DateTimeInputProps.d.ts +30 -5
  59. package/dist/Components/DesktopModal.svelte +14 -43
  60. package/dist/Components/DesktopModalProps.d.ts +5 -4
  61. package/dist/Components/Dial.svelte +103 -41
  62. package/dist/Components/DialProps.d.ts +74 -2
  63. package/dist/Components/DimensionInput.svelte +50 -64
  64. package/dist/Components/DimensionInput.svelte.d.ts +1 -1
  65. package/dist/Components/DimensionInputProps.d.ts +39 -4
  66. package/dist/Components/DragMenu/DragMenuHolder.svelte +41 -29
  67. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
  68. package/dist/Components/DragMenu/DraggableCard.svelte +44 -8
  69. package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
  70. package/dist/Components/FileCard.svelte +6 -2
  71. package/dist/Components/FileCardProps.d.ts +17 -1
  72. package/dist/Components/FileUpload.svelte +82 -42
  73. package/dist/Components/FileUploadProps.d.ts +34 -4
  74. package/dist/Components/GridInput.svelte +27 -17
  75. package/dist/Components/GridInput.svelte.d.ts +5 -5
  76. package/dist/Components/GridInputProps.d.ts +4 -1
  77. package/dist/Components/GridInputSet.svelte +12 -5
  78. package/dist/Components/GridInputSet.svelte.d.ts +5 -5
  79. package/dist/Components/GridInputSetProps.d.ts +4 -2
  80. package/dist/Components/HorizontalTabGroup.svelte +13 -11
  81. package/dist/Components/HorizontalTabGroupButton.svelte +16 -68
  82. package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
  83. package/dist/Components/Icon.svelte +62 -21
  84. package/dist/Components/IconProps.d.ts +54 -6
  85. package/dist/Components/Icons.d.ts +8 -0
  86. package/dist/Components/Icons.js +234 -215
  87. package/dist/Components/LoadingAnimation.svelte +18 -18
  88. package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
  89. package/dist/Components/LoadingAnimationProps.d.ts +16 -0
  90. package/dist/Components/LoadingAnimationProps.js +1 -0
  91. package/dist/Components/LoadingModal.svelte +18 -20
  92. package/dist/Components/LoadingModal.svelte.d.ts +1 -4
  93. package/dist/Components/LoadingModalProps.d.ts +17 -0
  94. package/dist/Components/LoadingModalProps.js +1 -0
  95. package/dist/Components/LoadingOverlay.svelte +11 -13
  96. package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
  97. package/dist/Components/LoadingOverlayProps.d.ts +28 -0
  98. package/dist/Components/LoadingOverlayProps.js +1 -0
  99. package/dist/Components/Modal.svelte +77 -82
  100. package/dist/Components/Modal.svelte.d.ts +1 -25
  101. package/dist/Components/ModalProps.d.ts +65 -0
  102. package/dist/Components/ModalProps.js +1 -0
  103. package/dist/Components/MultiSelect.svelte +88 -76
  104. package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
  105. package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
  106. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  107. package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
  108. package/dist/Components/Nav/Nav.svelte +35 -30
  109. package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
  110. package/dist/Components/Nav/NavProps.d.ts +50 -3
  111. package/dist/Components/Nav/NavServiceMenuList.svelte +12 -3
  112. package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
  113. package/dist/Components/Nav/NavTab.svelte +19 -48
  114. package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
  115. package/dist/Components/Nav/NavTabProps.d.ts +16 -2
  116. package/dist/Components/Nav/ServiceMenuItem.svelte +29 -20
  117. package/dist/Components/Nav/ServicesNav.svelte +60 -34
  118. package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
  119. package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
  120. package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
  121. package/dist/Components/NumberInput.svelte +37 -27
  122. package/dist/Components/NumberInputProps.d.ts +37 -0
  123. package/dist/Components/PageHeading.svelte +2 -13
  124. package/dist/Components/PageHeading.svelte.d.ts +1 -6
  125. package/dist/Components/PageHeadingProps.d.ts +23 -0
  126. package/dist/Components/PageHeadingProps.js +1 -0
  127. package/dist/Components/PasswordInput.svelte +27 -15
  128. package/dist/Components/PasswordInput.svelte.d.ts +2 -2
  129. package/dist/Components/PasswordInputProps.d.ts +21 -0
  130. package/dist/Components/PasswordInputProps.js +1 -0
  131. package/dist/Components/Portal.svelte +14 -3
  132. package/dist/Components/PortalProps.d.ts +20 -1
  133. package/dist/Components/ProgressBubble.svelte +98 -53
  134. package/dist/Components/ProgressBubbleProps.d.ts +23 -2
  135. package/dist/Components/QuerySelect.svelte +103 -159
  136. package/dist/Components/QuerySelect.svelte.d.ts +2 -29
  137. package/dist/Components/QuerySelectProps.d.ts +66 -0
  138. package/dist/Components/QuerySelectProps.js +1 -0
  139. package/dist/Components/SingleSelect.svelte +86 -108
  140. package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
  141. package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
  142. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
  143. package/dist/Components/StepButton.svelte +19 -69
  144. package/dist/Components/StepForm.svelte +52 -52
  145. package/dist/Components/StepFormProps.d.ts +16 -2
  146. package/dist/Components/Switch.svelte +68 -31
  147. package/dist/Components/Switch.svelte.d.ts +1 -1
  148. package/dist/Components/SwitchProps.d.ts +46 -0
  149. package/dist/Components/Table/Body/HeightData.d.ts +1 -6
  150. package/dist/Components/Table/Body/HeightData.js +8 -0
  151. package/dist/Components/Table/Body/QuickSearchCell.svelte +106 -50
  152. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
  153. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  154. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +43 -9
  155. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
  156. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
  157. package/dist/Components/Table/Body/Rows/ColumnList.svelte +15 -5
  158. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
  159. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
  160. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +424 -91
  161. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
  162. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
  163. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +43 -13
  164. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
  165. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +50 -38
  166. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
  167. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
  168. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  169. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +61 -26
  170. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
  171. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
  172. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
  173. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +36 -16
  174. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +47 -24
  175. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
  176. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
  177. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -20
  178. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
  179. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
  180. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  181. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
  182. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
  183. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +55 -40
  184. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
  185. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +38 -27
  186. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
  187. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
  188. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
  189. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +22 -7
  190. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
  191. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
  192. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
  193. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +61 -31
  194. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
  195. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
  196. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +123 -244
  197. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
  198. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
  199. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
  200. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +126 -189
  201. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
  202. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
  203. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +31 -19
  204. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
  205. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
  206. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
  207. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +125 -187
  208. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
  209. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
  210. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +119 -270
  211. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
  212. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
  213. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +23 -13
  214. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
  215. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
  216. package/dist/Components/Table/Body/Rows/TableRow.svelte +200 -132
  217. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  218. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
  219. package/dist/Components/Table/Body/TableBody.svelte +170 -53
  220. package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
  221. package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
  222. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
  223. package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
  224. package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
  225. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +5 -3
  226. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  227. package/dist/Components/Table/Headers/SelectAllHeader.svelte +5 -3
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  229. package/dist/Components/Table/Headers/TableHead.svelte +340 -200
  230. package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
  231. package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
  232. package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
  233. package/dist/Components/Table/Misc/ColumnPanel.svelte +108 -50
  234. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  235. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +20 -7
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
  237. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
  238. package/dist/Components/Table/Misc/FilterInput.svelte +30 -41
  239. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  240. package/dist/Components/Table/Misc/FilterPanel.svelte +387 -29
  241. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  242. package/dist/Components/Table/Misc/FilterPanelModal.svelte +4 -51
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  244. package/dist/Components/Table/Misc/SidePanel.svelte +12 -9
  245. package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
  246. package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
  247. package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
  248. package/dist/Components/Table/Misc/TableFooter.svelte +44 -35
  249. package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
  250. package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
  251. package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
  252. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +17 -48
  253. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  254. package/dist/Components/Table/Misc/TableSidebar.svelte +28 -47
  255. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  256. package/dist/Components/Table/Misc/ToolboxPanel.svelte +121 -55
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  258. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +31 -24
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
  260. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
  261. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
  262. package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
  263. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
  264. package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
  265. package/dist/Components/Table/NestedTable.svelte +85 -41
  266. package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
  267. package/dist/Components/Table/NestedTableProps.d.ts +25 -0
  268. package/dist/Components/Table/NestedTableProps.js +1 -0
  269. package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
  270. package/dist/Components/Table/SubApis.svelte.js +359 -0
  271. package/dist/Components/Table/Table.svelte +347 -172
  272. package/dist/Components/Table/Table.svelte.d.ts +24 -1
  273. package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
  274. package/dist/Components/Table/TableHelpers.svelte.js +88 -0
  275. package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
  276. package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
  277. package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
  278. package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
  279. package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
  280. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
  281. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
  282. package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
  283. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
  284. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
  285. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
  286. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
  287. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
  288. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
  290. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
  291. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
  292. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
  293. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
  294. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
  295. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
  296. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
  297. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
  298. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
  299. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
  300. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
  301. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
  302. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
  303. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
  304. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
  305. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
  307. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
  308. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
  309. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
  310. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
  311. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
  312. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
  313. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
  314. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
  315. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
  316. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
  317. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
  318. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
  319. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
  320. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
  321. package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
  322. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
  323. package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
  324. package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
  325. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
  326. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
  327. package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
  328. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
  329. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
  330. package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
  331. package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
  332. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
  333. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
  334. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
  335. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
  336. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
  337. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
  338. package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
  339. package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
  340. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
  341. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
  342. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
  343. package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
  344. package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
  345. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
  346. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
  347. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
  348. package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
  349. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
  350. package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
  351. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
  352. package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
  353. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
  354. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
  355. package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
  356. package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
  357. package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
  358. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
  359. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
  360. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
  361. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
  362. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
  363. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
  364. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
  365. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
  366. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
  367. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
  368. package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
  369. package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
  370. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
  371. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
  372. package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
  373. package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
  374. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
  375. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
  376. package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
  377. package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
  378. package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
  379. package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
  380. package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
  381. package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
  382. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
  383. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
  384. package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
  385. package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
  386. package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
  387. package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
  388. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
  389. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
  390. package/dist/Components/Table/Types/Header.d.ts +8 -0
  391. package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
  392. package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
  393. package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
  394. package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
  395. package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
  396. package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
  397. package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
  398. package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
  399. package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
  400. package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
  401. package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
  402. package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
  403. package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
  404. package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
  405. package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
  406. package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
  407. package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
  408. package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
  409. package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
  410. package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
  411. package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
  412. package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
  413. package/dist/Components/Table/Types/Public/RowSource.js +1 -0
  414. package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
  415. package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
  416. package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
  417. package/dist/Components/Table/Types/Public/Table.js +1 -0
  418. package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
  419. package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
  420. package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
  421. package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
  422. package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
  423. package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
  424. package/dist/Components/Table/Types/Public/index.d.ts +20 -0
  425. package/dist/Components/Table/Types/Public/index.js +8 -0
  426. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
  427. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
  428. package/dist/Components/Table/createTable.svelte.d.ts +53 -0
  429. package/dist/Components/Table/createTable.svelte.js +269 -0
  430. package/dist/Components/TextArea.svelte +37 -18
  431. package/dist/Components/TextAreaProps.d.ts +37 -0
  432. package/dist/Components/TextInput.svelte +41 -22
  433. package/dist/Components/TextInputProps.d.ts +58 -1
  434. package/dist/Components/ThreeStateRadio.svelte +61 -64
  435. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  436. package/dist/Components/Touch/BoolCard.svelte +8 -15
  437. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  438. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  439. package/dist/Components/Touch/BoolCardProps.js +1 -0
  440. package/dist/Components/Touch/DateModal.svelte +17 -25
  441. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  442. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  443. package/dist/Components/Touch/DateModalProps.js +1 -0
  444. package/dist/Components/Touch/EditCard.svelte +10 -3
  445. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  446. package/dist/Components/Touch/InfoCard.svelte +14 -7
  447. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  448. package/dist/Components/Touch/InfoTextCard.svelte +9 -2
  449. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  450. package/dist/Components/Touch/ModalExplanation.svelte +9 -12
  451. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  452. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  453. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  454. package/dist/Components/Touch/NumberKeyboard.svelte +62 -105
  455. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  456. package/dist/Components/Touch/NumberModal.svelte +16 -6
  457. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  458. package/dist/Components/Touch/PlusMinusCard.svelte +12 -16
  459. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  460. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  461. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  462. package/dist/Components/Touch/SelectModal.svelte +33 -15
  463. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  464. package/dist/Components/Touch/SummaryCard.svelte +56 -14
  465. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  466. package/dist/Components/Touch/TextAreaModal.svelte +18 -9
  467. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  468. package/dist/Components/Touch/TextModal.svelte +15 -32
  469. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  470. package/dist/Components/Touch/TouchCard.svelte +9 -47
  471. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  472. package/dist/Components/Touch/TouchModal.svelte +105 -99
  473. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  474. package/dist/Components/Touch/UtilityButton.svelte +36 -18
  475. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  476. package/dist/Components/VerticalTabGroup.svelte +18 -40
  477. package/dist/Components/VerticalTabGroupButton.svelte +11 -50
  478. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  479. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  480. package/dist/Contexts/AlertContext.svelte.js +69 -6
  481. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  482. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  483. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  484. package/dist/Contexts/TestContext.svelte.js +29 -1
  485. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  486. package/dist/Contexts/ToastContext.svelte.js +93 -24
  487. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  488. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  489. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  490. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  491. package/dist/Delay/Delay.js +1 -1
  492. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  493. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  494. package/dist/Helpers/Datamatrix.d.ts +10 -1
  495. package/dist/Helpers/Datamatrix.js +290 -1
  496. package/dist/Helpers/Helpers.svelte.d.ts +252 -18
  497. package/dist/Helpers/Helpers.svelte.js +271 -75
  498. package/dist/Helpers/INamed.d.ts +6 -0
  499. package/dist/Helpers/Storage.d.ts +67 -0
  500. package/dist/Helpers/Storage.js +138 -0
  501. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  502. package/dist/Helpers/dropdownPortal.js +232 -0
  503. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  504. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  505. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  506. package/dist/Helpers/memoiseByRow.js +78 -0
  507. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  508. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  509. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  510. package/dist/Helpers/useTooltip.svelte.js +62 -0
  511. package/dist/Types/Examples/ExampleModal.svelte +2 -1
  512. package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
  513. package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
  514. package/dist/Types/Internal/AsyncFlag.js +1 -0
  515. package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
  516. package/dist/Types/Internal/ButtonProp.d.ts +24 -2
  517. package/dist/Types/Internal/CallbackButton.d.ts +12 -0
  518. package/dist/Types/Internal/DateChange.d.ts +8 -0
  519. package/dist/Types/Internal/DatePickerType.d.ts +5 -0
  520. package/dist/Types/Internal/DatePickerType.js +6 -1
  521. package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
  522. package/dist/Types/Internal/InputVariant.d.ts +5 -0
  523. package/dist/Types/Internal/InputVariant.js +6 -1
  524. package/dist/Types/Internal/Misc.d.ts +91 -0
  525. package/dist/Types/Internal/RefWrapper.d.ts +6 -0
  526. package/dist/Types/Internal/SelectOption.d.ts +8 -0
  527. package/dist/Types/Internal/Shape.d.ts +1 -0
  528. package/dist/Types/Internal/Shape.js +2 -1
  529. package/dist/Types/Internal/Side.d.ts +1 -0
  530. package/dist/Types/Internal/Side.js +2 -1
  531. package/dist/Types/Internal/Size.d.ts +5 -0
  532. package/dist/Types/Internal/Size.js +6 -1
  533. package/dist/Types/Internal/TabOption.d.ts +15 -5
  534. package/dist/Types/Internal/Ternary.d.ts +6 -0
  535. package/dist/Types/Internal/Ternary.js +7 -1
  536. package/dist/Types/Internal/ToastMessage.d.ts +28 -0
  537. package/dist/Types/Internal/Validity.d.ts +6 -0
  538. package/dist/Types/Internal/Validity.js +7 -1
  539. package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
  540. package/dist/Types/Internal/Variant.d.ts +5 -0
  541. package/dist/Types/Internal/Variant.js +6 -1
  542. package/dist/index.d.ts +27 -82
  543. package/dist/index.js +24 -62
  544. package/dist/scss/_mixins.scss +451 -167
  545. package/dist/scss/_motion.scss +57 -0
  546. package/dist/scss/_sizing.scss +16 -0
  547. package/dist/scss/colours.js +2 -2
  548. package/dist/scss/sizing.d.ts +9 -0
  549. package/dist/scss/sizing.js +10 -1
  550. package/package.json +35 -31
@@ -1,84 +1,150 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="T extends object">
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >
4
7
  import Checkbox from '../../Checkbox.svelte';
8
+ import { Size } from '../../../Types/Internal/Size.js';
5
9
  import { getContext } from 'svelte';
10
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
6
11
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
7
12
 
8
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
13
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
9
14
 
10
- const onCompactChange = (e: Event) => {
11
- tableContext.setIsCompact((e.target as HTMLInputElement).checked);
15
+ const onCompactChange = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
16
+ tableContext.setIsCompact(e.currentTarget.checked);
12
17
  };
13
18
 
14
- const onSingleCLickChange = (e: Event) => {
15
- tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
19
+ const onSingleClickChange = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
20
+ tableContext.setSingleClickEditing(e.currentTarget.checked);
16
21
  };
17
22
 
18
- const onAlternateRowColoursChange = (e: Event) => {
19
- tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
23
+ const onAlternateRowColoursChange = (
24
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
25
+ ) => {
26
+ tableContext.setAlternateRowColours(e.currentTarget.checked);
20
27
  };
21
28
 
22
- const onChangeColourOnHoverChange = (e: Event) => {
23
- tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
29
+ const onChangeColourOnHoverChange = (
30
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
31
+ ) => {
32
+ tableContext.setChangeColourOnHover(e.currentTarget.checked);
24
33
  };
25
34
 
26
- const onCopyWithHeadersChange = (e: Event) => {
27
- tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
35
+ const onCopyWithHeadersChange = (
36
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
37
+ ) => {
38
+ tableContext.setCopyWithHeaders(e.currentTarget.checked);
28
39
  };
29
40
 
30
- const onCommaSeparatedCopyChange = (e: Event) => {
31
- tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
41
+ const onCommaSeparatedCopyChange = (
42
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
43
+ ) => {
44
+ tableContext.setCommaSeparatedCopy(e.currentTarget.checked);
32
45
  };
33
46
  </script>
34
47
 
35
- <div class="column-panel">
36
- <h3>Settings</h3>
37
- <Checkbox
38
- label="Compact"
39
- id={`is-compact-${tableContext.tableName}`}
40
- value={tableContext.isCompact}
41
- onchange={onCompactChange}
42
- />
43
- <Checkbox
44
- label="Single Click Editing"
45
- id={`single-click-editing-${tableContext.tableName}`}
46
- value={tableContext.singleClickEditing}
47
- onchange={onSingleCLickChange}
48
- />
49
- <Checkbox
50
- label="Alternate Row Colours"
51
- id={`alternate-row-colours-${tableContext.tableName}`}
52
- value={tableContext.alternateRowColours}
53
- onchange={onAlternateRowColoursChange}
54
- />
55
- <Checkbox
56
- label="Change Colour on Hover"
57
- id={`change-colour-on-hover-${tableContext.tableName}`}
58
- value={tableContext.changeColourOnHover}
59
- onchange={onChangeColourOnHoverChange}
60
- />
61
- {#if tableContext.allowCopy}
48
+ <section class="side-panel-section">
49
+ <header class="side-panel-header">
50
+ <h2>Settings</h2>
51
+ </header>
52
+ <div class="side-panel-body">
62
53
  <Checkbox
63
- label="Include Headers When Copying"
64
- id={`copy-with-headers-${tableContext.tableName}`}
65
- value={tableContext.copyWithHeaders}
66
- onchange={onCopyWithHeadersChange}
54
+ label="Compact"
55
+ size={Size.MediumSmall}
56
+ id={`is-compact-${tableContext.tableName}`}
57
+ value={tableContext.isCompact}
58
+ onchange={onCompactChange}
67
59
  />
68
60
  <Checkbox
69
- label="Copy as Comma Separated Values"
70
- id={`comma-separated-copy-${tableContext.tableName}`}
71
- value={tableContext.commaSeparatedCopy}
72
- onchange={onCommaSeparatedCopyChange}
61
+ label="Single Click Editing"
62
+ size={Size.MediumSmall}
63
+ id={`single-click-editing-${tableContext.tableName}`}
64
+ value={tableContext.singleClickEditing}
65
+ onchange={onSingleClickChange}
73
66
  />
74
- {/if}
75
- </div>
67
+ <Checkbox
68
+ label="Alternate Row Colours"
69
+ size={Size.MediumSmall}
70
+ id={`alternate-row-colours-${tableContext.tableName}`}
71
+ value={tableContext.alternateRowColours}
72
+ onchange={onAlternateRowColoursChange}
73
+ />
74
+ <Checkbox
75
+ label="Change Colour on Hover"
76
+ size={Size.MediumSmall}
77
+ id={`change-colour-on-hover-${tableContext.tableName}`}
78
+ value={tableContext.changeColourOnHover}
79
+ onchange={onChangeColourOnHoverChange}
80
+ />
81
+ {#if tableContext.allowCopy}
82
+ <Checkbox
83
+ label="Include Headers When Copying"
84
+ size={Size.MediumSmall}
85
+ id={`copy-with-headers-${tableContext.tableName}`}
86
+ value={tableContext.copyWithHeaders}
87
+ onchange={onCopyWithHeadersChange}
88
+ />
89
+ <Checkbox
90
+ label="Copy as Comma Separated Values"
91
+ size={Size.MediumSmall}
92
+ id={`comma-separated-copy-${tableContext.tableName}`}
93
+ value={tableContext.commaSeparatedCopy}
94
+ onchange={onCommaSeparatedCopyChange}
95
+ />
96
+ {/if}
97
+ </div>
98
+ </section>
76
99
 
77
- <style>div.column-panel {
78
- padding: 0.5rem;
100
+ <style>.side-panel-section {
79
101
  display: flex;
80
102
  flex-flow: column nowrap;
81
- gap: 0.5rem;
82
- background-color: #ffffff;
83
103
  height: 100%;
104
+ width: 100%;
105
+ background-color: #ffffff;
106
+ box-sizing: border-box;
107
+ min-height: 0;
108
+ }
109
+
110
+ .side-panel-header {
111
+ flex-shrink: 0;
112
+ padding: 1.25rem 1.25rem 0.875rem;
113
+ border-bottom: solid 1px #cbd4da;
114
+ background-color: #ffffff;
115
+ display: flex;
116
+ flex-flow: row nowrap;
117
+ align-items: center;
118
+ justify-content: space-between;
119
+ gap: 0.75rem;
120
+ }
121
+ .side-panel-header h2 {
122
+ margin: 0;
123
+ font-size: 1.25rem;
124
+ font-weight: 600;
125
+ color: #3a4952;
126
+ line-height: 1.25;
127
+ }
128
+
129
+ .side-panel-body {
130
+ flex: 1 1 auto;
131
+ min-height: 0;
132
+ display: flex;
133
+ flex-flow: column nowrap;
134
+ gap: 0.75rem;
135
+ padding: 1rem 1.25rem;
136
+ overflow-y: auto;
137
+ box-sizing: border-box;
138
+ }
139
+
140
+ .side-panel-footer {
141
+ flex-shrink: 0;
142
+ padding: 0.875rem 1.25rem;
143
+ border-top: solid 1px #cbd4da;
144
+ background-color: #ffffff;
145
+ display: flex;
146
+ flex-flow: row nowrap;
147
+ gap: 0.75rem;
148
+ align-items: center;
149
+ box-sizing: border-box;
84
150
  }</style>
@@ -1,24 +1,25 @@
1
- declare function $$render<T extends object>(): {
1
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
2
+ declare function $$render<T extends object, IdType extends Primitive>(): {
2
3
  props: Record<string, never>;
3
4
  exports: {};
4
5
  bindings: "";
5
6
  slots: {};
6
7
  events: {};
7
8
  };
8
- declare class __sveltets_Render<T extends object> {
9
- props(): ReturnType<typeof $$render<T>>['props'];
10
- events(): ReturnType<typeof $$render<T>>['events'];
11
- slots(): ReturnType<typeof $$render<T>>['slots'];
9
+ declare class __sveltets_Render<T extends object, IdType extends Primitive> {
10
+ props(): ReturnType<typeof $$render<T, IdType>>['props'];
11
+ events(): ReturnType<typeof $$render<T, IdType>>['events'];
12
+ slots(): ReturnType<typeof $$render<T, IdType>>['slots'];
12
13
  bindings(): "";
13
14
  exports(): {};
14
15
  }
15
16
  interface $$IsomorphicComponent {
16
- new <T extends object>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
17
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
18
- } & ReturnType<__sveltets_Render<T>['exports']>;
19
- <T extends object>(internal: unknown, props: {}): ReturnType<__sveltets_Render<T>['exports']>;
20
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
+ new <T extends object, IdType extends Primitive>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, IdType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, IdType>['props']>, ReturnType<__sveltets_Render<T, IdType>['events']>, ReturnType<__sveltets_Render<T, IdType>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<T, IdType>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<T, IdType>['exports']>;
20
+ <T extends object, IdType extends Primitive>(internal: unknown, props: {}): ReturnType<__sveltets_Render<T, IdType>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
21
22
  }
22
23
  declare const ToolboxPanel: $$IsomorphicComponent;
23
- type ToolboxPanel<T extends object> = InstanceType<typeof ToolboxPanel<T>>;
24
+ type ToolboxPanel<T extends object, IdType extends Primitive> = InstanceType<typeof ToolboxPanel<T, IdType>>;
24
25
  export default ToolboxPanel;
@@ -2,40 +2,50 @@
2
2
 
3
3
  <script
4
4
  lang="ts"
5
- generics="T extends object"
5
+ generics="T extends object, IdType extends Primitive"
6
6
  >
7
7
  import Checkbox from '../../Checkbox.svelte';
8
8
  import DesktopModal from '../../DesktopModal.svelte';
9
+ import { Size } from '../../../Types/Internal/Size.js';
9
10
  import { getContext } from 'svelte';
10
11
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
12
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
11
13
  import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
12
14
 
13
15
  let { onclose }: ToolboxPanelModalProps = $props();
14
16
 
15
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
17
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
16
18
 
17
- const onCompactChange = (e: Event) => {
18
- tableContext.setIsCompact((e.target as HTMLInputElement).checked);
19
+ const onCompactChange = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
20
+ tableContext.setIsCompact(e.currentTarget.checked);
19
21
  };
20
22
 
21
- const onSingleCLickChange = (e: Event) => {
22
- tableContext.setSingleClickEditing((e.target as HTMLInputElement).checked);
23
+ const onSingleClickChange = (e: Event & { currentTarget: EventTarget & HTMLInputElement }) => {
24
+ tableContext.setSingleClickEditing(e.currentTarget.checked);
23
25
  };
24
26
 
25
- const onAlternateRowColoursChange = (e: Event) => {
26
- tableContext.setAlternateRowColours((e.target as HTMLInputElement).checked);
27
+ const onAlternateRowColoursChange = (
28
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
29
+ ) => {
30
+ tableContext.setAlternateRowColours(e.currentTarget.checked);
27
31
  };
28
32
 
29
- const onChangeColourOnHoverChange = (e: Event) => {
30
- tableContext.setChangeColourOnHover((e.target as HTMLInputElement).checked);
33
+ const onChangeColourOnHoverChange = (
34
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
35
+ ) => {
36
+ tableContext.setChangeColourOnHover(e.currentTarget.checked);
31
37
  };
32
38
 
33
- const onCopyWithHeadersChange = (e: Event) => {
34
- tableContext.setCopyWithHeaders((e.target as HTMLInputElement).checked);
39
+ const onCopyWithHeadersChange = (
40
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
41
+ ) => {
42
+ tableContext.setCopyWithHeaders(e.currentTarget.checked);
35
43
  };
36
44
 
37
- const onCommaSeparatedCopyChange = (e: Event) => {
38
- tableContext.setCommaSeparatedCopy((e.target as HTMLInputElement).checked);
45
+ const onCommaSeparatedCopyChange = (
46
+ e: Event & { currentTarget: EventTarget & HTMLInputElement }
47
+ ) => {
48
+ tableContext.setCommaSeparatedCopy(e.currentTarget.checked);
39
49
  };
40
50
  </script>
41
51
 
@@ -48,24 +58,28 @@
48
58
  <div class="column-panel">
49
59
  <Checkbox
50
60
  label="Compact"
61
+ size={Size.MediumSmall}
51
62
  id={`is-compact-${tableContext.tableName}-modal`}
52
63
  value={tableContext.isCompact}
53
64
  onchange={onCompactChange}
54
65
  />
55
66
  <Checkbox
56
67
  label="Single Click Editing"
68
+ size={Size.MediumSmall}
57
69
  id={`single-click-editing-${tableContext.tableName}-modal`}
58
70
  value={tableContext.singleClickEditing}
59
- onchange={onSingleCLickChange}
71
+ onchange={onSingleClickChange}
60
72
  />
61
73
  <Checkbox
62
74
  label="Alternate Row Colours"
75
+ size={Size.MediumSmall}
63
76
  id={`alternate-row-colours-${tableContext.tableName}-modal`}
64
77
  value={tableContext.alternateRowColours}
65
78
  onchange={onAlternateRowColoursChange}
66
79
  />
67
80
  <Checkbox
68
81
  label="Change Colour on Hover"
82
+ size={Size.MediumSmall}
69
83
  id={`change-colour-on-hover-${tableContext.tableName}-modal`}
70
84
  value={tableContext.changeColourOnHover}
71
85
  onchange={onChangeColourOnHoverChange}
@@ -73,12 +87,14 @@
73
87
  {#if tableContext.allowCopy}
74
88
  <Checkbox
75
89
  label="Include Headers When Copying"
90
+ size={Size.MediumSmall}
76
91
  id={`copy-with-headers-${tableContext.tableName}-modal`}
77
92
  value={tableContext.copyWithHeaders}
78
93
  onchange={onCopyWithHeadersChange}
79
94
  />
80
95
  <Checkbox
81
96
  label="Copy as Comma Separated Values"
97
+ size={Size.MediumSmall}
82
98
  id={`comma-separated-copy-${tableContext.tableName}-modal`}
83
99
  value={tableContext.commaSeparatedCopy}
84
100
  onchange={onCommaSeparatedCopyChange}
@@ -94,13 +110,4 @@
94
110
  height: 100%;
95
111
  width: 100%;
96
112
  flex: 1;
97
- }
98
-
99
- div.column-panel {
100
- padding: 0.5rem;
101
- display: flex;
102
- flex-flow: column nowrap;
103
- gap: 0.5rem;
104
- background-color: #ffffff;
105
- height: 100%;
106
113
  }</style>
@@ -1,25 +1,26 @@
1
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
1
2
  import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
2
- declare function $$render<T extends object>(): {
3
+ declare function $$render<T extends object, IdType extends Primitive>(): {
3
4
  props: ToolboxPanelModalProps;
4
5
  exports: {};
5
6
  bindings: "";
6
7
  slots: {};
7
8
  events: {};
8
9
  };
9
- declare class __sveltets_Render<T extends object> {
10
- props(): ReturnType<typeof $$render<T>>['props'];
11
- events(): ReturnType<typeof $$render<T>>['events'];
12
- slots(): ReturnType<typeof $$render<T>>['slots'];
10
+ declare class __sveltets_Render<T extends object, IdType extends Primitive> {
11
+ props(): ReturnType<typeof $$render<T, IdType>>['props'];
12
+ events(): ReturnType<typeof $$render<T, IdType>>['events'];
13
+ slots(): ReturnType<typeof $$render<T, IdType>>['slots'];
13
14
  bindings(): "";
14
15
  exports(): {};
15
16
  }
16
17
  interface $$IsomorphicComponent {
17
- new <T extends object>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T>['exports']>;
20
- <T extends object>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
18
+ new <T extends object, IdType extends Primitive>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, IdType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, IdType>['props']>, ReturnType<__sveltets_Render<T, IdType>['events']>, ReturnType<__sveltets_Render<T, IdType>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<T, IdType>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<T, IdType>['exports']>;
21
+ <T extends object, IdType extends Primitive>(internal: unknown, props: ReturnType<__sveltets_Render<T, IdType>['props']> & {}): ReturnType<__sveltets_Render<T, IdType>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
22
23
  }
23
24
  declare const ToolboxPanelModal: $$IsomorphicComponent;
24
- type ToolboxPanelModal<T extends object> = InstanceType<typeof ToolboxPanelModal<T>>;
25
+ type ToolboxPanelModal<T extends object, IdType extends Primitive> = InstanceType<typeof ToolboxPanelModal<T, IdType>>;
25
26
  export default ToolboxPanelModal;
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Props for `ToolboxPanelModal` (the touch / horizontal-toolbar variant of
3
+ * the table settings panel).
4
+ */
1
5
  export interface ToolboxPanelModalProps {
6
+ /** Called when the modal requests close. */
2
7
  onclose?: () => void;
3
8
  }
@@ -1,5 +1,8 @@
1
+ import type { SelectOption } from '../../../Types/Internal/SelectOption.js';
1
2
  import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
2
- export declare const numberDateFilterTypes: {
3
- value: NumberDateFilterMode;
4
- label: string;
5
- }[];
3
+ /**
4
+ * Static set of filter-mode `SelectOption`s offered for numeric and date
5
+ * columns. Frozen at runtime so consumers cannot mutate the shared
6
+ * module-level array.
7
+ */
8
+ export declare const numberDateFilterTypes: Array<SelectOption<NumberDateFilterMode>>;
@@ -1,5 +1,10 @@
1
1
  import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
2
- export const numberDateFilterTypes = [
2
+ /**
3
+ * Static set of filter-mode `SelectOption`s offered for numeric and date
4
+ * columns. Frozen at runtime so consumers cannot mutate the shared
5
+ * module-level array.
6
+ */
7
+ export const numberDateFilterTypes = Object.freeze([
3
8
  { value: NumberDateFilterMode.Equals, label: 'Equals' },
4
9
  { value: NumberDateFilterMode.NotEquals, label: 'Does not equal' },
5
10
  { value: NumberDateFilterMode.LessThan, label: 'Less Than' },
@@ -9,5 +14,5 @@ export const numberDateFilterTypes = [
9
14
  { value: NumberDateFilterMode.Between, label: 'Between' },
10
15
  { value: NumberDateFilterMode.In, label: 'In' },
11
16
  { value: NumberDateFilterMode.NotIn, label: 'Not in' },
12
- { value: NumberDateFilterMode.null, label: 'Is null' }
13
- ];
17
+ { value: NumberDateFilterMode.null, label: 'Is null' },
18
+ ]);
@@ -1,5 +1,7 @@
1
+ import type { SelectOption } from '../../../Types/Internal/SelectOption.js';
1
2
  import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
2
- export declare const stringFilterTypes: {
3
- value: StringFilterMode;
4
- label: string;
5
- }[];
3
+ /**
4
+ * Static set of filter-mode `SelectOption`s offered for string columns.
5
+ * Frozen at runtime so consumers cannot mutate the shared module-level array.
6
+ */
7
+ export declare const stringFilterTypes: Array<SelectOption<StringFilterMode>>;
@@ -1,5 +1,9 @@
1
1
  import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
2
- export const stringFilterTypes = [
2
+ /**
3
+ * Static set of filter-mode `SelectOption`s offered for string columns.
4
+ * Frozen at runtime so consumers cannot mutate the shared module-level array.
5
+ */
6
+ export const stringFilterTypes = Object.freeze([
3
7
  { value: StringFilterMode.Equals, label: 'Equals' },
4
8
  { value: StringFilterMode.NotEquals, label: 'Does not equal' },
5
9
  { value: StringFilterMode.Contains, label: 'Contains' },
@@ -11,5 +15,5 @@ export const stringFilterTypes = [
11
15
  { value: StringFilterMode.In, label: 'In' },
12
16
  { value: StringFilterMode.NotIn, label: 'Not in' },
13
17
  { value: StringFilterMode.Empty, label: 'Empty' },
14
- { value: StringFilterMode.null, label: 'Is null' }
15
- ];
18
+ { value: StringFilterMode.null, label: 'Is null' },
19
+ ]);
@@ -1,92 +1,136 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
3
+ <script
4
+ lang="ts"
5
+ module
6
+ >
4
7
  import Table from './Table.svelte';
5
- import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
6
- import { TableContext } from './Types/Context/TableContext.svelte.js';
8
+ import type { NestedTableProps } from './NestedTableProps.js';
7
9
  import type { Primitive, TableInitOptions } from './Types/Context/TableInitOptions.js';
10
+ import { TableContext } from './Types/Context/TableContext.svelte.js';
8
11
  import { LocalTableDataRepository } from './Types/DataRepository/LocalTableDataRepository.svelte.js';
9
12
  import { ToolbarPosition } from './Types/Toolbar/ToolbarPosition.js';
10
13
 
11
- const defaultOptions: Omit<
14
+ /**
15
+ * Default `TableInitOptions` overrides applied to every nested table.
16
+ * Tuned for read-only inline display: copy, resize and column
17
+ * reordering are turned off, quick / advanced filtering remain on so
18
+ * the consumer can still narrow rows, the toolbar is hidden, and the
19
+ * footer is suppressed because pagination is rarely useful for inline
20
+ * nested data.
21
+ *
22
+ * Frozen so consumers cannot accidentally mutate the shared default
23
+ * object.
24
+ */
25
+ const DEFAULT_NESTED_TABLE_OPTIONS: Omit<
12
26
  TableInitOptions<object, never>,
13
27
  'selectionExtractor' | 'getUserId'
14
- > = {
28
+ > = Object.freeze({
15
29
  allowCopy: false,
16
30
  enableResize: false,
17
31
  allowColumnReordering: false,
18
32
  allowQuickFiltering: true,
19
33
  allowAdvancedFiltering: true,
20
34
  toolbar: ToolbarPosition.None,
21
- displayFooter: false
22
- };
23
-
24
- export interface NestedTableProps<T extends object, IdType extends Primitive> {
25
- tableName: string;
26
- data: Array<T>;
27
- columnDefWrapper: DefsWrapper<T>;
28
- options: Pick<TableInitOptions<T, IdType>, 'selectionExtractor'> &
29
- Partial<TableInitOptions<T, IdType>>;
30
- oncontextmenu?: (e: MouseEvent) => void;
31
- getUserId: () => string | undefined;
32
- }
35
+ displayFooter: false,
36
+ });
33
37
  </script>
34
38
 
35
- <script lang="ts" generics="T extends object,IdType extends Primitive">
39
+ <script
40
+ lang="ts"
41
+ generics="T extends object,IdType extends Primitive"
42
+ >
36
43
  const {
37
44
  tableName,
38
45
  data,
39
46
  columnDefWrapper,
40
47
  options,
41
48
  oncontextmenu,
42
- getUserId
49
+ getUserId,
43
50
  }: NestedTableProps<T, IdType> = $props();
44
51
 
52
+ // Reactive wrapper exposing the `data` prop as `.value` so the
53
+ // underlying LocalTableDataRepository can read it through its
54
+ // RefWrapper contract without us materialising a copy.
45
55
  const wrapper = {
46
56
  get value() {
47
57
  return data;
48
- }
58
+ },
49
59
  };
50
60
 
51
61
  let root: HTMLDivElement | undefined = $state();
52
- const maxWidth: number | undefined = $derived(
53
- root?.closest('.flex_table')?.getBoundingClientRect().width
54
- );
55
62
 
56
- // NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
57
- const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, () => getUserId()));
63
+ // Track the parent `.datatable`'s visible width (clientWidth) via
64
+ // ResizeObserver. `.datatable` is the horizontal scroll container,
65
+ // so its `clientWidth` is the visible viewport regardless of how
66
+ // wide the inner `.datatable-grid` has grown via `min-width:
67
+ // max-content`. Measuring `.flex_table` instead would pick up the
68
+ // scroll-content width through flex `min-width: auto` propagation,
69
+ // which sized the nested table to the full grid (much wider than
70
+ // the visible area) and broke the sticky-fit behaviour.
71
+ //
72
+ // Reading layout inside a derivation would force a synchronous
73
+ // reflow on every reactive re-run; the ResizeObserver path keeps
74
+ // it out of the reactive graph (workorder NestedTable P1).
75
+ let maxWidth: number | undefined = $state();
76
+ $effect(() => {
77
+ if (!root) {
78
+ return;
79
+ }
80
+ const scrollHost = root.closest('.datatable');
81
+ if (!(scrollHost instanceof HTMLElement)) {
82
+ return;
83
+ }
84
+ maxWidth = scrollHost.clientWidth;
85
+ const ro = new ResizeObserver(() => {
86
+ maxWidth = scrollHost.clientWidth;
87
+ });
88
+ ro.observe(scrollHost);
89
+ return () => {
90
+ ro.disconnect();
91
+ };
92
+ });
93
+
94
+ // These class instances are plain objects whose internal fields are
95
+ // already `$state`-backed; wrapping them in `$state(...)` (as the
96
+ // pre-cleanup version did) adds a redundant reactive layer. The
97
+ // dataRepo and tableContext references must remain stable across
98
+ // updates: a fresh `dataRepo` would clear filter/sort state, and a
99
+ // fresh `tableContext` would tear down focus.
100
+ //
101
+ // svelte-ignore state_referenced_locally
102
+ const dataRepo = new LocalTableDataRepository<T>(tableName, wrapper, () => getUserId());
58
103
 
59
- // NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
60
- const tableContext: TableContext<T, IdType> | undefined = $state(
61
- TableContext.init<T, IdType>(columnDefWrapper, tableName, dataRepo, {
62
- ...defaultOptions,
63
- ...options,
64
- getUserId: () => getUserId()
65
- })
66
- );
104
+ // svelte-ignore state_referenced_locally
105
+ const tableContext = TableContext.init<T, IdType>(columnDefWrapper, tableName, dataRepo, {
106
+ ...DEFAULT_NESTED_TABLE_OPTIONS,
107
+ ...options,
108
+ getUserId: () => getUserId(),
109
+ });
67
110
  </script>
68
111
 
69
112
  <!-- svelte-ignore a11y_no_static_element_interactions -->
70
113
  <div
71
114
  class="limit-height"
72
115
  bind:this={root}
73
- style={maxWidth != null ? `max-width: ${maxWidth}px` : ''}
116
+ style:width={maxWidth != null ? `${maxWidth}px` : null}
74
117
  oncontextmenu={(e) => {
75
118
  e.stopPropagation();
76
119
  oncontextmenu?.(e);
77
120
  }}
78
121
  >
79
- {#if tableContext}
80
- <Table nested {tableContext} />
81
- {/if}
122
+ <Table
123
+ nested
124
+ {tableContext}
125
+ />
82
126
  </div>
83
127
 
84
128
  <style>.limit-height {
85
- box-shadow: inset 0px 7px 5px -6px #cbd4da, inset 0px -7px 5px -6px #cbd4da;
86
- position: relative;
87
- padding: 1.5rem;
88
- background-color: #f4f7f9;
89
129
  position: sticky;
90
130
  left: 0;
91
131
  z-index: 3;
132
+ padding: 1.5rem;
133
+ box-sizing: border-box;
134
+ background-color: #f4f7f9;
135
+ box-shadow: inset 0px 7px 5px -6px #cbd4da, inset 0px -7px 5px -6px #cbd4da;
92
136
  }</style>