@lavalogic/scoria 0.11.14 → 0.12.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 (407) hide show
  1. package/dist/Components/Action.svelte +7 -32
  2. package/dist/Components/Action.svelte.d.ts +1 -27
  3. package/dist/Components/ActionProps.d.ts +27 -0
  4. package/dist/Components/ActionProps.js +1 -0
  5. package/dist/Components/AlertModal.svelte +7 -5
  6. package/dist/Components/Base/ContextWrapper.svelte +4 -9
  7. package/dist/Components/Base/ContextWrapper.svelte.d.ts +1 -5
  8. package/dist/Components/Base/ContextWrapperProps.d.ts +5 -0
  9. package/dist/Components/Base/ContextWrapperProps.js +1 -0
  10. package/dist/Components/Base/Pagination.svelte +22 -31
  11. package/dist/Components/Base/Pagination.svelte.d.ts +1 -12
  12. package/dist/Components/Base/PaginationProps.d.ts +12 -0
  13. package/dist/Components/Base/PaginationProps.js +1 -0
  14. package/dist/Components/BigRadioSet.svelte +4 -11
  15. package/dist/Components/BigRadioSet.svelte.d.ts +1 -6
  16. package/dist/Components/BigRadioSetProps.d.ts +6 -0
  17. package/dist/Components/BigRadioSetProps.js +1 -0
  18. package/dist/Components/Bubble.svelte +4 -21
  19. package/dist/Components/Bubble.svelte.d.ts +1 -18
  20. package/dist/Components/BubbleColour.d.ts +5 -0
  21. package/dist/Components/BubbleColour.js +1 -0
  22. package/dist/Components/BubbleProps.d.ts +14 -0
  23. package/dist/Components/BubbleProps.js +1 -0
  24. package/dist/Components/Button.svelte +21 -48
  25. package/dist/Components/Button.svelte.d.ts +1 -29
  26. package/dist/Components/ButtonProps.d.ts +29 -0
  27. package/dist/Components/ButtonProps.js +1 -0
  28. package/dist/Components/Checkbox.svelte +4 -21
  29. package/dist/Components/Checkbox.svelte.d.ts +2 -2
  30. package/dist/Components/CollapsibleCard.svelte +3 -15
  31. package/dist/Components/CollapsibleCard.svelte.d.ts +2 -10
  32. package/dist/Components/CollapsibleCardProps.d.ts +9 -0
  33. package/dist/Components/CollapsibleCardProps.js +1 -0
  34. package/dist/Components/Contexts/ContextMenu.svelte +14 -11
  35. package/dist/Components/Contexts/ContextMenuOption.svelte +2 -11
  36. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +1 -7
  37. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +7 -0
  38. package/dist/Components/Contexts/ContextMenuOptionProps.js +1 -0
  39. package/dist/Components/Contexts/Toast.svelte +1 -6
  40. package/dist/Components/Contexts/Toast.svelte.d.ts +1 -5
  41. package/dist/Components/Contexts/ToastContainer.svelte +4 -1
  42. package/dist/Components/Contexts/ToastProps.d.ts +5 -0
  43. package/dist/Components/Contexts/ToastProps.js +1 -0
  44. package/dist/Components/Contexts/Tooltip.svelte +1 -4
  45. package/dist/Components/DataMatrixIcon.svelte +3 -11
  46. package/dist/Components/DataMatrixIcon.svelte.d.ts +1 -6
  47. package/dist/Components/DataMatrixIconProps.d.ts +6 -0
  48. package/dist/Components/DataMatrixIconProps.js +1 -0
  49. package/dist/Components/DateInput.svelte +3 -42
  50. package/dist/Components/DateInput.svelte.d.ts +1 -40
  51. package/dist/Components/DateInputProps.d.ts +3 -0
  52. package/dist/Components/DateInputProps.js +1 -0
  53. package/dist/Components/DateOnlyInputProps.d.ts +21 -0
  54. package/dist/Components/DateOnlyInputProps.js +1 -0
  55. package/dist/Components/DatePicker.svelte +26 -36
  56. package/dist/Components/DatePicker.svelte.d.ts +1 -8
  57. package/dist/Components/DatePickerProps.d.ts +8 -0
  58. package/dist/Components/DatePickerProps.js +1 -0
  59. package/dist/Components/DateTimeInputProps.d.ts +21 -0
  60. package/dist/Components/DateTimeInputProps.js +1 -0
  61. package/dist/Components/DesktopModal.svelte +3 -25
  62. package/dist/Components/DesktopModal.svelte.d.ts +1 -20
  63. package/dist/Components/DesktopModalProps.d.ts +20 -0
  64. package/dist/Components/DesktopModalProps.js +1 -0
  65. package/dist/Components/Dial.svelte +2 -18
  66. package/dist/Components/Dial.svelte.d.ts +1 -13
  67. package/dist/Components/DialProps.d.ts +13 -0
  68. package/dist/Components/DialProps.js +1 -0
  69. package/dist/Components/DimensionInput.svelte +21 -48
  70. package/dist/Components/DimensionInput.svelte.d.ts +1 -29
  71. package/dist/Components/DimensionInputProps.d.ts +29 -0
  72. package/dist/Components/DimensionInputProps.js +1 -0
  73. package/dist/Components/DragMenu/DragMenuHolder.svelte +10 -57
  74. package/dist/Components/DragMenu/DragMenuHolder.svelte.d.ts +1 -17
  75. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +10 -0
  76. package/dist/Components/DragMenu/DragMenuHolderProps.js +1 -0
  77. package/dist/Components/DragMenu/Draggable.d.ts +8 -0
  78. package/dist/Components/DragMenu/Draggable.js +1 -0
  79. package/dist/Components/DragMenu/DraggableCard.svelte +6 -14
  80. package/dist/Components/DragMenu/DraggableCard.svelte.d.ts +1 -9
  81. package/dist/Components/DragMenu/DraggableCardProps.d.ts +9 -0
  82. package/dist/Components/DragMenu/DraggableCardProps.js +1 -0
  83. package/dist/Components/FileCard.svelte +1 -7
  84. package/dist/Components/FileCard.svelte.d.ts +1 -4
  85. package/dist/Components/FileCardProps.d.ts +4 -0
  86. package/dist/Components/FileCardProps.js +1 -0
  87. package/dist/Components/FileUpload.svelte +9 -31
  88. package/dist/Components/FileUpload.svelte.d.ts +1 -24
  89. package/dist/Components/FileUploadProps.d.ts +24 -0
  90. package/dist/Components/FileUploadProps.js +1 -0
  91. package/dist/Components/GridInput.svelte +30 -28
  92. package/dist/Components/GridInput.svelte.d.ts +1 -6
  93. package/dist/Components/GridInputProps.d.ts +7 -0
  94. package/dist/Components/GridInputProps.js +1 -0
  95. package/dist/Components/GridInputSet.svelte +2 -11
  96. package/dist/Components/GridInputSet.svelte.d.ts +1 -6
  97. package/dist/Components/GridInputSetProps.d.ts +7 -0
  98. package/dist/Components/GridInputSetProps.js +1 -0
  99. package/dist/Components/HorizontalTabGroup.svelte +3 -16
  100. package/dist/Components/HorizontalTabGroup.svelte.d.ts +2 -11
  101. package/dist/Components/HorizontalTabGroupButton.svelte +11 -15
  102. package/dist/Components/HorizontalTabGroupButton.svelte.d.ts +2 -6
  103. package/dist/Components/HorizontalTabGroupProps.d.ts +10 -0
  104. package/dist/Components/HorizontalTabGroupProps.js +1 -0
  105. package/dist/Components/Icon.svelte +5 -1257
  106. package/dist/Components/Icon.svelte.d.ts +1 -884
  107. package/dist/Components/IconProps.d.ts +24 -0
  108. package/dist/Components/IconProps.js +1 -0
  109. package/dist/Components/Icons.d.ts +858 -0
  110. package/dist/Components/Icons.js +1222 -0
  111. package/dist/Components/InputProps.d.ts +15 -0
  112. package/dist/Components/InputProps.js +1 -0
  113. package/dist/Components/LoadingModal.svelte +2 -2
  114. package/dist/Components/Modal.svelte +24 -25
  115. package/dist/Components/Modal.svelte.d.ts +3 -6
  116. package/dist/Components/MultiSelect.svelte +35 -73
  117. package/dist/Components/MultiSelect.svelte.d.ts +14 -37
  118. package/dist/Components/MultiSelectCommonProps.d.ts +16 -0
  119. package/dist/Components/MultiSelectCommonProps.js +1 -0
  120. package/dist/Components/MultiSelectProps.d.ts +4 -0
  121. package/dist/Components/MultiSelectProps.js +1 -0
  122. package/dist/Components/MultiSelectPropsAsObject.d.ts +6 -0
  123. package/dist/Components/MultiSelectPropsAsObject.js +1 -0
  124. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  125. package/dist/Components/MultiSelectPropsAsPrimitive.js +1 -0
  126. package/dist/Components/NumberInput.svelte +8 -37
  127. package/dist/Components/NumberInput.svelte.d.ts +1 -29
  128. package/dist/Components/NumberInputProps.d.ts +29 -0
  129. package/dist/Components/NumberInputProps.js +1 -0
  130. package/dist/Components/PartialIconProps.d.ts +4 -0
  131. package/dist/Components/PartialIconProps.js +1 -0
  132. package/dist/Components/PasswordInput.svelte +4 -22
  133. package/dist/Components/PasswordInput.svelte.d.ts +1 -15
  134. package/dist/Components/Portal.svelte +3 -9
  135. package/dist/Components/Portal.svelte.d.ts +1 -5
  136. package/dist/Components/PortalProps.d.ts +5 -0
  137. package/dist/Components/PortalProps.js +1 -0
  138. package/dist/Components/ProgressBubble.svelte +20 -22
  139. package/dist/Components/ProgressBubble.svelte.d.ts +2 -6
  140. package/dist/Components/ProgressBubbleProps.d.ts +5 -0
  141. package/dist/Components/ProgressBubbleProps.js +1 -0
  142. package/dist/Components/QuerySelect.svelte +70 -49
  143. package/dist/Components/QuerySelect.svelte.d.ts +3 -3
  144. package/dist/Components/SingleSelect.svelte +28 -71
  145. package/dist/Components/SingleSelect.svelte.d.ts +2 -37
  146. package/dist/Components/SingleSelectCommonProps.d.ts +27 -0
  147. package/dist/Components/SingleSelectCommonProps.js +1 -0
  148. package/dist/Components/SingleSelectProps.d.ts +4 -0
  149. package/dist/Components/SingleSelectProps.js +1 -0
  150. package/dist/Components/SingleSelectPropsAsObject.d.ts +6 -0
  151. package/dist/Components/SingleSelectPropsAsObject.js +1 -0
  152. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +6 -0
  153. package/dist/Components/SingleSelectPropsAsPrimitive.js +1 -0
  154. package/dist/Components/Switch.svelte +2 -13
  155. package/dist/Components/Switch.svelte.d.ts +1 -9
  156. package/dist/Components/SwitchProps.d.ts +9 -0
  157. package/dist/Components/SwitchProps.js +1 -0
  158. package/dist/Components/TabGroupButtonProps.d.ts +5 -0
  159. package/dist/Components/TabGroupButtonProps.js +1 -0
  160. package/dist/Components/Table/Body/HeightData.d.ts +6 -0
  161. package/dist/Components/Table/Body/HeightData.js +1 -0
  162. package/dist/Components/Table/Body/QuickSearchCell.svelte +59 -82
  163. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +1 -6
  164. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  165. package/dist/Components/Table/Body/QuickSearchCellProps.js +1 -0
  166. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +4 -9
  167. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +1 -5
  168. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +5 -0
  169. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.js +1 -0
  170. package/dist/Components/Table/Body/Rows/ColumnList.svelte +5 -10
  171. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +1 -3
  172. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +3 -0
  173. package/dist/Components/Table/Body/Rows/ColumnListProps.js +1 -0
  174. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +15 -25
  175. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +1 -4
  176. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +4 -0
  177. package/dist/Components/Table/Body/Rows/ColumnListRowProps.js +1 -0
  178. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +7 -11
  179. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte.d.ts +1 -4
  180. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +4 -0
  181. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.js +1 -0
  182. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +39 -48
  183. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +1 -4
  184. package/dist/Components/Table/Body/Rows/Columns/ActionsCellProps.d.ts +4 -0
  185. package/dist/Components/Table/Body/Rows/Columns/ActionsCellProps.js +1 -0
  186. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +5 -0
  187. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.js +1 -0
  188. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  189. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.js +1 -0
  190. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +26 -25
  191. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +1 -4
  192. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +11 -18
  193. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte.d.ts +13 -19
  194. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.d.ts +7 -0
  195. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.js +1 -0
  196. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +10 -16
  197. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +1 -6
  198. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +6 -0
  199. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.js +1 -0
  200. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +22 -15
  201. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +5 -0
  202. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.js +1 -0
  203. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -0
  204. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.js +1 -0
  205. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +7 -20
  206. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +1 -9
  207. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +17 -20
  208. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +38 -22
  209. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +2 -2
  210. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +41 -34
  211. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +1 -4
  212. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -0
  213. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.js +1 -0
  214. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +67 -46
  215. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +5 -0
  216. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.js +1 -0
  217. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +5 -0
  218. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.js +1 -0
  219. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +93 -105
  220. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +1 -12
  221. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +4 -0
  222. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.js +1 -0
  223. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +4 -2
  224. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +78 -65
  225. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +1 -12
  226. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +4 -0
  227. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.js +1 -0
  228. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +82 -59
  229. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +1 -4
  230. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +4 -0
  231. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.js +1 -0
  232. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +10 -15
  233. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte.d.ts +1 -4
  234. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +4 -0
  235. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.js +1 -0
  236. package/dist/Components/Table/Body/Rows/TableRow.svelte +38 -31
  237. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +1 -8
  238. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +8 -0
  239. package/dist/Components/Table/Body/Rows/TableRowProps.js +1 -0
  240. package/dist/Components/Table/Body/TableBody.svelte +10 -21
  241. package/dist/Components/Table/Body/TableBody.svelte.d.ts +1 -12
  242. package/dist/Components/Table/Body/TableBodyProps.d.ts +8 -0
  243. package/dist/Components/Table/Body/TableBodyProps.js +1 -0
  244. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +2 -4
  245. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +159 -161
  246. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +8 -5
  247. package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
  248. package/dist/Components/Table/Headers/TableHead.svelte +29 -18
  249. package/dist/Components/Table/Misc/ColumnPanel.svelte +4 -4
  250. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +5 -10
  251. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +1 -3
  252. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +3 -0
  253. package/dist/Components/Table/Misc/ColumnPanelModalProps.js +1 -0
  254. package/dist/Components/Table/Misc/FilterInput.svelte +75 -145
  255. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +1 -16
  256. package/dist/Components/Table/Misc/FilterInputProps.d.ts +6 -0
  257. package/dist/Components/Table/Misc/FilterInputProps.js +1 -0
  258. package/dist/Components/Table/Misc/FilterPanelModal.svelte +2 -5
  259. package/dist/Components/Table/Misc/TableFooter.svelte +22 -21
  260. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +7 -5
  261. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -2
  262. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +2 -7
  263. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +1 -3
  264. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +3 -0
  265. package/dist/Components/Table/Misc/ToolboxPanelModalProps.js +1 -0
  266. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +5 -0
  267. package/dist/Components/Table/Misc/numberDateFilterTypes.js +13 -0
  268. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +5 -0
  269. package/dist/Components/Table/Misc/stringFilterTypes.js +15 -0
  270. package/dist/Components/Table/NestedTable.svelte +5 -3
  271. package/dist/Components/Table/NestedTable.svelte.d.ts +1 -1
  272. package/dist/Components/Table/Table.svelte +72 -40
  273. package/dist/Components/Table/Table.svelte.d.ts +1 -1
  274. package/dist/Components/Table/Types/Columns/Column.d.ts +1 -1
  275. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +1 -1
  276. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +1 -2
  277. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +2 -0
  278. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +2 -2
  279. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +3 -3
  280. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +1 -1
  281. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +3 -2
  282. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +3 -3
  283. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +1 -1
  284. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +6 -7
  285. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +4 -1
  286. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +2 -2
  287. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +1 -1
  288. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +2 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +1 -1
  290. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +3 -2
  291. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +1 -3
  292. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +4 -3
  293. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +1 -1
  294. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +2 -2
  295. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +2 -2
  296. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +1 -1
  297. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +2 -1
  298. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +1 -1
  299. package/dist/Components/Table/Types/Context/ITable.d.ts +8 -8
  300. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +1 -1
  301. package/dist/Components/Table/Types/Context/Row.d.ts +4 -4
  302. package/dist/Components/Table/Types/Context/RowModel.d.ts +1 -1
  303. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +13 -17
  304. package/dist/Components/Table/Types/Context/TableContext.svelte.js +260 -304
  305. package/dist/Components/Table/Types/Context/TableSettings.d.ts +8 -0
  306. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +6 -6
  307. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -1
  308. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -2
  309. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +10 -8
  310. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +1 -1
  311. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +5 -5
  312. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +5 -3
  313. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +1 -1
  314. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +1 -1
  315. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +3 -2
  316. package/dist/Components/TextArea.svelte +2 -30
  317. package/dist/Components/TextArea.svelte.d.ts +1 -26
  318. package/dist/Components/TextAreaProps.d.ts +26 -0
  319. package/dist/Components/TextAreaProps.js +1 -0
  320. package/dist/Components/TextInput.svelte +6 -40
  321. package/dist/Components/TextInput.svelte.d.ts +1 -31
  322. package/dist/Components/TextInputProps.d.ts +31 -0
  323. package/dist/Components/TextInputProps.js +1 -0
  324. package/dist/Components/ThreeStateRadio.svelte +4 -23
  325. package/dist/Components/ThreeStateRadio.svelte.d.ts +1 -19
  326. package/dist/Components/ThreeStateRadioProps.d.ts +19 -0
  327. package/dist/Components/ThreeStateRadioProps.js +1 -0
  328. package/dist/Components/Touch/BoolCard.svelte +3 -2
  329. package/dist/Components/Touch/DateModal.svelte +23 -11
  330. package/dist/Components/Touch/DefaultTimer.d.ts +5 -0
  331. package/dist/Components/Touch/DefaultTimer.js +1 -0
  332. package/dist/Components/Touch/EditCard.svelte +3 -17
  333. package/dist/Components/Touch/EditCard.svelte.d.ts +1 -12
  334. package/dist/Components/Touch/EditCardProps.d.ts +12 -0
  335. package/dist/Components/Touch/EditCardProps.js +1 -0
  336. package/dist/Components/Touch/InfoCard.svelte +3 -12
  337. package/dist/Components/Touch/InfoCard.svelte.d.ts +1 -8
  338. package/dist/Components/Touch/InfoCardProps.d.ts +8 -0
  339. package/dist/Components/Touch/InfoCardProps.js +1 -0
  340. package/dist/Components/Touch/InfoTextCard.svelte +3 -12
  341. package/dist/Components/Touch/InfoTextCard.svelte.d.ts +1 -7
  342. package/dist/Components/Touch/InfoTextCardProps.d.ts +7 -0
  343. package/dist/Components/Touch/InfoTextCardProps.js +1 -0
  344. package/dist/Components/Touch/KeyValuePair.d.ts +4 -0
  345. package/dist/Components/Touch/KeyValuePair.js +1 -0
  346. package/dist/Components/Touch/NumberKeyboard.svelte +54 -37
  347. package/dist/Components/Touch/NumberKeyboard.svelte.d.ts +1 -11
  348. package/dist/Components/Touch/NumberKeyboardProps.d.ts +11 -0
  349. package/dist/Components/Touch/NumberKeyboardProps.js +1 -0
  350. package/dist/Components/Touch/NumberModal.svelte +19 -26
  351. package/dist/Components/Touch/NumberModal.svelte.d.ts +1 -15
  352. package/dist/Components/Touch/NumberModalProps.d.ts +15 -0
  353. package/dist/Components/Touch/NumberModalProps.js +1 -0
  354. package/dist/Components/Touch/PlusMinusCard.svelte +6 -2
  355. package/dist/Components/Touch/SelectModal.svelte +26 -27
  356. package/dist/Components/Touch/SelectModal.svelte.d.ts +1 -8
  357. package/dist/Components/Touch/SelectModalProps.d.ts +8 -0
  358. package/dist/Components/Touch/SelectModalProps.js +1 -0
  359. package/dist/Components/Touch/SummaryCard.svelte +3 -20
  360. package/dist/Components/Touch/SummaryCard.svelte.d.ts +1 -15
  361. package/dist/Components/Touch/SummaryCardProps.d.ts +12 -0
  362. package/dist/Components/Touch/SummaryCardProps.js +1 -0
  363. package/dist/Components/Touch/TextAreaModal.svelte +20 -23
  364. package/dist/Components/Touch/TextAreaModal.svelte.d.ts +1 -12
  365. package/dist/Components/Touch/TextAreaModalProps.d.ts +12 -0
  366. package/dist/Components/Touch/TextAreaModalProps.js +1 -0
  367. package/dist/Components/Touch/TextModal.svelte +24 -33
  368. package/dist/Components/Touch/TextModal.svelte.d.ts +1 -19
  369. package/dist/Components/Touch/TextModalProps.d.ts +19 -0
  370. package/dist/Components/Touch/TextModalProps.js +1 -0
  371. package/dist/Components/Touch/TouchCard.svelte +2 -11
  372. package/dist/Components/Touch/TouchCard.svelte.d.ts +1 -6
  373. package/dist/Components/Touch/TouchCardProps.d.ts +6 -0
  374. package/dist/Components/Touch/TouchCardProps.js +1 -0
  375. package/dist/Components/Touch/TouchModal.svelte +14 -46
  376. package/dist/Components/Touch/TouchModal.svelte.d.ts +1 -31
  377. package/dist/Components/Touch/TouchModalProps.d.ts +27 -0
  378. package/dist/Components/Touch/TouchModalProps.js +1 -0
  379. package/dist/Components/Touch/UtilityButton.svelte +5 -23
  380. package/dist/Components/Touch/UtilityButton.svelte.d.ts +1 -20
  381. package/dist/Components/Touch/UtilityButtonProps.d.ts +20 -0
  382. package/dist/Components/Touch/UtilityButtonProps.js +1 -0
  383. package/dist/Components/VerticalTabGroup.svelte +2 -12
  384. package/dist/Components/VerticalTabGroup.svelte.d.ts +1 -10
  385. package/dist/Components/VerticalTabGroupButton.svelte +18 -20
  386. package/dist/Components/VerticalTabGroupButton.svelte.d.ts +23 -6
  387. package/dist/Components/VerticalTabGroupProps.d.ts +10 -0
  388. package/dist/Components/VerticalTabGroupProps.js +1 -0
  389. package/dist/Contexts/ContextMenuContext.svelte.d.ts +3 -3
  390. package/dist/Contexts/ToastContext.svelte.d.ts +1 -1
  391. package/dist/Contexts/ToastContext.svelte.js +4 -2
  392. package/dist/Contexts/UntypedInputContext.svelte.d.ts +2 -2
  393. package/dist/Contexts/UntypedInputContext.svelte.js +10 -12
  394. package/dist/Helpers/Datamatrix.d.ts +1 -2
  395. package/dist/Helpers/Helpers.svelte.d.ts +8 -3
  396. package/dist/Helpers/Helpers.svelte.js +44 -8
  397. package/dist/Types/Examples/ExampleItem.d.ts +1 -1
  398. package/dist/Types/Examples/ExampleModal.svelte +1 -1
  399. package/dist/Types/Internal/AttributeOperation.js +0 -2
  400. package/dist/Types/Internal/CallbackButton.d.ts +1 -1
  401. package/dist/Types/Internal/GridItem.d.ts +1 -1
  402. package/dist/Types/Internal/GridMultiSelectItem.d.ts +2 -2
  403. package/dist/Types/Internal/GridSelectItem.d.ts +1 -1
  404. package/dist/Types/Internal/TabOption.d.ts +1 -1
  405. package/dist/index.d.ts +158 -73
  406. package/dist/index.js +80 -51
  407. package/package.json +15 -14
