@ixfx/components 0.10.3 → 0.10.4
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 +76 -28
- package/bundle/index.d.ts.map +1 -1
- package/bundle/index.js +220 -5
- package/bundle/index.js.map +1 -1
- package/dist/ac-text.d.ts +1 -1
- package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
- package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
- package/dist/ac-token.d.ts +1 -1
- package/dist/{button-DsFbV4XD.js → button-B7mgqtxR.js} +36 -2
- package/dist/button-B7mgqtxR.js.map +1 -0
- package/dist/button-BYuf72aR.d.ts +63 -0
- package/dist/button-BYuf72aR.d.ts.map +1 -0
- package/dist/button.d.ts +2 -21
- package/dist/button.js +1 -1
- package/dist/colour-picker.d.ts +1 -1
- package/dist/crumbs.d.ts +1 -1
- package/dist/{data-grid-f9W2uzaR.d.ts → data-grid-DE1_gZNk.d.ts} +10 -5
- package/dist/data-grid-DE1_gZNk.d.ts.map +1 -0
- package/dist/data-grid.d.ts +2 -2
- package/dist/data-grid.js +56 -0
- package/dist/data-grid.js.map +1 -1
- package/dist/{detail-list-C3tozzBT.d.ts → detail-list-CaStSzYN.d.ts} +7 -5
- package/dist/detail-list-CaStSzYN.d.ts.map +1 -0
- package/dist/detail-list.d.ts +4 -3
- package/dist/detail-list.js +61 -1
- package/dist/detail-list.js.map +1 -1
- package/dist/{grid-list-CM1XhTaW.d.ts → grid-list-BJDxBL0x.d.ts} +3 -3
- package/dist/{grid-list-CM1XhTaW.d.ts.map → grid-list-BJDxBL0x.d.ts.map} +1 -1
- package/dist/{grid-list-WE92nfX5.js → grid-list-CaMcdpFJ.js} +22 -3
- package/dist/grid-list-CaMcdpFJ.js.map +1 -0
- package/dist/grid-list.d.ts +2 -2
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-CEZ72VOs.d.ts → grouped-item-lister-DETte0Dh.d.ts} +3 -3
- package/dist/{grouped-item-lister-CEZ72VOs.d.ts.map → grouped-item-lister-DETte0Dh.d.ts.map} +1 -1
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
- package/dist/icon-CDGprSdE.d.ts.map +1 -0
- package/dist/icons.d.ts +2 -2
- package/dist/incr-search.d.ts +1 -1
- package/dist/{index-C59-JEPl.d.ts → index-9AhaHIT2.d.ts} +3 -3
- package/dist/{index-C59-JEPl.d.ts.map → index-9AhaHIT2.d.ts.map} +1 -1
- package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -2
- package/dist/{index-garxxqgV.d.ts.map → index-CYndvTWH.d.ts.map} +1 -1
- package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
- package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
- package/dist/{index-BXafRK-_.d.ts → index-CsaQwNkz.d.ts} +2 -2
- package/dist/{index-BXafRK-_.d.ts.map → index-CsaQwNkz.d.ts.map} +1 -1
- package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
- package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
- package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
- package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
- package/dist/index.d.ts +21 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
- package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
- package/dist/labelled-radial-input.d.ts +2 -2
- package/dist/labelled-radial-input.d.ts.map +1 -1
- package/dist/labelled-range-input.d.ts +1 -1
- package/dist/labelled-slider-input.d.ts +1 -1
- package/dist/{list-selection-types-B5ioL-dG.d.ts → list-selection-types-PjKdhF-a.d.ts} +1 -9
- package/dist/list-selection-types-PjKdhF-a.d.ts.map +1 -0
- package/dist/list-viewport-types-BRZsLcvp.d.ts +23 -0
- package/dist/list-viewport-types-BRZsLcvp.d.ts.map +1 -0
- package/dist/{menu-item-ZmkXNjek.d.ts → menu-item-CZi9vy5O.d.ts} +2 -2
- package/dist/{menu-item-ZmkXNjek.d.ts.map → menu-item-CZi9vy5O.d.ts.map} +1 -1
- package/dist/menu.d.ts +2 -2
- package/dist/miller.d.ts +1 -1
- package/dist/panel.d.ts +1 -1
- package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
- package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
- package/dist/split-layout.d.ts +1 -1
- package/dist/{tab-list-DbMIL520.d.ts → tab-list-CGyPt07Z.d.ts} +2 -2
- package/dist/{tab-list-DbMIL520.d.ts.map → tab-list-CGyPt07Z.d.ts.map} +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -2
- package/dist/{titlebar-B5zSTZnF.d.ts.map → titlebar-Tqu-VvMU.d.ts.map} +1 -1
- package/dist/titlebar.d.ts +1 -1
- package/dist/tree.d.ts +1 -1
- package/dist/{vertical-list-DdaYcvHQ.d.ts → vertical-list-DfcNsa4p.d.ts} +11 -3
- package/dist/vertical-list-DfcNsa4p.d.ts.map +1 -0
- package/dist/vertical-list.d.ts +4 -3
- package/dist/vertical-list.js +47 -1
- package/dist/vertical-list.js.map +1 -1
- package/docs-user/data-grid.md +9 -0
- package/docs-user/detail-list.md +8 -0
- package/docs-user/grid-list.md +1 -1
- package/docs-user/index.json +2 -2
- package/docs-user/vertical-list.md +7 -0
- package/package.json +1 -1
- package/dist/button-DsFbV4XD.js.map +0 -1
- package/dist/button.d.ts.map +0 -1
- package/dist/data-grid-f9W2uzaR.d.ts.map +0 -1
- package/dist/detail-list-C3tozzBT.d.ts.map +0 -1
- package/dist/grid-list-WE92nfX5.js.map +0 -1
- package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
- package/dist/list-selection-types-B5ioL-dG.d.ts.map +0 -1
- package/dist/vertical-list-DdaYcvHQ.d.ts.map +0 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-DGmKBbpy.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { n as ListViewportChangeEvent } from "./list-viewport-types-BRZsLcvp.js";
|
|
3
|
+
import { S as ListSearchController } from "./index-CsaQwNkz.js";
|
|
4
|
+
import { i as ListInteractionMode, l as ListSelectionMode, r as ListElementEventMap } from "./list-selection-types-PjKdhF-a.js";
|
|
4
5
|
import { LitElement, PropertyValues } from "lit";
|
|
5
6
|
import { CommandId, CommandRegistry } from "@clinth/ui-commands";
|
|
6
7
|
//#region src/vertical-list/vertical-list.d.ts
|
|
@@ -123,6 +124,12 @@ declare class VerticalListElement extends LitElement {
|
|
|
123
124
|
get registry(): CommandRegistry<unknown> | undefined;
|
|
124
125
|
connectedCallback(): void;
|
|
125
126
|
disconnectedCallback(): void;
|
|
127
|
+
/**
|
|
128
|
+
* The shadow scroll list only exists after the first render; start
|
|
129
|
+
* watching it so resizes move the window (virtualized) and the visible
|
|
130
|
+
* set (plain) too.
|
|
131
|
+
*/
|
|
132
|
+
protected firstUpdated(): void;
|
|
126
133
|
updated(changed: PropertyValues): void;
|
|
127
134
|
/** The most recently selected item, or `undefined` if nothing is selected. */
|
|
128
135
|
get selectedItem(): Element | undefined;
|
|
@@ -241,8 +248,9 @@ declare global {
|
|
|
241
248
|
interface HTMLElementEventMap extends VerticalListElementEventMap {}
|
|
242
249
|
}
|
|
243
250
|
interface VerticalListElementEventMap extends ListElementEventMap {
|
|
251
|
+
'vertical-list-viewport-change': ListViewportChangeEvent;
|
|
244
252
|
'list-native-drag-start': ListNativeDragStartEvent<Element>;
|
|
245
253
|
}
|
|
246
254
|
//#endregion
|
|
247
255
|
export { VerticalListElementEventMap as i, CustomCheckboxOptions as n, VerticalListElement as r, AddItemOptions as t };
|
|
248
|
-
//# sourceMappingURL=vertical-list-
|
|
256
|
+
//# sourceMappingURL=vertical-list-DfcNsa4p.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertical-list-DfcNsa4p.d.ts","names":[],"sources":["../src/vertical-list/vertical-list.ts"],"mappings":";;;;;;;UA0DiB;EACf,WAAW;EACX;EACA;;UAGe;;;;;;EAMf;;cAuBW,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;mBAyCiB;UAeT;UA6EA;;WA6EC,QAAM,qBAAA;;MAYX,YAAY;EA2BP;EAsBA;;;;;;YA4BU;EAwDV,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;UA2fhB;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,iCAAiC;EACjC,0BAA0B,yBAAyB"}
|
package/dist/vertical-list.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
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-DGmKBbpy.js";
|
|
2
|
-
import {
|
|
3
|
-
import { i as
|
|
4
|
-
|
|
2
|
+
import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
|
|
3
|
+
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-PjKdhF-a.js";
|
|
4
|
+
import { i as VerticalListElementEventMap, n as CustomCheckboxOptions, r as VerticalListElement, t as AddItemOptions } from "./vertical-list-DfcNsa4p.js";
|
|
5
|
+
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, type ListViewportChangeDetail, type ListViewportChangeEvent, VerticalListElement, VerticalListElementEventMap };
|
package/dist/vertical-list.js
CHANGED
|
@@ -15,6 +15,12 @@ const ITEM_SELECTOR = `li:not([data-virtual-spacer]), [data-list-item]:not([data
|
|
|
15
15
|
* vertical rows are shorter relative to the viewport, so 3.
|
|
16
16
|
*/
|
|
17
17
|
const VIRTUAL_OVERSCAN = 3;
|
|
18
|
+
/** Shallow key-array equality, treating `undefined` (never dispatched) as different. */
|
|
19
|
+
function sameKeys(a, b) {
|
|
20
|
+
if (a === void 0 || a.length !== b.length) return false;
|
|
21
|
+
for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
18
24
|
let VerticalListElement = class VerticalListElement extends LitElement {
|
|
19
25
|
constructor(..._args) {
|
|
20
26
|
super(..._args);
|
|
@@ -129,11 +135,11 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
129
135
|
highlightKey: `vertical-list-search`
|
|
130
136
|
}) });
|
|
131
137
|
this.#onScroll = () => {
|
|
132
|
-
if (!this.#virtualActive()) return;
|
|
133
138
|
if (this.#scrollRaf !== 0) return;
|
|
134
139
|
this.#scrollRaf = requestAnimationFrame(() => {
|
|
135
140
|
this.#scrollRaf = 0;
|
|
136
141
|
this.#syncVirtualWindow();
|
|
142
|
+
this.#emitViewportChangeIfChanged();
|
|
137
143
|
});
|
|
138
144
|
};
|
|
139
145
|
this._onPointerOver = (e) => {
|
|
@@ -226,6 +232,9 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
226
232
|
#suspendAdapterRebuild;
|
|
227
233
|
#scrollRaf;
|
|
228
234
|
#resizeObserver;
|
|
235
|
+
/** Key sets as of the last viewport-change dispatch, for dedupe. */
|
|
236
|
+
#lastViewportRenderedKeys;
|
|
237
|
+
#lastViewportVisibleKeys;
|
|
229
238
|
#topSpacer;
|
|
230
239
|
#bottomSpacer;
|
|
231
240
|
/** Last measured viewport height — kept so a 0 read can't collapse the window. */
|
|
@@ -353,6 +362,14 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
353
362
|
}
|
|
354
363
|
}
|
|
355
364
|
/**
|
|
365
|
+
* The shadow scroll list only exists after the first render; start
|
|
366
|
+
* watching it so resizes move the window (virtualized) and the visible
|
|
367
|
+
* set (plain) too.
|
|
368
|
+
*/
|
|
369
|
+
firstUpdated() {
|
|
370
|
+
this.#ensureResizeObserved();
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
356
373
|
* Animate in items appended to the light DOM (however they got there —
|
|
357
374
|
* {@link addItem}, direct `appendChild`, a framework binding). A bulk populate
|
|
358
375
|
* (roughly everything at once) is left alone, as are the wrapper `<li>`s the
|
|
@@ -362,6 +379,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
362
379
|
if (!this.isConnected) return;
|
|
363
380
|
if (this.#virtualActive()) {
|
|
364
381
|
this.#syncVirtualWindow(this.#reconcileRecords(records));
|
|
382
|
+
this.#scheduleViewportChangeEmit();
|
|
365
383
|
return;
|
|
366
384
|
}
|
|
367
385
|
const fresh = [];
|
|
@@ -372,6 +390,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
372
390
|
this.#animatedItems.add(node);
|
|
373
391
|
fresh.push(node);
|
|
374
392
|
}
|
|
393
|
+
this.#scheduleViewportChangeEmit();
|
|
375
394
|
if (fresh.length === 0) return;
|
|
376
395
|
if (this.#isBulkPopulate(fresh.length)) return;
|
|
377
396
|
for (const el of fresh) animateListItemIn(el);
|
|
@@ -925,6 +944,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
925
944
|
if (!ul) return;
|
|
926
945
|
this.#resizeObserver ??= new ResizeObserver(() => {
|
|
927
946
|
this.#syncVirtualWindow();
|
|
947
|
+
this.#scheduleViewportChangeEmit();
|
|
928
948
|
});
|
|
929
949
|
this.#resizeObserver.observe(ul);
|
|
930
950
|
}
|
|
@@ -1004,6 +1024,32 @@ let VerticalListElement = class VerticalListElement extends LitElement {
|
|
|
1004
1024
|
this._syncItemStates();
|
|
1005
1025
|
this._syncNativeDraggable();
|
|
1006
1026
|
this.#nativeDrag.refreshDraggable();
|
|
1027
|
+
this.#scheduleViewportChangeEmit();
|
|
1028
|
+
}
|
|
1029
|
+
/** Coalesce content/layout viewport checks to at most one animation frame. */
|
|
1030
|
+
#scheduleViewportChangeEmit() {
|
|
1031
|
+
if (this.#scrollRaf !== 0) return;
|
|
1032
|
+
this.#scrollRaf = requestAnimationFrame(() => {
|
|
1033
|
+
this.#scrollRaf = 0;
|
|
1034
|
+
this.#syncVirtualWindow();
|
|
1035
|
+
this.#emitViewportChangeIfChanged();
|
|
1036
|
+
});
|
|
1037
|
+
}
|
|
1038
|
+
/**
|
|
1039
|
+
* Dispatch `vertical-list-viewport-change` with the current key sets — unless
|
|
1040
|
+
* neither set changed since the last dispatch, so coalesced frames and
|
|
1041
|
+
* no-op scrolls stay silent.
|
|
1042
|
+
*/
|
|
1043
|
+
#emitViewportChangeIfChanged() {
|
|
1044
|
+
const renderedKeys = this.renderedKeys();
|
|
1045
|
+
const visibleKeys = this.visibleKeys();
|
|
1046
|
+
if (sameKeys(this.#lastViewportRenderedKeys, renderedKeys) && sameKeys(this.#lastViewportVisibleKeys, visibleKeys)) return;
|
|
1047
|
+
this.#lastViewportRenderedKeys = renderedKeys;
|
|
1048
|
+
this.#lastViewportVisibleKeys = visibleKeys;
|
|
1049
|
+
this._dispatch(`vertical-list-viewport-change`, {
|
|
1050
|
+
renderedKeys,
|
|
1051
|
+
visibleKeys
|
|
1052
|
+
});
|
|
1007
1053
|
}
|
|
1008
1054
|
_getVisibleItems() {
|
|
1009
1055
|
return Array.from(this.querySelectorAll(ITEM_SELECTOR)).filter((el) => {
|