@ixfx/components 0.16.1 → 0.16.2

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 (89) hide show
  1. package/bundle/index.d.ts +216 -56
  2. package/bundle/index.js +370 -315
  3. package/dist/ac-text.d.ts +1 -1
  4. package/dist/{ac-token-qEs3FsQv.d.ts → ac-token-Cq7lsYf-.d.ts} +1 -1
  5. package/dist/ac-token.d.ts +1 -1
  6. package/dist/ac-token.js +1 -1
  7. package/dist/{button-N92DKoWb.d.ts → button-D1sPDUCM.d.ts} +1 -1
  8. package/dist/button.d.ts +1 -1
  9. package/dist/colour-picker.d.ts +1 -1
  10. package/dist/{crumb-navigation-YnFVFqrx.js → crumb-navigation-D3ndPgFg.js} +2 -2
  11. package/dist/{crumb-navigation-BbqfmkYs.d.ts → crumb-navigation-nnr881n-.d.ts} +1 -1
  12. package/dist/crumbs.d.ts +1 -1
  13. package/dist/crumbs.js +1 -1
  14. package/dist/{data-grid-Csh5EJW9.d.ts → data-grid-BAEpfTkb.d.ts} +22 -4
  15. package/dist/{data-grid-Cqxuwgbb.js → data-grid-CaPLWt5E.js} +138 -57
  16. package/dist/data-grid.d.ts +2 -2
  17. package/dist/data-grid.js +1 -1
  18. package/dist/{detail-list-Bo5ze3SN.js → detail-list-C3XKTRmE.js} +71 -20
  19. package/dist/{detail-list-DSZ1DDor.d.ts → detail-list-DK49TsJd.d.ts} +12 -4
  20. package/dist/detail-list.d.ts +2 -2
  21. package/dist/detail-list.js +1 -1
  22. package/dist/{flat-list-CT9kX3TQ.d.ts → flat-list-Bv4-qfjp.d.ts} +9 -4
  23. package/dist/flat-list.d.ts +1 -1
  24. package/dist/flat-list.js +6 -3
  25. package/dist/{grid-list-D0dJNVEF.js → grid-list-51XsR2X2.js} +55 -18
  26. package/dist/{grid-list-DDLrWRxm.d.ts → grid-list-DaeSHv9P.d.ts} +58 -14
  27. package/dist/grid-list.d.ts +2 -2
  28. package/dist/grid-list.js +1 -1
  29. package/dist/{grouped-item-lister-DETte0Dh.d.ts → grouped-item-lister-DZIjo9nO.d.ts} +2 -2
  30. package/dist/grouped-item-lister.d.ts +1 -1
  31. package/dist/{icon-CDGprSdE.d.ts → icon-DR_3rSyZ.d.ts} +1 -1
  32. package/dist/icons.d.ts +2 -2
  33. package/dist/{incr-search-CgbL-OlS.js → incr-search-2YaxUUA9.js} +10 -1
  34. package/dist/incr-search.d.ts +1 -1
  35. package/dist/incr-search.js +1 -1
  36. package/dist/{index-CoqtMSd9.d.ts → index-BUB5SICW.d.ts} +1 -1
  37. package/dist/{index-CUErGhCg.d.ts → index-BjRoPrwj.d.ts} +1 -1
  38. package/dist/{index-DN2BWctP.d.ts → index-Bz3loIAf.d.ts} +1 -1
  39. package/dist/{index-UvnoZUAo.d.ts → index-CJ5fshD3.d.ts} +1 -1
  40. package/dist/{index-DxyyVqzA.d.ts → index-DM9OLgTH.d.ts} +3 -2
  41. package/dist/{index-Bnm-kKGC.d.ts → index-DXDz60XH.d.ts} +20 -1
  42. package/dist/{index-CYndvTWH.d.ts → index-garxxqgV.d.ts} +1 -1
  43. package/dist/{index-D-lZNlHa.d.ts → index-vdbbGE7N.d.ts} +1 -1
  44. package/dist/index.d.ts +45 -25
  45. package/dist/index.js +15 -14
  46. package/dist/item-appearance-Bl6rMIID.js +60 -0
  47. package/dist/{labelled-input-base-DiTme1JO.d.ts → labelled-input-base-Dp_9KP0G.d.ts} +1 -1
  48. package/dist/labelled-radial-input.d.ts +2 -2
  49. package/dist/labelled-range-input.d.ts +1 -1
  50. package/dist/labelled-slider-input.d.ts +1 -1
  51. package/dist/list-group-header.d.ts +1 -1
  52. package/dist/{list-selection-controller-5L0Nj9tR.js → list-selection-controller-CJDdjH7E.js} +192 -54
  53. package/dist/list-selection-types-hj9Njei3.d.ts +83 -0
  54. package/dist/{menu-CU9KAm8s.js → menu-BX1FHxY8.js} +16 -1
  55. package/dist/{menu-item-bF6narIz.d.ts → menu-item-B0zqw2xp.d.ts} +1 -1
  56. package/dist/{menu-item-BUv8An2k.js → menu-item-oxU1VKiJ.js} +34 -9
  57. package/dist/menu.d.ts +2 -2
  58. package/dist/menu.js +2 -2
  59. package/dist/{miller-DUqiUAWQ.js → miller-BfrTcujx.js} +142 -11
  60. package/dist/miller.d.ts +1 -1
  61. package/dist/miller.js +1 -1
  62. package/dist/narrowed-text.js +1 -1
  63. package/dist/panel.d.ts +1 -1
  64. package/dist/{split-layout-CophkNeU.d.ts → split-layout-ChZ0Glrs.d.ts} +1 -1
  65. package/dist/split-layout.d.ts +1 -1
  66. package/dist/sunburst-tree.d.ts +1 -1
  67. package/dist/sunburst-tree.js +1 -1
  68. package/dist/{sunbursttree-list-B_M0YTEA.js → sunbursttree-list-906G33ME.js} +1 -1
  69. package/dist/{sunbursttree-list-DePuFYlU.d.ts → sunbursttree-list-BAS0KrDG.d.ts} +1 -1
  70. package/dist/{tab-list-Df371rqw.d.ts → tab-list-wC0xNz1b.d.ts} +1 -1
  71. package/dist/tabs.d.ts +1 -1
  72. package/dist/{titlebar-Tqu-VvMU.d.ts → titlebar-B5zSTZnF.d.ts} +1 -1
  73. package/dist/titlebar.d.ts +1 -1
  74. package/dist/{tree-DAlgvaHB.js → tree-C_H1COTf.js} +1 -1
  75. package/dist/tree.d.ts +1 -1
  76. package/dist/tree.js +1 -1
  77. package/dist/{vertical-list-SAx56U-l.d.ts → vertical-list-od4050Bo.d.ts} +11 -2
  78. package/dist/{vertical-list-DyKPKGxK.js → vertical-list-qMRIxZIT.js} +54 -20
  79. package/dist/vertical-list.d.ts +2 -2
  80. package/dist/vertical-list.js +1 -1
  81. package/docs-user/data-grid.md +10 -3
  82. package/docs-user/detail-list.md +1 -1
  83. package/docs-user/grid-list.md +4 -1
  84. package/docs-user/index.json +2 -2
  85. package/docs-user/menu.md +11 -1
  86. package/docs-user/vertical-list.md +9 -1
  87. package/package.json +1 -1
  88. package/dist/item-appearance-BjcMyauw.js +0 -29
  89. package/dist/list-selection-types-PjKdhF-a.d.ts +0 -45