@@ -1,18 +1,4 @@
1
- import { type PartialIconProps } from './Icon.svelte';
2
- import type { FocusEventHandler, KeyboardEventHandler } from 'svelte/elements';
3
- export interface InputProps {
4
- value?: string;
5
- label?: string;
6
- placeholder?: string;
7
- required?: boolean;
8
- disabled?: boolean;
9
- showInput?: boolean;
10
- leftIcon?: PartialIconProps;
11
- inputRef?: HTMLInputElement | undefined;
12
- onblur?: FocusEventHandler<HTMLInputElement>;
13
- onfocus?: FocusEventHandler<HTMLInputElement>;
14
- onkeydown?: KeyboardEventHandler<HTMLInputElement>;
15
- }
1
+ import type { InputProps } from './InputProps.js';
16
2
  declare const PasswordInput: import("svelte").Component<InputProps, {}, "value" | "inputRef" | "showInput">;
17
3
  type PasswordInput = ReturnType<typeof PasswordInput>;
18
4
  export default PasswordInput;
@@ -1,16 +1,10 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
4
- export interface PortalProps {
5
- target?: HTMLElement;
6
- children: Snippet;
7
- }
8
- </script>
9
-
10
3
  <script lang="ts">
11
- import { type Snippet } from 'svelte';
4
+ import { browser } from '$app/environment';
5
+ import type { PortalProps } from './PortalProps.js';
12
6
 
