@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
@@ -1,3 +1,20 @@
1
1
  import type { Validity } from '../../../../../Types/Internal/Validity.js';
2
2
  import type { ValidityWrapper } from '../../../../../Types/Internal/ValidityWrapper.js';
3
+ /**
4
+ * Per-row validity callback supplied via `ColumnDef.isValid`. Receives the
5
+ * row and a flag indicating whether the row is currently selected (which
6
+ * may itself be a `Promise` if `selectionExtractor` is async).
7
+ *
8
+ * The return union is asymmetric: the synchronous path may resolve to a
9
+ * plain `Validity` enum value or a `ValidityWrapper` with a `reason` string,
10
+ * while the asynchronous path wraps both possibilities in a Promise. The
11
+ * normalised form would be `Validity | ValidityWrapper |
12
+ * Promise<Validity | ValidityWrapper>`; this is a non-breaking renaming of
13
+ * the existing union and is deferred to the dedicated workorder (`ValidationFn`
14
+ * P2 finding).
15
+ *
16
+ * Security note: a throw inside the synchronous part propagates into the
17
+ * caller's effect. Wrapping callers in a `try`/`catch` fence is deferred to
18
+ * the centralised `safeCallerFn` work.
19
+ */
3
20
  export type ValidationFn<T> = (item: T, isSelected: boolean | Promise<boolean>) => Validity | Promise<Validity | ValidityWrapper> | ValidityWrapper;
@@ -1,5 +1,15 @@
1
1
  import type { CustomRemoteFilters } from '../Filtering/CustomRemoteFilters.js';
2
2
  import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
