@lavalogic/scoria 0.36.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) 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 +437 -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 +133 -26
  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 +46 -23
  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.d.ts +2 -2
  223. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
  224. package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
  225. package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
  226. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +5 -3
  227. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte +5 -3
  229. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  230. package/dist/Components/Table/Headers/TableHead.svelte +340 -200
  231. package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
  232. package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
  233. package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
  234. package/dist/Components/Table/Misc/ColumnPanel.svelte +108 -50
  235. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +20 -7
  237. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
  238. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
  239. package/dist/Components/Table/Misc/FilterInput.svelte +30 -41
  240. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  241. package/dist/Components/Table/Misc/FilterPanel.svelte +387 -29
  242. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte +4 -51
  244. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  245. package/dist/Components/Table/Misc/SidePanel.svelte +12 -9
  246. package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
  247. package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
  248. package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
  249. package/dist/Components/Table/Misc/TableFooter.svelte +44 -35
  250. package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
  251. package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
  252. package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
  253. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +17 -48
  254. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  255. package/dist/Components/Table/Misc/TableSidebar.svelte +28 -47
  256. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte +121 -55
  258. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +31 -24
  260. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
  261. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
  262. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
  263. package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
  264. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
  265. package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
  266. package/dist/Components/Table/NestedTable.svelte +85 -41
  267. package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
  268. package/dist/Components/Table/NestedTableProps.d.ts +25 -0
  269. package/dist/Components/Table/NestedTableProps.js +1 -0
  270. package/dist/Components/Table/SubApis.svelte.d.ts +24 -0
  271. package/dist/Components/Table/SubApis.svelte.js +380 -0
  272. package/dist/Components/Table/Table.svelte +345 -172
  273. package/dist/Components/Table/Table.svelte.d.ts +24 -1
  274. package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
  275. package/dist/Components/Table/TableHelpers.svelte.js +88 -0
  276. package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
  277. package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
  278. package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
  279. package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
  280. package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
  281. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
  282. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
  283. package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
  284. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
  285. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
  286. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
  287. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
  288. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
  290. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
  291. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
  292. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
  293. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
  294. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
  295. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
  296. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
  297. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
  298. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
  299. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
  300. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
  301. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
  302. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
  303. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
  304. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
  305. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +30 -9
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +14 -0
  307. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
  308. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
  309. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
  310. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
  311. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
  312. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
  313. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
  314. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
  315. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
  316. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
  317. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
  318. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
  319. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
  320. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
  321. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
  322. package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
  323. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
  324. package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
  325. package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
  326. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
  327. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
  328. package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
  329. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
  330. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
  331. package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
  332. package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
  333. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
  334. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
  335. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
  336. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
  337. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
  338. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
  339. package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
  340. package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
  341. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
  342. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
  343. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
  344. package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
  345. package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
  346. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
  347. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
  348. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
  349. package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
  350. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +580 -58
  351. package/dist/Components/Table/Types/Context/TableContext.svelte.js +984 -1278
  352. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
  353. package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
  354. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
  355. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
  356. package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
  357. package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
  358. package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
  359. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
  360. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
  361. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
  362. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
  363. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
  364. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
  365. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
  366. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
  367. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
  368. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
  369. package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
  370. package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
  371. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
  372. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
  373. package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
  374. package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
  375. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
  376. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
  377. package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
  378. package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
  379. package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
  380. package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
  381. package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
  382. package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
  383. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
  384. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
  385. package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
  386. package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
  387. package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
  388. package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
  389. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
  390. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
  391. package/dist/Components/Table/Types/Header.d.ts +8 -0
  392. package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
  393. package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
  394. package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
  395. package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
  396. package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
  397. package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
  398. package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
  399. package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
  400. package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
  401. package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
  402. package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
  403. package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
  404. package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
  405. package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +244 -0
  406. package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
  407. package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
  408. package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
  409. package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
  410. package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
  411. package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
  412. package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
  413. package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
  414. package/dist/Components/Table/Types/Public/RowSource.js +1 -0
  415. package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
  416. package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
  417. package/dist/Components/Table/Types/Public/Table.d.ts +40 -0
  418. package/dist/Components/Table/Types/Public/Table.js +1 -0
  419. package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
  420. package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
  421. package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
  422. package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
  423. package/dist/Components/Table/Types/Public/TableSubApis.d.ts +190 -0
  424. package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
  425. package/dist/Components/Table/Types/Public/index.d.ts +20 -0
  426. package/dist/Components/Table/Types/Public/index.js +8 -0
  427. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
  428. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
  429. package/dist/Components/Table/createTable.svelte.d.ts +53 -0
  430. package/dist/Components/Table/createTable.svelte.js +270 -0
  431. package/dist/Components/TextArea.svelte +37 -18
  432. package/dist/Components/TextAreaProps.d.ts +37 -0
  433. package/dist/Components/TextInput.svelte +41 -22
  434. package/dist/Components/TextInputProps.d.ts +58 -1
  435. package/dist/Components/ThreeStateRadio.svelte +61 -64
  436. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  437. package/dist/Components/Touch/BoolCard.svelte +8 -15
  438. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  439. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  440. package/dist/Components/Touch/BoolCardProps.js +1 -0
  441. package/dist/Components/Touch/DateModal.svelte +17 -25
  442. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  443. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  444. package/dist/Components/Touch/DateModalProps.js +1 -0
  445. package/dist/Components/Touch/EditCard.svelte +10 -3
  446. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  447. package/dist/Components/Touch/InfoCard.svelte +14 -7
  448. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  449. package/dist/Components/Touch/InfoTextCard.svelte +9 -2
  450. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  451. package/dist/Components/Touch/ModalExplanation.svelte +9 -12
  452. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  453. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  454. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  455. package/dist/Components/Touch/NumberKeyboard.svelte +62 -105
  456. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  457. package/dist/Components/Touch/NumberModal.svelte +16 -6
  458. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  459. package/dist/Components/Touch/PlusMinusCard.svelte +12 -16
  460. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  461. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  462. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  463. package/dist/Components/Touch/SelectModal.svelte +33 -15
  464. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  465. package/dist/Components/Touch/SummaryCard.svelte +56 -14
  466. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  467. package/dist/Components/Touch/TextAreaModal.svelte +18 -9
  468. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  469. package/dist/Components/Touch/TextModal.svelte +15 -32
  470. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  471. package/dist/Components/Touch/TouchCard.svelte +9 -47
  472. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  473. package/dist/Components/Touch/TouchModal.svelte +105 -99
  474. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  475. package/dist/Components/Touch/UtilityButton.svelte +36 -18
  476. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  477. package/dist/Components/VerticalTabGroup.svelte +18 -40
  478. package/dist/Components/VerticalTabGroupButton.svelte +11 -50
  479. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  480. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  481. package/dist/Contexts/AlertContext.svelte.js +69 -6
  482. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  483. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  484. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  485. package/dist/Contexts/TestContext.svelte.js +29 -1
  486. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  487. package/dist/Contexts/ToastContext.svelte.js +93 -24
  488. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  489. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  490. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  491. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  492. package/dist/Delay/Delay.js +1 -1
  493. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  494. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  495. package/dist/Helpers/Datamatrix.d.ts +10 -1
  496. package/dist/Helpers/Datamatrix.js +290 -1
  497. package/dist/Helpers/Helpers.svelte.d.ts +252 -18
  498. package/dist/Helpers/Helpers.svelte.js +271 -75
  499. package/dist/Helpers/INamed.d.ts +6 -0
  500. package/dist/Helpers/Storage.d.ts +67 -0
  501. package/dist/Helpers/Storage.js +138 -0
  502. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  503. package/dist/Helpers/dropdownPortal.js +232 -0
  504. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  505. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  506. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  507. package/dist/Helpers/memoiseByRow.js +78 -0
  508. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  509. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  510. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  511. package/dist/Helpers/useTooltip.svelte.js +62 -0
  512. package/dist/Types/Examples/ExampleModal.svelte +12 -11
  513. package/dist/Types/Examples/ExampleModal.svelte.d.ts +2 -2
  514. package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
  515. package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
  516. package/dist/Types/Internal/AsyncFlag.js +1 -0
  517. package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
  518. package/dist/Types/Internal/ButtonProp.d.ts +24 -2
  519. package/dist/Types/Internal/CallbackButton.d.ts +12 -0
  520. package/dist/Types/Internal/DateChange.d.ts +8 -0
  521. package/dist/Types/Internal/DatePickerType.d.ts +5 -0
  522. package/dist/Types/Internal/DatePickerType.js +6 -1
  523. package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
  524. package/dist/Types/Internal/InputVariant.d.ts +5 -0
  525. package/dist/Types/Internal/InputVariant.js +6 -1
  526. package/dist/Types/Internal/Misc.d.ts +91 -0
  527. package/dist/Types/Internal/RefWrapper.d.ts +6 -0
  528. package/dist/Types/Internal/SelectOption.d.ts +8 -0
  529. package/dist/Types/Internal/Shape.d.ts +1 -0
  530. package/dist/Types/Internal/Shape.js +2 -1
  531. package/dist/Types/Internal/Side.d.ts +1 -0
  532. package/dist/Types/Internal/Side.js +2 -1
  533. package/dist/Types/Internal/Size.d.ts +5 -0
  534. package/dist/Types/Internal/Size.js +6 -1
  535. package/dist/Types/Internal/TabOption.d.ts +15 -5
  536. package/dist/Types/Internal/Ternary.d.ts +6 -0
  537. package/dist/Types/Internal/Ternary.js +7 -1
  538. package/dist/Types/Internal/ToastMessage.d.ts +28 -0
  539. package/dist/Types/Internal/Validity.d.ts +6 -0
  540. package/dist/Types/Internal/Validity.js +7 -1
  541. package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
  542. package/dist/Types/Internal/Variant.d.ts +5 -0
  543. package/dist/Types/Internal/Variant.js +6 -1
  544. package/dist/index.d.ts +27 -82
  545. package/dist/index.js +24 -62
  546. package/dist/scss/_mixins.scss +451 -167
  547. package/dist/scss/_motion.scss +57 -0
  548. package/dist/scss/_sizing.scss +16 -0
  549. package/dist/scss/colours.js +2 -2
  550. package/dist/scss/sizing.d.ts +9 -0
  551. package/dist/scss/sizing.js +10 -1
  552. package/package.json +35 -31