13
- let { target = globalThis.document?.body, children }: PortalProps = $props();
7
+ let { target = browser ? globalThis.document.body : undefined, children }: PortalProps = $props();
14
8
 
15
9
  let ref: HTMLElement | undefined = $state();
16
10
 
@@ -1,8 +1,4 @@
1
- export interface PortalProps {
2
- target?: HTMLElement;
3
- children: Snippet;
4
- }
5
- import { type Snippet } from 'svelte';
1
+ import type { PortalProps } from './PortalProps.js';
6
2
  declare const Portal: import("svelte").Component<PortalProps, {}, "">;
7
3
  type Portal = ReturnType<typeof Portal>;
8
4
  export default Portal;
@@ -0,0 +1,5 @@
1
+ import type { Snippet } from 'svelte';
2
+ export interface PortalProps {
3
+ target?: HTMLElement;
4
+ children: Snippet;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,19 +1,12 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
4
- import { getCanvasContext } from '../Helpers/Helpers.svelte.js';
3
+ <script lang="ts">
4
+ import { devCatch, getCanvasContext } from '../Helpers/Helpers.svelte.js';
5
5
  import { tick } from 'svelte';
6
- import type { BubbleColour } from './Bubble.svelte';
7
-
8
- export interface BubbleProps {
9
- value: [number, number];
6
+ import type { BubbleColour } from './BubbleColour.js';
7
+ import type { ProgressBubbleProps } from './ProgressBubbleProps.js';
10
8
 
11
- colours?: BubbleColour | Promise<BubbleColour> | undefined;
12
- }
13
- </script>
14
-
15
- <script lang="ts">
16
- let { value, colours }: BubbleProps = $props();
9
+ let { value, colours }: ProgressBubbleProps = $props();
17
10
 
18
11
  let current = $derived(value[0]);
19
12
  // let current = $derived(37)
@@ -27,16 +20,18 @@
27
20
  $effect(() => {
28
21
  if (progress && progressBarRef) {
29
22
  const oldRef = progressBarRef;
30
- tick().then(() => {
31
- if (oldRef === progressBarRef) {
32
- const textWidth = getCanvasContext().measureText(`__${progress}__`).width;
33
- const progresValueWidth = progressBarRef.getBoundingClientRect().width;
23
+ tick()
24
+ .then(() => {
25
+ if (oldRef === progressBarRef) {
26
+ const textWidth = getCanvasContext()?.measureText(`__${progress}__`).width ?? 0;
27
+ const progresValueWidth = progressBarRef.getBoundingClientRect().width;
34
28
 
35
- fitsInProgressBar = progresValueWidth > textWidth;
36
- } else {
37
- fitsInProgressBar = false;
38
- }
39
- });
29
+ fitsInProgressBar = progresValueWidth > textWidth;
30
+ } else {
31
+ fitsInProgressBar = false;
32
+ }
33
+ })
34
+ .catch(devCatch);
40
35
  }
41
36
  });
42
37
 
@@ -49,7 +44,10 @@
49
44
  .then((c) => {
50
45
  awaitedColours = c;
51
46
  })
52
- .catch((awaitedColours = undefined));
47
+ .catch((e: unknown) => {
48
+ devCatch(e);
49
+ awaitedColours = undefined;
50
+ });
53
51
  } else {
54
52
  awaitedColours = colours;
55
53
  }
