@lavalogic/scoria 0.37.44 → 0.37.45

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 (237) hide show
  1. package/README.md +58 -58
  2. package/dist/Components/AccordionGroup.svelte +46 -46
  3. package/dist/Components/AccordionGroupButton.svelte +76 -76
  4. package/dist/Components/Action.svelte +136 -136
  5. package/dist/Components/ActionProps.d.ts +2 -6
  6. package/dist/Components/AlertModal.svelte +195 -183
  7. package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +702 -702
  8. package/dist/Components/Base/BaseModal.svelte +125 -125
  9. package/dist/Components/Base/ContextWrapper.svelte +72 -72
  10. package/dist/Components/Base/Pagination.svelte +198 -198
  11. package/dist/Components/Base/Snippets.svelte +36 -36
  12. package/dist/Components/BigRadioSet.svelte +38 -38
  13. package/dist/Components/Bubble.svelte +101 -101
  14. package/dist/Components/Button.svelte +209 -209
  15. package/dist/Components/ButtonProps.d.ts +2 -6
  16. package/dist/Components/Checkbox.svelte +86 -86
  17. package/dist/Components/CollapsibleCard.svelte +78 -78
  18. package/dist/Components/Contexts/ContextMenu.svelte +164 -164
  19. package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -15
  20. package/dist/Components/Contexts/ContextMenuOption.svelte +60 -60
  21. package/dist/Components/Contexts/Toast.svelte +83 -83
  22. package/dist/Components/Contexts/ToastContainer.svelte +65 -65
  23. package/dist/Components/Contexts/Tooltip.svelte +37 -37
  24. package/dist/Components/DataMatrixIcon.svelte +112 -112
  25. package/dist/Components/DataMatrixIconProps.d.ts +3 -13
  26. package/dist/Components/DateInput.svelte +148 -148
  27. package/dist/Components/DatePicker.svelte +300 -300
  28. package/dist/Components/DesktopModal.svelte +90 -90
  29. package/dist/Components/Dial.svelte +204 -204
  30. package/dist/Components/DialProps.d.ts +1 -18
  31. package/dist/Components/DimensionInput.svelte +170 -170
  32. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
  33. package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
  34. package/dist/Components/FileCard.svelte +24 -24
  35. package/dist/Components/FileUpload.svelte +236 -236
  36. package/dist/Components/GridInput.svelte +196 -200
  37. package/dist/Components/GridInputSet.svelte +29 -29
  38. package/dist/Components/HorizontalTabGroup.svelte +82 -82
  39. package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
  40. package/dist/Components/Icon.svelte +128 -128
  41. package/dist/Components/IconProps.d.ts +2 -7
  42. package/dist/Components/Icons.js +357 -357
  43. package/dist/Components/LoadingAnimation.svelte +29 -29
  44. package/dist/Components/LoadingModal.svelte +45 -45
  45. package/dist/Components/LoadingOverlay.svelte +25 -25
  46. package/dist/Components/LoadingOverlayProps.d.ts +3 -7
  47. package/dist/Components/Modal.svelte +258 -258
  48. package/dist/Components/ModalProps.d.ts +0 -3
  49. package/dist/Components/MultiSelect.svelte +220 -220
  50. package/dist/Components/MultiSelectCommonProps.d.ts +6 -17
  51. package/dist/Components/Nav/Nav.svelte +99 -99
  52. package/dist/Components/Nav/NavProps.d.ts +4 -11
  53. package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
  54. package/dist/Components/Nav/NavTab.svelte +62 -62
  55. package/dist/Components/Nav/ServiceMenuItem.svelte +100 -100
  56. package/dist/Components/Nav/ServicesNav.svelte +80 -80
  57. package/dist/Components/NumberInput.svelte +157 -157
  58. package/dist/Components/PageHeading.svelte +25 -25
  59. package/dist/Components/PasswordInput.svelte +88 -88
  60. package/dist/Components/Portal.svelte +36 -36
  61. package/dist/Components/ProgressBubble.svelte +107 -108
  62. package/dist/Components/ProgressBubbleProps.d.ts +3 -3
  63. package/dist/Components/QuerySelect.svelte +366 -366
  64. package/dist/Components/QuerySelectProps.d.ts +4 -14
  65. package/dist/Components/SingleSelect.svelte +250 -250
  66. package/dist/Components/SingleSelectCommonProps.d.ts +3 -19
  67. package/dist/Components/StepButton.svelte +70 -70
  68. package/dist/Components/StepForm.svelte +140 -140
  69. package/dist/Components/Switch.svelte +69 -69
  70. package/dist/Components/Table/ARCHITECTURE.md +298 -0
  71. package/dist/Components/Table/Body/QuickSearchCell.svelte +679 -694
  72. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
  73. package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
  74. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +456 -478
  75. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
  76. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +185 -188
  77. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +124 -124
  78. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
  79. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +230 -230
  80. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
  81. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +12 -9
  82. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -5
  83. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
  84. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
  85. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
  86. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
  87. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -4
  88. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
  89. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +6 -5
  90. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +7 -6
  91. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +252 -257
  92. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
  93. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +221 -229
  94. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +11 -11
  95. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
  96. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
  97. package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
  98. package/dist/Components/Table/Body/TableBody.svelte +155 -155
  99. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +2 -3
  100. package/dist/Components/Table/ColumnFactory.svelte.d.ts +9 -11
  101. package/dist/Components/Table/ColumnFactory.svelte.js +101 -118
  102. package/dist/Components/Table/ColumnKindRegistry.d.ts +112 -0
  103. package/dist/Components/Table/ColumnKindRegistry.js +63 -0
  104. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
  105. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
  106. package/dist/Components/Table/Headers/TableHead.svelte +415 -413
  107. package/dist/Components/Table/Misc/ColumnPanel.svelte +94 -94
  108. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -112
  109. package/dist/Components/Table/Misc/FilterInput.svelte +620 -644
  110. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  111. package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
  112. package/dist/Components/Table/Misc/FilterPanel.svelte +257 -257
  113. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -30
  114. package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
  115. package/dist/Components/Table/Misc/TableFooter.svelte +311 -311
  116. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +125 -125
  117. package/dist/Components/Table/Misc/TableSidebar.svelte +157 -157
  118. package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
  119. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
  120. package/dist/Components/Table/NestedTable.svelte +130 -133
  121. package/dist/Components/Table/SubApis.svelte.d.ts +1 -5
  122. package/dist/Components/Table/SubApis.svelte.js +33 -32
  123. package/dist/Components/Table/Table.svelte +692 -745
  124. package/dist/Components/Table/TableHelpers.svelte.d.ts +6 -19
  125. package/dist/Components/Table/TableHelpers.svelte.js +6 -14
  126. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  127. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +3 -3
  128. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -7
  129. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +7 -8
  130. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +4 -5
  131. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +11 -14
  132. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +3 -4
  133. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +7 -11
  134. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +3 -3
  135. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +13 -18
  136. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +4 -5
  137. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +5 -5
  138. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +2 -2
  139. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +15 -12
  140. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +4 -5
  141. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +8 -12
  142. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +3 -3
  143. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +6 -6
  144. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +3 -3
  145. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +49 -16
  146. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +27 -5
  147. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -7
  148. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +4 -4
  149. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -5
  150. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +2 -2
  151. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +5 -5
  152. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +2 -2
  153. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -5
  154. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +2 -2
  155. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +5 -5
  156. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +2 -2
  157. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +11 -19
  158. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +4 -8
  159. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +6 -7
  160. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +3 -4
  161. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +9 -9
  162. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +4 -4
  163. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +5 -5
  164. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +6 -6
  165. package/dist/Components/Table/Types/Columns/TableCell.d.ts +7 -6
  166. package/dist/Components/Table/Types/Context/ClipboardState.svelte.d.ts +98 -0
  167. package/dist/Components/Table/Types/Context/ClipboardState.svelte.js +290 -0
  168. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +17 -45
  169. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +17 -45
  170. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +9 -20
  171. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +9 -20
  172. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +23 -42
  173. package/dist/Components/Table/Types/Context/FocusState.svelte.js +32 -59
  174. package/dist/Components/Table/Types/Context/ITable.d.ts +5 -8
  175. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +29 -56
  176. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +28 -55
  177. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.d.ts +50 -0
  178. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.js +62 -0
  179. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +17 -28
  180. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +17 -28
  181. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +15 -29
  182. package/dist/Components/Table/Types/Context/SortingState.svelte.js +17 -31
  183. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +212 -325
  184. package/dist/Components/Table/Types/Context/TableContext.svelte.js +292 -706
  185. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +62 -79
  186. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +54 -73
  187. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +16 -27
  188. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +16 -27
  189. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +12 -15
  190. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +15 -30
  191. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +16 -28
  192. package/dist/Components/Table/Types/Header.d.ts +4 -4
  193. package/dist/Components/Table/Types/HeaderGroup.d.ts +5 -5
  194. package/dist/Components/Table/Types/Public/index.d.ts +2 -4
  195. package/dist/Components/Table/Types/Public/index.js +2 -4
  196. package/dist/Components/Table/clipboardEscape.d.ts +32 -0
  197. package/dist/Components/Table/clipboardEscape.js +45 -0
  198. package/dist/Components/Table/createTable.svelte.d.ts +8 -18
  199. package/dist/Components/Table/createTable.svelte.js +19 -47
  200. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  201. package/dist/Components/TextArea.svelte +130 -130
  202. package/dist/Components/TextInput.svelte +176 -176
  203. package/dist/Components/ThreeStateRadio.svelte +131 -131
  204. package/dist/Components/Touch/BoolCard.svelte +45 -45
  205. package/dist/Components/Touch/DateModal.svelte +209 -209
  206. package/dist/Components/Touch/EditCard.svelte +59 -59
  207. package/dist/Components/Touch/InfoCard.svelte +31 -31
  208. package/dist/Components/Touch/InfoTextCard.svelte +28 -28
  209. package/dist/Components/Touch/ModalExplanation.svelte +17 -17
  210. package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
  211. package/dist/Components/Touch/NumberModal.svelte +79 -79
  212. package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
  213. package/dist/Components/Touch/SelectModal.svelte +123 -123
  214. package/dist/Components/Touch/SummaryCard.svelte +93 -93
  215. package/dist/Components/Touch/TextAreaModal.svelte +95 -95
  216. package/dist/Components/Touch/TextModal.svelte +106 -106
  217. package/dist/Components/Touch/TouchCard.svelte +33 -33
  218. package/dist/Components/Touch/TouchModal.svelte +274 -274
  219. package/dist/Components/Touch/UtilityButton.svelte +109 -109
  220. package/dist/Components/VerticalTabGroup.svelte +79 -79
  221. package/dist/Components/VerticalTabGroupButton.svelte +58 -58
  222. package/dist/Contexts/ToastContext.svelte.js +3 -4
  223. package/dist/Helpers/Datamatrix.d.ts +19 -19
  224. package/dist/Helpers/Datamatrix.js +291 -291
  225. package/dist/Helpers/Helpers.svelte.d.ts +2 -4
  226. package/dist/Helpers/Helpers.svelte.js +2 -4
  227. package/dist/Helpers/dropdownPortal.d.ts +26 -41
  228. package/dist/Helpers/dropdownPortal.js +62 -116
  229. package/dist/Types/Examples/ExampleModal.svelte +35 -35
  230. package/dist/index.d.ts +0 -1
  231. package/dist/scss/_basics.scss +12 -12
  232. package/dist/scss/_colours.scss +134 -134
  233. package/dist/scss/_mixins.scss +3348 -3360
  234. package/dist/scss/_motion.scss +57 -57
  235. package/dist/scss/_sizing.scss +85 -85
  236. package/dist/scss/_transitions.scss +8 -8
  237. package/package.json +2 -1
