@lavalogic/scoria 0.35.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 (555) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +46 -42
  3. package/dist/Components/AccordionGroupButton.svelte +106 -106
  4. package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
  5. package/dist/Components/AccordionGroupProps.d.ts +10 -2
  6. package/dist/Components/Action.svelte +137 -139
  7. package/dist/Components/ActionProps.d.ts +23 -3
  8. package/dist/Components/AlertModal.svelte +176 -125
  9. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
  10. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
  11. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
  12. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
  13. package/dist/Components/Base/BaseModal.svelte +172 -0
  14. package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
  15. package/dist/Components/Base/BaseModalProps.d.ts +73 -0
  16. package/dist/Components/Base/BaseModalProps.js +1 -0
  17. package/dist/Components/Base/ContextWrapper.svelte +72 -50
  18. package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
  19. package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
  20. package/dist/Components/Base/Pagination.svelte +198 -190
  21. package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
  22. package/dist/Components/Base/PaginationProps.d.ts +60 -3
  23. package/dist/Components/Base/Snippets.svelte +36 -29
  24. package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
  25. package/dist/Components/BigRadioSet.svelte +39 -30
  26. package/dist/Components/BigRadioSetProps.d.ts +17 -1
  27. package/dist/Components/Bubble.svelte +110 -77
  28. package/dist/Components/Bubble.svelte.d.ts +23 -2
  29. package/dist/Components/BubbleProps.d.ts +55 -4
  30. package/dist/Components/Button.svelte +209 -197
  31. package/dist/Components/ButtonProps.d.ts +66 -1
  32. package/dist/Components/Checkbox.svelte +100 -72
  33. package/dist/Components/Checkbox.svelte.d.ts +1 -12
  34. package/dist/Components/CheckboxProps.d.ts +27 -0
  35. package/dist/Components/CheckboxProps.js +1 -0
  36. package/dist/Components/CollapsibleCard.svelte +114 -83
  37. package/dist/Components/CollapsibleCardProps.d.ts +22 -1
  38. package/dist/Components/Contexts/ContextMenu.svelte +178 -157
  39. package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
  40. package/dist/Components/Contexts/ContextMenuDivider.svelte +19 -11
  41. package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
  42. package/dist/Components/Contexts/ContextMenuOption.svelte +66 -57
  43. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
  44. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
  45. package/dist/Components/Contexts/Toast.svelte +88 -64
  46. package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
  47. package/dist/Components/Contexts/ToastContainer.svelte +68 -49
  48. package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
  49. package/dist/Components/Contexts/ToastProps.d.ts +14 -1
  50. package/dist/Components/Contexts/Tooltip.svelte +47 -36
  51. package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
  52. package/dist/Components/DataMatrixIcon.svelte +113 -42
  53. package/dist/Components/DataMatrixIconProps.d.ts +73 -1
  54. package/dist/Components/DateInput.svelte +144 -109
  55. package/dist/Components/DateInput.svelte.d.ts +1 -1
  56. package/dist/Components/DateOnlyInputProps.d.ts +31 -5
  57. package/dist/Components/DatePicker.svelte +301 -313
  58. package/dist/Components/DatePickerProps.d.ts +18 -1
  59. package/dist/Components/DateTimeInputProps.d.ts +30 -5
  60. package/dist/Components/DesktopModal.svelte +90 -119
  61. package/dist/Components/DesktopModalProps.d.ts +5 -4
  62. package/dist/Components/Dial.svelte +213 -151
  63. package/dist/Components/DialProps.d.ts +74 -2
  64. package/dist/Components/DimensionInput.svelte +171 -185
  65. package/dist/Components/DimensionInput.svelte.d.ts +1 -1
  66. package/dist/Components/DimensionInputProps.d.ts +39 -4
  67. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -107
  68. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
  69. package/dist/Components/DragMenu/DraggableCard.svelte +77 -41
  70. package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
  71. package/dist/Components/FileCard.svelte +24 -20
  72. package/dist/Components/FileCardProps.d.ts +17 -1
  73. package/dist/Components/FileUpload.svelte +236 -196
  74. package/dist/Components/FileUploadProps.d.ts +34 -4
  75. package/dist/Components/GridInput.svelte +201 -191
  76. package/dist/Components/GridInput.svelte.d.ts +5 -5
  77. package/dist/Components/GridInputProps.d.ts +4 -1
  78. package/dist/Components/GridInputSet.svelte +31 -24
  79. package/dist/Components/GridInputSet.svelte.d.ts +5 -5
  80. package/dist/Components/GridInputSetProps.d.ts +4 -2
  81. package/dist/Components/HorizontalTabGroup.svelte +81 -79
  82. package/dist/Components/HorizontalTabGroupButton.svelte +51 -103
  83. package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
  84. package/dist/Components/Icon.svelte +144 -103
  85. package/dist/Components/IconProps.d.ts +54 -6
  86. package/dist/Components/Icons.d.ts +8 -0
  87. package/dist/Components/Icons.js +591 -572
  88. package/dist/Components/LoadingAnimation.svelte +39 -39
  89. package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
  90. package/dist/Components/LoadingAnimationProps.d.ts +16 -0
  91. package/dist/Components/LoadingAnimationProps.js +1 -0
  92. package/dist/Components/LoadingModal.svelte +48 -50
  93. package/dist/Components/LoadingModal.svelte.d.ts +1 -4
  94. package/dist/Components/LoadingModalProps.d.ts +17 -0
  95. package/dist/Components/LoadingModalProps.js +1 -0
  96. package/dist/Components/LoadingOverlay.svelte +28 -30
  97. package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
  98. package/dist/Components/LoadingOverlayProps.d.ts +28 -0
  99. package/dist/Components/LoadingOverlayProps.js +1 -0
  100. package/dist/Components/Modal.svelte +250 -255
  101. package/dist/Components/Modal.svelte.d.ts +1 -25
  102. package/dist/Components/ModalProps.d.ts +65 -0
  103. package/dist/Components/ModalProps.js +1 -0
  104. package/dist/Components/MultiSelect.svelte +238 -226
  105. package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
  106. package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
  107. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  108. package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
  109. package/dist/Components/Nav/Nav.svelte +115 -110
  110. package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
  111. package/dist/Components/Nav/NavProps.d.ts +50 -3
  112. package/dist/Components/Nav/NavServiceMenuList.svelte +44 -35
  113. package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
  114. package/dist/Components/Nav/NavTab.svelte +62 -91
  115. package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
  116. package/dist/Components/Nav/NavTabProps.d.ts +16 -2
  117. package/dist/Components/Nav/ServiceMenuItem.svelte +101 -92
  118. package/dist/Components/Nav/ServicesNav.svelte +96 -70
  119. package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
  120. package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
  121. package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
  122. package/dist/Components/NumberInput.svelte +155 -145
  123. package/dist/Components/NumberInputProps.d.ts +37 -0
  124. package/dist/Components/PageHeading.svelte +25 -36
  125. package/dist/Components/PageHeading.svelte.d.ts +1 -6
  126. package/dist/Components/PageHeadingProps.d.ts +23 -0
  127. package/dist/Components/PageHeadingProps.js +1 -0
  128. package/dist/Components/PasswordInput.svelte +85 -73
  129. package/dist/Components/PasswordInput.svelte.d.ts +2 -2
  130. package/dist/Components/PasswordInputProps.d.ts +21 -0
  131. package/dist/Components/PasswordInputProps.js +1 -0
  132. package/dist/Components/Portal.svelte +36 -25
  133. package/dist/Components/PortalProps.d.ts +20 -1
  134. package/dist/Components/ProgressBubble.svelte +129 -84
  135. package/dist/Components/ProgressBubbleProps.d.ts +23 -2
  136. package/dist/Components/QuerySelect.svelte +384 -440
  137. package/dist/Components/QuerySelect.svelte.d.ts +2 -29
  138. package/dist/Components/QuerySelectProps.d.ts +66 -0
  139. package/dist/Components/QuerySelectProps.js +1 -0
  140. package/dist/Components/SingleSelect.svelte +268 -290
  141. package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
  142. package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
  143. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
  144. package/dist/Components/StepButton.svelte +70 -120
  145. package/dist/Components/StepForm.svelte +147 -147
  146. package/dist/Components/StepFormProps.d.ts +16 -2
  147. package/dist/Components/Switch.svelte +84 -47
  148. package/dist/Components/Switch.svelte.d.ts +1 -1
  149. package/dist/Components/SwitchProps.d.ts +46 -0
  150. package/dist/Components/Table/Body/HeightData.d.ts +1 -6
  151. package/dist/Components/Table/Body/HeightData.js +8 -0
  152. package/dist/Components/Table/Body/QuickSearchCell.svelte +697 -641
  153. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
  154. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  155. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +68 -34
  156. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
  157. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
  158. package/dist/Components/Table/Body/Rows/ColumnList.svelte +66 -56
  159. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
  160. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
  161. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +515 -182
  162. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
  163. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
  164. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -49
  165. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
  166. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +203 -191
  167. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
  168. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
  169. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  170. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +150 -115
  171. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
  172. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
  173. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
  174. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +149 -129
  175. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +149 -126
  176. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
  177. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
  178. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +142 -108
  179. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
  180. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
  181. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  182. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
  183. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
  184. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -72
  185. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
  186. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +148 -137
  187. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
  188. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
  189. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
  190. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -144
  191. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
  192. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
  193. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
  194. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +279 -249
  195. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
  196. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
  197. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +249 -370
  198. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
  199. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
  200. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
  201. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +291 -354
  202. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
  203. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
  204. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +201 -189
  205. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
  206. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
  207. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
  208. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +263 -325
  209. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
  210. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
  211. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +230 -381
  212. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
  213. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
  214. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +187 -177
  215. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
  216. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
  217. package/dist/Components/Table/Body/Rows/TableRow.svelte +331 -263
  218. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  219. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
  220. package/dist/Components/Table/Body/TableBody.svelte +198 -81
  221. package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
  222. package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
  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 +41 -39
  227. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -28
  229. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  230. package/dist/Components/Table/Headers/TableHead.svelte +434 -294
  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 +154 -96
  235. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -99
  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 +545 -556
  240. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  241. package/dist/Components/Table/Misc/FilterPanel.svelte +409 -51
  242. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -77
  244. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  245. package/dist/Components/Table/Misc/SidePanel.svelte +35 -32
  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 +315 -306
  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 +126 -157
  254. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  255. package/dist/Components/Table/Misc/TableSidebar.svelte +158 -177
  256. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte +147 -81
  258. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -100
  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 +132 -88
  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 +23 -0
  271. package/dist/Components/Table/SubApis.svelte.js +359 -0
  272. package/dist/Components/Table/Table.svelte +694 -519
  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 +41 -1
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -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 +547 -53
  351. package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
  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 +238 -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 +39 -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 +157 -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 +269 -0
  431. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  432. package/dist/Components/TextArea.svelte +127 -108
  433. package/dist/Components/TextAreaProps.d.ts +37 -0
  434. package/dist/Components/TextInput.svelte +166 -147
  435. package/dist/Components/TextInputProps.d.ts +58 -1
  436. package/dist/Components/ThreeStateRadio.svelte +140 -143
  437. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  438. package/dist/Components/Touch/BoolCard.svelte +45 -52
  439. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  440. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  441. package/dist/Components/Touch/BoolCardProps.js +1 -0
  442. package/dist/Components/Touch/DateModal.svelte +209 -217
  443. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  444. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  445. package/dist/Components/Touch/DateModalProps.js +1 -0
  446. package/dist/Components/Touch/EditCard.svelte +59 -52
  447. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  448. package/dist/Components/Touch/InfoCard.svelte +35 -28
  449. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  450. package/dist/Components/Touch/InfoTextCard.svelte +28 -21
  451. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  452. package/dist/Components/Touch/ModalExplanation.svelte +17 -20
  453. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  454. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  455. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  456. package/dist/Components/Touch/NumberKeyboard.svelte +225 -268
  457. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  458. package/dist/Components/Touch/NumberModal.svelte +79 -69
  459. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  460. package/dist/Components/Touch/PlusMinusCard.svelte +48 -52
  461. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  462. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  463. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  464. package/dist/Components/Touch/SelectModal.svelte +123 -105
  465. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  466. package/dist/Components/Touch/SummaryCard.svelte +107 -65
  467. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  468. package/dist/Components/Touch/TextAreaModal.svelte +95 -86
  469. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  470. package/dist/Components/Touch/TextModal.svelte +106 -123
  471. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  472. package/dist/Components/Touch/TouchCard.svelte +34 -72
  473. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  474. package/dist/Components/Touch/TouchModal.svelte +265 -259
  475. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  476. package/dist/Components/Touch/UtilityButton.svelte +116 -98
  477. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  478. package/dist/Components/VerticalTabGroup.svelte +80 -102
  479. package/dist/Components/VerticalTabGroupButton.svelte +59 -98
  480. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  481. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  482. package/dist/Contexts/AlertContext.svelte.js +69 -6
  483. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  484. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  485. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  486. package/dist/Contexts/TestContext.svelte.js +29 -1
  487. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  488. package/dist/Contexts/ToastContext.svelte.js +93 -24
  489. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  490. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  491. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  492. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  493. package/dist/Delay/Delay.js +1 -1
  494. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  495. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  496. package/dist/Helpers/Datamatrix.d.ts +19 -10
  497. package/dist/Helpers/Datamatrix.js +291 -2
  498. package/dist/Helpers/Helpers.svelte.d.ts +252 -17
  499. package/dist/Helpers/Helpers.svelte.js +271 -60
  500. package/dist/Helpers/INamed.d.ts +6 -0
  501. package/dist/Helpers/Storage.d.ts +67 -0
  502. package/dist/Helpers/Storage.js +138 -0
  503. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  504. package/dist/Helpers/dropdownPortal.js +232 -0
  505. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  506. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  507. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  508. package/dist/Helpers/memoiseByRow.js +78 -0
  509. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  510. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  511. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  512. package/dist/Helpers/useTooltip.svelte.js +62 -0
  513. package/dist/Types/Examples/ExampleModal.svelte +35 -34
  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/_basics.scss +12 -12
  547. package/dist/scss/_colours.scss +134 -134
  548. package/dist/scss/_mixins.scss +3300 -3016
  549. package/dist/scss/_motion.scss +57 -0
  550. package/dist/scss/_sizing.scss +85 -69
  551. package/dist/scss/_transitions.scss +8 -8
  552. package/dist/scss/colours.js +2 -2
  553. package/dist/scss/sizing.d.ts +9 -0
  554. package/dist/scss/sizing.js +10 -1
  555. package/package.json +6 -2
