@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,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,105 @@
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}
98
312
  <li
313
+ bind:this={rowEl}
99
314
  class="single-column"
100
315
  class:targeted={isBeingTargeted}
316
+ class:draggable={tableContext.allowColumnReordering}
101
317
  id="{tableContext.tableName}-column-settings-{columnDef.id}"
102
318
  draggable={tableContext.allowColumnReordering}
319
+ onkeydown={onRowKeydown}
320
+ {@attach (node: HTMLLIElement) => {
321
+ // Capture-phase listeners for `mousedown` and
322
+ // `pointerdown`. Both must fire BEFORE the synthetic
323
+ // click on the visibility / pin checkbox focuses its
324
+ // hidden input (which is what causes the browser to
325
+ // auto-scroll the column list to bring that input's
326
+ // 1x1px clip-pathed box into view). Capture phase runs
327
+ // before target / bubble phases, so this listener
328
+ // reliably snapshots the user's actual pre-click scroll
329
+ // position before any focus side effect lands.
330
+ //
331
+ // Both event types are wired because some browsers
332
+ // dispatch `pointerdown` before `mousedown` and others
333
+ // the reverse; whichever fires first wins (the second
334
+ // is a cheap no-op snapshot of the same state).
335
+ const snapshot = (): void => {
336
+ snapshotScrollPosition();
337
+ };
338
+ node.addEventListener('pointerdown', snapshot, { capture: true });
339
+ node.addEventListener('mousedown', snapshot, { capture: true });
340
+ return () => {
341
+ node.removeEventListener('pointerdown', snapshot, { capture: true });
342
+ node.removeEventListener('mousedown', snapshot, { capture: true });
343
+ };
344
+ }}
103
345
  ondragstart={() => {
104
346
  tableContext.dragTarget = columnDef;
105
347
  }}
@@ -113,50 +355,85 @@
113
355
  ondragleave={disableDragVisual}
114
356
  ondrop={disableDragVisual}
115
357
  >
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} -->
358
+ <div class="visibility-wrapper">
125
359
  <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
- }}
360
+ icon={{ name: 'assessment', size: Size.Medium }}
361
+ size={Size.FillWidth}
362
+ id={`is-visible-${tableContext.tableName}-${columnDef.id}`}
363
+ value={tableContext.columnVisibility[columnDef.id] !== false}
364
+ onchange={onVisibilityChange}
143
365
  />
