@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,29 +1,66 @@
1
1
  import type { InputVariant } from '../Types/Internal/InputVariant.js';
2
2
  import type { FormEventHandler } from 'svelte/elements';
3
3
  import type { PartialIconProps } from './PartialIconProps.js';
4
+ /**
5
+ * Props for the {@link NumberInput} component.
6
+ *
7
+ * `value` is `number | null`; `null` represents the explicit empty
8
+ * state. The component will clamp the value to `[min, max]` on every
9
+ * input event when those bounds are provided.
10
+ */
4
11
  export interface NumberInputProps {
12
+ /** Current numeric value. Bindable. `null` represents explicit empty. */
5
13
  value: number | null;
14
+ /** Render the "- optional" suffix next to `labelTop`. */
6
15
  optional?: boolean;
16
+ /** `id` on the `<input>`. */
7
17
  id?: string | undefined;
18
+ /** Lower bound used for native validation and runtime clamping. */
8
19
  min?: number | undefined;
20
+ /** Upper bound used for native validation and runtime clamping. */
9
21
  max?: number | undefined;
22
+ /** Label rendered above the input. */
10
23
  labelTop?: string | undefined;
24
+ /** Label rendered inside the input on the right. */
11
25
  labelRight?: string | undefined;
26
+ /** Native `placeholder` attribute. */
12
27
  placeholder?: string | undefined;
28
+ /** Native `required` attribute. */
13
29
  required?: boolean;
30
+ /** Render variant. See {@link InputVariant}. */
14
31
  variant?: InputVariant;
32
+ /**
33
+ * When false (default) the input restricts to integers and uses step=1.
34
+ * When true, `step=0.01` is applied and decimal entry is accepted.
35
+ */
15
36
  decimal?: boolean;
37
+ /** Force the invalid visual state. */
16
38
  invalid?: boolean;
39
+ /** When true, render invalid visuals for unmet `required`/`invalid`. */
17
40
  showErrorColours?: boolean;
41
+ /** Native `disabled` attribute. */
18
42
  disabled?: boolean | undefined;
43
+ /** Icon rendered on the left of the input. */
19
44
  leftIcon?: PartialIconProps | undefined;
45
+ /** Icon rendered on the right of the input. */
20
46
  rightIcon?: PartialIconProps | undefined;
47
+ /** Click handler for the left icon. */
21
48
  onLeftIconClick?: ((e: MouseEvent) => void) | undefined;
49
+ /** Click handler for the right icon. */
22
50
  onRightIconClick?: ((e: MouseEvent) => void) | undefined;
51
+ /** Bindable reference to the underlying `<input>` element. */
23
52
  inputRef?: HTMLInputElement | undefined;
53
+ /** `data-type` attribute, used by domain-aware tooling. */
24
54
  'data-type'?: string;
55
+ /** Blur handler forwarded to the `<input>`. */
25
56
  onblur?: (e: FocusEvent) => void;
57
+ /** Focus handler forwarded to the `<input>`. */
26
58
  onfocus?: (e: FocusEvent) => void;
59
+ /** Keydown handler forwarded to the `<input>`. Defaults to `passthrough`. */
27
60
  onkeydown?: (e: KeyboardEvent) => void;
61
+ /**
62
+ * Input event forwarded to the `<input>`. Fires AFTER the internal
63
+ * clamp step.
64
+ */
28
65
  oninput?: FormEventHandler<HTMLInputElement>;
29
66
  }
@@ -1,19 +1,8 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script
4
- lang="ts"
5
- module
6
- >
7
- import type { Snippet } from 'svelte';
8
-
9
- export interface PageHeadingProps {
10
- children: Snippet;
11
- subtitle?: Snippet | undefined;
12
- extras?: Snippet | undefined;
13
- }
14
- </script>
15
-
16
3
  <script lang="ts">
4
+ import type { PageHeadingProps } from './PageHeadingProps.js';
5
+
17
6
  let { children, subtitle, extras }: PageHeadingProps = $props();
18
7
  </script>
19
8
 
@@ -1,9 +1,4 @@
1
- import type { Snippet } from 'svelte';
2
- export interface PageHeadingProps {
3
- children: Snippet;
4
- subtitle?: Snippet | undefined;
5
- extras?: Snippet | undefined;
6
- }
1
+ import type { PageHeadingProps } from './PageHeadingProps.js';
7
2
  declare const PageHeading: import("svelte").Component<PageHeadingProps, {}, "">;
8
3
  type PageHeading = ReturnType<typeof PageHeading>;
9
4
  export default PageHeading;
