@ixfx/components 0.9.8 → 0.10.0

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 (98) hide show
  1. package/bundle/index.d.ts +747 -4
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +12240 -9065
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
  7. package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
  8. package/dist/ac-token.d.ts +1 -1
  9. package/dist/button.d.ts +1 -1
  10. package/dist/button.d.ts.map +1 -1
  11. package/dist/colour-picker.d.ts +1 -1
  12. package/dist/crumbs.d.ts +2 -2
  13. package/dist/{data-grid-BUeZjnvj.d.ts → data-grid-C5hk_pzK.d.ts} +5 -4
  14. package/dist/{data-grid-BUeZjnvj.d.ts.map → data-grid-C5hk_pzK.d.ts.map} +1 -1
  15. package/dist/data-grid.d.ts +2 -2
  16. package/dist/data-grid.js +3 -1
  17. package/dist/data-grid.js.map +1 -1
  18. package/dist/{detail-list-CQguZg9h.d.ts → detail-list-CxPpv89T.d.ts} +6 -5
  19. package/dist/detail-list-CxPpv89T.d.ts.map +1 -0
  20. package/dist/detail-list.d.ts +3 -3
  21. package/dist/detail-list.js +3 -1
  22. package/dist/detail-list.js.map +1 -1
  23. package/dist/{grid-list-lTwg4lp7.d.ts → grid-list-BGvoWbZz.d.ts} +28 -4
  24. package/dist/{grid-list-lTwg4lp7.d.ts.map → grid-list-BGvoWbZz.d.ts.map} +1 -1
  25. package/dist/{grid-list-40blkeza.js → grid-list-DSnYOGh7.js} +60 -2
  26. package/dist/grid-list-DSnYOGh7.js.map +1 -0
  27. package/dist/grid-list.d.ts +2 -2
  28. package/dist/grid-list.js +1 -1
  29. package/dist/{grouped-item-lister-CEZ72VOs.d.ts → grouped-item-lister-fdZHVxFM.d.ts} +2 -2
  30. package/dist/{grouped-item-lister-CEZ72VOs.d.ts.map → grouped-item-lister-fdZHVxFM.d.ts.map} +1 -1
  31. package/dist/grouped-item-lister.d.ts +1 -1
  32. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
  33. package/dist/icon-CDGprSdE.d.ts.map +1 -0
  34. package/dist/icons.d.ts +2 -2
  35. package/dist/incr-search.d.ts +1 -1
  36. package/dist/{index--qnhBWZJ.d.ts → index--5BSdbnL.d.ts} +2 -2
  37. package/dist/{index--qnhBWZJ.d.ts.map → index--5BSdbnL.d.ts.map} +1 -1
  38. package/dist/{index-C59-JEPl.d.ts → index-9AhaHIT2.d.ts} +3 -3
  39. package/dist/{index-C59-JEPl.d.ts.map → index-9AhaHIT2.d.ts.map} +1 -1
  40. package/dist/{index-DsjpDksO.d.ts → index-CS9yM8L-.d.ts} +2 -2
  41. package/dist/{index-DsjpDksO.d.ts.map → index-CS9yM8L-.d.ts.map} +1 -1
  42. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
  43. package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
  44. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
  45. package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
  46. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
  47. package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
  48. package/dist/index.d.ts +647 -22
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +4804 -2313
  51. package/dist/index.js.map +1 -1
  52. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
  53. package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
  54. package/dist/labelled-radial-input.d.ts +2 -2
  55. package/dist/labelled-radial-input.d.ts.map +1 -1
  56. package/dist/labelled-range-input.d.ts +1 -1
  57. package/dist/labelled-slider-input.d.ts +1 -1
  58. package/dist/{list-native-drag-controller-B0hWdbtM.js → list-native-drag-controller-D97TYjn1.js} +36 -5
  59. package/dist/list-native-drag-controller-D97TYjn1.js.map +1 -0
  60. package/dist/{list-native-drag-controller-Cmpx7jnx.d.ts → list-native-drag-controller-DWiXQZou.d.ts} +3 -2
  61. package/dist/list-native-drag-controller-DWiXQZou.d.ts.map +1 -0
  62. package/dist/{menu-item-ZmkXNjek.d.ts → menu-item-CZi9vy5O.d.ts} +2 -2
  63. package/dist/{menu-item-ZmkXNjek.d.ts.map → menu-item-CZi9vy5O.d.ts.map} +1 -1
  64. package/dist/menu.d.ts +2 -2
  65. package/dist/miller.d.ts +2 -2
  66. package/dist/panel.d.ts +1 -1
  67. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
  68. package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
  69. package/dist/split-layout.d.ts +1 -1
  70. package/dist/{tab-list-DbMIL520.d.ts → tab-list-CGyPt07Z.d.ts} +2 -2
  71. package/dist/{tab-list-DbMIL520.d.ts.map → tab-list-CGyPt07Z.d.ts.map} +1 -1
  72. package/dist/tabs.d.ts +1 -1
  73. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -2
  74. package/dist/{titlebar-B5zSTZnF.d.ts.map → titlebar-Tqu-VvMU.d.ts.map} +1 -1
  75. package/dist/titlebar.d.ts +1 -1
  76. package/dist/{tree-CVj7TIk2.js → tree-C25xYUa6.js} +4 -2
  77. package/dist/tree-C25xYUa6.js.map +1 -0
  78. package/dist/{tree-component-BW2iCFq9.d.ts → tree-component-mw8x-n2Y.d.ts} +4 -2
  79. package/dist/tree-component-mw8x-n2Y.d.ts.map +1 -0
  80. package/dist/tree.d.ts +4 -3
  81. package/dist/tree.d.ts.map +1 -1
  82. package/dist/tree.js +1 -1
  83. package/dist/{vertical-list-CHrXmmQ3.d.ts → vertical-list--tFanQwM.d.ts} +92 -4
  84. package/dist/vertical-list--tFanQwM.d.ts.map +1 -0
  85. package/dist/vertical-list.d.ts +2 -2
  86. package/dist/vertical-list.js +617 -28
  87. package/dist/vertical-list.js.map +1 -1
  88. package/docs-user/grid-list.md +14 -0
  89. package/docs-user/index.json +1 -1
  90. package/package.json +1 -1
  91. package/dist/detail-list-CQguZg9h.d.ts.map +0 -1
  92. package/dist/grid-list-40blkeza.js.map +0 -1
  93. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  94. package/dist/list-native-drag-controller-B0hWdbtM.js.map +0 -1
  95. package/dist/list-native-drag-controller-Cmpx7jnx.d.ts.map +0 -1
  96. package/dist/tree-CVj7TIk2.js.map +0 -1
  97. package/dist/tree-component-BW2iCFq9.d.ts.map +0 -1
  98. package/dist/vertical-list-CHrXmmQ3.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
