@lavalogic/scoria 0.36.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/dist/Components/AccordionGroup.svelte +6 -2
  2. package/dist/Components/AccordionGroupButton.svelte +78 -78
  3. package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
  4. package/dist/Components/AccordionGroupProps.d.ts +10 -2
  5. package/dist/Components/Action.svelte +31 -33
  6. package/dist/Components/ActionProps.d.ts +23 -3
  7. package/dist/Components/AlertModal.svelte +90 -39
  8. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
  9. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
  10. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
  11. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
  12. package/dist/Components/Base/BaseModal.svelte +172 -0
  13. package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
  14. package/dist/Components/Base/BaseModalProps.d.ts +73 -0
  15. package/dist/Components/Base/BaseModalProps.js +1 -0
  16. package/dist/Components/Base/ContextWrapper.svelte +37 -15
  17. package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
  18. package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
  19. package/dist/Components/Base/Pagination.svelte +70 -62
  20. package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
  21. package/dist/Components/Base/PaginationProps.d.ts +60 -3
  22. package/dist/Components/Base/Snippets.svelte +7 -0
  23. package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
  24. package/dist/Components/BigRadioSet.svelte +18 -9
  25. package/dist/Components/BigRadioSetProps.d.ts +17 -1
  26. package/dist/Components/Bubble.svelte +67 -34
  27. package/dist/Components/Bubble.svelte.d.ts +23 -2
  28. package/dist/Components/BubbleProps.d.ts +55 -4
  29. package/dist/Components/Button.svelte +50 -38
  30. package/dist/Components/ButtonProps.d.ts +66 -1
  31. package/dist/Components/Checkbox.svelte +57 -29
  32. package/dist/Components/Checkbox.svelte.d.ts +1 -12
  33. package/dist/Components/CheckboxProps.d.ts +27 -0
  34. package/dist/Components/CheckboxProps.js +1 -0
  35. package/dist/Components/CollapsibleCard.svelte +53 -22
  36. package/dist/Components/CollapsibleCardProps.d.ts +22 -1
  37. package/dist/Components/Contexts/ContextMenu.svelte +53 -32
  38. package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
  39. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -7
  40. package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
  41. package/dist/Components/Contexts/ContextMenuOption.svelte +27 -18
  42. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
  43. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
  44. package/dist/Components/Contexts/Toast.svelte +28 -4
  45. package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
  46. package/dist/Components/Contexts/ToastContainer.svelte +30 -11
  47. package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
  48. package/dist/Components/Contexts/ToastProps.d.ts +14 -1
  49. package/dist/Components/Contexts/Tooltip.svelte +21 -10
  50. package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
  51. package/dist/Components/DataMatrixIcon.svelte +82 -11
  52. package/dist/Components/DataMatrixIconProps.d.ts +73 -1
  53. package/dist/Components/DateInput.svelte +64 -29
  54. package/dist/Components/DateInput.svelte.d.ts +1 -1
  55. package/dist/Components/DateOnlyInputProps.d.ts +31 -5
  56. package/dist/Components/DatePicker.svelte +96 -108
  57. package/dist/Components/DatePickerProps.d.ts +18 -1
  58. package/dist/Components/DateTimeInputProps.d.ts +30 -5
  59. package/dist/Components/DesktopModal.svelte +14 -43
  60. package/dist/Components/DesktopModalProps.d.ts +5 -4
  61. package/dist/Components/Dial.svelte +103 -41
  62. package/dist/Components/DialProps.d.ts +74 -2
  63. package/dist/Components/DimensionInput.svelte +50 -64
  64. package/dist/Components/DimensionInput.svelte.d.ts +1 -1
  65. package/dist/Components/DimensionInputProps.d.ts +39 -4
  66. package/dist/Components/DragMenu/DragMenuHolder.svelte +41 -29
  67. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
  68. package/dist/Components/DragMenu/DraggableCard.svelte +44 -8
  69. package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
  70. package/dist/Components/FileCard.svelte +6 -2
  71. package/dist/Components/FileCardProps.d.ts +17 -1
  72. package/dist/Components/FileUpload.svelte +82 -42
  73. package/dist/Components/FileUploadProps.d.ts +34 -4
  74. package/dist/Components/GridInput.svelte +27 -17
  75. package/dist/Components/GridInput.svelte.d.ts +5 -5
  76. package/dist/Components/GridInputProps.d.ts +4 -1
  77. package/dist/Components/GridInputSet.svelte +12 -5
  78. package/dist/Components/GridInputSet.svelte.d.ts +5 -5
  79. package/dist/Components/GridInputSetProps.d.ts +4 -2
  80. package/dist/Components/HorizontalTabGroup.svelte +13 -11
  81. package/dist/Components/HorizontalTabGroupButton.svelte +16 -68
  82. package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
  83. package/dist/Components/Icon.svelte +62 -21
  84. package/dist/Components/IconProps.d.ts +54 -6
  85. package/dist/Components/Icons.d.ts +8 -0
  86. package/dist/Components/Icons.js +234 -215
  87. package/dist/Components/LoadingAnimation.svelte +18 -18
  88. package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
  89. package/dist/Components/LoadingAnimationProps.d.ts +16 -0
  90. package/dist/Components/LoadingAnimationProps.js +1 -0
  91. package/dist/Components/LoadingModal.svelte +18 -20
  92. package/dist/Components/LoadingModal.svelte.d.ts +1 -4
  93. package/dist/Components/LoadingModalProps.d.ts +17 -0
  94. package/dist/Components/LoadingModalProps.js +1 -0
  95. package/dist/Components/LoadingOverlay.svelte +11 -13
  96. package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
  97. package/dist/Components/LoadingOverlayProps.d.ts +28 -0
  98. package/dist/Components/LoadingOverlayProps.js +1 -0
  99. package/dist/Components/Modal.svelte +77 -82
  100. package/dist/Components/Modal.svelte.d.ts +1 -25
  101. package/dist/Components/ModalProps.d.ts +65 -0
  102. package/dist/Components/ModalProps.js +1 -0
  103. package/dist/Components/MultiSelect.svelte +88 -76
  104. package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
  105. package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
  106. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  107. package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
  108. package/dist/Components/Nav/Nav.svelte +35 -30
  109. package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
  110. package/dist/Components/Nav/NavProps.d.ts +50 -3
  111. package/dist/Components/Nav/NavServiceMenuList.svelte +12 -3
  112. package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
  113. package/dist/Components/Nav/NavTab.svelte +19 -48
  114. package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
  115. package/dist/Components/Nav/NavTabProps.d.ts +16 -2
  116. package/dist/Components/Nav/ServiceMenuItem.svelte +29 -20
  117. package/dist/Components/Nav/ServicesNav.svelte +60 -34
  118. package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
  119. package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
  120. package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
  121. package/dist/Components/NumberInput.svelte +37 -27
  122. package/dist/Components/NumberInputProps.d.ts +37 -0
  123. package/dist/Components/PageHeading.svelte +2 -13
  124. package/dist/Components/PageHeading.svelte.d.ts +1 -6
  125. package/dist/Components/PageHeadingProps.d.ts +23 -0
  126. package/dist/Components/PageHeadingProps.js +1 -0
  127. package/dist/Components/PasswordInput.svelte +27 -15
  128. package/dist/Components/PasswordInput.svelte.d.ts +2 -2
  129. package/dist/Components/PasswordInputProps.d.ts +21 -0
  130. package/dist/Components/PasswordInputProps.js +1 -0
  131. package/dist/Components/Portal.svelte +14 -3
  132. package/dist/Components/PortalProps.d.ts +20 -1
  133. package/dist/Components/ProgressBubble.svelte +98 -53
  134. package/dist/Components/ProgressBubbleProps.d.ts +23 -2
  135. package/dist/Components/QuerySelect.svelte +103 -159
  136. package/dist/Components/QuerySelect.svelte.d.ts +2 -29
  137. package/dist/Components/QuerySelectProps.d.ts +66 -0
  138. package/dist/Components/QuerySelectProps.js +1 -0
  139. package/dist/Components/SingleSelect.svelte +86 -108
  140. package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
  141. package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
  142. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
  143. package/dist/Components/StepButton.svelte +19 -69
  144. package/dist/Components/StepForm.svelte +52 -52
  145. package/dist/Components/StepFormProps.d.ts +16 -2
  146. package/dist/Components/Switch.svelte +68 -31
  147. package/dist/Components/Switch.svelte.d.ts +1 -1
  148. package/dist/Components/SwitchProps.d.ts +46 -0
  149. package/dist/Components/Table/Body/HeightData.d.ts +1 -6
  150. package/dist/Components/Table/Body/HeightData.js +8 -0
  151. package/dist/Components/Table/Body/QuickSearchCell.svelte +106 -50
  152. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
  153. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  154. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +43 -9
  155. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
  156. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
  157. package/dist/Components/Table/Body/Rows/ColumnList.svelte +15 -5
  158. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
  159. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
  160. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +424 -91
  161. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
  162. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
  163. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +43 -13
  164. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
  165. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +50 -38
  166. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
  167. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
  168. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  169. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +61 -26
  170. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
  171. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
  172. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
  173. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +36 -16
  174. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +47 -24
  175. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
  176. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
  177. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -20
  178. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
  179. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
  180. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  181. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
  182. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
  183. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +55 -40
  184. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
  185. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +38 -27
  186. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
  187. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
  188. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
  189. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +22 -7
  190. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
  191. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
  192. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
  193. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +61 -31
  194. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
  195. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
  196. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +123 -244
  197. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
  198. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
  199. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
  200. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +126 -189
  201. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
  202. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
  203. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +31 -19
  204. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
  205. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
  206. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
  207. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +125 -187
  208. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
  209. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
  210. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +119 -270
  211. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
  212. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
  213. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +23 -13
  214. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
  215. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
  216. package/dist/Components/Table/Body/Rows/TableRow.svelte +200 -132
  217. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  218. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
  219. package/dist/Components/Table/Body/TableBody.svelte +170 -53
  220. package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
  221. package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
  222. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
  223. package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
  224. package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
  225. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +5 -3
  226. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  227. package/dist/Components/Table/Headers/SelectAllHeader.svelte +5 -3
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  229. package/dist/Components/Table/Headers/TableHead.svelte +340 -200
  230. package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
  231. package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
  232. package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
  233. package/dist/Components/Table/Misc/ColumnPanel.svelte +108 -50
  234. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  235. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +20 -7
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
  237. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
  238. package/dist/Components/Table/Misc/FilterInput.svelte +30 -41
  239. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  240. package/dist/Components/Table/Misc/FilterPanel.svelte +387 -29
  241. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  242. package/dist/Components/Table/Misc/FilterPanelModal.svelte +4 -51
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  244. package/dist/Components/Table/Misc/SidePanel.svelte +12 -9
  245. package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
  246. package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
  247. package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
  248. package/dist/Components/Table/Misc/TableFooter.svelte +44 -35
  249. package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
  250. package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
  251. package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
  252. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +17 -48
  253. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  254. package/dist/Components/Table/Misc/TableSidebar.svelte +28 -47
  255. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  256. package/dist/Components/Table/Misc/ToolboxPanel.svelte +121 -55
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  258. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +31 -24
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
  260. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
  261. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
  262. package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
  263. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
  264. package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
  265. package/dist/Components/Table/NestedTable.svelte +85 -41
  266. package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
  267. package/dist/Components/Table/NestedTableProps.d.ts +25 -0
  268. package/dist/Components/Table/NestedTableProps.js +1 -0
  269. package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
  270. package/dist/Components/Table/SubApis.svelte.js +359 -0
  271. package/dist/Components/Table/Table.svelte +347 -172
  272. package/dist/Components/Table/Table.svelte.d.ts +24 -1
  273. package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
  274. package/dist/Components/Table/TableHelpers.svelte.js +88 -0
  275. package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
  276. package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
  277. package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
  278. package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
  279. package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
  280. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
  281. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
  282. package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
  283. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
  284. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
  285. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
  286. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
  287. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
  288. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
  290. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
  291. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
  292. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
  293. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
  294. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
  295. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
  296. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
  297. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
  298. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
  299. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
  300. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
  301. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
  302. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
  303. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
  304. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
  305. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
  307. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
  308. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
  309. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
  310. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
  311. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
  312. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
  313. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
  314. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
  315. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
  316. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
  317. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
  318. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
  319. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
  320. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
  321. package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
  322. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
  323. package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
  324. package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
  325. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
  326. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
  327. package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
  328. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
  329. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
  330. package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
  331. package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
  332. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
  333. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
  334. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
  335. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
  336. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
  337. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
  338. package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
  339. package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
  340. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
  341. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
  342. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
  343. package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
  344. package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
  345. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
  346. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
  347. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
  348. package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
  349. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
  350. package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
  351. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
  352. package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
  353. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
  354. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
  355. package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
  356. package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
  357. package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
  358. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
  359. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
  360. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
  361. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
  362. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
  363. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
  364. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
  365. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
  366. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
  367. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
  368. package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
  369. package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
  370. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
  371. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
  372. package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
  373. package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
  374. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
  375. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
  376. package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
  377. package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
  378. package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
  379. package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
  380. package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
  381. package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
  382. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
  383. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
  384. package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
  385. package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
  386. package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
  387. package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
  388. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
  389. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
  390. package/dist/Components/Table/Types/Header.d.ts +8 -0
  391. package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
  392. package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
  393. package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
  394. package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
  395. package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
  396. package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
  397. package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
  398. package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
  399. package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
  400. package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
  401. package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
  402. package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
  403. package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
  404. package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
  405. package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
  406. package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
  407. package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
  408. package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
  409. package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
  410. package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
  411. package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
  412. package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
  413. package/dist/Components/Table/Types/Public/RowSource.js +1 -0
  414. package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
  415. package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
  416. package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
  417. package/dist/Components/Table/Types/Public/Table.js +1 -0
  418. package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
  419. package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
  420. package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
  421. package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
  422. package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
  423. package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
  424. package/dist/Components/Table/Types/Public/index.d.ts +20 -0
  425. package/dist/Components/Table/Types/Public/index.js +8 -0
  426. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
  427. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
  428. package/dist/Components/Table/createTable.svelte.d.ts +53 -0
  429. package/dist/Components/Table/createTable.svelte.js +269 -0
  430. package/dist/Components/TextArea.svelte +37 -18
  431. package/dist/Components/TextAreaProps.d.ts +37 -0
  432. package/dist/Components/TextInput.svelte +41 -22
  433. package/dist/Components/TextInputProps.d.ts +58 -1
  434. package/dist/Components/ThreeStateRadio.svelte +61 -64
  435. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  436. package/dist/Components/Touch/BoolCard.svelte +8 -15
  437. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  438. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  439. package/dist/Components/Touch/BoolCardProps.js +1 -0
  440. package/dist/Components/Touch/DateModal.svelte +17 -25
  441. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  442. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  443. package/dist/Components/Touch/DateModalProps.js +1 -0
  444. package/dist/Components/Touch/EditCard.svelte +10 -3
  445. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  446. package/dist/Components/Touch/InfoCard.svelte +14 -7
  447. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  448. package/dist/Components/Touch/InfoTextCard.svelte +9 -2
  449. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  450. package/dist/Components/Touch/ModalExplanation.svelte +9 -12
  451. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  452. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  453. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  454. package/dist/Components/Touch/NumberKeyboard.svelte +62 -105
  455. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  456. package/dist/Components/Touch/NumberModal.svelte +16 -6
  457. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  458. package/dist/Components/Touch/PlusMinusCard.svelte +12 -16
  459. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  460. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  461. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  462. package/dist/Components/Touch/SelectModal.svelte +33 -15
  463. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  464. package/dist/Components/Touch/SummaryCard.svelte +56 -14
  465. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  466. package/dist/Components/Touch/TextAreaModal.svelte +18 -9
  467. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  468. package/dist/Components/Touch/TextModal.svelte +15 -32
  469. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  470. package/dist/Components/Touch/TouchCard.svelte +9 -47
  471. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  472. package/dist/Components/Touch/TouchModal.svelte +105 -99
  473. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  474. package/dist/Components/Touch/UtilityButton.svelte +36 -18
  475. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  476. package/dist/Components/VerticalTabGroup.svelte +18 -40
  477. package/dist/Components/VerticalTabGroupButton.svelte +11 -50
  478. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  479. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  480. package/dist/Contexts/AlertContext.svelte.js +69 -6
  481. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  482. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  483. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  484. package/dist/Contexts/TestContext.svelte.js +29 -1
  485. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  486. package/dist/Contexts/ToastContext.svelte.js +93 -24
  487. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  488. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  489. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  490. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  491. package/dist/Delay/Delay.js +1 -1
  492. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  493. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  494. package/dist/Helpers/Datamatrix.d.ts +10 -1
  495. package/dist/Helpers/Datamatrix.js +290 -1
  496. package/dist/Helpers/Helpers.svelte.d.ts +252 -18
  497. package/dist/Helpers/Helpers.svelte.js +271 -75
  498. package/dist/Helpers/INamed.d.ts +6 -0
  499. package/dist/Helpers/Storage.d.ts +67 -0
  500. package/dist/Helpers/Storage.js +138 -0
  501. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  502. package/dist/Helpers/dropdownPortal.js +232 -0
  503. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  504. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  505. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  506. package/dist/Helpers/memoiseByRow.js +78 -0
  507. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  508. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  509. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  510. package/dist/Helpers/useTooltip.svelte.js +62 -0
  511. package/dist/Types/Examples/ExampleModal.svelte +2 -1
  512. package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
  513. package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
  514. package/dist/Types/Internal/AsyncFlag.js +1 -0
  515. package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
  516. package/dist/Types/Internal/ButtonProp.d.ts +24 -2
  517. package/dist/Types/Internal/CallbackButton.d.ts +12 -0
  518. package/dist/Types/Internal/DateChange.d.ts +8 -0
  519. package/dist/Types/Internal/DatePickerType.d.ts +5 -0
  520. package/dist/Types/Internal/DatePickerType.js +6 -1
  521. package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
  522. package/dist/Types/Internal/InputVariant.d.ts +5 -0
  523. package/dist/Types/Internal/InputVariant.js +6 -1
  524. package/dist/Types/Internal/Misc.d.ts +91 -0
  525. package/dist/Types/Internal/RefWrapper.d.ts +6 -0
  526. package/dist/Types/Internal/SelectOption.d.ts +8 -0
  527. package/dist/Types/Internal/Shape.d.ts +1 -0
  528. package/dist/Types/Internal/Shape.js +2 -1
  529. package/dist/Types/Internal/Side.d.ts +1 -0
  530. package/dist/Types/Internal/Side.js +2 -1
  531. package/dist/Types/Internal/Size.d.ts +5 -0
  532. package/dist/Types/Internal/Size.js +6 -1
  533. package/dist/Types/Internal/TabOption.d.ts +15 -5
  534. package/dist/Types/Internal/Ternary.d.ts +6 -0
  535. package/dist/Types/Internal/Ternary.js +7 -1
  536. package/dist/Types/Internal/ToastMessage.d.ts +28 -0
  537. package/dist/Types/Internal/Validity.d.ts +6 -0
  538. package/dist/Types/Internal/Validity.js +7 -1
  539. package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
  540. package/dist/Types/Internal/Variant.d.ts +5 -0
  541. package/dist/Types/Internal/Variant.js +6 -1
  542. package/dist/index.d.ts +27 -82
  543. package/dist/index.js +24 -62
  544. package/dist/scss/_mixins.scss +451 -167
  545. package/dist/scss/_motion.scss +57 -0
  546. package/dist/scss/_sizing.scss +16 -0
  547. package/dist/scss/colours.js +2 -2
  548. package/dist/scss/sizing.d.ts +9 -0
  549. package/dist/scss/sizing.js +10 -1
  550. package/package.json +35 -31
