@ixfx/components 0.7.3 → 0.7.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.
Files changed (141) hide show
  1. package/bundle/index.d.ts +1355 -526
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +3277 -384
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/ac-text.js +1 -1
  7. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
  8. package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
  9. package/dist/ac-token.d.ts +1 -1
  10. package/dist/ac-token.js +2 -2
  11. package/dist/button.d.ts +1 -1
  12. package/dist/button.d.ts.map +1 -1
  13. package/dist/colour-picker.d.ts +1 -1
  14. package/dist/crumbs.d.ts +6 -2
  15. package/dist/crumbs.d.ts.map +1 -1
  16. package/dist/crumbs.js +13 -3
  17. package/dist/crumbs.js.map +1 -1
  18. package/dist/{data-grid-Db4QpnII.d.ts → data-grid-CtJ35v8L.d.ts} +59 -2
  19. package/dist/data-grid-CtJ35v8L.d.ts.map +1 -0
  20. package/dist/data-grid.d.ts +1 -1
  21. package/dist/data-grid.js +268 -14
  22. package/dist/data-grid.js.map +1 -1
  23. package/dist/detail-list-BS5dRDda.d.ts +175 -0
  24. package/dist/detail-list-BS5dRDda.d.ts.map +1 -0
  25. package/dist/detail-list.d.ts +3 -0
  26. package/dist/detail-list.js +1031 -0
  27. package/dist/detail-list.js.map +1 -0
  28. package/dist/grid-list-D-GbghSH.d.ts +321 -0
  29. package/dist/grid-list-D-GbghSH.d.ts.map +1 -0
  30. package/dist/grid-list.d.ts +3 -0
  31. package/dist/grid-list.js +994 -0
  32. package/dist/grid-list.js.map +1 -0
  33. package/dist/{grouped-item-lister-BWlC9S4e.d.ts → grouped-item-lister-fdZHVxFM.d.ts} +3 -3
  34. package/dist/{grouped-item-lister-BWlC9S4e.d.ts.map → grouped-item-lister-fdZHVxFM.d.ts.map} +1 -1
  35. package/dist/grouped-item-lister.d.ts +1 -1
  36. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
  37. package/dist/icon-CDGprSdE.d.ts.map +1 -0
  38. package/dist/icons.d.ts +2 -2
  39. package/dist/incr-search-DpbSJtgj.js +962 -0
  40. package/dist/incr-search-DpbSJtgj.js.map +1 -0
  41. package/dist/incr-search.d.ts +2 -2
  42. package/dist/incr-search.js +2 -3
  43. package/dist/{index-C59-JEPl.d.ts → index-9AhaHIT2.d.ts} +3 -3
  44. package/dist/{index-C59-JEPl.d.ts.map → index-9AhaHIT2.d.ts.map} +1 -1
  45. package/dist/index-CBS4z1v-.d.ts +365 -0
  46. package/dist/index-CBS4z1v-.d.ts.map +1 -0
  47. package/dist/{index-DsjpDksO.d.ts → index-CS9yM8L-.d.ts} +2 -2
  48. package/dist/{index-DsjpDksO.d.ts.map → index-CS9yM8L-.d.ts.map} +1 -1
  49. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
  50. package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
  51. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
  52. package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
  53. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
  54. package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
  55. package/dist/index.d.ts +188 -243
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +376 -1004
  58. package/dist/index.js.map +1 -1
  59. package/dist/interaction-Cr13azbM.js +3 -0
  60. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
  61. package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
  62. package/dist/labelled-radial-input.d.ts +2 -2
  63. package/dist/labelled-radial-input.d.ts.map +1 -1
  64. package/dist/labelled-range-input.d.ts +1 -1
  65. package/dist/labelled-slider-input.d.ts +1 -1
  66. package/dist/list-item-animation-DuiwgN3l.js +112 -0
  67. package/dist/list-item-animation-DuiwgN3l.js.map +1 -0
  68. package/dist/list-selection-controller-DTFI40li.js +264 -0
  69. package/dist/list-selection-controller-DTFI40li.js.map +1 -0
  70. package/dist/{list-selection-types-DSuRNWpx.d.ts → list-selection-types-B5ioL-dG.d.ts} +6 -1
  71. package/dist/list-selection-types-B5ioL-dG.d.ts.map +1 -0
  72. package/dist/{menu-DMzjkVnK.js → menu-Bg90Qr0B.js} +3 -3
  73. package/dist/{menu-DMzjkVnK.js.map → menu-Bg90Qr0B.js.map} +1 -1
  74. package/dist/{menu-item-D2S4i8u1.js → menu-item-Bx-Fs7jq.js} +3 -3
  75. package/dist/{menu-item-D2S4i8u1.js.map → menu-item-Bx-Fs7jq.js.map} +1 -1
  76. package/dist/{menu-item-ZmkXNjek.d.ts → menu-item-CZi9vy5O.d.ts} +2 -2
  77. package/dist/{menu-item-ZmkXNjek.d.ts.map → menu-item-CZi9vy5O.d.ts.map} +1 -1
  78. package/dist/menu.d.ts +2 -2
  79. package/dist/menu.js +2 -2
  80. package/dist/miller.d.ts +82 -4
  81. package/dist/miller.d.ts.map +1 -1
  82. package/dist/miller.js +329 -70
  83. package/dist/miller.js.map +1 -1
  84. package/dist/narrowed-text.js +3 -4
  85. package/dist/narrowed-text.js.map +1 -1
  86. package/dist/panel.d.ts +1 -1
  87. package/dist/plots.js +1 -1
  88. package/dist/select-horiz.js +2 -2
  89. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
  90. package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
  91. package/dist/split-layout.d.ts +1 -1
  92. package/dist/{tab-list-DbMIL520.d.ts → tab-list-CGyPt07Z.d.ts} +2 -2
  93. package/dist/{tab-list-DbMIL520.d.ts.map → tab-list-CGyPt07Z.d.ts.map} +1 -1
  94. package/dist/tabs.d.ts +1 -1
  95. package/dist/{tickled-controller-Ds1DMyG7.d.ts → tickled-controller-Bn3YdQsM.d.ts} +12 -1
  96. package/dist/{tickled-controller-Ds1DMyG7.d.ts.map → tickled-controller-Bn3YdQsM.d.ts.map} +1 -1
  97. package/dist/{tickled-controller-h9GmJ_bU.js → tickled-controller-C66DgJHl.js} +16 -1
  98. package/dist/tickled-controller-C66DgJHl.js.map +1 -0
  99. package/dist/{titlebar-B23MrIbI.d.ts → titlebar-Bj5pfdw_.d.ts} +2 -2
  100. package/dist/{titlebar-B23MrIbI.d.ts.map → titlebar-Bj5pfdw_.d.ts.map} +1 -1
  101. package/dist/titlebar.d.ts +1 -1
  102. package/dist/{tree-Ch4W8qXQ.js → tree-DAii2A1g.js} +190 -29
  103. package/dist/tree-DAii2A1g.js.map +1 -0
  104. package/dist/{tree-component-BvV4muxx.d.ts → tree-component-F6qZ0Gdv.d.ts} +9 -1
  105. package/dist/{tree-component-BvV4muxx.d.ts.map → tree-component-F6qZ0Gdv.d.ts.map} +1 -1
  106. package/dist/tree.d.ts +28 -4
  107. package/dist/tree.d.ts.map +1 -1
  108. package/dist/tree.js +1 -1
  109. package/dist/vertical-list-DwtCPy1b.d.ts +143 -0
  110. package/dist/vertical-list-DwtCPy1b.d.ts.map +1 -0
  111. package/dist/vertical-list.d.ts +3 -121
  112. package/dist/vertical-list.js +642 -1
  113. package/dist/vertical-list.js.map +1 -0
  114. package/dist/{xy-axis-DWizs0bt.js → xy-axis-VrX8dmvS.js} +2 -2
  115. package/dist/{xy-axis-DWizs0bt.js.map → xy-axis-VrX8dmvS.js.map} +1 -1
  116. package/docs-user/README.md +1 -0
  117. package/docs-user/data-grid.md +70 -2
  118. package/docs-user/detail-list.md +39 -1
  119. package/docs-user/grid-list.md +298 -0
  120. package/docs-user/incr-search.md +12 -2
  121. package/docs-user/index.json +7 -2
  122. package/docs-user/llms.txt +1 -0
  123. package/docs-user/tree.md +35 -1
  124. package/docs-user/vertical-list.md +58 -2
  125. package/llms.txt +1 -0
  126. package/package.json +17 -2
  127. package/dist/data-grid-Db4QpnII.d.ts.map +0 -1
  128. package/dist/element-search-Y8SRfPGM.js +0 -185
  129. package/dist/element-search-Y8SRfPGM.js.map +0 -1
  130. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  131. package/dist/incr-search-vCzuao-2.js +0 -137
  132. package/dist/incr-search-vCzuao-2.js.map +0 -1
  133. package/dist/index-Cu5i8zZY.d.ts +0 -160
  134. package/dist/index-Cu5i8zZY.d.ts.map +0 -1
  135. package/dist/interaction-D5XdKzbR.js +0 -2
  136. package/dist/list-selection-types-DSuRNWpx.d.ts.map +0 -1
  137. package/dist/tickled-controller-h9GmJ_bU.js.map +0 -1
  138. package/dist/tree-Ch4W8qXQ.js.map +0 -1
  139. package/dist/vertical-list-B4w_ksJk.js +0 -814
  140. package/dist/vertical-list-B4w_ksJk.js.map +0 -1
  141. package/dist/vertical-list.d.ts.map +0 -1