3
+ /**
4
+ * Container returned by every column-defs factory (e.g.
5
+ * `generateExampleItemColumnDefs`). Holds the array of `ColumnDef` instances
6
+ * for a given table plus any custom remote-filter providers.
7
+ *
8
+ * `remoteFilters` is typed `CustomRemoteFilters<unknown>` because the wrapper
9
+ * cannot know the per-column filter value types in advance; the type
10
+ * strictness review tracks tightening this in workorder `TableContext`
11
+ * finding 2.
12
+ */
3
13
  export interface DefsWrapper<T extends object> {
4
14
  defs: Array<ColumnDef<T>>;
5
15
  remoteFilters?: CustomRemoteFilters<unknown>;
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Sub-taxonomy for `Display`-typed columns. Selects which read-only cell
3
+ * component renders the column body:
4
+ *
5
+ * - `Normal` - plain `DisplayCell` (text-only).
6
+ * - `Bubbles` - `BubbleCell` (one bubble per item in the accessor array).
7
+ * - `Progress` - `ProgressCell` (numeric pair rendered as a progress bar).
8
+ * - `Validity` - validity-icon column driven by `ColumnDef.isValid`.
9
+ *
10
+ * Note: the string values overlap deliberately with `AccessorType` (`'Date'`,
11
+ * `'Normal'`); type-side these are distinct because the unions never mix at
12
+ * the same call site.
13
+ */
1
14
  export declare const DisplayType: {
2
15
  readonly Normal: "Normal";
3
16
  readonly Bubbles: "Bubbles";
@@ -1,8 +1,21 @@
1
+ /**
2
+ * Sub-taxonomy for `Display`-typed columns. Selects which read-only cell
3
+ * component renders the column body:
4
+ *
5
+ * - `Normal` - plain `DisplayCell` (text-only).
6
+ * - `Bubbles` - `BubbleCell` (one bubble per item in the accessor array).
7
+ * - `Progress` - `ProgressCell` (numeric pair rendered as a progress bar).
8
+ * - `Validity` - validity-icon column driven by `ColumnDef.isValid`.
9
+ *
10
+ * Note: the string values overlap deliberately with `AccessorType` (`'Date'`,
11
+ * `'Normal'`); type-side these are distinct because the unions never mix at
12
+ * the same call site.
13
+ */
1
14
  export const DisplayType = {
2
15
  Normal: 'Normal',
3
16
  Bubbles: 'Bubbles',
4
17
  Progress: 'Progress',
5
18
  // Icon: 'Icon', // NYI
6
- Validity: 'Validity'
19
+ Validity: 'Validity',
7
20
  };
8
21
  Object.freeze(DisplayType);
@@ -1,5 +1,10 @@
1
1
  import type { Primitive } from '../Context/TableInitOptions.js';
2
2
  import type { ExpandDef } from './Definitions/Expand/ExpandDef.svelte.js';
3
+ /**
4
+ * Narrowed `Column<T>` whose `columnDef` is an `ExpandDef` (master/detail).
5
+ * `T` is the outer row type, `R` the inner-table row type, `IdType` the
6
+ * `selectionExtractor` return type for the inner table.
7
+ */
3
8
  export interface ExpandColumn<T extends object, R extends object, IdType extends Primitive, FilterValueType> {
4
9
  id: string;
5
10
  columnDef: ExpandDef<T, R, IdType, FilterValueType>;
@@ -1,6 +1,13 @@
1
1
  import type { Row } from '../Context/Row.js';
2
2
  import type { Primitive } from '../Context/TableInitOptions.js';
3
3
  import type { ExpandColumn } from './ExpandColumn.js';
4
+ /**
5
+ * Narrowed `TableCell<T>` for expand columns. The natural shape of
6
+ * `getValue` would be `ReadonlyArray<R> | Promise<ReadonlyArray<R>>`
7
+ * (the inner-table rows for this row), but the cell is currently typed
8
+ * `unknown` for consistency with `TableCell.getValue`; tightening is deferred
9
+ * to the parent `TableCell.getValue` workorder.
10
+ */
4
11
  export interface ExpandTableCell<T extends object, R extends object, IdType extends Primitive, FilterValueType> {
5
12
  column: ExpandColumn<T, R, IdType, FilterValueType>;
6
13
  row: Row<T>;
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Serialisable mirror of `ColumnPinningState`. `ReadonlyMap` is not
3
+ * `JSON.stringify`-friendly, so column-preset save/restore code in
4
+ * `TableContext` converts to/from this `Array<[id, width]>` representation
5
+ * for localStorage round-trips.
6
+ */
1
7
  export interface JSONColumnPinningState {
2
8
  left?: Array<[string, number]>;
3
9
  right?: Array<[string, number]>;
@@ -1,4 +1,9 @@
1
1
  import type { ProgressBarDef } from './Definitions/Display/ProgressBarDef.svelte.js';
2
+ /**
3
+ * Narrowed `Column<T>` whose `columnDef` is a `ProgressBarDef`. As with
4
+ * `DateColumn`, this currently declares its own shape; collapsing to
5
+ * `extends Column<T, F>` is deferred (workorder Types-Columns finding 10).
6
+ */
2
7
  export interface ProgressBarColumn<T extends object, FilterValueType> {
3
8
  id: string;
4
9
  columnDef: ProgressBarDef<T, FilterValueType>;
@@ -2,6 +2,15 @@ import type { Row } from '../Context/Row.js';
2
2
  import type { NumberFilterValueType } from '../Filtering/FilterFn.js';
3
3
  import type { ProgressBarColumn } from './ProgressBarColumn.js';
4
4
  import type { TableCell } from './TableCell.js';
5
+ /**
6
+ * Narrowed `TableCell<T>` for progress-bar columns. The natural shape of
7
+ * `getValue` here is `[number, number] | Promise<[number, number]>`
8
+ * (current, max); tightening is deferred to the parent `TableCell.getValue`
9
+ * workorder so the change happens in one place.
10
+ *
11
+ * Default `FilterValueType = NumberFilterValueType` reflects the fact that
12
+ * the only sensible filter shape for a progress column is a numeric range.
13
+ */
5
14
  export interface ProgressBarTableCell<T extends object, FilterValueType = NumberFilterValueType> extends TableCell<T, FilterValueType> {
6
15
  column: ProgressBarColumn<T, FilterValueType>;
7
16
  row: Row<T>;
@@ -1,4 +1,16 @@
1
1
  import type { ColourSet } from '../../../../scss/colours.js';
2
+ /**
3
+ * One per-row action exposed by an `ActionsDef`. Rendered as a `Button`
4
+ * inside `ActionsCell.svelte`.
5
+ *
6
+ * - `getLabel(item, index)` produces the visible label (and tooltip /
7
+ * `aria-label`) per row. May return a `Promise` so consumers can read from
8
+ * an async source.
9
+ * - `callback(item, index)` is invoked synchronously on click. The cell
10
+ * awaits any returned promise via `devCatch`.
11
+ * - `colourSet` controls the button colour set (defaults to `Auxiliary`).
12
+ * - `disabled` is a static fallback; `isDisabled` overrides per-row.
13
+ */
2
14
  export interface TableActionButton<T> {
3
15
  getLabel: (item: T, index: number) => string | Promise<string>;
4
16
  callback: (item: T, index: number) => void;
@@ -1,8 +1,22 @@
1
1
  import type { Row } from '../Context/Row.js';
2
2
  import type { Column } from './Column.js';
3
- export interface TableCell<T extends object, in FilterValueType = never, out FilterOptionsType = unknown> {
3
+ /**
4
+ * `TableCell<T, FilterValueType, FilterOptionsType, TValue>` is the per-cell
5
+ * handle exposed to body components.
6
+ *
7
+ * The optional `TValue` generic is the declared value type for the column
8
+ * the cell belongs to. Defaulting it to `unknown` keeps all existing call
9
+ * sites compiling: a cell consumer that does not parametrise on `TValue`
10
+ * continues to see `unknown | Promise<unknown>` exactly as before.
11
+ *
12
+ * Cell hosts that know the column shape (`TableNumberInput`, `TableCheckbox`,
13
+ * etc.) can pass a narrower `TValue` either explicitly or by reading it from
14
+ * a `ColumnDef<T, ..., TValue>`. The intent is to let `cell.getValue()` be
15
+ * typed instead of `unknown` without breaking any external consumer.
16
+ */
17
+ export interface TableCell<T extends object, in FilterValueType = never, out FilterOptionsType = unknown, TValue = unknown> {
4
18
  column: Column<T, FilterValueType, FilterOptionsType>;
5
19
  row: Row<T>;
6
20
  id: string;
7
- getValue: () => unknown | Promise<unknown>;
21
+ getValue: () => TValue | Promise<TValue>;
8
22
  }
@@ -1 +1,13 @@
1
+ /**
2
+ * Per-column visibility map keyed by column id. Tri-state by design:
3
+ *
4
+ * - `true` - column is visible (set explicitly by the user).
5
+ * - `false` - column is hidden.
6
+ * - `undefined` - no user preference recorded; the table treats this as
7
+ * visible (every `getIsVisible()` check uses `!== false`).
8
+ *
9
+ * Persisted to localStorage as-is. The tri-state contract is intentional and
10
+ * must be preserved when refactoring; collapsing to `Record<string, boolean>`
11
+ * would lose the "no preference" branch the column-preset code relies on.
12
+ */
1
13
  export type VisibilityState = Record<string, boolean | undefined>;
@@ -0,0 +1,173 @@
1
+ import type { ColumnDef } from '../Columns/Definitions/ColumnDef.svelte.js';
2
+ import type { ColumnPinningState } from '../Columns/ColumnPinningState.js';
3
+ import type { ColumnSizingState } from '../Columns/ColumnSizingState.js';
4
+ import type { VisibilityState } from '../Columns/VisibilityState.js';
5
+ import type { VisualColumnIndex } from '../Coordinates/ColumnIndices.js';
6
+ /**
7
+ * Dependency surface that `ColumnLayoutState` reads from the surrounding
8
+ * `TableContext`. Every dependency is passed as a thunk so the sub-context
9
+ * never holds a direct reference to the parent; reactivity threads through
10
+ * `$derived` exactly as before the extraction.
11
+ */
12
+ export interface ColumnLayoutStateDeps {
13
+ /** Master gate from `TableInitOptions.allowColumnReordering`. When
14
+ * false, `setColumnPinning` short-circuits. */
15
+ getAllowColumnReordering: () => boolean;
16
+ /** Logger gate; mirrors the parent `TableContext.debug` field. */
17
+ getDebug: () => boolean;
18
+ }
19
+ /**
20
+ * Phase 6.3 god-object decomposition - sub-context that owns every
21
+ * column-layout concern previously held directly on `TableContext`:
22
+ *
23
+ * - `columnDefs` (the ordered array of column definitions),
24
+ * - `columnDefsById` (`$derived` id->def lookup map),
25
+ * - `columnPinning` / `columnSizing` / `columnVisibility` (the three
26
+ * per-column maps the consumer mutates through the public setters),
27
+ * - `_visualColumns` and `_visualColumnIndexById` (the cached visual
28
+ * display order plus the paired `Map<id, VisualColumnIndex>` that
29
+ * makes `columnVisualIndex` an O(1) lookup - Phase-5 Group 1
30
+ * workorder P0),
31
+ * - `columnVisualIndex(id)` (the public lookup),
32
+ * - `setColumnPinning(updater)` (delegating writer that respects the
33
+ * `allowColumnReordering` master gate).
34
+ *
35
+ * `TableContext` retains delegating getters / setters / methods for
36
+ * every legacy surface (`columnDefs`, `columnPinning`, `columnSizing`,
37
+ * `columnVisibility`, `columnDefsById`, `columnVisualIndex`,
38
+ * `_visualColumns`, `setColumnPinning`, etc.) so existing consumers
39
+ * need no migration. Future consumers can read `tableContext._columnLayout`
40
+ * directly once the migration is complete (see
41
+ * `src/stories/Concepts/TableContext-decomposition.mdx`).
42
+ *
43
+ * The `focusStartVisualColumn` / `focusEndVisualColumn` getters straddle
44
+ * column-layout and focus; the column-layout-side calculation
45
+ * (`columnVisualIndex` lookup) lives here, but the focus-side state
46
+ * (`focusStart`, `focusEnd`) stays on `TableContext` until the Phase 6.6
47
+ * `FocusState` extraction. The parent's `focusStartVisualColumn` getter
48
+ * therefore reads `this.focusStart?.id` and calls
49
+ * `this._columnLayout.columnVisualIndex(...)`.
50
+ */
51
+ export declare class ColumnLayoutState<T extends object> {
52
+ private readonly _deps;
53
+ private _columnDefs;
54
+ private _columnSizing;
55
+ private _columnPinning;
56
+ private _columnVisibility;
57
+ /**
58
+ * @param deps thunks the sub-context reads from the parent.
59
+ * Constructor-only - no implicit setup so the parent
60
+ * remains in control of effect ownership and lifecycle.
61
+ */
62
+ constructor(deps: ColumnLayoutStateDeps);
63
+ /**
64
+ * The ordered array of column definitions. Memory order (declaration
65
+ * order) is preserved across reorder operations - drag-reorder
66
+ * mutates the per-def `.index` field but does not change the array
67
+ * identity until the consumer reassigns `columnDefs` wholesale.
68
+ *
69
+ * Setter accepts any array of `ColumnDef<T>`; the parent
70
+ * `TableContext` is responsible for index normalisation when
71
+ * applying drag-drop or preset switches (see `reorderColumn`,
72
+ * `moveColumnTo`, `setSelectedPreset`).
73
+ */
74
+ get columnDefs(): Array<ColumnDef<T>>;
75
+ set columnDefs(v: Array<ColumnDef<T>>);
76
+ /**
77
+ * Per-column width state (pixels), keyed by column id. Persisted to
78
+ * localStorage as-is by `TableContext._updateLocalStorageSettings`.
79
+ * Setter accepts a full replacement object; per-key writes are
80
+ * handled by `autoResize` mutating in place (which is fine because
81
+ * the underlying `$state` slot is itself the proxy).
82
+ */
83
+ get columnSizing(): ColumnSizingState;
84
+ set columnSizing(v: ColumnSizingState);
85
+ /**
86
+ * Per-column pin state (left / right). Setter is exposed publicly
87
+ * for direct assignment by the parent (e.g. `setSelectedPreset` and
88
+ * the init flow); the gated `setColumnPinning` updater below honours
89
+ * the `allowColumnReordering` master gate.
90
+ */
91
+ get columnPinning(): ColumnPinningState;
92
+ set columnPinning(v: ColumnPinningState);
93
+ /**
94
+ * Tri-state per-column visibility map. `true` = visible, `false` =
95
+ * hidden, `undefined` = no preference (treated as visible). See
96
+ * `VisibilityState` for the design rationale.
97
+ */
98
+ get columnVisibility(): VisibilityState;
99
+ set columnVisibility(v: VisibilityState);
100
+ /**
101
+ * `$derived` id->def lookup map. Re-built whenever `columnDefs`
102
+ * changes; reads on this getter inside `$derived` / `$effect`
103
+ * contexts therefore re-subscribe automatically without the caller
104
+ * having to thread `void this.columnDefs` reads themselves.
105
+ *
106
+ * Made `public` so the parent `TableContext` can pass it directly
107
+ * to other sub-contexts (`SortingState` reads it through the
108
+ * `getColumnDefsById` thunk, the per-row accessor in
109
+ * `createRow` / `rowsPromise` uses it for id-keyed lookups).
110
+ */
111
+ readonly columnDefsById: ReadonlyMap<string, ColumnDef<T>>;
112
+ /**
113
+ * Columns in visual display order: pinned-left -> centre ->
114
+ * pinned-right, preserving memory order within each section.
115
+ * Excludes columns whose visibility is explicitly `false`.
116
+ *
117
+ * Cached as a `$derived` array (rebuilt only when `columnDefs`,
118
+ * `columnVisibility`, or `columnPinning` change). Phase-5 Group 1
119
+ * workorder P0 introduced this caching layer to avoid the
120
+ * O(columns) filter cost on every focus-arrow keystroke; see the
121
+ * paired `_visualColumnIndexById` below for the O(1) reverse-lookup
122
+ * map.
123
+ *
124
+ * Made `public` (with the underscore prefix preserved) so the
125
+ * parent `TableContext` can delegate its legacy `_visualColumns`
126
+ * field. Future consumers should read
127
+ * `tableContext._columnLayout.visualColumns` directly.
128
+ */
129
+ readonly visualColumns: Array<ColumnDef<T>>;
130
+ /**
131
+ * Paired `visualColumns` id->index reverse-lookup map. Rebuilt in
132
+ * lockstep with `visualColumns`; addresses the O(1) requirement of
133
+ * `columnVisualIndex` (which is called on every focus-arrow press
134
+ * inside the keyboard nav loop).
135
+ */
136
+ readonly visualColumnIndexById: ReadonlyMap<string, VisualColumnIndex>;
137
+ /**
138
+ * Returns the visual index of the column with the given id, or
139
+ * `-1` (branded as `VisualColumnIndex`) if the id is not in the
140
+ * current visible-column set. O(1) under the
141
+ * `visualColumnIndexById` cache.
142
+ */
143
+ columnVisualIndex(id: string): VisualColumnIndex;
144
+ /**
145
+ * Applies an updater to the column-pinning state (left / right
146
+ * pins). No-op when column reordering is disabled at the table
147
+ * level. Mirrors the pre-extraction
148
+ * `TableContext.setColumnPinning` writer verbatim.
149
+ */
150
+ readonly setColumnPinning: (updater: (state: ColumnPinningState) => ColumnPinningState) => void;
151
+ /**
152
+ * Re-normalises the per-def `.index` field so that pinned-left
153
+ * columns occupy the leading indices, unpinned (centre) columns
154
+ * the middle, and pinned-right columns the trailing indices.
155
+ * Returns the resulting array (sorted by the new index ordering).
156
+ *
157
+ * Pure with respect to `this._columnDefs` / `this._columnPinning`:
158
+ * mutates the per-def `.index` fields in place and returns a new
159
+ * array view. The parent uses this as a helper inside
160
+ * `reorderColumn` / `moveColumnTo` after rearranging the array
161
+ * so the memory-index brand stays consistent with the pin
162
+ * sections.
163
+ */
164
+ readonly updateDefsBasedOnPinning: () => Array<ColumnDef<T>>;
165
+ /**
166
+ * Re-publishes the column-pinning map so its left / right entries
167
+ * are keyed by the current `columnDefs` ordering. Used by the
168
+ * parent's drag-drop and `moveColumnTo` flows after a reorder
169
+ * operation; preserves the pre-extraction
170
+ * `TableContext._setNewPinningState` contract verbatim.
171
+ */
172
+ readonly setNewPinningState: () => void;
173
+ }
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Phase 6.3 god-object decomposition - sub-context that owns every
3
+ * column-layout concern previously held directly on `TableContext`:
4
+ *
5
+ * - `columnDefs` (the ordered array of column definitions),
6
+ * - `columnDefsById` (`$derived` id->def lookup map),
7
+ * - `columnPinning` / `columnSizing` / `columnVisibility` (the three
8
+ * per-column maps the consumer mutates through the public setters),
9
+ * - `_visualColumns` and `_visualColumnIndexById` (the cached visual
10
+ * display order plus the paired `Map<id, VisualColumnIndex>` that
11
+ * makes `columnVisualIndex` an O(1) lookup - Phase-5 Group 1
12
+ * workorder P0),
13
+ * - `columnVisualIndex(id)` (the public lookup),
14
+ * - `setColumnPinning(updater)` (delegating writer that respects the
15
+ * `allowColumnReordering` master gate).
16
+ *
17
+ * `TableContext` retains delegating getters / setters / methods for
18
+ * every legacy surface (`columnDefs`, `columnPinning`, `columnSizing`,
19
+ * `columnVisibility`, `columnDefsById`, `columnVisualIndex`,
20
+ * `_visualColumns`, `setColumnPinning`, etc.) so existing consumers
21
+ * need no migration. Future consumers can read `tableContext._columnLayout`
22
+ * directly once the migration is complete (see
23
+ * `src/stories/Concepts/TableContext-decomposition.mdx`).
24
+ *
25
+ * The `focusStartVisualColumn` / `focusEndVisualColumn` getters straddle
26
+ * column-layout and focus; the column-layout-side calculation
27
+ * (`columnVisualIndex` lookup) lives here, but the focus-side state
28
+ * (`focusStart`, `focusEnd`) stays on `TableContext` until the Phase 6.6
29
+ * `FocusState` extraction. The parent's `focusStartVisualColumn` getter
30
+ * therefore reads `this.focusStart?.id` and calls
31
+ * `this._columnLayout.columnVisualIndex(...)`.
32
+ */
33
+ export class ColumnLayoutState {
34
+ _deps;
35
+ _columnDefs = $state([]);
36
+ _columnSizing = $state({});
37
+ _columnPinning = $state({});
38
+ _columnVisibility = $state({});
39
+ /**
40
+ * @param deps thunks the sub-context reads from the parent.
41
+ * Constructor-only - no implicit setup so the parent
42
+ * remains in control of effect ownership and lifecycle.
43
+ */
44
+ constructor(deps) {
45
+ this._deps = deps;
46
+ }
47
+ /**
48
+ * The ordered array of column definitions. Memory order (declaration
49
+ * order) is preserved across reorder operations - drag-reorder
50
+ * mutates the per-def `.index` field but does not change the array
51
+ * identity until the consumer reassigns `columnDefs` wholesale.
52
+ *
53
+ * Setter accepts any array of `ColumnDef<T>`; the parent
54
+ * `TableContext` is responsible for index normalisation when
55
+ * applying drag-drop or preset switches (see `reorderColumn`,
56
+ * `moveColumnTo`, `setSelectedPreset`).
57
+ */
58
+ get columnDefs() {
59
+ return this._columnDefs;
60
+ }
61
+ set columnDefs(v) {
62
+ this._columnDefs = v;
63
+ }
64
+ /**
65
+ * Per-column width state (pixels), keyed by column id. Persisted to
66
+ * localStorage as-is by `TableContext._updateLocalStorageSettings`.
67
+ * Setter accepts a full replacement object; per-key writes are
68
+ * handled by `autoResize` mutating in place (which is fine because
69
+ * the underlying `$state` slot is itself the proxy).
70
+ */
71
+ get columnSizing() {
72
+ return this._columnSizing;
73
+ }
74
+ set columnSizing(v) {
75
+ this._columnSizing = v;
76
+ }
77
+ /**
78
+ * Per-column pin state (left / right). Setter is exposed publicly
79
+ * for direct assignment by the parent (e.g. `setSelectedPreset` and
80
+ * the init flow); the gated `setColumnPinning` updater below honours
81
+ * the `allowColumnReordering` master gate.
82
+ */
83
+ get columnPinning() {
84
+ return this._columnPinning;
85
+ }
86
+ set columnPinning(v) {
87
+ this._columnPinning = v;
88
+ }
89
+ /**
90
+ * Tri-state per-column visibility map. `true` = visible, `false` =
91
+ * hidden, `undefined` = no preference (treated as visible). See
92
+ * `VisibilityState` for the design rationale.
93
+ */
94
+ get columnVisibility() {
95
+ return this._columnVisibility;
96
+ }
97
+ set columnVisibility(v) {
98
+ this._columnVisibility = v;
99
+ }
100
+ /**
101
+ * `$derived` id->def lookup map. Re-built whenever `columnDefs`
102
+ * changes; reads on this getter inside `$derived` / `$effect`
103
+ * contexts therefore re-subscribe automatically without the caller
104
+ * having to thread `void this.columnDefs` reads themselves.
105
+ *
106
+ * Made `public` so the parent `TableContext` can pass it directly
107
+ * to other sub-contexts (`SortingState` reads it through the
108
+ * `getColumnDefsById` thunk, the per-row accessor in
109
+ * `createRow` / `rowsPromise` uses it for id-keyed lookups).
110
+ */
111
+ columnDefsById = $derived(
112
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
113
+ new Map(this._columnDefs.map((it) => [it.id, it])));
114
+ /**
115
+ * Columns in visual display order: pinned-left -> centre ->
116
+ * pinned-right, preserving memory order within each section.
117
+ * Excludes columns whose visibility is explicitly `false`.
118
+ *
119
+ * Cached as a `$derived` array (rebuilt only when `columnDefs`,
120
+ * `columnVisibility`, or `columnPinning` change). Phase-5 Group 1
121
+ * workorder P0 introduced this caching layer to avoid the
122
+ * O(columns) filter cost on every focus-arrow keystroke; see the
123
+ * paired `_visualColumnIndexById` below for the O(1) reverse-lookup
124
+ * map.
125
+ *
126
+ * Made `public` (with the underscore prefix preserved) so the
127
+ * parent `TableContext` can delegate its legacy `_visualColumns`
128
+ * field. Future consumers should read
129
+ * `tableContext._columnLayout.visualColumns` directly.
130
+ */
131
+ visualColumns = $derived.by(() => {
132
+ const visibility = this._columnVisibility;
133
+ const pinLeft = this._columnPinning.left;
134
+ const pinRight = this._columnPinning.right;
135
+ const visible = this._columnDefs.filter((it) => visibility[it.id] !== false);
136
+ return [
137
+ ...visible.filter((it) => pinLeft?.has(it.id)),
138
+ ...visible.filter((it) => !pinLeft?.has(it.id) && !pinRight?.has(it.id)),
139
+ ...visible.filter((it) => pinRight?.has(it.id)),
140
+ ];
141
+ });
142
+ /**
143
+ * Paired `visualColumns` id->index reverse-lookup map. Rebuilt in
144
+ * lockstep with `visualColumns`; addresses the O(1) requirement of
145
+ * `columnVisualIndex` (which is called on every focus-arrow press
146
+ * inside the keyboard nav loop).
147
+ */
148
+ visualColumnIndexById = $derived.by(() => {
149
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
150
+ const map = new Map();
151
+ const cols = this.visualColumns;
152
+ for (let i = 0; i < cols.length; i++) {
153
+ map.set(cols[i].id, i);
154
+ }
155
+ return map;
156
+ });
157
+ /**
158
+ * Returns the visual index of the column with the given id, or
159
+ * `-1` (branded as `VisualColumnIndex`) if the id is not in the
160
+ * current visible-column set. O(1) under the
161
+ * `visualColumnIndexById` cache.
162
+ */
163
+ columnVisualIndex(id) {
164
+ return this.visualColumnIndexById.get(id) ?? -1;
165
+ }
166
+ /**
167
+ * Applies an updater to the column-pinning state (left / right
168
+ * pins). No-op when column reordering is disabled at the table
169
+ * level. Mirrors the pre-extraction
170
+ * `TableContext.setColumnPinning` writer verbatim.
171
+ */
172
+ setColumnPinning = (updater) => {
173
+ if (!this._deps.getAllowColumnReordering()) {
174
+ if (this._deps.getDebug()) {
175
+ console.log('setColumnPinning: ignored (allowColumnReordering=false)');
176
+ }
177
+ return;
178
+ }
179
+ this._columnPinning = updater(this._columnPinning);
180
+ };
181
+ /**
182
+ * Re-normalises the per-def `.index` field so that pinned-left
183
+ * columns occupy the leading indices, unpinned (centre) columns
184
+ * the middle, and pinned-right columns the trailing indices.
185
+ * Returns the resulting array (sorted by the new index ordering).
186
+ *
187
+ * Pure with respect to `this._columnDefs` / `this._columnPinning`:
188
+ * mutates the per-def `.index` fields in place and returns a new
189
+ * array view. The parent uses this as a helper inside
190
+ * `reorderColumn` / `moveColumnTo` after rearranging the array
191
+ * so the memory-index brand stays consistent with the pin
192
+ * sections.
193
+ */
194
+ updateDefsBasedOnPinning = () => {
195
+ const leftDefs = [];
196
+ const midDefs = [];
197
+ const rightDefs = [];
198
+ this._columnDefs.forEach((def) => {
199
+ if (this._columnPinning.left?.has(def.id)) {
200
+ leftDefs.push(def);
201
+ }
202
+ else if (this._columnPinning.right?.has(def.id)) {
203
+ rightDefs.push(def);
204
+ }
205
+ else {
206
+ midDefs.push(def);
207
+ }
208
+ });
209
+ leftDefs.sort((a, b) => a.index - b.index);
210
+ midDefs.sort((a, b) => a.index - b.index);
211
+ rightDefs.sort((a, b) => a.index - b.index);
212
+ const allDefs = leftDefs.concat(midDefs, rightDefs);
213
+ allDefs.forEach((def, index) => {
214
+ def.index = index;
215
+ });
216
+ return allDefs;
217
+ };
218
+ /**
219
+ * Re-publishes the column-pinning map so its left / right entries
220
+ * are keyed by the current `columnDefs` ordering. Used by the
221
+ * parent's drag-drop and `moveColumnTo` flows after a reorder
222
+ * operation; preserves the pre-extraction
223
+ * `TableContext._setNewPinningState` contract verbatim.
224
+ */
225
+ setNewPinningState = () => {
226
+ this._columnPinning = {
227
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
228
+ left: new Map(this._columnPinning.left &&
229
+ this._columnDefs
230
+ .filter((col) => {
231
+ return this._columnPinning.left?.has(col.id);
232
+ })
233
+ .map((col, index) => [col.id, index])),
234
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
235
+ right: new Map(this._columnPinning.right &&
236
+ this._columnDefs
237
+ .filter((col) => this._columnPinning.right?.has(col.id))
238
+ .map((col, index) => [col.id, index])),
239
+ };
240
+ };
241
+ }