@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,21 +1,49 @@
1
1
  import { refWrapper } from '../Helpers/Helpers.svelte.js';
2
2
  import { untrack } from 'svelte';
3
+ /**
4
+ * Test-only fixture context demonstrating the `RefWrapper` +
5
+ * derived-effect pattern used elsewhere in scoria.
6
+ *
7
+ * Not part of the shipped public surface and not mounted by
8
+ * `ContextWrapper`. For a canonical context to copy from, see
9
+ * `AlertContext`, `ToastContext`, or `TooltipContext`.
10
+ *
11
+ * Non-canonical patterns intentionally present:
12
+ * - The `value2` field is initialised via `useTestEffect(value1)`
13
+ * which calls `$effect`. `$effect` requires an active effect
14
+ * scope. In real code, construct the context lazily inside the
15
+ * consuming component (or `$effect.root`).
16
+ * - The setters on `value1`/`value2` are public for test
17
+ * ergonomics. Real contexts keep their setters private.
18
+ */
3
19
  export class TestContext {
20
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
4
21
  static identifier = Symbol();
5
22
  _value1 = $state(refWrapper(0));
23
+ /** Test-driver-visible reactive cell. */
6
24
  get value1() {
7
25
  return this._value1;
8
26
  }
9
27
  set value1(v) {
10
28
  this._value1 = v;
11
29
  }
12
- _value2 = $state(this.useTestEffect(this.value1));
30
+ _value2;
31
+ /** Derived counter; accumulates `value1` whenever it is divisible by three. */
13
32
  get value2() {
14
33
  return this._value2;
15
34
  }
16
35
  set value2(v) {
17
36
  this._value2 = v;
18
37
  }
38
+ constructor() {
39
+ this._value2 = this.useTestEffect(this._value1);
40
+ }
41
+ /**
42
+ * Returns a `RefWrapper<number>` that accumulates the input
43
+ * `RefWrapper`'s `value` whenever the input becomes divisible by
44
+ * three. `untrack` keeps the write off the reactive dependency
45
+ * graph so the effect does not self-trigger.
46
+ */
19
47
  useTestEffect(sourceValue) {
20
48
  const internalState = refWrapper(0);
21
49
  $effect(() => {
@@ -1,9 +1,37 @@
1
1
  import type { IdentifiableToastMessage } from '../Types/Internal/IdentifiableToastMessage.js';
2
+ /**
3
+ * Application context driving the global `ToastContainer` host.
4
+ *
5
+ * The id counter is an instance field so multiple contexts (e.g.
6
+ * tests or HMR-reloaded hosts) do not collide. Verbose copy output
7
+ * (stack trace, cause chain) is gated on `$app/environment.dev`
8
+ * so production users cannot leak backend internals to the
9
+ * clipboard.
10
+ */
2
11
  export declare class ToastContext {
12
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
3
13
  static readonly identifier: unique symbol;
14
+ private idIncrement;
4
15
  private _toasts;
5
- get toasts(): Array<IdentifiableToastMessage>;
16
+ /**
17
+ * The currently visible toasts. Returned as a `ReadonlyArray` so
18
+ * consumers cannot mutate the internal queue; use {@link ToastContext.toast}
19
+ * to add and `IdentifiableToastMessage.close` to remove.
20
+ */
21
+ get toasts(): ReadonlyArray<IdentifiableToastMessage>;
6
22
  private set toasts(value);
23
+ private readonly timeoutHandles;
24
+ /**
25
+ * Queues a toast for display. Accepts `string`, `ReadonlyArray<string>`,
26
+ * `Error`, {@link ToastMessage}, the wrapped HTTP response shape, or
27
+ * anything else (rendered as "Unknown Error"). `null` / `undefined`
28
+ * are silently dropped.
29
+ */
7
30
  readonly toast: (message: unknown) => void;
31
+ /**
32
+ * Removes the toast with the given id from the visible queue and
33
+ * clears any pending auto-dismiss timer so the closure does not
34
+ * leak.
35
+ */
8
36
  private dismiss;
9
37
  }
@@ -1,6 +1,12 @@
1
+ import { dev } from '$app/environment';
1
2
  import { getErrorMessage } from '../Helpers/Helpers.svelte.js';
2
3
  import { Validity } from '../Types/Internal/Validity.js';
3
- let idIncrement = 0;
4
+ /**
5
+ * Narrows an unknown value to a wrapped-HTTP-response shape:
6
+ * `{ payload: { data: string } }`. Used by {@link ToastContext.toast}
7
+ * so that consumers can pass an unwrapped service response straight
8
+ * into the toast layer without an explicit cast.
9
+ */
4
10
  function isWrappedResponse(message) {
5
11
  return (message != null &&
6
12
  typeof message == 'object' &&
@@ -10,23 +16,73 @@ function isWrappedResponse(message) {
10
16
  'data' in message.payload &&
11
17
  typeof message.payload.data == 'string');
12
18
  }
19
+ /**
20
+ * Narrows an object to {@link ToastMessage}: requires both a `result`
21
+ * field that is a recognised {@link Validity} value and a `message`
22
+ * field of type `string`. Previously this guard accepted any object
23
+ * with a `result` property; tightened to actually validate the shape.
24
+ */
25
+ function isToastMessage(message) {
26
+ if (!('result' in message) || !('message' in message)) {
27
+ return false;
28
+ }
29
+ const m = message;
30
+ if (typeof m.message !== 'string') {
31
+ return false;
32
+ }
33
+ return (m.result === Validity.Invalid ||
34
+ m.result === Validity.Valid ||
35
+ m.result === Validity.Info ||
36
+ m.result === Validity.Warning ||
37
+ m.result === Validity.Neutral);
38
+ }
39
+ /**
40
+ * Default per-toast lifetime in milliseconds. Mirrors the value
41
+ * referenced from `ToastMessage.timeout` JSDoc.
42
+ */
43
+ const DEFAULT_TOAST_TIMEOUT_MS = 10000;
44
+ /**
45
+ * Application context driving the global `ToastContainer` host.
46
+ *
47
+ * The id counter is an instance field so multiple contexts (e.g.
48
+ * tests or HMR-reloaded hosts) do not collide. Verbose copy output
49
+ * (stack trace, cause chain) is gated on `$app/environment.dev`
50
+ * so production users cannot leak backend internals to the
51
+ * clipboard.
52
+ */
13
53
  export class ToastContext {
54
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
14
55
  static identifier = Symbol();
56
+ idIncrement = 0;
15
57
  _toasts = $state([]);
58
+ /**
59
+ * The currently visible toasts. Returned as a `ReadonlyArray` so
60
+ * consumers cannot mutate the internal queue; use {@link ToastContext.toast}
61
+ * to add and `IdentifiableToastMessage.close` to remove.
62
+ */
16
63
  get toasts() {
17
64
  return this._toasts;
18
65
  }
19
66
  set toasts(v) {
20
- this._toasts = v;
67
+ this._toasts = [...v];
21
68
  }
69
+ // The handles map is non-reactive bookkeeping; SvelteMap would just add overhead.
70
+ // eslint-disable-next-line svelte/prefer-svelte-reactivity
71
+ timeoutHandles = new Map();
72
+ /**
73
+ * Queues a toast for display. Accepts `string`, `ReadonlyArray<string>`,
74
+ * `Error`, {@link ToastMessage}, the wrapped HTTP response shape, or
75
+ * anything else (rendered as "Unknown Error"). `null` / `undefined`
76
+ * are silently dropped.
77
+ */
22
78
  toast = (message) => {
23
79
  if (message == null) {
24
80
  return;
25
81
  }
26
- const id = idIncrement++;
82
+ const id = this.idIncrement++;
27
83
  const newMessage = (() => {
28
84
  const closeable = true;
29
- const timeout = 10000;
85
+ const timeout = DEFAULT_TOAST_TIMEOUT_MS;
30
86
  if (Array.isArray(message)) {
31
87
  return {
32
88
  result: Validity.Info,
@@ -68,8 +124,8 @@ export class ToastContext {
68
124
  },
69
125
  getVerbose: () => getErrorMessage(message, {
70
126
  includeUUID: true,
71
- includeCause: true,
72
- includeStack: true,
127
+ includeCause: dev,
128
+ includeStack: dev,
73
129
  }),
74
130
  };
75
131
  }
@@ -86,18 +142,18 @@ export class ToastContext {
86
142
  },
87
143
  };
88
144
  }
89
- }
90
- if (isWrappedResponse(message)) {
91
- return {
92
- result: Validity.Info,
93
- closeable,
94
- timeout,
95
- message: message.payload.data,
96
- id,
97
- close: () => {
98
- this.dismiss(id);
99
- },
100
- };
145
+ if (isWrappedResponse(message)) {
146
+ return {
147
+ result: Validity.Info,
148
+ closeable,
149
+ timeout,
150
+ message: message.payload.data,
151
+ id,
152
+ close: () => {
153
+ this.dismiss(id);
154
+ },
155
+ };
156
+ }
101
157
  }
102
158
  return {
103
159
  result: Validity.Invalid,
@@ -108,17 +164,33 @@ export class ToastContext {
108
164
  close: () => {
109
165
  this.dismiss(id);
110
166
  },
111
- getVerbose: () => getErrorMessage(message),
167
+ getVerbose: () => getErrorMessage(message, {
168
+ includeUUID: true,
169
+ includeCause: dev,
170
+ includeStack: dev,
171
+ }),
112
172
  };
113
173
  })();
114
- this.toasts.push(newMessage);
174
+ this._toasts.push(newMessage);
115
175
  if (newMessage.timeout) {
116
- setTimeout(() => {
176
+ const handle = setTimeout(() => {
177
+ this.timeoutHandles.delete(newMessage.id);
117
178
  this.dismiss(newMessage.id);
118
179
  }, newMessage.timeout);
180
+ this.timeoutHandles.set(newMessage.id, handle);
119
181
  }
120
182
  };
183
+ /**
184
+ * Removes the toast with the given id from the visible queue and
185
+ * clears any pending auto-dismiss timer so the closure does not
186
+ * leak.
187
+ */
121
188
  dismiss(id) {
189
+ const handle = this.timeoutHandles.get(id);
190
+ if (handle !== undefined) {
191
+ clearTimeout(handle);
192
+ this.timeoutHandles.delete(id);
193
+ }
122
194
  const index = this._toasts.findIndex((it) => it.id === id);
123
195
  if (index != -1) {
124
196
  const [removed] = this._toasts.splice(index, 1);
@@ -126,6 +198,3 @@ export class ToastContext {
126
198
  }
127
199
  }
128
200
  }
129
- function isToastMessage(message) {
130
- return 'result' in message;
131
- }
@@ -1,31 +1,98 @@
1
1
  import type { Delay } from '../Delay/Delay.js';
2
2
  import { Side } from '../Types/Internal/Side.js';
3
+ /**
4
+ * Application context driving the global `Tooltip` host.
5
+ *
6
+ * The visual host (`Components/Contexts/Tooltip.svelte`, mounted by
7
+ * `Components/Base/ContextWrapper.svelte`) listens to `x`, `y`,
8
+ * `text`, `anchor`, and `isShowingTooltip` and renders the tooltip
9
+ * accordingly. Consumers (Button, Action, NavTab, ...) call
10
+ * {@link TooltipContext.showTooltip} on `mouseenter`/`focus` and
11
+ * {@link TooltipContext.hideTooltip} on `mouseleave`/`blur`/`click`
12
+ * and on component unmount.
13
+ *
14
+ * Conforms to the canonical scoria context pattern:
15
+ * - `static readonly identifier = Symbol()`.
16
+ * - Private runes-backed fields exposed via getter / private setter.
17
+ *
18
+ * Stale-tooltip cleanup contract: consumers are responsible for
19
+ * calling `hideTooltip` in their unmount handler when they have
20
+ * called `showTooltip` and the user has not yet moved focus or
21
+ * mouse away. Without this, a component that unmounts mid-hover
22
+ * leaves its tooltip visible indefinitely.
23
+ */
3
24
  export declare class TooltipContext {
25
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
4
26
  static readonly identifier: unique symbol;
5
27
  private _x;
28
+ /** Tooltip x-coordinate in viewport-relative CSS pixels. */
6
29
  get x(): number;
7
30
  private set x(value);
8
31
  private _y;
32
+ /** Tooltip y-coordinate in viewport-relative CSS pixels. */
9
33
  get y(): number;
10
34
  private set y(value);
11
35
  private _text;
36
+ /**
37
+ * The text currently shown in the tooltip. `undefined` when the
38
+ * tooltip is hidden.
39
+ */
12
40
  get text(): string | undefined;
13
41
  private set text(value);
14
42
  private _anchor;
43
+ /** The side of the anchor element the tooltip arrow points to. */
15
44
  get anchor(): Side;
16
45
  private set anchor(value);
17
46
  private _isShowingTooltip;
47
+ /**
48
+ * Whether the visual host should render. The host treats this as
49
+ * a strict "draw / do not draw" toggle.
50
+ */
18
51
  get isShowingTooltip(): boolean;
19
52
  private set isShowingTooltip(value);
53
+ /**
54
+ * Tracks the pending show-tooltip debounce timer. Initialised to
55
+ * the sentinel value `undefined`; `clearTimeout(undefined)` is a
56
+ * documented no-op.
57
+ */
20
58
  private timeout;
59
+ /**
60
+ * Requests that the tooltip be shown with the given text, anchor
61
+ * side, and bounding rectangle. The actual draw is delayed by
62
+ * `props.delay` (typically `Delay.Default`) so transient hovers
63
+ * do not flash a tooltip.
64
+ *
65
+ * Any pending show-timer is cleared before scheduling the new
66
+ * one, so rapid hover transitions cancel cleanly.
67
+ */
21
68
  readonly showTooltip: (props: TooltipProps) => void;
22
- hideTooltip: (value: string) => void;
69
+ /**
70
+ * Hides the tooltip if its current text matches the given value.
71
+ * The text-compare is a structural race-guard: when two
72
+ * consumers race show/hide on different labels, the wrong
73
+ * consumer's `hideTooltip` does not clobber the right
74
+ * consumer's `showTooltip`.
75
+ *
76
+ * Note: a future migration may switch this to a handle-based
77
+ * API returning an `Unsubscriber` from `showTooltip`. Tracked
78
+ * in the TooltipContext workorder.
79
+ */
80
+ readonly hideTooltip: (value: string) => void;
23
81
  }
82
+ /**
83
+ * Configuration accepted by {@link TooltipContext.showTooltip}.
84
+ */
24
85
  export interface TooltipProps {
86
+ /** The visible tooltip text. */
25
87
  text: string;
88
+ /** Bounding rect of the anchor element (in viewport-relative pixels). */
26
89
  rect: DOMRect;
90
+ /** The side of the anchor the arrow points to. */
27
91
  arrow: Side;
92
+ /** Optional show-delay in milliseconds. */
28
93
  delay?: Delay;
94
+ /** Optional additional x-offset applied after anchor maths. */
29
95
  offsetX?: number;
96
+ /** Optional additional y-offset applied after anchor maths. */
30
97
  offsetY?: number;
31
98
  }
@@ -1,7 +1,38 @@
1
1
  import { Side } from '../Types/Internal/Side.js';
2
+ /**
3
+ * CSS arrow-half-width in pixels. Matches the `border-width` set
4
+ * on the `.arrow` pseudo-element in `Tooltip.svelte`. Centralised
5
+ * here so the layout maths and the visual styling cannot drift
6
+ * silently. When updating, also update the matching value in
7
+ * `Components/Contexts/Tooltip.svelte`.
8
+ */
9
+ const ARROW_HALF_WIDTH_PX = 6;
10
+ /**
11
+ * Application context driving the global `Tooltip` host.
12
+ *
13
+ * The visual host (`Components/Contexts/Tooltip.svelte`, mounted by
14
+ * `Components/Base/ContextWrapper.svelte`) listens to `x`, `y`,
15
+ * `text`, `anchor`, and `isShowingTooltip` and renders the tooltip
16
+ * accordingly. Consumers (Button, Action, NavTab, ...) call
17
+ * {@link TooltipContext.showTooltip} on `mouseenter`/`focus` and
18
+ * {@link TooltipContext.hideTooltip} on `mouseleave`/`blur`/`click`
19
+ * and on component unmount.
20
+ *
21
+ * Conforms to the canonical scoria context pattern:
22
+ * - `static readonly identifier = Symbol()`.
23
+ * - Private runes-backed fields exposed via getter / private setter.
24
+ *
25
+ * Stale-tooltip cleanup contract: consumers are responsible for
26
+ * calling `hideTooltip` in their unmount handler when they have
27
+ * called `showTooltip` and the user has not yet moved focus or
28
+ * mouse away. Without this, a component that unmounts mid-hover
29
+ * leaves its tooltip visible indefinitely.
30
+ */
2
31
  export class TooltipContext {
32
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
3
33
  static identifier = Symbol();
4
34
  _x = $state(0);
35
+ /** Tooltip x-coordinate in viewport-relative CSS pixels. */
5
36
  get x() {
6
37
  return this._x;
7
38
  }
@@ -9,6 +40,7 @@ export class TooltipContext {
9
40
  this._x = v;
10
41
  }
11
42
  _y = $state(0);
43
+ /** Tooltip y-coordinate in viewport-relative CSS pixels. */
12
44
  get y() {
13
45
  return this._y;
14
46
  }
@@ -16,6 +48,10 @@ export class TooltipContext {
16
48
  this._y = v;
17
49
  }
18
50
  _text = $state();
51
+ /**
52
+ * The text currently shown in the tooltip. `undefined` when the
53
+ * tooltip is hidden.
54
+ */
19
55
  get text() {
20
56
  return this._text;
21
57
  }
@@ -23,6 +59,7 @@ export class TooltipContext {
23
59
  this._text = v;
24
60
  }
25
61
  _anchor = $state(Side.Top);
62
+ /** The side of the anchor element the tooltip arrow points to. */
26
63
  get anchor() {
27
64
  return this._anchor;
28
65
  }
@@ -30,27 +67,41 @@ export class TooltipContext {
30
67
  this._anchor = v;
31
68
  }
32
69
  _isShowingTooltip = $state(false);
70
+ /**
71
+ * Whether the visual host should render. The host treats this as
72
+ * a strict "draw / do not draw" toggle.
73
+ */
33
74
  get isShowingTooltip() {
34
75
  return this._isShowingTooltip;
35
76
  }
36
77
  set isShowingTooltip(v) {
37
78
  this._isShowingTooltip = v;
38
79
  }
39
- timeout = -1;
80
+ /**
81
+ * Tracks the pending show-tooltip debounce timer. Initialised to
82
+ * the sentinel value `undefined`; `clearTimeout(undefined)` is a
83
+ * documented no-op.
84
+ */
85
+ timeout = undefined;
86
+ /**
87
+ * Requests that the tooltip be shown with the given text, anchor
88
+ * side, and bounding rectangle. The actual draw is delayed by
89
+ * `props.delay` (typically `Delay.Default`) so transient hovers
90
+ * do not flash a tooltip.
91
+ *
92
+ * Any pending show-timer is cleared before scheduling the new
93
+ * one, so rapid hover transitions cancel cleanly.
94
+ */
40
95
  showTooltip = (props) => {
41
96
  clearTimeout(this.timeout);
42
- if (this.isShowingTooltip) {
43
- this.isShowingTooltip = false;
44
- this.text = undefined;
45
- }
46
97
  this.text = props.text;
47
98
  this.anchor = props.arrow;
48
99
  const totalOffsetX = (props.offsetX ?? 0) +
49
100
  (props.arrow === Side.Top || props.arrow === Side.Bottom
50
101
  ? props.rect.width / 2
51
102
  : props.arrow === Side.Right
52
- ? -6 // arrow width
53
- : props.rect.width + 6); // arrow width
103
+ ? -ARROW_HALF_WIDTH_PX
104
+ : props.rect.width + ARROW_HALF_WIDTH_PX);
54
105
  const totalOffsetY = (props.offsetY ?? 0) +
55
106
  (props.arrow === Side.Left || props.arrow === Side.Right
56
107
  ? props.rect.height / 2
@@ -68,9 +119,21 @@ export class TooltipContext {
68
119
  this.isShowingTooltip = true;
69
120
  }
70
121
  };
122
+ /**
123
+ * Hides the tooltip if its current text matches the given value.
124
+ * The text-compare is a structural race-guard: when two
125
+ * consumers race show/hide on different labels, the wrong
126
+ * consumer's `hideTooltip` does not clobber the right
127
+ * consumer's `showTooltip`.
128
+ *
129
+ * Note: a future migration may switch this to a handle-based
130
+ * API returning an `Unsubscriber` from `showTooltip`. Tracked
131
+ * in the TooltipContext workorder.
132
+ */
71
133
  hideTooltip = (value) => {
72
134
  if (this.text === value) {
73
135
  clearTimeout(this.timeout);
136
+ this.timeout = undefined;
74
137
  this.isShowingTooltip = false;
75
138
  this.text = undefined;
76
139
  }
@@ -1,16 +1,65 @@
1
- export type StringCallback = (value: string) => boolean | Promise<boolean>;
2
1
  import type { Unsubscriber } from '../Types/Internal/Misc.js';
2
+ /**
3
+ * Callback signature accepted by
4
+ * {@link UntypedInputContext.registerListener}. Returns - or
5
+ * resolves to - `true` to stop propagation, `false` to continue
6
+ * the chain.
7
+ */
8
+ export type UntypedInputListener = (value: string) => boolean | Promise<boolean>;
9
+ /**
10
+ * Legacy alias for {@link UntypedInputListener}. Prefer
11
+ * `UntypedInputListener` in new code; this re-export is kept for
12
+ * backwards compatibility with existing consumers.
13
+ */
14
+ export type StringCallback = UntypedInputListener;
15
+ /**
16
+ * Application context that buffers global keystrokes so a hardware
17
+ * barcode scanner (which delivers each character as a synthesised
18
+ * `keydown` and terminates with Enter) can be treated as a single
19
+ * "command" without occupying a visible focusable input.
20
+ *
21
+ * Security model:
22
+ * - Treats any sequence of keydowns terminated by `Enter`, while
23
+ * focus is not inside an `INPUT`/`TEXTAREA`/`BUTTON`/`A`, as a
24
+ * trusted command.
25
+ * - Synthetic events (`e.isTrusted === false`) are ignored to
26
+ * blunt the easiest attack vector.
27
+ * - Listeners are run from most-recently registered to oldest,
28
+ * and may short-circuit by returning `true`.
29
+ */
3
30
  export declare class UntypedInputContext {
4
- private debug;
5
- constructor(debug?: boolean);
31
+ private readonly debug;
32
+ /** Stable lookup symbol used by `getContext`/`setContext`. */
6
33
  static readonly identifier: unique symbol;
34
+ /**
35
+ * @param debug - When `true`, internal state transitions are
36
+ * logged via `console.log`.
37
+ */
38
+ constructor(debug?: boolean);
7
39
  private readonly registeredListeners;
8
- readonly registerListener: (listener: StringCallback) => Unsubscriber;
40
+ /**
41
+ * Registers a listener to receive each fully-buffered untyped
42
+ * value. Returns an {@link Unsubscriber} that removes it again.
43
+ */
44
+ readonly registerListener: (listener: UntypedInputListener) => Unsubscriber;
45
+ /**
46
+ * Fires the registered listeners in reverse-registration order
47
+ * with the current untyped value. Snapshots the listener array
48
+ * before iterating so a listener that mutates the registration
49
+ * set during its own invocation does not corrupt the loop.
50
+ * Short-circuits on the first listener that returns truthy.
51
+ */
9
52
  private readonly fire;
10
53
  private _untypedValue;
54
+ /** The current buffered untyped value. Cleared after fire and after debounce. */
11
55
  get untypedValue(): string;
12
56
  private set untypedValue(value);
13
57
  private debounceTimer;
14
- private readonly tagNameSet;
58
+ /**
59
+ * Global `keydown` handler. Ignores synthetic events, passes
60
+ * through to inputs/buttons/links, buffers single-character
61
+ * keys, and fires the listener chain on `Enter` or after
62
+ * {@link UNTYPED_DEBOUNCE_MS} of idle.
63
+ */
15
64
  readonly handleGlobalKeydown: (e: KeyboardEvent) => void;
16
65
  }