@@ -8,6 +8,7 @@
8
8
 
9
9
  import { cubicOut } from 'svelte/easing';
10
10
  import { slide } from 'svelte/transition';
11
+ import { usePrefersReducedMotion } from '../Helpers/prefersReducedMotion.svelte.js';
11
12
  import type { AccordionGroupProps } from './AccordionGroupProps.js';
12
13
 
13
14
  let {
@@ -17,6 +18,9 @@
17
18
  noRadius = false,
18
19
  grow = false,
19
20
  }: AccordionGroupProps<CommonDenominator> = $props();
21
+
22
+ const reducedMotion = usePrefersReducedMotion();
23
+ const slideDuration = $derived(reducedMotion.matches ? 0 : 200);
20
24
  </script>
21
25
 
22
26
  <div
@@ -24,7 +28,7 @@
24
28
  class:no-radius={noRadius}
25
29
  class:grow
26
30
  >
27
- {#each tabs as option (option)}
31
+ {#each tabs as option (option.label)}
28
32
  {@const isSelected = selected === option}
29
33
  <AccordionGroupButton
30
34
  {option}
@@ -32,7 +36,7 @@
32
36
  selected={isSelected}
33
37
  />
34
38
  {#if isSelected}
35
- <div transition:slide={{ duration: 200, easing: cubicOut }}>
39
+ <div transition:slide={{ duration: slideDuration, easing: cubicOut }}>
36
40
  {@render selected.content(selected.args)}
37
41
  </div>
38
42
  {/if}
@@ -4,119 +4,119 @@
4
4
  lang="ts"
5
5
  generics="Args"
6
6
  >
7
- import { devCatch } from '../Helpers/Helpers.svelte.js';
8
- import { Colour, ColourSet } from '../scss/colours.js';
7
+ import { useAsyncFlag } from '../Helpers/AsyncFlag.svelte.js';
8
+ import { Colour } from '../scss/colours.js';
9
9
  import { Size } from '../Types/Internal/Size.js';
10
10
  import type { AccordionGroupButtonProps } from './AccordionGroupButtonProps.js';
11
- import Action from './Action.svelte';
12
11
  import Icon from './Icon.svelte';
13
12
 
14
- let {
13
+ const {
15
14
  option,
16
15
  selected: isSelected,
17
16
  noRadius = false,
18
17
  }: AccordionGroupButtonProps<Args> = $props();
19
18
 
20
- let disabled = $state(true);
21
- let isVisible = $state(true);
22
- let isValid = $state(true);
23
-
24
- $effect(() => {
25
- if (typeof option.isValid === 'boolean') {
26
- isValid = option.isValid;
27
- } else {
28
- option.isValid
29
- ?.then((v) => {
30
- isValid = v;
31
- })
32
- .catch(devCatch);
33
- }
34
- });
35
- $effect(() => {
36
- if (typeof option.disabled === 'boolean') {
37
- disabled = option.disabled;
38
- } else if (option.disabled == undefined) {
39
- disabled = false;
40
- } else {
41
- option.disabled
42
- .then((v) => {
43
- disabled = v;
44
- })
45
- .catch(devCatch);
46
- }
47
- });
48
-
49
- $effect(() => {
50
- if (typeof option.visible === 'boolean') {
51
- isVisible = option.visible;
52
- } else if (option.visible == undefined) {
53
- isVisible = true;
54
- } else {
55
- option.visible
56
- .then((v) => {
57
- isVisible = v;
58
- })
59
- .catch(devCatch);
60
- }
61
- });
19
+ const isValid = useAsyncFlag(() => option.isValid, true);
20
+ const disabled = useAsyncFlag(() => option.disabled, false);
21
+ const isVisible = useAsyncFlag(() => option.visible, true);
62
22
  </script>
63
23
 
24
+ <!--
25
+ Single-button row: the whole header is one interactive element, with the
26
+ expand chevron rendered as decorative content of that same button. This
27
+ resolves the previous a11y issue (a nested toggle inside the row read as
28
+ two interactive elements). The `extras` snippet is intentionally placed
29
+ OUTSIDE the button so that consumers passing interactive content into
30
+ `extras` don't create nested-button markup.
31
+ -->
64
32
  <div
33
+ class="tab-wrapper"
65
34
  class:isSelected
66
- class="tab"
67
- class:invalid={!isValid}
68
- class:hidden={!isVisible}
35
+ class:invalid={!isValid.value}
36
+ class:hidden={!isVisible.value}
69
37
  class:no-radius={noRadius}
70
38
  >
71
- {#if typeof option.label == 'string'}
72
- {option.label}
73
- {:else}
74
- {@render option.label()}
75
- {/if}
76
- <div class="spacer"></div>
39
+ <button
40
+ type="button"
41
+ class="tab"
42
+ disabled={disabled.value}
43
+ aria-expanded={isSelected}
44
+ aria-label={isSelected ? 'Collapse section' : 'Expand section'}
45
+ onclick={() => {
46
+ option.onclick();
47
+ }}
48
+ >
49
+ {#if typeof option.label == 'string'}
50
+ <span class="label">{option.label}</span>
51
+ {:else}
52
+ {@render option.label()}
53
+ {/if}
54
+ <div class="spacer"></div>
77
55
 
78
- {#if option.extras}
79
- {@render option.extras()}
80
- {/if}
81
- {#if !isValid}
56
+ {#if !isValid.value}
57
+ <Icon
58
+ name="error"
59
+ colour={Colour['$error-border']}
60
+ size={Size.Small}
61
+ />
62
+ {/if}
82
63
  <Icon
83
- name="error"
84
- colour={Colour['$error-border']}
85
- size={Size.Small}
64
+ name={isSelected ? 'circle-minus' : 'circle-plus'}
65
+ colour={Colour['$primary-blue-13']}
66
+ size={Size.Medium}
86
67
  />
68
+ </button>
69
+ {#if option.extras}
70
+ <div class="extras">
71
+ {@render option.extras()}
72
+ </div>
87
73
  {/if}
88
- <Action
89
- icon={{ name: isSelected ? 'circle-minus' : 'circle-plus' }}
90
- backgroundColour="transparent"
91
- colourSet={ColourSet.Info}
92
- {disabled}
93
- onclick={() => {
94
- option.onclick();
95
- }}
96
- />
97
74
  </div>
98
75
 
99
- <style>.tab {
76
+ <style>.tab-wrapper {
77
+ position: relative;
78
+ background-color: #f4f7f9;
79
+ border-bottom: solid 1px #cbd4da;
80
+ }
81
+ .tab-wrapper.hidden {
82
+ display: none !important;
83
+ }
84
+
85
+ .tab {
100
86
  color: #3a4952;
101
87
  font-size: 1rem;
102
88
  font-weight: 500;
103
- padding: 1rem;
89
+ padding: 1.0005rem;
104
90
  border: none;
91
+ background: transparent;
105
92
  text-align: start;
93
+ cursor: pointer;
106
94
  display: flex;
107
95
  flex-flow: row nowrap;
108
96
  flex-shrink: 1;
109
97
  align-items: center;
110
98
  width: 100%;
111
99
  gap: 1.5rem;
112
- position: relative;
113
100
  transition: border-color ease-out 0.15s 0s, background-color ease-out 0.15s 0s, color ease-out 0.15s 0s, fill ease-out 0.15s 0s;
114
- background-color: #f4f7f9;
115
- border-bottom: solid 1px #cbd4da;
116
101
  }
117
- .tab.hidden {
118
- display: none !important;
102
+ .tab[disabled] {
103
+ cursor: default;
104
+ opacity: 0.6;
119
105
  }
120
106
  .tab .spacer {
121
107
  margin: auto;
108
+ }
109
+ .tab .label {
110
+ text-align: start;
111
+ }
112
+
113
+ .extras {
114
+ position: absolute;
115
+ right: 4.5005rem;
116
+ top: 50%;
117
+ transform: translateY(-50%);
118
+ display: flex;
119
+ align-items: center;
120
+ gap: 1.5rem;
121
+ pointer-events: auto;
122
122
  }</style>
@@ -1,21 +1,40 @@
1
+ import type { AsyncFlag } from '../Types/Internal/AsyncFlag.js';
1
2
  import type { Snippet } from 'svelte';
2
- import type { IconProps } from './IconProps.js';
3
+ import type { PartialIconProps } from './PartialIconProps.js';
4
+ /**
5
+ * Props for AccordionGroupButton, the header row of an accordion section.
6
+ */
3
7
  export interface AccordionGroupButtonProps<Args> {
8
+ /** The section descriptor whose header is being rendered. */
4
9
  option: AccordionGroupOption<Args>;
10
+ /** Whether this section is currently expanded. */
5
11
  selected: boolean;
12
+ /** Strip the corner radius for sections joined to other surfaces. */
6
13
  noRadius?: boolean;
7
14
  }
15
+ /**
16
+ * Describes one expandable section inside AccordionGroup. The header
17
+ * `label` may be either a plain string or a Snippet for richer markup.
18
+ */
8
19
  export interface AccordionGroupOption<Args> {
20
+ /** Header label. String values are rendered directly; snippets render via `@render`. */
9
21
  label: string | Snippet;
22
+ /** Body content. Receives `args` so the parent can pass typed context. */
10
23
  content: Snippet<[Args]>;
24
+ /** Optional extra snippet rendered next to the header before the expand action. */
11
25
  extras?: Snippet;
26
+ /** Invoked when the user expands or collapses this section. */
12
27
  onclick: () => void;
28
+ /** Args forwarded to `content`. */
13
29
  args: Args;
14
- iconLeft?: IconProps;
15
- iconRight?: IconProps;
16
- isValid?: boolean | Promise<boolean>;
17
- /** default false */
18
- disabled?: boolean | Promise<boolean>;
19
- /** default true */
20
- visible?: boolean | Promise<boolean>;
30
+ /** Icon rendered to the left of the header. */
31
+ iconLeft?: PartialIconProps;
32
+ /** Icon rendered to the right of the header. */
33
+ iconRight?: PartialIconProps;
34
+ /** AsyncFlag of a boolean. Section is rendered invalid when this resolves to false. */
35
+ isValid?: AsyncFlag<boolean>;
36
+ /** AsyncFlag of a boolean. Disables the expand action when true. Defaults to false. */
37
+ disabled?: AsyncFlag<boolean>;
38
+ /** AsyncFlag of a boolean. Hides the section when this resolves to false. Defaults to true. */
39
+ visible?: AsyncFlag<boolean>;
21
40
  }
@@ -1,8 +1,16 @@
1
1
  import type { TabOption } from '../Types/Internal/TabOption.js';
2
+ /**
3
+ * Props for AccordionGroup, a stacked list of expandable sections.
4
+ */
2
5
  export interface AccordionGroupProps<CommonDenominator> {
6
+ /** Optional name used for future history persistence (not currently wired). */
3
7
  name?: string;
8
+ /** Strip the outer border radius. */
4
9
  noRadius?: boolean;
10
+ /** Stretch to fill the parent's flex axis. */
5
11
  grow?: boolean;
6
- tabs: Array<TabOption<CommonDenominator>>;
7
- selected: TabOption<CommonDenominator> | undefined;
12
+ /** The sections to render. Keyed by `option.label`. */
13
+ tabs: ReadonlyArray<TabOption<CommonDenominator>>;
14
+ /** Currently expanded section, matched by reference. */
15
+ selected?: TabOption<CommonDenominator>;
8
16
  }
@@ -1,14 +1,15 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script module lang="ts">
4
- import { TooltipContext } from '../Contexts/TooltipContext.svelte.js';
5
- import { Delay } from '../Delay/Delay.js';
3
+ <script
4
+ module
5
+ lang="ts"
6
+ >
6
7
  import { passthrough } from '../Helpers/Helpers.svelte.js';
8
+ import { useTooltip } from '../Helpers/useTooltip.svelte.js';
7
9
  import { Shape } from '../Types/Internal/Shape.js';
8
10
  import { Side } from '../Types/Internal/Side.js';
9
11
  import { Size } from '../Types/Internal/Size.js';
10
12
  import { ColourSet } from '../scss/colours.js';
11
- import { getContext } from 'svelte';
12
13
  import type { ActionProps } from './ActionProps.js';
13
14
  import Icon from './Icon.svelte';
14
15
 
@@ -24,7 +25,7 @@
24
25
  [Size.DoubleXLarge]: 0.8125,
25
26
  [Size.TripleXLarge]: 0.875,
26
27
  [Size.FillWidth]: -1,
27
- [Size.FillHeight]: -1
28
+ [Size.FillHeight]: -1,
28
29
  },
29
30
  [Shape.Circle]: {
30
31
  [Size.Tiny]: 0.1875,
@@ -37,8 +38,8 @@
37
38
  [Size.DoubleXLarge]: 2.25,
38
39
  [Size.TripleXLarge]: 2.4375,
39
40
  [Size.FillWidth]: -1,
40
- [Size.FillHeight]: -1
41
- }
41
+ [Size.FillHeight]: -1,
42
+ },
42
43
  };
43
44
  </script>
44
45
 
@@ -63,7 +64,9 @@
63
64
  onclick,
64
65
  onkeydown: onkeydownProp,
65
66
  style = '',
66
- side
67
+ side,
68
+ 'aria-expanded': ariaExpanded,
69
+ 'aria-controls': ariaControls,
67
70
  }: ActionProps = $props();
68
71
 
69
72
  const iconSize: Size = $derived(icon.size ?? size);
@@ -81,29 +84,21 @@
81
84
  }
82
85
  }
83
86
 
84
- const tooltipContext = getContext<TooltipContext>(TooltipContext.identifier);
85
- // const toastContext = getContext<ToastContext>(ToastContext.identifier);
87
+ // Shared tooltip lifecycle: hover handlers plus unmount-time teardown.
88
+ // Action lives inside short-lived hosts (table rows, modal panels,
89
+ // accordion content) so the cleanup is load-bearing - without it,
90
+ // churn leaves the global tooltip painting against a node that no
91
+ // longer exists.
92
+ const tt = useTooltip({
93
+ text: () => label,
94
+ arrow: () => side ?? Side.Left,
95
+ });
86
96
  </script>
87
97
 
88
98
  <button
89
99
  {id}
90
- onmouseenter={(e) => {
91
- if (label) {
92
- // TODO test currentTarget here
93
- const rect = (e.target as HTMLButtonElement).getBoundingClientRect();
94
- tooltipContext.showTooltip({
95
- text: label,
96
- arrow: side ?? Side.Left,
97
- delay: Delay.Default,
98
- rect
99
- });
100
- }
101
- }}
102
- onmouseleave={() => {
103
- if (label) {
104
- tooltipContext.hideTooltip(label);
105
- }
106
- }}
100
+ onmouseenter={tt.onmouseenter}
101
+ onmouseleave={tt.onmouseleave}
107
102
  tabindex={noTabIndex ? -1 : undefined}
108
103
  data-type={dataType}
109
104
  style="{pad ? `--pad: ${pad};` : ''} {backgroundColour
@@ -126,13 +121,16 @@
126
121
  {onblur}
127
122
  {onkeydown}
128
123
  onclick={(e) => {
129
- // toastContext.toast("clicked action")
130
- if (label) {
131
- tooltipContext.hideTooltip(label);
132
- }
124
+ tt.onclick();
133
125
  onclick?.(e);
134
126
  }}
135
- aria-label={label}><Icon {...icon} size={iconSize} /></button
127
+ aria-label={label}
128
+ aria-expanded={ariaExpanded}
129
+ aria-controls={ariaControls}
130
+ ><Icon
131
+ {...icon}
132
+ size={iconSize}
133
+ /></button
136
134
  >
137
135
 
138
136
  <style>button {
@@ -211,7 +209,7 @@ button.primary {
211
209
  --colour: #ffffff;
212
210
  }
213
211
  button.info {
214
- --colour: #c0c8ce;
212
+ --colour: #1f81a0;
215
213
  }
216
214
  button.error {
217
215
  --colour: #aa1414;
@@ -1,4 +1,4 @@
1
- import type { ColourSet } from '../scss/colours.js';
1
+ import type { Colour, ColourSet } from '../scss/colours.js';
2
2
  import type { Shape } from '../Types/Internal/Shape.js';
3
3
  import type { Side } from '../Types/Internal/Side.js';
4
4
  import type { Size } from '../Types/Internal/Size.js';
@@ -14,12 +14,32 @@ export interface ActionProps {
14
14
  type?: 'button' | 'submit';
15
15
  disabled?: boolean;
16
16
  noTabIndex?: boolean;
17
- backgroundColour?: string;
18
- hoverBackgroundColour?: string;
17
+ /**
18
+ * Background colour drawn from the `Colour` palette. Pass values
19
+ * like `Colour['$transparent-0']` or `Colour['$brand-dark']`.
20
+ *
21
+ * BREAKING (vNext): was `string`; now must be a `Colour` value.
22
+ * Migrate ad-hoc CSS colour strings (e.g. `'transparent'`) to the
23
+ * matching palette entry.
24
+ */
25
+ backgroundColour?: Colour | undefined;
26
+ /** Hover-state background colour; see {@link backgroundColour}. */
27
+ hoverBackgroundColour?: Colour | undefined;
19
28
  label?: string;
20
29
  ['data-type']?: string;
21
30
  style?: string;
22
31
  side?: Side;
32
+ /**
33
+ * Forwarded as `aria-expanded` on the rendered `<button>`. Use this
34
+ * when the Action toggles a disclosure (e.g. collapse / expand) so
35
+ * screen readers announce the current state.
36
+ */
37
+ ['aria-expanded']?: boolean;
38
+ /**
39
+ * Forwarded as `aria-controls` on the rendered `<button>`. Set to
40
+ * the id of the region this Action shows or hides.
41
+ */
42
+ ['aria-controls']?: string;
23
43
  onfocus?: (e: FocusEvent) => void;
24
44
  onblur?: (e: FocusEvent) => void;
25
45
  onclick?: (e: MouseEvent) => void;
@@ -1,61 +1,106 @@
1
1
  <svelte:options runes />
2
2
 
3
+ <script
4
+ lang="ts"
5
+ module
6
+ >
7
+ import { DATAMatrix } from '../Helpers/Datamatrix.js';
8
+
9
+ // Frozen const map of scanner shortcut codes recognised by AlertModal.
10
+ // Using `Object.values` to drive comparisons keeps the strings off the
11
+ // hot path and gives us a single place to register new codes.
12
+ const AlertShortcuts = Object.freeze({
13
+ yes: '[YES]',
14
+ no: '[NO]',
15
+ other: '[OTHER]',
16
+ } as const);
17
+ type AlertShortcut = (typeof AlertShortcuts)[keyof typeof AlertShortcuts];
18
+
19
+ // Barcode icons are derived from literal constants. Build them once at
20
+ // module load so they are not re-encoded on every render.
21
+ const yesIcon = DATAMatrix(AlertShortcuts.yes);
22
+ const noIcon = DATAMatrix(AlertShortcuts.no);
23
+ const otherIcon = DATAMatrix(AlertShortcuts.other);
24
+ </script>
25
+
3
26
  <script lang="ts">
4
27
  import { AlertContext } from '../Contexts/AlertContext.svelte.js';
28
+ import { ToastContext } from '../Contexts/ToastContext.svelte.js';
5
29
  import { UntypedInputContext } from '../Contexts/UntypedInputContext.svelte.js';
6
- import { DATAMatrix } from '../Helpers/Datamatrix.js';
7
30
  import { passthrough } from '../Helpers/Helpers.svelte.js';
31
+ import { dev } from '$app/environment';
8
32
  import { getContext, onMount } from 'svelte';
9
33
  import DataMatrixIcon from './DataMatrixIcon.svelte';
10
34
  import ModalExplanation from './Touch/ModalExplanation.svelte';
11
35
 
12
- let dialog: HTMLDialogElement | undefined;
36
+ let dialog: HTMLDialogElement | undefined = $state();
13
37
 
14
38
  const alertContext = getContext<AlertContext>(AlertContext.identifier);
39
+ const untypedInputContext = getContext<UntypedInputContext>(UntypedInputContext.identifier);
40
+ const toastContext = getContext<ToastContext>(ToastContext.identifier);
15
41
 
16
42
  $effect(() => {
17
- if (dialog) {
18
- if (alertContext.showModal) {
19
- dialog.showModal();
20
- } else {
21
- dialog.close();
22
- }
43
+ if (!dialog) {
44
+ return;
45
+ }
46
+ if (alertContext.showModal && !dialog.open) {
47
+ dialog.showModal();
48
+ } else if (!alertContext.showModal && dialog.open) {
49
+ dialog.close();
23
50
  }
24
51
  });
25
52
 
26
- const yesIcon = DATAMatrix('[YES]');
53
+ onMount(() => {
54
+ return untypedInputContext.registerListener((value) => {
55
+ // Only react when this AlertModal is the active dialog. This keeps
56
+ // stray scanner reads from being interpreted as a confirmation when
57
+ // the alert is not on-screen.
58
+ if (!alertContext.showModal) {
59
+ return false;
60
+ }
27
61
 
28
- const { registerListener } = getContext<UntypedInputContext>(UntypedInputContext.identifier);
29
- onMount(() =>
30
- registerListener((value) => {
31
- switch (value) {
32
- case '[YES]': {
62
+ const matched = (Object.values(AlertShortcuts) as ReadonlyArray<AlertShortcut>).find(
63
+ (code) => code === value
64
+ );
65
+ switch (matched) {
66
+ case AlertShortcuts.yes: {
33
67
  alertContext.onYes();
34
- break;
68
+ return true;
35
69
  }
36
- case '[NO]': {
70
+ case AlertShortcuts.no: {
37
71
  alertContext.onNo();
38
- break;
72
+ return true;
39
73
  }
40
- case '[OTHER]': {
74
+ case AlertShortcuts.other: {
41
75
  alertContext.onOther();
42
- break;
76
+ return true;
43
77
  }
44
78
  default: {
45
- console.warn(`Uncaught command \`${value}\``);
79
+ if (dev) {
80
+ console.warn(`Uncaught command \`${value}\``);
81
+ }
82
+ toastContext.toast(`Unrecognised input: ${value}`);
83
+ return false;
46
84
  }
47
85
  }
48
-
49
- return true;
50
- })
51
- );
86
+ });
87
+ });
52
88
  </script>
53
89
 
54
- <!-- onclose={() => (alertContext.showModal = false)} -->
55
90
  <dialog
56
91
  bind:this={dialog}
92
+ aria-modal="true"
93
+ aria-labelledby="alert-modal-heading"
94
+ aria-describedby="alert-modal-body"
57
95
  onclose={() => {
58
- alertContext.onNo();
96
+ // Only auto-fire `onNo` if a "No" action was actually configured.
97
+ // Closing an alert (with no `noLabel`) should resolve cleanly without
98
+ // pretending the user rejected it.
99
+ if (alertContext.noLabel != null) {
100
+ alertContext.onNo();
101
+ } else {
102
+ alertContext.onYes();
103
+ }
59
104
  }}
60
105
  onclick={(e) => {
61
106
  if (e.target === dialog) {
@@ -66,21 +111,29 @@
66
111
  }}
67
112
  >
68
113
  <div class="modal-root">
69
- <h3 class="modal-heading">{alertContext.header}</h3>
70
-
71
- <!-- <div class="modal-main pre-line">{$body}</div> -->
72
- <div class="modal-main pre-line"><ModalExplanation>{alertContext.body}</ModalExplanation></div>
114
+ <h3
115
+ id="alert-modal-heading"
116
+ class="modal-heading"
117
+ >
118
+ {alertContext.header}
119
+ </h3>
120
+
121
+ <div
122
+ id="alert-modal-body"
123
+ class="modal-main pre-line"
124
+ >
125
+ <ModalExplanation>{alertContext.body}</ModalExplanation>
126
+ </div>
73
127
 
74
128
  {#if alertContext.footer}
75
- <!-- TODO either remove this part and make buttons the "footer", or allow consumer to pass an element -->
76
129
  <span>{alertContext.footer}</span>
77
130
  {/if}
78
131
 
79
132
  <div class="modal-footer actions">
80
133
  <div class="button-barcode-set">
81
134
  <DataMatrixIcon
82
- title="Yes"
83
- icon={yesIcon}
135
+ title={alertContext.yesLabel}
136
+ icon={{ kind: 'svg', svg: yesIcon }}
84
137
  />
85
138
  <button
86
139
  type="submit"
@@ -90,11 +143,10 @@
90
143
  </div>
91
144
 
92
145
  {#if alertContext.otherLabel}
93
- {@const otherIcon = DATAMatrix('[OTHER]')}
94
146
  <div class="button-barcode-set">
95
147
  <DataMatrixIcon
96
- title="Other"
97
- icon={otherIcon}
148
+ title={alertContext.otherLabel}
149
+ icon={{ kind: 'svg', svg: otherIcon }}
98
150
  />
99
151
  <button
100
152
  type="button"
@@ -105,11 +157,10 @@
105
157
  {/if}
106
158
 
107
159
  {#if alertContext.noLabel}
108
- {@const noIcon = DATAMatrix('[NO]')}
109
160
  <div class="button-barcode-set">
110
161
  <DataMatrixIcon
111
- title="No"
112
- icon={noIcon}
162
+ title={alertContext.noLabel}
163
+ icon={{ kind: 'svg', svg: noIcon }}
113
164
  />
114
165
  <button
115
166
  type="button"