@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
@@ -4,13 +4,19 @@
4
4
  import { Colour } from '../../scss/colours.js';
5
5
  import { Size } from '../../Types/Internal/Size.js';
6
6
  import Icon from '../Icon.svelte';
7
+ import { Dimensions } from './Dimensions.js';
7
8
  import type { NavServiceMenuListProps } from './NavServiceMenuListProps.js';
8
9
  import ServiceMenuItem from './ServiceMenuItem.svelte';
9
10
 
10
11
  const { title, items, icon }: NavServiceMenuListProps = $props();
11
12
  </script>
12
13
 
13
- <div class="wrapper">
14
+ <div
15
+ class="wrapper"
16
+ style="--icon-column-width: {Dimensions.smallPanelWidth}rem"
17
+ role="group"
18
+ aria-label={title}
19
+ >
14
20
  <h3>
15
21
  <div class="icon">
16
22
  {#if icon}
@@ -24,7 +30,10 @@
24
30
  {title}
25
31
  </h3>
26
32
 
27
- <div class="items">
33
+ <div
34
+ class="items"
35
+ role="list"
36
+ >
28
37
  {#each items as { item } (item.label)}
29
38
  <ServiceMenuItem {item} />
30
39
  {/each}
@@ -43,7 +52,7 @@ h3 .icon {
43
52
  flex-flow: row nowrap;
44
53
  align-items: center;
45
54
  justify-content: center;
46
- width: 3.4rem;
55
+ width: var(--icon-column-width);
47
56
  }
48
57
 
49
58
  .wrapper {
@@ -1,7 +1,31 @@
1
1
  import type { IconProps } from '../IconProps.js';
2
2
  import type { SideMenuItemProps } from './SideMenuItemProps.js';
3
+ /**
4
+ * Props for the {@link NavServiceMenuList} component.
5
+ *
6
+ * A titled, optionally-iconed list of {@link ServiceMenuItem} entries.
7
+ * Used inside `ServicesNav` to render a single service grouping
8
+ * (e.g. "Orders", "Receiving") with its child links.
9
+ */
3
10
  export interface NavServiceMenuListProps {
4
- items: Array<SideMenuItemProps>;
11
+ /**
12
+ * The menu entries to render in order. Each entry wraps a
13
+ * {@link CallbackButtonWithIcon} via `SideMenuItemProps.item`.
14
+ *
15
+ * Marked `readonly` so the component cannot accidentally mutate
16
+ * caller state. Callers pass an array literal or a `$state` value.
17
+ */
18
+ items: ReadonlyArray<SideMenuItemProps>;
19
+ /** The list heading shown above the items. */
5
20
  title: string;
21
+ /**
22
+ * Optional icon rendered to the left of the title.
23
+ *
24
+ * `IconProps` is spread onto the rendered `<Icon>`. Default colour
25
+ * and size are supplied by the component; pass only the overrides
26
+ * you need. The `name` property is required by `IconProps` and is
27
+ * effectively required here too: omit the prop entirely if no icon
28
+ * is wanted.
29
+ */
6
30
  icon?: IconProps;
7
31
  }
@@ -1,56 +1,24 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
4
- import { devCatch } from '../../Helpers/Helpers.svelte.js';
3
+ <script
4
+ lang="ts"
5
+ generics="Args"
6
+ >
7
+ import { useAsyncFlag } from '../../Helpers/AsyncFlag.svelte.js';
5
8
  import { Colour } from '../../scss/colours.js';
6
9
  import { Size } from '../../Types/Internal/Size.js';
7
10
  import Icon from '../Icon.svelte';
8
11
  import type { NavTabProps } from './NavTabProps.js';
9
12
 
10
- let { option, selected }: NavTabProps = $props();
11
-
12
- let disabled = $state(true);
13
- let visible = $state(true);
14
- let isValid = $state(true);
15
-
16
- $effect(() => {
17
- if (typeof option.isValid === 'boolean') {
18
- isValid = option.isValid;
19
- } else {
20
- option.isValid
21
- ?.then((v) => {
22
- isValid = v;
23
- })
24
- .catch(devCatch);
25
- }
26
- });
27
- $effect(() => {
28
- if (typeof option.disabled === 'boolean') {
29
- disabled = option.disabled;
30
- } else if (option.disabled == undefined) {
31
- disabled = false;
32
- } else {
33
- option.disabled
34
- .then((v) => {
35
- disabled = v;
36
- })
37
- .catch(devCatch);
38
- }
39
- });
13
+ // `Args` defaults to `unknown` on the props interface, but we still
14
+ // pass the generic explicitly so consumers using the component as
15
+ // `<NavTab>` inside a typed snippet receive the same `Args` rune.
16
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments
17
+ let { option, selected }: NavTabProps<Args> = $props();
40
18
 
41
- $effect(() => {
42
- if (typeof option.visible === 'boolean') {
43
- visible = option.visible;
44
- } else if (option.visible == undefined) {
45
- visible = true;
46
- } else {
47
- option.visible
48
- .then((v) => {
49
- visible = v;
50
- })
51
- .catch(devCatch);
52
- }
53
- });
19
+ const isValid = useAsyncFlag(() => option.isValid, true);
20
+ const disabled = useAsyncFlag(() => option.disabled, false);
21
+ const visible = useAsyncFlag(() => option.visible, true);
54
22
  </script>
55
23
 
56
24
  <button
@@ -60,9 +28,12 @@
60
28
  }}
61
29
  type="button"
62
30
  class="tab"
63
- {disabled}
64
- class:invalid={!isValid}
65
- class:hidden={!visible}
31
+ role="tab"
32
+ aria-selected={selected}
33
+ aria-label={option.label}
34
+ disabled={disabled.value}
35
+ class:invalid={!isValid.value}
36
+ class:hidden={!visible.value}
66
37
  >
67
38
  <Icon
68
39
  name="nothing"
@@ -1,4 +1,25 @@
1
1
  import type { NavTabProps } from './NavTabProps.js';
2
- declare const NavTab: import("svelte").Component<NavTabProps, {}, "">;
3
- type NavTab = ReturnType<typeof NavTab>;
2
+ declare function $$render<Args>(): {
3
+ props: NavTabProps<Args>;
4
+ exports: {};
5
+ bindings: "";
6
+ slots: {};
7
+ events: {};
8
+ };
9
+ declare class __sveltets_Render<Args> {
10
+ props(): ReturnType<typeof $$render<Args>>['props'];
11
+ events(): ReturnType<typeof $$render<Args>>['events'];
12
+ slots(): ReturnType<typeof $$render<Args>>['slots'];
13
+ bindings(): "";
14
+ exports(): {};
15
+ }
16
+ interface $$IsomorphicComponent {
17
+ new <Args>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Args>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Args>['props']>, ReturnType<__sveltets_Render<Args>['events']>, ReturnType<__sveltets_Render<Args>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<Args>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<Args>['exports']>;
20
+ <Args>(internal: unknown, props: ReturnType<__sveltets_Render<Args>['props']> & {}): ReturnType<__sveltets_Render<Args>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ }
23
+ declare const NavTab: $$IsomorphicComponent;
24
+ type NavTab<Args> = InstanceType<typeof NavTab<Args>>;
4
25
  export default NavTab;
@@ -1,5 +1,19 @@
1
1
  import type { TabOption } from '../../Types/Internal/TabOption.js';
2
- export interface NavTabProps {
3
- option: TabOption<unknown>;
2
+ /**
3
+ * Props for the {@link NavTab} component.
4
+ *
5
+ * `NavTab` is the tab button variant used by `ServicesNav` inside the
6
+ * shared `HorizontalTabGroup`. It mirrors the underlying
7
+ * {@link TabOption} `isValid` / `disabled` / `visible` async-flag
8
+ * contract via the shared `useAsyncFlag` helper, so consumers can
9
+ * pass plain booleans or Promises interchangeably.
10
+ *
11
+ * Generic over `Args` so the option's `content` snippet can be typed
12
+ * without resorting to `unknown` at the call site.
13
+ */
14
+ export interface NavTabProps<Args = unknown> {
15
+ /** The tab option to render. */
16
+ option: TabOption<Args>;
17
+ /** Whether this tab is the currently selected one. */
4
18
  selected: boolean;
5
19
  }
@@ -2,9 +2,8 @@
2
2
 
3
3
  <script lang="ts">
4
4
  import { dev } from '$app/environment';
5
- import { resolve } from '$app/paths';
6
5
  import { page } from '$app/state';
7
- import { devCatch } from '../../Helpers/Helpers.svelte.js';
6
+ import { useAsyncFlag } from '../../Helpers/AsyncFlag.svelte.js';
8
7
  import { Size } from '../../Types/Internal/Size.js';
9
8
  import Icon from '../Icon.svelte';
10
9
  import { Dimensions } from './Dimensions.js';
@@ -14,21 +13,31 @@
14
13
 
15
14
  const selected = $derived(maybeSelected ?? (item.path ? page.url.pathname == item.path : false));
16
15
 
17
- let visible = $state(true);
16
+ const visible = useAsyncFlag(() => item.visible, true);
18
17
 
19
- $effect(() => {
20
- if (typeof item.visible === 'boolean') {
21
- visible = item.visible;
22
- } else if (item.visible == undefined) {
23
- visible = true;
24
- } else {
25
- item.visible
26
- .then((v) => {
27
- visible = v;
28
- })
29
- .catch(devCatch);
18
+ /**
19
+ * Constrain the rendered `href` to safe, relative paths only.
20
+ *
21
+ * `item.path` is typed as the SvelteKit `Pathname` brand at the
22
+ * boundary, but the property is still a `string` at runtime. To
23
+ * keep the trust boundary tight we reject anything that contains
24
+ * a URL scheme (anything matching `^[a-z][a-z0-9+.-]*:`) and any
25
+ * input that does not start with `/`. Disallowed values resolve
26
+ * to `#` so the link is harmless if a future consumer supplies an
27
+ * unsafe value.
28
+ */
29
+ function safeHref(path: string): string {
30
+ if (typeof path !== 'string' || path.length === 0) {
31
+ return '#';
30
32
  }
31
- });
33
+ if (!path.startsWith('/')) {
34
+ return '#';
35
+ }
36
+ if (/^[a-z][a-z0-9+.-]*:/i.test(path)) {
37
+ return '#';
38
+ }
39
+ return path;
40
+ }
32
41
  </script>
33
42
 
34
43
  {#if item.callback}
@@ -38,7 +47,7 @@
38
47
  }}
39
48
  style="--iconWidth: {Dimensions.smallPanelWidth}rem"
40
49
  class:selected
41
- class:hidden={!visible}
50
+ class:hidden={!visible.value}
42
51
  >
43
52
  <!-- <div class="selected-marker"></div> -->
44
53
  <div class="icon-wrapper">
@@ -59,12 +68,12 @@
59
68
  </div></button
60
69
  >
61
70
  {:else if item.path}
62
- <!-- FIXME why is this type cast required? -->
63
71
  <a
64
- href={resolve(item.path as '/')}
72
+ href={safeHref(item.path)}
65
73
  style="--iconWidth: {Dimensions.smallPanelWidth}rem"
74
+ aria-current={selected ? 'page' : undefined}
66
75
  class:selected
67
- class:hidden={!visible}
76
+ class:hidden={!visible.value}
68
77
  >
69
78
  <!-- <div class="selected-marker"></div> -->
70
79
  <div class="icon-wrapper">
@@ -126,7 +135,7 @@ a .text .label {
126
135
  button .subtitle,
127
136
  a .subtitle {
128
137
  font-size: 0.875rem;
129
- color: #9da9b1;
138
+ color: #718a9b;
130
139
  }
131
140
  button,
132
141
  a {
@@ -1,35 +1,62 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
3
+ <script
4
+ lang="ts"
5
+ generics="Args"
6
+ >
7
+ import { devCatch } from '../../Helpers/Helpers.svelte.js';
4
8
  import type { TabOption } from '../../Types/Internal/TabOption.js';
5
9
  import HorizontalTabGroup from '../HorizontalTabGroup.svelte';
6
10
  import NavTab from './NavTab.svelte';
7
11
  import type { ServicesNavProps } from './ServicesNavProps.js';
8
12
 
9
- const { onclose, serviceTabs, selectedServiceTab }: ServicesNavProps = $props();
13
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments
14
+ const { onclose, serviceTabs, selectedServiceTab }: ServicesNavProps<Args> = $props();
15
+
16
+ let dialogRef: HTMLDialogElement | undefined = $state.raw();
10
17
 
11
- let servicesDialogRef: HTMLDivElement | undefined = $state.raw();
18
+ function fireClose(): void {
19
+ const result = onclose();
20
+ if (result instanceof Promise) {
21
+ result.catch((e: unknown) => {
22
+ devCatch(e);
23
+ });
24
+ }
25
+ }
26
+
27
+ // Open the dialog as soon as we mount; native showModal() gives us a
28
+ // real focus trap, Escape-to-close, and inert background without any
29
+ // manual aria-modal / tabindex bookkeeping.
30
+ $effect(() => {
31
+ const dialog = dialogRef;
32
+ if (dialog && !dialog.open) {
33
+ dialog.showModal();
34
+ }
35
+ });
12
36
  </script>
13
37
 
14
- <div
15
- bind:this={servicesDialogRef}
16
- role="dialog"
17
- tabindex="0"
38
+ <dialog
39
+ bind:this={dialogRef}
40
+ aria-label="Services"
18
41
  class="overlay"
19
- onclick={(e) => {
20
- e.stopPropagation();
21
- if (servicesDialogRef === e.target) {
22
- onclose();
23
- }
42
+ oncancel={(e) => {
43
+ // Escape fires `cancel` first; prevent the native close so we
44
+ // fully delegate to the parent (it owns the visibility flag).
45
+ e.preventDefault();
46
+ fireClose();
24
47
  }}
25
- onkeydown={(e) => {
26
- if (e.key === 'Escape') {
27
- onclose();
48
+ onclick={(e) => {
49
+ // Native <dialog> click target is the dialog element itself when
50
+ // the user clicks the backdrop; clicks on inner content bubble
51
+ // up with a different target.
52
+ if (dialogRef === e.target) {
53
+ fireClose();
28
54
  }
29
55
  }}
30
56
  >
31
57
  <div
32
58
  role="navigation"
59
+ aria-label="Services tabs"
33
60
  class="services"
34
61
  >
35
62
  <HorizontalTabGroup
@@ -41,22 +68,35 @@
41
68
  grow
42
69
  />
43
70
  </div>
44
- </div>
71
+ </dialog>
45
72
 
46
- {#snippet navTab(option: TabOption<unknown>, selected: boolean)}
73
+ {#snippet navTab(option: TabOption<Args>, selected: boolean)}
47
74
  <NavTab
48
75
  {option}
49
76
  {selected}
50
77
  />
51
78
  {/snippet}
52
79
 
53
- <style>div.overlay {
80
+ <style>dialog.overlay {
54
81
  position: fixed;
55
82
  top: calc(3.25rem + var(--env-border-height, 0));
56
83
  bottom: 0;
57
84
  left: 0;
58
85
  right: 0;
86
+ width: 100%;
87
+ height: auto;
88
+ max-width: none;
89
+ max-height: none;
90
+ margin: 0;
91
+ padding: 0;
92
+ border: none;
93
+ background: transparent;
59
94
  z-index: 98;
95
+ overflow: visible;
96
+ color: inherit;
97
+ }
98
+
99
+ dialog.overlay::backdrop {
60
100
  background-color: rgba(0, 0, 0, 0.2);
61
101
  }
62
102
 
@@ -73,20 +113,6 @@ div.services {
73
113
  flex-flow: row nowrap;
74
114
  align-items: stretch;
75
115
  justify-content: stretch;
76
- height: min(710px, 80%);
77
- width: 800px;
78
- }
79
-
80
- div.wrapper {
81
- display: flex;
82
- flex-flow: row wrap;
83
- width: 600px;
84
- gap: 1.5rem;
85
- --input-width: 100%;
86
- }
87
- div.wrapper .row {
88
- width: 100%;
89
- gap: 1.5rem;
90
- display: flex;
91
- flex-flow: row nowrap;
116
+ height: var(--services-nav-height, min(710px, 80%));
117
+ width: var(--services-nav-width, 800px);
92
118
  }</style>
@@ -1,4 +1,25 @@
1
1
  import type { ServicesNavProps } from './ServicesNavProps.js';
2
- declare const ServicesNav: import("svelte").Component<ServicesNavProps, {}, "">;
3
- type ServicesNav = ReturnType<typeof ServicesNav>;
2
+ declare function $$render<Args>(): {
3
+ props: ServicesNavProps<Args>;
4
+ exports: {};
5
+ bindings: "";
6
+ slots: {};
7
+ events: {};
8
+ };
9
+ declare class __sveltets_Render<Args> {
10
+ props(): ReturnType<typeof $$render<Args>>['props'];
11
+ events(): ReturnType<typeof $$render<Args>>['events'];
12
+ slots(): ReturnType<typeof $$render<Args>>['slots'];
13
+ bindings(): "";
14
+ exports(): {};
15
+ }
16
+ interface $$IsomorphicComponent {
17
+ new <Args>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<Args>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<Args>['props']>, ReturnType<__sveltets_Render<Args>['events']>, ReturnType<__sveltets_Render<Args>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<Args>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<Args>['exports']>;
20
+ <Args>(internal: unknown, props: ReturnType<__sveltets_Render<Args>['props']> & {}): ReturnType<__sveltets_Render<Args>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ }
23
+ declare const ServicesNav: $$IsomorphicComponent;
24
+ type ServicesNav<Args> = InstanceType<typeof ServicesNav<Args>>;
4
25
  export default ServicesNav;
@@ -1,6 +1,22 @@
1
1
  import type { TabOption } from '../../Types/Internal/TabOption.js';
2
- export interface ServicesNavProps {
3
- onclose: () => void;
4
- serviceTabs: Array<TabOption<unknown>>;
5
- selectedServiceTab: TabOption<unknown> | undefined;
2
+ /**
3
+ * Props for the {@link ServicesNav} dropdown.
4
+ *
5
+ * `ServicesNav` is the floating service-switcher panel rendered above
6
+ * the rest of the app chrome. It wraps the shared `HorizontalTabGroup`
7
+ * with the `NavTab` snippet so each service appears as a labelled
8
+ * tab. Generic over `Args` so the option's `content` snippet can be
9
+ * typed by the host rather than collapsing to `unknown`.
10
+ */
11
+ export interface ServicesNavProps<Args = unknown> {
12
+ /**
13
+ * Called when the user dismisses the dropdown (click on the
14
+ * overlay or `Escape`). May return a Promise so async cleanup is
15
+ * supported.
16
+ */
17
+ onclose: () => void | Promise<void>;
18
+ /** The service tabs to render. */
19
+ serviceTabs: ReadonlyArray<TabOption<Args>>;
20
+ /** The currently selected tab, matched by reference. */
21
+ selectedServiceTab: TabOption<Args> | undefined;
6
22
  }
@@ -1,7 +1,23 @@
1
1
  import type { CallbackButtonWithIcon } from './CallbackButtonWithIcon.js';
2
2
  import type { SideMenuItemVariant } from './SideMenuItemVariant.js';
3
+ /**
4
+ * Props for the {@link ServiceMenuItem} component.
5
+ *
6
+ * Each item is either a path-bearing link or a callback-bearing
7
+ * button (encoded by the {@link CallbackButtonWithIcon} discriminated
8
+ * union). Selection state is auto-derived from the current
9
+ * `page.url.pathname` for path items unless the host overrides it
10
+ * via `selected`.
11
+ */
3
12
  export interface SideMenuItemProps {
13
+ /** The underlying nav button data (path-or-callback). */
4
14
  item: CallbackButtonWithIcon;
15
+ /**
16
+ * Override the auto-derived selection. When omitted (and `item.path`
17
+ * is supplied) selection is computed by comparing `page.url.pathname`
18
+ * to `item.path`.
19
+ */
5
20
  selected?: boolean;
21
+ /** Visual variant. */
6
22
  variant?: SideMenuItemVariant;
7
23
  }
@@ -1,13 +1,14 @@
1
1
  <svelte:options runes />
2
2
 
3
3
  <script lang="ts">
4
+ import { cssLength, passthrough } from '../Helpers/Helpers.svelte.js';
4
5
  import { InputVariant } from '../Types/Internal/InputVariant.js';
5
6
  import { Size } from '../Types/Internal/Size.js';
6
7
  import Icon from './Icon.svelte';
7
8
  import type { NumberInputProps } from './NumberInputProps.js';
8
9
  let {
9
10
  id,
10
- value = $bindable(), // FIXME why is undefined allowed here?
11
+ value = $bindable(null),
11
12
  min,
12
13
  max,
13
14
  labelTop,
@@ -27,28 +28,34 @@
27
28
 
28
29
  onblur,
29
30
  onfocus,
30
- onkeydown,
31
+ onkeydown = passthrough,
31
32
  oninput,
32
33
 
33
34
  inputRef = $bindable(),
34
35
  'data-type': dataType,
35
36
  }: NumberInputProps = $props();
36
37
 
37
- // NOTE cannot alter signature because it's passed by a use: directive
38
- function numberValidator(_node: HTMLInputElement, _newValue: number | null) {
39
- return {
40
- update(newValue: number) {
41
- const underMinimum = min != undefined && min > newValue;
42
- const overMaximum = max != undefined && max < newValue;
43
-
44
- value = isNaN(newValue) ? 0 : underMinimum ? min : overMaximum ? max : newValue;
45
- },
46
- };
38
+ function clamp(e: Event): void {
39
+ const raw = (e.target as HTMLInputElement).value;
40
+ if (raw === '') {
41
+ if (value !== null) {
42
+ value = null;
43
+ }
44
+ return;
45
+ }
46
+ const next = Number(raw);
47
+ if (isNaN(next)) {
48
+ return;
49
+ }
50
+ const lo = min ?? -Infinity;
51
+ const hi = max ?? Infinity;
52
+ const clamped = Math.max(lo, Math.min(hi, next));
53
+ if (clamped !== value) {
54
+ value = clamped;
55
+ }
47
56
  }
48
57
 
49
- let isInvalid = $derived(
50
- showErrorColours && ((required && (value == null || value.toString().trim() === '')) || invalid)
51
- );
58
+ const isInvalid = $derived(showErrorColours && ((required && value == null) || invalid));
52
59
  </script>
53
60
 
54
61
  <div
@@ -69,13 +76,13 @@
69
76
  >
70
77
  {#if variant === InputVariant.Default}
71
78
  <span
79
+ aria-hidden="true"
72
80
  class="border"
73
81
  class:invalid={isInvalid}
74
82
  >{labelTop}{#if optional}<i>&nbsp;- optional</i>{/if}</span
75
83
  >
76
84
  {/if}
77
85
  {/if}
78
- <!-- style="--background-colour: {leftIcon?.backgroundColour ?? rightIcon?.backgroundColour};" -->
79
86
  <div
80
87
  class="icon-container"
81
88
  class:for-modal={variant == InputVariant.Modal}
@@ -86,10 +93,10 @@
86
93
  size={leftIcon.size ?? Size.Medium}
87
94
  colour={leftIcon.colour}
88
95
  float
89
- left="0.75rem"
90
- top="50%"
91
- anchorX="0"
92
- anchorY="-50%"
96
+ left={cssLength('0.75rem')}
97
+ top={cssLength('50%')}
98
+ anchorX={cssLength('0')}
99
+ anchorY={cssLength('-50%')}
93
100
  clickable={!!onLeftIconClick}
94
101
  onclick={onLeftIconClick}
95
102
  />
@@ -99,16 +106,19 @@
99
106
  class:invalid={isInvalid}
100
107
  class:for-default={variant === InputVariant.Default}
101
108
  data-type={dataType}
102
- use:numberValidator={value}
103
109
  class:left-pad={leftIcon != undefined}
104
110
  class:right-pad={rightIcon != undefined || (labelRight && variant == InputVariant.Modal)}
105
111
  class:for-modal={variant == InputVariant.Modal}
106
112
  type="number"
113
+ aria-invalid={isInvalid || undefined}
107
114
  bind:value
108
115
  {onblur}
109
116
  {onfocus}
110
117
  {onkeydown}
111
- {oninput}
118
+ oninput={(e) => {
119
+ clamp(e);
120
+ oninput?.(e);
121
+ }}
112
122
  bind:this={inputRef}
113
123
  {placeholder}
114
124
  {required}
@@ -123,10 +133,10 @@
123
133
  size={rightIcon.size ?? Size.Medium}
124
134
  colour={rightIcon.colour}
125
135
  float
126
- right={variant == InputVariant.Modal ? '1rem' : '0.5rem'}
127
- top="50%"
128
- anchorX="0"
129
- anchorY="-50%"
136
+ right={cssLength(variant == InputVariant.Modal ? '1rem' : '0.5rem')}
137
+ top={cssLength('50%')}
138
+ anchorX={cssLength('0')}
139
+ anchorY={cssLength('-50%')}
130
140
  clickable={!!onRightIconClick}
131
141
  onclick={onRightIconClick}
132
142
  />
@@ -379,5 +389,5 @@ input[type=number] {
379
389
  input::-webkit-outer-spin-button,
380
390
  input::-webkit-inner-spin-button {
381
391
  -webkit-appearance: none;
382
- margin: 0; /* <-- Apparently some margin are still there even though it's hidden */
392
+ margin: 0;
383
393
  }</style>