@ixfx/components 0.15.4 → 0.16.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.
- package/bundle/index.d.ts +1223 -48
- package/bundle/index.js +875 -700
- package/dist/ac-text.d.ts +1 -1
- package/dist/{ac-token-Cq7lsYf-.d.ts → ac-token-qEs3FsQv.d.ts} +1 -1
- package/dist/ac-token.d.ts +1 -1
- package/dist/colour-picker.d.ts +1 -1
- package/dist/crumb-navigation-BbqfmkYs.d.ts +147 -0
- package/dist/crumb-navigation-YnFVFqrx.js +1290 -0
- package/dist/crumbs.d.ts +2 -115
- package/dist/crumbs.js +1 -1179
- package/dist/{data-grid-CbiubdG2.d.ts → data-grid-CIG2DVip.d.ts} +58 -9
- package/dist/{data-grid-Dx3l3dxw.js → data-grid-rMkLX2qo.js} +630 -215
- package/dist/data-grid.d.ts +3 -3
- package/dist/data-grid.js +1 -1
- package/dist/{detail-list-ClkMV0SN.d.ts → detail-list-6iMTNP4N.d.ts} +35 -5
- package/dist/{detail-list-q8bs67BM.js → detail-list-C4pDSoI8.js} +218 -7
- package/dist/detail-list.d.ts +4 -4
- package/dist/detail-list.js +1 -1
- package/dist/{flat-list-0xTZdXzh.d.ts → flat-list-JPgQSmLW.d.ts} +28 -5
- package/dist/flat-list.d.ts +2 -2
- package/dist/flat-list.js +123 -4
- package/dist/{grid-list-y6dWJYu3.js → grid-list-CdEkScn-.js} +276 -75
- package/dist/{grid-list-BnWJUIBC.d.ts → grid-list-D6n7WH8l.d.ts} +128 -22
- package/dist/grid-list.d.ts +3 -3
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +1 -1
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +1 -1
- package/dist/icons.d.ts +2 -2
- package/dist/incr-search.d.ts +1 -1
- package/dist/index-9ttcdwlL.d.ts +71 -0
- package/dist/{index-BAuqR9El.d.ts → index-Bx0BXPxI.d.ts} +52 -6
- package/dist/index-CYRc6Dah.d.ts +475 -0
- package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +1 -1
- package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +1 -1
- package/dist/{index-Bz3loIAf.d.ts → index-DN2BWctP.d.ts} +1 -1
- package/dist/{index-BPTuCRGb.d.ts → index-Dr80Zdl6.d.ts} +2 -2
- package/dist/{index-cnaRPQPp.d.ts → index-DxyyVqzA.d.ts} +2 -2
- package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +1 -1
- package/dist/index.d.ts +380 -33
- package/dist/index.js +2247 -866
- package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +1 -1
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-slider-input.d.ts +1 -1
- package/dist/list-group-header.d.ts +1 -1
- package/dist/{list-native-drag-controller-O2Nruqpi.d.ts → list-native-drag-controller-D_UrXipS.d.ts} +1 -1
- package/dist/{list-selection-controller-BeE70lbB.js → list-selection-controller-5L0Nj9tR.js} +87 -2
- package/dist/{menu-item-B0zqw2xp.d.ts → menu-item-bF6narIz.d.ts} +1 -1
- package/dist/menu.d.ts +2 -2
- package/dist/miller-BFRfn0ve.js +2237 -0
- package/dist/miller.d.ts +4 -437
- package/dist/miller.js +1 -1815
- package/dist/panel.d.ts +1 -1
- package/dist/pending-BGidHppL.js +91 -0
- package/dist/scroll-hover-guard-Cjw6179Q.js +35 -0
- package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-CophkNeU.d.ts} +42 -4
- package/dist/{split-layout-Deoxy47d.js → split-layout-DTY4PJRp.js} +251 -19
- package/dist/split-layout.d.ts +1 -1
- package/dist/split-layout.js +1 -1
- package/dist/sunburst-tree.d.ts +2 -0
- package/dist/sunburst-tree.js +2 -0
- package/dist/sunbursttree-list-B_VxOHlo.js +1556 -0
- package/dist/sunbursttree-list-D6j5BxVQ.d.ts +303 -0
- package/dist/{tab-list-wC0xNz1b.d.ts → tab-list-Df371rqw.d.ts} +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +1 -1
- package/dist/titlebar.d.ts +1 -1
- package/dist/tree-CftHwtEb.js +146 -0
- package/dist/{tree-D8VxvR9u.js → tree-Crdpl4nc.js} +275 -47
- package/dist/{tree-component-C6UHO-w9.d.ts → tree-component-DgfkxmVY.d.ts} +19 -8
- package/dist/tree.d.ts +3 -3
- package/dist/tree.js +1 -1
- package/dist/types-LU1u0CB8.d.ts +87 -0
- package/dist/vertical-list-1V1Vg2O5.js +1993 -0
- package/dist/{vertical-list-B8FoU-pU.d.ts → vertical-list-BPDmZx6T.d.ts} +31 -3
- package/dist/vertical-list.d.ts +3 -3
- package/dist/vertical-list.js +1 -1789
- package/dist/view-state-controller-BdyXWUUM.js +305 -0
- package/docs-user/README.md +3 -0
- package/docs-user/crumbs.md +27 -0
- package/docs-user/data-grid.md +77 -5
- package/docs-user/detail-list.md +54 -0
- package/docs-user/dock.md +54 -12
- package/docs-user/flat-list.md +27 -0
- package/docs-user/grid-list.md +64 -11
- package/docs-user/hyperbolic-tree.md +31 -4
- package/docs-user/icicle-tree.md +36 -0
- package/docs-user/index.json +17 -2
- package/docs-user/llms.txt +3 -0
- package/docs-user/miller.md +52 -21
- package/docs-user/multicol-list.md +50 -8
- package/docs-user/split-layout.md +45 -17
- package/docs-user/sunburst-tree.md +223 -0
- package/docs-user/tree.md +46 -7
- package/docs-user/treemap.md +32 -0
- package/docs-user/twosplit-layout.md +22 -0
- package/docs-user/user-catalog.md +1 -1
- package/docs-user/vertical-list.md +55 -7
- package/llms.txt +3 -0
- package/package.json +5 -1
|
@@ -33,7 +33,7 @@ declare abstract class LabelledInputBase extends LitElement {
|
|
|
33
33
|
value: number;
|
|
34
34
|
}>) => void;
|
|
35
35
|
protected _syncValue(v: number): void;
|
|
36
|
-
protected _renderEditableNumber(): import("lit").TemplateResult<1
|
|
36
|
+
protected _renderEditableNumber(): typeof nothing | import("lit").TemplateResult<1>;
|
|
37
37
|
updated(changedProperties: Map<string, unknown>): void;
|
|
38
38
|
}
|
|
39
39
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as LabelledInputBase } from "./labelled-input-base-
|
|
1
|
+
import { t as LabelledInputBase } from "./labelled-input-base-DiTme1JO.js";
|
|
2
2
|
import { i as MarkerStyle, l as ValueMode } from "./radial-input-DU6t2hYO.js";
|
|
3
3
|
import { CSSResultGroup, nothing } from "lit";
|
|
4
4
|
//#region src/labelled-radial-input/labelled-radial-input.d.ts
|
|
@@ -19,7 +19,7 @@ declare class LabelledRadialInput extends LabelledInputBase {
|
|
|
19
19
|
private _isWide;
|
|
20
20
|
private _getEffectivePrecision;
|
|
21
21
|
protected _handleResize(entries: ResizeObserverEntry[]): void;
|
|
22
|
-
protected _renderEditableNumber(): import("lit").TemplateResult<1
|
|
22
|
+
protected _renderEditableNumber(): typeof nothing | import("lit").TemplateResult<1>;
|
|
23
23
|
render(): import("lit").TemplateResult<1>;
|
|
24
24
|
private _getTooltipValue;
|
|
25
25
|
static styles: CSSResultGroup;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as LabelledRangeInput } from "./index-
|
|
1
|
+
import { t as LabelledRangeInput } from "./index-CoqtMSd9.js";
|
|
2
2
|
export { LabelledRangeInput };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as LabelledSliderInput } from "./index-
|
|
1
|
+
import { t as LabelledSliderInput } from "./index-UvnoZUAo.js";
|
|
2
2
|
export { LabelledSliderInput };
|
package/dist/{list-native-drag-controller-O2Nruqpi.d.ts → list-native-drag-controller-D_UrXipS.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as ListNativeDragStartDetail, I as ListDragPreviewContext, L as ListDragPreviewRenderer, P as ListDragEntry, R as ListDragPreviewSourceResolver, z as ListDragSource } from "./tree-component-DgfkxmVY.js";
|
|
2
2
|
import { ReactiveController, ReactiveControllerHost } from "lit";
|
|
3
3
|
//#region src/interaction/list-native-drag-controller.d.ts
|
|
4
4
|
type ListNativeDragControllerConfig<T> = {
|
package/dist/{list-selection-controller-BeE70lbB.js → list-selection-controller-5L0Nj9tR.js}
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { a as capKeys, d as partitionKeys, n as EMPTY_KEYS } from "./pending-BGidHppL.js";
|
|
1
2
|
//#region src/interaction/list-drag-select-controller.ts
|
|
2
3
|
const DEFAULT_POINTER_TYPES = [`mouse`, `pen`];
|
|
3
4
|
const DEFAULT_THRESHOLD = 4;
|
|
@@ -331,6 +332,12 @@ var ListSelectionController = class {
|
|
|
331
332
|
#config;
|
|
332
333
|
#selected = /* @__PURE__ */ new Set();
|
|
333
334
|
#anchor;
|
|
335
|
+
/**
|
|
336
|
+
* Selected keys whose items are not currently present (restored view state,
|
|
337
|
+
* or items removed by a data reset). Re-selected by `resolvePending()` when
|
|
338
|
+
* a matching item appears; dropped by any explicit selection change.
|
|
339
|
+
*/
|
|
340
|
+
#pending = EMPTY_KEYS;
|
|
334
341
|
constructor(config) {
|
|
335
342
|
this.#config = config;
|
|
336
343
|
}
|
|
@@ -425,6 +432,7 @@ var ListSelectionController = class {
|
|
|
425
432
|
}
|
|
426
433
|
/** Clear the selection. No change event when the selection is already empty. */
|
|
427
434
|
clear() {
|
|
435
|
+
this.#pending = EMPTY_KEYS;
|
|
428
436
|
if (this.#selected.size === 0) return;
|
|
429
437
|
this.#apply(/* @__PURE__ */ new Set());
|
|
430
438
|
}
|
|
@@ -544,6 +552,79 @@ var ListSelectionController = class {
|
|
|
544
552
|
}
|
|
545
553
|
if (changed) this.#apply(next);
|
|
546
554
|
}
|
|
555
|
+
/** Selected keys waiting for their items to appear. */
|
|
556
|
+
get pendingKeys() {
|
|
557
|
+
return this.#pending;
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Restore a selection by key: keys that resolve are selected now (one
|
|
561
|
+
* `onChange`), the rest are kept pending for `resolvePending()`. Replaces
|
|
562
|
+
* any previous selection and pending keys. Unlike `selectKeys`, this works
|
|
563
|
+
* in `selectionMode="none"` only to the extent of holding keys pending.
|
|
564
|
+
*/
|
|
565
|
+
restoreKeys(keys, resolve) {
|
|
566
|
+
const wanted = new Set(keys);
|
|
567
|
+
const { present, missing } = partitionKeys(wanted, (key) => this.#resolveSelectable(key, resolve) !== void 0);
|
|
568
|
+
let next = /* @__PURE__ */ new Set();
|
|
569
|
+
if (this.#config.getModes().selectionMode !== `none`) for (const key of present) next.add(this.#resolveSelectable(key, resolve));
|
|
570
|
+
if (!this.#effectiveMulti() && next.size > 1) next = new Set([...next].slice(-1));
|
|
571
|
+
this.#anchor = [...next].at(-1);
|
|
572
|
+
this.#pending = capKeys(missing);
|
|
573
|
+
if (next.size === 0 && this.#selected.size === 0) return;
|
|
574
|
+
this.#apply(next, true);
|
|
575
|
+
}
|
|
576
|
+
/**
|
|
577
|
+
* Select pending keys whose items now resolve (call after items are added
|
|
578
|
+
* or rebuilt). Fires `onChange` once when anything was selected; returns
|
|
579
|
+
* whether it did.
|
|
580
|
+
*/
|
|
581
|
+
resolvePending(resolve) {
|
|
582
|
+
if (this.#pending.size === 0 || this.#config.getModes().selectionMode === `none`) return false;
|
|
583
|
+
const { present, missing } = partitionKeys(this.#pending, (key) => this.#resolveSelectable(key, resolve) !== void 0);
|
|
584
|
+
if (present.length === 0) return false;
|
|
585
|
+
const found = present.map((key) => this.#resolveSelectable(key, resolve));
|
|
586
|
+
let next;
|
|
587
|
+
if (this.#effectiveMulti()) {
|
|
588
|
+
next = /* @__PURE__ */ new Set([...this.#selected, ...found]);
|
|
589
|
+
this.#pending = missing;
|
|
590
|
+
} else {
|
|
591
|
+
next = /* @__PURE__ */ new Set([found.at(-1)]);
|
|
592
|
+
this.#pending = EMPTY_KEYS;
|
|
593
|
+
}
|
|
594
|
+
this.#anchor ??= found.at(-1);
|
|
595
|
+
this.#apply(next, true);
|
|
596
|
+
return true;
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* Silently deselect `items` that left the data, keeping their keys pending
|
|
600
|
+
* so they are re-selected if the same keys come back (data reset, re-fetch).
|
|
601
|
+
* No `onChange`; returns whether the selection changed.
|
|
602
|
+
*/
|
|
603
|
+
demote(items) {
|
|
604
|
+
const getKey = this.#config.getKey;
|
|
605
|
+
const next = new Set(this.#selected);
|
|
606
|
+
const pending = new Set(this.#pending);
|
|
607
|
+
let changed = false;
|
|
608
|
+
for (const item of items) {
|
|
609
|
+
if (!next.delete(item)) continue;
|
|
610
|
+
changed = true;
|
|
611
|
+
const key = getKey?.(item);
|
|
612
|
+
if (key !== void 0) pending.add(key);
|
|
613
|
+
if (this.#anchor === item) this.#anchor = void 0;
|
|
614
|
+
}
|
|
615
|
+
if (!changed) return false;
|
|
616
|
+
this.#selected = next;
|
|
617
|
+
this.#pending = capKeys(pending);
|
|
618
|
+
return true;
|
|
619
|
+
}
|
|
620
|
+
/** Drop pending keys without touching the live selection. */
|
|
621
|
+
clearPending() {
|
|
622
|
+
this.#pending = EMPTY_KEYS;
|
|
623
|
+
}
|
|
624
|
+
#resolveSelectable(key, resolve) {
|
|
625
|
+
const item = resolve(key);
|
|
626
|
+
return item !== void 0 && this.#config.isSelectable(item) ? item : void 0;
|
|
627
|
+
}
|
|
547
628
|
/** Route a click on `item` according to the current interaction mode. */
|
|
548
629
|
handleClick(item, gesture) {
|
|
549
630
|
const { selectionMode, interactionMode: mode } = this.#config.getModes();
|
|
@@ -586,9 +667,11 @@ var ListSelectionController = class {
|
|
|
586
667
|
}
|
|
587
668
|
/**
|
|
588
669
|
* Hard reset: empty the selection and clear the anchor without firing
|
|
589
|
-
* `onChange` (e.g. when all items are removed).
|
|
670
|
+
* `onChange` (e.g. when all items are removed). Keyed selected items become
|
|
671
|
+
* pending, so a rebuilt item set re-selects them via `resolvePending()`.
|
|
590
672
|
*/
|
|
591
673
|
reset() {
|
|
674
|
+
this.demote([...this.#selected]);
|
|
592
675
|
this.#selected = /* @__PURE__ */ new Set();
|
|
593
676
|
this.#anchor = void 0;
|
|
594
677
|
}
|
|
@@ -615,7 +698,9 @@ var ListSelectionController = class {
|
|
|
615
698
|
const group = this.#groupOf(first);
|
|
616
699
|
return new Set([...items].filter((t) => this.#groupOf(t) === group));
|
|
617
700
|
}
|
|
618
|
-
|
|
701
|
+
/** Commit `next`. An explicit selection change supersedes pending keys unless `keepPending`. */
|
|
702
|
+
#apply(next, keepPending = false) {
|
|
703
|
+
if (!keepPending) this.#pending = EMPTY_KEYS;
|
|
619
704
|
const previous = this.#selected;
|
|
620
705
|
this.#selected = next;
|
|
621
706
|
this.#config.onChange(next, previous);
|
package/dist/menu.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { i as MenuContainer, n as MenuTrigger, t as MenuItem } from "./menu-item-
|
|
2
|
-
import { a as menuFromTree, c as MenuSeparator, d as MenuCheckItem, f as MenuBar, i as MenuFromTreeOptions, l as MenuSubTrigger, n as MenuRadioGroup, o as menuFromTreeToElements, r as MenuRadioItem, s as MenuHeader, u as MenuCommandController } from "./index-
|
|
1
|
+
import { i as MenuContainer, n as MenuTrigger, t as MenuItem } from "./menu-item-bF6narIz.js";
|
|
2
|
+
import { a as menuFromTree, c as MenuSeparator, d as MenuCheckItem, f as MenuBar, i as MenuFromTreeOptions, l as MenuSubTrigger, n as MenuRadioGroup, o as menuFromTreeToElements, r as MenuRadioItem, s as MenuHeader, u as MenuCommandController } from "./index-DxyyVqzA.js";
|
|
3
3
|
export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, type MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
|