@@ -0,0 +1,23 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface PageHeadingProps {
3
+ /**
4
+ * Title snippet rendered inside the `<h1>`. Must produce a single,
5
+ * short line of text - this heading is also the semantic page
6
+ * landmark for screen readers, so prefer plain text and avoid block
7
+ * markup.
8
+ */
9
+ children: Snippet;
10
+ /**
11
+ * Optional sub-title rendered beneath the title in a one-line slot.
12
+ * Use for a status, breadcrumb tail, or short description. Wraps to
13
+ * a single visual row; longer content will be truncated by the
14
+ * surrounding mixin.
15
+ */
16
+ subtitle?: Snippet | undefined;
17
+ /**
18
+ * Optional trailing snippet rendered in a right-aligned button row.
19
+ * Use for primary page actions (Save, Edit, ...) or status chips
20
+ * such as `Bubble`. Omit for headings without actions.
21
+ */
22
+ extras?: Snippet | undefined;
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,11 +1,12 @@
1
1
  <svelte:options runes />
2
2
 
3
3
  <script lang="ts">
4
+ import { cssLength, passthrough } from '../Helpers/Helpers.svelte.js';
4
5
  import { ColourSet } from '../scss/colours.js';
5
6
  import { Size } from '../Types/Internal/Size.js';
6
7
  import Action from './Action.svelte';
7
8
  import Icon from './Icon.svelte';
8
- import type { InputProps } from './InputProps.js';
9
+ import type { PasswordInputProps } from './PasswordInputProps.js';
9
10
  let {
10
11
  value = $bindable(''),
11
12
  label = undefined,
@@ -15,12 +16,13 @@
15
16
  showInput = $bindable(false),
16
17
  leftIcon = undefined,
17
18
  inputRef = $bindable(),
18
- ...inputEvents
19
- }: InputProps = $props();
19
+ autocomplete = 'current-password',
20
+ onblur,
21
+ onfocus,
22
+ onkeydown = passthrough,
23
+ }: PasswordInputProps = $props();
20
24
 