@@ -5,11 +5,6 @@ import type { CustomFilter } from './Types/Filtering/CustomFilter.js';
5
5
  import type { RefWrapper } from '../../Types/Internal/RefWrapper.js';
6
6
  /**
7
7
  * Argument object passed to {@link createLocalTable}.
8
- *
9
- * Lives under `Components/Table/` because it references Table-internal types
10
- * ({@link DefsWrapper}, {@link Primitive}) that callers outside the Table
11
- * subtree should not need to know about. Re-exported from the library entry
12
- * point for public consumption.
13
8
  */
14
9
  export interface ICreateTableArgs<T extends object, RowIdType extends Primitive> {
15
10
  name: string;
@@ -22,24 +17,16 @@ export interface ICreateTableArgs<T extends object, RowIdType extends Primitive>
22
17
  * Convenience factory that wires up a {@link TableContext} backed by a
23
18
  * {@link LocalTableDataRepository} (in-memory, `$state`-backed data).
24
19
  *
25
- * Co-located with the Table subtree it serves: previously this lived in the
26
- * generic `Helpers.svelte.ts`, which forced every consumer of unrelated
27
- * helpers (such as `getErrorMessage` or `asyncMap`) to drag the entire Table
28
- * subtree into their dependency graph and broke tree-shaking. Moving the
29
- * factory here breaks the structural cycle
30
- * `Helpers <-> TableContext <-> RowSelectionDef` while keeping the public
31
- * `@lavalogic/scoria` surface unchanged via re-export from `src/lib/index.ts`.
20
+ * Lives in this file (rather than the generic `Helpers.svelte.ts`) to avoid
21
+ * a structural cycle between `Helpers` and the Table subtree and to keep
22
+ * unrelated helpers tree-shakeable. Re-exported from `src/lib/index.ts`.
32
23
  */
33
24
  export declare function createLocalTable<T extends object, RowIdType extends Primitive>(args: ICreateTableArgs<T, RowIdType>): TableContext<T, RowIdType>;
34
25
  /**
35
26
  * Typeguard narrowing a {@link CustomFilter} to a Select-typed filter that
36
- * carries a non-null `query` function. Useful inside column definitions and
37
- * filter panel components that need to differentiate query-driven select
38
- * filters from value-list select filters before invoking the async loader.
39
- *
40
- * Belongs under `Components/Table/` because it is meaningful only for the
41
- * {@link CustomFilter}/{@link CustomFilterType} discriminated union owned by
42
- * the Table subtree.
27
+ * carries a non-null `query` function. Used by column definitions and filter
28
+ * panels to differentiate query-driven select filters from value-list select
29
+ * filters before invoking the async loader.
43
30
  */
44
31
  export declare function hasQuery<FilterValueType>(customFilter: CustomFilter<FilterValueType> | undefined): customFilter is CustomFilter<FilterValueType> & Required<Pick<CustomFilter<FilterValueType>, 'query'>>;
45
32
  /**
@@ -5,13 +5,9 @@ import { CustomFilterType } from './Types/Filtering/CustomFilterType.js';
5
5
  * Convenience factory that wires up a {@link TableContext} backed by a
6
6
  * {@link LocalTableDataRepository} (in-memory, `$state`-backed data).
7
7
  *
8
- * Co-located with the Table subtree it serves: previously this lived in the
9
- * generic `Helpers.svelte.ts`, which forced every consumer of unrelated
10
- * helpers (such as `getErrorMessage` or `asyncMap`) to drag the entire Table
11
- * subtree into their dependency graph and broke tree-shaking. Moving the
12
- * factory here breaks the structural cycle
13
- * `Helpers <-> TableContext <-> RowSelectionDef` while keeping the public
14
- * `@lavalogic/scoria` surface unchanged via re-export from `src/lib/index.ts`.
8
+ * Lives in this file (rather than the generic `Helpers.svelte.ts`) to avoid
9
+ * a structural cycle between `Helpers` and the Table subtree and to keep
10
+ * unrelated helpers tree-shakeable. Re-exported from `src/lib/index.ts`.
15
11
  */
16
12
  export function createLocalTable(args) {
17
13
  const localRepo = new LocalTableDataRepository(args.name, args.data, args.getUserId);
@@ -22,13 +18,9 @@ export function createLocalTable(args) {
22
18
  }
23
19
  /**
24
20
  * Typeguard narrowing a {@link CustomFilter} to a Select-typed filter that
25
- * carries a non-null `query` function. Useful inside column definitions and
26
- * filter panel components that need to differentiate query-driven select
27
- * filters from value-list select filters before invoking the async loader.
28
- *
29
- * Belongs under `Components/Table/` because it is meaningful only for the
30
- * {@link CustomFilter}/{@link CustomFilterType} discriminated union owned by
31
- * the Table subtree.
21
+ * carries a non-null `query` function. Used by column definitions and filter
22
+ * panels to differentiate query-driven select filters from value-list select
23
+ * filters before invoking the async loader.
32
24
  */
33
25
  export function hasQuery(customFilter) {
34
26
  return (!!customFilter &&
@@ -9,9 +9,9 @@ import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
9
9
  * properties of `T`. Tightening this to a union of accessor-keys and
10
10
  * synthetic-prefixed brands is deferred (see workorder `ColumnDef` finding 1).
11
11
  */
12
- export interface Column<T extends object, in FilterFnType = never, out FilterOptionsType = unknown> {
12
+ export interface Column<T extends object, in FilterFnType = never> {
13
13
  id: string;
14
- columnDef: ColumnDef<T, FilterFnType, FilterOptionsType>;
14
+ columnDef: ColumnDef<T, FilterFnType>;
15
15
  getCanSort: () => boolean;
16
16
  getToggleSortingHandler: () => ((e: MouseEvent) => void) | undefined;
17
17
  getIsSorted: () => 'asc' | 'desc' | 'none';
@@ -1,13 +1,13 @@
1
1
  import type { DateInputDef } from './Definitions/Accessors/DateInputDef.svelte.js';
2
2
  /**
3
3
  * Narrowed `Column<T>` whose `columnDef` is a `DateInputDef`. Currently
4
- * declares its own shape rather than `extends Column<T, F, S>`; collapsing to
4
+ * declares its own shape rather than `extends Column<T, F>`; collapsing to
5
5
  * an extension is deferred (see workorder Types-Columns finding 10) because
6
6
  * the interface compatibility shift is consumer-facing.
7
7
  */
8
- export interface DateColumn<T extends object, in FilterValueType, out SelectValueType> {
8
+ export interface DateColumn<T extends object, in FilterValueType> {
9
9
  id: string;
10
- columnDef: DateInputDef<T, FilterValueType, SelectValueType>;
10
+ columnDef: DateInputDef<T, FilterValueType>;
11
11
  getCanSort: () => boolean;
12
12
  getToggleSortingHandler: () => (e: MouseEvent) => void;
13
13
  getIsSorted: () => 'asc' | 'desc' | 'none';
@@ -1,14 +1,14 @@
1
1
  import type { Row } from '../Context/Row.js';
2
2
  import type { DateColumn } from './DateColumn.js';
3
3
  /**
4
- * Narrowed `TableCell<T>` for date columns. `getValue` is still typed
5
- * `unknown` because the canonical signature on `TableCell<T>` is also
6
- * `unknown`; tightening to `Date | null | undefined | Promise<Date | null
7
- * | undefined>` is deferred to the `TableCell.getValue` workorder so the
8
- * tightening happens in one place rather than per cell variant.
4
+ * Narrowed `TableCell<T>` for date columns. `getValue` stays `unknown`
5
+ * because the canonical signature on `TableCell<T>` is `unknown`;
6
+ * tightening to `Date | null | undefined | Promise<Date | null |
7
+ * undefined>` happens once `TableCell.getValue` is tightened
8
+ * library-wide.
9
9
  */
10
- export interface DateTableCell<T extends object, in FilterValueType, out SelectValueType> {
11
- column: DateColumn<T, FilterValueType, SelectValueType>;
10
+ export interface DateTableCell<T extends object, in FilterValueType> {
11
+ column: DateColumn<T, FilterValueType>;
12
12
  row: Row<T>;
13
13
  id: string;
14
14
  getValue: () => unknown;
@@ -9,15 +9,14 @@ import type { AccessorType } from './AccessorType.js';
9
9
  * (`CheckboxDef`, `NumberInputDef`, etc.) can pin it to their natural
10
10
  * runtime shape.
11
11
  */
12
- export interface AccessorDefProps<T extends object, in FilterValueType, out FilterOptionsType, TValue = unknown> extends ColumnDefProps<T, FilterValueType, FilterOptionsType, TValue> {
12
+ export interface AccessorDefProps<T extends object, in FilterValueType, TValue = unknown> extends ColumnDefProps<T, FilterValueType, TValue> {
13
13
  readonly id: string & keyof T;
14
14
  }
15
15
  /**
16
- * `AccessorDef<T, FilterValueType, FilterOptionsType, TValue>` is the
17
- * base for every data-backed column definition. Discriminates as
18
- * `ColumnType.Accessor` and exposes a further `accessorType` literal
19
- * that each leaf subclass narrows (`Checkbox`, `Number`, `Text`,
20
- * `Date`, `Select`, `Query`).
16
+ * `AccessorDef<T, FilterValueType, TValue>` is the base for every
17
+ * data-backed column definition. Discriminates as `ColumnType.Accessor`
18
+ * and exposes a further `accessorType` literal that each leaf subclass
19
+ * narrows (`Checkbox`, `Number`, `Text`, `Date`, `Select`, `Query`).
21
20
  *
22
21
  * The `TValue` generic is threaded down from `ColumnDef`; subclasses
23
22
  * such as `CheckboxDef`, `NumberInputDef`, `TextInputDef`, and
@@ -25,8 +24,8 @@ export interface AccessorDefProps<T extends object, in FilterValueType, out Filt
25
24
  * matching `TableCell.getValue()` returns the correct narrow type
26
25
  * rather than `unknown`.
27
26
  */
28
- export declare abstract class AccessorDef<T extends object, in FilterValueType, out FilterOptionsType, TValue = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType, TValue> {
29
- constructor(props: AccessorDefProps<T, FilterValueType, FilterOptionsType, TValue>);
27
+ export declare abstract class AccessorDef<T extends object, in FilterValueType, TValue = unknown> extends ColumnDef<T, FilterValueType, TValue> {
28
+ constructor(props: AccessorDefProps<T, FilterValueType, TValue>);
30
29
  /** Discriminator literal pinning every `AccessorDef` subclass to the
31
30
  * `Accessor` column kind. Subclasses further narrow via `accessorType`. */
32
31
  readonly columnType: "Accessor";
@@ -1,11 +1,10 @@
1
1
  import { ColumnType } from '../../ColumnType.js';
2
2
  import { ColumnDef } from '../ColumnDef.svelte.js';
3
3
  /**
4
- * `AccessorDef<T, FilterValueType, FilterOptionsType, TValue>` is the
5
- * base for every data-backed column definition. Discriminates as
6
- * `ColumnType.Accessor` and exposes a further `accessorType` literal
7
- * that each leaf subclass narrows (`Checkbox`, `Number`, `Text`,
8
- * `Date`, `Select`, `Query`).
4
+ * `AccessorDef<T, FilterValueType, TValue>` is the base for every
5
+ * data-backed column definition. Discriminates as `ColumnType.Accessor`
6
+ * and exposes a further `accessorType` literal that each leaf subclass
7
+ * narrows (`Checkbox`, `Number`, `Text`, `Date`, `Select`, `Query`).
9
8
  *
10
9
  * The `TValue` generic is threaded down from `ColumnDef`; subclasses
11
10
  * such as `CheckboxDef`, `NumberInputDef`, `TextInputDef`, and
@@ -4,26 +4,23 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
4
  * Construction-time props for `CheckboxDef`. The `TValue` generic is
5
5
  * pinned to `boolean` so `cell.getValue()` returns the narrow type.
6
6
  *
7
- * Notes:
8
- * - `in FilterValueType` / `out SelectValueType` are unused by the
9
- * checkbox UI today but retained so the shape parallels every other
10
- * `AccessorDef` subclass.
11
- * - The base interface is extended without adding fields; the marker
12
- * exists for symmetry and so future checkbox-specific props can be
13
- * added without a breaking-change rename.
7
+ * The `FilterValueType` generic is unused by the checkbox UI today
8
+ * (the column has no filter input) but retained so the shape parallels
9
+ * every other `AccessorDef` subclass. The base interface is extended
10
+ * without adding fields; the marker exists for symmetry and so future
11
+ * checkbox-specific props can be added without a breaking-change rename.
14
12
  */
15
- export interface CheckboxDefProps<T extends object, in FilterValueType = BoolFilterValueType, out SelectValueType = BoolFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType, boolean> {
13
+ export interface CheckboxDefProps<T extends object, in FilterValueType = BoolFilterValueType> extends AccessorDefProps<T, FilterValueType, boolean> {
16
14
  }
17
15
  /**
18
- * `CheckboxDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
19
- * whose declared value is a `boolean`. The fixed `TValue = boolean`
20
- * narrows `cell.getValue()` to `boolean | Promise<boolean>` at the cell
21
- * layer.
16
+ * `CheckboxDef<T, FilterValueType>` is an `AccessorDef` whose declared
17
+ * value is a `boolean`. The fixed `TValue = boolean` narrows
18
+ * `cell.getValue()` to `boolean | Promise<boolean>` at the cell layer.
22
19
  */
23
- export declare class CheckboxDef<T extends object, in FilterValueType = BoolFilterValueType, out SelectValueType = BoolFilterValueType> extends AccessorDef<T, FilterValueType, SelectValueType, boolean> {
20
+ export declare class CheckboxDef<T extends object, in FilterValueType = BoolFilterValueType> extends AccessorDef<T, FilterValueType, boolean> {
24
21
  /** Inner discriminator literal. */
25
22
  readonly accessorType: "Checkbox";
26
- constructor(props: CheckboxDefProps<T, FilterValueType, SelectValueType>);
23
+ constructor(props: CheckboxDefProps<T, FilterValueType>);
27
24
  private _filterFn;
28
25
  /** Filter predicate. Reassignable so consumers can swap the filter
29
26
  * function post-construction. */
@@ -1,10 +1,9 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `CheckboxDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
5
- * whose declared value is a `boolean`. The fixed `TValue = boolean`
6
- * narrows `cell.getValue()` to `boolean | Promise<boolean>` at the cell
7
- * layer.
4
+ * `CheckboxDef<T, FilterValueType>` is an `AccessorDef` whose declared
5
+ * value is a `boolean`. The fixed `TValue = boolean` narrows
6
+ * `cell.getValue()` to `boolean | Promise<boolean>` at the cell layer.
8
7
  */
9
8
  export class CheckboxDef extends AccessorDef {
10
9
  /** Inner discriminator literal. */
@@ -4,25 +4,21 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
4
  * Construction-time props for `DateInputDef`. The `TValue` generic is
5
5
  * pinned to `Date | null`.
6
6
  *
7
- * Notes:
8
- * - `showTime` controls whether the input renders a time picker.
9
- * - The third generic (`SelectValueType`) is unused by the date input
10
- * today but retained so the shape parallels every other
11
- * `AccessorDef` subclass.
7
+ * `showTime` controls whether the input renders a time picker.
12
8
  */
13
- export interface DateInputDefProps<T extends object, in FilterValueType = DateFilterValueType, out SelectValueType = DateFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType, Date | null> {
9
+ export interface DateInputDefProps<T extends object, in FilterValueType = DateFilterValueType> extends AccessorDefProps<T, FilterValueType, Date | null> {
14
10
  /** Whether to render a time picker alongside the date picker. Defaults to false. */
15
11
  showTime?: boolean;
16
12
  }
17
13
  /**
18
- * `DateInputDef<T, FilterValueType, SelectValueType>` fixes its
19
- * declared value type at `Date | null` so cell consumers can drop the
20
- * bespoke cast on `cell.getValue()`.
14
+ * `DateInputDef<T, FilterValueType>` fixes its declared value type at
15
+ * `Date | null` so cell consumers can drop the bespoke cast on
16
+ * `cell.getValue()`.
21
17
  */
22
- export declare class DateInputDef<T extends object, in FilterValueType = DateFilterValueType, out SelectValueType = DateFilterValueType> extends AccessorDef<T, FilterValueType, SelectValueType, Date | null> {
18
+ export declare class DateInputDef<T extends object, in FilterValueType = DateFilterValueType> extends AccessorDef<T, FilterValueType, Date | null> {
23
19
  /** Inner discriminator literal. */
24
20
  readonly accessorType: "Date";
25
- constructor(props: DateInputDefProps<T, FilterValueType, SelectValueType>);
21
+ constructor(props: DateInputDefProps<T, FilterValueType>);
26
22
  private _filterFn;
27
23
  /** Filter predicate. Reassignable. */
28
24
  get filterFn(): FilterFn<T, FilterValueType> | undefined;
@@ -1,9 +1,9 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `DateInputDef<T, FilterValueType, SelectValueType>` fixes its
5
- * declared value type at `Date | null` so cell consumers can drop the
6
- * bespoke cast on `cell.getValue()`.
4
+ * `DateInputDef<T, FilterValueType>` fixes its declared value type at
5
+ * `Date | null` so cell consumers can drop the bespoke cast on
6
+ * `cell.getValue()`.
7
7
  */
8
8
  export class DateInputDef extends AccessorDef {
9
9
  /** Inner discriminator literal. */
@@ -1,35 +1,30 @@
1
1
  import type { FilterFn, NumberFilterValueType } from '../../../Filtering/FilterFn.js';
2
2
  import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
3
3
  /**
4
- * Construction-time props for `NumberInputDef`. The `TValue` generic is
5
- * pinned to `number | string | null` - the widened union accepts the
6
- * historic cell behaviour where a `string` may be parsed at render time
7
- * and a `null` is interpreted as "no value".
4
+ * Construction-time props for `NumberInputDef`. The `TValue` generic
5
+ * is pinned to `number | string | null` - cells accept a `string`
6
+ * that the input widget parses at render time, and `null` means "no
7
+ * value".
8
8
  *
9
- * Notes:
10
- * - `min` / `max` are not enforced at the definition layer; the input
11
- * widget clamps at render time. Tracked in the workorder.
12
- * - The third generic (now `OptionsValueType`, previously misspelled
13
- * `OptionssValueType`) is unused by the number input today but
14
- * retained so the shape parallels every other `AccessorDef` subclass.
9
+ * `min` / `max` are not enforced at the definition layer; the input
10
+ * widget clamps at render time.
15
11
  */
16
- export interface NumberInputDefProps<T extends object, in FilterValueType = NumberFilterValueType, out OptionsValueType = NumberFilterValueType> extends AccessorDefProps<T, FilterValueType, OptionsValueType, number | string | null> {
12
+ export interface NumberInputDefProps<T extends object, in FilterValueType = NumberFilterValueType> extends AccessorDefProps<T, FilterValueType, number | string | null> {
17
13
  /** Minimum value accepted by the input widget. */
18
14
  min: number;
19
15
  /** Maximum value accepted by the input widget. */
20
16
  max: number;
21
17
  }
22
18
  /**
23
- * `NumberInputDef<T, FilterValueType, OptionsValueType>` fixes its
24
- * declared value type at `number | string | null`. The widened union
25
- * accepts the historic cell behaviour where a `string` may be parsed
26
- * at render time and a `null` is interpreted as "no value". Cell
27
- * consumers can drop the `as number` cast on `cell.getValue()`.
19
+ * `NumberInputDef<T, FilterValueType>` fixes its declared value type
20
+ * at `number | string | null` so cells can carry a `string` that the
21
+ * input parses at render time, or `null` for "no value". Cell
22
+ * consumers do not need an `as number` cast on `cell.getValue()`.
28
23
  */
29
- export declare class NumberInputDef<T extends object, in FilterValueType = NumberFilterValueType, out OptionsValueType = NumberFilterValueType> extends AccessorDef<T, FilterValueType, OptionsValueType, number | string | null> {
24
+ export declare class NumberInputDef<T extends object, in FilterValueType = NumberFilterValueType> extends AccessorDef<T, FilterValueType, number | string | null> {
30
25
  /** Inner discriminator literal. */
31
26
  readonly accessorType: "Number";
32
- constructor(props: NumberInputDefProps<T, FilterValueType, OptionsValueType>);
27
+ constructor(props: NumberInputDefProps<T, FilterValueType>);
33
28
  /** Minimum value accepted by the input widget. */
34
29
  readonly min: number;
35
30
  /** Maximum value accepted by the input widget. */
@@ -1,11 +1,10 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `NumberInputDef<T, FilterValueType, OptionsValueType>` fixes its
5
- * declared value type at `number | string | null`. The widened union
6
- * accepts the historic cell behaviour where a `string` may be parsed
7
- * at render time and a `null` is interpreted as "no value". Cell
8
- * consumers can drop the `as number` cast on `cell.getValue()`.
4
+ * `NumberInputDef<T, FilterValueType>` fixes its declared value type
5
+ * at `number | string | null` so cells can carry a `string` that the
6
+ * input parses at render time, or `null` for "no value". Cell
7
+ * consumers do not need an `as number` cast on `cell.getValue()`.
9
8
  */
10
9
  export class NumberInputDef extends AccessorDef {
11
10
  /** Inner discriminator literal. */
@@ -11,7 +11,7 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
11
11
  * Implementations forwarding the query string to a backend MUST escape
12
12
  * or parameterise it before use. Documented in the workorder.
13
13
  */
14
- export interface QueryDefProps<T extends object, in FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDefProps<T, FilterValueType, FilterOptionsType> {
14
+ export interface QueryDefProps<T extends object, in FilterValueType = unknown> extends AccessorDefProps<T, FilterValueType> {
15
15
  /** Async option provider. Receives raw user input from the search box;
16
16
  * implementations forwarding to a backend must escape the query. */
17
17
  query: (queryString: string, item: T, index: number) => Promise<Array<SelectOption<unknown>>>;
@@ -21,13 +21,13 @@ export interface QueryDefProps<T extends object, in FilterValueType = unknown, o
21
21
  clearable?: boolean;
22
22
  }
23
23
  /**
24
- * `QueryDef<T, FilterValueType, FilterOptionsType>` is an `AccessorDef`
25
- * backed by an asynchronous option provider (typeahead).
24
+ * `QueryDef<T, FilterValueType>` is an `AccessorDef` backed by an
25
+ * asynchronous option provider (typeahead).
26
26
  */
27
- export declare class QueryDef<T extends object, FilterValueType = unknown, out FilterOptionsType = unknown> extends AccessorDef<T, FilterValueType, FilterOptionsType> {
27
+ export declare class QueryDef<T extends object, in FilterValueType = unknown> extends AccessorDef<T, FilterValueType> {
28
28
  /** Inner discriminator literal. */
29
29
  readonly accessorType: "Query";
30
- constructor(props: QueryDefProps<T, FilterValueType, FilterOptionsType>);
30
+ constructor(props: QueryDefProps<T, FilterValueType>);
31
31
  /** Filter predicate. Bound at construction. */
32
32
  readonly filterFn: FilterFn<T, FilterValueType> | undefined;
33
33
  /** Required at the subclass layer. */
@@ -1,8 +1,8 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `QueryDef<T, FilterValueType, FilterOptionsType>` is an `AccessorDef`
5
- * backed by an asynchronous option provider (typeahead).
4
+ * `QueryDef<T, FilterValueType>` is an `AccessorDef` backed by an
5
+ * asynchronous option provider (typeahead).
6
6
  */
7
7
  export class QueryDef extends AccessorDef {
8
8
  /** Inner discriminator literal. */
@@ -7,33 +7,36 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
7
7
  * required - the option label is decoupled from the stored value and
8
8
  * the dropdown cannot render without an option set.
9
9
  *
10
+ * The single `FilterValueType` generic doubles as both the filter
11
+ * value type and the option value type - the audit found these are
12
+ * always set to the same type at every factory call site.
13
+ *
10
14
  * Notes:
11
15
  * - `getSpecificOptions` returns a per-row option set; it is invoked
12
16
  * per cell per render with no caching (tracked in perf workorder).
13
17
  * - `optional` controls whether the cell may be cleared; `clearable`
14
18
  * controls whether the widget exposes a clear affordance.
15
19
  */
16
- export interface SelectDefProps<T extends object, in FilterValueType, out SelectValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType> {
20
+ export interface SelectDefProps<T extends object, FilterValueType> extends AccessorDefProps<T, FilterValueType> {
17
21
  /** Required. Returns the global option set for the dropdown. */
18
- getOptions: () => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
22
+ getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
19
23
  /** Required. Maps the stored value to a display label. */
20
24
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
21
25
  /** Optional per-row option override. Invoked per cell per render. */
22
- getSpecificOptions?: (item: T, index: number) => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
26
+ getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
23
27
  /** Whether the cell may be cleared. Defaults to false. */
24
28
  optional?: boolean;
25
29
  /** Whether the widget exposes a clear affordance. Defaults to true. */
26
30
  clearable?: boolean;
27
31
  }
28
32
  /**
29
- * `SelectDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
30
- * backed by a finite option set. The `declare`-redeclaration of
31
- * `getDisplayValue` / `getOptions` below narrows the optional base
32
- * contract to required: callers can rely on both being defined at the
33
- * subclass layer.
33
+ * `SelectDef<T, FilterValueType>` is an `AccessorDef` backed by a
34
+ * finite option set. The `declare`-redeclaration of `getDisplayValue`
35
+ * / `getOptions` below narrows the optional base contract to required:
36
+ * callers can rely on both being defined at the subclass layer.
34
37
  */
35
- export declare class SelectDef<T extends object, in FilterValueType, out SelectValueType> extends AccessorDef<T, FilterValueType, SelectValueType> {
36
- constructor(props: SelectDefProps<T, FilterValueType, SelectValueType>);
38
+ export declare class SelectDef<T extends object, FilterValueType> extends AccessorDef<T, FilterValueType> {
39
+ constructor(props: SelectDefProps<T, FilterValueType>);
37
40
  /** Inner discriminator literal. */
38
41
  readonly accessorType: "Select";
39
42
  private _filterFn;
@@ -45,9 +48,9 @@ export declare class SelectDef<T extends object, in FilterValueType, out SelectV
45
48
  /** Whether the widget exposes a clear affordance. */
46
49
  readonly clearable: boolean;
47
50
  /** Per-row option override; invoked per cell per render. */
48
- readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
51
+ readonly getSpecificOptions?: (item: T, index: number) => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
49
52
  /** Required at the subclass layer. */
50
53
  getDisplayValue: (item: T, index: number) => string | null | Promise<string | null>;
51
54
  /** Required at the subclass layer. */
52
- getOptions: () => Array<SelectOption<SelectValueType>> | Promise<Array<SelectOption<SelectValueType>>>;
55
+ getOptions: () => Array<SelectOption<FilterValueType>> | Promise<Array<SelectOption<FilterValueType>>>;
53
56
  }
@@ -1,11 +1,10 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `SelectDef<T, FilterValueType, SelectValueType>` is an `AccessorDef`
5
- * backed by a finite option set. The `declare`-redeclaration of
6
- * `getDisplayValue` / `getOptions` below narrows the optional base
7
- * contract to required: callers can rely on both being defined at the
8
- * subclass layer.
4
+ * `SelectDef<T, FilterValueType>` is an `AccessorDef` backed by a
5
+ * finite option set. The `declare`-redeclaration of `getDisplayValue`
6
+ * / `getOptions` below narrows the optional base contract to required:
7
+ * callers can rely on both being defined at the subclass layer.
9
8
  */
10
9
  export class SelectDef extends AccessorDef {
11
10
  constructor(props) {
@@ -4,26 +4,22 @@ import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
4
  * Construction-time props for `TextInputDef`. The `TValue` generic is
5
5
  * pinned to `string | null`.
6
6
  *
7
- * Notes:
8
- * - `filterValueType?: 'String'` is redeclared here as documentation:
9
- * it pins the filter-row UI to the string-input variant.
10
- * - The third generic (`SelectValueType`) is unused by the text input
11
- * today but retained so the shape parallels every other
12
- * `AccessorDef` subclass.
7
+ * `filterValueType?: 'String'` is redeclared here as documentation:
8
+ * it pins the filter-row UI to the string-input variant.
13
9
  */
14
- export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType, out SelectValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType, SelectValueType, string | null> {
10
+ export interface TextInputDefProps<T extends object, in FilterValueType = StringFilterValueType> extends AccessorDefProps<T, FilterValueType, string | null> {
15
11
  /** Filter input variant; pinned to `'String'`. */
16
12
  filterValueType?: 'String';
17
13
  }
18
14
  /**
19
- * `TextInputDef<T, FilterValueType, SelectValueType>` fixes its
20
- * declared value type at `string | null`. Cells reading
21
- * `cell.getValue()` now see the narrower type instead of `unknown`.
15
+ * `TextInputDef<T, FilterValueType>` fixes its declared value type at
16
+ * `string | null`. Cells reading `cell.getValue()` now see the
17
+ * narrower type instead of `unknown`.
22
18
  */
23
- export declare class TextInputDef<T extends object, in FilterValueType = StringFilterValueType, out SelectValueType = StringFilterValueType> extends AccessorDef<T, FilterValueType, SelectValueType, string | null> {
19
+ export declare class TextInputDef<T extends object, in FilterValueType = StringFilterValueType> extends AccessorDef<T, FilterValueType, string | null> {
24
20
  /** Inner discriminator literal. */
25
21
  readonly accessorType: "Text";
26
- constructor(props: TextInputDefProps<T, FilterValueType, SelectValueType>);
22
+ constructor(props: TextInputDefProps<T, FilterValueType>);
27
23
  private _filterFn;
28
24
  /** Filter predicate. Reassignable. */
29
25
  get filterFn(): FilterFn<T, FilterValueType> | undefined;
@@ -1,9 +1,9 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
3
  /**
4
- * `TextInputDef<T, FilterValueType, SelectValueType>` fixes its
5
- * declared value type at `string | null`. Cells reading
6
- * `cell.getValue()` now see the narrower type instead of `unknown`.
4
+ * `TextInputDef<T, FilterValueType>` fixes its declared value type at
5
+ * `string | null`. Cells reading `cell.getValue()` now see the
6
+ * narrower type instead of `unknown`.
7
7
  */
8
8
  export class TextInputDef extends AccessorDef {
9
9
  /** Inner discriminator literal. */
@@ -12,7 +12,7 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
12
12
  * - Both callbacks receive the button currently being rendered so a
13
13
  * single `ActionsDef` can drive a row of differently-styled actions.
14
14
  */
15
- export interface ActionsDefProps<T extends object, in FilterValueType, out FilterOptionsType = unknown> extends Omit<ColumnDefProps<T, FilterValueType, FilterOptionsType>, 'id' | 'header'> {
15
+ export interface ActionsDefProps<T extends object, in FilterValueType> extends Omit<ColumnDefProps<T, FilterValueType>, 'id' | 'header'> {
16
16
  /** The buttons rendered for every row. */
17
17
  actions: Array<TableActionButton<T>>;
18
18
  /** Per-row, per-button enable predicate; assumed `true` if missing. */
@@ -21,16 +21,16 @@ export interface ActionsDefProps<T extends object, in FilterValueType, out Filte
21
21
  getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
22
22
  }
23
23
  /**
24
- * `ActionsDef<T, FilterValueType, FilterOptionsType>` is a column whose
25
- * cells render a row of buttons. It is non-sortable, non-filterable,
26
- * and pins its header to `'Actions'`.
24
+ * `ActionsDef<T, FilterValueType>` is a column whose cells render a
25
+ * row of buttons. It is non-sortable, non-filterable, and pins its
26
+ * header to `'Actions'`.
27
27
  *
28
28
  * Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
29
29
  * instances constructed in the same render pass will have distinct ids
30
30
  * so consumers must keep a single instance per table.
31
31
  */
32
- export declare class ActionsDef<T extends object, FilterValueType, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
33
- constructor(props: ActionsDefProps<T, FilterValueType, FilterOptionsType>);
32
+ export declare class ActionsDef<T extends object, in FilterValueType> extends ColumnDef<T, FilterValueType> {
33
+ constructor(props: ActionsDefProps<T, FilterValueType>);
34
34
  /** Discriminator literal. */
35
35
  readonly columnType: "Actions";
36
36
  /** The buttons rendered for every row. */
@@ -2,9 +2,9 @@ import { generateUUID, syntheticColumnId } from '../../../../../../Helpers/Helpe
2
2
  import { ColumnType } from '../../ColumnType.js';
3
3
  import { ColumnDef } from '../ColumnDef.svelte.js';
4
4
  /**
5
- * `ActionsDef<T, FilterValueType, FilterOptionsType>` is a column whose
6
- * cells render a row of buttons. It is non-sortable, non-filterable,
7
- * and pins its header to `'Actions'`.
5
+ * `ActionsDef<T, FilterValueType>` is a column whose cells render a
6
+ * row of buttons. It is non-sortable, non-filterable, and pins its
7
+ * header to `'Actions'`.
8
8
  *
9
9
  * Note: the generated id uses `generateUUID()` (UUIDv7); two `ActionsDef`
10
10
  * instances constructed in the same render pass will have distinct ids