@rozie-ui/data-table-solid 0.1.1 → 0.2.1

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.
package/README.md CHANGED
@@ -8,7 +8,7 @@ Idiomatic **solid** `DataTable` — a headless, fully-accessible (WAI-ARIA) data
8
8
  npm i @rozie-ui/data-table-solid
9
9
  ```
10
10
 
11
- Peer dependencies: `solid-js + @tanstack/table-core + @tanstack/virtual-core + @floating-ui/dom`. Install them alongside this package.
11
+ Peer dependencies: `solid-js + @tanstack/table-core + @tanstack/virtual-core + @rozie-ui/popover-solid`. Install them alongside this package.
12
12
 
13
13
  ## Usage
14
14
 
package/dist/index.cjs CHANGED
@@ -2,286 +2,35 @@ Object.defineProperties(exports, {
2
2
  __esModule: { value: true },
3
3
  [Symbol.toStringTag]: { value: "Module" }
4
4
  });
5
+ //#region \0rolldown/runtime.js
6
+ var __create = Object.create;
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __getProtoOf = Object.getPrototypeOf;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
14
+ key = keys[i];
15
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: ((k) => from[k]).bind(null, key),
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
25
+ }) : target, mod));
26
+ //#endregion
5
27
  let Solid_js = require("solid-js");
6
28
  let _solid_primitives_keyed = require("@solid-primitives/keyed");
7
29
  let _rozie_runtime_solid = require("@rozie/runtime-solid");
8
- let _floating_ui_dom = require("@floating-ui/dom");
30
+ let _rozie_ui_popover_solid = require("@rozie-ui/popover-solid");
31
+ _rozie_ui_popover_solid = __toESM(_rozie_ui_popover_solid);
9
32
  let _tanstack_table_core = require("@tanstack/table-core");
10
33
  let _tanstack_virtual_core = require("@tanstack/virtual-core");
11
- //#region src/internal/middleware.ts
12
- /**
13
- * Build the ordered middleware array for `computePosition`. Pure — no engine
14
- * import, no DOM read beyond the passed-in arrow element.
15
- */
16
- function buildMiddleware(factories, config) {
17
- const mw = [factories.offset(config.offset)];
18
- if (!config.disableFlip) mw.push(factories.flip());
19
- if (!config.disableShift) mw.push(factories.shift());
20
- if (config.arrow && config.arrowEl) mw.push(factories.arrow({ element: config.arrowEl }));
21
- return mw;
22
- }
23
- //#endregion
24
- //#region src/Popover.tsx
25
- (0, _rozie_runtime_solid.__rozieInjectStyle)("Popover-c6cf02ea", `.rozie-popover[data-rozie-s-c6cf02ea] {
26
- display: contents;
27
- }
28
- .rozie-popover-anchor[data-rozie-s-c6cf02ea] {
29
- display: inline-block;
30
- }
31
- .rozie-popover-floating[data-rozie-s-c6cf02ea] {
32
- position: absolute;
33
- left: 0;
34
- top: 0;
35
- z-index: var(--rozie-popover-z, 1000);
36
- width: max-content;
37
- max-width: var(--rozie-popover-max-width, calc(100vw - 16px));
38
- background: var(--rozie-popover-bg, #fff);
39
- color: var(--rozie-popover-color, inherit);
40
- border: var(--rozie-popover-border, 1px solid rgba(0, 0, 0, 0.12));
41
- border-radius: var(--rozie-popover-radius, 8px);
42
- box-shadow: var(--rozie-popover-shadow, 0 8px 24px rgba(0, 0, 0, 0.12));
43
- padding: var(--rozie-popover-padding, 8px 12px);
44
- }
45
- .rozie-popover-arrow[data-rozie-s-c6cf02ea] {
46
- position: absolute;
47
- width: var(--rozie-popover-arrow-size, 8px);
48
- height: var(--rozie-popover-arrow-size, 8px);
49
- background: var(--rozie-popover-bg, #fff);
50
- border: var(--rozie-popover-border, 1px solid rgba(0, 0, 0, 0.12));
51
- transform: rotate(45deg);
52
- }`);
53
- function Popover(_props) {
54
- const [local, attrs] = (0, Solid_js.splitProps)((0, Solid_js.mergeProps)({
55
- placement: "bottom",
56
- trigger: "click",
57
- offset: 8,
58
- disableFlip: false,
59
- disableShift: false,
60
- arrow: false,
61
- disabled: false,
62
- modal: false,
63
- strategy: "absolute"
64
- }, _props), [
65
- "open",
66
- "placement",
67
- "trigger",
68
- "offset",
69
- "disableFlip",
70
- "disableShift",
71
- "arrow",
72
- "disabled",
73
- "modal",
74
- "strategy",
75
- "children",
76
- "ref"
77
- ]);
78
- const resolved = (0, Solid_js.children)(() => local.children);
79
- (0, Solid_js.onMount)(() => {
80
- local.ref?.({
81
- show,
82
- hide,
83
- toggle,
84
- reposition
85
- });
86
- });
87
- const [open, setOpen] = (0, _rozie_runtime_solid.createControllableSignal)(_props, "open", false);
88
- (0, Solid_js.onMount)(() => {
89
- const _cleanup = (() => {
90
- anchorNode = anchorElRef;
91
- if (open() && !local.disabled) {
92
- floatingNode = floatingElRef;
93
- arrowNode = arrowElRef;
94
- startTracking();
95
- }
96
- })();
97
- if (_cleanup) (0, Solid_js.onCleanup)(_cleanup);
98
- (0, Solid_js.onCleanup)(() => {
99
- stopTracking();
100
- });
101
- });
102
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => open(), (v) => (0, Solid_js.untrack)(() => ((isOpen) => {
103
- if (isOpen && !local.disabled) queueMicrotask(() => {
104
- if (!open() || local.disabled) return;
105
- floatingNode = floatingElRef;
106
- arrowNode = arrowElRef;
107
- startTracking();
108
- });
109
- else stopTracking();
110
- })(v)), { defer: true }));
111
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => local.placement, (v) => (0, Solid_js.untrack)(() => (() => {
112
- if (open()) position();
113
- })()), { defer: true }));
114
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => local.offset, (v) => (0, Solid_js.untrack)(() => (() => {
115
- if (open()) position();
116
- })()), { defer: true }));
117
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => local.disableFlip, (v) => (0, Solid_js.untrack)(() => (() => {
118
- if (open()) position();
119
- })()), { defer: true }));
120
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => local.disableShift, (v) => (0, Solid_js.untrack)(() => (() => {
121
- if (open()) position();
122
- })()), { defer: true }));
123
- (0, Solid_js.createEffect)((0, Solid_js.on)(() => local.strategy, (v) => (0, Solid_js.untrack)(() => (() => {
124
- if (open()) position();
125
- })()), { defer: true }));
126
- let anchorElRef = null;
127
- let floatingElRef = null;
128
- let arrowElRef = null;
129
- let anchorNode = null;
130
- let floatingNode = null;
131
- let arrowNode = null;
132
- let stopAutoUpdate = null;
133
- let lastFocusedEl = null;
134
- function deepActiveElement() {
135
- let el = document.activeElement;
136
- while (el && el.shadowRoot && el.shadowRoot.activeElement) el = el.shadowRoot.activeElement;
137
- return el;
138
- }
139
- function requestOpen(next) {
140
- if (open() === next) return;
141
- if (next && local.trigger === "click") lastFocusedEl = deepActiveElement();
142
- setOpen(next);
143
- _props.onChange?.(next);
144
- if (!next && local.trigger === "click" && lastFocusedEl && lastFocusedEl.isConnected && typeof lastFocusedEl.focus === "function") lastFocusedEl.focus();
145
- if (!next) lastFocusedEl = null;
146
- }
147
- function applyPosition(x, y, middlewareData) {
148
- if (!floatingNode) return;
149
- floatingNode.style.left = x + "px";
150
- floatingNode.style.top = y + "px";
151
- if (arrowNode && middlewareData && middlewareData.arrow) {
152
- const ax = middlewareData.arrow.x;
153
- const ay = middlewareData.arrow.y;
154
- arrowNode.style.left = ax == null ? "" : ax + "px";
155
- arrowNode.style.top = ay == null ? "" : ay + "px";
156
- }
157
- }
158
- function position() {
159
- if (!anchorNode || !floatingNode) return;
160
- const middleware = buildMiddleware({
161
- offset: _floating_ui_dom.offset,
162
- flip: _floating_ui_dom.flip,
163
- shift: _floating_ui_dom.shift,
164
- arrow: _floating_ui_dom.arrow
165
- }, {
166
- offset: local.offset,
167
- disableFlip: local.disableFlip,
168
- disableShift: local.disableShift,
169
- arrow: local.arrow,
170
- arrowEl: arrowNode
171
- });
172
- if (local.strategy === "fixed") floatingNode.style.position = "fixed";
173
- else floatingNode.style.position = "";
174
- let opts = null;
175
- opts = {
176
- placement: local.placement,
177
- strategy: local.strategy,
178
- middleware
179
- };
180
- (0, _floating_ui_dom.computePosition)(anchorNode, floatingNode, opts).then((result) => {
181
- applyPosition(result.x, result.y, result.middlewareData);
182
- });
183
- }
184
- function startTracking() {
185
- if (!anchorNode || !floatingNode) return;
186
- if (stopAutoUpdate) {
187
- stopAutoUpdate();
188
- stopAutoUpdate = null;
189
- }
190
- stopAutoUpdate = (0, _floating_ui_dom.autoUpdate)(anchorNode, floatingNode, position);
191
- }
192
- function stopTracking() {
193
- if (stopAutoUpdate) {
194
- stopAutoUpdate();
195
- stopAutoUpdate = null;
196
- }
197
- }
198
- function onAnchorClick() {
199
- if (local.disabled) return;
200
- requestOpen(!open());
201
- }
202
- function onAnchorPointerEnter() {
203
- if (local.disabled) return;
204
- requestOpen(true);
205
- }
206
- function onAnchorPointerLeave() {
207
- if (local.disabled) return;
208
- requestOpen(false);
209
- }
210
- function onAnchorFocus() {
211
- if (local.disabled) return;
212
- requestOpen(true);
213
- }
214
- function onAnchorBlur() {
215
- if (local.disabled) return;
216
- requestOpen(false);
217
- }
218
- function dismiss() {
219
- requestOpen(false);
220
- }
221
- function isTooltip() {
222
- return local.trigger === "hover" || local.trigger === "focus";
223
- }
224
- function floatingRole() {
225
- return isTooltip() ? "tooltip" : local.modal ? "dialog" : void 0;
226
- }
227
- function show() {
228
- if (!local.disabled) requestOpen(true);
229
- }
230
- function hide() {
231
- requestOpen(false);
232
- }
233
- function toggle() {
234
- if (!local.disabled) requestOpen(!open());
235
- }
236
- function reposition() {
237
- position();
238
- }
239
- (0, Solid_js.createEffect)(() => {
240
- if (!open()) return;
241
- const _rozieHandler = ($event) => {
242
- if ($event.key !== "Escape") return;
243
- dismiss();
244
- };
245
- document.addEventListener("keydown", _rozieHandler);
246
- (0, Solid_js.onCleanup)(() => document.removeEventListener("keydown", _rozieHandler));
247
- });
248
- (0, _rozie_runtime_solid.createOutsideClick)([() => anchorElRef, () => floatingElRef], dismiss, () => open());
249
- return <>
250
- <div {...attrs} class={"rozie-popover" + (attrs.class ? " " + attrs.class : "")} data-rozie-s-c6cf02ea="">
251
-
252
-
253
- <div aria-haspopup="dialog" aria-expanded={!!open()} aria-describedby={(0, _rozie_runtime_solid.rozieAttr)(isTooltip() && open() ? "rozie-popover-floating" : null)} class={"rozie-popover-anchor"} ref={(el) => {
254
- anchorElRef = el;
255
- }} onClick={($event) => {
256
- local.trigger === "click" && onAnchorClick();
257
- }} onPointerEnter={($event) => {
258
- local.trigger === "hover" && onAnchorPointerEnter();
259
- }} onPointerLeave={($event) => {
260
- local.trigger === "hover" && onAnchorPointerLeave();
261
- }} onFocusIn={($event) => {
262
- local.trigger === "focus" && onAnchorFocus();
263
- }} onFocusOut={($event) => {
264
- local.trigger === "focus" && onAnchorBlur();
265
- }} data-rozie-s-c6cf02ea="">
266
- {(_props.anchorSlot ?? _props.slots?.["anchor"])?.({
267
- open: open(),
268
- toggle,
269
- show,
270
- hide
271
- })}
272
- </div>
273
-
274
-
275
- {<Solid_js.Show when={open() && !local.disabled}><div class={"rozie-popover-floating"} ref={(el) => {
276
- floatingElRef = el;
277
- }} id="rozie-popover-floating" role={(0, _rozie_runtime_solid.rozieAttr)(floatingRole())} aria-modal={!!(floatingRole() === "dialog")} data-rozie-s-c6cf02ea="">
278
- {<Solid_js.Show when={local.arrow}><div class={"rozie-popover-arrow"} ref={(el) => {
279
- arrowElRef = el;
280
- }} data-rozie-s-c6cf02ea="" /></Solid_js.Show>}{resolved()}
281
- </div></Solid_js.Show>}</div>
282
- </>;
283
- }
284
- //#endregion
285
34
  //#region src/DataTable.tsx
286
35
  (0, _rozie_runtime_solid.__rozieInjectStyle)("DataTable-d5dcab4c", `.rozie-data-table[data-rozie-s-d5dcab4c] {
287
36
  border-collapse: collapse;
@@ -1723,8 +1472,7 @@ function DataTable(_props) {
1723
1472
  const base = pinStyle(colId);
1724
1473
  if (isExpanderColumn(colId) && row && row.depth) {
1725
1474
  const pad = "padding-left:" + (.5 + row.depth * 1.25) + "rem";
1726
- const sep = base.endsWith(";") ? "" : ";";
1727
- return base ? base + sep + pad : pad;
1475
+ return base ? base + pad : pad;
1728
1476
  }
1729
1477
  return base;
1730
1478
  }
@@ -3958,7 +3706,7 @@ function DataTable(_props) {
3958
3706
  }) ?? (0, _rozie_runtime_solid.rozieDisplay)(headerLabel(header().column.id))}
3959
3707
  </span>
3960
3708
  <span class={"rdt-sort-ind"} aria-hidden="true" data-rozie-s-d5dcab4c="">{(0, _rozie_runtime_solid.rozieDisplay)(sortIndicator(header().column.id))}</span>
3961
- </button></Solid_js.Show>}<Popover trigger="click" placement="bottom-end" strategy="fixed" offset={4} data-rozie-s-d5dcab4c="" anchorSlot={() => <>
3709
+ </button></Solid_js.Show>}<_rozie_ui_popover_solid.default trigger="click" placement="bottom-end" strategy="fixed" offset={4} data-rozie-s-d5dcab4c="" anchorSlot={() => <>
3962
3710
  <button type="button" class={"rdt-col-menu-trigger"} aria-label={(0, _rozie_runtime_solid.rozieAttr)("Column options for " + headerLabel(header().column.id))} data-rozie-s-d5dcab4c="">⋯</button>
3963
3711
  </>}><div class={"rdt-col-menu"} role="menu" data-rozie-s-d5dcab4c="">
