@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,6 +1,9 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts">
3
+ <script
4
+ module
5
+ lang="ts"
6
+ >
4
7
  import { devCatch, passthrough } from '../../Helpers/Helpers.svelte.js';
5
8
  import { InputVariant } from '../../Types/Internal/InputVariant.js';
6
9
  import { tick, untrack } from 'svelte';
@@ -8,6 +11,10 @@
8
11
  import TextInput from '../TextInput.svelte';
9
12
  import type { NumberKeyboardProps } from './NumberKeyboardProps.js';
10
13
 
14
+ const DIGITS = Object.freeze([1, 2, 3, 4, 5, 6, 7, 8, 9] as const);
15
+ </script>
16
+
17
+ <script lang="ts">
11
18
  let {
12
19
  value = $bindable(null),
13
20
  label,
@@ -37,7 +44,9 @@
37
44
  );
38
45
 
39
46
  function getDecimalValue(): string {
40
- //HACK this absolutely moronic line is intentional. It's the best way to allow arbitrary decimal places without adding leading zeroes
47
+ // Use toFixed to bound decimal places, then parseFloat to drop trailing
48
+ // zeros without re-introducing scientific notation. There is no built-in
49
+ // "as many decimals as requested but no more" formatter.
41
50
  return value ? parseFloat(value.toFixed(decimalPlaces)).toString() : '';
42
51
  }
43
52
 
@@ -50,33 +59,30 @@
50
59
  });
51
60
 