@@ -1,181 +1,458 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- generics="T extends object"
6
- >
7
- import Checkbox from '../../../Checkbox.svelte';
8
- import Icon from '../../../Icon.svelte';
9
- import { TableContext } from '../../Types/Context/TableContext.svelte.js';
10
- import { Size } from '../../../../Types/Internal/Size.js';
11
- import { getContext } from 'svelte';
12
- import type { ColumnListRowProps } from './ColumnListRowProps.js';
13
- const tableContext = getContext<TableContext<T, never>>(TableContext.identifier);
14
-
15
- const { columnDef }: ColumnListRowProps<T> = $props();
16
-
17
- const isExpandColumn = $derived(columnDef?.columnType === 'Expand');
18
-
19
- let isBeingTargeted = $state(false);
20
-
21
- function disableDragVisual() {
22
- isBeingTargeted = false;
23
- }
24
-
25
- function makeKVPairs(item: string, index: number): readonly [string, number] {
26
- return [item, index];
27
- }
28
- function togglePinLeft() {
29
- if (columnDef == null) {
30
- return;
31
- }
32
-
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
- }
41
-
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
- });
53
- }
54
-
55
- function togglePinRight() {
56
- if (columnDef == null) {
57
- return;
58
- }
59
-
60
- tableContext.setColumnPinning((pinning) => {
61
- const rightPinIndex = pinning.right?.get(columnDef.id) ?? -1;
62
- const right = [...(pinning.right?.keys() ?? [])];
63
-
64
- if (rightPinIndex !== -1) {
65
- right.splice(rightPinIndex, 1);
66
- } else {
67
- right.push(columnDef.id);
68
- }
69
-
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
- }
75
-
76
- return {
77
- ...pinning,
78
- left: new Map(left.map(makeKVPairs)),
79
- right: new Map(right.map(makeKVPairs)),
80
- };
81
- });
82
- }
83
-
84
- const onVisibilityChange = (e: Event) => {
85
- if (!columnDef) {
86
- console.warn('no def found', e);
87
-
88
- return;
89
- }
90
- tableContext.updateVisibility((defs) => {
91
- defs[columnDef.id] = (e.target as HTMLInputElement).checked;
92
- return defs;
93
- });
94
- };
95
- </script>
96
-
97
- {#if columnDef}
98
- <li
99
- class="single-column"
100
- class:targeted={isBeingTargeted}
101
- id="{tableContext.tableName}-column-settings-{columnDef.id}"
102
- draggable={tableContext.allowColumnReordering}
103
- ondragstart={() => {
104
- tableContext.dragTarget = columnDef;
105
- }}
106
- ondragend={disableDragVisual}
107
- ondragover={(e) => {
108
- e.preventDefault();
109
- if (tableContext.dragTarget?.id !== columnDef.id) {
110
- isBeingTargeted = true;
111
- }
112
- }}
113
- ondragleave={disableDragVisual}
114
- ondrop={disableDragVisual}
115
- >
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} -->
125
- <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
- }}
143
- />
144
- <div
145
- id={`drag-handle-${tableContext.tableName}-${columnDef.id}`}
146
- style="display: flex; cursor: move;"
147
- >
148
- <Icon
149
- name="handle"
150
- size={Size.Large}
151
- />
152
- </div>
153
- {/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>
160
- {/if}
161
- </li>
162
- {:else}
163
- <li
164
- id="{tableContext.tableName}-column-settings-top-anchor"
165
- class="single-column anchor"
166
- class:targeted={isBeingTargeted}
167
- ondragover={(e) => {
168
- e.preventDefault();
169
-
170
- if (tableContext.dragTarget?.id !== undefined) {
171
- isBeingTargeted = true;
172
- }
173
- }}
174
- ondragleave={disableDragVisual}
175
- ondrop={disableDragVisual}
176
- ></li>
177
- {/if}
178
-
1
+ <svelte:options runes />
2
+
3
+ <script
4
+ lang="ts"
5
+ generics="T extends object, IdType extends Primitive"
6
+ >
7
+ import Action from '../../../Action.svelte';
8
+ import Checkbox from '../../../Checkbox.svelte';
9
+ import ThreeStateRadio from '../../../ThreeStateRadio.svelte';
10
+ import { ColumnType } from '../../Types/Columns/ColumnType.js';
11
+ import { TableContext } from '../../Types/Context/TableContext.svelte.js';
12
+ import type { Primitive } from '../../Types/Context/TableInitOptions.js';
13
+ import { Size } from '../../../../Types/Internal/Size.js';
14
+ import { Ternary } from '../../../../Types/Internal/Ternary.js';
15
+ import { getContext } from 'svelte';
16
+ import type { ColumnListRowProps } from './ColumnListRowProps.js';
17
+ const tableContext = getContext<TableContext<T, IdType>>(TableContext.identifier);
18
+
19
+ const { columnDef }: ColumnListRowProps<T> = $props();
20
+
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
+ }
55
+
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();
63
+
64
+ function disableDragVisual() {
65
+ isBeingTargeted = false;
66
+ }
67
+
68
+ function makeKVPairs(item: string, index: number): readonly [string, number] {
69
+ return [item, index];
70
+ }
71
+
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;
97
+
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();
110
+ }
111
+
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);
119
+ }
120
+ }
121
+
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);
164
+
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
+ }
191
+
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
+ );
210
+
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
+ });
237
+ });
238
+ }
239
+
240
+ const onVisibilityChange = (e: Event) => {
241
+ if (!columnDef) {
242
+ console.warn('no def found', e);
243
+
244
+ return;
245
+ }
246
+ const checked = (e.target as HTMLInputElement).checked;
247
+ preserveListScroll(() => {
248
+ tableContext.updateVisibility((defs) => {
249
+ defs[columnDef.id] = checked;
250
+ return defs;
251
+ });
252
+ });
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
+ }
308
+ </script>
309
+
310
+ {#if columnDef}
311
+ {@const reorderLabel = typeof columnDef.header === 'string' ? columnDef.header : columnDef.id}
312
+ <li
313
+ bind:this={rowEl}
314
+ class="single-column"
315
+ class:targeted={isBeingTargeted}
316
+ class:draggable={tableContext.allowColumnReordering}
317
+ id="{tableContext.tableName}-column-settings-{columnDef.id}"
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
+ }}
345
+ ondragstart={() => {
346
+ tableContext.dragTarget = columnDef;
347
+ }}
348
+ ondragend={disableDragVisual}
349
+ ondragover={(e) => {
350
+ e.preventDefault();
351
+ if (tableContext.dragTarget?.id !== columnDef.id) {
352
+ isBeingTargeted = true;
353
+ }
354
+ }}
355
+ ondragleave={disableDragVisual}
356
+ ondrop={disableDragVisual}
357
+ >
358
+ <div class="visibility-wrapper">
359
+ <Checkbox
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}
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
+ -->
380
+ <div
381
+ class="pin-selector"
382
+ class:disabled={isExpandColumn}
383
+ >
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
+ }}
396
+ />
397
+ </div>
398
+ {/if}
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>
437
+ {/if}
438
+ </li>
439
+ {:else}
440
+ <li
441
+ id="{tableContext.tableName}-column-settings-top-anchor"
442
+ class="single-column anchor"
443
+ class:targeted={isBeingTargeted}
444
+ ondragover={(e) => {
445
+ e.preventDefault();
446
+
447
+ if (tableContext.dragTarget?.id !== undefined) {
448
+ isBeingTargeted = true;
449
+ }
450
+ }}
451
+ ondragleave={disableDragVisual}
452
+ ondrop={disableDragVisual}
453
+ ></li>
454
+ {/if}
455
+
179
456
  <style>li {
180
457
  box-sizing: border-box;
181
458
  }
@@ -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) {
467
+ display: flex;
468
+ gap: 0.75rem;
469
+ padding: 0.5rem 0.75rem;
470
+ margin-bottom: 0.5rem;
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;
190
518
  display: flex;
191
- gap: 1rem;
192
- padding: 0.5rem 0.5rem;
519
+ flex-flow: column nowrap;
193
520
  align-items: center;
194
- }</style>
521
+ gap: 0.125rem;
522
+ }
523
+ .reorder-buttons :global(button[disabled]) {
524
+ --colour: #1f81a0;
525
+ color: #1f81a0;
526
+ background-color: transparent;
527
+ }</style>