@@ -2,21 +2,64 @@
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
+ import Action from '../../../Action.svelte';
7
8
  import Checkbox from '../../../Checkbox.svelte';
8
- import Icon from '../../../Icon.svelte';
9
+ import ThreeStateRadio from '../../../ThreeStateRadio.svelte';
10
+ import { ColumnType } from '../../Types/Columns/ColumnType.js';
9
11
  import { TableContext } from '../../Types/Context/TableContext.svelte.js';
12
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
10
13
  import { Size } from '../../../../Types/Internal/Size.js';
14
+ import { Ternary } from '../../../../Types/Internal/Ternary.js';
11
15
  import { getContext } from 'svelte';
12
16
  import type { ColumnListRowProps } from './ColumnListRowProps.js';
13
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
17
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
14
18
 
15
19
  const { columnDef }: ColumnListRowProps<T> = $props();
16
20
 
17
- const isExpandColumn = $derived(columnDef?.columnType === 'Expand');
21
+ const isExpandColumn = $derived(columnDef?.columnType === ColumnType.Expand);
22
+
23
+ /**
24
+ * Position of this column inside the sorted column list, used to
25
+ * drive the disabled state of the "move up" / "move down" buttons
26
+ * (and to know which target index to pass `moveColumnTo`). The
27
+ * underlying `index` property is a stable identity for layout
28
+ * pinning, so we sort by it rather than relying on iteration
29
+ * order from the `columnDefs` array.
30
+ */
31
+ const sortedColumns = $derived(tableContext.columnDefs.slice().sort((a, b) => a.index - b.index));
32
+ const currentIndex = $derived(
33
+ columnDef == null ? -1 : sortedColumns.findIndex((it) => it.id === columnDef.id)
34
+ );
35
+ const isAtTop = $derived(currentIndex <= 0);
36
+ const isAtBottom = $derived(currentIndex === -1 || currentIndex >= sortedColumns.length - 1);
37
+
38
+ function moveUp(): void {
39
+ if (columnDef == null || isAtTop) {
40
+ return;
41
+ }
42
+ preserveListScroll(() => {
43
+ tableContext.moveColumnTo(currentIndex, currentIndex - 1);
44
+ });
45
+ }
46
+
47
+ function moveDown(): void {
48
+ if (columnDef == null || isAtBottom) {
49
+ return;
50
+ }
51
+ preserveListScroll(() => {
52
+ tableContext.moveColumnTo(currentIndex, currentIndex + 1);
53
+ });
54
+ }
18
55
 