366
+ </div>
367
+
368
+ {#if tableContext.allowColumnReordering}
369
+ <!--
370
+ Tri-state pin selector rendered via `ThreeStateRadio`,
371
+ matching the visual segmented-control used elsewhere in
372
+ the table (filter Active state, etc.). The three
373
+ `Ternary` slots map to:
374
+ False → pinned LEFT (pin-left icon, leftmost)
375
+ Neutral → unpinned (circle-cross icon, middle)
376
+ True → pinned RIGHT (pin-right icon, rightmost)
377
+ Expand columns can never be pinned, so the group goes
378
+ fully disabled for them.
379
+ -->
144
380
  <div
145
- id={`drag-handle-${tableContext.tableName}-${columnDef.id}`}
146
- style="display: flex; cursor: move;"
381
+ class="pin-selector"
382
+ class:disabled={isExpandColumn}
147
383
  >
148
- <Icon
149
- name="handle"
150
- size={Size.Large}
384
+ <ThreeStateRadio
385
+ value={pinSide}
386
+ disabled={isExpandColumn}
387
+ noLabel="Pin to left"
388
+ neutralLabel="Unpinned"
389
+ yesLabel="Pin to right"
390
+ noIcon={{ name: 'pin-left', size: Size.Medium }}
391
+ neutralIcon={{ name: 'circle-cross', size: Size.Medium }}
392
+ yesIcon={{ name: 'pin-right', size: Size.Medium }}
393
+ onchange={(next: Ternary) => {
394
+ setPin(next);
395
+ }}
151
396
  />
152
397
  </div>
153
398
  {/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>
399
+
400
+ <span class="column-label">
401
+ {#if typeof columnDef.header === 'function'}
402
+ <!-- FIXME this needs testing -->
403
+ {@render columnDef.header()}
404
+ {:else}
405
+ {columnDef.header}
406
+ {/if}
407
+ </span>
408
+
409
+ {#if tableContext.allowColumnReordering}
410
+ <!--
411
+ Up / down "move" buttons make column reordering
412
+ discoverable without relying on the user noticing a
413
+ drag-cursor. The row remains draggable too (whole row
414
+ is the drag target now that the dedicated handle is
415
+ gone), so power users keep the drag-and-drop path.
416
+ Buttons disable at the list boundaries so we never
417
+ dispatch a no-op `moveColumnTo`.
418
+ -->
419
+ <div class="reorder-buttons">
420
+ <Action
421
+ icon={{ name: 'chevron-up', size: Size.Medium }}
422
+ size={Size.Medium}
423
+ paddingSize={Size.Small}
424
+ label="Move {reorderLabel} up"
425
+ disabled={isAtTop}
426
+ onclick={moveUp}
427
+ />
428
+ <Action
429
+ icon={{ name: 'chevron-down', size: Size.Medium }}
430
+ size={Size.Medium}
431
+ paddingSize={Size.Small}
432
+ label="Move {reorderLabel} down"
433
+ disabled={isAtBottom}
434
+ onclick={moveDown}
435
+ />
436
+ </div>
160
437
  {/if}
161
438
  </li>
162
439
  {:else}
@@ -186,9 +463,65 @@ li.targeted {
186
463
  border-bottom: solid 2px #259fc7;
187
464
  }
188
465
 
189
- li.single-column {
466
+ li.single-column:not(.anchor) {
190
467
  display: flex;
191
- gap: 1rem;
192
- padding: 0.5rem 0.5rem;
468
+ gap: 0.75rem;
469
+ padding: 0.5rem 0.75rem;
470
+ margin-bottom: 0.5rem;
193
471
  align-items: center;
472
+ background-color: #ffffff;
473
+ border: solid 1px #cbd4da;
474
+ border-radius: 4px;
475
+ position: relative;
476
+ }
477
+ li.single-column:not(.anchor).draggable {
478
+ cursor: grab;
479
+ }
480
+ li.single-column:not(.anchor).targeted {
481
+ border-color: #259fc7;
482
+ border-bottom-width: 2px;
483
+ }
484
+
485
+ li.single-column:not(.anchor):last-of-type {
486
+ margin-bottom: 0;
487
+ }
488
+
489
+ .visibility-wrapper {
490
+ width: 3rem;
491
+ height: 3rem;
492
+ display: flex;
493
+ flex-shrink: 0;
494
+ }
495
+
496
+ .pin-selector {
497
+ --input-height: 3rem;
498
+ --input-width: auto;
499
+ flex-shrink: 0;
500
+ display: flex;
501
+ flex-flow: row nowrap;
502
+ align-items: center;
503
+ }
504
+ .pin-selector.disabled {
505
+ opacity: 0.5;
506
+ }
507
+
508
+ .column-label {
509
+ flex: 1 1 auto;
510
+ min-width: 0;
511
+ overflow: hidden;
512
+ text-overflow: ellipsis;
513
+ white-space: nowrap;
514
+ }
515
+
516
+ .reorder-buttons {
517
+ flex-shrink: 0;
518
+ display: flex;
519
+ flex-flow: column nowrap;
520
+ align-items: center;
521
+ gap: 0.125rem;
522
+ }
523
+ .reorder-buttons :global(button[disabled]) {
524
+ --colour: #1f81a0;
525
+ color: #1f81a0;
526
+ background-color: transparent;
194
527
  }</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
  }