@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  <script
4
4
  lang="ts"
5
- generics="T extends object, FilterValueType"
5
+ generics="T extends object, IdType extends Primitive, FilterValueType"
6
6
  >
7
7
  import { dev } from '$app/environment';
8
8
  import Action from '../../Action.svelte';
@@ -13,12 +13,13 @@
13
13
  import TextInput from '../../TextInput.svelte';
14
14
  import ThreeStateRadio from '../../ThreeStateRadio.svelte';
15
15
  import DateModal from '../../Touch/DateModal.svelte';
16
- import { devCatch, hasQuery, isDateTuple, isNumericArray } from '../../../Helpers/Helpers.svelte.js';
16
+ import { hasQuery } from '../TableHelpers.svelte.js';
17
+ import { devCatch, isDateTuple, isNumericArray } from '../../../Helpers/Helpers.svelte.js';
17
18
  import { Colour, ColourSet } from '../../../scss/colours.js';
18
19
  import { InputVariant } from '../../../Types/Internal/InputVariant.js';
19
20
  import type { SelectOption } from '../../../Types/Internal/SelectOption.js';
20
21
  import { Size } from '../../../Types/Internal/Size.js';
21
- import { getContext, onMount, untrack } from 'svelte';
22
+ import { getContext, onDestroy, onMount, untrack } from 'svelte';
22
23
  import { cubicOut } from 'svelte/easing';
23
24
  import { fade } from 'svelte/transition';
24
25
 
@@ -32,12 +33,13 @@
32
33
  import { NumberInputDef } from '../Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js';
33
34
  import { SelectDef } from '../Types/Columns/Definitions/Accessors/SelectDef.svelte.js';
34
35
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
36
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
35
37
  import { CustomFilterType } from '../Types/Filtering/CustomFilterType.js';
36
38
  import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
37
39
  import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
38
40
  import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
39
41
 
40
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
42
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
41
43
 
42
44
  const { column, customFilters }: QuickSearchCellProps<T, FilterValueType> = $props();
43
45
 
@@ -88,7 +90,7 @@
88
90
  const isSelectOpen = $derived(openedSelect?.value === selectSymbol);
89
91
 
90
92
  // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents
91
- let asdfvalue: unknown | null = $state(null);
93
+ let value: unknown | null = $state(null);
92
94
  let valueMin: number | null = $state(null);
93
95
  let valueMax: number | null = $state(null);
94
96
 
@@ -140,7 +142,7 @@
140
142
  if (def.debug) {
141
143
  console.debug(`${def.id}: `, 'value:', $state.snapshot(x));
142
144
  }
143
- asdfvalue = (await x) ?? null;
145
+ value = (await x) ?? null;
144
146
  } else if (def.debug) {
145
147
  console.debug(
146
148
  `${def.id}: `,
@@ -150,7 +152,7 @@
150
152
  }
151
153
  } catch (e) {
152
154
  console.warn(e);
153
- asdfvalue = null;
155
+ value = null;
154
156
  }
155
157
  }).catch(devCatch);
156
158
  } else if (isSelect) {
@@ -208,36 +210,39 @@
208
210
  const gotValue = filteringStateValue;
209
211
  if (gotValue != undefined) {
210
212
  const [min, max] = gotValue as [number, number | undefined];
211
- asdfvalue = min;
213
+ value = min;
212
214
  valueMin = min;
213
215
  valueMax = max ?? null;
214
216
  } else {
215
- asdfvalue = valueMin = valueMax = null;
217
+ value = valueMin = valueMax = null;
216
218
  }
217
219
  } else if (tableContext.paginationRepo?.filtering) {
218
220
  const gotValue = filteringStateValue;
219
221
 
220
222
  if (gotValue != undefined) {
221
223
  const [min] = gotValue as [number, number | undefined];
222
- asdfvalue = min;
224
+ value = min;
223
225
  valueMin = min;
224
226
  valueMax = min;
225
227
  } else {
226
- asdfvalue = valueMin = valueMax = null;
228
+ value = valueMin = valueMax = null;
227
229
  }
228
230
  }
229
231
  } else if (tableContext.paginationRepo?.filtering) {
230
232
  const gotValue = filteringStateValue;
231
233
  if (gotValue == null || typeof gotValue == 'string' || typeof gotValue == 'number') {
232
- //RATS
233
- rats(gotValue);
234
- asdfvalue = gotValue;
234
+ assertNotPromise(gotValue);
235
+ value = gotValue;
235
236
  }
236
237
  }