19
56
  let isBeingTargeted = $state(false);
57
+ /** Bound `<li>` element used by `preserveListScroll` to find the
58
+ * enclosing `.column-list` even when the event target is the
59
+ * visibility checkbox's hidden `<input>` (which is
60
+ * `position: absolute` with no positioned ancestor and therefore
61
+ * drifts away from the row in the layout tree). */
62
+ let rowEl: HTMLLIElement | undefined = $state();
20
63
 
21
64
  function disableDragVisual() {
22
65
  isBeingTargeted = false;
@@ -25,59 +68,172 @@
25
68
  function makeKVPairs(item: string, index: number): readonly [string, number] {
26
69
  return [item, index];
27
70
  }
28
- function togglePinLeft() {
29
- if (columnDef == null) {
30
- return;
31
- }
32
71
 
33
- tableContext.setColumnPinning((pinning) => {
34
- const leftPinIndex = pinning.left?.get(columnDef.id) ?? -1;
35
- const left = [...(pinning.left?.keys() ?? [])];
36
- if (leftPinIndex !== -1) {
37
- left.splice(leftPinIndex, 1);
38
- } else {
39
- left.push(columnDef.id);
40
- }
72
+ /**
73
+ * Pre-click scroll snapshot. The key insight: when the user
74
+ * clicks a checkbox label, the browser fires a synthetic click
75
+ * on the associated hidden `<input>` *before* `onchange` fires.
76
+ * The synthetic click focuses the input, and the focus side
77
+ * effect already scrolls the column-list (and sometimes the
78
+ * window) to bring the 1x1px, `clip-path`-ed input's bounding
79
+ * box into view. By the time our `onchange` handler runs, the
80
+ * scroll has already happened, so reading `scrollTop` at that
81
+ * point gives us the *post-jump* position - "restoring" to it
82
+ * just freezes the list at the wrong spot.
83
+ *
84
+ * Snapshotting on `mousedown` (which fires before the focus
85
+ * step) captures the genuine pre-click position. We then use
86
+ * that snapshot to restore at multiple time points after the
87
+ * mutation so any further focus / layout shift gets undone.
88
+ */
89
+ let preClickListScroll = 0;
90
+ let preClickWindowScrollX = 0;
91
+ let preClickWindowScrollY = 0;
92
+ /** Milliseconds `Date.now()` stamp of the last `snapshotScrollPosition`
93
+ * call. Lets `preserveListScroll` tell apart "click triggered toggle
94
+ * whose mousedown just snapshotted real pre-click state" from
95
+ * "keyboard or other path where the mousedown snapshot is stale". */
96
+ let lastSnapshotAt = 0;
41
97
 
42
- const rightPinIndex = pinning.right?.get(columnDef.id) ?? -1;
43
- const right = [...(pinning.right?.keys() ?? [])];
44
- if (rightPinIndex !== -1) {
45
- right.splice(rightPinIndex, 1);
46
- }
47
- return {
48
- ...pinning,
49
- left: new Map(left.map(makeKVPairs)),
50
- right: new Map(right.map(makeKVPairs)),
51
- };
52
- });
98
+ /** Stale snapshots more than this many ms old are ignored. Tuned
99
+ * loose enough to survive any focus / click latency the browser
100
+ * might insert, but tight enough that an old click from minutes
101
+ * ago can't poison a later keyboard toggle. */
102
+ const SNAPSHOT_FRESHNESS_MS = 500;
103
+
104
+ function snapshotScrollPosition(): void {
105
+ const list = rowEl?.closest('.column-list') as HTMLElement | null;
106
+ preClickListScroll = list?.scrollTop ?? 0;
107
+ preClickWindowScrollX = typeof window !== 'undefined' ? window.scrollX : 0;
108
+ preClickWindowScrollY = typeof window !== 'undefined' ? window.scrollY : 0;
109
+ lastSnapshotAt = Date.now();
53
110
  }
54
111
 
55
- function togglePinRight() {
56
- if (columnDef == null) {
57
- return;
112
+ function restoreScrollPosition(): void {
113
+ const list = rowEl?.closest('.column-list') as HTMLElement | null;
114
+ if (list != null) {
115
+ list.scrollTop = preClickListScroll;
116
+ }
117
+ if (typeof window !== 'undefined') {
118
+ window.scrollTo(preClickWindowScrollX, preClickWindowScrollY);
58
119
  }
120
+ }
59
121
 
60
- tableContext.setColumnPinning((pinning) => {
61
- const rightPinIndex = pinning.right?.get(columnDef.id) ?? -1;
62
- const right = [...(pinning.right?.keys() ?? [])];
122
+ /**
123
+ * Run `mutate` and then re-apply the pre-click scroll snapshot
124
+ * aggressively across the next ~400ms so any deferred focus /
125
+ * layout work that fights us at the tail of the event loop still
126
+ * ends up at the user's original scroll position.
127
+ *
128
+ * The snapshot itself is taken in capture phase from the row's
129
+ * `{@attach}` listener below, *before* the focus side effect has
130
+ * a chance to scroll us. If `preserveListScroll` is invoked
131
+ * without a recent mousedown (keyboard toggle, programmatic
132
+ * call) we take a fresh snapshot here.
133
+ *
134
+ * In addition to the discrete `rAF` / `setTimeout` restores, a
135
+ * temporary scroll listener installed on the list and the
136
+ * window forcibly reverts any scroll event during the lock
137
+ * window. The listener short-circuits when `scrollTop` is
138
+ * already at the snapshot value, so it doesn't loop.
139
+ *
140
+ * The active hidden input is also blurred immediately after the
141
+ * mutation so the browser stops treating it as the "currently
142
+ * focused element to keep visible" on subsequent layout passes.
143
+ */
144
+ function preserveListScroll(mutate: () => void): void {
145
+ if (Date.now() - lastSnapshotAt > SNAPSHOT_FRESHNESS_MS) {
146
+ snapshotScrollPosition();
147
+ }
148
+ const focused =
149
+ typeof document !== 'undefined' && document.activeElement instanceof HTMLElement
150
+ ? document.activeElement
151
+ : null;
152
+ const list = rowEl?.closest('.column-list') as HTMLElement | null;
153
+ mutate();
154
+ if (focused != null && rowEl?.contains(focused) === true) {
155
+ focused.blur();
156
+ }
157
+ if (typeof requestAnimationFrame !== 'undefined') {
158
+ requestAnimationFrame(restoreScrollPosition);
159
+ }
160
+ setTimeout(restoreScrollPosition, 0);
161
+ setTimeout(restoreScrollPosition, 60);
162
+ setTimeout(restoreScrollPosition, 120);
163
+ setTimeout(restoreScrollPosition, 240);
63
164
 
64
- if (rightPinIndex !== -1) {
65
- right.splice(rightPinIndex, 1);
66
- } else {
67
- right.push(columnDef.id);
68
- }
165
+ // Scroll-lock: forcibly revert any rogue scroll for the next
166
+ // ~400ms. Anything inside this window that scrolls the list
167
+ // or the page (focus auto-scroll, scrollIntoView from a
168
+ // deferred reactive effect, etc.) is snapped back to the
169
+ // pre-click snapshot. The handler is a no-op when the value
170
+ // is already at the snapshot, so the restore call inside it
171
+ // does not retrigger.
172
+ if (list != null && typeof window !== 'undefined') {
173
+ const lockListHandler = (): void => {
174
+ if (list.scrollTop !== preClickListScroll) {
175
+ list.scrollTop = preClickListScroll;
176
+ }
177
+ };
178
+ const lockWindowHandler = (): void => {
179
+ if (window.scrollX !== preClickWindowScrollX || window.scrollY !== preClickWindowScrollY) {
180
+ window.scrollTo(preClickWindowScrollX, preClickWindowScrollY);
181
+ }
182
+ };
183
+ list.addEventListener('scroll', lockListHandler, { passive: true });
184
+ window.addEventListener('scroll', lockWindowHandler, { passive: true });
185
+ setTimeout(() => {
186
+ list.removeEventListener('scroll', lockListHandler);
187
+ window.removeEventListener('scroll', lockWindowHandler);
188
+ }, 400);
189
+ }
190
+ }
69
191
 
70
- const leftPinIndex = pinning.left?.get(columnDef.id) ?? -1;
71
- const left = [...(pinning.left?.keys() ?? [])];
72
- if (leftPinIndex !== -1) {
73
- left.splice(leftPinIndex, 1);
74
- }
192
+ /**
193
+ * Current pin state of this column expressed as a `Ternary` so the
194
+ * three states (`pinned-left` / `unpinned` / `pinned-right`) map
195
+ * cleanly onto `ThreeStateRadio`:
196
+ *
197
+ * - `Ternary.False` → pinned to the LEFT side (leftmost segment)
198
+ * - `Ternary.Neutral` → unpinned (middle segment)
199
+ * - `Ternary.True` → pinned to the RIGHT side (rightmost segment)
200
+ */
201
+ const pinSide: Ternary = $derived(
202
+ columnDef == null
203
+ ? Ternary.Neutral
204
+ : tableContext.columnPinning.left?.has(columnDef.id)
205
+ ? Ternary.False
206
+ : tableContext.columnPinning.right?.has(columnDef.id)
207
+ ? Ternary.True
208
+ : Ternary.Neutral
209
+ );
75
210
 
76
- return {
77
- ...pinning,
78
- left: new Map(left.map(makeKVPairs)),
79
- right: new Map(right.map(makeKVPairs)),
80
- };
211
+ /**
212
+ * Set this column's pin state from a `Ternary`. The previous
213
+ * side (if any) is removed first so the column is never pinned
214
+ * to both sides. Wrapped in `preserveListScroll` to keep the
215
+ * column-list scroll position pinned across any focus side
216
+ * effect inside the ThreeStateRadio's hidden inputs.
217
+ */
218
+ function setPin(next: Ternary): void {
219
+ if (columnDef == null) {
220
+ return;
221
+ }
222
+ preserveListScroll(() => {
223
+ tableContext.setColumnPinning((pinning) => {
224
+ const leftKeys = [...(pinning.left?.keys() ?? [])].filter((id) => id !== columnDef.id);
225
+ const rightKeys = [...(pinning.right?.keys() ?? [])].filter((id) => id !== columnDef.id);
226
+ if (next === Ternary.False) {
227
+ leftKeys.push(columnDef.id);
228
+ } else if (next === Ternary.True) {
229
+ rightKeys.push(columnDef.id);
230
+ }
231
+ return {
232
+ ...pinning,
233
+ left: new Map(leftKeys.map(makeKVPairs)),
234
+ right: new Map(rightKeys.map(makeKVPairs)),
235
+ };
236
+ });
81
237
  });
82
238
  }
83
239
 
@@ -87,19 +243,118 @@
87
243
 
88
244
  return;
89
245
  }
90
- tableContext.updateVisibility((defs) => {
91
- defs[columnDef.id] = (e.target as HTMLInputElement).checked;
92
- return defs;
246
+ const checked = (e.target as HTMLInputElement).checked;
247
+ preserveListScroll(() => {
248
+ tableContext.updateVisibility((defs) => {
249
+ defs[columnDef.id] = checked;
250
+ return defs;
251
+ });
93
252
  });
94
253
  };
254
+
255
+ /**
256
+ * Keyboard reorder support for power users. Arrow keys nudge the
257
+ * column up / down, Home / End jump to the ends. Bound on the row
258
+ * itself so any focusable child (eye, pin selector, move buttons)
259
+ * lets the user reorder without having to seek out a dedicated
260
+ * "drag handle" - the affordance is now the explicit up / down
261
+ * buttons in the row's right gutter.
262
+ *
263
+ * `Alt` is required as the modifier so plain arrow keys still
264
+ * navigate radio groups inside the row (ThreeStateRadio) and the
265
+ * row's own scroll container.
266
+ */
267
+ function onRowKeydown(e: KeyboardEvent) {
268
+ if (!columnDef || !tableContext.allowColumnReordering) {
269
+ return;
270
+ }
271
+ if (!e.altKey) {
272
+ return;
273
+ }
274
+ if (currentIndex === -1) {
275
+ return;
276
+ }
277
+
278
+ const lastIndex = sortedColumns.length - 1;
279
+ let targetIndex: number;
280
+
281
+ switch (e.key) {
282
+ case 'ArrowUp':
283
+ targetIndex = Math.max(0, currentIndex - 1);
284
+ break;
285
+ case 'ArrowDown':
286
+ targetIndex = Math.min(lastIndex, currentIndex + 1);
287
+ break;
288
+ case 'Home':
289
+ targetIndex = 0;
290
+ break;
291
+ case 'End':
292
+ targetIndex = lastIndex;
293
+ break;
294
+ default:
295
+ return;
296
+ }
297
+
298
+ if (targetIndex === currentIndex) {
299
+ e.preventDefault();
300
+ return;
301
+ }
302
+
303
+ e.preventDefault();
304
+ preserveListScroll(() => {
305
+ tableContext.moveColumnTo(currentIndex, targetIndex);
306
+ });
307
+ }
95
308
  </script>
96
309
 
97
310
  {#if columnDef}
311
+ {@const reorderLabel = typeof columnDef.header === 'string' ? columnDef.header : columnDef.id}
312
+ <!--
313
+ The `<li>` is a structural container for the eye, pin selector,
314
+ label, and reorder buttons - none of which the user activates by
315
+ clicking the `<li>` itself. The `onkeydown` here only captures
316
+ Alt+ArrowUp / Alt+ArrowDown / Alt+Home / Alt+End bubbling up from
317
+ whichever inner control has focus, to drive the reorder shortcut;
318
+ it never makes the `<li>` itself a focusable interactive widget.
319
+ Giving the row a `role` like `treeitem` or `option` would
320
+ mis-describe the structure (this is a free-form list of cards,
321
+ not a tree or listbox), so the right call is to silence the
322
+ warning here rather than fake the semantics.
323
+ -->
324
+ <!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
98
325
  <li
326
+ bind:this={rowEl}
99
327
  class="single-column"
100
328
  class:targeted={isBeingTargeted}
329
+ class:draggable={tableContext.allowColumnReordering}
101
330
  id="{tableContext.tableName}-column-settings-{columnDef.id}"
102
331
  draggable={tableContext.allowColumnReordering}
332
+ onkeydown={onRowKeydown}
333
+ {@attach (node: HTMLLIElement) => {
334
+ // Capture-phase listeners for `mousedown` and
335
+ // `pointerdown`. Both must fire BEFORE the synthetic
336
+ // click on the visibility / pin checkbox focuses its
337
+ // hidden input (which is what causes the browser to
338
+ // auto-scroll the column list to bring that input's
339
+ // 1x1px clip-pathed box into view). Capture phase runs
340
+ // before target / bubble phases, so this listener
341
+ // reliably snapshots the user's actual pre-click scroll
342
+ // position before any focus side effect lands.
343
+ //
344
+ // Both event types are wired because some browsers
345
+ // dispatch `pointerdown` before `mousedown` and others
346
+ // the reverse; whichever fires first wins (the second
347
+ // is a cheap no-op snapshot of the same state).
348
+ const snapshot = (): void => {
349
+ snapshotScrollPosition();
350
+ };
351
+ node.addEventListener('pointerdown', snapshot, { capture: true });
352
+ node.addEventListener('mousedown', snapshot, { capture: true });
353
+ return () => {
354
+ node.removeEventListener('pointerdown', snapshot, { capture: true });
355
+ node.removeEventListener('mousedown', snapshot, { capture: true });
356
+ };
357
+ }}
103
358
  ondragstart={() => {
104
359
  tableContext.dragTarget = columnDef;
105
360
  }}
@@ -113,50 +368,85 @@
113
368
  ondragleave={disableDragVisual}
114
369
  ondrop={disableDragVisual}
115
370
  >
116
- <Checkbox
117
- icon={{ name: 'assessment' }}
118
- id={`is-visible-${tableContext.tableName}-${columnDef.id}`}
119
- value={tableContext.columnVisibility[columnDef.id] !== false}
120
- onchange={onVisibilityChange}
121
- />
122
-
123
- {#if tableContext.allowColumnReordering}
124
- <!-- value={tableContext.columnPinning.left?.has(columnDef.id) ?? false} -->
371
+ <div class="visibility-wrapper">
125
372
  <Checkbox
126
- disabled={isExpandColumn}
127
- icon={{ name: 'pin-left' }}
128
- id={`is-pinned-left-${tableContext.tableName}-${columnDef.id}`}
129
- value={tableContext.columnPinning.left?.has(columnDef.id) || false}
130
- onchange={() => {
131
- togglePinLeft();
132
- }}
133
- />
134
- <!-- value={tableContext.columnPinning.right?.has(columnDef.id) ?? false} -->
135
- <Checkbox
136
- disabled={isExpandColumn}
137
- icon={{ name: 'pin-right' }}
138
- id={`is-pinned-right-${tableContext.tableName}-${columnDef.id}`}
139
- value={tableContext.columnPinning.right?.has(columnDef.id) || false}
140
- onchange={() => {
141
- togglePinRight();
142
- }}
373
+ icon={{ name: 'assessment', size: Size.Medium }}
374
+ size={Size.FillWidth}
375
+ id={`is-visible-${tableContext.tableName}-${columnDef.id}`}
376
+ value={tableContext.columnVisibility[columnDef.id] !== false}
377
+ onchange={onVisibilityChange}
143
378
  />
379
+ </div>
380
+
381
+ {#if tableContext.allowColumnReordering}
382
+ <!--
383
+ Tri-state pin selector rendered via `ThreeStateRadio`,
384
+ matching the visual segmented-control used elsewhere in
385
+ the table (filter Active state, etc.). The three
386
+ `Ternary` slots map to:
387
+ False → pinned LEFT (pin-left icon, leftmost)
388
+ Neutral → unpinned (circle-cross icon, middle)
389
+ True → pinned RIGHT (pin-right icon, rightmost)
390
+ Expand columns can never be pinned, so the group goes
391
+ fully disabled for them.
392
+ -->
144
393
  <div
145
- id={`drag-handle-${tableContext.tableName}-${columnDef.id}`}
146
- style="display: flex; cursor: move;"
394
+ class="pin-selector"
395
+ class:disabled={isExpandColumn}
147
396
  >
148
- <Icon
149
- name="handle"
150
- size={Size.Large}
397
+ <ThreeStateRadio
398
+ value={pinSide}
399
+ disabled={isExpandColumn}
400
+ noLabel="Pin to left"
401
+ neutralLabel="Unpinned"
402
+ yesLabel="Pin to right"
403
+ noIcon={{ name: 'pin-left', size: Size.Medium }}
404
+ neutralIcon={{ name: 'circle-cross', size: Size.Medium }}
405
+ yesIcon={{ name: 'pin-right', size: Size.Medium }}
406
+ onchange={(next: Ternary) => {
407
+ setPin(next);
408
+ }}
151
409
  />
152
410
  </div>
153
411
  {/if}
154
- {#if typeof columnDef.header === 'function'}
155
- <!-- FIXME this needs testing -->
156
- {@render columnDef.header()}
157
- <!-- <span>{columnDef.id}</span> -->
158
- {:else}
159
- <span>{columnDef.header}</span>
412
+
413
+ <span class="column-label">
414
+ {#if typeof columnDef.header === 'function'}
415
+ <!-- FIXME this needs testing -->
416
+ {@render columnDef.header()}
417
+ {:else}
418
+ {columnDef.header}
419
+ {/if}
420
+ </span>
421
+
422
+ {#if tableContext.allowColumnReordering}
423
+ <!--
424
+ Up / down "move" buttons make column reordering
425
+ discoverable without relying on the user noticing a
426
+ drag-cursor. The row remains draggable too (whole row
427
+ is the drag target now that the dedicated handle is
428
+ gone), so power users keep the drag-and-drop path.
429
+ Buttons disable at the list boundaries so we never
430
+ dispatch a no-op `moveColumnTo`.
431
+ -->
432
+ <div class="reorder-buttons">
433
+ <Action
434
+ icon={{ name: 'chevron-up', size: Size.Medium }}
435
+ size={Size.Medium}
436
+ paddingSize={Size.Small}
437
+ label="Move {reorderLabel} up"
438
+ disabled={isAtTop}
439
+ onclick={moveUp}
440
+ />
441
+ <Action
442
+ icon={{ name: 'chevron-down', size: Size.Medium }}
443
+ size={Size.Medium}
444
+ paddingSize={Size.Small}
445
+ label="Move {reorderLabel} down"
446
+ disabled={isAtBottom}
447
+ onclick={moveDown}
448
+ />
449
+ </div>
160
450
  {/if}
161
451
  </li>
162
452
  {:else}
@@ -186,9 +476,65 @@ li.targeted {
186
476
  border-bottom: solid 2px #259fc7;
187
477
  }
188
478
 
189
- li.single-column {
479
+ li.single-column:not(.anchor) {
190
480
  display: flex;
191
- gap: 1rem;
192
- padding: 0.5rem 0.5rem;
481
+ gap: 0.75rem;
482
+ padding: 0.5rem 0.75rem;
483
+ margin-bottom: 0.5rem;
193
484
  align-items: center;
485
+ background-color: #ffffff;
486
+ border: solid 1px #cbd4da;
487
+ border-radius: 4px;
488
+ position: relative;
489
+ }
490
+ li.single-column:not(.anchor).draggable {
491
+ cursor: grab;
492
+ }
493
+ li.single-column:not(.anchor).targeted {
494
+ border-color: #259fc7;
495
+ border-bottom-width: 2px;
496
+ }
497
+
498
+ li.single-column:not(.anchor):last-of-type {
499
+ margin-bottom: 0;
500
+ }
501
+
502
+ .visibility-wrapper {
503
+ width: 3rem;
504
+ height: 3rem;
505
+ display: flex;
506
+ flex-shrink: 0;
507
+ }
508
+
509
+ .pin-selector {
510
+ --input-height: 3rem;
511
+ --input-width: auto;
512
+ flex-shrink: 0;
513
+ display: flex;
514
+ flex-flow: row nowrap;
515
+ align-items: center;
516
+ }
517
+ .pin-selector.disabled {
518
+ opacity: 0.5;
519
+ }
520
+
521
+ .column-label {
522
+ flex: 1 1 auto;
523
+ min-width: 0;
524
+ overflow: hidden;
525
+ text-overflow: ellipsis;
526
+ white-space: nowrap;
527
+ }
528
+
529
+ .reorder-buttons {
530
+ flex-shrink: 0;
531
+ display: flex;
532
+ flex-flow: column nowrap;
533
+ align-items: center;
534
+ gap: 0.125rem;
535
+ }
536
+ .reorder-buttons :global(button[disabled]) {
537
+ --colour: #1f81a0;
538
+ color: #1f81a0;
539
+ background-color: transparent;
194
540
  }</style>
@@ -1,25 +1,26 @@
1
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
1
2
  import type { ColumnListRowProps } from './ColumnListRowProps.js';
2
- declare function $$render<T extends object>(): {
3
+ declare function $$render<T extends object, IdType extends Primitive>(): {
3
4
  props: ColumnListRowProps<T>;
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 ColumnListRow: $$IsomorphicComponent;
24
- type ColumnListRow<T extends object> = InstanceType<typeof ColumnListRow<T>>;
25
+ type ColumnListRow<T extends object, IdType extends Primitive> = InstanceType<typeof ColumnListRow<T, IdType>>;
25
26
  export default ColumnListRow;
@@ -1,4 +1,9 @@
1
1
  import type { ColumnDef } from '../../Types/Columns/Definitions/ColumnDef.svelte.js';
2
2
  export interface ColumnListRowProps<T extends object> {
3
+ /**
4
+ * The column definition rendered as a row in the column-settings list.
5
+ * Pass `null` to render the placeholder top-anchor `<li>` used as a
6
+ * drop target for "drag column to the top".
7
+ */
3
8
  columnDef: ColumnDef<T> | null;
4
9
  }