@lavalogic/scoria 0.35.0 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +46 -42
  3. package/dist/Components/AccordionGroupButton.svelte +106 -106
  4. package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
  5. package/dist/Components/AccordionGroupProps.d.ts +10 -2
  6. package/dist/Components/Action.svelte +137 -139
  7. package/dist/Components/ActionProps.d.ts +23 -3
  8. package/dist/Components/AlertModal.svelte +176 -125
  9. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
  10. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
  11. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
  12. package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
  13. package/dist/Components/Base/BaseModal.svelte +172 -0
  14. package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
  15. package/dist/Components/Base/BaseModalProps.d.ts +73 -0
  16. package/dist/Components/Base/BaseModalProps.js +1 -0
  17. package/dist/Components/Base/ContextWrapper.svelte +72 -50
  18. package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
  19. package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
  20. package/dist/Components/Base/Pagination.svelte +198 -190
  21. package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
  22. package/dist/Components/Base/PaginationProps.d.ts +60 -3
  23. package/dist/Components/Base/Snippets.svelte +36 -29
  24. package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
  25. package/dist/Components/BigRadioSet.svelte +39 -30
  26. package/dist/Components/BigRadioSetProps.d.ts +17 -1
  27. package/dist/Components/Bubble.svelte +110 -77
  28. package/dist/Components/Bubble.svelte.d.ts +23 -2
  29. package/dist/Components/BubbleProps.d.ts +55 -4
  30. package/dist/Components/Button.svelte +209 -197
  31. package/dist/Components/ButtonProps.d.ts +66 -1
  32. package/dist/Components/Checkbox.svelte +100 -72
  33. package/dist/Components/Checkbox.svelte.d.ts +1 -12
  34. package/dist/Components/CheckboxProps.d.ts +27 -0
  35. package/dist/Components/CheckboxProps.js +1 -0
  36. package/dist/Components/CollapsibleCard.svelte +114 -83
  37. package/dist/Components/CollapsibleCardProps.d.ts +22 -1
  38. package/dist/Components/Contexts/ContextMenu.svelte +178 -157
  39. package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
  40. package/dist/Components/Contexts/ContextMenuDivider.svelte +19 -11
  41. package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
  42. package/dist/Components/Contexts/ContextMenuOption.svelte +66 -57
  43. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
  44. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
  45. package/dist/Components/Contexts/Toast.svelte +88 -64
  46. package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
  47. package/dist/Components/Contexts/ToastContainer.svelte +68 -49
  48. package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
  49. package/dist/Components/Contexts/ToastProps.d.ts +14 -1
  50. package/dist/Components/Contexts/Tooltip.svelte +47 -36
  51. package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
  52. package/dist/Components/DataMatrixIcon.svelte +113 -42
  53. package/dist/Components/DataMatrixIconProps.d.ts +73 -1
  54. package/dist/Components/DateInput.svelte +144 -109
  55. package/dist/Components/DateInput.svelte.d.ts +1 -1
  56. package/dist/Components/DateOnlyInputProps.d.ts +31 -5
  57. package/dist/Components/DatePicker.svelte +301 -313
  58. package/dist/Components/DatePickerProps.d.ts +18 -1
  59. package/dist/Components/DateTimeInputProps.d.ts +30 -5
  60. package/dist/Components/DesktopModal.svelte +90 -119
  61. package/dist/Components/DesktopModalProps.d.ts +5 -4
  62. package/dist/Components/Dial.svelte +213 -151
  63. package/dist/Components/DialProps.d.ts +74 -2
  64. package/dist/Components/DimensionInput.svelte +171 -185
  65. package/dist/Components/DimensionInput.svelte.d.ts +1 -1
  66. package/dist/Components/DimensionInputProps.d.ts +39 -4
  67. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -107
  68. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
  69. package/dist/Components/DragMenu/DraggableCard.svelte +77 -41
  70. package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
  71. package/dist/Components/FileCard.svelte +24 -20
  72. package/dist/Components/FileCardProps.d.ts +17 -1
  73. package/dist/Components/FileUpload.svelte +236 -196
  74. package/dist/Components/FileUploadProps.d.ts +34 -4
  75. package/dist/Components/GridInput.svelte +201 -191
  76. package/dist/Components/GridInput.svelte.d.ts +5 -5
  77. package/dist/Components/GridInputProps.d.ts +4 -1
  78. package/dist/Components/GridInputSet.svelte +31 -24
  79. package/dist/Components/GridInputSet.svelte.d.ts +5 -5
  80. package/dist/Components/GridInputSetProps.d.ts +4 -2
  81. package/dist/Components/HorizontalTabGroup.svelte +81 -79
  82. package/dist/Components/HorizontalTabGroupButton.svelte +51 -103
  83. package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
  84. package/dist/Components/Icon.svelte +144 -103
  85. package/dist/Components/IconProps.d.ts +54 -6
  86. package/dist/Components/Icons.d.ts +8 -0
  87. package/dist/Components/Icons.js +591 -572
  88. package/dist/Components/LoadingAnimation.svelte +39 -39
  89. package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
  90. package/dist/Components/LoadingAnimationProps.d.ts +16 -0
  91. package/dist/Components/LoadingAnimationProps.js +1 -0
  92. package/dist/Components/LoadingModal.svelte +48 -50
  93. package/dist/Components/LoadingModal.svelte.d.ts +1 -4
  94. package/dist/Components/LoadingModalProps.d.ts +17 -0
  95. package/dist/Components/LoadingModalProps.js +1 -0
  96. package/dist/Components/LoadingOverlay.svelte +28 -30
  97. package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
  98. package/dist/Components/LoadingOverlayProps.d.ts +28 -0
  99. package/dist/Components/LoadingOverlayProps.js +1 -0
  100. package/dist/Components/Modal.svelte +250 -255
  101. package/dist/Components/Modal.svelte.d.ts +1 -25
  102. package/dist/Components/ModalProps.d.ts +65 -0
  103. package/dist/Components/ModalProps.js +1 -0
  104. package/dist/Components/MultiSelect.svelte +238 -226
  105. package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
  106. package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
  107. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  108. package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
  109. package/dist/Components/Nav/Nav.svelte +115 -110
  110. package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
  111. package/dist/Components/Nav/NavProps.d.ts +50 -3
  112. package/dist/Components/Nav/NavServiceMenuList.svelte +44 -35
  113. package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
  114. package/dist/Components/Nav/NavTab.svelte +62 -91
  115. package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
  116. package/dist/Components/Nav/NavTabProps.d.ts +16 -2
  117. package/dist/Components/Nav/ServiceMenuItem.svelte +101 -92
  118. package/dist/Components/Nav/ServicesNav.svelte +96 -70
  119. package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
  120. package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
  121. package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
  122. package/dist/Components/NumberInput.svelte +155 -145
  123. package/dist/Components/NumberInputProps.d.ts +37 -0
  124. package/dist/Components/PageHeading.svelte +25 -36
  125. package/dist/Components/PageHeading.svelte.d.ts +1 -6
  126. package/dist/Components/PageHeadingProps.d.ts +23 -0
  127. package/dist/Components/PageHeadingProps.js +1 -0
  128. package/dist/Components/PasswordInput.svelte +85 -73
  129. package/dist/Components/PasswordInput.svelte.d.ts +2 -2
  130. package/dist/Components/PasswordInputProps.d.ts +21 -0
  131. package/dist/Components/PasswordInputProps.js +1 -0
  132. package/dist/Components/Portal.svelte +36 -25
  133. package/dist/Components/PortalProps.d.ts +20 -1
  134. package/dist/Components/ProgressBubble.svelte +129 -84
  135. package/dist/Components/ProgressBubbleProps.d.ts +23 -2
  136. package/dist/Components/QuerySelect.svelte +384 -440
  137. package/dist/Components/QuerySelect.svelte.d.ts +2 -29
  138. package/dist/Components/QuerySelectProps.d.ts +66 -0
  139. package/dist/Components/QuerySelectProps.js +1 -0
  140. package/dist/Components/SingleSelect.svelte +268 -290
  141. package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
  142. package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
  143. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
  144. package/dist/Components/StepButton.svelte +70 -120
  145. package/dist/Components/StepForm.svelte +147 -147
  146. package/dist/Components/StepFormProps.d.ts +16 -2
  147. package/dist/Components/Switch.svelte +84 -47
  148. package/dist/Components/Switch.svelte.d.ts +1 -1
  149. package/dist/Components/SwitchProps.d.ts +46 -0
  150. package/dist/Components/Table/Body/HeightData.d.ts +1 -6
  151. package/dist/Components/Table/Body/HeightData.js +8 -0
  152. package/dist/Components/Table/Body/QuickSearchCell.svelte +697 -641
  153. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
  154. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  155. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +68 -34
  156. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
  157. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
  158. package/dist/Components/Table/Body/Rows/ColumnList.svelte +66 -56
  159. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
  160. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
  161. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +515 -182
  162. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
  163. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
  164. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -49
  165. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
  166. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +203 -191
  167. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
  168. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
  169. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  170. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +150 -115
  171. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
  172. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
  173. package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
  174. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +149 -129
  175. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +149 -126
  176. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
  177. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
  178. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +142 -108
  179. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
  180. package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
  181. package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
  182. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
  183. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
  184. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -72
  185. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
  186. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +148 -137
  187. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
  188. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
  189. package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
  190. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -144
  191. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
  192. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
  193. package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
  194. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +279 -249
  195. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
  196. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
  197. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +249 -370
  198. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
  199. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
  200. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
  201. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +291 -354
  202. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
  203. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
  204. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +201 -189
  205. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
  206. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
  207. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
  208. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +263 -325
  209. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
  210. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
  211. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +230 -381
  212. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
  213. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
  214. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +187 -177
  215. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
  216. package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
  217. package/dist/Components/Table/Body/Rows/TableRow.svelte +331 -263
  218. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
  219. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
  220. package/dist/Components/Table/Body/TableBody.svelte +198 -81
  221. package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
  222. package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
  223. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
  224. package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
  225. package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
  226. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -39
  227. package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
  228. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -28
  229. package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
  230. package/dist/Components/Table/Headers/TableHead.svelte +434 -294
  231. package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
  232. package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
  233. package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
  234. package/dist/Components/Table/Misc/ColumnPanel.svelte +154 -96
  235. package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
  236. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -99
  237. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
  238. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
  239. package/dist/Components/Table/Misc/FilterInput.svelte +545 -556
  240. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
  241. package/dist/Components/Table/Misc/FilterPanel.svelte +409 -51
  242. package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
  243. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -77
  244. package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
  245. package/dist/Components/Table/Misc/SidePanel.svelte +35 -32
  246. package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
  247. package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
  248. package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
  249. package/dist/Components/Table/Misc/TableFooter.svelte +315 -306
  250. package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
  251. package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
  252. package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
  253. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +126 -157
  254. package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
  255. package/dist/Components/Table/Misc/TableSidebar.svelte +158 -177
  256. package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
  257. package/dist/Components/Table/Misc/ToolboxPanel.svelte +147 -81
  258. package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
  259. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -100
  260. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
  261. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
  262. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
  263. package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
  264. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
  265. package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
  266. package/dist/Components/Table/NestedTable.svelte +132 -88
  267. package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
  268. package/dist/Components/Table/NestedTableProps.d.ts +25 -0
  269. package/dist/Components/Table/NestedTableProps.js +1 -0
  270. package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
  271. package/dist/Components/Table/SubApis.svelte.js +359 -0
  272. package/dist/Components/Table/Table.svelte +694 -519
  273. package/dist/Components/Table/Table.svelte.d.ts +24 -1
  274. package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
  275. package/dist/Components/Table/TableHelpers.svelte.js +88 -0
  276. package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
  277. package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
  278. package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
  279. package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
  280. package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
  281. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
  282. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
  283. package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
  284. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
  285. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
  286. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
  287. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
  288. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
  290. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
  291. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
  292. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
  293. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
  294. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
  295. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
  296. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
  297. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
  298. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
  299. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
  300. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
  301. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
  302. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
  303. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
  304. package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
  305. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
  306. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
  307. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
  308. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
  309. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
  310. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
  311. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
  312. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
  313. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
  314. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
  315. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
  316. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
  317. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
  318. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
  319. package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
  320. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
  321. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
  322. package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
  323. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
  324. package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
  325. package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
  326. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
  327. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
  328. package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
  329. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
  330. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
  331. package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
  332. package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
  333. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
  334. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
  335. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
  336. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
  337. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
  338. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
  339. package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
  340. package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
  341. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
  342. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
  343. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
  344. package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
  345. package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
  346. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
  347. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
  348. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
  349. package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
  350. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
  351. package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
  352. package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
  353. package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
  354. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
  355. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
  356. package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
  357. package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
  358. package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
  359. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
  360. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
  361. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
  362. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
  363. package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
  364. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
  365. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
  366. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
  367. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
  368. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
  369. package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
  370. package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
  371. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
  372. package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
  373. package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
  374. package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
  375. package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
  376. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
  377. package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
  378. package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
  379. package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
  380. package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
  381. package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
  382. package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
  383. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
  384. package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
  385. package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
  386. package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
  387. package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
  388. package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
  389. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
  390. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
  391. package/dist/Components/Table/Types/Header.d.ts +8 -0
  392. package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
  393. package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
  394. package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
  395. package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
  396. package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
  397. package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
  398. package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
  399. package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
  400. package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
  401. package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
  402. package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
  403. package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
  404. package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
  405. package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
  406. package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
  407. package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
  408. package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
  409. package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
  410. package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
  411. package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
  412. package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
  413. package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
  414. package/dist/Components/Table/Types/Public/RowSource.js +1 -0
  415. package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
  416. package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
  417. package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
  418. package/dist/Components/Table/Types/Public/Table.js +1 -0
  419. package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
  420. package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
  421. package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
  422. package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
  423. package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
  424. package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
  425. package/dist/Components/Table/Types/Public/index.d.ts +20 -0
  426. package/dist/Components/Table/Types/Public/index.js +8 -0
  427. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
  428. package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
  429. package/dist/Components/Table/createTable.svelte.d.ts +53 -0
  430. package/dist/Components/Table/createTable.svelte.js +269 -0
  431. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  432. package/dist/Components/TextArea.svelte +127 -108
  433. package/dist/Components/TextAreaProps.d.ts +37 -0
  434. package/dist/Components/TextInput.svelte +166 -147
  435. package/dist/Components/TextInputProps.d.ts +58 -1
  436. package/dist/Components/ThreeStateRadio.svelte +140 -143
  437. package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
  438. package/dist/Components/Touch/BoolCard.svelte +45 -52
  439. package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
  440. package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
  441. package/dist/Components/Touch/BoolCardProps.js +1 -0
  442. package/dist/Components/Touch/DateModal.svelte +209 -217
  443. package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
  444. package/dist/Components/Touch/DateModalProps.d.ts +36 -0
  445. package/dist/Components/Touch/DateModalProps.js +1 -0
  446. package/dist/Components/Touch/EditCard.svelte +59 -52
  447. package/dist/Components/Touch/EditCardProps.d.ts +21 -0
  448. package/dist/Components/Touch/InfoCard.svelte +35 -28
  449. package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
  450. package/dist/Components/Touch/InfoTextCard.svelte +28 -21
  451. package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
  452. package/dist/Components/Touch/ModalExplanation.svelte +17 -20
  453. package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
  454. package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
  455. package/dist/Components/Touch/ModalExplanationProps.js +1 -0
  456. package/dist/Components/Touch/NumberKeyboard.svelte +225 -268
  457. package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
  458. package/dist/Components/Touch/NumberModal.svelte +79 -69
  459. package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
  460. package/dist/Components/Touch/PlusMinusCard.svelte +48 -52
  461. package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
  462. package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
  463. package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
  464. package/dist/Components/Touch/SelectModal.svelte +123 -105
  465. package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
  466. package/dist/Components/Touch/SummaryCard.svelte +107 -65
  467. package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
  468. package/dist/Components/Touch/TextAreaModal.svelte +95 -86
  469. package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
  470. package/dist/Components/Touch/TextModal.svelte +106 -123
  471. package/dist/Components/Touch/TextModalProps.d.ts +28 -1
  472. package/dist/Components/Touch/TouchCard.svelte +34 -72
  473. package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
  474. package/dist/Components/Touch/TouchModal.svelte +265 -259
  475. package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
  476. package/dist/Components/Touch/UtilityButton.svelte +116 -98
  477. package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
  478. package/dist/Components/VerticalTabGroup.svelte +80 -102
  479. package/dist/Components/VerticalTabGroupButton.svelte +59 -98
  480. package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
  481. package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
  482. package/dist/Contexts/AlertContext.svelte.js +69 -6
  483. package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
  484. package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
  485. package/dist/Contexts/TestContext.svelte.d.ts +27 -1
  486. package/dist/Contexts/TestContext.svelte.js +29 -1
  487. package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
  488. package/dist/Contexts/ToastContext.svelte.js +93 -24
  489. package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
  490. package/dist/Contexts/TooltipContext.svelte.js +70 -7
  491. package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
  492. package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
  493. package/dist/Delay/Delay.js +1 -1
  494. package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
  495. package/dist/Helpers/AsyncFlag.svelte.js +72 -0
  496. package/dist/Helpers/Datamatrix.d.ts +19 -10
  497. package/dist/Helpers/Datamatrix.js +291 -2
  498. package/dist/Helpers/Helpers.svelte.d.ts +252 -17
  499. package/dist/Helpers/Helpers.svelte.js +271 -60
  500. package/dist/Helpers/INamed.d.ts +6 -0
  501. package/dist/Helpers/Storage.d.ts +67 -0
  502. package/dist/Helpers/Storage.js +138 -0
  503. package/dist/Helpers/dropdownPortal.d.ts +52 -0
  504. package/dist/Helpers/dropdownPortal.js +232 -0
  505. package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
  506. package/dist/Helpers/dropdownPortal.svelte.js +5 -0
  507. package/dist/Helpers/memoiseByRow.d.ts +45 -0
  508. package/dist/Helpers/memoiseByRow.js +78 -0
  509. package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
  510. package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
  511. package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
  512. package/dist/Helpers/useTooltip.svelte.js +62 -0
  513. package/dist/Types/Examples/ExampleModal.svelte +35 -34
  514. package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
  515. package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
  516. package/dist/Types/Internal/AsyncFlag.js +1 -0
  517. package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
  518. package/dist/Types/Internal/ButtonProp.d.ts +24 -2
  519. package/dist/Types/Internal/CallbackButton.d.ts +12 -0
  520. package/dist/Types/Internal/DateChange.d.ts +8 -0
  521. package/dist/Types/Internal/DatePickerType.d.ts +5 -0
  522. package/dist/Types/Internal/DatePickerType.js +6 -1
  523. package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
  524. package/dist/Types/Internal/InputVariant.d.ts +5 -0
  525. package/dist/Types/Internal/InputVariant.js +6 -1
  526. package/dist/Types/Internal/Misc.d.ts +91 -0
  527. package/dist/Types/Internal/RefWrapper.d.ts +6 -0
  528. package/dist/Types/Internal/SelectOption.d.ts +8 -0
  529. package/dist/Types/Internal/Shape.d.ts +1 -0
  530. package/dist/Types/Internal/Shape.js +2 -1
  531. package/dist/Types/Internal/Side.d.ts +1 -0
  532. package/dist/Types/Internal/Side.js +2 -1
  533. package/dist/Types/Internal/Size.d.ts +5 -0
  534. package/dist/Types/Internal/Size.js +6 -1
  535. package/dist/Types/Internal/TabOption.d.ts +15 -5
  536. package/dist/Types/Internal/Ternary.d.ts +6 -0
  537. package/dist/Types/Internal/Ternary.js +7 -1
  538. package/dist/Types/Internal/ToastMessage.d.ts +28 -0
  539. package/dist/Types/Internal/Validity.d.ts +6 -0
  540. package/dist/Types/Internal/Validity.js +7 -1
  541. package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
  542. package/dist/Types/Internal/Variant.d.ts +5 -0
  543. package/dist/Types/Internal/Variant.js +6 -1
  544. package/dist/index.d.ts +27 -82
  545. package/dist/index.js +24 -62
  546. package/dist/scss/_basics.scss +12 -12
  547. package/dist/scss/_colours.scss +134 -134
  548. package/dist/scss/_mixins.scss +3300 -3016
  549. package/dist/scss/_motion.scss +57 -0
  550. package/dist/scss/_sizing.scss +85 -69
  551. package/dist/scss/_transitions.scss +8 -8
  552. package/dist/scss/colours.js +2 -2
  553. package/dist/scss/sizing.d.ts +9 -0
  554. package/dist/scss/sizing.js +10 -1
  555. package/package.json +6 -2