237
238
  });
238
239
 
239
- function rats(gotValue: unknown) {
240
- // RATS
240
+ /**
241
+ * Dev-only invariant: a Promise must never reach the synchronous primitive
242
+ * sink (we should always have awaited it upstream). Throws in dev to make
243
+ * any regression loud; no-ops in production builds.
244
+ */
245
+ function assertNotPromise(gotValue: unknown) {
241
246
  if (dev && gotValue != null && typeof gotValue == 'object' && gotValue instanceof Promise) {
242
247
  throw new Error(`Unexpected Promise`);
243
248
  }
@@ -252,19 +257,18 @@
252
257
  [valueMin, valueMax] = filterOption.value;
253
258
  if (valueMax == undefined) {
254
259
  valueMax = valueMin;
255
- asdfvalue = valueMin?.toString();
260
+ value = valueMin?.toString();
256
261
  } else if (valueMin == undefined) {
257
262
  valueMin = valueMax;
258
- asdfvalue = valueMax.toString();
263
+ value = valueMax.toString();
259
264
  } else {
260
- asdfvalue = valueMin.toString();
265
+ value = valueMin.toString();
261
266
  }
262
267
  } else if (!hasQuery(customFilter)) {
263
268
  const gotValue = filterOption.value;
264
269
  if (gotValue == null || typeof gotValue == 'string' || typeof gotValue == 'number') {
265
- //RATS
266
- rats(gotValue);
267
- asdfvalue = gotValue;
270
+ assertNotPromise(gotValue);
271
+ value = gotValue;
268
272
  }
269
273
  }
270
274
  }
@@ -284,24 +288,69 @@
284
288
  return (newValue: SelectOption<unknown> | null) => {
285
289
  tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
286
290
  tableContext.dataRepo.__queryValues.set(label, newValue);
287
- rats(newValue);
288
- asdfvalue = newValue;
291
+ assertNotPromise(newValue);
292
+ value = newValue;
289
293
  };
290
294
  }
291
295
 
