@rozie-ui/data-table-lit 0.2.4 → 0.2.5

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
@@ -10,6 +10,8 @@ npm i @rozie-ui/data-table-lit
10
10
 
11
11
  Peer dependencies: `lit + @lit/context + @lit-labs/preact-signals + @preact/signals-core + @tanstack/table-core + @tanstack/virtual-core + @rozie-ui/popover-lit`. Install them alongside this package.
12
12
 
13
+ Also installed: `@rozie/runtime-lit` — Rozie's small, tree-shaken runtime helper package (controllable state, keyboard navigation, event modifiers, and safe interpolation). It arrives as a regular dependency, so npm pulls it for you. Your bundler keeps only the helpers this component actually uses — typically a few hundred bytes to a few KB, minified and gzipped. [What's in it and what it costs](https://github.com/One-Learning-Community/rozie.js/blob/main/docs/guide/output-and-runtime.md).
14
+
13
15
  ## Usage
14
16
 
15
17
  Columns may be declared as a `:columns` config array **or** as `<Column>` children (or both — an id-keyed last-write-wins union). Per-cell rendering is one parent `#cell` / `#colHeader` renderer on `<DataTable>`, dispatched by `columnId`, so it works the same with either column form.
package/dist/index.cjs CHANGED
@@ -4671,6 +4671,7 @@ __decorate([(0, lit_decorators_js.queryAssignedElements)({
4671
4671
  flatten: true
4672
4672
  })], DataTable.prototype, "_slotDetailElements", void 0);
4673
4673
  __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "detail", void 0);
4674
+ __decorate([(0, lit_decorators_js.property)({ attribute: false })], DataTable.prototype, "rozieSlots", void 0);
4674
4675
  DataTable = __decorate([(0, lit_decorators_js.customElement)("rozie-data-table")], DataTable);
4675
4676
  var DataTable_default = DataTable;
4676
4677
  //#endregion
package/dist/index.d.cts CHANGED
@@ -235,6 +235,7 @@ declare class DataTable extends DataTable_base {
235
235
  detail?: (scope: {
236
236
  row: any;
237
237
  }) => unknown;
238
+ rozieSlots?: Record<string, (scope: any) => unknown>;
238
239
  private _disconnectCleanups;
239
240
  private _rozieTornDown;
240
241
  private _armListeners;
package/dist/index.d.mts CHANGED
@@ -235,6 +235,7 @@ declare class DataTable extends DataTable_base {
235
235
  detail?: (scope: {
236
236
  row: any;
237
237
  }) => unknown;
238
+ rozieSlots?: Record<string, (scope: any) => unknown>;
238
239
  private _disconnectCleanups;
239
240
  private _rozieTornDown;
240
241
  private _armListeners;
package/dist/index.mjs CHANGED
@@ -4667,6 +4667,7 @@ __decorate([queryAssignedElements({
4667
4667
  flatten: true
4668
4668
  })], DataTable.prototype, "_slotDetailElements", void 0);
4669
4669
  __decorate([property({ attribute: false })], DataTable.prototype, "detail", void 0);
4670
+ __decorate([property({ attribute: false })], DataTable.prototype, "rozieSlots", void 0);
4670
4671
  DataTable = __decorate([customElement("rozie-data-table")], DataTable);
4671
4672
  var DataTable_default = DataTable;
4672
4673
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rozie-ui/data-table-lit",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -45,7 +45,7 @@
45
45
  "src"
46
46
  ],
47
47
  "dependencies": {
48
- "@rozie/runtime-lit": "0.5.0"
48
+ "@rozie/runtime-lit": "0.6.0"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "lit": "^3.2",
package/src/DataTable.ts CHANGED
@@ -661,6 +661,16 @@ private __rozieCtxProvider_data_table_columns = new ContextProvider(this, { cont
661
661
  @state() private _hasSlotDetail = false;
662
662
  @queryAssignedElements({ slot: 'detail', flatten: true }) private _slotDetailElements!: Element[];
663
663
  @property({ attribute: false }) detail?: (scope: { row: any }) => unknown;
664
+ // Phase 79 Plan 08 (R4) contract for 79-09: the record intake for
665
+ // record-routed slot fills. 79-09's consumer-side emitSlotFiller
666
+ // accumulates an object literal onto the SAME `.rozieSlots=${{ ... }}`
667
+ // open-tag binding; the KEY is the fill's authored (possibly
668
+ // non-identifier) name and the VALUE is a scope-taking render
669
+ // function. `rozieSlots?.[name]` must be checked BEFORE the legacy
670
+ // named function-prop / <slot> fallback (AC-9). Attribute
671
+ // deserialization is disabled — this is a function-valued record,
672
+ // never reflected to/from an HTML attribute.
673
+ @property({ attribute: false }) rozieSlots?: Record<string, (scope: any) => unknown>;
664
674
 
665
675
  private _disconnectCleanups: Array<() => void> = [];
666
676
  // Re-parenting guard: set true once the deferred teardown has actually
@@ -24,6 +24,13 @@
24
24
  */
25
25
  .rozie-data-table-wrap,
26
26
  .rozie-data-table {
27
+ /* NOTE (see file-head comment): most of the tokens below are declared but
28
+ never read via a CSS var() inside THIS component's own scoped <style> —
29
+ that is by design. This is the public surface; the "Wire the PUBLIC
30
+ tokens..." block further down assigns each one onto the short internal
31
+ --rdt-* custom property the component actually reads. A future audit
32
+ must not delete these as dead — they are the intended public API. */
33
+
27
34
  /* ── palette (the few values most consumers will set) ───────────────────── */
28
35
  --rozie-data-table-fg: inherit;
29
36
  --rozie-data-table-accent: #0066cc;
@@ -62,6 +69,14 @@
62
69
  /* ── disabled pagination controls ──────────────────────────────────────── */
63
70
  --rozie-data-table-disabled-opacity: 0.4;
64
71
 
72
+ /* ── virtual scroll (row windowing, req-3/D-06) ─────────────────────────── */
73
+ /* Read with NO fallback at its one use site (`max-height: var(--rozie-data-table-max-height);`
74
+ on `.rdt-scroll`) — when unset the property is invalid at computed-value
75
+ time and the rule behaves as if `max-height` were never declared there,
76
+ i.e. `none` (unbounded). Declaring `none` here is the render-neutral
77
+ equivalent of that unset behavior, made explicit and overridable. */
78
+ --rozie-data-table-max-height: none;
79
+
65
80
  /* ─────────────────────────────────────────────────────────────────────────
66
81
  * Wire the PUBLIC tokens onto the INTERNAL `--rdt-*` the component reads. A
67
82
  * bridge only needs to remap the public tokens above; these passthroughs do