52
61
  $effect(() => {
53
- {
54
- if (coerceValue) {
55
- const v =
56
- min != undefined && newValue != null && min > newValue
57
- ? min
58
- : max != undefined && newValue != null && max < newValue
59
- ? max
60
- : newValue;
62
+ if (coerceValue) {
63
+ const v =
64
+ min != undefined && newValue != null && min > newValue
65
+ ? min
66
+ : max != undefined && newValue != null && max < newValue
67
+ ? max
68
+ : newValue;
61
69
 
62
- value = v;
63
- } else {
64
- value = newValue;
65
- }
66
-
67
- untrack(() => {
68
- refocus();
69
- });
70
+ value = v;
71
+ } else {
72
+ value = newValue;
70
73
  }
71
74
  });
72
75
 
73
76
  function refocus() {
74
77
  tick()
75
78
  .then(() => {
76
- inputRef?.focus();
79
+ if (inputRef && document.activeElement !== inputRef) {
80
+ inputRef.focus();
81
+ }
77
82
  })
78
83
  .catch(devCatch);
79
84
  }
85
+
80
86
  function getPrevValue() {
81
87
  if (inputRef) {
82
88
  if (
@@ -91,7 +97,7 @@
91
97
 
92
98
  function addDecimal() {
93
99
  _value = getPrevValue() + '.';
94
- refocus();
100
+ untrack(refocus);
95
101
  }
96
102
 
97
103
  /* due to the fact that number inputs won't allow a leading dot, we have to use a text input
@@ -106,22 +112,43 @@
106
112
  const preVvalue = getPrevValue();
107
113
  const v = preVvalue && _value.slice(0, _value.length - 1);
108
114
  _value = v;
115
+ untrack(refocus);
109
116
  }
110
117
 
111
118
  function minus() {
112
119
  const v = ((decimal ? parseFloat(_value) : parseInt(_value)) || 0) - 1;
113
120
 
114
121
  _value = (min != null ? Math.max(min, v) : v).toString();
122
+ untrack(refocus);
115
123
  }
116
124
 
117
125
  function plus() {
118
126
  const v = ((decimal ? parseFloat(_value) : parseInt(_value)) || 0) + 1;
119
127
 
120
128
  _value = (max != null ? Math.min(max, v) : v).toString();
129
+ untrack(refocus);
121
130
  }
122
131
 
123
132
  const lessThanMin = $derived(min != null && (value == null || value < min));
124
133
  const moreThanMax = $derived(max != null && (value == null || value > max));
134
+
135
+ // Precompute disabled state per digit so the 10 buttons do not each evaluate
136
+ // the same arithmetic on every render.
137
+ const digitDisabled = $derived.by(() => {
138
+ const out = new Array<boolean>(10);
139
+ const base = (value ?? 0) * 10;
140
+ for (let i = 0; i < 10; i++) {
141
+ out[i] = max != null && base + i > max;
142
+ }
143
+ return out;
144
+ });
145
+
146
+ function onDigitClick(e: MouseEvent) {
147
+ const digit = (e.currentTarget as HTMLButtonElement).dataset.digit;
148
+ if (digit != null) {
149
+ addDigit(digit);
150
+ }
151
+ }
125
152
  </script>
126
153
 
127
154
  <div class="number-input-wrapper">
@@ -153,93 +180,26 @@
153
180
  onkeydown={passthrough}
154
181
  type="button"
155
182
  disabled={value != null && min != null && value <= min}
156
- onclick={() => {
157
- minus();
158
- }}><Icon name="minus" /></button
183
+ onclick={minus}><Icon name="minus" /></button
159
184
  >
160
185
  <button
161
186
  onkeydown={passthrough}
162
187
  type="button"
163
188
  disabled={value != null && max != null && value >= max}
164
- onclick={() => {
165
- plus();
166
- }}><Icon name="plus" /></button
189
+ onclick={plus}><Icon name="plus" /></button
167
190
  >
168
191
  </div>
169
192
  </div>
170
193
  <div class="number-grid">
171
- <button
172
- onkeydown={passthrough}
173
- type="button"
174
- disabled={(value != null && max && (value * 10 || 0) + 1 > max) || false}
175
- onclick={() => {
176
- addDigit('1');
177
- }}>1</button
178
- >
179
- <button
180
- onkeydown={passthrough}
181
- type="button"
182
- disabled={(value != null && max && (value * 10 || 0) + 2 > max) || false}
183
- onclick={() => {
184
- addDigit('2');
185
- }}>2</button
186
- >
187
- <button
188
- onkeydown={passthrough}
189
- type="button"
190
- disabled={(value != null && max && (value * 10 || 0) + 3 > max) || false}
191
- onclick={() => {
192
- addDigit('3');
193
- }}>3</button
194
- >
195
- <button
196
- onkeydown={passthrough}
197
- type="button"
198
- disabled={(value != null && max && (value * 10 || 0) + 4 > max) || false}
199
- onclick={() => {
200
- addDigit('4');
201
- }}>4</button
202
- >
203
- <button
204
- onkeydown={passthrough}
205
- type="button"
206
- disabled={(value != null && max && (value * 10 || 0) + 5 > max) || false}
207
- onclick={() => {
208
- addDigit('5');
209
- }}>5</button
210
- >
211
- <button
212
- onkeydown={passthrough}
213
- type="button"
214
- disabled={(value != null && max && (value * 10 || 0) + 6 > max) || false}
215
- onclick={() => {
216
- addDigit('6');
217
- }}>6</button
218
- >
219
- <button
220
- onkeydown={passthrough}
221
- type="button"
222
- disabled={(value != null && max && (value * 10 || 0) + 7 > max) || false}
223
- onclick={() => {
224
- addDigit('7');
225
- }}>7</button
226
- >
227
- <button
228
- onkeydown={passthrough}
229
- type="button"
230
- disabled={(value != null && max && (value * 10 || 0) + 8 > max) || false}
231
- onclick={() => {
232
- addDigit('8');
233
- }}>8</button
234
- >
235
- <button
236
- onkeydown={passthrough}
237
- type="button"
238
- disabled={(value != null && max && (value * 10 || 0) + 9 > max) || false}
239
- onclick={() => {
240
- addDigit('9');
241
- }}>9</button
242
- >
194
+ {#each DIGITS as digit (digit)}
195
+ <button
196
+ onkeydown={passthrough}
197
+ type="button"
198
+ data-digit={digit}
199
+ disabled={digitDisabled[digit]}
200
+ onclick={onDigitClick}>{digit}</button
201
+ >
202
+ {/each}
243
203
  <button
244
204
  onkeydown={passthrough}
245
205
  type="button"
@@ -249,18 +209,15 @@
249
209
  <button
250
210
  onkeydown={passthrough}
251
211
  type="button"
252
- disabled={(value != null && max && (value * 10 || 0) > max) || false}
253
- onclick={() => {
254
- addDigit('0');
255
- }}>0</button
212
+ data-digit="0"
213
+ disabled={digitDisabled[0]}
214
+ onclick={onDigitClick}>0</button
256
215
  >
257
216
  <button
258
217
  onkeydown={passthrough}
259
218
  type="button"
260
219
  disabled={_value.length === 0}
261
- onclick={() => {
262
- backspace();
263
- }}>⌫</button
220
+ onclick={backspace}>⌫</button
264
221
  >
265
222
  </div>
266
223
  </div>
@@ -1,11 +1,30 @@
1
+ /**
2
+ * Props for `NumberKeyboard`, the on-screen numeric keypad used by
3
+ * `NumberModal` and standalone touch flows. Tracks its value as a string
4
+ * internally (because `<input type="number">` cannot host a leading dot)
5
+ * and surfaces a parsed `number | null` via the bindable `value`.
6
+ */
1
7
  export interface NumberKeyboardProps {
8
+ /** Current numeric value. Bindable. `null` when the field is empty. */
2
9
  value: number | null;
10
+ /** Label rendered above the input. */
3
11
  label?: string | undefined;
12
+ /** Trailing label rendered to the right of the input. */
4
13
  labelRight?: string;
14
+ /** Placeholder text shown when the value is empty. */
5
15
  placeholder?: string | undefined;
16
+ /** Lower bound. Used both for validation and to clamp when `coerceValue` is true. */
6
17
  min?: number | undefined;
18
+ /** Upper bound. Also disables digit buttons that would exceed it. */
7
19
  max?: number | undefined;
20
+ /** When true, the keypad permits a decimal separator. Defaults to false. */
8
21
  decimal?: boolean;
22
+ /** Two-way bindable reference to the underlying input element. */
9
23
  inputRef?: HTMLInputElement | undefined;
24
+ /**
25
+ * When true, values are clamped to `[min, max]` before being written
26
+ * back to `value`. When false, the value is reflected as typed and the
27
+ * caller is expected to validate.
28
+ */
10
29
  coerceValue?: boolean;
11
30
  }
@@ -1,6 +1,7 @@
1
1
  <svelte:options runes />
2
2
 
3
3
  <script lang="ts">
4
+ import { useAsyncFlag } from '../../Helpers/AsyncFlag.svelte.js';
4
5
  import { passthrough } from '../../Helpers/Helpers.svelte.js';
5
6
  import NumberKeyboard from './NumberKeyboard.svelte';
6
7
  import type { NumberModalProps } from './NumberModalProps.js';
@@ -16,13 +17,19 @@
16
17
  cancelEditing,
17
18
  confirm,
18
19
  decimal,
19
- isValid = () => true,
20
- explanation
20
+ isValid,
21
+ explanation,
21
22
  }: NumberModalProps = $props();
22
23
 
23
- let tempValue = $derived(value);
24
+ // Mirror external `value` snapshots into a writable derived. Reads from
25
+ // `value` are tracked; writes happen through the assignment binding
26
+ // fed back to `NumberKeyboard`.
27
+ let tempValue: number | null = $derived(value);
24
28
 
25
- const isAcceptableValue = $derived(tempValue != null && isValid(tempValue));
29
+ const isAcceptableValue = useAsyncFlag(
30
+ () => (tempValue == null ? false : (isValid?.(tempValue) ?? true)),
31
+ false
32
+ );
26
33
  </script>
27
34
 
28
35
  <TouchModal
@@ -34,7 +41,6 @@
34
41
  onsubmit={(e: SubmitEvent) => {
35
42
  e.preventDefault();
36
43
  if (tempValue == null) {
37
- console.warn(`number modal value was null`);
38
44
  return;
39
45
  }
40
46
  confirm(tempValue);
@@ -54,7 +60,11 @@
54
60
  </div>
55
61
  {#snippet footer()}
56
62
  <div class="modal-footer">
57
- <button onkeydown={passthrough} type="submit" disabled={!isAcceptableValue}>Confirm</button>
63
+ <button
64
+ onkeydown={passthrough}
65
+ type="submit"
66
+ disabled={!isAcceptableValue.value}>Confirm</button
67
+ >
58
68
  <button
59
69
  onkeydown={passthrough}
60
70
  type="button"
@@ -1,15 +1,37 @@
1
+ import type { AsyncFlag } from '../../Types/Internal/AsyncFlag.js';
1
2
  import type { Snippet } from 'svelte';
3
+ /**
4
+ * Props for `NumberModal`, the touch-friendly modal that hosts a
5
+ * `NumberKeyboard` and surfaces the entered value through a confirm
6
+ * callback. Internally wraps `TouchModal`.
7
+ */
2
8
  export interface NumberModalProps {
9
+ /** Header text shown in the modal title bar. */
3
10
  header: string;
11
+ /** Initial numeric value, or `null` when no value is yet entered. */
4
12
  value: number | null;
13
+ /** Fires when the user cancels (close button, Escape on non-mandatory). */
5
14
  cancelEditing: () => void;
15
+ /** Fires when the user confirms a value. Receives the non-null entered value. */
6
16
  confirm: (value: number) => void;
7
- isValid?: (value: number) => boolean;
17
+ /**
18
+ * Optional validator. Accepts a bare boolean or a Promise of one
19
+ * (via {@link AsyncFlag}). When the resolved value is `false`, the
20
+ * confirm button is disabled.
21
+ */
22
+ isValid?: (value: number) => AsyncFlag<boolean>;
23
+ /** Label rendered above the input in the keypad. */
8
24
  label?: string;
25
+ /** Placeholder text shown when the value is empty. */
9
26
  placeholder?: string;
27
+ /** Lower numeric bound. */
10
28
  min?: number;
29
+ /** Upper numeric bound. */
11
30
  max?: number;
31
+ /** Optional explanation snippet rendered above the keypad. */
12
32
  explanation?: Snippet;
33
+ /** Permit a decimal separator in the keypad. */
13
34
  decimal?: boolean;
35
+ /** Clamp the value into `[min, max]` rather than reflecting raw input. */
14
36
  coerceValue?: boolean;
15
37
  }
@@ -1,31 +1,27 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
3
+ <script lang="ts">
4
4
  import { Size } from '../../Types/Internal/Size.js';
5
- import type { Snippet } from 'svelte';
6
5
  import Action from '../Action.svelte';
7
- export interface PlusMinusCardProps {
8
- callback: (diff: number) => void;
9
- children: Snippet;
10
- disabled?: boolean;
11
- }
12
- </script>
6
+ import type { PlusMinusCardProps } from './PlusMinusCardProps.js';
13
7
 
14
- <script lang="ts">
15
8
  let { callback, disabled = false, children }: PlusMinusCardProps = $props();
16
9
  </script>
17
10
 
18
- <div class="card pad-right" class:disabled>
11
+ <div
12
+ class="card pad-right"
13
+ class:disabled
14
+ >
19
15
  <div class="icon-left">
20
16
  <Action
21
17
  {disabled}
22
- label="decrement"
18
+ label="Decrement"
23
19
  onclick={() => {
24
20
  callback(-1);
25
21
  }}
26
22
  icon={{
27
23
  name: 'circle-minus',
28
- size: Size.DoubleXLarge
24
+ size: Size.DoubleXLarge,
29
25
  }}
30
26
  size={Size.DoubleXLarge}
31
27
  />
@@ -34,13 +30,13 @@
34
30
  <div class="icon-right">
35
31
  <Action
36
32
  {disabled}
37
- label="increment"
33
+ label="Increment"
38
34
  onclick={() => {
39
35
  callback(1);
40
36
  }}
41
37
  icon={{
42
38
  name: 'circle-plus',
43
- size: Size.DoubleXLarge
39
+ size: Size.DoubleXLarge,
44
40
  }}
45
41
  size={Size.DoubleXLarge}
46
42
  />
@@ -82,8 +78,8 @@
82
78
  user-select: none;
83
79
  justify-content: center;
84
80
  text-align: center;
85
- padding-left: 0.25rem;
86
- padding-right: 0.25rem;
81
+ padding-left: 0.375rem;
82
+ padding-right: 0.375rem;
87
83
  }
88
84
  .card .icon-left,
89
85
  .card .icon-right {
@@ -1,9 +1,4 @@
1
- import type { Snippet } from 'svelte';
2
- export interface PlusMinusCardProps {
3
- callback: (diff: number) => void;
4
- children: Snippet;
5
- disabled?: boolean;
6
- }
1
+ import type { PlusMinusCardProps } from './PlusMinusCardProps.js';
7
2
  declare const PlusMinusCard: import("svelte").Component<PlusMinusCardProps, {}, "">;
8
3
  type PlusMinusCard = ReturnType<typeof PlusMinusCard>;
9
4
  export default PlusMinusCard;
@@ -0,0 +1,18 @@
1
+ import type { Snippet } from 'svelte';
2
+ /**
3
+ * Props for `PlusMinusCard`, a touch-friendly card with a centred value
4
+ * flanked by decrement (-1) and increment (+1) buttons. The card itself
5
+ * does not own the value; it invokes `callback` with the requested
6
+ * delta (-1 or +1) and expects the caller to update the bound state.
7
+ */
8
+ export interface PlusMinusCardProps {
9
+ /**
10
+ * Fires when the user taps decrement or increment. Receives the delta
11
+ * to apply: -1 for decrement, +1 for increment.
12
+ */
13
+ callback: (diff: number) => void;
14
+ /** Value snippet rendered between the two buttons. */
15
+ children: Snippet;
16
+ /** Disable both buttons and visually mute the card. */
17
+ disabled?: boolean;
18
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -7,22 +7,25 @@
7
7
  import TextInput from '../TextInput.svelte';
8
8
  import type { SelectModalProps } from './SelectModalProps.js';
9
9
  import TouchModal from './TouchModal.svelte';
10
+
10
11
  const {
11
12
  header,
12
13
  searchbar = false,
13
14
  choices,
14
15
  cancelEditing,
15
- selected
16
+ selected,
16
17
  }: SelectModalProps = $props();
17
18
 
18
19
  let selectedRef: HTMLButtonElement | undefined = $state();
19
20
  let searchValue = $state('');
20
21
 
22
+ // Cache the search needle's upper-case form so we do not re-upper-case
23
+ // the same string on every keystroke per choice. Per-label upper-casing
24
+ // is unavoidable but the needle is constant across the filter pass.
25
+ const searchNeedle = $derived(searchValue.toLocaleUpperCase());
21
26
  const filteredChoices = $derived(
22
27
  searchbar
23
- ? choices.filter((it) =>
24
- it.label.toLocaleUpperCase().includes(searchValue.toLocaleUpperCase())
25
- )
28
+ ? choices.filter((it) => it.label.toLocaleUpperCase().includes(searchNeedle))
26
29
  : choices
27
30
  );
28
31
 
@@ -54,11 +57,14 @@
54
57
  }
55
58
  }}
56
59
  >
57
- <div class="select-container" class:with-top-padding={!searchbar}>
60
+ <div
61
+ class="select-container"
62
+ class:with-top-padding={!searchbar}
63
+ >
58
64
  {#if filteredChoices.length === 0}
59
65
  <span>No Results</span>
60
66
  {/if}
61
- {#each filteredChoices as choice (choice)}
67
+ {#each filteredChoices as choice (choice.label)}
62
68
  {#if selected === choice.label}
63
69
  {#if choice.callback}
64
70
  <button
@@ -68,25 +74,37 @@
68
74
  onclick={() => choice.callback?.()}>{choice.label}</button
69
75
  >
70
76
  {:else}
71
- <button onkeydown={passthrough} bind:this={selectedRef} type={choice.type}
72
- >{choice.label}</button
77
+ <button
78
+ onkeydown={passthrough}
79
+ bind:this={selectedRef}
80
+ type={choice.type}>{choice.label}</button
73
81
  >
74
82
  {/if}
75
83
  {:else if choice.callback}
76
- <button onkeydown={passthrough} type="button" onclick={() => choice.callback?.()}
77
- >{choice.label}</button
84
+ <button
85
+ onkeydown={passthrough}
86
+ type="button"
87
+ onclick={() => choice.callback?.()}>{choice.label}</button
78
88
  >
79
89
  {:else}
80
- <button onkeydown={passthrough} type={choice.type}>{choice.label}</button>
90
+ <button
91
+ onkeydown={passthrough}
92
+ type={choice.type}>{choice.label}</button
93
+ >
81
94
  {/if}
82
95
  {/each}
83
96
  </div>
84
97
 
85
- <!-- TODO move this snippet above once the plugin bug is fixed -->
86
98
  {#snippet headerExtra()}
87
- <div class:visible={searchbar} class="header-extra">
88
- <TextInput labelTop="Search" bind:value={searchValue} variant={InputVariant.Modal} />
89
- </div>
99
+ {#if searchbar}
100
+ <div class="header-extra visible">
101
+ <TextInput
102
+ labelTop="Search"
103
+ bind:value={searchValue}
104
+ variant={InputVariant.Modal}
105
+ />
106
+ </div>
107
+ {/if}
90
108
  {/snippet}
91
109
 
92
110
  {#snippet footer()}
@@ -1,8 +1,29 @@
1
1
  import type { CallbackButton } from '../../Types/Internal/CallbackButton.js';
2
+ /**
3
+ * Props for `SelectModal`, the touch-friendly list-of-choices modal.
4
+ * Renders each choice as a large button, with an optional search bar
5
+ * filtering the list. Internally wraps `TouchModal`.
6
+ */
2
7
  export interface SelectModalProps {
8
+ /** Header text shown in the modal title bar. */
3
9
  header: string;
4
- choices: Array<CallbackButton>;
10
+ /**
11
+ * Choices rendered as buttons. Treated as read-only; the modal does
12
+ * not mutate the array. Each entry's `label` doubles as the each-block
13
+ * key and as the selected-choice identifier.
14
+ */
15
+ choices: ReadonlyArray<CallbackButton>;
16
+ /** Fires when the user cancels (Cancel button or Escape). */
5
17
  cancelEditing: () => void;
18
+ /**
19
+ * Render a search input above the list that case-insensitively filters
20
+ * choices by `label`. Pressing Enter (form submit) invokes the first
21
+ * filtered choice's callback. Defaults to false.
22
+ */
6
23
  searchbar?: boolean;
24
+ /**
25
+ * Label of the currently-selected choice. The matching button is
26
+ * scrolled into view on mount and focused when no search bar is shown.
27
+ */
7
28
  selected?: CallbackButton['label'] | null;
8
29
  }