@@ -1,68 +1,91 @@
1
- <svelte:options runes />
2
-
3
- <script
4
- lang="ts"
5
- module
6
- >
7
- import { ColourSet } from '../../scss/colours.js';
8
- import { Size } from '../../Types/Internal/Size.js';
9
- import { Validity } from '../../Types/Internal/Validity.js';
10
- import { slide } from 'svelte/transition';
11
- import Action from '../Action.svelte';
12
- import Icon from '../Icon.svelte';
13
- import type { ToastProps } from './ToastProps.js';
14
- </script>
15
-
16
- <script lang="ts">
17
- let { toast, copy }: ToastProps = $props();
18
- </script>
19
-
20
- <output
21
- role={toast.result == Validity.Invalid ? 'alert' : 'status'}
22
- aria-live={toast.result == Validity.Invalid ? 'assertive' : 'polite'}
23
- class:info={toast.result == Validity.Info}
24
- class:success={toast.result == Validity.Valid}
25
- class:warning={toast.result == Validity.Warning}
26
- class:error={toast.result == Validity.Invalid}
27
- transition:slide={{ axis: 'x', duration: 500 }}
28
- >
29
- <div>
30
- <div class="noshrink">
31
- {#if toast.copyable != false && navigator.clipboard}
32
- <Action
33
- onclick={copy}
34
- icon={{ name: 'copy' }}
35
- size={Size.MediumLarge}
36
- colourSet={ColourSet.Auxiliary}
37
- />
38
- {:else}
39
- <Icon
40
- name="info"
41
- size={Size.MediumLarge}
42
- />
43
- {/if}
44
- </div>
45
- <span>{toast.message}</span>
46
- {#if toast.closeable}
47
- <div class="noshrink">
48
- <Action
49
- size={Size.MediumLarge}
50
- icon={{ name: 'cross' }}
51
- onclick={() => {
52
- toast.close?.();
53
- }}
54
- colourSet={ColourSet.Auxiliary}
55
- />
56
- </div>
57
- {/if}
58
- </div>
59
- </output>
60
-
1
+ <svelte:options runes />
2
+
3
+ <!--
4
+ @component
5
+ Single toast rendering. Renders a horizontally-sliding pill near the
6
+ bottom-right of the viewport via `ToastContainer`. The severity of the
7
+ underlying toast drives both the colouring and the live-region
8
+ semantics:
9
+
10
+ - `Validity.Invalid` -> `role="alert"`, `aria-live="assertive"`.
11
+ - All other severities -> `role="status"`, `aria-live="polite"`.
12
+
13
+ The slide transition honours `prefers-reduced-motion` through the
14
+ shared `usePrefersReducedMotion` helper; when the user has opted in
15
+ the duration collapses to zero. The copy action is only shown when
16
+ `navigator.clipboard` is present (HTTPS or `localhost`).
17
+ -->
18
+ <script
19
+ lang="ts"
20
+ module
21
+ >
22
+ import { ColourSet } from '../../scss/colours.js';
23
+ import { Size } from '../../Types/Internal/Size.js';
24
+ import { Validity } from '../../Types/Internal/Validity.js';
25
+ import { slide } from 'svelte/transition';
26
+ import Action from '../Action.svelte';
27
+ import Icon from '../Icon.svelte';
28
+ import type { ToastProps } from './ToastProps.js';
29
+ </script>
30
+
31
+ <script lang="ts">
32
+ import { usePrefersReducedMotion } from '../../Helpers/prefersReducedMotion.svelte.js';
33
+
34
+ let { toast, copy }: ToastProps = $props();
35
+
36
+ const reducedMotion = usePrefersReducedMotion();
37
+ const slideDuration = $derived(reducedMotion.matches ? 0 : 500);
38
+ </script>
39
+
40
+ <output
41
+ role={toast.result == Validity.Invalid ? 'alert' : 'status'}
42
+ aria-live={toast.result == Validity.Invalid ? 'assertive' : 'polite'}
43
+ class:info={toast.result == Validity.Info}
44
+ class:success={toast.result == Validity.Valid}
45
+ class:warning={toast.result == Validity.Warning}
46
+ class:error={toast.result == Validity.Invalid}
47
+ transition:slide={{ axis: 'x', duration: slideDuration }}
48
+ >
49
+ <div>
50
+ <div class="noshrink">
51
+ {#if toast.copyable != false && navigator.clipboard}
52
+ <Action
53
+ onclick={copy}
54
+ icon={{ name: 'copy' }}
55
+ label="Copy to clipboard"
56
+ size={Size.MediumLarge}
57
+ colourSet={ColourSet.Auxiliary}
58
+ />
59
+ {:else}
60
+ <Icon
61
+ name="info"
62
+ size={Size.MediumLarge}
63
+ />
64
+ {/if}
65
+ </div>
66
+ <span>{toast.message}</span>
67
+ {#if toast.closeable}
68
+ <div class="noshrink">
69
+ <Action
70
+ size={Size.MediumLarge}
71
+ icon={{ name: 'cross' }}
72
+ label="Dismiss"
73
+ onclick={() => {
74
+ toast.close?.();
75
+ }}
76
+ colourSet={ColourSet.Auxiliary}
77
+ />
78
+ </div>
79
+ {/if}
80
+ </div>
81
+ </output>
82
+
61
83
  <style>output {
62
84
  font-weight: 700;
63
85
  font-size: 1.125rem;
64
86
  padding: 0.75rem;
65
87
  border-radius: 4px;
88
+ max-width: var(--toast-max-width, 32rem);
66
89
  }
67
90
  output.info, output.success {
68
91
  color: #ffffff;
@@ -86,7 +109,8 @@ output > div {
86
109
  align-items: center;
87
110
  }
88
111
  output span {
89
- text-wrap: nowrap;
90
- word-break: keep-all;
91
- overflow: hidden;
92
- }</style>
112
+ word-break: break-word;
113
+ overflow-wrap: anywhere;
114
+ min-width: 0;
115
+ flex: 1 1 auto;
116
+ }</style>
@@ -1,4 +1,18 @@
1
1
  import type { ToastProps } from './ToastProps.js';
2
+ /**
3
+ * Single toast rendering. Renders a horizontally-sliding pill near the
4
+ * bottom-right of the viewport via `ToastContainer`. The severity of the
5
+ * underlying toast drives both the colouring and the live-region
6
+ * semantics:
7
+ *
8
+ * - `Validity.Invalid` -> `role="alert"`, `aria-live="assertive"`.
9
+ * - All other severities -> `role="status"`, `aria-live="polite"`.
10
+ *
11
+ * The slide transition honours `prefers-reduced-motion` through the
12
+ * shared `usePrefersReducedMotion` helper; when the user has opted in
13
+ * the duration collapses to zero. The copy action is only shown when
14
+ * `navigator.clipboard` is present (HTTPS or `localhost`).
15
+ */
2
16
  declare const Toast: import("svelte").Component<ToastProps, {}, "">;
3
17
  type Toast = ReturnType<typeof Toast>;
4
18
  export default Toast;
@@ -1,57 +1,76 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { ToastContext } from '../../Contexts/ToastContext.svelte.js';
5
- import { devCatch } from '../../Helpers/Helpers.svelte.js';
6
- import { Validity } from '../../Types/Internal/Validity.js';
7
- import { getContext } from 'svelte';
8
- import Toast from './Toast.svelte';
9
-
10
- const toastContext = getContext<ToastContext>(ToastContext.identifier);
11
-
12
- function copyDataToClipboard(text: string) {
13
- //clipboard doesn't exist in http connections. This may be redundant now but you never know
14
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
15
- if (!navigator.clipboard) {
16
- toastContext.toast({
17
- result: Validity.Invalid,
18
- message: 'Cannot Copy in an Insecure Connection',
19
- copyable: false
20
- });
21
- return;
22
- }
23
-
24
- // copy plain value
25
-
26
- navigator.clipboard.writeText(text).catch(devCatch);
27
- toastContext.toast({
28
- result: Validity.Info,
29
- message: 'Message copied to clipboard',
30
- copyable: false
31
- });
32
- }
33
- </script>
34
-
35
- <section>
36
- {#each toastContext.toasts as toast (toast)}
37
- <Toast
38
- {toast}
39
- copy={() => {
40
- copyDataToClipboard(toast.getVerbose?.() ?? toast.message);
41
- }}
42
- />
43
- {/each}
44
- </section>
45
-
1
+ <svelte:options runes />
2
+
3
+ <!--
4
+ @component
5
+ Live region for the {@link ToastContext}. Iterates the context's
6
+ queue and renders one `Toast` per message, providing the
7
+ copy-to-clipboard callback (the container owns the clipboard logic
8
+ because the toast itself only knows the message it should copy).
9
+
10
+ The wrapping `<section>` carries `role="region"` plus
11
+ `aria-live="polite"` so multiple toast appearances are announced as
12
+ a single rolling region without interrupting the user; individual
13
+ `Toast` elements override `aria-live` to `assertive` for hard errors.
14
+
15
+ Mounted once at the app root by `ContextWrapper`; consumers should
16
+ not render this directly.
17
+ -->
18
+ <script lang="ts">
19
+ import { ToastContext } from '../../Contexts/ToastContext.svelte.js';
20
+ import { devCatch } from '../../Helpers/Helpers.svelte.js';
21
+ import { Validity } from '../../Types/Internal/Validity.js';
22
+ import { getContext } from 'svelte';
23
+ import Toast from './Toast.svelte';
24
+
25
+ const toastContext = getContext<ToastContext>(ToastContext.identifier);
26
+
27
+ function copyDataToClipboard(text: string): void {
28
+ // `navigator.clipboard` is `undefined` on insecure (HTTP)
29
+ // origins and in some embedded WebViews. The compile-time
30
+ // type says it is always defined, hence the eslint disable;
31
+ // the runtime check is the load-bearing one.
32
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
33
+ if (!navigator.clipboard) {
34
+ toastContext.toast({
35
+ result: Validity.Invalid,
36
+ message: 'Cannot Copy in an Insecure Connection',
37
+ copyable: false,
38
+ });
39
+ return;
40
+ }
41
+
42
+ navigator.clipboard.writeText(text).catch(devCatch);
43
+ toastContext.toast({
44
+ result: Validity.Info,
45
+ message: 'Message copied to clipboard',
46
+ copyable: false,
47
+ });
48
+ }
49
+ </script>
50
+
51
+ <section
52
+ aria-live="polite"
53
+ aria-label="Notifications"
54
+ >
55
+ {#each toastContext.toasts as toast (toast.id)}
56
+ <Toast
57
+ {toast}
58
+ copy={() => {
59
+ copyDataToClipboard(toast.getVerbose?.() ?? toast.message);
60
+ }}
61
+ />
62
+ {/each}
63
+ </section>
64
+
46
65
  <style>section {
47
66
  user-select: none;
48
67
  gap: 0.5rem;
49
- bottom: 8rem;
50
- right: 2rem;
68
+ bottom: var(--toast-bottom, 8rem);
69
+ right: var(--toast-right, 2rem);
51
70
  display: flex;
52
71
  position: fixed;
53
72
  flex-flow: column-reverse nowrap;
54
73
  justify-content: flex-end;
55
74
  align-items: flex-end;
56
- z-index: 9999;
57
- }</style>
75
+ z-index: 99999;
76
+ }</style>
@@ -1,3 +1,17 @@
1
+ /**
2
+ * Live region for the {@link ToastContext}. Iterates the context's
3
+ * queue and renders one `Toast` per message, providing the
4
+ * copy-to-clipboard callback (the container owns the clipboard logic
5
+ * because the toast itself only knows the message it should copy).
6
+ *
7
+ * The wrapping `<section>` carries `role="region"` plus
8
+ * `aria-live="polite"` so multiple toast appearances are announced as
9
+ * a single rolling region without interrupting the user; individual
10
+ * `Toast` elements override `aria-live` to `assertive` for hard errors.
11
+ *
12
+ * Mounted once at the app root by `ContextWrapper`; consumers should
13
+ * not render this directly.
14
+ */
1
15
  declare const ToastContainer: import("svelte").Component<Record<string, never>, {}, "">;
2
16
  type ToastContainer = ReturnType<typeof ToastContainer>;
3
17
  export default ToastContainer;
@@ -1,5 +1,18 @@
1
1
  import type { IdentifiableToastMessage } from '../../Types/Internal/IdentifiableToastMessage.js';
2
+ /**
3
+ * Props for {@link Toast}.
4
+ *
5
+ * `Toast` is the per-message renderer used by `ToastContainer`. The
6
+ * container provides the `copy` callback because copy-to-clipboard is
7
+ * a host-level concern (the host knows which message text or verbose
8
+ * representation to write).
9
+ */
2
10
  export interface ToastProps {
11
+ /** The toast message and metadata to render. */
3
12
  toast: IdentifiableToastMessage;
4
- copy: () => void;
13
+ /**
14
+ * Click handler for the copy action. Allowed to return a promise
15
+ * so callers can await the underlying `navigator.clipboard.writeText`.
16
+ */
17
+ copy: () => void | Promise<void>;
5
18
  }
@@ -1,43 +1,54 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { TooltipContext } from '../../Contexts/TooltipContext.svelte.js';
5
- import { Side } from '../../Types/Internal/Side.js';
6
- import { getContext } from 'svelte';
7
- const tooltipContext = getContext<TooltipContext>(TooltipContext.identifier);
8
- </script>
9
-
10
- {#if tooltipContext.isShowingTooltip}
11
- <div
12
- role="tooltip"
13
- style="--y: {tooltipContext.y}px; --x: {tooltipContext.x}px;"
14
- class="tooltip-wrapper"
15
- class:top-arrow={tooltipContext.anchor === Side.Top}
16
- class:bottom-arrow={tooltipContext.anchor === Side.Bottom}
17
- class:left-arrow={tooltipContext.anchor === Side.Left}
18
- class:right-arrow={tooltipContext.anchor === Side.Right}
19
- >
20
- <div class="tooltip">
21
- {tooltipContext.text}
22
- </div>
23
- </div>
24
- {/if}
25
-
1
+ <svelte:options runes />
2
+
3
+ <!--
4
+ @component
5
+ Visual host for `TooltipContext`. Renders a fixed-position tooltip at
6
+ the coordinates the context exposes, with a CSS arrow that points
7
+ back toward the anchored element on the configured side.
8
+
9
+ The tooltip just appears and disappears; no transition is applied,
10
+ which is the conservative choice for `prefers-reduced-motion`. Reads
11
+ the context with `getContext` and relies on `ContextWrapper` to have
12
+ set it up at the app root.
13
+ -->
14
+ <script lang="ts">
15
+ import { TooltipContext } from '../../Contexts/TooltipContext.svelte.js';
16
+ import { Side } from '../../Types/Internal/Side.js';
17
+ import { getContext } from 'svelte';
18
+ const tooltipContext = getContext<TooltipContext>(TooltipContext.identifier);
19
+ </script>
20
+
21
+ {#if tooltipContext.isShowingTooltip}
22
+ <div
23
+ role="tooltip"
24
+ style="--y: {tooltipContext.y}px; --x: {tooltipContext.x}px;"
25
+ class="tooltip-wrapper"
26
+ class:top-arrow={tooltipContext.anchor === Side.Top}
27
+ class:bottom-arrow={tooltipContext.anchor === Side.Bottom}
28
+ class:left-arrow={tooltipContext.anchor === Side.Left}
29
+ class:right-arrow={tooltipContext.anchor === Side.Right}
30
+ >
31
+ <div class="tooltip">
32
+ {tooltipContext.text}
33
+ </div>
34
+ </div>
35
+ {/if}
36
+
26
37
  <style>.tooltip-wrapper {
27
38
  position: fixed;
28
- z-index: 9999;
39
+ z-index: 99999;
29
40
  border-radius: 4px;
30
- background-color: black;
31
- color: white;
32
- box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1333333333);
41
+ background-color: #3a4952;
42
+ color: #ffffff;
43
+ box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.13);
33
44
  border: solid 2px #dae0e5;
34
45
  }
35
46
  .tooltip-wrapper .tooltip {
36
47
  padding: 0.5rem;
37
- background-color: black;
48
+ background-color: #3a4952;
38
49
  border-radius: 4px;
39
50
  font-weight: 500;
40
- white-space: preserve;
51
+ white-space: pre-wrap;
41
52
  }
42
53
  .tooltip-wrapper.top-arrow {
43
54
  left: var(--x, 0);
@@ -54,7 +65,7 @@
54
65
  left: 50%;
55
66
  translate: -50% -50%;
56
67
  transform: rotate(45deg);
57
- background-color: black;
68
+ background-color: #3a4952;
58
69
  border: solid 2px #dae0e5;
59
70
  }
60
71
  .tooltip-wrapper.bottom-arrow {
@@ -72,7 +83,7 @@
72
83
  left: 50%;
73
84
  translate: -50% -50%;
74
85
  transform: rotate(45deg);
75
- background-color: black;
86
+ background-color: #3a4952;
76
87
  border: solid 2px #dae0e5;
77
88
  }
78
89
  .tooltip-wrapper.left-arrow {
@@ -90,7 +101,7 @@
90
101
  left: 0;
91
102
  translate: -50% -50%;
92
103
  transform: rotate(45deg);
93
- background-color: black;
104
+ background-color: #3a4952;
94
105
  border: solid 2px #dae0e5;
95
106
  }
96
107
  .tooltip-wrapper.right-arrow {
@@ -108,6 +119,6 @@
108
119
  left: 100%;
109
120
  translate: -50% -50%;
110
121
  transform: rotate(45deg);
111
- background-color: black;
122
+ background-color: #3a4952;
112
123
  border: solid 2px #dae0e5;
113
- }</style>
124
+ }</style>
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Visual host for `TooltipContext`. Renders a fixed-position tooltip at
3
+ * the coordinates the context exposes, with a CSS arrow that points
4
+ * back toward the anchored element on the configured side.
5
+ *
6
+ * The tooltip just appears and disappears; no transition is applied,
7
+ * which is the conservative choice for `prefers-reduced-motion`. Reads
8
+ * the context with `getContext` and relies on `ContextWrapper` to have
9
+ * set it up at the app root.
10
+ */
1
11
  declare const Tooltip: import("svelte").Component<Record<string, never>, {}, "">;
2
12
  type Tooltip = ReturnType<typeof Tooltip>;
3
13
  export default Tooltip;
@@ -1,43 +1,114 @@
1
- <svelte:options runes />
2
-
3
- <script lang="ts">
4
- import { passthrough } from '../Helpers/Helpers.svelte.js';
5
- import type { DataMatrixIconProps } from './DataMatrixIconProps.js';
6
-
7
- const { icon, interactive = false, title, oncontextmenu }: DataMatrixIconProps = $props();
8
-
9
- let svgContainer = $state<HTMLDivElement | null>(null);
10
-
11
- $effect(() => {
12
- if (svgContainer != null) {
13
- // eslint-disable-next-line svelte/no-dom-manipulating
14
- svgContainer.innerHTML = '';
15
- icon.setAttribute('width', '64');
16
- icon.setAttribute('height', '64');
17
- // eslint-disable-next-line svelte/no-dom-manipulating
18
- svgContainer.appendChild(icon);
19
- }
20
- });
21
- </script>
22
-
23
- {#if interactive}
24
- <button
25
- aria-label="Edit Barcode Value"
26
- onkeydown={passthrough}
27
- title="Right click to edit barcode value for the {title} command"
28
- oncontextmenu={(e) => {
29
- if (oncontextmenu) {
30
- e.preventDefault();
31
- oncontextmenu(e);
32
- }
33
- }}
34
- >
35
- <div class="fit" bind:this={svgContainer}></div>
36
- </button>
37
- {:else}
38
- <div class="fit" bind:this={svgContainer}></div>
39
- {/if}
40
-
1
+ <svelte:options runes />
2
+
3
+ <script lang="ts">
4
+ import { passthrough } from '../Helpers/Helpers.svelte.js';
5
+ import type { DataMatrixIconProps } from './DataMatrixIconProps.js';
6
+ import Icon from './Icon.svelte';
7
+
8
+ const {
9
+ icon,
10
+ interactive = false,
11
+ title,
12
+ oncontextmenu,
13
+ ariaLabel = 'Edit Barcode Value',
14
+ }: DataMatrixIconProps = $props();
15
+
16
+ let svgContainer = $state<HTMLDivElement | null>(null);
17
+
18
+ // Track the last SVG we mounted so the effect only re-runs when the
19
+ // underlying SVG identity changes. Repeated parent renders that hand
20
+ // back the same node should NOT force a DOM replacement; each replace
21
+ // forces layout, which becomes expensive with many barcodes on a screen.
22
+ let lastSvg: SVGSVGElement | undefined = undefined;
23
+
24
+ /**
25
+ * Defensively sanitise the SVG before mounting it.
26
+ *
27
+ * SECURITY: although the prop is branded `DataMatrixSvg` to discourage
28
+ * arbitrary callers, the brand is type-only. As defence in depth we
29
+ * strip `<script>` nodes plus any `on*` / `href` / `xlink:href`
30
+ * attributes from the cloned tree before it enters the document. This
31
+ * neutralises stored-XSS sinks (`<script>`, `<image href="javascript:...">`,
32
+ * inline event handlers) without depending on caller discipline.
33
+ */
34
+ function sanitiseSvg(node: SVGSVGElement): void {
35
+ node.querySelectorAll('script').forEach((s) => {
36
+ s.remove();
37
+ });
38
+ node.querySelectorAll('*').forEach((el) => {
39
+ for (const attr of [...el.attributes]) {
40
+ const lower = attr.name.toLowerCase();
41
+ if (lower.startsWith('on') || lower === 'href' || lower === 'xlink:href') {
42
+ el.removeAttribute(attr.name);
43
+ }
44
+ }
45
+ });
46
+ }
47
+
48
+ $effect(() => {
49
+ if (icon.kind !== 'svg') {
50
+ // icon-props branch renders an <Icon> below; nothing for the
51
+ // SVG mount effect to do, and we clear the stale mount so a
52
+ // later toggle back to kind: 'svg' re-mounts correctly.
53
+ if (svgContainer != null && lastSvg !== undefined) {
54
+ // Mirror of the mount path below; `replaceChildren()` is the
55
+ // cheapest way to detach the previously cloned SVG.
56
+ // eslint-disable-next-line svelte/no-dom-manipulating
57
+ svgContainer.replaceChildren();
58
+ lastSvg = undefined;
59
+ }
60
+ return;
61
+ }
62
+ const source = icon.svg;
63
+ if (svgContainer != null && source !== lastSvg) {
64
+ // Clone so we never mutate the consumer-supplied node. If the
65
+ // same SVG is rendered into multiple DataMatrixIcon instances or
66
+ // reused elsewhere the original keeps its original attributes.
67
+ const local = source.cloneNode(true) as SVGSVGElement;
68
+ sanitiseSvg(local);
69
+ local.setAttribute('width', '64');
70
+ local.setAttribute('height', '64');
71
+ // `replaceChildren` is cheaper than `innerHTML = ''` + `appendChild`:
72
+ // it skips the HTML parse step and only touches the child list.
73
+ // eslint-disable-next-line svelte/no-dom-manipulating
74
+ svgContainer.replaceChildren(local);
75
+ lastSvg = source;
76
+ }
77
+ });
78
+ </script>
79
+
80
+ {#if interactive}
81
+ <button
82
+ aria-label={ariaLabel}
83
+ onkeydown={passthrough}
84
+ title="Right click to edit barcode value for the {title} command"
85
+ oncontextmenu={(e) => {
86
+ if (oncontextmenu) {
87
+ e.preventDefault();
88
+ oncontextmenu(e);
89
+ }
90
+ }}
91
+ >
92
+ <div
93
+ class="fit"
94
+ bind:this={svgContainer}
95
+ >
96
+ {#if icon.kind === 'icon-props'}
97
+ <Icon {...icon.iconProps} />
98
+ {/if}
99
+ </div>
100
+ </button>
101
+ {:else}
102
+ <div
103
+ class="fit"
104
+ bind:this={svgContainer}
105
+ >
106
+ {#if icon.kind === 'icon-props'}
107
+ <Icon {...icon.iconProps} />
108
+ {/if}
109
+ </div>
110
+ {/if}
111
+
41
112
  <style>button {
42
113
  display: contents;
43
114
  cursor: pointer;
@@ -46,5 +117,5 @@
46
117
  div.fit {
47
118
  background-color: #ffffff;
48
119
  display: flex;
49
- padding: 8px;
50
- }</style>
120
+ padding: 0.5rem;
121
+ }</style>