@lavalogic/scoria 0.37.44 → 0.37.46

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 (239) 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 +86 -83
  22. package/dist/Components/Contexts/Toast.svelte.d.ts +8 -5
  23. package/dist/Components/Contexts/ToastContainer.svelte +65 -65
  24. package/dist/Components/Contexts/Tooltip.svelte +37 -37
  25. package/dist/Components/DataMatrixIcon.svelte +112 -112
  26. package/dist/Components/DataMatrixIconProps.d.ts +3 -13
  27. package/dist/Components/DateInput.svelte +148 -148
  28. package/dist/Components/DatePicker.svelte +300 -300
  29. package/dist/Components/DesktopModal.svelte +90 -90
  30. package/dist/Components/Dial.svelte +204 -204
  31. package/dist/Components/DialProps.d.ts +1 -18
  32. package/dist/Components/DimensionInput.svelte +170 -170
  33. package/dist/Components/DragMenu/DragMenuHolder.svelte +119 -119
  34. package/dist/Components/DragMenu/DraggableCard.svelte +77 -77
  35. package/dist/Components/FileCard.svelte +24 -24
  36. package/dist/Components/FileUpload.svelte +236 -236
  37. package/dist/Components/GridInput.svelte +196 -200
  38. package/dist/Components/GridInputSet.svelte +29 -29
  39. package/dist/Components/HorizontalTabGroup.svelte +82 -82
  40. package/dist/Components/HorizontalTabGroupButton.svelte +44 -44
  41. package/dist/Components/Icon.svelte +128 -128
  42. package/dist/Components/IconProps.d.ts +2 -7
  43. package/dist/Components/Icons.js +357 -357
  44. package/dist/Components/LoadingAnimation.svelte +29 -29
  45. package/dist/Components/LoadingModal.svelte +45 -45
  46. package/dist/Components/LoadingOverlay.svelte +25 -25
  47. package/dist/Components/LoadingOverlayProps.d.ts +3 -7
  48. package/dist/Components/Modal.svelte +258 -258
  49. package/dist/Components/ModalProps.d.ts +0 -3
  50. package/dist/Components/MultiSelect.svelte +220 -220
  51. package/dist/Components/MultiSelectCommonProps.d.ts +6 -17
  52. package/dist/Components/Nav/Nav.svelte +110 -99
  53. package/dist/Components/Nav/NavProps.d.ts +4 -11
  54. package/dist/Components/Nav/NavServiceMenuList.svelte +43 -43
  55. package/dist/Components/Nav/NavTab.svelte +62 -62
  56. package/dist/Components/Nav/ServiceMenuItem.svelte +100 -100
  57. package/dist/Components/Nav/ServicesNav.svelte +80 -80
  58. package/dist/Components/NumberInput.svelte +157 -157
  59. package/dist/Components/PageHeading.svelte +25 -25
  60. package/dist/Components/PasswordInput.svelte +88 -88
  61. package/dist/Components/Portal.svelte +36 -36
  62. package/dist/Components/ProgressBubble.svelte +107 -108
  63. package/dist/Components/ProgressBubbleProps.d.ts +3 -3
  64. package/dist/Components/QuerySelect.svelte +366 -366
  65. package/dist/Components/QuerySelectProps.d.ts +4 -14
  66. package/dist/Components/SingleSelect.svelte +250 -250
  67. package/dist/Components/SingleSelectCommonProps.d.ts +3 -19
  68. package/dist/Components/StepButton.svelte +70 -70
  69. package/dist/Components/StepForm.svelte +140 -140
  70. package/dist/Components/Switch.svelte +69 -69
  71. package/dist/Components/Table/ARCHITECTURE.md +298 -0
  72. package/dist/Components/Table/Body/QuickSearchCell.svelte +683 -694
  73. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +51 -51
  74. package/dist/Components/Table/Body/Rows/ColumnList.svelte +59 -59
  75. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +456 -478
  76. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +79 -79
  77. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +185 -188
  78. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +124 -124
  79. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +120 -120
  80. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +230 -230
  81. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +105 -105
  82. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +12 -9
  83. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -5
  84. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +87 -87
  85. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +126 -126
  86. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +159 -159
  87. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +246 -246
  88. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -4
  89. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +216 -216
  90. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +6 -5
  91. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +7 -6
  92. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +252 -257
  93. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +179 -179
  94. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +221 -229
  95. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +11 -11
  96. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +197 -197
  97. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +190 -190
  98. package/dist/Components/Table/Body/Rows/TableRow.svelte +290 -290
  99. package/dist/Components/Table/Body/TableBody.svelte +155 -155
  100. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +2 -3
  101. package/dist/Components/Table/ColumnFactory.svelte.d.ts +9 -11
  102. package/dist/Components/Table/ColumnFactory.svelte.js +110 -143
  103. package/dist/Components/Table/ColumnKindRegistry.d.ts +112 -0
  104. package/dist/Components/Table/ColumnKindRegistry.js +63 -0
  105. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +41 -41
  106. package/dist/Components/Table/Headers/SelectAllHeader.svelte +30 -30
  107. package/dist/Components/Table/Headers/TableHead.svelte +415 -413
  108. package/dist/Components/Table/Misc/ColumnPanel.svelte +94 -94
  109. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +112 -112
  110. package/dist/Components/Table/Misc/FilterInput.svelte +620 -644
  111. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -12
  112. package/dist/Components/Table/Misc/FilterInputProps.d.ts +2 -2
  113. package/dist/Components/Table/Misc/FilterPanel.svelte +257 -257
  114. package/dist/Components/Table/Misc/FilterPanelModal.svelte +30 -30
  115. package/dist/Components/Table/Misc/SidePanel.svelte +35 -35
  116. package/dist/Components/Table/Misc/TableFooter.svelte +311 -311
  117. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +125 -125
  118. package/dist/Components/Table/Misc/TableSidebar.svelte +157 -157
  119. package/dist/Components/Table/Misc/ToolboxPanel.svelte +100 -100
  120. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +107 -107
  121. package/dist/Components/Table/NestedTable.svelte +130 -133
  122. package/dist/Components/Table/SubApis.svelte.d.ts +1 -5
  123. package/dist/Components/Table/SubApis.svelte.js +33 -32
  124. package/dist/Components/Table/Table.svelte +692 -745
  125. package/dist/Components/Table/TableHelpers.svelte.d.ts +6 -19
  126. package/dist/Components/Table/TableHelpers.svelte.js +6 -14
  127. package/dist/Components/Table/Types/Columns/Column.d.ts +2 -2
  128. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +3 -3
  129. package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -7
  130. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +7 -8
  131. package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +4 -5
  132. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +11 -14
  133. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +3 -4
  134. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +7 -11
  135. package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +3 -3
  136. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +13 -18
  137. package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +4 -5
  138. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +5 -5
  139. package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +2 -2
  140. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +15 -12
  141. package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +4 -5
  142. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +8 -12
  143. package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +3 -3
  144. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +6 -6
  145. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +3 -3
  146. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +49 -16
  147. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +27 -5
  148. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +7 -7
  149. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +4 -4
  150. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +5 -5
  151. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +2 -2
  152. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +5 -5
  153. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +2 -2
  154. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +5 -5
  155. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +2 -2
  156. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +5 -5
  157. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +2 -2
  158. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +11 -19
  159. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +4 -8
  160. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +6 -7
  161. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +3 -4
  162. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +9 -9
  163. package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +4 -4
  164. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +5 -5
  165. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +6 -6
  166. package/dist/Components/Table/Types/Columns/TableCell.d.ts +7 -6
  167. package/dist/Components/Table/Types/Context/ClipboardState.svelte.d.ts +98 -0
  168. package/dist/Components/Table/Types/Context/ClipboardState.svelte.js +290 -0
  169. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +17 -45
  170. package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +17 -45
  171. package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +9 -20
  172. package/dist/Components/Table/Types/Context/FilteringState.svelte.js +9 -20
  173. package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +23 -42
  174. package/dist/Components/Table/Types/Context/FocusState.svelte.js +32 -59
  175. package/dist/Components/Table/Types/Context/ITable.d.ts +5 -8
  176. package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +29 -56
  177. package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +28 -55
  178. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.d.ts +50 -0
  179. package/dist/Components/Table/Types/Context/QueryValuesState.svelte.js +62 -0
  180. package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +17 -28
  181. package/dist/Components/Table/Types/Context/SelectionState.svelte.js +17 -28
  182. package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +15 -29
  183. package/dist/Components/Table/Types/Context/SortingState.svelte.js +17 -31
  184. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +212 -325
  185. package/dist/Components/Table/Types/Context/TableContext.svelte.js +292 -706
  186. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +62 -79
  187. package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +54 -73
  188. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +16 -27
  189. package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +16 -27
  190. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +12 -15
  191. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +15 -30
  192. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +16 -28
  193. package/dist/Components/Table/Types/Header.d.ts +4 -4
  194. package/dist/Components/Table/Types/HeaderGroup.d.ts +5 -5
  195. package/dist/Components/Table/Types/Public/index.d.ts +2 -4
  196. package/dist/Components/Table/Types/Public/index.js +2 -4
  197. package/dist/Components/Table/clipboardEscape.d.ts +32 -0
  198. package/dist/Components/Table/clipboardEscape.js +45 -0
  199. package/dist/Components/Table/createTable.svelte.d.ts +8 -18
  200. package/dist/Components/Table/createTable.svelte.js +19 -47
  201. package/dist/Components/Test/TestContextConsumer.svelte +13 -13
  202. package/dist/Components/TextArea.svelte +130 -130
  203. package/dist/Components/TextInput.svelte +176 -176
  204. package/dist/Components/ThreeStateRadio.svelte +131 -131
  205. package/dist/Components/Touch/BoolCard.svelte +45 -45
  206. package/dist/Components/Touch/DateModal.svelte +209 -209
  207. package/dist/Components/Touch/EditCard.svelte +59 -59
  208. package/dist/Components/Touch/InfoCard.svelte +31 -31
  209. package/dist/Components/Touch/InfoTextCard.svelte +28 -28
  210. package/dist/Components/Touch/ModalExplanation.svelte +17 -17
  211. package/dist/Components/Touch/NumberKeyboard.svelte +225 -225
  212. package/dist/Components/Touch/NumberModal.svelte +79 -79
  213. package/dist/Components/Touch/PlusMinusCard.svelte +46 -46
  214. package/dist/Components/Touch/SelectModal.svelte +123 -123
  215. package/dist/Components/Touch/SummaryCard.svelte +93 -93
  216. package/dist/Components/Touch/TextAreaModal.svelte +95 -95
  217. package/dist/Components/Touch/TextModal.svelte +106 -106
  218. package/dist/Components/Touch/TouchCard.svelte +33 -33
  219. package/dist/Components/Touch/TouchModal.svelte +274 -274
  220. package/dist/Components/Touch/UtilityButton.svelte +109 -109
  221. package/dist/Components/VerticalTabGroup.svelte +79 -79
  222. package/dist/Components/VerticalTabGroupButton.svelte +58 -58
  223. package/dist/Contexts/ToastContext.svelte.js +3 -4
  224. package/dist/Helpers/Datamatrix.d.ts +19 -19
  225. package/dist/Helpers/Datamatrix.js +291 -291
  226. package/dist/Helpers/Helpers.svelte.d.ts +47 -4
  227. package/dist/Helpers/Helpers.svelte.js +97 -4
  228. package/dist/Helpers/dropdownPortal.d.ts +26 -41
  229. package/dist/Helpers/dropdownPortal.js +62 -116
  230. package/dist/Types/Examples/ExampleModal.svelte +35 -35
  231. package/dist/index.d.ts +1 -2
  232. package/dist/index.js +1 -1
  233. package/dist/scss/_basics.scss +12 -12
  234. package/dist/scss/_colours.scss +134 -134
  235. package/dist/scss/_mixins.scss +3358 -3360
  236. package/dist/scss/_motion.scss +57 -57
  237. package/dist/scss/_sizing.scss +85 -85
  238. package/dist/scss/_transitions.scss +8 -8
  239. package/package.json +8 -6
