@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
@@ -1,20 +1,25 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" generics="V extends object, VP extends ValueProp<V>">
4
- import { autoPluralise, generateShortUUID, vowels } from '../Helpers/Helpers.svelte.js';
3
+ <script
4
+ lang="ts"
5
+ generics="V extends object, VP extends ValueProp<V>"
6
+ >
7
+ import { autoPluralise, generateWeakId, vowels } from '../Helpers/Helpers.svelte.js';
8
+ import { attachDropdownPortal } from '../Helpers/dropdownPortal.js';
5
9
  import { Colour, ColourSet } from '../scss/colours.js';
6
10
  import type { ValueProp } from '../Types/Internal/Misc.js';
7
11
  import { Size } from '../Types/Internal/Size.js';
8
12
  import Svelecte from 'svelecte';
13
+ import { SvelteSet } from 'svelte/reactivity';
9
14
  import { onMount } from 'svelte';
10
15
  import Action from './Action.svelte';
11
16
  import Icon from './Icon.svelte';
12
17
  import type { MultiSelectProps } from './MultiSelectProps.js';
13
18
 
14
- // HACK selectedValues is mutated by svelecte without asking, so we sometimes have to reverse it without a callback (side effects)
15
- let {
19
+ // NOTE selectedValues is mutated by svelecte without asking, so we sometimes have to reverse it without a callback (side effects)
20
+ const {
16
21
  label,
17
- inputId = generateShortUUID(),
22
+ inputId = generateWeakId(),
18
23
  options,
19
24
  labelProp,
20
25
  valueProp,
@@ -27,24 +32,37 @@
27
32
  name = 'Item',
28
33
  disabled,
29
34
  required,
30
- invalid
35
+ invalid,
31
36
  }: MultiSelectProps<V, VP> = $props();
32
37
 
33
38
  const an = $derived(name && vowels.has(name.at(0)?.toLocaleLowerCase() ?? '') ? 'an' : 'a');
34
39
 
35
- const hidden = $state(false);
40
+ // Pre-computed set of selected primitive keys. Used in the option snippet
41
+ // to avoid an O(n*m) findIndex sweep per render.
42
+ const selectedKeys = $derived.by(() => {
43
+ const s = new SvelteSet<V[VP]>();
44
+ if (valueAsObject) {
45
+ for (const v of selectedValues as Array<V>) {
46
+ s.add(v[valueProp]);
47
+ }
48
+ } else {
49
+ for (const v of selectedValues as Array<V[VP]>) {
50
+ s.add(v);
51
+ }
52
+ }
53
+ return s;
54
+ });
55
+
56
+ let isExpanded = $state(false);
36
57
 
37
58
  onMount(() => {
38
59
  const input = document.getElementById(inputId);
39
- // input?.addEventListener('focus', () => {
40
- // hidden = true;
41
- // });
42
- // input?.addEventListener('blur', () => {
43
- // hidden = false;
44
- // });
60
+ const svelecteRoot = input?.closest('div.svelecte') as HTMLElement | null;
61
+ const dropdownRef =
62
+ (svelecteRoot?.querySelector('.sv_dropdown') as HTMLElement | null) ?? undefined;
45
63
 
46
- // HACK callback for is-open on/off
47
- const dropdownRef = input?.closest('div.svelecte')?.querySelector('.sv_dropdown') ?? undefined;
64
+ // HACK callback for is-open on/off; drives the chevron rotation
65
+ // in the action snippet further down.
48
66
  const observer = new MutationObserver((mutations: Array<MutationRecord>) => {
49
67
  for (let i = mutations.length - 1; i > -1; i--) {
50
68
  const mutation = mutations[i];
@@ -58,22 +76,24 @@
58
76
  observer.observe(dropdownRef, { attributes: true });
59
77
  }
60
78
 
79
+ // Teleport the Svelecte dropdown to `document.body` while open
80
+ // so it escapes every ancestor `overflow` / `transform` /
81
+ // `z-index` stacking context. See `Helpers/dropdownPortal.ts`
82
+ // for the rationale and behaviour (auto-flip upwards on tight
83
+ // viewports, scroll-aware repositioning, viewport-bounded
84
+ // max-height).
85
+ const detachPortal = attachDropdownPortal({
86
+ getTrigger: () => svelecteRoot,
87
+ getDropdown: () => dropdownRef,
88
+ });
89
+
61
90
  return () => {
62
91
  observer.disconnect();
92
+ detachPortal();
63
93
  };
64
94
  });
65
95
 
66
- let isExpanded = $state(false);
67
-
68
96
  const isInvalid = $derived((required && !selectedValues.length) || invalid);
69
-
70
- function usesValuesAsObjects(_values: Array<V> | Array<V[VP]>): _values is Array<V> {
71
- return valueAsObject;
72
- }
73
-
74
- function usesValuesAsPrimitives(_values: Array<V> | Array<V[VP]>): _values is Array<V[VP]> {
75
- return !valueAsObject;
76
- }
77
97
  </script>
78
98
 
79
99
  <div
@@ -99,7 +119,16 @@
99
119
  searchable
100
120
  value={selectedValues}
101
121
  onChange={(e: Array<V>) => {
102
- onchange(e);
122
+ // svelecte always emits the full option objects; normalise to the
123
+ // shape the variant promised: primitives for AsPrimitive,
124
+ // objects for AsObject. This is what the discriminated
125
+ // `onchange` typing now guarantees to consumers.
126
+ if (valueAsObject) {
127
+ void (onchange as (v: Array<V>) => void | Promise<void>)(e);
128
+ } else {
129
+ const primitives = e.map((it) => it[valueProp]);
130
+ void (onchange as (v: Array<V[VP]>) => void | Promise<void>)(primitives);
131
+ }
103
132
  }}
104
133
  {name}
105
134
  selectOnTab
@@ -117,21 +146,19 @@
117
146
  <span class="dropdown-item">
118
147
  <div
119
148
  class="toggle-icon"
120
- class:yes={usesValuesAsObjects(selectedValues)
121
- ? selectedValues.findIndex((v) => v[valueProp] === option[valueProp]) > -1
122
- : usesValuesAsPrimitives(selectedValues)
123
- ? (selectedValues as Array<V[VP]>).findIndex((v: V[VP]) => v === option[valueProp]) >
124
- -1
125
- : false}
149
+ class:yes={selectedKeys.has(option[valueProp])}
126
150
  >
127
- <Icon name="tick" size={Size.MediumSmall} />
151
+ <Icon
152
+ name="tick"
153
+ size={Size.MediumSmall}
154
+ />
128
155
  </div>
129
156
  {option[labelProp]}</span
130
157
  >
131
158
  {/snippet}
132
159
 
133
160
  {#snippet collapsedSelection(selectedOptions: Array<object> /*_i18n*/)}
134
- <span class="selection" class:hidden
161
+ <span class="selection"
135
162
  >{#if selectedOptions.length}{selectedOptions.length}
136
163
  {#if name}{autoPluralise(name, selectedOptions.length)}{/if} Selected
137
164
  {:else}Please Select {#if name}
@@ -153,14 +180,18 @@
153
180
  }
154
181
 
155
182
  if (selectedValues.length) {
156
- onchange([]);
183
+ // Empty array satisfies both Array<V> and Array<V[VP]>.
184
+ void (onchange as (v: Array<V> | Array<V[VP]>) => void | Promise<void>)([]);
185
+ } else if (valueAsObject) {
186
+ void (onchange as (v: Array<V>) => void | Promise<void>)(options.concat());
157
187
  } else {
158
- onchange(options.concat());
188
+ const primitives = options.map((it) => it[valueProp]);
189
+ void (onchange as (v: Array<V[VP]>) => void | Promise<void>)(primitives);
159
190
  }
160
191
  }}
161
192
  icon={{
162
193
  name: selectedValues.length ? 'close-menu-cross' : 'manage-product-group',
163
- colour: Colour['$ui-blue-10']
194
+ colour: Colour['$ui-blue-10'],
164
195
  }}
165
196
  />
166
197
 
@@ -171,26 +202,18 @@
171
202
  colourSet={ColourSet.Auxiliary}
172
203
  icon={{
173
204
  name: isExpanded ? 'chevron-up' : 'chevron-down',
174
- colour: Colour['$ui-blue-10']
205
+ colour: Colour['$ui-blue-10'],
175
206
  }}
176
207
  />
177
208
  </div>
178
209
  {/snippet}
179
210
  {#snippet toggleIcon()}
180
211
  <div class="nothing"></div>
181
- <!-- <div class="icon-bg">
182
- <Icon name="chevron-down" size={Size.MediumSmall} />
183
- </div> -->
184
212
  {/snippet}
185
213
  </Svelecte>
186
214
 
187
215
  {#snippet selection(/*_selectedOptions: Array<unknown>*/)}
188
- <!-- {#if selectedOptions.length === 0}
189
- <span class="selection" class:hidden
190
- >Please Select {#if objectName}
191
- {an} {objectName}{/if}</span
192
- >
193
- {/if} -->
216
+ <!-- collapsed selection rendered above -->
194
217
  {/snippet}
195
218
  </div>
196
219
 
@@ -262,24 +285,13 @@
262
285
  max-height: 100%;
263
286
  box-sizing: border-box;
264
287
  }
265
- .select-wrapper :global(.sv-item--content) {
266
- font-size: 0.875rem;
267
- }
268
- .select-wrapper :global(.sv-item--wrap.in-dropdown) {
269
- cursor: pointer;
270
- min-height: 40px;
271
- align-items: center;
272
- }
273
- .select-wrapper :global(.sv-item--content) {
274
- min-height: 1.2rem;
275
- }
276
288
  .select-wrapper :global(.sv-btn-indicator) {
277
289
  cursor: pointer;
278
290
  }
279
291
  .select-wrapper.no-border {
280
292
  --sv-border: none;
281
293
  }
282
- .select-wrapper .select-wrapper.force-upwards :global .sv_dropdown.is-open {
294
+ .select-wrapper.force-upwards :global .sv_dropdown.is-open {
283
295
  bottom: var(--dropdown-bottom);
284
296
  }
285
297
  .select-wrapper :global .sv-control {
@@ -300,32 +312,18 @@
300
312
  .select-wrapper :global .svelecte.svelecte-control {
301
313
  cursor: pointer;
302
314
  }
303
- .select-wrapper :global .sv-item--wrap.in-dropdown {
304
- cursor: pointer;
305
- min-height: 40px;
306
- align-items: center;
307
- }
308
- .select-wrapper :global .sv-item--content {
309
- min-height: 1.2rem;
310
- }
311
315
  .select-wrapper :global span {
312
316
  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;
313
317
  }
314
318
  .select-wrapper :global .sv-control {
315
319
  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;
316
320
  }
317
- .select-wrapper :global div.sv_dropdown.is-open {
318
- z-index: 99;
319
- }
320
321
  .select-wrapper div.nothing {
321
322
  height: 0;
322
323
  width: 0;
323
324
  }
324
- .select-wrapper .dropdown-item,
325
325
  .select-wrapper .selection {
326
326
  font-size: 0.875rem;
327
- }
328
- .select-wrapper .selection {
329
327
  padding-left: 0.5rem;
330
328
  white-space: nowrap;
331
329
  display: flex;
@@ -349,22 +347,36 @@ div.icons {
349
347
  box-sizing: border-box;
350
348
  }
351
349
 
352
- .dropdown-item {
350
+ :global .sv-item--wrap.in-dropdown {
351
+ cursor: pointer;
352
+ min-height: 40px;
353
+ align-items: center;
354
+ }
355
+ :global .sv-item--content {
356
+ font-size: 0.875rem;
357
+ min-height: 1.2rem;
358
+ }
359
+ :global div.sv_dropdown.is-open {
360
+ z-index: 99;
361
+ }
362
+
363
+ :global(.dropdown-item) {
353
364
  display: flex;
354
365
  flex-flow: row nowrap;
355
366
  width: 100%;
356
367
  overflow: hidden;
357
368
  text-overflow: ellipsis;
358
369
  gap: 1rem;
370
+ font-size: 0.875rem;
359
371
  fill: #259fc7;
360
372
  }
361
- .dropdown-item .toggle-icon {
373
+ :global(.dropdown-item) .toggle-icon {
362
374
  display: flex;
363
375
  align-items: center;
364
376
  justify-content: center;
365
377
  flex-flow: column nowrap;
366
378
  opacity: 0;
367
379
  }
368
- .dropdown-item .toggle-icon.yes {
380
+ :global(.dropdown-item) .toggle-icon.yes {
369
381
  opacity: 1;
370
382
  }</style>
@@ -1,16 +1,45 @@
1
- import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
1
+ import type { CssLength, NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
2
+ /**
3
+ * Keys of `V` whose value is a string. Re-exported for callers that want
4
+ * a tighter constraint than `NonNullableKey<V>`. Currently aliased to
5
+ * `NonNullableKey<V>` to avoid cascading into Table subtree consumers
6
+ * (see workorder MultiSelect P1).
7
+ */
8
+ export type StringValuedKey<V> = NonNullableKey<V>;
2
9
  export interface MultiSelectCommonProps<V extends object, VP extends ValueProp<V>> {
10
+ /** Available options to choose from. */
3
11
  options: Array<V>;
12
+ /** Singular display name of the entity. */
4
13
  name?: string;
14
+ /** Key of `V` whose value is the human-readable label. */
5
15
  labelProp: NonNullableKey<V>;
16
+ /** Key of `V` whose value is the unique identifier. */
6
17
  valueProp: VP;
18
+ /** Disable the input. */
7
19
  disabled?: boolean;
20
+ /** Whether at least one selection is required. */
8
21
  required?: boolean;
22
+ /** Force the invalid visual state. */
9
23
  invalid?: boolean;
24
+ /** Top label. */
10
25
  label?: string;
26
+ /** DOM id of the underlying svelecte input. */
11
27
  inputId?: string;
12
- width?: string;
13
- height?: string;
14
- onchange: (e: Array<V>) => void;
28
+ /**
29
+ * CSS width override. Interpolated into a CSS custom property.
30
+ *
31
+ * BREAKING (Phase 7.7): was `string`; now requires the `CssLength`
32
+ * brand. Use the `cssLength('...')` helper to mark intentional CSS
33
+ * length strings.
34
+ */
35
+ width?: CssLength;
36
+ /**
37
+ * CSS height override. Interpolated into a CSS custom property.
38
+ *
39
+ * BREAKING (Phase 7.7): was `string`; now requires the `CssLength`
40
+ * brand. Use the `cssLength('...')` helper.
41
+ */
42
+ height?: CssLength;
43
+ /** When true, render a summary instead of chips. */
15
44
  collapseSelection?: boolean;
16
45
  }
@@ -3,4 +3,9 @@ import type { MultiSelectCommonProps } from './MultiSelectCommonProps.js';
3
3
  export interface MultiSelectPropsAsObject<V extends object, VP extends ValueProp<V>> extends MultiSelectCommonProps<V, VP> {
4
4
  valueAsObject: true;
5
5
  selectedValues: Array<V>;
6
+ /**
7
+ * Called when the selection changes. Receives an array of the full
8
+ * option objects because `valueAsObject` is `true`.
9
+ */
10
+ onchange: (newValues: Array<V>) => void | Promise<void>;
6
11
  }
@@ -3,4 +3,10 @@ import type { MultiSelectCommonProps } from './MultiSelectCommonProps.js';
3
3
  export interface MultiSelectPropsAsPrimitive<V extends object, VP extends ValueProp<V>> extends MultiSelectCommonProps<V, VP> {
4
4
  valueAsObject: false;
5
5
  selectedValues: Array<V[VP]>;
6
+ /**
7
+ * Called when the selection changes. Receives an array of the
8
+ * primitive key values (`V[VP]`) because `valueAsObject` is `false`.
9
+ * Do NOT read `.value` off the items -- they are already primitives.
10
+ */
11
+ onchange: (newValues: Array<V[VP]>) => void | Promise<void>;
6
12
  }
@@ -1,22 +1,43 @@
1
1
  import type { Pathname } from '$app/types';
2
2
  import type { IconProps } from '../IconProps.js';
3
+ import type { AsyncFlag } from '../../Types/Internal/AsyncFlag.js';
4
+ /**
5
+ * Either a path-bearing nav button or a callback-bearing nav button.
6
+ *
7
+ * Modelled as a proper discriminated union so that providing both
8
+ * `path` and `callback` is a compile error. Each member uses
9
+ * `?: never` on the absent discriminant; this is the recommended
10
+ * template across scoria for "either A or B" prop shapes.
11
+ */
3
12
  export type CallbackButtonWithIcon = CallbackButtonWithPath | CallbackButtonWithCallback;
13
+ /** Fields common to every nav button variant. */
4
14
  export interface NavButtonPartial {
15
+ /** Name of the icon to render to the left of the label. */
5
16
  iconName?: IconProps['name'];
17
+ /** Visible label shown next to the icon. */
6
18
  label: string;
19
+ /** Tooltip text displayed on hover. */
7
20
  hoverLabel?: string;
21
+ /** Optional second line shown below the label. */
8
22
  subtitle?: string;
9
- visible?: boolean | Promise<boolean>;
23
+ /**
24
+ * AsyncFlag of a boolean. Nav button is hidden when this resolves
25
+ * to false. Defaults to true.
26
+ */
27
+ visible?: AsyncFlag<boolean>;
10
28
  }
29
+ /** Convenience alias used by some consumers that build `NavButton` directly. */
11
30
  export type NavButton = NavButtonPartial & ({
12
31
  path: Pathname;
13
32
  } | {
14
33
  callback: () => void;
15
34
  });
35
+ /** Nav button that navigates to a SvelteKit route. */
16
36
  export interface CallbackButtonWithPath extends NavButtonPartial {
17
37
  path: Pathname;
18
38
  callback?: never;
19
39
  }
40
+ /** Nav button that fires a callback when clicked. */
20
41
  export interface CallbackButtonWithCallback extends NavButtonPartial {
21
42
  path?: never;
22
43
  callback: () => void;
@@ -1,12 +1,23 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
3
+ <script
4
+ lang="ts"
5
+ generics="T"
6
+ >
4
7
  import { Size } from '../../Types/Internal/Size.js';
5
8
  import Icon from '../Icon.svelte';
6
9
  import type { NavProps } from './NavProps.js';
7
10
  import ServicesNav from './ServicesNav.svelte';
8
11
 
9
- const { userName, extras, userDialog, serviceTabs, selectedServiceTab }: NavProps = $props();
12
+ const {
13
+ userName,
14
+ extras,
15
+ userDialog,
16
+ serviceTabs,
17
+ selectedServiceTab,
18
+ brand,
19
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-arguments
20
+ }: NavProps<T> = $props();
10
21
 
11
22
  const userIcon = $derived.by(() => {
12
23
  const names = userName.split(' ');
@@ -23,14 +34,11 @@
23
34
  </script>
24
35
 
25
36
  <nav class="main-navigation">
26
- <span class="nav-link hoverable"> FloWMS </span>
27
- <!-- HACK swap above for below when a decent landing page has been added -->
28
- <!-- <a
29
- href={resolve(Locations.Home)}
30
- class="nav-link hoverable"
31
- >
32
- FloWMS
33
- </a> -->
37
+ {#if typeof brand === 'string'}
38
+ <span class="nav-link brand">{brand}</span>
39
+ {:else if brand}
40
+ <span class="nav-link brand">{@render brand()}</span>
41
+ {/if}
34
42
 
35
43
  <div class="nav-link">
36
44
  <button
@@ -58,13 +66,7 @@
58
66
  {/if}
59
67
  </div>
60
68
 
61
- <div class="nav-search-container">
62
- <!-- <TextInput
63
- bind:value={searchParam}
64
- placeholder="Search for anything"
65
- leftIcon={{ name: 'search-1' }}
66
- /> -->
67
- </div>
69
+ <div class="nav-search-container"></div>
68
70
  {#if extras}
69
71
  <div class="nav-link spaced selects">
70
72
  {@render extras()}
@@ -104,8 +106,8 @@
104
106
  background-color: rgba(0, 0, 0, 0.2);
105
107
  }
106
108
 
107
- a.nav-link {
108
- color: unset;
109
+ span.brand {
110
+ font-weight: 600;
109
111
  }
110
112
 
111
113
  div.user {
@@ -142,18 +144,22 @@ nav button {
142
144
  width: 100%;
143
145
  }
144
146
  nav button:hover {
145
- background-color: rgba(47, 151, 186, 0.1);
147
+ background-color: #f4f7f9;
146
148
  cursor: pointer;
147
149
  }
148
150
 
151
+ .nav-search-container {
152
+ flex: 1;
153
+ }
154
+
149
155
  .spaced {
150
- gap: 1rem;
156
+ gap: 1.5rem;
151
157
  }
152
158
 
153
159
  .user-icon {
154
160
  background-color: #dae0e5;
155
161
  padding: 0.5rem;
156
- border-radius: 17px;
162
+ border-radius: 4px;
157
163
  opacity: 0;
158
164
  font-weight: 600;
159
165
  }
@@ -161,8 +167,8 @@ nav button:hover {
161
167
  opacity: 1;
162
168
  }
163
169
  .user-icon.single-letter {
164
- padding: 0.3rem 0.6rem;
165
- border-radius: 14px;
170
+ padding: 0.375rem 0.75rem;
171
+ border-radius: 4px;
166
172
  }
167
173
 
168
174
  .main-navigation > *:nth-child(even) {
@@ -171,16 +177,16 @@ nav button:hover {
171
177
  .main-navigation > *:nth-child(even)::before {
172
178
  content: "";
173
179
  height: 1.5rem;
174
- border-left: solid 1px #e8e8e8;
175
- border-radius: 10px;
180
+ border-left: solid 1px #e9ecf1;
181
+ border-radius: 5px;
176
182
  left: 0;
177
183
  position: absolute;
178
184
  }
179
185
  .main-navigation > *:nth-child(even)::after {
180
186
  content: "";
181
187
  height: 1.5rem;
182
- border-right: solid 1px #e8e8e8;
183
- border-radius: 10px;
188
+ border-right: solid 1px #e9ecf1;
189
+ border-radius: 5px;
184
190
  position: absolute;
185
191
  right: 0;
186
192
  }
@@ -197,14 +203,13 @@ nav button:hover {
197
203
  justify-content: center;
198
204
  flex-flow: row;
199
205
  align-items: center;
200
- /* flex-grow: 1; */
201
206
  min-width: 7.5rem;
202
207
  transition: background-color 200ms ease 0s;
203
208
  }
204
209
  .nav-link.padded {
205
210
  padding-left: 1rem;
206
211
  padding-right: 1rem;
207
- gap: 1rem;
212
+ gap: 1.5rem;
208
213
  }
209
214
 
210
215
  div.delimited {
@@ -1,4 +1,25 @@
1
1
  import type { NavProps } from './NavProps.js';
2
- declare const Nav: import("svelte").Component<NavProps, {}, "">;
3
- type Nav = ReturnType<typeof Nav>;
2
+ declare function $$render<T>(): {
3
+ props: NavProps<T>;
4
+ exports: {};
5
+ bindings: "";
6
+ slots: {};
7
+ events: {};
8
+ };
9
+ declare class __sveltets_Render<T> {
10
+ props(): ReturnType<typeof $$render<T>>['props'];
11
+ events(): ReturnType<typeof $$render<T>>['events'];
12
+ slots(): ReturnType<typeof $$render<T>>['slots'];
13
+ bindings(): "";
14
+ exports(): {};
15
+ }
16
+ interface $$IsomorphicComponent {
17
+ new <T>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
18
+ $$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
19
+ } & ReturnType<__sveltets_Render<T>['exports']>;
20
+ <T>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
21
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
22
+ }
23
+ declare const Nav: $$IsomorphicComponent;
24
+ type Nav<T> = InstanceType<typeof Nav<T>>;
4
25
  export default Nav;
@@ -1,9 +1,56 @@
1
1
  import type { TabOption } from '../../Types/Internal/TabOption.js';
2
2
  import type { Snippet } from 'svelte';
3
- export interface NavProps {
3
+ /**
4
+ * Generic `T` parameterises the `TabOption<T>.args` payload type carried by
5
+ * each entry in {@link serviceTabs} / {@link selectedServiceTab}. Defaults
6
+ * to `unknown` so existing untyped consumers continue to compile unchanged;
7
+ * consumers that want a typed `args` payload (e.g. a discriminated union of
8
+ * service identifiers) can pass it explicitly: `Nav<MyServiceArgs>`.
9
+ */
10
+ export interface NavProps<T = unknown> {
11
+ /**
12
+ * The name of the currently signed-in user. The component derives an
13
+ * initials badge from this value (first letter of the first one or two
14
+ * space-separated tokens) and renders the full name beside it.
15
+ */
4
16
  userName: string;
17
+ /**
18
+ * Snippet rendered when the user clicks the user badge. Receives a
19
+ * `closeUserDialog` callback that the snippet must invoke to dismiss
20
+ * the dialog (the component does not auto-dismiss on outside click).
21
+ */
5
22
  userDialog: Snippet<[closeUserDialog: () => void]>;
6
- serviceTabs: Array<TabOption<unknown>>;
7
- selectedServiceTab: TabOption<unknown> | undefined;
23
+ /**
24
+ * The set of service tabs presented in the services dialog. Each tab
25
+ * is a `TabOption` whose `args` payload is opaque to scoria; consumers
26
+ * may carry whatever shape they need through `unknown`.
27
+ */
28
+ serviceTabs: ReadonlyArray<TabOption<T>>;
29
+ /**
30
+ * The currently selected service tab, or `undefined` if no tab is
31
+ * selected. Must reference one of `serviceTabs` by identity for the
32
+ * selection styling to apply.
33
+ */
34
+ selectedServiceTab: TabOption<T> | undefined;
35
+ /**
36
+ * Optional brand label rendered as the first item in the navigation
37
+ * bar.
38
+ *
39
+ * Accepts either a plain string (rendered as text inside the brand
40
+ * container) or a `Snippet` for rich brand rendering such as a logo
41
+ * image, a link, or a custom layout. When omitted the brand slot
42
+ * renders nothing, which keeps the component free of consumer
43
+ * specific branding by default.
44
+ *
45
+ * Consumer apps that previously relied on the historic hard-coded
46
+ * "FloWMS" string must now pass `brand="FloWMS"` (or a Snippet) to
47
+ * preserve the previous visual.
48
+ */
49
+ brand?: string | Snippet;
50
+ /**
51
+ * Optional snippet rendered between the services button and the user
52
+ * badge. Typically used to host context-dependent selects such as
53
+ * warehouse and depot pickers.
54
+ */
8
55
  extras?: Snippet;
9
56
  }