292
296
  function generateOnChangePrimitive(label: string) {
293
- return (newValue: SelectOption<unknown> | null) => {
294
- tableContext.paginationRepo?.filterBy(def.id, newValue?.value ?? null);
295
- tableContext.dataRepo.__queryValues.set(label, newValue?.value ?? null);
296
- rats(newValue);
297
- asdfvalue = newValue?.value ?? null;
297
+ // Phase 7.6: AsPrimitive QuerySelect now hands us the primitive
298
+ // directly (previously typed as `SelectOption` with a hidden
299
+ // `.value` dig). The discriminated typing makes the flow
300
+ // straightforward.
301
+ return (newValue: unknown) => {
302
+ tableContext.paginationRepo?.filterBy(def.id, newValue ?? null);
303
+ tableContext.dataRepo.__queryValues.set(label, newValue ?? null);
304
+ assertNotPromise(newValue);
305
+ value = newValue ?? null;
298
306
  };
299
307
  }
300
308
 
301
309
  let isNullFilter = $derived(selectedNumberFilterType?.value == NumberDateFilterMode.null);
310
+
311
+ /**
312
+ * Debounce window for typed filter inputs. For a 10k-row table each
313
+ * keystroke would otherwise kick off a full filter pass; coalescing
314
+ * adjacent keystrokes within `FILTER_DEBOUNCE_MS` cuts the cost to
315
+ * roughly one filter pass per pause-in-typing.
316
+ */
317
+ const FILTER_DEBOUNCE_MS = 300;
318
+
319
+ /**
320
+ * Sequence counter used to discard the result of a stale debounce
321
+ * timer. When the user types again before the timer fires, the
322
+ * `pendingSeq` increments; only the timer whose captured `seq`
323
+ * matches `pendingSeq` is allowed to call `filterBy`.
324
+ */
325
+ let pendingSeq = 0;
326
+ let debounceTimer: ReturnType<typeof setTimeout> | undefined;
327
+
328
+ function debouncedFilterBy(value: unknown): void {
329
+ pendingSeq += 1;
330
+ const seq = pendingSeq;
331
+ if (debounceTimer !== undefined) {
332
+ clearTimeout(debounceTimer);
333
+ }
334
+ debounceTimer = setTimeout(() => {
335
+ debounceTimer = undefined;
336
+ if (seq !== pendingSeq) {
337
+ // A newer keystroke superseded this one before the timer
338
+ // fired; the newer timer will handle the filter call.
339
+ return;
340
+ }
341
+ tableContext.paginationRepo?.filterBy(def.id, value);
342
+ }, FILTER_DEBOUNCE_MS);
343
+ }
344
+
345
+ onDestroy(() => {
346
+ if (debounceTimer !== undefined) {
347
+ clearTimeout(debounceTimer);
348
+ debounceTimer = undefined;
349
+ }
350
+ });
302
351
  </script>
303
352
 
304
- <td class="input-cell {inputId}">
353
+ <div class="input-cell {inputId}">
305
354
  {#if isSearchable}
306
355
  <div class="input-wrapper-parent">
307
356
  {#if isDate}
@@ -370,7 +419,7 @@
370
419
  name={customFilter.objectName ?? 'Item'}
371
420
  valueProp="value"
372
421
  labelProp="label"
373
- value={asdfvalue as null}
422
+ value={value as null}
374
423
  query={customFilter.query}
375
424
  bind:options={lastQueryOptions}
376
425
  onchange={generateOnChangePrimitive(label)}
@@ -386,7 +435,7 @@
386
435
  name={customFilter.objectName ?? 'Item'}
387
436
  valueProp="value"
388
437
  labelProp="label"
389
- value={asdfvalue as null}
438
+ value={value as null}
390
439
  query={customFilter.query}
391
440
  bind:options={lastQueryOptions}
392
441
  onchange={generateOnChangeObject(label)}
@@ -460,7 +509,7 @@
460
509
  variant={InputVariant.Table}
461
510
  placeholder="Min&hellip;"
462
511
  oninput={() => {
463
- tableContext.paginationRepo?.filterBy(def.id, [valueMin, valueMax]);
512
+ debouncedFilterBy([valueMin, valueMax]);
464
513
  }}
465
514
  onkeydown={closeOnCtrlF}
466
515
  />
@@ -473,7 +522,7 @@
473
522
  placeholder="Max&hellip;"
474
523
  variant={InputVariant.Table}
475
524
  oninput={() => {
476
- tableContext.paginationRepo?.filterBy(def.id, [valueMin, valueMax]);
525
+ debouncedFilterBy([valueMin, valueMax]);
477
526
  }}
478
527
  onkeydown={closeOnCtrlF}
479
528
  />
@@ -496,21 +545,22 @@
496
545
  <TextInput
497
546
  data-type="quicksearch"
498
547
  id={inputId}
499
- bind:value={asdfvalue as string | null}
548
+ bind:value={value as string | null}
500
549
  placeholder="Filter&hellip;"
501
550
  variant={InputVariant.Table}
502
551
  oninput={() => {
503
- tableContext.paginationRepo?.filterBy(def.id, [asdfvalue || null]);
552
+ debouncedFilterBy([value || null]);
504
553
  }}
505
554
  onkeydown={closeOnCtrlF}
506
555
  />
507
556
  {/if}
508
557
  {:catch e}
558
+ <!-- eslint-disable-next-line svelte/no-at-debug-tags -->
509
559
  {@debug e}
510
560
  {/await}
511
561
  </div>
512
562
  {/if}
513
- {:else if asdfvalue == null || typeof asdfvalue == 'string'}
563
+ {:else if value == null || typeof value == 'string'}
514
564
  <div class="input-wrapper right">
515
565
  {#if selectedStringFilterType?.value == StringFilterMode.null}
516
566
  <TextInput
@@ -533,10 +583,10 @@
533
583
  data-type="quicksearch"
534
584
  id={inputId}
535
585
  oninput={() => {
536
- tableContext.paginationRepo?.filterBy(def.id, asdfvalue);
586
+ debouncedFilterBy(value);
537
587
  }}
538
588
  variant={InputVariant.Table}
539
- bind:value={asdfvalue as string | null}
589
+ bind:value={value as string | null}
540
590
  placeholder="Filter&hellip;"
541
591
  />
542
592
  {/if}
@@ -597,7 +647,7 @@
597
647
  if (newFilterType === NumberDateFilterMode.Between) {
598
648
  tableContext.paginationRepo?.filterBy(def.id, [valueMin, valueMin]);
599
649
  } else if (newFilterType === NumberDateFilterMode.In) {
600
- tableContext.paginationRepo?.filterBy(def.id, [asdfvalue]);
650
+ tableContext.paginationRepo?.filterBy(def.id, [value]);
601
651
  } else {
602
652
  tableContext.paginationRepo?.filterBy(def.id, [valueMin, valueMax]);
603
653
  }
@@ -627,9 +677,13 @@
627
677
  </div>
628
678
  </div>
629
679
  {/if}
630
- </td>
680
+ </div>
631
681
 
632
- <style>td {
682
+ <style>.focusable,
683
+ .checkbox-cell,
684
+ .input-cell,
685
+ .select-cell,
686
+ .datepicker-cell {
633
687
  transition: line-height 0.2s ease, height 0.2s ease;
634
688
  --input-border: none;
635
689
  --input-height: var(--height);
@@ -639,14 +693,16 @@
639
693
  position: relative;
640
694
  padding-left: 0.75rem;
641
695
  padding-right: 0.75rem;
642
- border: solid 1px #cbd4da;
643
- border-left: none;
696
+ border-right: solid 1px #cbd4da;
697
+ border-bottom: solid 1px #cbd4da;
698
+ box-sizing: border-box;
699
+ width: 100%;
700
+ height: var(--height);
644
701
  }
645
702
 
646
- td.input-cell {
703
+ .input-cell {
647
704
  padding: unset;
648
705
  box-sizing: border-box;
649
- vertical-align: middle;
650
706
  }
651
707
 
652
708
  .spaced-around {
@@ -660,14 +716,14 @@ td.input-cell {
660
716
  justify-content: space-around;
661
717
  }
662
718
 
663
- td {
719
+ div.input-cell {
664
720
  background-color: #f4f7f9;
665
721
  height: var(--height);
666
722
  overflow: visible;
667
723
  padding-left: 0;
668
724
  padding-right: 0;
669
725
  }
670
- td div.stick-right {
726
+ div.input-cell div.stick-right {
671
727
  position: absolute;
672
728
  right: 0.5rem;
673
729
  height: 100%;
@@ -736,10 +792,10 @@ div.input-wrapper-parent div.input-wrapper.right {
736
792
  --input-padding-right: 2.6rem;
737
793
  }
738
794
 
739
- td {
795
+ [role=cell] {
740
796
  --input-width: 100%;
741
797
  }
742
- td .input-wrapper-parent {
798
+ [role=cell] .input-wrapper-parent {
743
799
  width: 100%;
744
800
  }
745
801
 
@@ -1,25 +1,26 @@
1
+ import type { Primitive } from '../Types/Context/TableInitOptions.js';
1
2
  import type { QuickSearchCellProps } from './QuickSearchCellProps.js';
2
- declare function $$render<T extends object, FilterValueType>(): {
3
+ declare function $$render<T extends object, IdType extends Primitive, FilterValueType>(): {
3
4
  props: QuickSearchCellProps<T, FilterValueType>;
4
5
  exports: {};
5
6
  bindings: "";
6
7
  slots: {};
7
8
  events: {};
8
9
  };
9
- declare class __sveltets_Render<T extends object, FilterValueType> {
10
- props(): ReturnType<typeof $$render<T, FilterValueType>>['props'];
11
- events(): ReturnType<typeof $$render<T, FilterValueType>>['events'];
12
- slots(): ReturnType<typeof $$render<T, FilterValueType>>['slots'];
10
+ declare class __sveltets_Render<T extends object, IdType extends Primitive, FilterValueType> {
11
+ props(): ReturnType<typeof $$render<T, IdType, FilterValueType>>['props'];
12
+ events(): ReturnType<typeof $$render<T, IdType, FilterValueType>>['events'];
13
+ slots(): ReturnType<typeof $$render<T, IdType, FilterValueType>>['slots'];
13
14
  bindings(): "";
14
15
  exports(): {};
15
16
  }
16
17
  interface $$IsomorphicComponent {
17
- new <T extends object, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, FilterValueType>['slots']>> & {
18
- $$bindings?: ReturnType<__sveltets_Render<T, FilterValueType>['bindings']>;
19
- } & ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
20
- <T extends object, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, FilterValueType>['exports']>;
21
- z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
18
+ new <T extends object, IdType extends Primitive, FilterValueType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, IdType, FilterValueType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, IdType, FilterValueType>['props']>, ReturnType<__sveltets_Render<T, IdType, FilterValueType>['events']>, ReturnType<__sveltets_Render<T, IdType, FilterValueType>['slots']>> & {
19
+ $$bindings?: ReturnType<__sveltets_Render<T, IdType, FilterValueType>['bindings']>;
20
+ } & ReturnType<__sveltets_Render<T, IdType, FilterValueType>['exports']>;
21
+ <T extends object, IdType extends Primitive, FilterValueType>(internal: unknown, props: ReturnType<__sveltets_Render<T, IdType, FilterValueType>['props']> & {}): ReturnType<__sveltets_Render<T, IdType, FilterValueType>['exports']>;
22
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
22
23
  }
23
24
  declare const QuickSearchCell: $$IsomorphicComponent;
24
- type QuickSearchCell<T extends object, FilterValueType> = InstanceType<typeof QuickSearchCell<T, FilterValueType>>;
25
+ type QuickSearchCell<T extends object, IdType extends Primitive, FilterValueType> = InstanceType<typeof QuickSearchCell<T, IdType, FilterValueType>>;
25
26
  export default QuickSearchCell;
@@ -1,6 +1,12 @@
1
1
  import type { Column } from '../Types/Columns/Column.js';
2
2
  import type { CustomRemoteFilters } from '../Types/Filtering/CustomRemoteFilters.js';
3
3
  export interface QuickSearchCellProps<T extends object, in FilterValueType> {
4
+ /** The column this cell renders an inline quick-filter input for. */
4
5
  column: Column<T, FilterValueType>;
6
+ /**
7
+ * Optional registry of remote-filter configurations (custom select / query
8
+ * filters) keyed by column id. Typed as `unknown` value because each
9
+ * configuration narrows its own filter value internally.
10
+ */
5
11
  customFilters?: CustomRemoteFilters<unknown> | undefined;
6
12
  }
@@ -1,33 +1,58 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >
4
7
  import Action from '../../../Action.svelte';
5
8
  import { Colour } from '../../../../scss/colours.js';
6
9
  import { Size } from '../../../../Types/Internal/Size.js';
10
+ import { getContext } from 'svelte';
11
+ import { TableContext } from '../../Types/Context/TableContext.svelte.js';
12
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
7
13
  import type { ColumnHighlightProps } from './ColumnHighlightProps.js';
8
14
 
9
15
  const { rowIndex, highlighted, toggleHighlightedRow }: ColumnHighlightProps = $props();
10
16
 
17
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
18
+
11
19
  const backgroundColour = $derived(highlighted ? Colour['$brand-primary'] : Colour['$ui-white']);
20
+
21
+ // Cell id is prefixed with the owning table name to avoid duplicate `id`
22
+ // attributes when multiple tables share the page (workorder P2).
23
+ const cellId = $derived(`${tableContext.tableName}-tagger-row-${rowIndex}`);
24
+ const label = $derived(
25
+ `${highlighted ? 'Unhighlight' : 'Highlight'} row ${(rowIndex + 1).toString()}`
26
+ );
12
27
  </script>
13
28
 
14
- <td id="tagger-row-{rowIndex}">
29
+ <!-- Toggle semantics: `aria-pressed` is communicated through the Action's label
30
+ which reads either "Highlight row N" or "Unhighlight row N" depending on state. -->
31
+ <div
32
+ id={cellId}
33
+ class="highlight-content"
34
+ >
15
35
  <div class="wrapper">
16
36
  <Action
17
37
  {backgroundColour}
18
38
  hoverBackgroundColour={Colour['$brand-dark']}
19
39
  size={Size.FillWidth}
40
+ {label}
20
41
  icon={{
21
- name: 'nothing'
42
+ name: 'nothing',
22
43
  }}
23
44
  onclick={() => {
24
45
  toggleHighlightedRow();
25
46
  }}
26
47
  />
27
- </div></td
28
- >
48
+ </div>
49
+ </div>
29
50
 
30
- <style>td {
51
+ <style>.focusable,
52
+ .checkbox-cell,
53
+ .input-cell,
54
+ .select-cell,
55
+ .datepicker-cell {
31
56
  transition: line-height 0.2s ease, height 0.2s ease;
32
57
  --input-border: none;
33
58
  --input-height: var(--height);
@@ -37,13 +62,22 @@
37
62
  position: relative;
38
63
  padding-left: 0.75rem;
39
64
  padding-right: 0.75rem;
40
- border: solid 1px #cbd4da;
41
- border-left: none;
65
+ border-right: solid 1px #cbd4da;
66
+ border-bottom: solid 1px #cbd4da;
67
+ box-sizing: border-box;
68
+ width: 100%;
69
+ height: var(--height);
42
70
  }
43
71
 
44
- td {
72
+ .highlight-content {
45
73
  position: relative;
46
74
  padding: 0;
75
+ width: 100%;
76
+ height: 100%;
77
+ min-height: var(--height, 3rem);
78
+ box-sizing: border-box;
79
+ border-right: solid 1px #cbd4da;
80
+ border-bottom: solid 1px #cbd4da;
47
81
  }
48
82
 
49
83
  div.wrapper {
@@ -1,4 +1,26 @@
1
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
1
2
  import type { ColumnHighlightProps } from './ColumnHighlightProps.js';
2
- declare const ColumnHighlight: import("svelte").Component<ColumnHighlightProps, {}, "">;
3
- type ColumnHighlight = ReturnType<typeof ColumnHighlight>;
3
+ declare function $$render<T extends object, IdType extends Primitive>(): {
4
+ props: ColumnHighlightProps;
5
+ exports: {};
6
+ bindings: "";
7
+ slots: {};
8
+ events: {};
9
+ };
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'];
14
+ bindings(): "";
15
+ exports(): {};
16
+ }
17
+ interface $$IsomorphicComponent {
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']>;
23
+ }
24
+ declare const ColumnHighlight: $$IsomorphicComponent;
25
+ type ColumnHighlight<T extends object, IdType extends Primitive> = InstanceType<typeof ColumnHighlight<T, IdType>>;
4
26
  export default ColumnHighlight;
@@ -1,5 +1,8 @@
1
1
  export interface ColumnHighlightProps {
2
+ /** Visible position of the row this cell belongs to (zero-based). */
2
3
  rowIndex: number;
4
+ /** True when the row is currently marked as highlighted. */
3
5
  highlighted: boolean;
6
+ /** Caller-supplied toggle; wraps `tableContext.toggleHighlightedRow`. */
4
7
  toggleHighlightedRow: () => void;
5
8
  }
@@ -2,16 +2,17 @@
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 { ColumnType } from '../../Types/Columns/ColumnType.js';
8
8
  import type { ColumnDef } from '../../Types/Columns/Definitions/ColumnDef.svelte.js';
9
9
  import { TableContext } from '../../Types/Context/TableContext.svelte.js';
10
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
10
11
  import { getContext } from 'svelte';
11
12
  import type { ColumnListProps } from './ColumnListProps.js';
12
13
  import ColumnListRow from './ColumnListRow.svelte';
13
14
 
14
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
15
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
15
16
 
16
17
  const { searchValue }: ColumnListProps = $props();
17
18
 
@@ -43,13 +44,15 @@
43
44
  class="column-list"
44
45
  ondrop={onDrop}
45
46
  >
46
- <!-- key={"top-anchor"} -->
47
47
  <!-- HACK this is used as an anchor for dragging rows to the top -->
48
48
  <ColumnListRow columnDef={null} />
49
49
 
50
- <!-- TODO try to find a key for these -->
51
- {#each visibleColumns as columnDef (columnDef)}
50
+ {#each visibleColumns as columnDef (columnDef.id)}
52
51
  <ColumnListRow {columnDef} />
52
+ {:else}
53
+ {#if searchValue.length > 0}
54
+ <li class="empty-state">No columns match &ldquo;{searchValue}&rdquo;</li>
55
+ {/if}
53
56
  {/each}
54
57
  </ul>
55
58
 
@@ -65,4 +68,11 @@
65
68
  padding: 0.5rem;
66
69
  margin: 0;
67
70
  overflow: auto;
71
+ }
72
+
73
+ .empty-state {
74
+ padding: 0.5rem;
75
+ text-align: center;
76
+ color: #8096a5;
77
+ font-style: italic;
68
78
  }</style>
@@ -1,25 +1,26 @@
1
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
1
2
  import type { ColumnListProps } from './ColumnListProps.js';
2
- declare function $$render<T extends object>(): {
3
+ declare function $$render<T extends object, IdType extends Primitive>(): {
3
4
  props: ColumnListProps;
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 ColumnList: $$IsomorphicComponent;
24
- type ColumnList<T extends object> = InstanceType<typeof ColumnList<T>>;
25
+ type ColumnList<T extends object, IdType extends Primitive> = InstanceType<typeof ColumnList<T, IdType>>;
25
26
  export default ColumnList;
@@ -1,3 +1,4 @@
1
1
  export interface ColumnListProps {
2
+ /** Lowercased substring filter applied to column id / header text. */
2
3
  searchValue: string;
3
4
  }