@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
@@ -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>;