3964
3712
  <button type="button" role="menuitem" aria-pressed={columnPinSide(header().column.id) === "left"} class={"rdt-col-menu-item"} onClick={($event) => {
@@ -3974,7 +3722,7 @@ function DataTable(_props) {
3974
3722
  <button type="button" role="menuitem" class={"rdt-col-menu-item"} onClick={($event) => {
3975
3723
  onHideColumn(header().column.id, $event);
3976
3724
  }} data-rozie-s-d5dcab4c="">Hide column</button>
3977
- </div></Popover>
3725
+ </div></_rozie_ui_popover_solid.default>
3978
3726
 
3979
3727
  <button type="button" aria-label={(0, _rozie_runtime_solid.rozieAttr)("Resize " + headerLabel(header().column.id))} class={"rdt-resize-handle"} onPointerDown={($event) => {
3980
3728
  onResizeStart(header().column.id, $event);
@@ -4142,7 +3890,7 @@ function DataTable(_props) {
4142
3890
  }) ?? (0, _rozie_runtime_solid.rozieDisplay)(headerLabel(header().column.id))}
4143
3891
  </span>
4144
3892
  <span class={"rdt-sort-ind"} aria-hidden="true" data-rozie-s-d5dcab4c="">{(0, _rozie_runtime_solid.rozieDisplay)(sortIndicator(header().column.id))}</span>
4145
- </button></Solid_js.Show>}<Popover trigger="click" placement="bottom-end" strategy="fixed" offset={4} data-rozie-s-d5dcab4c="" anchorSlot={() => <>
3893
+ </button></Solid_js.Show>}<_rozie_ui_popover_solid.default trigger="click" placement="bottom-end" strategy="fixed" offset={4} data-rozie-s-d5dcab4c="" anchorSlot={() => <>
4146
3894
  <button type="button" class={"rdt-col-menu-trigger"} aria-label={(0, _rozie_runtime_solid.rozieAttr)("Column options for " + headerLabel(header().column.id))} data-rozie-s-d5dcab4c="">⋯</button>
4147
3895
  </>}><div class={"rdt-col-menu"} role="menu" data-rozie-s-d5dcab4c="">
4148
3896
  <button type="button" role="menuitem" aria-pressed={columnPinSide(header().column.id) === "left"} class={"rdt-col-menu-item"} onClick={($event) => {
@@ -4158,7 +3906,7 @@ function DataTable(_props) {
4158
3906
  <button type="button" role="menuitem" class={"rdt-col-menu-item"} onClick={($event) => {
4159
3907
  onHideColumn(header().column.id, $event);
4160
3908
  }} data-rozie-s-d5dcab4c="">Hide column</button>
4161
- </div></Popover>
3909
+ </div></_rozie_ui_popover_solid.default>
4162
3910
  <button type="button" aria-label={(0, _rozie_runtime_solid.rozieAttr)("Resize " + headerLabel(header().column.id))} class={"rdt-resize-handle"} onPointerDown={($event) => {
4163
3911
  onResizeStart(header().column.id, $event);
4164
3912
  }} onTouchStart={($event) => {
package/dist/index.d.cts CHANGED
@@ -113,7 +113,7 @@ interface DataTableProps {
113
113
  /**
114
114
  * Table-level child-row accessor `(originalRow, index) => TData[] | undefined` that drives nested sub-rows. When supplied (with `expandable`), table-core flattens the hierarchy and the expand seam reveals depth-indented child rows. Null → the `#detail` scoped slot is the expand mode.
115
115
  */
116
- getSubRows?: ((...args: unknown[]) => unknown) | null;
116
+ getSubRows?: ((...args: any[]) => any) | null;
117
117
  /**
118
118
  * Opt-in gate for the **headless `#groupBar`** host region. Default `false` is byte-identical-off. `getGroupedRowModel` is wired unconditionally (inert when `grouping` is empty), so grouping is driven by the `grouping` model; this flag only gates the consumer-facing group-bar surface (the component ships **no** built-in drag UI).
119
119
  */
@@ -294,7 +294,7 @@ interface ColumnProps {
294
294
  /**
295
295
  * The table-core aggregation for this column inside a group-header cell. Either a built-in name string — `'sum'` | `'min'` | `'max'` | `'extent'` | `'mean'` | `'median'` | `'unique'` | `'uniqueCount'` | `'count'` — or a custom function `(columnId, leafRows, childRows) => any` (defensively wrapped by the parent so a throw cannot crash grouping). Null → no aggregation (the group-header cell renders as a placeholder).
296
296
  */
297
- aggregationFn?: (string | ((...args: unknown[]) => unknown)) | null;
297
+ aggregationFn?: (string | ((...args: any[]) => any)) | null;
298
298
  /**
299
299
  * Whether this column's cells are editable (opt-in). Default `false` → the column is read-only and the display↔editor branch never mounts an editor. Bind `:editable="true"` (a bare attr only coerces on Vue+Lit).
300
300
  */
@@ -310,7 +310,7 @@ interface ColumnProps {
310
310
  /**
311
311
  * Synchronous per-column validator `(value, row) => true | string`. A string return is the error message (the editor stays open and the aria-live region announces it). Null → no validation. The parent wraps it defensively against a thrown/non-bool/non-string return.
312
312
  */
313
- validate?: ((...args: unknown[]) => unknown) | null;
313
+ validate?: ((...args: any[]) => any) | null;
314
314
  }
315
315
  declare function Column(_props: ColumnProps): JSX.Element;
316
316
  //#endregion
@@ -335,11 +335,11 @@ interface EditorTextProps {
335
335
  /**
336
336
  * `(value) => void` — commit the edited cell value (from the `#editor` slot scope). Null-guarded at call sites.
337
337
  */
338
- commit?: ((...args: unknown[]) => unknown) | null;
338
+ commit?: ((...args: any[]) => any) | null;
339
339
  /**
340
340
  * `() => void` — revert the edit and close the editor (from the `#editor` slot scope). Null-guarded at call sites.
341
341
  */
342
- cancel?: ((...args: unknown[]) => unknown) | null;
342
+ cancel?: ((...args: any[]) => any) | null;
343
343
  /**
344
344
  * Focus this editor's primary input when true — the host sets it for the one editor that should hold focus; reactive.
345
345
  */
@@ -368,11 +368,11 @@ interface EditorNumberProps {
368
368
  /**
369
369
  * `(value) => void` — commit the cell. The draft is coerced with `Number()` at commit time; an empty/whitespace or non-numeric draft commits `null` (never `NaN`). Null-guarded at call sites.
370
370
  */
371
- commit?: ((...args: unknown[]) => unknown) | null;
371
+ commit?: ((...args: any[]) => any) | null;
372
372
  /**
373
373
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
374
374
  */
375
- cancel?: ((...args: unknown[]) => unknown) | null;
375
+ cancel?: ((...args: any[]) => any) | null;
376
376
  }
377
377
  declare function EditorNumber(_props: EditorNumberProps): JSX.Element;
378
378
  //#endregion
@@ -397,11 +397,11 @@ interface EditorSelectProps {
397
397
  /**
398
398
  * `(value) => void` — commit the cell with the selected value (Enter / blur). Null-guarded at call sites.
399
399
  */
400
- commit?: ((...args: unknown[]) => unknown) | null;
400
+ commit?: ((...args: any[]) => any) | null;
401
401
  /**
402
402
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
403
403
  */
404
- cancel?: ((...args: unknown[]) => unknown) | null;
404
+ cancel?: ((...args: any[]) => any) | null;
405
405
  /**
406
406
  * The select options — `[{ value, label }]`. Mirrors `<Column editorOptions>`.
407
407
  */
@@ -430,11 +430,11 @@ interface EditorCheckboxProps {
430
430
  /**
431
431
  * `(value) => void` — commit the cell. This editor immediately commits the boolean checked state on `@change`. Null-guarded at call sites.
432
432
  */
433
- commit?: ((...args: unknown[]) => unknown) | null;
433
+ commit?: ((...args: any[]) => any) | null;
434
434
  /**
435
435
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
436
436
  */
437
- cancel?: ((...args: unknown[]) => unknown) | null;
437
+ cancel?: ((...args: any[]) => any) | null;
438
438
  }
439
439
  declare function EditorCheckbox(_props: EditorCheckboxProps): JSX.Element;
440
440
  //#endregion
@@ -459,11 +459,11 @@ interface EditorDateProps {
459
459
  /**
460
460
  * `(value) => void` — commit the cell with the ISO `YYYY-MM-DD` string (Enter / blur). Null-guarded at call sites.
461
461
  */
462
- commit?: ((...args: unknown[]) => unknown) | null;
462
+ commit?: ((...args: any[]) => any) | null;
463
463
  /**
464
464
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
465
465
  */
466
- cancel?: ((...args: unknown[]) => unknown) | null;
466
+ cancel?: ((...args: any[]) => any) | null;
467
467
  }
468
468
  declare function EditorDate(_props: EditorDateProps): JSX.Element;
469
469
  //#endregion
@@ -484,7 +484,7 @@ interface FilterTextProps {
484
484
  /**
485
485
  * `(columnId, value) => void` — apply the column filter (Enter / blur applies, Escape clears). Null-guarded at call sites.
486
486
  */
487
- setFilter?: ((...args: unknown[]) => unknown) | null;
487
+ setFilter?: ((...args: any[]) => any) | null;
488
488
  }
489
489
  declare function FilterText(_props: FilterTextProps): JSX.Element;
490
490
  //#endregion
@@ -505,7 +505,7 @@ interface FilterNumberRangeProps {
505
505
  /**
506
506
  * `(columnId, value) => void` — apply the column filter as a `[min, max]` tuple (each side coerced to a Number or `undefined`, so a one-sided range works); both empty clears the filter. Null-guarded at call sites.
507
507
  */
508
- setFilter?: ((...args: unknown[]) => unknown) | null;
508
+ setFilter?: ((...args: any[]) => any) | null;
509
509
  /**
510
510
  * The faceted `[min, max]` bounds for this column (`[number, number]` or null) — drives the input placeholders only.
511
511
  */
@@ -530,7 +530,7 @@ interface FilterSelectProps {
530
530
  /**
531
531
  * `(columnId, value) => void` — apply the column filter on change; the leading empty "All" option clears it. Null-guarded at call sites.
532
532
  */
533
- setFilter?: ((...args: unknown[]) => unknown) | null;
533
+ setFilter?: ((...args: any[]) => any) | null;
534
534
  /**
535
535
  * The faceted distinct keys for this column (cross-filtered, keys only — no occurrence counts) used to build the `<option>` list.
536
536
  */
@@ -551,11 +551,11 @@ interface GroupBarProps {
551
551
  /**
552
552
  * `(cols: string[]) => void` — the only add/reorder writer for the grouping order. Null-guarded at call sites.
553
553
  */
554
- applyGrouping?: ((...args: unknown[]) => unknown) | null;
554
+ applyGrouping?: ((...args: any[]) => any) | null;
555
555
  /**
556
556
  * `() => void` — the only clear writer; resets grouping to empty. Null-guarded at call sites.
557
557
  */
558
- clearGrouping?: ((...args: unknown[]) => unknown) | null;
558
+ clearGrouping?: ((...args: any[]) => any) | null;
559
559
  }
560
560
  declare function GroupBar(_props: GroupBarProps): JSX.Element;
561
561
  //#endregion
package/dist/index.d.mts CHANGED
@@ -113,7 +113,7 @@ interface DataTableProps {
113
113
  /**
114
114
  * Table-level child-row accessor `(originalRow, index) => TData[] | undefined` that drives nested sub-rows. When supplied (with `expandable`), table-core flattens the hierarchy and the expand seam reveals depth-indented child rows. Null → the `#detail` scoped slot is the expand mode.
115
115
  */
116
- getSubRows?: ((...args: unknown[]) => unknown) | null;
116
+ getSubRows?: ((...args: any[]) => any) | null;
117
117
  /**
118
118
  * Opt-in gate for the **headless `#groupBar`** host region. Default `false` is byte-identical-off. `getGroupedRowModel` is wired unconditionally (inert when `grouping` is empty), so grouping is driven by the `grouping` model; this flag only gates the consumer-facing group-bar surface (the component ships **no** built-in drag UI).
119
119
  */
@@ -294,7 +294,7 @@ interface ColumnProps {
294
294
  /**
295
295
  * The table-core aggregation for this column inside a group-header cell. Either a built-in name string — `'sum'` | `'min'` | `'max'` | `'extent'` | `'mean'` | `'median'` | `'unique'` | `'uniqueCount'` | `'count'` — or a custom function `(columnId, leafRows, childRows) => any` (defensively wrapped by the parent so a throw cannot crash grouping). Null → no aggregation (the group-header cell renders as a placeholder).
296
296
  */
297
- aggregationFn?: (string | ((...args: unknown[]) => unknown)) | null;
297
+ aggregationFn?: (string | ((...args: any[]) => any)) | null;
298
298
  /**
299
299
  * Whether this column's cells are editable (opt-in). Default `false` → the column is read-only and the display↔editor branch never mounts an editor. Bind `:editable="true"` (a bare attr only coerces on Vue+Lit).
300
300
  */
@@ -310,7 +310,7 @@ interface ColumnProps {
310
310
  /**
311
311
  * Synchronous per-column validator `(value, row) => true | string`. A string return is the error message (the editor stays open and the aria-live region announces it). Null → no validation. The parent wraps it defensively against a thrown/non-bool/non-string return.
312
312
  */
313
- validate?: ((...args: unknown[]) => unknown) | null;
313
+ validate?: ((...args: any[]) => any) | null;
314
314
  }
315
315
  declare function Column(_props: ColumnProps): JSX.Element;
316
316
  //#endregion
@@ -335,11 +335,11 @@ interface EditorTextProps {
335
335
  /**
336
336
  * `(value) => void` — commit the edited cell value (from the `#editor` slot scope). Null-guarded at call sites.
337
337
  */
338
- commit?: ((...args: unknown[]) => unknown) | null;
338
+ commit?: ((...args: any[]) => any) | null;
339
339
  /**
340
340
  * `() => void` — revert the edit and close the editor (from the `#editor` slot scope). Null-guarded at call sites.
341
341
  */
342
- cancel?: ((...args: unknown[]) => unknown) | null;
342
+ cancel?: ((...args: any[]) => any) | null;
343
343
  /**
344
344
  * Focus this editor's primary input when true — the host sets it for the one editor that should hold focus; reactive.
345
345
  */
@@ -368,11 +368,11 @@ interface EditorNumberProps {
368
368
  /**
369
369
  * `(value) => void` — commit the cell. The draft is coerced with `Number()` at commit time; an empty/whitespace or non-numeric draft commits `null` (never `NaN`). Null-guarded at call sites.
370
370
  */
371
- commit?: ((...args: unknown[]) => unknown) | null;
371
+ commit?: ((...args: any[]) => any) | null;
372
372
  /**
373
373
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
374
374
  */
375
- cancel?: ((...args: unknown[]) => unknown) | null;
375
+ cancel?: ((...args: any[]) => any) | null;
376
376
  }
377
377
  declare function EditorNumber(_props: EditorNumberProps): JSX.Element;
378
378
  //#endregion
@@ -397,11 +397,11 @@ interface EditorSelectProps {
397
397
  /**
398
398
  * `(value) => void` — commit the cell with the selected value (Enter / blur). Null-guarded at call sites.
399
399
  */
400
- commit?: ((...args: unknown[]) => unknown) | null;
400
+ commit?: ((...args: any[]) => any) | null;
401
401
  /**
402
402
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
403
403
  */
404
- cancel?: ((...args: unknown[]) => unknown) | null;
404
+ cancel?: ((...args: any[]) => any) | null;
405
405
  /**
406
406
  * The select options — `[{ value, label }]`. Mirrors `<Column editorOptions>`.
407
407
  */
@@ -430,11 +430,11 @@ interface EditorCheckboxProps {
430
430
  /**
431
431
  * `(value) => void` — commit the cell. This editor immediately commits the boolean checked state on `@change`. Null-guarded at call sites.
432
432
  */
433
- commit?: ((...args: unknown[]) => unknown) | null;
433
+ commit?: ((...args: any[]) => any) | null;
434
434
  /**
435
435
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
436
436
  */
437
- cancel?: ((...args: unknown[]) => unknown) | null;
437
+ cancel?: ((...args: any[]) => any) | null;
438
438
  }
439
439
  declare function EditorCheckbox(_props: EditorCheckboxProps): JSX.Element;
440
440
  //#endregion
@@ -459,11 +459,11 @@ interface EditorDateProps {
459
459
  /**
460
460
  * `(value) => void` — commit the cell with the ISO `YYYY-MM-DD` string (Enter / blur). Null-guarded at call sites.
461
461
  */
462
- commit?: ((...args: unknown[]) => unknown) | null;
462
+ commit?: ((...args: any[]) => any) | null;
463
463
  /**
464
464
  * `() => void` — revert the edit (Escape). Null-guarded at call sites.
465
465
  */
466
- cancel?: ((...args: unknown[]) => unknown) | null;
466
+ cancel?: ((...args: any[]) => any) | null;
467
467
  }
468
468
  declare function EditorDate(_props: EditorDateProps): JSX.Element;
469
469
  //#endregion
@@ -484,7 +484,7 @@ interface FilterTextProps {
484
484
  /**
485
485
  * `(columnId, value) => void` — apply the column filter (Enter / blur applies, Escape clears). Null-guarded at call sites.
486
486
  */
487
- setFilter?: ((...args: unknown[]) => unknown) | null;
487
+ setFilter?: ((...args: any[]) => any) | null;
488
488
  }
489
489
  declare function FilterText(_props: FilterTextProps): JSX.Element;
490
490
  //#endregion
@@ -505,7 +505,7 @@ interface FilterNumberRangeProps {
505
505
  /**
506
506
  * `(columnId, value) => void` — apply the column filter as a `[min, max]` tuple (each side coerced to a Number or `undefined`, so a one-sided range works); both empty clears the filter. Null-guarded at call sites.
507
507
  */
508
- setFilter?: ((...args: unknown[]) => unknown) | null;
508
+ setFilter?: ((...args: any[]) => any) | null;
509
509
  /**
510
510
  * The faceted `[min, max]` bounds for this column (`[number, number]` or null) — drives the input placeholders only.
511
511
  */
@@ -530,7 +530,7 @@ interface FilterSelectProps {
530
530
  /**
531
531
  * `(columnId, value) => void` — apply the column filter on change; the leading empty "All" option clears it. Null-guarded at call sites.
532
532
  */
533
- setFilter?: ((...args: unknown[]) => unknown) | null;
533
+ setFilter?: ((...args: any[]) => any) | null;
534
534
  /**
535
535
  * The faceted distinct keys for this column (cross-filtered, keys only — no occurrence counts) used to build the `<option>` list.
536
536
  */
@@ -551,11 +551,11 @@ interface GroupBarProps {
551
551
  /**
552
552
  * `(cols: string[]) => void` — the only add/reorder writer for the grouping order. Null-guarded at call sites.
553
553
  */
554
- applyGrouping?: ((...args: unknown[]) => unknown) | null;
554
+ applyGrouping?: ((...args: any[]) => any) | null;
555
555
  /**
556
556
  * `() => void` — the only clear writer; resets grouping to empty. Null-guarded at call sites.
557
557
  */
558
- clearGrouping?: ((...args: unknown[]) => unknown) | null;
558
+ clearGrouping?: ((...args: any[]) => any) | null;
559
559
  }
560
560
  declare function GroupBar(_props: GroupBarProps): JSX.Element;
561
561
  //#endregion