@@ -1,8 +1,4 @@
1
- import type { BubbleColour } from './Bubble.svelte';
2
- export interface BubbleProps {
3
- value: [number, number];
4
- colours?: BubbleColour | Promise<BubbleColour> | undefined;
5
- }
6
- declare const ProgressBubble: import("svelte").Component<BubbleProps, {}, "">;
1
+ import type { ProgressBubbleProps } from './ProgressBubbleProps.js';
2
+ declare const ProgressBubble: import("svelte").Component<ProgressBubbleProps, {}, "">;
7
3
  type ProgressBubble = ReturnType<typeof ProgressBubble>;
8
4
  export default ProgressBubble;
@@ -0,0 +1,5 @@
1
+ import type { BubbleColour } from './BubbleColour.js';
2
+ export interface ProgressBubbleProps {
3
+ value: [number, number];
4
+ colours?: BubbleColour | Promise<BubbleColour> | undefined;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -5,10 +5,10 @@
5
5
  labelProp: NonNullableKey<V>;
6
6
  valueProp: VP;
7
7
 
8
- query: (value: string) => Promise<V[]>;
8
+ query: (value: string) => Promise<Array<V>>;
9
9
  onchange: (newValue: V | null) => void;
10
10
 
11
- options?: V[];
11
+ options?: Array<V>;
12
12
  name?: string;
13
13
  disabled?: boolean;
14
14
  width?: string;
@@ -37,7 +37,7 @@
37
37
  > extends QuerySelectPropsAsObjectCommonProps<V, VP> {
38
38
  valueAsObject: false;
39
39
  value: V[VP] | null;
40
- options: V[];
40
+ options: Array<V>;
41
41
  }
42
42
 
43
43
  export type QuerySelectProps<V extends object, VP extends ValueProp<V>> =
@@ -49,19 +49,21 @@
49
49
  <script lang="ts" generics="V extends object, VP extends ValueProp<V>">
50
50
  import { ToastContext } from '../Contexts/ToastContext.svelte.js';
51
51
 
52
+ import { dev } from '$app/environment';
52
53
  import {
54
+ devCatch,
53
55
  generateShortUUID,
54
56
  getErrorMessage,
55
57
  isErrorResponse,
56
58
  vowels
57
59
  } from '../Helpers/Helpers.svelte.js';
58
60
  import { Colour, ColourSet } from '../scss/colours.js';
59
- import Svelecte from 'svelecte';
60
- import { getContext, onMount, tick, untrack } from 'svelte';
61
- import Action from './Action.svelte';
61
+ import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
62
62
  import { Size } from '../Types/Internal/Size.js';
63
63
  import { Validity } from '../Types/Internal/Validity.js';
64
- import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
64
+ import Svelecte from 'svelecte';
65
+ import { getContext, onMount, type Snippet, tick, untrack } from 'svelte';
66
+ import Action from './Action.svelte';
65
67
 
66
68
  let {
67
69
  label,
@@ -79,7 +81,7 @@
79
81
  focusOnLoad = false,
80
82
  inputId = generateShortUUID(),
81
83
  value: selectedValue,
82
- options = $bindable<V[]>([]),
84
+ options = $bindable<Array<V>>([]),
83
85
  isValid,
84
86
  onchange,
85
87
  onfocus
@@ -92,9 +94,9 @@
92
94
  const searchValue = (input as HTMLInputElement).value;
93
95
 
94
96
  const currentHandler = (timeoutHandler = setTimeout(() => {
95
- tryQuery(currentHandler, searchValue);
97
+ tryQuery(currentHandler, searchValue).catch(devCatch);
96
98
  }, 500) as unknown as number);
97
- tryQuery(currentHandler, searchValue);
99
+ tryQuery(currentHandler, searchValue).catch(devCatch);
98
100
  }
99
101
 
100
102
  let ref: Svelecte | undefined = $state();
@@ -103,18 +105,29 @@
103
105
  let isLoading = $state(false);
104
106
  let hasRegisteredListeners = $state(false);
105
107
 
108
+ function isObjectValue(value: unknown): value is V {
109
+ return value !== null && typeof value == 'object' && labelProp in value && valueProp in value;
110
+ }
111
+
106
112
  $effect.pre(() => {
107
113
  void selectedValue;
108
114
  untrack(() => {
109
115
  if (selectedValue != null) {
110
116
  if (valueAsObject) {
111
- if (!options.some((opt: V) => opt[valueProp] === (selectedValue as V)[valueProp])) {
112
- options.push(selectedValue! as V);
117
+ if (isObjectValue(selectedValue)) {
118
+ if (!options.some((opt: V) => opt[valueProp] === selectedValue[valueProp])) {
119
+ options.push(selectedValue);
120
+ }
121
+ } else if (dev) {
122
+ console.warn(`valueAsObject is true but the value doesn't match`, selectedValue);
123
+ return;
113
124
  }
114
125
  } else if (!options.some((opt: V) => opt[valueProp] === selectedValue)) {
115
126
  options.push({
127
+ //best-effort solution. Not a good one
128
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
116
129
  [labelProp]: selectedValue.toString(),
117
- [valueProp as VP]: selectedValue
130
+ [valueProp]: selectedValue
118
131
  } as V);
119
132
  }
120
133
  }
@@ -137,7 +150,7 @@
137
150
  if (focusOnLoad && !hasAutoFocused) {
138
151
  hasAutoFocused = true;
139
152
 
140
- const input = e as HTMLInputElement;
153
+ const input = e;
141
154
 
142
155
  input.click();
143
156
 
@@ -161,12 +174,20 @@
161
174
  }
162
175
  }
163
176
 
177
+ // HACK svelecte type shenanigans
178
+ function isFocusable(ref: unknown): ref is HTMLInputElement {
179
+ return ref != null;
180
+ }
181
+
164
182
  onMount(() => {
165
183
  if (focusOnLoad) {
166
- tick().then(() => {
167
- // FIXME uncomment
168
- ref?.focus();
169
- });
184
+ tick()
185
+ .then(() => {
186
+ if (isFocusable(ref)) {
187
+ ref.focus();
188
+ }
189
+ })
190
+ .catch(devCatch);
170
191
  }
171
192
 
172
193
  const input = document.getElementById(inputId);
@@ -179,16 +200,14 @@
179
200
 
180
201
  // HACK callback for is-open on/off
181
202
  const dropdownRef = input?.closest('div.svelecte')?.querySelector('.sv_dropdown') ?? undefined;
182
- const observer = new MutationObserver(
183
- (mutations: MutationRecord[], observer: MutationObserver) => {
184
- for (let i = mutations.length - 1; i > -1; i--) {
185
- const mutation = mutations[i];
186
- if (mutation.attributeName === 'class') {
187
- isExpanded = dropdownRef?.classList?.contains('is-open') ?? false;
188
- }
203
+ const observer = new MutationObserver((mutations: Array<MutationRecord>) => {
204
+ for (let i = mutations.length - 1; i > -1; i--) {
205
+ const mutation = mutations[i];
206
+ if (mutation.attributeName === 'class') {
207
+ isExpanded = dropdownRef?.classList.contains('is-open') ?? false;
189
208
  }
190
209
  }
191
- );
210
+ });
192
211
 
193
212
  if (dropdownRef) {
194
213
  observer.observe(dropdownRef, { attributes: true });
@@ -203,7 +222,7 @@
203
222
 
204
223
  $effect(() => {
205
224
  if (loadingDiv && isLoading) {
206
- loadingDiv?.classList.add('is-loading');
225
+ loadingDiv.classList.add('is-loading');
207
226
  } else {
208
227
  loadingDiv?.classList.remove('is-loading');
209
228
  }
@@ -215,12 +234,12 @@
215
234
 
216
235
  const inputElement = e;
217
236
 
218
- loadingDiv = inputElement?.parentElement?.parentElement?.nextElementSibling as
237
+ loadingDiv = inputElement.parentElement?.parentElement?.nextElementSibling as
219
238
  | HTMLDivElement
220
239
  | undefined;
221
240
 
222
241
  const currentHandler = (timeoutHandler = setTimeout(() => {
223
- tryQuery(currentHandler, '');
242
+ tryQuery(currentHandler, '').catch(devCatch);
224
243
  }, 500) as unknown as number);
225
244
 
226
245
  inputElement.addEventListener('input', (e) => {
@@ -229,23 +248,25 @@
229
248
  const searchValue = (e.target as HTMLInputElement).value;
230
249
 
231
250
  const currentHandler = (timeoutHandler = setTimeout(() => {
232
- tryQuery(currentHandler, searchValue);
251
+ tryQuery(currentHandler, searchValue).catch(devCatch);
233
252
  }, 500) as unknown as number);
234
253
  });
235
254
 
236
255
  inputElement.addEventListener('keydown', (e) => {
237
256
  if (e.key === 'Enter') {
238
- tick().then(() => {
239
- const searchValue = (e.target as HTMLInputElement).value;
240
- if (searchValue) {
241
- // dispatch('search', { value: inputElement.value });
242
- clearTimeout(timeoutHandler);
243
-
244
- const currentHandler = (timeoutHandler = setTimeout(() => {
245
- tryQuery(currentHandler, searchValue, true);
246
- }, 1) as unknown as number);
247
- }
248
- });
257
+ tick()
258
+ .then(() => {
259
+ const searchValue = (e.target as HTMLInputElement).value;
260
+ if (searchValue) {
261
+ // dispatch('search', { value: inputElement.value });
262
+ clearTimeout(timeoutHandler);
263
+
264
+ const currentHandler = (timeoutHandler = setTimeout(() => {
265
+ tryQuery(currentHandler, searchValue, true).catch(devCatch);
266
+ }, 1) as unknown as number);
267
+ }
268
+ })
269
+ .catch(devCatch);
249
270
  }
250
271
  });
251
272
  }
@@ -283,8 +304,8 @@
283
304
  }
284
305
  }
285
306
 
286
- const an = $derived(vowels.has(name[0]?.toLocaleLowerCase()) ? 'an' : 'a');
287
- let hidden = $state(false);
307
+ const an = $derived(vowels.has(name[0].toLocaleLowerCase()) ? 'an' : 'a');
308
+
288
309
  let isExpanded = $state(false);
289
310
  </script>
290
311
 
@@ -328,13 +349,13 @@
328
349
  lazyDropdown
329
350
  {valueAsObject}
330
351
  {options}
331
- value={selectedValue as any[]}
352
+ value={selectedValue as Array<unknown>}
332
353
  {onChange}
333
354
  selectOnTab
334
355
  deselectMode={required && !clearable ? 'none' : 'toggle'}
335
356
  keepSelectionInList
336
357
  {name}
337
- {selection}
358
+ selection={selection as (selectedOptions: Array<object>) => ReturnType<Snippet>}
338
359
  {append}
339
360
  >
340
361
  {#snippet toggleIcon()}
@@ -353,7 +374,7 @@
353
374
  noTabIndex
354
375
  colourSet={ColourSet.Auxiliary}
355
376
  size={Size.Small}
356
- onclick={(e) => {
377
+ onclick={(e: MouseEvent) => {
357
378
  if (isExpanded) {
358
379
  e.stopPropagation();
359
380
  }
@@ -380,11 +401,11 @@
380
401
  </div>
381
402
  {/snippet}
382
403
 
383
- {#snippet selection(selectedOptions: Array<object>)}
404
+ {#snippet selection(selectedOptions: Array<V>)}
384
405
  {#if selectedOptions.length == 0}
385
- <span class="selection" class:hidden>Please Select {an} {name}</span>
406
+ <span class="selection">Please Select {an} {name}</span>
386
407
  {:else}
387
- <span class="selection">{(selectedOptions as V[])[0][labelProp]}</span>
408
+ <span class="selection">{selectedOptions[0][labelProp]}</span>
388
409
  {/if}
389
410
  {/snippet}
390
411
  </div>
@@ -1,9 +1,9 @@
1
1
  interface QuerySelectPropsAsObjectCommonProps<V extends object, VP extends ValueProp<V>> {
2
2
  labelProp: NonNullableKey<V>;
3
3
  valueProp: VP;
4
- query: (value: string) => Promise<V[]>;
4
+ query: (value: string) => Promise<Array<V>>;
5
5
  onchange: (newValue: V | null) => void;
6
- options?: V[];
6
+ options?: Array<V>;
7
7
  name?: string;
8
8
  disabled?: boolean;
9
9
  width?: string;
@@ -24,7 +24,7 @@ export interface QuerySelectPropsAsObject<V extends object, VP extends ValueProp
24
24
  export interface QuerySelectPropsAsPrimitive<V extends object, VP extends ValueProp<V>> extends QuerySelectPropsAsObjectCommonProps<V, VP> {
25
25
  valueAsObject: false;
26
26
  value: V[VP] | null;
27
- options: V[];
27
+ options: Array<V>;
28
28
  }
29
29
  export type QuerySelectProps<V extends object, VP extends ValueProp<V>> = QuerySelectPropsAsObject<V, VP> | QuerySelectPropsAsPrimitive<V, VP>;
30
30
  import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
@@ -1,64 +1,15 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
4
- import { generateShortUUID, vowels } from '../Helpers/Helpers.svelte.js';
3
+ <script lang="ts" generics="V extends object, VP extends ValueProp<V>">
4
+ import { devCatch, generateShortUUID, vowels } from '../Helpers/Helpers.svelte.js';
5
5
  import { Colour, ColourSet } from '../scss/colours.js';
6
- import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
6
+ import type { ValueProp } from '../Types/Internal/Misc.js';
7
7
  import { Size } from '../Types/Internal/Size.js';
8
8
  import Svelecte from 'svelecte';
9
9
  import { onMount, tick } from 'svelte';
10
10
  import Action from './Action.svelte';
11
+ import type { SingleSelectProps } from './SingleSelectProps.js';
11
12
 
12
- interface SingleSelectCommonProps<V extends object, VP extends ValueProp<V>> {
13
- options: V[];
14
-
15
- labelProp: NonNullableKey<V>;
16
- valueProp: VP;
17
- // value: V | V[VP] | null;
18
-
19
- onchange: (newValue: V | null) => void;
20
-
21
- name?: string;
22
- width?: string;
23
- height?: string;
24
- label?: string;
25
- minHeight?: string;
26
- focusOnLoad?: boolean;
27
- searchable?: boolean;
28
- creatable?: boolean;
29
- onCreateOption?: (option: V) => void;
30
- virtual?: boolean;
31
- clearable?: boolean;
32
- disabled?: boolean;
33
- borderless?: boolean;
34
- forceUpwards?: boolean;
35
- lazyDropdown?: boolean;
36
- required?: boolean;
37
- invalid?: boolean;
38
- inputId?: string;
39
- createFilter?: (value: string) => boolean;
40
- onkeydown?: (e: KeyboardEvent) => void;
41
- onfocus?: (target: HTMLInputElement) => void;
42
- }
43
-
44
- export interface SingleSelectPropsAsObject<V extends object, VP extends ValueProp<V>>
45
- extends SingleSelectCommonProps<V, VP> {
46
- valueAsObject: true;
47
- value: V | null;
48
- }
49
-
50
- export interface SingleSelectPropsAsPrimitive<V extends object, VP extends ValueProp<V>>
51
- extends SingleSelectCommonProps<V, VP> {
52
- valueAsObject: false;
53
- value: V[VP] | null;
54
- }
55
-
56
- export type SingleSelectProps<V extends object, VP extends ValueProp<V>> =
57
- | SingleSelectPropsAsPrimitive<V, VP>
58
- | SingleSelectPropsAsObject<V, VP>;
59
- </script>
60
-
61
- <script lang="ts" generics="V extends object, VP extends ValueProp<V>">
62
13
  const {
63
14
  label,
64
15
  options,
@@ -67,7 +18,7 @@
67
18
  focusOnLoad = false,
68
19
  searchable = true,
69
20
  creatable = false,
70
- virtual = false,
21
+
71
22
  createFilter,
72
23
  disabled,
73
24
  width,
@@ -84,14 +35,15 @@
84
35
  inputId = generateShortUUID(),
85
36
  value: selectedValue,
86
37
  onchange,
87
- onkeydown,
38
+ // onkeydown, // TODO
88
39
  onfocus,
89
40
  onCreateOption
90
41
  }: SingleSelectProps<V, VP> = $props();
91
42
 
92
43
  // FIXME this in combination with the effect may trigger a double assignment on mount. We will need to test it.
93
- let currentValue: V | V[VP] | null = $state(selectedValue);
94
- let ref: Svelecte | undefined = $state();
44
+
45
+ let currentValue = $derived(selectedValue);
46
+ let ref = $state<Svelecte | undefined>();
95
47
  let wrapperRef: HTMLDivElement | undefined = $state();
96
48
 
97
49
  $effect.pre(() => {
@@ -113,7 +65,7 @@
113
65
  // }
114
66
  // });
115
67
 
116
- const an = $derived(name && vowels.has(name[0]?.toLocaleLowerCase()) ? 'an' : 'a');
68
+ const an = $derived(name && vowels.has(name.at(0)?.toLocaleLowerCase() ?? '') ? 'an' : 'a');
117
69
 
118
70
  const isInvalid = $derived((required && !currentValue) || invalid);
119
71
 
@@ -152,10 +104,11 @@
152
104
 
153
105
  onMount(() => {
154
106
  if (focusOnLoad) {
155
- tick().then(() => {
156
- // FIXME uncomment
157
- ref?.focus();
158
- });
107
+ tick()
108
+ .then(() => {
109
+ (ref as HTMLSelectElement | undefined)?.focus();
110
+ })
111
+ .catch(devCatch);
159
112
  }
160
113
 
161
114
  const input = document.getElementById(inputId);
@@ -168,11 +121,11 @@
168
121
 
169
122
  // HACK callback for is-open on/off
170
123
  const dropdownRef = input?.closest('div.svelecte')?.querySelector('.sv_dropdown') ?? undefined;
171
- const observer = new MutationObserver((mutations: MutationRecord[]) => {
124
+ const observer = new MutationObserver((mutations: Array<MutationRecord>) => {
172
125
  for (let i = mutations.length - 1; i > -1; i--) {
173
126
  const mutation = mutations[i];
174
127
  if (mutation.attributeName === 'class') {
175
- isExpanded = dropdownRef?.classList?.contains('is-open') ?? false;
128
+ isExpanded = dropdownRef?.classList.contains('is-open') ?? false;
176
129
  }
177
130
  }
178
131
  });
@@ -194,12 +147,16 @@
194
147
  // currentValue = selectedValue;
195
148
  // }
196
149
  // }
150
+
151
+ function isObject(value: SingleSelectProps<V, VP>['value']): value is V | null {
152
+ return typeof value == 'object';
153
+ }
197
154
  </script>
198
155
 
199
156
  <div
200
157
  class="select-wrapper"
201
158
  class:no-border={borderless}
202
- style={`${width ? `--input-width: ${width};` : ''}${height ? `--input-height: ${height};` : ''}--dropdown-bottom: calc(${dropdownBottom}px + 1px);${`--sv-min-height: ${minHeight ?? '2rem'};`}`}
159
+ style={`${width ? `--input-width: ${width};` : ''}${height ? `--input-height: ${height};` : ''} --dropdown-bottom: calc(${dropdownBottom}px + 1px); --sv-min-height: ${minHeight ?? '2rem'};`}
203
160
  class:invalid={isInvalid}
204
161
  class:force-upwards={forceUpwards}
205
162
  bind:this={wrapperRef}
@@ -237,7 +194,7 @@
237
194
  placeholder="Please Select {name ? `${an} ${name}` : ''}"
238
195
  {lazyDropdown}
239
196
  value={// eslint-disable-next-line @typescript-eslint/no-explicit-any
240
- currentValue as any[]}
197
+ currentValue as Array<any>}
241
198
  onChange={onchange}
242
199
  {searchable}
243
200
  selectOnTab
@@ -251,7 +208,7 @@
251
208
  {#if clearable && currentValue}
252
209
  <Action
253
210
  noTabIndex
254
- onclick={(e) => {
211
+ onclick={(e: MouseEvent) => {
255
212
  if (isExpanded) {
256
213
  e.stopPropagation();
257
214
  }
@@ -286,13 +243,13 @@
286
243
  <Icon name="chevron-down" size={Size.MediumSmall} />
287
244
  </div> -->
288
245
  {/snippet}
289
- <!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
290
- {#snippet selection(selectedOptions: Array<any>)}
246
+
247
+ {#snippet selection(/*_selectedOptions: Array<any>*/)}
291
248
  <!-- <span class="selection">hello</span> -->
292
249
 
293
250
  <span class="selection" class:invalid={isInvalid}>
294
- {#if typeof selectedValue == 'object'}
295
- {(selectedValue as V | null)?.[labelProp]}
251
+ {#if isObject(selectedValue)}
252
+ {selectedValue?.[labelProp]}
296
253
  {:else}
297
254
  {options.find((it) => it[valueProp] === selectedValue)?.[labelProp]}
298
255
  {/if}
@@ -1,40 +1,5 @@
1
- import type { NonNullableKey, ValueProp } from '../Types/Internal/Misc.js';
2
- interface SingleSelectCommonProps<V extends object, VP extends ValueProp<V>> {
3
- options: V[];
4
- labelProp: NonNullableKey<V>;
5
- valueProp: VP;
6
- onchange: (newValue: V | null) => void;
7
- name?: string;
8
- width?: string;
9
- height?: string;
10
- label?: string;
11
- minHeight?: string;
12
- focusOnLoad?: boolean;
13
- searchable?: boolean;
14
- creatable?: boolean;
15
- onCreateOption?: (option: V) => void;
16
- virtual?: boolean;
17
- clearable?: boolean;
18
- disabled?: boolean;
19
- borderless?: boolean;
20
- forceUpwards?: boolean;
21
- lazyDropdown?: boolean;
22
- required?: boolean;
23
- invalid?: boolean;
24
- inputId?: string;
25
- createFilter?: (value: string) => boolean;
26
- onkeydown?: (e: KeyboardEvent) => void;
27
- onfocus?: (target: HTMLInputElement) => void;
28
- }
29
- export interface SingleSelectPropsAsObject<V extends object, VP extends ValueProp<V>> extends SingleSelectCommonProps<V, VP> {
30
- valueAsObject: true;
31
- value: V | null;
32
- }
33
- export interface SingleSelectPropsAsPrimitive<V extends object, VP extends ValueProp<V>> extends SingleSelectCommonProps<V, VP> {
34
- valueAsObject: false;
35
- value: V[VP] | null;
36
- }
37
- export type SingleSelectProps<V extends object, VP extends ValueProp<V>> = SingleSelectPropsAsPrimitive<V, VP> | SingleSelectPropsAsObject<V, VP>;
1
+ import type { ValueProp } from '../Types/Internal/Misc.js';
2
+ import type { SingleSelectProps } from './SingleSelectProps.js';
38
3
  declare function $$render<V extends object, VP extends ValueProp<V>>(): {
39
4
  props: SingleSelectProps<V, VP>;
40
5
  exports: {};