- import { L as ListNativeDragStartEvent, P as ListDragPreviewRenderer } from "./tree-component-BW2iCFq9.js";
2
- import { S as ListSearchController } from "./index--qnhBWZJ.js";
1
+ import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-mw8x-n2Y.js";
2
+ import { S as ListSearchController } from "./index--5BSdbnL.js";
3
3
  import { i as ListInteractionMode, l as ListSelectionMode, r as ListElementEventMap } from "./list-selection-types-B5ioL-dG.js";
4
4
  import { LitElement, PropertyValues } from "lit";
5
5
  import { CommandId, CommandRegistry } from "@clinth/ui-commands";
@@ -64,6 +64,56 @@ declare class VerticalListElement extends LitElement {
64
64
  * built-in HTML+canvas preview.
65
65
  */
66
66
  dragPreviewRenderer: ListDragPreviewRenderer<Element> | undefined;
67
+ dragPreviewSource: ListDragPreviewSourceResolver<Element> | undefined;
68
+ /**
69
+ * Object/adapter item mode (mirrors `ixfx-detail-list`). When set, the list
70
+ * builds one `<li>` per entry and owns its light-DOM children; `formatter`
71
+ * renders each entry and `keyProperty` stamps `data-key` so `selectKeys` /
72
+ * `focusKey` / `getItemByKey` keep working.
73
+ *
74
+ * Additive: `addItem(element)` / `setItems(elements)` keep working while
75
+ * `items` is unset. While `items` is set, a rebuild (on `items` /
76
+ * `formatter` / `keyProperty` change) discards hand-added children.
77
+ */
78
+ items: readonly unknown[] | undefined;
79
+ /**
80
+ * Property name on each `items` entry used for stable identity — stamped
81
+ * as `data-key` on the built row. Preserves selection across rebuilds.
82
+ */
83
+ keyProperty: string;
84
+ /**
85
+ * Renders one adapter-mode entry. The result may be a `string` (row text),
86
+ * a `Node` (appended into the row `<li>`), a full row `Element` (an `<li>`
87
+ * or a `[data-list-item]` custom element, used directly), or a Lit template
88
+ * result (rendered into the row `<li>` with `render()`). Without a
89
+ * formatter, string entries become row text and `Node` entries are
90
+ * appended.
91
+ */
92
+ formatter: ((item: unknown, index: number) => unknown) | undefined;
93
+ /**
94
+ * Virtualize the list: only the overscanned viewport window exists in the
95
+ * DOM; offscreen rows are recycled through an off-DOM pool as the list
96
+ * scrolls. Works for hand-supplied elements AND adapter (`items`) rows —
97
+ * both are detached/reattached by identity, so selection, cursor and
98
+ * component state survive scrolling.
99
+ *
100
+ * Requires `item-height`: every row must be exactly that tall (use
101
+ * `--list-item-height` to match). `data-key`s are required for the key
102
+ * APIs (`selectKeys`, `focusKey`, `renderedKeys`); selection by reference
103
+ * (click, `select()`) works regardless.
104
+ *
105
+ * Limitations while active: drag-select is disabled (the window shifts
106
+ * under a drag), and incremental-search `filter` mode is excluded (it
107
+ * collapses rows via `hidden`, corrupting the fixed-stride geometry).
108
+ * Keyboard navigation stays within the rendered window — scroll first.
109
+ */
110
+ virtualize: boolean;
111
+ /**
112
+ * Fixed row height in px. Required for `virtualize` — the window math is
113
+ * pure stride arithmetic (no DOM measurement), mirroring
114
+ * `ixfx-grid-list`'s `itemSize`.
115
+ */
116
+ itemHeight: number;
67
117
  private readonly selection;
68
118
  private tickled;
69
119
  private _syncNativeDraggable;
@@ -83,6 +133,7 @@ declare class VerticalListElement extends LitElement {
83
133
  * Collapse + fade `item` out, then detach it. The rows below slide up to
84
134
  * close the gap. Resolves once the element has actually been removed.
85
135
  * Under `prefers-reduced-motion: reduce` it's removed immediately.
136
+ * A pooled (offscreen) row under virtualization is removed immediately.
86
137
  */
87
138
  removeItem(item: Element): Promise<void>;
88
139
  /** {@link removeItem} for several items at once. */
@@ -115,9 +166,46 @@ declare class VerticalListElement extends LitElement {
115
166
  addSelectedKeys(keys: Iterable<string>): void;
116
167
  /** Remove items by key from the selection. */
117
168
  removeSelectedKeys(keys: Iterable<string>): void;
118
- /** Move the cursor to the item with this key and scroll it into view. */
169
+ /**
170
+ * Move the cursor to the item with this key and scroll it into view.
171
+ * Under virtualization the key's index is scrolled into the rendered
172
+ * window first (a no-op for unknown keys).
173
+ */
119
174
  focusKey(key: string): void;
175
+ /** The item carrying this `data-key`, or `undefined`. */
176
+ getItemByKey(key: string): Element | undefined;
177
+ /**
178
+ * Keys of items currently intersecting the viewport — for prioritising
179
+ * viewport-first work (e.g. metadata/thumbnail fetches). A rect-intersection
180
+ * test against the scroll container over the already-created rows (the same
181
+ * cheap trick as `ixfx-detail-list.visibleKeys()`); hidden (filtered-out)
182
+ * and keyless items are omitted.
183
+ */
184
+ visibleKeys(): string[];
185
+ /**
186
+ * Keys of the currently rendered window (viewport + overscan) — the
187
+ * priority set for prefetching, mirroring `ixfx-grid-list.renderedKeys()`.
188
+ * Use {@link visibleKeys} for the strict viewport intersection. Keyless
189
+ * rows are omitted. Without virtualization, every visible row's key.
190
+ */
191
+ renderedKeys(): string[];
120
192
  selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
193
+ /**
194
+ * Get the source object behind a row built from `items`. Returns
195
+ * `undefined` for declarative / programmatic elements.
196
+ */
197
+ getItemData(item: Element): unknown;
198
+ /**
199
+ * Adapter mode: re-render the row carrying `key` in place — scroll and
200
+ * selection are untouched. Unknown keys, and keys on rows not built from
201
+ * `items`, are ignored. A no-op unless `items` is set.
202
+ *
203
+ * Rows whose formatter returns a full row element are swapped for the fresh
204
+ * element; `<li>` rows are refilled. (A custom-element row with a
205
+ * non-element formatter result cannot be re-rendered in place and is left
206
+ * alone — have the formatter return a replacement element instead.)
207
+ */
208
+ updateItem(key: string, data: unknown): void;
121
209
  private _getVisibleItems;
122
210
  private _isCheckable;
123
211
  private _syncItemStates;
@@ -157,4 +245,4 @@ interface VerticalListElementEventMap extends ListElementEventMap {
157
245
  }
158
246
  //#endregion
159
247
  export { VerticalListElementEventMap as i, CustomCheckboxOptions as n, VerticalListElement as r, AddItemOptions as t };
160
- //# sourceMappingURL=vertical-list-CHrXmmQ3.d.ts.map
248
+ //# sourceMappingURL=vertical-list--tFanQwM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-list--tFanQwM.d.ts","names":[],"sources":["../src/vertical-list/vertical-list.ts"],"mappings":";;;;;;UAwDiB;EACf,WAAW;EACX;EACA;;UAGe;;;;;;EAMf;;cAYW,4BAA4B;;EAEvC,eAAe;EAGf,iBAAiB;EAGjB,mBAAmB,IAAI;;;;;;EAQvB;;;;;;;;;;;;;;;;;;;EAqBA,oBAAoB,gCAAgC;;;;;;EAQpD;;;;;;EAQA;;;;;EAOA,qBAAqB,wBAAwB;EAG7C,mBAAmB,8BAA8B;;;;;;;;;;;EAajD;;;;;EAOA;;;;;;;;;EAWA,aAAa,eAAe;;;;;;;;;;;;;;;;;;EAoB5B;;;;;;EAQA;mBAsCiB;UAeT;UA6EA;;WA6EC,QAAM,qBAAA;;MAYX,YAAY;EA2BP;EAsBA;EAuEA,QAAQ,SAAS;;MA8EtB,gBAAgB;;MAKhB,iBAAiB,YAAY;EAIjC,QAAQ,MAAM,kBAAkB,UAAU;;;;;;;EA4B1C,WAAW,MAAM,UAAU;;EA2B3B,YAAY,OAAO,SAAS,WAAW;EAIvC;;;;;;EAmBA,SAAS,gBAAgB;;;;;;EAwBzB,SAAS,WAAW,WAAW,OAAO;EAItC,OAAO,MAAM;EAIb,WAAW,OAAO,SAAS;EAI3B,SAAS,MAAM;EAIf;EAIA;;MAQI,gBAAgB;;MAKhB;;EAMJ,WAAW,MAAM;;EAKjB,gBAAgB,MAAM;;EAKtB,mBAAmB,MAAM;;;;;;EASzB,SAAS;;EAgCT,aAAa,cAAc;;;;;;;;EAW3B;;;;;;;EAuBA;EAsBE,eAAe,0CAA0C,UAAU;;;;;EA2CrE,YAAY,MAAM;;;;;;;;;;;EAclB,WAAW,aAAa;UA0dhB;UAgBA;UAOA;UAiBA;;;;;;;UA4GA;;;;;UAuBA;UAcA;UAYA;UAQA;UAWA;UAMA;UAIA;UAwDA;UAUA;UAMA;SAUQ,sBAAM;EAuKb,wBAAM;;QAeT;YACI;IACR,sBAAsB;;YAGd,4BAA4B;;UAGvB,oCAAoC;EACnD,0BAA0B,yBAAyB"}
@@ -1,4 +1,4 @@
1
- import { F as ListDragSource, I as ListNativeDragStartDetail, L as ListNativeDragStartEvent, M as ListDragPreview, N as ListDragPreviewContext, P as ListDragPreviewRenderer, j as ListDragEntry } from "./tree-component-BW2iCFq9.js";
1
+ import { I as ListDragSource, L as ListNativeDragStartDetail, M as ListDragPreview, N as ListDragPreviewContext, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent, j as ListDragEntry } from "./tree-component-mw8x-n2Y.js";
2
2
  import { a as ListItemClickDetail, c as ListSelectEvent, d as ListTickleEvent, i as ListInteractionMode, l as ListSelectionMode, n as ListActivateEvent, o as ListItemClickEvent, r as ListElementEventMap, s as ListSelectDetail, t as ListActivateDetail, u as ListTickleDetail } from "./list-selection-types-B5ioL-dG.js";
3
- import { i as VerticalListElementEventMap, n as CustomCheckboxOptions, r as VerticalListElement, t as AddItemOptions } from "./vertical-list-CHrXmmQ3.js";
3
+ import { i as VerticalListElementEventMap, n as CustomCheckboxOptions, r as VerticalListElement, t as AddItemOptions } from "./vertical-list--tFanQwM.js";
4
4
  export { AddItemOptions, CustomCheckboxOptions, type ListActivateDetail, type ListActivateEvent, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListElementEventMap, type ListInteractionMode, type ListItemClickDetail, type ListItemClickEvent, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSelectDetail, type ListSelectEvent, type ListSelectionMode, type ListTickleDetail, type ListTickleEvent, VerticalListElement, VerticalListElementEventMap };