@@ -12,15 +12,16 @@ import type { ValidationFn } from './ValidationFn.js';
12
12
  * generics mirror those of `ColumnDef` itself:
13
13
  *
14
14
  * - `T`: the row shape.
15
- * - `FilterFnType` (contravariant): the value the column's `filterFn`
16
- * receives at filter-evaluation time (e.g. `BoolFilterValueType` for
17
- * `CheckboxDef`).
18
- * - `OptionsType` (covariant): the value produced by `getOptions` for
19
- * select-style filtering.
15
+ * - `FilterFnType`: the value the column's `filterFn` receives at
16
+ * filter-evaluation time (e.g. `BoolFilterValueType` for `CheckboxDef`).
17
+ * This same type also parameterises `getOptions` for select-style
18
+ * filtering - the audit found every factory call site passed the same
19
+ * type to both the filter-fn slot and the select-options slot (or one
20
+ * was just `unknown`), so they were collapsed into a single generic.
20
21
  * - `TValue`: the declared row-value type; defaults to `unknown` so
21
22
  * non-accessor columns do not need to thread it.
22
23
  */
23
- export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsType, TValue = unknown> {
24
+ export interface ColumnDefProps<T extends object, in FilterFnType, TValue = unknown> {
24
25
  /** Stable column identifier. Two-arm union: either a `string & keyof T`
25
26
  * literal (accessor-backed column) or a {@link SyntheticColumnId} brand
26
27
  * (pseudo column with no row binding, e.g. row-selection / expand /
@@ -80,8 +81,18 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
80
81
  /** Determines which filter input is rendered in the filter panel. */
81
82
  filterValueType?: FilterValueType;
82
83
  /** Required when `filterValueType === 'Select'`. Returns the option set
83
- * rendered in the filter dropdown. */
84
- getOptions?: () => Array<SelectOption<OptionsType>> | Promise<Array<SelectOption<OptionsType>>>;
84
+ * rendered in the filter dropdown.
85
+ *
86
+ * Returns `SelectOption<unknown>` at the base layer so the base
87
+ * `ColumnDef<T, FilterFnType>` does not use `FilterFnType` in a
88
+ * covariant position (which, paired with the contravariant
89
+ * `filterFn` slot, would make the generic invariant and break
90
+ * `Array<ColumnDef<T>>` collection-typed call sites that mix
91
+ * subclasses with different `FilterFnType` bindings). `SelectDef`
92
+ * and `QueryDef` redeclare this with a narrower
93
+ * `SelectOption<FilterValueType>` return type via the `declare`
94
+ * keyword. */
95
+ getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
85
96
  /** Reads the cell value from a row. For `AccessorDef` subclasses this is
86
97
  * required at the subclass layer. */
87
98
  accessorFn?: AccessorFn<T, TValue>;
@@ -105,17 +116,23 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
105
116
  reactiveDependencies?: (row: T) => ReadonlyArray<unknown>;
106
117
  }
107
118
  /**
108
- * `ColumnDef<T, FilterFnType, OptionsType, TValue>` is the abstract base
109
- * for every Table column kind. Owns identification, layout (`minSize`,
110
- * `width`, `resizable`), gating flags (`allowFiltering`, `allowSorting`,
119
+ * `ColumnDef<T, FilterFnType, TValue>` is the abstract base for every
120
+ * Table column kind. Owns identification, layout (`minSize`, `width`,
121
+ * `resizable`), gating flags (`allowFiltering`, `allowSorting`,
111
122
  * `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
112
123
  * `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
113
124
  * `filterValueType`, `getOptions`, `getSortingFn`).
114
125
  *
126
+ * The `FilterFnType` generic doubles as the select-options value type
127
+ * (`getOptions` returns `SelectOption<FilterFnType>[]`). The earlier
128
+ * four-generic shape kept the two slots separate, but every factory
129
+ * call site set them to the same type (or set one to `unknown`); the
130
+ * audit collapsed them.
131
+ *
115
132
  * The `TValue` generic captures the declared row-value type for
116
133
  * data-backed columns (e.g. `boolean` for `CheckboxDef`,
117
134
  * `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
118
- * keeps every existing call site that uses three or fewer generic
135
+ * keeps every existing call site that uses two or fewer generic
119
136
  * arguments unchanged.
120
137
  *
121
138
  * @remarks
@@ -126,8 +143,8 @@ export interface ColumnDefProps<T extends object, in FilterFnType, out OptionsTy
126
143
  * derived state; flattening to plain `readonly` fields is a per-Def
127
144
  * optimisation tracked in the perf report.
128
145
  */
129
- export declare abstract class ColumnDef<T extends object, in FilterFnType = never, out OptionsType = unknown, TValue = unknown> {
130
- protected constructor(props: ColumnDefProps<T, FilterFnType, OptionsType, TValue>);
146
+ export declare abstract class ColumnDef<T extends object, in FilterFnType = never, TValue = unknown> {
147
+ protected constructor(props: ColumnDefProps<T, FilterFnType, TValue>);
131
148
  /** Stable column identifier. */
132
149
  readonly id: ColumnId<T>;
133
150
  /** When true, callers may log per-render debug info. */
@@ -138,6 +155,18 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType = neve
138
155
  set index(v: MemoryColumnIndex);
139
156
  /** Discriminator literal narrowed by each subclass. */
140
157
  abstract readonly columnType: ColumnType;
158
+ /**
159
+ * Public-API kind discriminator (`'text'`, `'number'`, `'display'`, ...).
160
+ * Assigned by `ColumnFactory.makeSpec` immediately after construction
161
+ * so the registry-driven filter wiring in
162
+ * `TableContext.setupDefaultColumnDefs` can drive its lookup without an
163
+ * `instanceof` cascade.
164
+ *
165
+ * `undefined` only when a `ColumnDef` is constructed outside the
166
+ * factory (storybook stubs, tests); the cascade fallback in
167
+ * `setupDefaultColumnDefs` covers that case.
168
+ */
169
+ kind: import('../../Public/ColumnSpec.js').ColumnKind | undefined;
141
170
  /** Whether the column is hidden by default. */
142
171
  readonly defaultHidden: boolean;
143
172
  /** Whether the column may be sorted. */
@@ -227,8 +256,12 @@ export declare abstract class ColumnDef<T extends object, in FilterFnType = neve
227
256
  readonly resizable: boolean;
228
257
  /** Header content; string or Snippet. */
229
258
  readonly header: string | Snippet;
230
- /** Options provider for select-style filter inputs. */
231
- readonly getOptions?: () => Array<SelectOption<OptionsType>> | Promise<Array<SelectOption<OptionsType>>>;
259
+ /** Options provider for select-style filter inputs. Typed as
260
+ * `SelectOption<unknown>` at the base; `SelectDef` and `QueryDef`
261
+ * redeclare with a narrower `SelectOption<FilterValueType>` return
262
+ * type. See the field doc on `ColumnDefProps.getOptions` for why
263
+ * this is decoupled from `FilterFnType` at the base layer. */
264
+ readonly getOptions?: () => Array<SelectOption<unknown>> | Promise<Array<SelectOption<unknown>>>;
232
265
  /** Optional grouping label for this column's filter row in the
233
266
  * advanced filter panel. Columns sharing the same `filterGroup`
234
267
  * string render under a single collapsible section in
@@ -1,16 +1,22 @@
1
1
  import { ColumnType } from '../ColumnType.js';
2
2
  /**
3
- * `ColumnDef<T, FilterFnType, OptionsType, TValue>` is the abstract base
4
- * for every Table column kind. Owns identification, layout (`minSize`,
5
- * `width`, `resizable`), gating flags (`allowFiltering`, `allowSorting`,
3
+ * `ColumnDef<T, FilterFnType, TValue>` is the abstract base for every
4
+ * Table column kind. Owns identification, layout (`minSize`, `width`,
5
+ * `resizable`), gating flags (`allowFiltering`, `allowSorting`,
6
6
  * `defaultHidden`, `isEditable`), data accessors (`accessorFn`,
7
7
  * `getDisplayValue`), and filtering / sorting hooks (`filterFn`,
8
8
  * `filterValueType`, `getOptions`, `getSortingFn`).
9
9
  *
10
+ * The `FilterFnType` generic doubles as the select-options value type
11
+ * (`getOptions` returns `SelectOption<FilterFnType>[]`). The earlier
12
+ * four-generic shape kept the two slots separate, but every factory
13
+ * call site set them to the same type (or set one to `unknown`); the
14
+ * audit collapsed them.
15
+ *
10
16
  * The `TValue` generic captures the declared row-value type for
11
17
  * data-backed columns (e.g. `boolean` for `CheckboxDef`,
12
18
  * `number | string | null` for `NumberInputDef`). Defaulting to `unknown`
13
- * keeps every existing call site that uses three or fewer generic
19
+ * keeps every existing call site that uses two or fewer generic
14
20
  * arguments unchanged.
15
21
  *
16
22
  * @remarks
@@ -81,6 +87,18 @@ export class ColumnDef {
81
87
  set index(v) {
82
88
  this._index = v;
83
89
  }
90
+ /**
91
+ * Public-API kind discriminator (`'text'`, `'number'`, `'display'`, ...).
92
+ * Assigned by `ColumnFactory.makeSpec` immediately after construction
93
+ * so the registry-driven filter wiring in
94
+ * `TableContext.setupDefaultColumnDefs` can drive its lookup without an
95
+ * `instanceof` cascade.
96
+ *
97
+ * `undefined` only when a `ColumnDef` is constructed outside the
98
+ * factory (storybook stubs, tests); the cascade fallback in
99
+ * `setupDefaultColumnDefs` covers that case.
100
+ */
101
+ kind = undefined;
84
102
  /** Whether the column is hidden by default. */
85
103
  defaultHidden;
86
104
  /** Whether the column may be sorted. */
@@ -220,7 +238,11 @@ export class ColumnDef {
220
238
  resizable;
221
239
  /** Header content; string or Snippet. */
222
240
  header;
223
- /** Options provider for select-style filter inputs. */
241
+ /** Options provider for select-style filter inputs. Typed as
242
+ * `SelectOption<unknown>` at the base; `SelectDef` and `QueryDef`
243
+ * redeclare with a narrower `SelectOption<FilterValueType>` return
244
+ * type. See the field doc on `ColumnDefProps.getOptions` for why
245
+ * this is decoupled from `FilterFnType` at the base layer. */
224
246
  getOptions;
225
247
  /** Optional grouping label for this column's filter row in the
226
248
  * advanced filter panel. Columns sharing the same `filterGroup`
@@ -12,15 +12,15 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
12
12
  * `Component<DisplayModalProps<T>>` with `any` filling the events / slots
13
13
  * channels because the consumer-supplied component declares those itself.
14
14
  */
15
- export interface AbstractDisplayDefProps<T extends object, in FilterFnType, out FilterOptionsType> extends ColumnDefProps<T, FilterFnType, FilterOptionsType> {
15
+ export interface AbstractDisplayDefProps<T extends object, in FilterFnType> extends ColumnDefProps<T, FilterFnType> {
16
16
  /** Optional Svelte component opened as a modal from the cell. */
17
17
  modal?: Component<DisplayModalProps<T>, any, any>;
18
18
  }
19
19
  /**
20
- * `AbstractDisplayDef<T, FilterValueType, FilterOptionsType>` is the
21
- * shared base for display-only columns (Bubble, Display, ProgressBar,
22
- * Validity). Each subclass pins `columnType = ColumnType.Display` and
23
- * further narrows the `displayType` inner discriminator.
20
+ * `AbstractDisplayDef<T, FilterValueType>` is the shared base for
21
+ * display-only columns (Bubble, Display, ProgressBar, Validity). Each
22
+ * subclass pins `columnType = ColumnType.Display` and further narrows
23
+ * the `displayType` inner discriminator.
24
24
  *
25
25
  * @remarks
26
26
  *
@@ -28,10 +28,10 @@ export interface AbstractDisplayDefProps<T extends object, in FilterFnType, out
28
28
  * `DisplayModalProps<T>` shape. The cell renderers hand it
29
29
  * `{ row: T; close: () => void }` at runtime.
30
30
  */
31
- export declare abstract class AbstractDisplayDef<T extends object, in FilterValueType = never, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
31
+ export declare abstract class AbstractDisplayDef<T extends object, in FilterValueType = never> extends ColumnDef<T, FilterValueType> {
32
32
  /** Inner discriminator literal narrowed by each leaf subclass. */
33
33
  abstract readonly displayType: DisplayType;
34
- constructor(props: AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType>);
34
+ constructor(props: AbstractDisplayDefProps<T, FilterValueType>);
35
35
  /** Discriminator literal pinning every display column to `Display`. */
36
36
  readonly columnType: "Display";
37
37
  /** Optional Svelte component opened as a modal from the cell. */
@@ -1,10 +1,10 @@
1
1
  import { ColumnType } from '../../ColumnType.js';
2
2
  import { ColumnDef } from '../ColumnDef.svelte.js';
3
3
  /**
4
- * `AbstractDisplayDef<T, FilterValueType, FilterOptionsType>` is the
5
- * shared base for display-only columns (Bubble, Display, ProgressBar,
6
- * Validity). Each subclass pins `columnType = ColumnType.Display` and
7
- * further narrows the `displayType` inner discriminator.
4
+ * `AbstractDisplayDef<T, FilterValueType>` is the shared base for
5
+ * display-only columns (Bubble, Display, ProgressBar, Validity). Each
6
+ * subclass pins `columnType = ColumnType.Display` and further narrows
7
+ * the `displayType` inner discriminator.
8
8
  *
9
9
  * @remarks
10
10
  *
@@ -11,7 +11,7 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
11
11
  * - `value` is a string today (the rendered cell text); a future
12
12
  * tightening could thread the column's `TValue`.
13
13
  */
14
- export interface BubbleDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
14
+ export interface BubbleDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
15
15
  /** Per-bubble colour mapper. Invoked per bubble value per render. */
16
16
  getColour?: (item: T, index: number, value: string) => BubbleColour | Promise<BubbleColour | null | undefined>;
17
17
  /** Maximum number of pills shown per cell before the overflow chip
@@ -20,13 +20,13 @@ export interface BubbleDefProps<T extends object, in FilterValueType, out Filter
20
20
  maxBubbles?: number;
21
21
  }
22
22
  /**
23
- * `BubbleDef<T, FilterValueType, FilterOptionsType>` renders the cell
24
- * value as a row of coloured bubbles.
23
+ * `BubbleDef<T, FilterValueType>` renders the cell value as a row of
24
+ * coloured bubbles.
25
25
  */
26
- export declare class BubbleDef<T extends object, in FilterValueType = StringFilterValueType, out FilterOptionsType = unknown> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
26
+ export declare class BubbleDef<T extends object, in FilterValueType = StringFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
27
27
  /** Inner discriminator literal. */
28
28
  readonly displayType: "Bubbles";
29
- constructor(props: BubbleDefProps<T, FilterValueType, FilterOptionsType>);
29
+ constructor(props: BubbleDefProps<T, FilterValueType>);
30
30
  private _filterFn;
31
31
  /** Filter predicate. Reassignable. */
32
32
  get filterFn(): FilterFn<T, FilterValueType> | undefined;
@@ -2,8 +2,8 @@ import { memoiseRowValueAccessor } from '../../../../../../Helpers/memoiseByRow.
2
2
  import { DisplayType } from '../../DisplayType.js';
3
3
  import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
4
4
  /**
5
- * `BubbleDef<T, FilterValueType, FilterOptionsType>` renders the cell
6
- * value as a row of coloured bubbles.
5
+ * `BubbleDef<T, FilterValueType>` renders the cell value as a row of
6
+ * coloured bubbles.
7
7
  */
8
8
  export class BubbleDef extends AbstractDisplayDef {
9
9
  /** Inner discriminator literal. */
@@ -6,16 +6,16 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
6
6
  * fields over `AbstractDisplayDefProps`; it exists so future
7
7
  * display-specific props can be added without a breaking-change rename.
8
8
  */
9
- export interface DisplayDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
9
+ export interface DisplayDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
10
10
  }
11
11
  /**
12
- * `DisplayDef<T, FilterValueType, FilterOptionsType>` renders the cell
13
- * value as plain text. The default display kind for non-input columns.
12
+ * `DisplayDef<T, FilterValueType>` renders the cell value as plain
13
+ * text. The default display kind for non-input columns.
14
14
  */
15
- export declare class DisplayDef<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
15
+ export declare class DisplayDef<T extends object, in FilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
16
16
  /** Inner discriminator literal. */
17
17
  readonly displayType: DisplayType;
18
- constructor(props: DisplayDefProps<T, FilterValueType, FilterOptionsType>);
18
+ constructor(props: DisplayDefProps<T, FilterValueType>);
19
19
  private _filterFn;
20
20
  /** Filter predicate. Reassignable. */
21
21
  get filterFn(): FilterFn<T, FilterValueType> | undefined;
@@ -1,8 +1,8 @@
1
1
  import { DisplayType } from '../../DisplayType.js';
2
2
  import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
3
3
  /**
4
- * `DisplayDef<T, FilterValueType, FilterOptionsType>` renders the cell
5
- * value as plain text. The default display kind for non-input columns.
4
+ * `DisplayDef<T, FilterValueType>` renders the cell value as plain
5
+ * text. The default display kind for non-input columns.
6
6
  */
7
7
  export class DisplayDef extends AbstractDisplayDef {
8
8
  /** Inner discriminator literal. */
@@ -12,18 +12,18 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
12
12
  * - `value: [number, number]` represents `[current, total]`; the
13
13
  * column data shape is not yet connected to this tuple.
14
14
  */
15
- export interface ProgressBarDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
15
+ export interface ProgressBarDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
16
16
  /** Required. Per-cell colour mapper given the `[current, total]` tuple. */
17
17
  getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
18
18
  }
19
19
  /**
20
- * `ProgressBarDef<T, FilterValueType, FilterOptionsType>` renders the
21
- * cell value as a horizontal progress bar.
20
+ * `ProgressBarDef<T, FilterValueType>` renders the cell value as a
21
+ * horizontal progress bar.
22
22
  */
23
- export declare class ProgressBarDef<T extends object, in FilterValueType = NumberFilterValueType, out FilterOptionsType = unknown> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
23
+ export declare class ProgressBarDef<T extends object, in FilterValueType = NumberFilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
24
24
  /** Inner discriminator literal. */
25
25
  readonly displayType: "Progress";
26
- constructor(props: ProgressBarDefProps<T, FilterValueType, FilterOptionsType>);
26
+ constructor(props: ProgressBarDefProps<T, FilterValueType>);
27
27
  /** Per-cell colour mapper. */
28
28
  readonly getColour: (item: T, index: number, value: [number, number]) => BubbleColour | Promise<BubbleColour> | undefined;
29
29
  private _filterFn;
@@ -1,8 +1,8 @@
1
1
  import { DisplayType } from '../../DisplayType.js';
2
2
  import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
3
3
  /**
4
- * `ProgressBarDef<T, FilterValueType, FilterOptionsType>` renders the
5
- * cell value as a horizontal progress bar.
4
+ * `ProgressBarDef<T, FilterValueType>` renders the cell value as a
5
+ * horizontal progress bar.
6
6
  */
7
7
  export class ProgressBarDef extends AbstractDisplayDef {
8
8
  /** Inner discriminator literal. */
@@ -5,13 +5,13 @@ import { AbstractDisplayDef, type AbstractDisplayDefProps } from './AbstractDisp
5
5
  * because the validity column has no other content; the rest of the
6
6
  * shape mirrors `AbstractDisplayDefProps`.
7
7
  */
8
- export interface ValidityDefProps<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDefProps<T, FilterValueType, FilterOptionsType> {
8
+ export interface ValidityDefProps<T extends object, in FilterValueType> extends AbstractDisplayDefProps<T, FilterValueType> {
9
9
  /** Required per-row validity predicate. */
10
10
  isValid: ValidationFn<T>;
11
11
  }
12
12
  /**
13
- * `ValidityDef<T, FilterValueType, FilterOptionsType>` renders the row
14
- * validity as a status icon. Non-sortable and non-filterable.
13
+ * `ValidityDef<T, FilterValueType>` renders the row validity as a
14
+ * status icon. Non-sortable and non-filterable.
15
15
  *
16
16
  * @remarks
17
17
  *
@@ -26,10 +26,10 @@ export interface ValidityDefProps<T extends object, in FilterValueType, out Filt
26
26
  * mandatory on the subclass props) via the `declare` re-declaration
27
27
  * below. The runtime assignment happens in the base constructor.
28
28
  */
29
- export declare class ValidityDef<T extends object, in FilterValueType, out FilterOptionsType> extends AbstractDisplayDef<T, FilterValueType, FilterOptionsType> {
29
+ export declare class ValidityDef<T extends object, in FilterValueType> extends AbstractDisplayDef<T, FilterValueType> {
30
30
  /** Inner discriminator literal. */
31
31
  readonly displayType: "Validity";
32
- constructor(props: ValidityDefProps<T, FilterValueType, FilterOptionsType>);
32
+ constructor(props: ValidityDefProps<T, FilterValueType>);
33
33
  /** Validity columns are never filtered. */
34
34
  readonly filterFn: undefined;
35
35
  /** Required per-row validity predicate (narrowed from the base optional). */
@@ -1,8 +1,8 @@
1
1
  import { DisplayType } from '../../DisplayType.js';
2
2
  import { AbstractDisplayDef } from './AbstractDisplayDef.svelte.js';
3
3
  /**
4
- * `ValidityDef<T, FilterValueType, FilterOptionsType>` renders the row
5
- * validity as a status icon. Non-sortable and non-filterable.
4
+ * `ValidityDef<T, FilterValueType>` renders the row validity as a
5
+ * status icon. Non-sortable and non-filterable.
6
6
  *
7
7
  * @remarks
8
8
  *
@@ -4,17 +4,13 @@ import type { Primitive, TableInitOptions } from '../../../Context/TableInitOpti
4
4
  import type { DefsWrapper } from '../../DefsWrapper.js';
5
5
  import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
6
6
  /**
7
- * Construction-time props for `ExpandDef`. The generic name
8
- * `InnerIdType` (previously `InnterIdType` - typo) parameterises the
9
- * inner table's row id.
7
+ * Construction-time props for `ExpandDef`. The generic `InnerIdType`
8
+ * parameterises the inner table's row id.
10
9
  *
11
- * Notes:
12
- * - `getInnerColumnDefs` and `accessorFn` are invoked per expansion;
13
- * caching is the consumer's responsibility (tracked in perf workorder).
14
- * - The class no longer mutates the incoming `props` object before
15
- * calling `super`; the override is forwarded via a spread.
10
+ * `getInnerColumnDefs` and `accessorFn` are invoked per expansion;
11
+ * caching is the consumer's responsibility.
16
12
  */
17
- export interface ExpandDefProps<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown, out FilterOptionsType = unknown> extends ColumnDefProps<T, FilterValueType, FilterOptionsType> {
13
+ export interface ExpandDefProps<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown> extends ColumnDefProps<T, FilterValueType> {
18
14
  /** Per-row enable predicate for the expansion affordance. */
19
15
  isEnabled: (item: T, index: number) => boolean | Promise<boolean>;
20
16
  /** Builds the inner table's column defs. Invoked per expansion. */
@@ -29,19 +25,15 @@ export interface ExpandDefProps<T extends object, R extends object, InnerIdType
29
25
  accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
30
26
  }
31
27
  /**
32
- * `ExpandDef<T, R, InnerIdType, FilterValueType, FilterOptionsType>` is
33
- * a column whose cells expand to reveal an inner table.
34
- *
35
- * @remarks
36
- *
37
- * Non-sortable and non-filterable; the class spreads `props` with the
38
- * relevant overrides when forwarding to `super(...)` rather than
39
- * mutating the incoming props object.
28
+ * `ExpandDef<T, R, InnerIdType, FilterValueType>` is a column whose
29
+ * cells expand to reveal an inner table. Non-sortable and
30
+ * non-filterable; `allowFiltering` / `allowSorting` are forced
31
+ * `false` when forwarding to `super`.
40
32
  */
41
- export declare class ExpandDef<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown, out FilterOptionsType = unknown> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
33
+ export declare class ExpandDef<T extends object, R extends object, InnerIdType extends Primitive = Primitive, in FilterValueType = unknown> extends ColumnDef<T, FilterValueType> {
42
34
  /** Discriminator literal. */
43
35
  readonly columnType: "Expand";
44
- constructor(props: ExpandDefProps<T, R, InnerIdType, FilterValueType, FilterOptionsType>);
36
+ constructor(props: ExpandDefProps<T, R, InnerIdType, FilterValueType>);
45
37
  /** Narrowed accessorFn: returns the inner-row array. */
46
38
  readonly accessorFn: (item: T, index: number) => ReadonlyArray<R> | Promise<ReadonlyArray<R>>;
47
39
  /** Expand columns are never filtered. */
@@ -1,14 +1,10 @@
1
1
  import { ColumnType } from '../../ColumnType.js';
2
2
  import { ColumnDef } from '../ColumnDef.svelte.js';
3
3
  /**
4
- * `ExpandDef<T, R, InnerIdType, FilterValueType, FilterOptionsType>` is
5
- * a column whose cells expand to reveal an inner table.
6
- *
7
- * @remarks
8
- *
9
- * Non-sortable and non-filterable; the class spreads `props` with the
10
- * relevant overrides when forwarding to `super(...)` rather than
11
- * mutating the incoming props object.
4
+ * `ExpandDef<T, R, InnerIdType, FilterValueType>` is a column whose
5
+ * cells expand to reveal an inner table. Non-sortable and
6
+ * non-filterable; `allowFiltering` / `allowSorting` are forced
7
+ * `false` when forwarding to `super`.
12
8
  */
13
9
  export class ExpandDef extends ColumnDef {
14
10
  /** Discriminator literal. */
@@ -5,16 +5,15 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
5
5
  * `ColumnDefProps`; the marker exists so future filter-only-specific
6
6
  * props can be added without a breaking-change rename.
7
7
  */
8
- export interface FilterOnlyDefProps<T extends object, in FilterFnType = unknown, out FilterOptionsType = unknown> extends ColumnDefProps<T, FilterFnType, FilterOptionsType> {
8
+ export interface FilterOnlyDefProps<T extends object, in FilterFnType = unknown> extends ColumnDefProps<T, FilterFnType> {
9
9
  }
10
10
  /**
11
- * `FilterOnlyDef<T, FilterFnType, FilterOptionsType>` is a column that
12
- * participates in filtering but never renders a body cell. Used to
13
- * surface a filter input in the filter panel without occupying a body
14
- * slot.
11
+ * `FilterOnlyDef<T, FilterFnType>` is a column that participates in
12
+ * filtering but never renders a body cell. Used to surface a filter
13
+ * input in the filter panel without occupying a body slot.
15
14
  */
16
- export declare class FilterOnlyDef<T extends object, in FilterFnType = unknown, out FilterOptionsType = unknown> extends ColumnDef<T, FilterFnType, FilterOptionsType> {
17
- constructor(props: FilterOnlyDefProps<T, FilterFnType, FilterOptionsType>);
15
+ export declare class FilterOnlyDef<T extends object, in FilterFnType = unknown> extends ColumnDef<T, FilterFnType> {
16
+ constructor(props: FilterOnlyDefProps<T, FilterFnType>);
18
17
  /** Discriminator literal. */
19
18
  readonly columnType: "Filter Only";
20
19
  private _filterFn;
@@ -1,10 +1,9 @@
1
1
  import { ColumnType } from '../../ColumnType.js';
2
2
  import { ColumnDef } from '../ColumnDef.svelte.js';
3
3
  /**
4
- * `FilterOnlyDef<T, FilterFnType, FilterOptionsType>` is a column that
5
- * participates in filtering but never renders a body cell. Used to
6
- * surface a filter input in the filter panel without occupying a body
7
- * slot.
4
+ * `FilterOnlyDef<T, FilterFnType>` is a column that participates in
5
+ * filtering but never renders a body cell. Used to surface a filter
6
+ * input in the filter panel without occupying a body slot.
8
7
  */
9
8
  export class FilterOnlyDef extends ColumnDef {
10
9
  constructor(props) {
@@ -6,17 +6,17 @@ import { ColumnDef, type ColumnDefProps } from '../ColumnDef.svelte.js';
6
6
  * can construct it consistently. The legacy positional signature is
7
7
  * retained as an overload for backwards compatibility.
8
8
  */
9
- export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFilterValueType, FilterOptionsType = undefined> {
9
+ export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFilterValueType> {
10
10
  /** Per-row predicate for whether the row may be selected. */
11
11
  isSelectable: (item: T, index: number) => boolean | Promise<boolean>;
12
12
  /** Optional row validity predicate. */
13
- isValid?: ColumnDefProps<T, FilterValueType, FilterOptionsType>['isValid'];
13
+ isValid?: ColumnDefProps<T, FilterValueType>['isValid'];
14
14
  }
15
15
  /**
16
- * `RowSelectionDef<T, FilterValueType, FilterOptionsType>` is the
17
- * checkbox column that drives row selection. Non-sortable and
18
- * non-filterable; the header reads `'Row Selected'` and the id is
19
- * generated via `generateUUID` (UUIDv7).
16
+ * `RowSelectionDef<T, FilterValueType>` is the checkbox column that
17
+ * drives row selection. Non-sortable and non-filterable; the header
18
+ * reads `'Row Selected'` and the id is generated via `generateUUID`
19
+ * (UUIDv7).
20
20
  *
21
21
  * @remarks
22
22
  *
@@ -30,12 +30,12 @@ export interface RowSelectionDefProps<T extends object, FilterValueType = BoolFi
30
30
  * The positional form was the only outlier in the Def family;
31
31
  * consumers are encouraged to migrate to the props-object form.
32
32
  */
33
- export declare class RowSelectionDef<T extends object, in FilterValueType = BoolFilterValueType, out FilterOptionsType = undefined> extends ColumnDef<T, FilterValueType, FilterOptionsType> {
33
+ export declare class RowSelectionDef<T extends object, in FilterValueType = BoolFilterValueType> extends ColumnDef<T, FilterValueType> {
34
34
  /** Discriminator literal. */
35
35
  readonly columnType: "RowSelect";
36
36
  readonly isSelectable: (item: T, index: number) => boolean | Promise<boolean>;
37
- constructor(props: RowSelectionDefProps<T, FilterValueType, FilterOptionsType>);
38
- constructor(isSelectable: (item: T, index: number) => boolean | Promise<boolean>, isValid?: ColumnDefProps<T, FilterValueType, FilterOptionsType>['isValid']);
37
+ constructor(props: RowSelectionDefProps<T, FilterValueType>);
38
+ constructor(isSelectable: (item: T, index: number) => boolean | Promise<boolean>, isValid?: ColumnDefProps<T, FilterValueType>['isValid']);
39
39
  /** Row-selection columns are never filtered. */
40
40
  readonly filterFn: undefined;
41
41
  }
@@ -2,10 +2,10 @@ import { generateUUID, syntheticColumnId } from '../../../../../../Helpers/Helpe
2
2
  import { ColumnType } from '../../ColumnType.js';
3
3
  import { ColumnDef } from '../ColumnDef.svelte.js';
4
4
  /**
5
- * `RowSelectionDef<T, FilterValueType, FilterOptionsType>` is the
6
- * checkbox column that drives row selection. Non-sortable and
7
- * non-filterable; the header reads `'Row Selected'` and the id is
8
- * generated via `generateUUID` (UUIDv7).
5
+ * `RowSelectionDef<T, FilterValueType>` is the checkbox column that
6
+ * drives row selection. Non-sortable and non-filterable; the header
7
+ * reads `'Row Selected'` and the id is generated via `generateUUID`
8
+ * (UUIDv7).
9
9
  *
10
10
  * @remarks
11
11
  *
@@ -2,11 +2,11 @@ import type { Row } from '../Context/Row.js';
2
2
  import type { Primitive } from '../Context/TableInitOptions.js';
3
3
  import type { ExpandColumn } from './ExpandColumn.js';
4
4
  /**
5
- * Narrowed `TableCell<T>` for expand columns. The natural shape of
6
- * `getValue` would be `ReadonlyArray<R> | Promise<ReadonlyArray<R>>`
7
- * (the inner-table rows for this row), but the cell is currently typed
8
- * `unknown` for consistency with `TableCell.getValue`; tightening is deferred
9
- * to the parent `TableCell.getValue` workorder.
5
+ * Narrowed `TableCell<T>` for expand columns. `getValue`'s natural
6
+ * shape is `ReadonlyArray<R> | Promise<ReadonlyArray<R>>` (the
7
+ * inner-table rows for this row), but it stays `unknown` for
8
+ * consistency with `TableCell.getValue`; narrowing happens once that
9
+ * is tightened library-wide.
10
10
  */
11
11
  export interface ExpandTableCell<T extends object, R extends object, IdType extends Primitive, FilterValueType> {
12
12
  column: ExpandColumn<T, R, IdType, FilterValueType>;
@@ -3,13 +3,13 @@ import type { NumberFilterValueType } from '../Filtering/FilterFn.js';
3
3
  import type { ProgressBarColumn } from './ProgressBarColumn.js';
4
4
  import type { TableCell } from './TableCell.js';
5
5
  /**
6
- * Narrowed `TableCell<T>` for progress-bar columns. The natural shape of
7
- * `getValue` here is `[number, number] | Promise<[number, number]>`
8
- * (current, max); tightening is deferred to the parent `TableCell.getValue`
9
- * workorder so the change happens in one place.
6
+ * Narrowed `TableCell<T>` for progress-bar columns. The natural shape
7
+ * of `getValue` here is `[number, number] | Promise<[number, number]>`
8
+ * (current, max); narrowing happens once `TableCell.getValue` is
9
+ * tightened library-wide.
10
10
  *
11
- * Default `FilterValueType = NumberFilterValueType` reflects the fact that
12
- * the only sensible filter shape for a progress column is a numeric range.
11
+ * Default `FilterValueType = NumberFilterValueType` because the only
12
+ * sensible filter shape for a progress column is a numeric range.
13
13
  */
14
14
  export interface ProgressBarTableCell<T extends object, FilterValueType = NumberFilterValueType> extends TableCell<T, FilterValueType> {
15
15
  column: ProgressBarColumn<T, FilterValueType>;
@@ -1,8 +1,8 @@
1
1
  import type { Row } from '../Context/Row.js';
2
2
  import type { Column } from './Column.js';
3
3
  /**
4
- * `TableCell<T, FilterValueType, FilterOptionsType, TValue>` is the per-cell
5
- * handle exposed to body components.
4
+ * `TableCell<T, FilterValueType, TValue>` is the per-cell handle exposed
5
+ * to body components.
6
6
  *
7
7
  * The optional `TValue` generic is the declared value type for the column
8
8
  * the cell belongs to. Defaulting it to `unknown` keeps all existing call
@@ -11,11 +11,12 @@ import type { Column } from './Column.js';
11
11
  *
12
12
  * Cell hosts that know the column shape (`TableNumberInput`, `TableCheckbox`,
13
13
  * etc.) can pass a narrower `TValue` either explicitly or by reading it from
14
- * a `ColumnDef<T, ..., TValue>`. The intent is to let `cell.getValue()` be
15
- * typed instead of `unknown` without breaking any external consumer.
14
+ * a `ColumnDef<T, FilterValueType, TValue>`. The intent is to let
15
+ * `cell.getValue()` be typed instead of `unknown` without breaking any
16
+ * external consumer.
16
17
  */
17
- export interface TableCell<T extends object, in FilterValueType = never, out FilterOptionsType = unknown, TValue = unknown> {
18
- column: Column<T, FilterValueType, FilterOptionsType>;
18
+ export interface TableCell<T extends object, in FilterValueType = never, TValue = unknown> {
19
+ column: Column<T, FilterValueType>;
19
20
  row: Row<T>;
20
21
  id: string;
21
22
  getValue: () => TValue | Promise<TValue>;