@@ -0,0 +1,175 @@
1
+ import "./icon-CDGprSdE.js";
2
+ import { r as IDataProvider } from "./data-provider-BAn_-oR1.js";
3
+ import { y as ListSearchController } from "./index-CBS4z1v-.js";
4
+ import { i as ListInteractionMode, l as ListSelectionMode, r as ListElementEventMap } from "./list-selection-types-B5ioL-dG.js";
5
+ import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-DwtCPy1b.js";
6
+ import { LitElement, PropertyValues } from "lit";
7
+ import { CommandId, CommandRegistry } from "@clinth/ui-commands";
8
+ //#region src/detail-list/types.d.ts
9
+ /** Sort direction applied to the item columns. */
10
+ type DetailSortMode = `none` | `ascending` | `descending`;
11
+ /** Per-item view of a row passed to `sortComparator`. */
12
+ type DetailSortItem = {
13
+ readonly element: HTMLElement;
14
+ readonly data: unknown;
15
+ readonly label: string;
16
+ };
17
+ /** Custom comparator — return negative when `a` sorts before `b`. */
18
+ type DetailSortComparator = (a: DetailSortItem, b: DetailSortItem) => number;
19
+ /** Turns one object item into row content — a plain string or a DOM node. */
20
+ type DetailFormatter = (item: unknown, index: number) => string | Node;
21
+ //#endregion
22
+ //#region src/detail-list/detail-list.d.ts
23
+ /**
24
+ * A list that scales horizontally, not vertically.
25
+ *
26
+ * Items are laid out in equal-width columns; they flow top→bottom down a
27
+ * column, then wrap to the top of the next column to the right. The
28
+ * component has a fixed vertical extent and scrolls horizontally.
29
+ *
30
+ * Selection semantics match `ixfx-vertical-list` — same modes, same
31
+ * `list-*` events, same keyboard gestures — but navigation is a 2-D grid
32
+ * (Up/Down move within a column, Left/Right jump columns).
33
+ *
34
+ * Items come from any of three sources (later writes win):
35
+ * 1. declarative `<li>` children in light DOM,
36
+ * 2. `addItem()` / `setItems()`,
37
+ * 3. an `items` array of objects rendered via `displayProperty` /
38
+ * `formatter`, optionally streamed in via a `provider`.
39
+ */
40
+ declare class DetailListElement extends LitElement {
41
+ #private;
42
+ selectionMode: ListSelectionMode;
43
+ interactionMode: ListInteractionMode;
44
+ sort: DetailSortMode;
45
+ sortBy: string;
46
+ sortComparator: DetailSortComparator | undefined;
47
+ items: readonly unknown[];
48
+ provider: IDataProvider<void, unknown> | undefined;
49
+ displayProperty: string;
50
+ formatter: DetailFormatter | undefined;
51
+ iconProperty: string;
52
+ keyProperty: string;
53
+ filterPredicate: ((el: Element) => boolean) | undefined;
54
+ /**
55
+ * Whether keyboard navigation wraps from last to first and vice versa.
56
+ * - 'stop' (default): navigation stops at the boundary
57
+ * - 'wrap': navigation wraps around
58
+ */
59
+ itemWrap: `stop` | `wrap`;
60
+ /** Optional renderer for the checkbox shown in `checked` interactionMode. */
61
+ checkboxRenderer: ((checked: boolean) => unknown) | CustomCheckboxOptions | undefined;
62
+ /**
63
+ * Space-separated subset of `navigate select filter` — limits which
64
+ * incremental-search modes are offered. Unset ⇒ all three; empty ⇒ search
65
+ * disabled. See `docs/infra-incremental.md`.
66
+ */
67
+ searchModes: string | undefined;
68
+ private _listEl;
69
+ private readonly selection;
70
+ private tickled;
71
+ /** Incremental search (navigate / select / filter). See `docs/infra-incremental.md`. */
72
+ readonly search: ListSearchController<Element>;
73
+ /** Command registry carrying this list's `list.search.*` commands. */
74
+ get registry(): CommandRegistry<unknown> | undefined;
75
+ connectedCallback(): void;
76
+ disconnectedCallback(): void;
77
+ firstUpdated(): void;
78
+ updated(changed: PropertyValues): void;
79
+ /** The most recently selected item, or `undefined` if nothing is selected. */
80
+ get selectedItem(): Element | undefined;
81
+ /** The full current selection set (read-only). */
82
+ get selectedItems(): ReadonlySet<Element>;
83
+ /**
84
+ * Force an immediate geometry recompute. Called automatically on resize,
85
+ * DOM changes, sort/filter/search changes — only needed when layout is
86
+ * changed by outside forces (e.g. an external font load).
87
+ */
88
+ refreshLayout(): void;
89
+ addItem(item: Element | string, options?: AddItemOptions): void;
90
+ /**
91
+ * Collapse + fade `item` out, then detach it; the rows after it slide up to
92
+ * close the gap. Resolves once removed. Immediate under reduced motion.
93
+ */
94
+ removeItem(item: Element): Promise<void>;
95
+ /** {@link removeItem} for several items at once. */
96
+ removeItems(items: Iterable<Element>): Promise<void>;
97
+ clearItems(): void;
98
+ /**
99
+ * Replace the entire item list in one call.
100
+ * Equivalent to `clearItems()` followed by `addItem()` for each element.
101
+ */
102
+ setItems(items: readonly Element[]): void;
103
+ /**
104
+ * Get the source object behind an `<li>` built from an `items` array or
105
+ * provider. Returns `undefined` for declarative / programmatic elements.
106
+ */
107
+ getItemData(item: HTMLLIElement): unknown;
108
+ /**
109
+ * Dispatch a command to this list — used by `ixfx-grouped-item-lister` to
110
+ * forward commands. Routes through the command registry (so `list.search.*`
111
+ * and any other registered commands work).
112
+ */
113
+ dispatch(commandId: CommandId, args?: Record<string, unknown>): void;
114
+ select(item: Element): void;
115
+ selectMany(items: Iterable<Element>): void;
116
+ deselect(item: Element): void;
117
+ clearSelection(): void;
118
+ selectAll(): void;
119
+ /** The selection as stable `data-key` / `data-value` strings. */
120
+ get selectedKeys(): ReadonlySet<string>;
121
+ /** The key of the item under the cursor, or `undefined`. */
122
+ get tickledKey(): string | undefined;
123
+ /** Replace the selection with the items carrying these keys (unknown keys ignored). */
124
+ selectKeys(keys: Iterable<string>): void;
125
+ /** Add items by key to the selection (multi-select modes only). */
126
+ addSelectedKeys(keys: Iterable<string>): void;
127
+ /** Remove items by key from the selection. */
128
+ removeSelectedKeys(keys: Iterable<string>): void;
129
+ /** Move the cursor to the item with this key and scroll it into view. */
130
+ focusKey(key: string): void;
131
+ selectedFilter(kind: `selected` | `checked` | `either`): Generator<Element>;
132
+ private _getVisibleItems;
133
+ /**
134
+ * Set the column width to fit the widest visible item.
135
+ *
136
+ * This is opt-in; detail lists continue to use `--detail-list-column-width`
137
+ * (or its 220px fallback) until this method is called. The measured value is
138
+ * set directly on this element, so it takes precedence over an inherited
139
+ * value. Returns the applied width in pixels, or 0 when there are no items.
140
+ */
141
+ fitColumnWidth(): Promise<number>;
142
+ private _isCheckable;
143
+ private _setLabel;
144
+ private _syncItemStates;
145
+ private _syncCheckboxes;
146
+ /**
147
+ * Native checkbox cell: a span that stretches to the row's full cross-axis
148
+ * (so the entire column height is a click target) with a real `<input>`
149
+ * centred inside. The span owns the click; the input is purely visual and
150
+ * has `pointer-events:none` so a single click produces one toggle.
151
+ */
152
+ private _createNativeCheckboxCell;
153
+ /** Custom checkbox cell: same shape as the native cell; renderer content inside. */
154
+ private _createCustomCheckbox;
155
+ private _findListItem;
156
+ private _dispatch;
157
+ private _onPointerOver;
158
+ private _onPointerLeave;
159
+ private _onKeyDown;
160
+ private _onClick;
161
+ private _onDblClick;
162
+ private _onWheel;
163
+ private _activateItem;
164
+ static styles: import("lit").CSSResult[];
165
+ render(): import("lit").TemplateResult<1>;
166
+ }
167
+ declare global {
168
+ interface HTMLElementTagNameMap {
169
+ 'ixfx-detail-list': DetailListElement;
170
+ }
171
+ interface HTMLElementEventMap extends ListElementEventMap {}
172
+ }
173
+ //#endregion
174
+ export { DetailSortMode as a, DetailSortItem as i, DetailFormatter as n, DetailSortComparator as r, DetailListElement as t };
175
+ //# sourceMappingURL=detail-list-BS5dRDda.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detail-list-BS5dRDda.d.ts","names":[],"sources":["../src/detail-list/types.ts","../src/detail-list/detail-list.ts"],"mappings":";;;;;;;;;KACY;;KAGA;WACD,SAAS;WACT;WACA;;;KAIC,wBAAwB,GAAG,gBAAgB,GAAG;;KAG9C,mBAAmB,eAAe,2BAA2B;;;;;;;;;;;;;;;;;;;;cC4D5D,0BAA0B;;EAErC,eAAe;EAGf,iBAAiB;EAGjB,MAAM;EAGN;EAGA,gBAAgB;EAGhB;EAGA,UAAU;EAGV;EAGA,WAAW;EAGX;EAGA;EAGA,mBAAmB,IAAI;;;;;;EAQvB;;EAIA,oBAAoB,gCAAgC;;;;;;EAQpD;UAGQ;mBAeS;UAeT;;WAeC,QAAM,qBAAA;;MAYX,YAAY;EAoBP;EA4DA;EAiBA;EAQA,QAAQ,SAAS;;MAqCtB,gBAAgB;;MAKhB,iBAAiB,YAAY;;;;;;EASjC;EAIA,QAAQ,MAAM,kBAAkB,UAAU;;;;;EAuB1C,WAAW,MAAM,UAAU;;EAW3B,YAAY,OAAO,SAAS,WAAW;EAIvC;;;;;EAYA,SAAS,gBAAgB;;;;;EAgBzB,YAAY,MAAM;;;;;;EASlB,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;;EAKzB,SAAS;EAgBP,eAAe,0CAA0C,UAAU;UAoa7D;;;;;;;;;EAkBF,kBAAkB;UAwBhB;UAMA;UAgCA;UAiBA;;;;;;;UA2DA;;UAoBA;UAcA;UAYA;UAUA;UAMA;UAIA;UA4EA;UASA;UAMA;UAKA;SAUQ,sBAAM;EA6Hb,wBAAM;;QAmBT;YACI;IACR,oBAAoB;;YAGZ,4BAA4B"}
@@ -0,0 +1,3 @@
1
+ import { n as CustomCheckboxOptions, t as AddItemOptions } from "./vertical-list-DwtCPy1b.js";
2
+ import { a as DetailSortMode, i as DetailSortItem, n as DetailFormatter, r as DetailSortComparator, t as DetailListElement } from "./detail-list-BS5dRDda.js";
3
+ export { type AddItemOptions, type CustomCheckboxOptions, type DetailFormatter, DetailListElement, type DetailSortComparator, type DetailSortItem, type DetailSortMode };