@@ -1,10 +1,10 @@
1
1
  import { L as ListDragPreviewRenderer, R as ListDragPreviewSourceResolver, V as ListNativeDragStartEvent } from "./tree-component-DgfkxmVY.js";
2
2
  import { a as ViewStateBase, t as GetViewStateOptions } from "./types-LU1u0CB8.js";
3
3
  import "./index-9ttcdwlL.js";
4
- import { S as ListSearchController } from "./index-CUErGhCg.js";
4
+ import { f as ListSelectIntentSource, i as ListInteractionMode, l as ListSelectIntentDetail, m as ListSelectionMode } from "./list-selection-types-hj9Njei3.js";
5
+ import { S as ListSearchController } from "./index-BjRoPrwj.js";
5
6
  import "./pan-text-CoYmt2qd.js";
6
7
  import { i as ListGroupChangeEvent, n as ListGroupBy, o as ListGroupInfo, s as ListGroupLabel, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
7
- import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
8
8
  import "./list-group-header.js";
9
9
  import "./list-native-drag-controller-D_UrXipS.js";
10
10
  import { i as TickledItem, n as TickledController } from "./tickled-controller-DodxD3eQ.js";
@@ -86,10 +86,12 @@ type ListDragSelectControllerConfig<T> = {
86
86
  /**
87
87
  * Fired once on release with the final set. Host applies it to its
88
88
  * selection. `additive` is `true` when the drag ran with Shift (add) or
89
- * Cmd / Ctrl (invert) held.
89
+ * Cmd / Ctrl (invert) held. `covered` is the set the marquee itself hit,
90
+ * before combining with the base selection.
90
91
  */
91
92
  onCommit: (finalSet: ReadonlySet<T>, info: {
92
93
  additive: boolean;
94
+ covered: ReadonlySet<T>;
93
95
  }) => void;
94
96
  /** Optional: scroll the surface when the pointer nears an edge during a drag. */
95
97
  autoScroll?: (dx: number, dy: number) => void;
@@ -133,7 +135,11 @@ type ListSelectionGesture = {
133
135
  readonly ctrlKey: boolean;
134
136
  readonly metaKey: boolean;
135
137
  readonly shiftKey: boolean;
138
+ /** `PointerEvent.pointerType`, when known; a `touch` tap reports source `touch`. */
139
+ readonly pointerType?: string;
136
140
  };
141
+ /** Capture the modifier / pointer-type state of a click for `handleClick`. */
142
+ declare function gestureOf(e: MouseEvent): ListSelectionGesture;
137
143
  type ListSelectionModes = {
138
144
  readonly selectionMode: ListSelectionMode;
139
145
  readonly interactionMode: ListInteractionMode;
@@ -157,6 +163,13 @@ type ListSelectionControllerConfig<T> = {
157
163
  * requests an update.
158
164
  */
159
165
  readonly onChange: (selected: ReadonlySet<T>, previous: ReadonlySet<T>) => void;
166
+ /**
167
+ * Optional: called with the intent behind a gesture (or `selectAll()`)
168
+ * before the selection changes. Return `true` when the caller took over
169
+ * (`preventDefault()`); the controller then leaves the selection alone but
170
+ * still moves the range anchor.
171
+ */
172
+ readonly onIntent?: (intent: ListSelectIntentDetail) => boolean;
160
173
  /**
161
174
  * Optional: derive a stable string key for an item. Enables `selectedKeys`
162
175
  * and `selectKeys()`. When omitted, `selectedKeys` is always empty.
@@ -225,8 +238,11 @@ declare class ListSelectionController<T> {
225
238
  rangeTo(item: T): void;
226
239
  /** Clear the selection. No change event when the selection is already empty. */
227
240
  clear(): void;
228
- /** Select every ordered item that passes `isSelectable`. */
229
- selectAll(): void;
241
+ /**
242
+ * Select every ordered item that passes `isSelectable`. Fires an `all`
243
+ * intent first; the caller may take over.
244
+ */
245
+ selectAll(source?: ListSelectIntentSource): void;
230
246
  /**
231
247
  * Replace the selection with many items at once. Requires
232
248
  * `selectionMode="multiple"`, throws otherwise. Updates the anchor.
@@ -248,24 +264,29 @@ declare class ListSelectionController<T> {
248
264
  * non-empty selection (e.g. a Cmd-drag that toggles everything off) but is
249
265
  * a no-op when nothing is selected.
250
266
  */
251
- applyDragSelection(items: Iterable<T>): void;
267
+ applyDragSelection(items: Iterable<T>, info?: {
268
+ additive: boolean;
269
+ covered: Iterable<T>;
270
+ }): void;
252
271
  /** Remove a single item from the selection. */
253
272
  deselect(item: T): void;
254
273
  /**
255
274
  * Replace the selection with the items resolved from `keys`. Keys that
256
- * `resolve` cannot map, or that resolve to a non-selectable item, are
257
- * ignored. `selectionMode="none"` is a no-op. When multi-select is not
258
- * available, only the last resolvable key is kept. `onChange` fires once.
275
+ * `resolve` cannot map yet are kept pending and selected when their items
276
+ * appear (see `resolvePending()`); keys that resolve to a non-selectable
277
+ * item are ignored. `selectionMode="none"` is a no-op. When multi-select is
278
+ * not available, only the last key is kept. `onChange` fires once.
259
279
  */
260
280
  selectKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
261
281
  /**
262
282
  * Add the items resolved from `keys` to the selection (multi-select only;
263
- * a no-op otherwise). `onChange` fires once if anything changed.
283
+ * a no-op otherwise). Keys not present yet are kept pending. `onChange`
284
+ * fires once if anything changed.
264
285
  */
265
286
  addKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
266
287
  /**
267
- * Remove the items resolved from `keys` from the selection. `onChange`
268
- * fires once if anything changed.
288
+ * Remove the items resolved from `keys` from the selection, and drop them
289
+ * from the pending keys. `onChange` fires once if anything changed.
269
290
  */
270
291
  removeKeys(keys: Iterable<string>, resolve: (key: string) => T | undefined): void;
271
292
  /** Selected keys waiting for their items to appear. */
@@ -291,10 +312,25 @@ declare class ListSelectionController<T> {
291
312
  demote(items: Iterable<T>): boolean;
292
313
  /** Drop pending keys without touching the live selection. */
293
314
  clearPending(): void;
294
- /** Route a click on `item` according to the current interaction mode. */
315
+ /**
316
+ * Route a click on `item` according to the current interaction mode. In
317
+ * `manual` mode nothing is selected, but the intent is still reported so
318
+ * the caller can apply it.
319
+ */
295
320
  handleClick(item: T, gesture: ListSelectionGesture): void;
296
321
  /** Route a Space keypress on `item` according to the current interaction mode. */
297
322
  handleSpace(item: T): void;
323
+ /** Route a checkbox (checked-mode) toggle on `item`. */
324
+ handleCheckbox(item: T, source?: ListSelectIntentSource): void;
325
+ /** Route a plain "select only this" gesture (Enter, double-click) on `item`. */
326
+ handleReplace(item: T, source?: ListSelectIntentSource): void;
327
+ /** Route Shift+Arrow: extend the range from the anchor to the cursor `item`. */
328
+ handleExtend(item: T): void;
329
+ /**
330
+ * Route Escape / empty-space click: clear the selection. `reportOnly`
331
+ * suppresses the default action in `manual` mode (the caller owns it).
332
+ */
333
+ handleClear(source?: ListSelectIntentSource, reportOnly?: boolean): void;
298
334
  /** Drop the range-selection anchor (e.g. when the interaction mode changes). */
299
335
  clearAnchor(): void;
300
336
  /**
@@ -773,6 +809,14 @@ declare class GridListElement<T = unknown> extends LitElement {
773
809
  * Auto-assigned keyless-item keys are omitted.
774
810
  */
775
811
  visibleKeys(): string[];
812
+ /**
813
+ * Cells shown as *partially* selected (a part of the resource is selected):
814
+ * `data-partial` / `part="item partial"` and an accessible description.
815
+ * Independent of `selectedKeys` — a key in both counts as selected.
816
+ * Replace-on-set; keys without a cell are kept for when it appears.
817
+ */
818
+ get partialKeys(): ReadonlySet<string>;
819
+ set partialKeys(keys: Iterable<string>);
776
820
  /**
777
821
  * Mirror cursor / selection onto the light-DOM items as `data-tickled` /
778
822
  * `data-selected`. Only the items whose state changed are touched, so a
@@ -795,4 +839,4 @@ interface GridListElement {
795
839
  addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
796
840
  }
797
841
  //#endregion
798
- export { isMultiMode as A, capKeys as B, TreeKeyboardNavController as C, ListSelectionControllerConfig as D, ListSelectionController as E, EMPTY_KEYS as F, partitionFlags as G, flagsToRecord as H, MAX_PENDING_KEYS as I, partitionKeys as K, PendingFlags as L, ListDragSelectController as M, ListDragSelectControllerConfig as N, ListSelectionGesture as O, EMPTY_FLAGS as P, PendingKeys as R, TreeKeyboardNavCallbacks as S, TreeKeyboardNavItemId as T, keysAsFlags as U, flagsFromRecord as V, keysToArray as W, GridListSelectEvent as _, GridListCaptionAlign as a, GridListViewportChangeDetail as b, GridListCaptionStyle as c, GridListFullElementEventMap as d, GridListItemClickDetail as f, GridListSelectDetail as g, GridListOrientation as h, GridListActivateEvent as i, DragSelectRect as j, ListSelectionModes as k, GridListDataAdapter as l, GridListItemEventDetail as m, GridListViewState as n, GridListCaptionBackdrop as o, GridListItemClickEvent as p, withoutFlag as q, GridListActivateDetail as r, GridListCaptionPosition as s, GridListElement as t, GridListElementEventMap as u, GridListTickleDetail as v, TreeKeyboardNavControllerConfig as w, GridListViewportChangeEvent as x, GridListTickleEvent as y, capFlags as z };
842
+ export { gestureOf as A, capFlags as B, TreeKeyboardNavController as C, ListSelectionControllerConfig as D, ListSelectionController as E, EMPTY_FLAGS as F, keysToArray as G, flagsFromRecord as H, EMPTY_KEYS as I, withoutFlag as J, partitionFlags as K, MAX_PENDING_KEYS as L, DragSelectRect as M, ListDragSelectController as N, ListSelectionGesture as O, ListDragSelectControllerConfig as P, PendingFlags as R, TreeKeyboardNavCallbacks as S, TreeKeyboardNavItemId as T, flagsToRecord as U, capKeys as V, keysAsFlags as W, GridListSelectEvent as _, GridListCaptionAlign as a, GridListViewportChangeDetail as b, GridListCaptionStyle as c, GridListFullElementEventMap as d, GridListItemClickDetail as f, GridListSelectDetail as g, GridListOrientation as h, GridListActivateEvent as i, isMultiMode as j, ListSelectionModes as k, GridListDataAdapter as l, GridListItemEventDetail as m, GridListViewState as n, GridListCaptionBackdrop as o, GridListItemClickEvent as p, partitionKeys as q, GridListActivateDetail as r, GridListCaptionPosition as s, GridListElement as t, GridListElementEventMap as u, GridListTickleDetail as v, TreeKeyboardNavControllerConfig as w, GridListViewportChangeEvent as x, GridListTickleEvent as y, PendingKeys as z };
@@ -1,5 +1,5 @@
1
1
  import { B as ListNativeDragStartDetail, F as ListDragPreview, I as ListDragPreviewContext, L as ListDragPreviewRenderer, P as ListDragEntry, V as ListNativeDragStartEvent, z as ListDragSource } from "./tree-component-DgfkxmVY.js";
2
- import { _ as GridListSelectEvent, a as GridListCaptionAlign, b as GridListViewportChangeDetail, c as GridListCaptionStyle, d as GridListFullElementEventMap, f as GridListItemClickDetail, g as GridListSelectDetail, h as GridListOrientation, i as GridListActivateEvent, l as GridListDataAdapter, m as GridListItemEventDetail, n as GridListViewState, o as GridListCaptionBackdrop, p as GridListItemClickEvent, r as GridListActivateDetail, s as GridListCaptionPosition, t as GridListElement, u as GridListElementEventMap, v as GridListTickleDetail, x as GridListViewportChangeEvent, y as GridListTickleEvent } from "./grid-list-DDLrWRxm.js";
2
+ import { _ as GridListSelectEvent, a as GridListCaptionAlign, b as GridListViewportChangeDetail, c as GridListCaptionStyle, d as GridListFullElementEventMap, f as GridListItemClickDetail, g as GridListSelectDetail, h as GridListOrientation, i as GridListActivateEvent, l as GridListDataAdapter, m as GridListItemEventDetail, n as GridListViewState, o as GridListCaptionBackdrop, p as GridListItemClickEvent, r as GridListActivateDetail, s as GridListCaptionPosition, t as GridListElement, u as GridListElementEventMap, v as GridListTickleDetail, x as GridListViewportChangeEvent, y as GridListTickleEvent } from "./grid-list-DaeSHv9P.js";
3
+ import { i as ListInteractionMode, m as ListSelectionMode } from "./list-selection-types-hj9Njei3.js";
3
4
  import { i as ListGroupChangeEvent, l as ListGroupToggleDetail, n as ListGroupBy, o as ListGroupInfo, r as ListGroupChangeDetail, s as ListGroupLabel, u as ListGroupToggleEvent } from "./grouping-CUKgmkMm.js";
4
- import { i as ListInteractionMode, l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
5
5
  export { type GridListActivateDetail, type GridListActivateEvent, type GridListCaptionAlign, type GridListCaptionBackdrop, type GridListCaptionPosition, type GridListCaptionStyle, type GridListDataAdapter, GridListElement, type GridListElementEventMap, type GridListFullElementEventMap, type GridListItemClickDetail, type GridListItemClickEvent, type GridListItemEventDetail, type GridListOrientation, type GridListSelectDetail, type GridListSelectEvent, type GridListTickleDetail, type GridListTickleEvent, type GridListViewState, type GridListViewportChangeDetail, type GridListViewportChangeEvent, type ListDragEntry, type ListDragPreview, type ListDragPreviewContext, type ListDragPreviewRenderer, type ListDragSource, type ListGroupBy, type ListGroupChangeDetail, type ListGroupChangeEvent, type ListGroupInfo, type ListGroupLabel, type ListGroupToggleDetail, type ListGroupToggleEvent, type ListInteractionMode, type ListNativeDragStartDetail, type ListNativeDragStartEvent, type ListSelectionMode };
package/dist/grid-list.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import "./list-group-header.js";
2
- import { t as GridListElement } from "./grid-list-D0dJNVEF.js";
2
+ import { t as GridListElement } from "./grid-list-51XsR2X2.js";
3
3
  export { GridListElement };
@@ -1,5 +1,5 @@
1
1
  import { r as IDataProvider } from "./data-provider-BAn_-oR1.js";
2
- import { l as ListSelectionMode } from "./list-selection-types-PjKdhF-a.js";
2
+ import { m as ListSelectionMode } from "./list-selection-types-hj9Njei3.js";
3
3
  import "./panel.js";
4
4
  import { LitElement, PropertyValues, nothing } from "lit";
5
5
  import { CommandId } from "@clinth/ui-commands";
@@ -106,7 +106,7 @@ declare class GroupedItemListerElement<T = unknown> extends LitElement {
106
106
  connectedCallback(): void;
107
107
  disconnectedCallback(): void;
108
108
  protected updated(changed: PropertyValues): void;
109
- protected render(): typeof nothing | import("lit").TemplateResult<1>;
109
+ protected render(): import("lit").TemplateResult<1> | typeof nothing;
110
110
  }
111
111
  declare global {
112
112
  interface HTMLElementTagNameMap {
@@ -1,2 +1,2 @@
1
- import { a as IGroupedSubComponent, c as SubComponentActivateEvent, d as SubComponentItemClickEvent, f as SubComponentSelectDetail, h as SubComponentTickleEvent, i as GroupedSelectEvent, l as SubComponentFactory, m as SubComponentTickleDetail, n as GroupedItemListerElementEventMap, o as IGroupedSubComponentEventMap, p as SubComponentSelectEvent, r as GroupedSelectDetail, s as SubComponentActivateDetail, t as GroupedItemListerElement, u as SubComponentItemClickDetail } from "./grouped-item-lister-DETte0Dh.js";
1
+ import { a as IGroupedSubComponent, c as SubComponentActivateEvent, d as SubComponentItemClickEvent, f as SubComponentSelectDetail, h as SubComponentTickleEvent, i as GroupedSelectEvent, l as SubComponentFactory, m as SubComponentTickleDetail, n as GroupedItemListerElementEventMap, o as IGroupedSubComponentEventMap, p as SubComponentSelectEvent, r as GroupedSelectDetail, s as SubComponentActivateDetail, t as GroupedItemListerElement, u as SubComponentItemClickDetail } from "./grouped-item-lister-DZIjo9nO.js";
2
2
  export { GroupedItemListerElement, type GroupedItemListerElementEventMap, type GroupedSelectDetail, type GroupedSelectEvent, type IGroupedSubComponent, type IGroupedSubComponentEventMap, type SubComponentActivateDetail, type SubComponentActivateEvent, type SubComponentFactory, type SubComponentItemClickDetail, type SubComponentItemClickEvent, type SubComponentSelectDetail, type SubComponentSelectEvent, type SubComponentTickleDetail, type SubComponentTickleEvent };
@@ -9,7 +9,7 @@ declare class IxfxIconElement extends LitElement {
9
9
  rotate: string;
10
10
  connectedCallback(): void;
11
11
  disconnectedCallback(): void;
12
- protected render(): typeof nothing | import("lit").TemplateResult<1>;
12
+ protected render(): import("lit").TemplateResult<1> | typeof nothing;
13
13
  protected updated(changed: Map<string, unknown>): void;
14
14
  static styles: import("lit").CSSResult[];
15
15
  }
package/dist/icons.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { t as IxfxIconElement } from "./icon-CDGprSdE.js";
2
- import { a as getIconEntry, c as iconBus, d as setIconFont, f as svgToDataUri, g as ICON_CLOSE, h as ICON_CHEVRON_DOWN, i as getIcon, l as registerFontIcon, m as ICON_CHECK, n as IconChangedEvent, o as getIconFont, p as ICON_CARET_RIGHT, r as IconEntry, s as hasIcon, t as IconChangedDetail, u as registerIcon } from "./index-CYndvTWH.js";
1
+ import { t as IxfxIconElement } from "./icon-DR_3rSyZ.js";
2
+ import { a as getIconEntry, c as iconBus, d as setIconFont, f as svgToDataUri, g as ICON_CLOSE, h as ICON_CHEVRON_DOWN, i as getIcon, l as registerFontIcon, m as ICON_CHECK, n as IconChangedEvent, o as getIconFont, p as ICON_CARET_RIGHT, r as IconEntry, s as hasIcon, t as IconChangedDetail, u as registerIcon } from "./index-garxxqgV.js";
3
3
  export { ICON_CARET_RIGHT, ICON_CHECK, ICON_CHEVRON_DOWN, ICON_CLOSE, type IconChangedDetail, type IconChangedEvent, type IconEntry, IxfxIconElement, getIcon, getIconEntry, getIconFont, hasIcon, iconBus, registerFontIcon, registerIcon, setIconFont, svgToDataUri };
@@ -288,6 +288,15 @@ function createDataListSearchAdapter(host, options) {
288
288
  function keyForElement(el) {
289
289
  return el.getAttribute(`data-key`) ?? el.getAttribute(`data-value`) ?? void 0;
290
290
  }
291
+ /** The stable keys of a set of item elements (items without a key are omitted). */
292
+ function keysOfElements(els) {
293
+ const out = /* @__PURE__ */ new Set();
294
+ for (const el of els) {
295
+ const key = keyForElement(el);
296
+ if (key !== void 0) out.add(key);
297
+ }
298
+ return out;
299
+ }
291
300
  /**
292
301
  * A lazily-built key → element index over a container. Rebuilt on first use
293
302
  * and after any child-list mutation under `root`; `invalidate()` forces a
@@ -1147,4 +1156,4 @@ function createTreeListSearchAdapter(host, options = {}) {
1147
1156
  };
1148
1157
  }
1149
1158
  //#endregion
1150
- export { LIST_SEARCH_COMMAND_IDS as a, createElementListSearchAdapter as c, createDataListSearchAdapter as d, IncrSearchTreeController as f, createFuzzySearch as h, ListSearchController as i, KeyedElementIndex as l, createAcCompletionProvider as m, listSearchStyles as n, registerListSearchCommands as o, createIncrSearch as p, LIST_SEARCH_MODES as r, createElementIncrSearch as s, createTreeListSearchAdapter as t, keyForElement as u };
1159
+ export { LIST_SEARCH_COMMAND_IDS as a, createElementListSearchAdapter as c, keysOfElements as d, createDataListSearchAdapter as f, createFuzzySearch as g, createAcCompletionProvider as h, ListSearchController as i, KeyedElementIndex as l, createIncrSearch as m, listSearchStyles as n, registerListSearchCommands as o, IncrSearchTreeController as p, LIST_SEARCH_MODES as r, createElementIncrSearch as s, createTreeListSearchAdapter as t, keyForElement as u };
@@ -1,2 +1,2 @@
1
- import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-CUErGhCg.js";
1
+ import { A as FuzzySearch, C as ListSearchControllerOptions, D as IncrSearchTreeOptions, E as IncrSearchTreeController, F as IncrSearchChangeCallback, I as IncrSearchOptions, L as IncrSearchResult, M as HighlightOptions, N as HighlightTarget, O as createAcCompletionProvider, P as IncrSearch, R as IncrSearchState, S as ListSearchController, T as ListSearchMode, _ as DataListSearchAdapterOptions, a as RegisterListSearchCommandsOptions, b as LIST_SEARCH_MODES, c as applyHighlights, d as createFuzzySearch, f as ElementIncrSearch, g as createElementListSearchAdapter, h as ElementListSearchHost, i as LIST_SEARCH_COMMAND_IDS, j as FuzzySearchOptions, k as ElementIncrSearchOptions, l as buildHighlightTargets, m as ElementListSearchAdapterOptions, n as createTreeListSearchAdapter, o as registerListSearchCommands, p as createElementIncrSearch, r as listSearchStyles, s as createIncrSearch, t as TreeListSearchAdapterOptions, u as clearHighlights, v as DataListSearchItem, w as ListSearchHost, x as ListSearchAdapter, y as createDataListSearchAdapter } from "./index-BjRoPrwj.js";
2
2
  export { type DataListSearchAdapterOptions, type DataListSearchItem, type ElementIncrSearch, type ElementIncrSearchOptions, type ElementListSearchAdapterOptions, type ElementListSearchHost, type FuzzySearch, type FuzzySearchOptions, type HighlightOptions, type HighlightTarget, type IncrSearch, type IncrSearchChangeCallback, IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, type IncrSearchTreeOptions as IncrSearchMillerOptions, type IncrSearchTreeOptions, type IncrSearchOptions, type IncrSearchResult, type IncrSearchState, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, type ListSearchAdapter, ListSearchController, type ListSearchControllerOptions, type ListSearchHost, type ListSearchMode, type RegisterListSearchCommandsOptions, type TreeListSearchAdapterOptions, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createFuzzySearch, createIncrSearch, createTreeListSearchAdapter, listSearchStyles, registerListSearchCommands };
@@ -1,3 +1,3 @@
1
1
  import { n as buildHighlightTargets, r as clearHighlights, t as applyHighlights } from "./highlight-B-eQrhhb.js";
2
- import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, d as createDataListSearchAdapter, f as IncrSearchTreeController, h as createFuzzySearch, i as ListSearchController, m as createAcCompletionProvider, n as listSearchStyles, o as registerListSearchCommands, p as createIncrSearch, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter } from "./incr-search-CgbL-OlS.js";
2
+ import { a as LIST_SEARCH_COMMAND_IDS, c as createElementListSearchAdapter, f as createDataListSearchAdapter, g as createFuzzySearch, h as createAcCompletionProvider, i as ListSearchController, m as createIncrSearch, n as listSearchStyles, o as registerListSearchCommands, p as IncrSearchTreeController, r as LIST_SEARCH_MODES, s as createElementIncrSearch, t as createTreeListSearchAdapter } from "./incr-search-2YaxUUA9.js";
3
3
  export { IncrSearchTreeController as IncrSearchMillerController, IncrSearchTreeController, LIST_SEARCH_COMMAND_IDS, LIST_SEARCH_MODES, ListSearchController, applyHighlights, buildHighlightTargets, clearHighlights, createAcCompletionProvider, createDataListSearchAdapter, createElementIncrSearch, createElementListSearchAdapter, createFuzzySearch, createIncrSearch, createTreeListSearchAdapter, listSearchStyles, registerListSearchCommands };
@@ -1,4 +1,4 @@
1
- import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
1
+ import { t as LabelledInputBase } from "./labelled-input-base-Dp_9KP0G.js";
2
2
  import { CSSResultGroup } from "lit";
3
3
  //#region src/labelled-range-input/labelled-range-input.d.ts
4
4
  declare class LabelledRangeInput extends LabelledInputBase {
@@ -1,4 +1,4 @@
1
- import "./icon-CDGprSdE.js";
1
+ import "./icon-DR_3rSyZ.js";
2
2
  import { E as TreeSearchHost } from "./tree-component-DgfkxmVY.js";
3
3
  import { o as TreeNode } from "./types-Jky6oNAp.js";
4
4
  import { ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
@@ -1,4 +1,4 @@
1
- import "./index-CoqtMSd9.js";
1
+ import "./index-BUB5SICW.js";
2
2
  import { CSSResultGroup, LitElement, PropertyValues } from "lit";
3
3
  import { Colour } from "@ixfx/visual";
4
4
  //#region src/colour-picker/types.d.ts
@@ -1,4 +1,4 @@
1
- import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
1
+ import { t as LabelledInputBase } from "./labelled-input-base-Dp_9KP0G.js";
2
2
  import { n as EditableLabel } from "./editable-label-rzXkjf1H.js";
3
3
  import { n as WheelNudgeConsumer, t as WheelDirection } from "./wheel-nudge-By5s_ioH.js";
4
4
  import { f as SliderMarkerStyle, m as SliderSingleStyle } from "./slider-input-BxURAAmD.js";
@@ -1,6 +1,6 @@
1
- import "./icon-CDGprSdE.js";
1
+ import "./icon-DR_3rSyZ.js";
2
2
  import { o as TreeNode } from "./types-Jky6oNAp.js";
3
- import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-bF6narIz.js";
3
+ import { i as MenuContainer, n as MenuTrigger, r as MenuTriggerCommandDetail, t as MenuItem } from "./menu-item-B0zqw2xp.js";
4
4
  import { LitElement, TemplateResult } from "lit";
5
5
  import { CommandRegistry, KeyboardManager } from "@clinth/ui-commands";
6
6
  //#region src/menu/menu-bar.d.ts
@@ -11,6 +11,7 @@ declare class MenuBar extends LitElement {
11
11
  disconnectedCallback(): void;
12
12
  private _setInputMode;
13
13
  private _handlePointerMove;
14
+ private _handlePointerOver;
14
15
  private _getTriggers;
15
16
  private _handleTriggerOpen;
16
17
  private _handleTriggerClose;
@@ -2,7 +2,8 @@ import { E as TreeSearchHost, M as TreeDataModel, a as TreeComponent, i as TreeC
2
2
  import { a as TreeItem, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-Jky6oNAp.js";
3
3
  import { a as ViewStateBase, n as ScrollState, t as GetViewStateOptions } from "./types-LU1u0CB8.js";
4
4
  import "./index-9ttcdwlL.js";
5
- import { S as ListSearchController } from "./index-CUErGhCg.js";
5
+ import { l as ListSelectIntentDetail, p as ListSelectKeysDetail } from "./list-selection-types-hj9Njei3.js";
6
+ import { S as ListSearchController } from "./index-BjRoPrwj.js";
6
7
  import { n as TickledController } from "./tickled-controller-DodxD3eQ.js";
7
8
  import { LitElement, PropertyValues, TemplateResult, nothing } from "lit";
8
9
  import { CommandRegistry } from "@clinth/ui-commands";
@@ -240,6 +241,20 @@ declare class MillerBaseElement extends LitElement implements TreeComponent, Tre
240
241
  clearSelection(): void;
241
242
  /** Not implemented on miller-list. */
242
243
  selectAll(): void;
244
+ private _partialKeys;
245
+ /**
246
+ * Nodes shown as *partially* selected (a part of the resource is selected):
247
+ * an indeterminate checkbox in `checked` mode, `.partial` and an accessible
248
+ * description otherwise. Independent of the selection — a key in both counts
249
+ * as selected. In `checked` mode this overrides the state derived from
250
+ * loaded descendants. Replace-on-set.
251
+ */
252
+ get partialKeys(): ReadonlySet<string>;
253
+ set partialKeys(keys: Iterable<string>);
254
+ /** Accessible description for a partial row outside checked mode. */
255
+ protected readonly _partialDescription = "Partially selected";
256
+ /** Whether `node` is shown as partial (and, being selected, not). */
257
+ protected _isPartial(node: TreeNode, depth: number): boolean;
243
258
  /** Not implemented on miller-list. */
244
259
  deselectAll(): void;
245
260
  /**
@@ -346,6 +361,10 @@ interface MillerBaseElementEventMap extends TreeComponentEventMap {
346
361
  'expand': TreeExpandEvent;
347
362
  'collapse': TreeCollapseEvent;
348
363
  'select': TreeSelectEvent;
364
+ 'list-select': CustomEvent<ListSelectKeysDetail & {
365
+ previous: ReadonlySet<TreeNode>;
366
+ }>;
367
+ 'list-select-intent': CustomEvent<ListSelectIntentDetail>;
349
368
  'tickle': TreeTickleEvent;
350
369
  'activate': TreeActivateEvent;
351
370
  'item-dblclick': CustomEvent<MillerItemDblClickDetail>;
@@ -1,4 +1,4 @@
1
- import "./icon-CDGprSdE.js";
1
+ import "./icon-DR_3rSyZ.js";
2
2
  //#region src/icons/defaults.d.ts
3
3
  /** Chevron pointing down (Lucide `chevron-down`). Used for split-button dropdown toggle. */
4
4
  declare const ICON_CHEVRON_DOWN = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"/></svg>";
@@ -2,7 +2,7 @@ import { B as ListNativeDragStartDetail, C as TreeItemDblClickEvent, D as TreeSe
2
2
  import { a as TreeItem, i as TreeInteractionMode, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-Jky6oNAp.js";
3
3
  import { a as ViewStateBase, t as GetViewStateOptions } from "./types-LU1u0CB8.js";
4
4
  import "./index-9ttcdwlL.js";
5
- import { S as ListSearchController } from "./index-CUErGhCg.js";
5
+ import { S as ListSearchController } from "./index-BjRoPrwj.js";
6
6
  import { t as ListNativeDragController } from "./list-native-drag-controller-D_UrXipS.js";
7
7
  import { n as TickledController } from "./tickled-controller-DodxD3eQ.js";
8
8
  import { LitElement, PropertyValues, ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";