21
- // let inputRef: HTMLInputElement | undefined = undefined;
22
-
23
- function toggleVisibility() {
25
+ function toggleVisibility(): void {
24
26
  showInput = !showInput;
25
27
  inputRef?.focus();
26
28
  }
@@ -30,29 +32,38 @@
30
32
  <label>
31
33
  {#if label}
32
34
  <span class="for-default">{label}</span>
33
- <span class="border">{label}</span>
35
+ <span
36
+ aria-hidden="true"
37
+ class="border">{label}</span
38
+ >
34
39
  {/if}
35
- <!-- style="--background-colour: {leftIcon?.backgroundColour};" -->
36
40
  <div class="icon-container">
37
41
  {#if leftIcon}
38
42
  <Icon
39
43
  name={leftIcon.name}
40
44
  size={leftIcon.size ?? Size.Medium}
41
45
  float
42
- left="0.75rem"
43
- top="50%"
44
- anchorX="0"
45
- anchorY="-50%"
46
+ left={cssLength('0.75rem')}
47
+ top={cssLength('50%')}
48
+ anchorX={cssLength('0')}
49
+ anchorY={cssLength('-50%')}
46
50
  />
47
51
  {/if}
48
52
  <input
49
53
  class="for-default"
50
- {...inputEvents}
51
54
  class:left-pad={leftIcon != undefined}
52
55
  class:right-pad={true}
53
- {...{ type: showInput ? 'text' : 'password' }}
56
+ type={showInput ? 'text' : 'password'}
57
+ {autocomplete}
58
+ autocapitalize="none"
59
+ autocorrect="off"
60
+ spellcheck="false"
61
+ data-form-type="password"
54
62
  bind:value
55
63
  bind:this={inputRef}
64
+ {onblur}
65
+ {onfocus}
66
+ {onkeydown}
56
67
  {placeholder}
57
68
  {required}
58
69
  {disabled}
@@ -60,8 +71,9 @@
60
71
 
61
72
  <div class="right-icon">
62
73
  <Action
74
+ label={showInput ? 'Hide password' : 'Show password'}
63
75
  colourSet={showInput ? ColourSet.Secondary : ColourSet.Auxiliary}
64
- icon={{ name: 'assessment' }}
76
+ icon={{ name: showInput ? 'visibility-off' : 'visibility' }}
65
77
  size={Size.MediumSmall}
66
78
  onclick={toggleVisibility}
67
79
  />
@@ -1,4 +1,4 @@
1
- import type { InputProps } from './InputProps.js';
2
- declare const PasswordInput: import("svelte").Component<InputProps, {}, "value" | "inputRef" | "showInput">;
1
+ import type { PasswordInputProps } from './PasswordInputProps.js';
2
+ declare const PasswordInput: import("svelte").Component<PasswordInputProps, {}, "value" | "inputRef" | "showInput">;
3
3
  type PasswordInput = ReturnType<typeof PasswordInput>;
4
4
  export default PasswordInput;
@@ -0,0 +1,21 @@
1
+ import type { InputProps } from './InputProps.js';
2
+ /**
3
+ * Props for the {@link PasswordInput} component.
4
+ *
5
+ * Extends the shared {@link InputProps} with password-specific fields.
6
+ * The `autocomplete` value should be set explicitly based on the form
7
+ * context:
8
+ * - `current-password` for sign-in flows (the default).
9
+ * - `new-password` for password creation / change flows.
10
+ * - `one-time-code` for OTP / 2FA inputs.
11
+ * - `off` to opt out of browser autofill entirely.
12
+ *
13
+ * Per OWASP / NIST guidance, lacking this attribute degrades password
14
+ * manager interop and can push users toward weaker passwords.
15
+ */
16
+ export interface PasswordInputProps extends InputProps {
17
+ /**
18
+ * Native `autocomplete` value. Defaults to `'current-password'`.
19
+ */
20
+ autocomplete?: 'current-password' | 'new-password' | 'one-time-code' | 'off';
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -7,17 +7,28 @@
7
7
  let { target = browser ? globalThis.document.body : undefined, children }: PortalProps = $props();
8
8
 
9
9
  let ref: HTMLElement | undefined = $state();
10
+ let lastTarget: HTMLElement | undefined;
10
11
 
11
12
  $effect(() => {
12
- if (target && ref) {
13
- target.appendChild(ref);
13
+ // Identity guard: only re-parent when `target` actually changes.
14
+ // `appendChild` already moves the node when called, so this avoids
15
+ // unnecessary detach/attach when an upstream `$state` target
16
+ // re-fires the effect without changing identity.
17
+ if (target && ref && target !== lastTarget) {
18
+ if (target.ownerDocument === globalThis.document) {
19
+ target.appendChild(ref);
20
+ lastTarget = target;
21
+ }
14
22
  }
15
23
 
24
+ // Cleanup is necessary, not redundant: without it, the appended
25
+ // node would remain inside `target` after the Portal unmounts,
26
+ // because `target` outlives the component.
16
27
  return () => {
17
28
  ref?.parentNode?.removeChild(ref);
29
+ lastTarget = undefined;
18
30
  };
19
31
  });
20
- // this block is almost needless/useless (if not totally) as, on destroy, the ref will no longer exist/be in the DOM anyways
21
32
  </script>
22
33
 
23
34
  <div bind:this={ref}>
@@ -1,5 +1,24 @@
1
1
  import type { Snippet } from 'svelte';
2
2
  export interface PortalProps {
3
- target?: HTMLElement;
3
+ /**
4
+ * The DOM element to receive the portalled children. Defaults to
5
+ * `document.body` in the browser, or `undefined` during SSR (in
6
+ * which case nothing is appended until the component is hydrated).
7
+ *
8
+ * The element must belong to the active document tree - the
9
+ * portal does not validate this, and detached or cross-document
10
+ * targets will produce inert DOM. Pass only trusted, in-tree
11
+ * elements: arbitrary user input must not reach this prop.
12
+ */
13
+ target?: HTMLElement | undefined;
14
+ /**
15
+ * The children snippet to render inside `target`. Rendered as a
16
+ * single wrapper `<div>` which is appended to `target` on mount
17
+ * and removed on unmount.
18
+ *
19
+ * The default `Snippet` parameter tuple is empty, which is correct
20
+ * here - the portal does not pass arguments to the rendered
21
+ * snippet.
22
+ */
4
23
  children: Snippet;
5
24
  }
@@ -1,78 +1,106 @@
1
1
  <svelte:options runes />
2
2
 
3
3
  <script lang="ts">
4
- import { devCatch, getCanvasContext } from '../Helpers/Helpers.svelte.js';
5
- import { tick } from 'svelte';
4
+ import { useAsyncFlag } from '../Helpers/AsyncFlag.svelte.js';
5
+ import { getCanvasContext } from '../Helpers/Helpers.svelte.js';
6
6
  import type { BubbleColour } from './BubbleColour.js';
7
7
  import type { ProgressBubbleProps } from './ProgressBubbleProps.js';
8
8
 
9
- let { value, colours }: ProgressBubbleProps = $props();
9
+ const { value, colours }: ProgressBubbleProps = $props();
10
10
 
11
- let current = $derived(value[0]);
12
- // let current = $derived(37)
13
- let total = $derived(value[1]);
14
- let progress = $derived(`${current}/${total}`);
11
+ const current = $derived(value[0]);
12
+ const total = $derived(value[1]);
13
+ const progress = $derived(`${current}/${total}`);
14
+
15
+ // Clamp the percentage so callers passing `current > total` do not
16
+ // blow past the bar's edge.
17
+ const percent = $derived(Math.min((current / total) * 100, 100));
15
18
 
16
19
  let progressBarRef: HTMLDivElement | undefined = $state();
17
20
 
18
- // for some reason, doing this in a derived-by puts the browser in some kind of infinite loop
19
- let fitsInProgressBar = $state(false);
21
+ // Observed inline-size of the filled bar. A `ResizeObserver` is used
22
+ // instead of `getBoundingClientRect()` inside an `$effect`: the latter
23
+ // forces a synchronous layout flush on every `progress` change, which
24
+ // is expensive inside a table with many `ProgressBubble` cells. The
25
+ // observer notifies us only when the bar's actual rendered size
26
+ // changes, and does so via a microtask scheduled by the browser so we
27
+ // never force layout ourselves.
28
+ let barWidth = $state(0);
20
29
  $effect(() => {
21
- if (progress && progressBarRef) {
22
- const oldRef = progressBarRef;
23
- tick()
24
- .then(() => {
25
- if (oldRef === progressBarRef) {
26
- const textWidth = getCanvasContext()?.measureText(`__${progress}__`).width ?? 0;
27
- const progresValueWidth = progressBarRef.getBoundingClientRect().width;
28
-
29
- fitsInProgressBar = progresValueWidth > textWidth;
30
- } else {
31
- fitsInProgressBar = false;
32
- }
33
- })
34
- .catch(devCatch);
30
+ if (!progressBarRef) {
31
+ return;
35
32
  }
33
+ const ro = new ResizeObserver((entries) => {
34
+ const entry = entries[0];
35
+ barWidth = entry.borderBoxSize[0]?.inlineSize ?? entry.contentRect.width;
36
+ });
37
+ ro.observe(progressBarRef);
38
+ return () => {
39
+ ro.disconnect();
40
+ };
36
41
  });
37
42
 
38
- let awaitedColours: BubbleColour | undefined = $state();
39
-
40
- $effect(() => {
41
- if (colours) {
42
- if (colours instanceof Promise) {
43
- colours
44
- .then((c) => {
45
- awaitedColours = c;
46
- })
47
- .catch((e: unknown) => {
48
- devCatch(e);
49
- awaitedColours = undefined;
50
- });
51
- } else {
52
- awaitedColours = colours;
53
- }
54
- } else {
55
- awaitedColours = undefined;
56
- }
43
+ // Whether the `current/total` label fits inside the filled bar.
44
+ // Measured via a memoised offscreen canvas so we do not trigger
45
+ // layout.
46
+ const fitsInProgressBar = $derived.by(() => {
47
+ const textWidth = getCanvasContext()?.measureText(`__${progress}__`).width ?? 0;
48
+ return barWidth > textWidth;
57
49
  });
50
+
51
+ // `colours` may be a bare `BubbleColour`, a Promise resolving to one,
52
+ // or undefined. Routed through `useAsyncFlag` which (a) cancels stale
53
+ // Promises via a sequence ticket so the freshest value always wins,
54
+ // (b) reports errors through `ToastContext` when one is mounted, and
55
+ // (c) falls back to `undefined` while no resolution is available.
56
+ const awaitedColoursFlag = useAsyncFlag<BubbleColour | undefined>(() => colours, undefined);
57
+ const awaitedColours = $derived(awaitedColoursFlag.value);
58
+
59
+ // Precompute the wrapper and bar style strings. Each colour comes
60
+ // from the trusted `Colour` registry (see `Bubble.svelte` security
61
+ // note) so interpolation into `style="..."` is safe.
62
+ const wrapperStyle = $derived(
63
+ awaitedColours
64
+ ? `--bar-background-colour: ${awaitedColours.backgroundColour}; --text-colour: ${awaitedColours.colour};`
65
+ : ''
66
+ );
67
+ const barStyle = $derived(`width: ${percent}%;`);
58
68
  </script>
59
69
 
60
70
  <div
61
71
  class="progress-wrapper"
62
- style={awaitedColours
63
- ? `--bar-background-colour: ${awaitedColours.backgroundColour}; --text-colour: ${awaitedColours.colour};`
64
- : ''}
72
+ style={wrapperStyle}
65
73
  >
66
- <progress value={current} max={total}>{progress}</progress>
74
+ <!--
75
+ Native `<progress>` is kept as a fallback for assistive tech that
76
+ ignores ARIA progressbar roles. Previously it was `display: none`,
77
+ which removed it from the accessibility tree; it is now visually
78
+ hidden (off-screen, zero opacity, but still in the layout tree).
79
+ -->
80
+ <progress
81
+ class="visually-hidden"
82
+ value={current}
83
+ max={total}>{progress}</progress
84
+ >
67
85
 
68
- <div class="progress-background" role="progressbar">
86
+ <div
87
+ class="progress-background"
88
+ role="progressbar"
89
+ aria-valuenow={current}
90
+ aria-valuemin={0}
91
+ aria-valuemax={total}
92
+ aria-valuetext={progress}
93
+ >
69
94
  <div
70
95
  class:fits={fitsInProgressBar}
71
96
  class="progress-value"
72
97
  bind:this={progressBarRef}
73
- style={`width: ${Math.min((current / total) * 100, 100)}%;`}
98
+ style={barStyle}
74
99
  >
75
- <span class:fits={fitsInProgressBar} class="progress-text">{progress}</span>
100
+ <span
101
+ class:fits={fitsInProgressBar}
102
+ class="progress-text">{progress}</span
103
+ >
76
104
  </div>
77
105
  </div>
78
106
  </div>
@@ -93,6 +121,15 @@
93
121
  border-radius: var(--progress-bar-radius, 12px);
94
122
  transition: border-radius ease-out 0.15s 0s;
95
123
  }
124
+ @media (prefers-reduced-motion: reduce) {
125
+ .progress-wrapper .progress-background,
126
+ .progress-wrapper .progress-value {
127
+ animation-duration: 0.001ms !important;
128
+ animation-iteration-count: 1 !important;
129
+ transition-duration: 0.001ms !important;
130
+ scroll-behavior: auto !important;
131
+ }
132
+ }
96
133
  .progress-wrapper .progress-background {
97
134
  position: relative;
98
135
  width: 100%;
@@ -107,14 +144,22 @@
107
144
  position: relative;
108
145
  }
109
146
 
110
- progress {
111
- display: none;
147
+ .visually-hidden {
148
+ position: absolute;
149
+ width: 1px;
150
+ height: 1px;
151
+ padding: 0;
152
+ margin: -1px;
153
+ overflow: hidden;
154
+ clip: rect(0, 0, 0, 0);
155
+ white-space: nowrap;
156
+ border: 0;
112
157
  }
113
158
 
114
159
  .progress-text {
115
160
  position: absolute;
116
- top: 8px;
117
- bottom: 8px;
161
+ top: 0.5rem;
162
+ bottom: 0.5rem;
118
163
  left: -2px;
119
164
  right: -2px;
120
165
  max-height: 100%;
@@ -1,5 +1,26 @@
1
+ import type { AsyncFlag } from '../Types/Internal/AsyncFlag.js';
1
2
  import type { BubbleColour } from './BubbleColour.js';
3
+ /**
4
+ * Props for {@link ProgressBubble}.
5
+ *
6
+ * Renders a horizontal progress bar with `current/total` text embedded
7
+ * inside (or alongside) the filled portion. The `value` tuple uses a
8
+ * labelled-tuple type so consumers cannot confuse the two slots.
9
+ */
2
10
  export interface ProgressBubbleProps {
3
- value: [number, number];
4
- colours?: BubbleColour | Promise<BubbleColour> | undefined;
11
+ /**
12
+ * Labelled `[current, total]` tuple. The first slot is the amount
13
+ * progressed; the second is the upper bound. Previously typed as
14
+ * `[number, number]`; the labelled-tuple variant compiles
15
+ * identically but documents the position in the editor's tooltip.
16
+ */
17
+ value: [current: number, total: number];
18
+ /**
19
+ * Optional foreground / background colour pair, possibly arriving
20
+ * asynchronously. Typed via {@link AsyncFlag} so the resolution
21
+ * pattern matches the rest of the library (buttons, tabs, modals).
22
+ * Resolved internally by `useAsyncFlag`; stale Promises are
23
+ * discarded.
24
+ */
25
+ colours?: AsyncFlag<BubbleColour> | undefined;
5
26
  }