@ixfx/components 0.16.1 → 0.16.3
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 +272 -58
- package/bundle/index.js +400 -337
- package/dist/ac-token.js +1 -1
- package/dist/{crumb-navigation-YnFVFqrx.js → crumb-navigation-D3ndPgFg.js} +2 -2
- package/dist/crumbs.js +1 -1
- package/dist/{data-grid-Cqxuwgbb.js → data-grid-8TsiF2ES.js} +142 -60
- package/dist/{data-grid-Csh5EJW9.d.ts → data-grid-CslzF16R.d.ts} +21 -3
- package/dist/data-grid.d.ts +2 -2
- package/dist/data-grid.js +1 -1
- package/dist/{detail-list-DSZ1DDor.d.ts → detail-list-n1MbNbhF.d.ts} +11 -3
- package/dist/{detail-list-Bo5ze3SN.js → detail-list-w3GXKO2k.js} +71 -19
- package/dist/detail-list.d.ts +2 -2
- package/dist/detail-list.js +1 -1
- package/dist/{flat-list-CT9kX3TQ.d.ts → flat-list-D_4y3wgn.d.ts} +7 -2
- package/dist/flat-list.d.ts +1 -1
- package/dist/flat-list.js +5 -2
- package/dist/{grid-list-DDLrWRxm.d.ts → grid-list-CqYS28NY.d.ts} +60 -14
- package/dist/{grid-list-D0dJNVEF.js → grid-list-Cz2tKcNZ.js} +55 -17
- package/dist/grid-list.d.ts +2 -2
- package/dist/grid-list.js +1 -1
- package/dist/{grouped-item-lister-DETte0Dh.d.ts → grouped-item-lister-CS4yInuw.d.ts} +1 -1
- package/dist/grouped-item-lister.d.ts +1 -1
- package/dist/{incr-search-CgbL-OlS.js → incr-search-Dc6gYpJG.js} +34 -5
- package/dist/incr-search.d.ts +1 -1
- package/dist/incr-search.js +1 -1
- package/dist/{index-CUErGhCg.d.ts → index-Bm9a9S3_.d.ts} +2 -1
- package/dist/{index-Bnm-kKGC.d.ts → index-DyaHA9Kk.d.ts} +20 -1
- package/dist/{index-D-lZNlHa.d.ts → index-VAs9akt4.d.ts} +18 -2
- package/dist/{index-DxyyVqzA.d.ts → index-ZaA90u09.d.ts} +1 -0
- package/dist/index.d.ts +45 -14
- package/dist/index.js +93 -17
- package/dist/{list-selection-controller-5L0Nj9tR.js → list-selection-controller-D4iIrvJH.js} +199 -57
- package/dist/list-selection-types-Dnamh2Lu.d.ts +109 -0
- package/dist/{menu-CU9KAm8s.js → menu-BX1FHxY8.js} +16 -1
- package/dist/{menu-item-BUv8An2k.js → menu-item-oxU1VKiJ.js} +34 -9
- package/dist/menu.d.ts +1 -1
- package/dist/menu.js +2 -2
- package/dist/{miller-DUqiUAWQ.js → miller-Be7x4ufN.js} +142 -10
- package/dist/miller.d.ts +1 -1
- package/dist/miller.js +1 -1
- package/dist/narrowed-text.js +1 -1
- package/dist/partial-keys-Ck6CiprB.js +32 -0
- package/dist/sunburst-tree.d.ts +1 -1
- package/dist/sunburst-tree.js +1 -1
- package/dist/{sunbursttree-list-DePuFYlU.d.ts → sunbursttree-list-Bk20giTF.d.ts} +1 -1
- package/dist/{sunbursttree-list-B_M0YTEA.js → sunbursttree-list-DQF6DcsS.js} +1 -1
- package/dist/timeline.d.ts +1 -1
- package/dist/{tree-DAlgvaHB.js → tree-BaXYyt5U.js} +185 -69
- package/dist/tree.d.ts +1 -1
- package/dist/tree.js +1 -1
- package/dist/{vertical-list-SAx56U-l.d.ts → vertical-list-DtHX26JO.d.ts} +11 -2
- package/dist/{vertical-list-DyKPKGxK.js → vertical-list-o5hfqH87.js} +54 -19
- package/dist/vertical-list.d.ts +2 -2
- package/dist/vertical-list.js +1 -1
- package/docs-user/README.md +1 -0
- package/docs-user/data-grid.md +10 -3
- package/docs-user/detail-list.md +1 -1
- package/docs-user/grid-list.md +4 -1
- package/docs-user/index.json +6 -2
- package/docs-user/llms.txt +1 -0
- package/docs-user/menu.md +11 -1
- package/docs-user/miller.md +4 -0
- package/docs-user/multicol-list.md +6 -0
- package/docs-user/select-horiz.md +1 -1
- package/docs-user/tree.md +6 -0
- package/docs-user/user-selection-intents.md +86 -0
- package/docs-user/vertical-list.md +9 -1
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/dist/list-selection-types-PjKdhF-a.d.ts +0 -45
- /package/dist/{index-DV3iaUBW.d.ts → index-DV3iaUBW2.d.ts} +0 -0
package/dist/menu.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
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-
|
|
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-ZaA90u09.js";
|
|
3
3
|
export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, type MenuFromTreeOptions, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
|
package/dist/menu.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { n as MenuTrigger, r as MenuContainer, t as MenuItem } from "./menu-item-
|
|
2
|
-
import { a as menuFromTreeToElements, c as MenuSubTrigger, d as MenuBar, i as menuFromTree, l as MenuCommandController, n as MenuRadioGroup, o as MenuHeader, r as MenuRadioItem, s as MenuSeparator, u as MenuCheckItem } from "./menu-
|
|
1
|
+
import { n as MenuTrigger, r as MenuContainer, t as MenuItem } from "./menu-item-oxU1VKiJ.js";
|
|
2
|
+
import { a as menuFromTreeToElements, c as MenuSubTrigger, d as MenuBar, i as menuFromTree, l as MenuCommandController, n as MenuRadioGroup, o as MenuHeader, r as MenuRadioItem, s as MenuSeparator, u as MenuCheckItem } from "./menu-BX1FHxY8.js";
|
|
3
3
|
export { MenuBar, MenuCheckItem, MenuCommandController, MenuContainer, MenuHeader, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSubTrigger, MenuTrigger, menuFromTree, menuFromTreeToElements };
|
|
@@ -2,8 +2,9 @@ import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
|
|
|
2
2
|
import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
|
|
3
3
|
import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
|
|
4
4
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
5
|
-
import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-
|
|
5
|
+
import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-Dc6gYpJG.js";
|
|
6
6
|
import { a as capKeys, d as partitionKeys, l as keysToArray, n as EMPTY_KEYS } from "./pending-BGidHppL.js";
|
|
7
|
+
import { i as sameKeySet, r as isPartialKey, t as PARTIAL_DESCRIPTION } from "./partial-keys-Ck6CiprB.js";
|
|
7
8
|
import "./interaction-E-uMGHkJ.js";
|
|
8
9
|
import { t as collectDataResult } from "./data-provider-35TyWclX.js";
|
|
9
10
|
import { a as restoreElementScroll, i as onUserScrollIntent, o as scrollToOffset, r as captureElementScroll, t as ViewStateController } from "./view-state-controller-BdyXWUUM.js";
|
|
@@ -278,6 +279,8 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
278
279
|
this.#onColumnScroll = (event) => {
|
|
279
280
|
if (this.#pendingColumnScroll.size === 0 && event.target.classList?.contains(`column-content`)) this.#viewState.notify();
|
|
280
281
|
};
|
|
282
|
+
this._partialKeys = /* @__PURE__ */ new Set();
|
|
283
|
+
this._partialDescription = PARTIAL_DESCRIPTION;
|
|
281
284
|
this.#selectOrigin = `user`;
|
|
282
285
|
this.#selectSilent = false;
|
|
283
286
|
this.#onKeyDown = (event) => {
|
|
@@ -781,6 +784,24 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
781
784
|
}
|
|
782
785
|
/** Not implemented on miller-list. */
|
|
783
786
|
selectAll() {}
|
|
787
|
+
/**
|
|
788
|
+
* Nodes shown as *partially* selected (a part of the resource is selected):
|
|
789
|
+
* an indeterminate checkbox in `checked` mode, `.partial` and an accessible
|
|
790
|
+
* description otherwise. Independent of the selection — a key in both counts
|
|
791
|
+
* as selected. In `checked` mode this overrides the state derived from
|
|
792
|
+
* loaded descendants. Replace-on-set.
|
|
793
|
+
*/
|
|
794
|
+
get partialKeys() {
|
|
795
|
+
return this._partialKeys;
|
|
796
|
+
}
|
|
797
|
+
set partialKeys(keys) {
|
|
798
|
+
const next = new Set(keys);
|
|
799
|
+
if (!sameKeySet(next, this._partialKeys)) this._partialKeys = next;
|
|
800
|
+
}
|
|
801
|
+
/** Whether `node` is shown as partial (and, being selected, not). */
|
|
802
|
+
_isPartial(node, depth) {
|
|
803
|
+
return isPartialKey(node.item.key, this._partialKeys, this._isSelected(node, depth));
|
|
804
|
+
}
|
|
784
805
|
/** Not implemented on miller-list. */
|
|
785
806
|
deselectAll() {}
|
|
786
807
|
/**
|
|
@@ -1171,6 +1192,58 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1171
1192
|
bubbles: true,
|
|
1172
1193
|
composed: true
|
|
1173
1194
|
}));
|
|
1195
|
+
this.dispatchEvent(new CustomEvent(`list-select`, {
|
|
1196
|
+
detail: {
|
|
1197
|
+
selectedKeys: new Set(this._selectedKeys),
|
|
1198
|
+
previousKeys: new Set([...previous].map((n) => n.item.key)),
|
|
1199
|
+
previous
|
|
1200
|
+
},
|
|
1201
|
+
bubbles: true,
|
|
1202
|
+
composed: true
|
|
1203
|
+
}));
|
|
1204
|
+
}
|
|
1205
|
+
/** Report an intent before changing the selection; `true` when the caller took over. */
|
|
1206
|
+
#intercepted(intent) {
|
|
1207
|
+
return !this.dispatchEvent(new CustomEvent(`list-select-intent`, {
|
|
1208
|
+
detail: intent,
|
|
1209
|
+
bubbles: true,
|
|
1210
|
+
composed: true,
|
|
1211
|
+
cancelable: true
|
|
1212
|
+
}));
|
|
1213
|
+
}
|
|
1214
|
+
/** The anchor..`index` range in `col` when `depth` holds the range anchor, else `undefined`. */
|
|
1215
|
+
#rangeNodes(col, depth, index) {
|
|
1216
|
+
if (!this.#anchor || this.#anchor.depth !== depth || !col || index < 0) return void 0;
|
|
1217
|
+
return col.slice(Math.min(this.#anchor.index, index), Math.max(this.#anchor.index, index) + 1);
|
|
1218
|
+
}
|
|
1219
|
+
/** `manual` mode: nothing is selected here, but the caller is told what the click meant. */
|
|
1220
|
+
#reportManualClick(node, depth, event, source) {
|
|
1221
|
+
const key = node.item.key;
|
|
1222
|
+
if (event && (event.metaKey || event.ctrlKey)) {
|
|
1223
|
+
this.#intercepted({
|
|
1224
|
+
kind: `toggle`,
|
|
1225
|
+
keys: [key],
|
|
1226
|
+
source
|
|
1227
|
+
});
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1230
|
+
const col = this._columns[depth];
|
|
1231
|
+
const range = event?.shiftKey ? this.#rangeNodes(col, depth, col ? col.indexOf(node) : -1) : void 0;
|
|
1232
|
+
if (range && this.#anchor) {
|
|
1233
|
+
this.#intercepted({
|
|
1234
|
+
kind: `extend`,
|
|
1235
|
+
keys: range.map((n) => n.item.key),
|
|
1236
|
+
anchorKey: this.#anchor.key,
|
|
1237
|
+
targetKey: key,
|
|
1238
|
+
source
|
|
1239
|
+
});
|
|
1240
|
+
return;
|
|
1241
|
+
}
|
|
1242
|
+
this.#intercepted({
|
|
1243
|
+
kind: `replace`,
|
|
1244
|
+
keys: [key],
|
|
1245
|
+
source
|
|
1246
|
+
});
|
|
1174
1247
|
}
|
|
1175
1248
|
#abortPending() {
|
|
1176
1249
|
if (this.#expandTimer !== void 0) {
|
|
@@ -1241,11 +1314,22 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1241
1314
|
case `vscode`:
|
|
1242
1315
|
this.#handleStandardClick(node, depth, event);
|
|
1243
1316
|
break;
|
|
1244
|
-
case `manual`:
|
|
1317
|
+
case `manual`:
|
|
1318
|
+
this.#reportManualClick(node, depth, event, `pointer`);
|
|
1319
|
+
break;
|
|
1245
1320
|
case `checked`: this.#expandNode(node, depth, true);
|
|
1246
1321
|
}
|
|
1247
1322
|
}
|
|
1248
1323
|
#handleImplicitClick(node, depth) {
|
|
1324
|
+
if (this.#intercepted({
|
|
1325
|
+
kind: `replace`,
|
|
1326
|
+
keys: [node.item.key],
|
|
1327
|
+
source: `pointer`
|
|
1328
|
+
})) {
|
|
1329
|
+
this.#lastSelectedNode = node;
|
|
1330
|
+
this.#expandNode(node, depth, true);
|
|
1331
|
+
return;
|
|
1332
|
+
}
|
|
1249
1333
|
const previous = new Set(this._selectedNodes);
|
|
1250
1334
|
this._selectedByDepth.set(depth, node);
|
|
1251
1335
|
this.#lastSelectedNode = node;
|
|
@@ -1261,6 +1345,18 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1261
1345
|
const isMeta = event ? event.metaKey || event.ctrlKey : false;
|
|
1262
1346
|
const isShift = event ? event.shiftKey : false;
|
|
1263
1347
|
if (isMeta) {
|
|
1348
|
+
if (this.#intercepted({
|
|
1349
|
+
kind: `toggle`,
|
|
1350
|
+
keys: [node.item.key],
|
|
1351
|
+
source: `pointer`
|
|
1352
|
+
})) {
|
|
1353
|
+
this.#anchor = index >= 0 ? {
|
|
1354
|
+
key: node.item.key,
|
|
1355
|
+
depth,
|
|
1356
|
+
index
|
|
1357
|
+
} : this.#anchor;
|
|
1358
|
+
return;
|
|
1359
|
+
}
|
|
1264
1360
|
if (this._selectedKeys.has(node.item.key)) {
|
|
1265
1361
|
this._selectedKeys.delete(node.item.key);
|
|
1266
1362
|
this._selectedNodes.delete(node);
|
|
@@ -1278,23 +1374,38 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1278
1374
|
return;
|
|
1279
1375
|
}
|
|
1280
1376
|
if (isShift && this.#anchor && this.#anchor.depth === depth && col) {
|
|
1281
|
-
const
|
|
1282
|
-
|
|
1283
|
-
|
|
1377
|
+
const rangeNodes = this.#rangeNodes(col, depth, index) ?? [];
|
|
1378
|
+
if (this.#intercepted({
|
|
1379
|
+
kind: `extend`,
|
|
1380
|
+
keys: rangeNodes.map((n) => n.item.key),
|
|
1381
|
+
anchorKey: this.#anchor.key,
|
|
1382
|
+
targetKey: node.item.key,
|
|
1383
|
+
source: `pointer`
|
|
1384
|
+
})) return;
|
|
1284
1385
|
this._selectedKeys = new Set(rangeNodes.map((n) => n.item.key));
|
|
1285
1386
|
this._selectedNodes = new Set(rangeNodes);
|
|
1286
1387
|
this.#selectionChanged();
|
|
1287
1388
|
this.requestUpdate();
|
|
1288
1389
|
return;
|
|
1289
1390
|
}
|
|
1391
|
+
const intercepted = this.#intercepted({
|
|
1392
|
+
kind: `replace`,
|
|
1393
|
+
keys: [node.item.key],
|
|
1394
|
+
source: `pointer`
|
|
1395
|
+
});
|
|
1290
1396
|
const previous = new Set(this._selectedNodes);
|
|
1291
|
-
this._selectedKeys = /* @__PURE__ */ new Set([node.item.key]);
|
|
1292
|
-
this._selectedNodes = /* @__PURE__ */ new Set([node]);
|
|
1293
1397
|
this.#anchor = index >= 0 ? {
|
|
1294
1398
|
key: node.item.key,
|
|
1295
1399
|
depth,
|
|
1296
1400
|
index
|
|
1297
1401
|
} : void 0;
|
|
1402
|
+
if (intercepted) {
|
|
1403
|
+
this.#lastSelectedNode = node;
|
|
1404
|
+
this.#expandNode(node, depth, true);
|
|
1405
|
+
return;
|
|
1406
|
+
}
|
|
1407
|
+
this._selectedKeys = /* @__PURE__ */ new Set([node.item.key]);
|
|
1408
|
+
this._selectedNodes = /* @__PURE__ */ new Set([node]);
|
|
1298
1409
|
this._selectedByDepth.set(depth, node);
|
|
1299
1410
|
this.#lastSelectedNode = node;
|
|
1300
1411
|
this.#expandNode(node, depth, true);
|
|
@@ -1399,6 +1510,11 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1399
1510
|
}
|
|
1400
1511
|
}
|
|
1401
1512
|
#onCheckboxClick(node) {
|
|
1513
|
+
if (this.#intercepted({
|
|
1514
|
+
kind: `toggle`,
|
|
1515
|
+
keys: [node.item.key],
|
|
1516
|
+
source: `pointer`
|
|
1517
|
+
})) return;
|
|
1402
1518
|
const previous = new Set(this._selectedNodes);
|
|
1403
1519
|
const currentlySelected = this._selectedKeys.has(node.item.key);
|
|
1404
1520
|
if (!!node.children?.length ? this.#allDescendantsSelected(node) : currentlySelected) this.#applyCheckedToggle(node, false);
|
|
@@ -1519,7 +1635,13 @@ let MillerBaseElement = class MillerBaseElement extends LitElement {
|
|
|
1519
1635
|
const from = Math.min(this.#anchor.index, targetIndex);
|
|
1520
1636
|
const to = Math.max(this.#anchor.index, targetIndex);
|
|
1521
1637
|
const rangeKeys = col.slice(from, to + 1).map((n) => n.item.key);
|
|
1522
|
-
if (this
|
|
1638
|
+
if (this.#intercepted({
|
|
1639
|
+
kind: `extend`,
|
|
1640
|
+
keys: rangeKeys,
|
|
1641
|
+
anchorKey: this.#anchor.key,
|
|
1642
|
+
targetKey: targetNode.item.key,
|
|
1643
|
+
source: `keyboard`
|
|
1644
|
+
})) {} else if (this.interactionMode === `vscode`) {
|
|
1523
1645
|
const snap = this.#anchor.selectionSnapshot;
|
|
1524
1646
|
for (const k of rangeKeys) if (snap.has(k)) this._selectedKeys.delete(k);
|
|
1525
1647
|
else this._selectedKeys.add(k);
|
|
@@ -1803,6 +1925,7 @@ __decorate([state()], MillerBaseElement.prototype, "_columns", void 0);
|
|
|
1803
1925
|
__decorate([state()], MillerBaseElement.prototype, "_loadingDepth", void 0);
|
|
1804
1926
|
__decorate([state()], MillerBaseElement.prototype, "_selectedNodes", void 0);
|
|
1805
1927
|
__decorate([property({ attribute: false })], MillerBaseElement.prototype, "restoreLoads", void 0);
|
|
1928
|
+
__decorate([state()], MillerBaseElement.prototype, "_partialKeys", void 0);
|
|
1806
1929
|
MillerBaseElement = __decorate([safeCustomElement(`ixfx-miller-base`)], MillerBaseElement);
|
|
1807
1930
|
//#endregion
|
|
1808
1931
|
//#region src/miller/miller-list.ts
|
|
@@ -1854,6 +1977,7 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
|
|
|
1854
1977
|
}
|
|
1855
1978
|
#renderListItem(node, depth) {
|
|
1856
1979
|
const selected = this._isSelected(node, depth);
|
|
1980
|
+
const partial = this._isPartial(node, depth);
|
|
1857
1981
|
const tickled = this._isFocused(node, depth);
|
|
1858
1982
|
const open = this._isOpen(node, depth);
|
|
1859
1983
|
const isBranch = node.item.isLeaf !== true;
|
|
@@ -1865,13 +1989,14 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
|
|
|
1865
1989
|
const isCheckedMode = this.interactionMode === `checked`;
|
|
1866
1990
|
let checkboxTpl = nothing;
|
|
1867
1991
|
if (isCheckedMode) {
|
|
1868
|
-
const state = computeCheckboxState(node, this._selectedKeys);
|
|
1992
|
+
const state = partial ? `indeterminate` : computeCheckboxState(node, this._selectedKeys);
|
|
1869
1993
|
checkboxTpl = html`
|
|
1870
1994
|
<input
|
|
1871
1995
|
type="checkbox"
|
|
1872
1996
|
class="item-checkbox"
|
|
1873
1997
|
.checked=${state === `checked`}
|
|
1874
1998
|
.indeterminate=${state === `indeterminate`}
|
|
1999
|
+
aria-checked=${state === `indeterminate` ? `mixed` : String(state === `checked`)}
|
|
1875
2000
|
aria-label="Select ${node.item.label}"
|
|
1876
2001
|
@click=${(e) => this._handleCheckboxClick(e, node, depth)}
|
|
1877
2002
|
/>
|
|
@@ -1879,9 +2004,10 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
|
|
|
1879
2004
|
}
|
|
1880
2005
|
return html`
|
|
1881
2006
|
<li
|
|
1882
|
-
class="item ${selected ? `selected` : ``} ${open ? `open` : ``} ${tickled ? `tickled` : ``} ${isBranch ? `branch` : `leaf`}"
|
|
2007
|
+
class="item ${selected ? `selected` : ``} ${partial ? `partial` : ``} ${open ? `open` : ``} ${tickled ? `tickled` : ``} ${isBranch ? `branch` : `leaf`}"
|
|
1883
2008
|
role="option"
|
|
1884
2009
|
aria-selected=${selected}
|
|
2010
|
+
aria-description=${partial && !isCheckedMode ? this._partialDescription : nothing}
|
|
1885
2011
|
@click=${(e) => this._handleItemClick(node, depth, e)}
|
|
1886
2012
|
@dblclick=${(e) => this._handleItemDblClick(node, depth, e)}
|
|
1887
2013
|
@contextmenu=${(e) => this._handleItemRightClick(node, depth, e)}
|
|
@@ -1914,6 +2040,12 @@ let MillerListElement = class MillerListElement extends MillerBaseElement {
|
|
|
1914
2040
|
justify-content: space-between;
|
|
1915
2041
|
}
|
|
1916
2042
|
|
|
2043
|
+
.item.partial:not(.selected) {
|
|
2044
|
+
background: var(--item-bg-partial, color-mix(in srgb, var(--item-selected-bg) 35%, transparent));
|
|
2045
|
+
outline: 1px dashed var(--item-border-partial, var(--border, #555));
|
|
2046
|
+
outline-offset: -1px;
|
|
2047
|
+
}
|
|
2048
|
+
|
|
1917
2049
|
.item.selected {
|
|
1918
2050
|
background: var(--item-selected-bg);
|
|
1919
2051
|
color: var(--item-selected-text, #fff);
|
package/dist/miller.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { A as TreeTickleDetail, O as TreeSelectDetail, b as TreeItemClickDetail, i as TreeCollapseEvent, j as TreeTickleEvent, k as TreeSelectEvent, n as TreeActivateEvent, r as TreeCollapseDetail, t as TreeActivateDetail, v as TreeExpandDetail, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-DgfkxmVY.js";
|
|
2
2
|
import { a as TreeItem, o as TreeNode } from "./types-Jky6oNAp.js";
|
|
3
|
-
import { _ as MillerRebaseEvent, a as MillerBaseElementEventMap, c as MillerHeaderClickEvent, d as MillerItemDblClickDetail, f as MillerItemDblClickEvent, g as MillerRebaseDetail, h as MillerItemState, i as MillerBaseElement, l as MillerHeaderRightClickDetail, m as MillerItemRightClickEvent, n as MillerTreeControllerOptions, o as MillerListViewState, p as MillerItemRightClickDetail, r as MillerListElement, s as MillerHeaderClickDetail, t as MillerTreeController, u as MillerHeaderRightClickEvent, v as MillerSelectionMode } from "./index-
|
|
3
|
+
import { _ as MillerRebaseEvent, a as MillerBaseElementEventMap, c as MillerHeaderClickEvent, d as MillerItemDblClickDetail, f as MillerItemDblClickEvent, g as MillerRebaseDetail, h as MillerItemState, i as MillerBaseElement, l as MillerHeaderRightClickDetail, m as MillerItemRightClickEvent, n as MillerTreeControllerOptions, o as MillerListViewState, p as MillerItemRightClickDetail, r as MillerListElement, s as MillerHeaderClickDetail, t as MillerTreeController, u as MillerHeaderRightClickEvent, v as MillerSelectionMode } from "./index-DyaHA9Kk.js";
|
|
4
4
|
export { type TreeActivateDetail as MillerActivateDetail, type TreeActivateEvent as MillerActivateEvent, MillerBaseElement, MillerBaseElementEventMap, type TreeCollapseDetail as MillerCollapseDetail, type TreeCollapseEvent as MillerCollapseEvent, type TreeExpandDetail as MillerExpandDetail, type TreeExpandEvent as MillerExpandEvent, MillerHeaderClickDetail, MillerHeaderClickEvent, MillerHeaderRightClickDetail, MillerHeaderRightClickEvent, type TreeItem as MillerItem, type TreeItemClickDetail as MillerItemClickDetail, type TreeItemClickEvent as MillerItemClickEvent, MillerItemDblClickDetail, MillerItemDblClickEvent, MillerItemRightClickDetail, MillerItemRightClickEvent, MillerItemState, MillerListElement, type MillerListViewState, type TreeNode as MillerNode, MillerRebaseDetail, MillerRebaseEvent, type TreeSelectDetail as MillerSelectDetail, type TreeSelectEvent as MillerSelectEvent, MillerSelectionMode, type TreeTickleDetail as MillerTickleDetail, type TreeTickleEvent as MillerTickleEvent, MillerTreeController, MillerTreeControllerOptions };
|
package/dist/miller.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as MillerListElement, r as MillerBaseElement, t as MillerTreeController } from "./miller-
|
|
1
|
+
import { n as MillerListElement, r as MillerBaseElement, t as MillerTreeController } from "./miller-Be7x4ufN.js";
|
|
2
2
|
export { MillerBaseElement, MillerListElement, MillerTreeController };
|
package/dist/narrowed-text.js
CHANGED
|
@@ -3,7 +3,7 @@ import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
|
|
|
3
3
|
import { n as tickledStyles, t as tickledItemStyles } from "./tickled-styles-BrAHEj1q.js";
|
|
4
4
|
import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
|
|
5
5
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
6
|
-
import {
|
|
6
|
+
import { m as createIncrSearch } from "./incr-search-Dc6gYpJG.js";
|
|
7
7
|
import "./interaction-E-uMGHkJ.js";
|
|
8
8
|
import { LitElement, css, html, nothing } from "lit";
|
|
9
9
|
import { property, query, state } from "lit/decorators.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/interaction/partial-keys.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared "partial" row state for list-like components: a row whose resource
|
|
4
|
+
* is only partly selected (a time range of an audio file, a region of an
|
|
5
|
+
* image). Set by the caller through a `partialKeys` property; independent of
|
|
6
|
+
* the selection, except that a key which is also selected counts as selected.
|
|
7
|
+
*/
|
|
8
|
+
/** Accessible description for a partial row outside checked mode (no `aria-checked="mixed"` there). */
|
|
9
|
+
const PARTIAL_DESCRIPTION = `Partially selected`;
|
|
10
|
+
/** Whether a row with this key shows the partial state: partial, and not selected (selected wins). */
|
|
11
|
+
function isPartialKey(key, partialKeys, selected) {
|
|
12
|
+
return !selected && key !== void 0 && partialKeys.has(key);
|
|
13
|
+
}
|
|
14
|
+
/** Whether two key sets hold the same keys. */
|
|
15
|
+
function sameKeySet(a, b) {
|
|
16
|
+
if (a.size !== b.size) return false;
|
|
17
|
+
for (const key of a) if (!b.has(key)) return false;
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Reflect the partial state onto a row element: `data-partial`, plus an
|
|
22
|
+
* accessible description. Never overwrites an `aria-description` it didn't
|
|
23
|
+
* set itself.
|
|
24
|
+
*/
|
|
25
|
+
function applyPartialAttributes(el, partial) {
|
|
26
|
+
el.toggleAttribute(`data-partial`, partial);
|
|
27
|
+
if (partial) {
|
|
28
|
+
if (!el.hasAttribute(`aria-description`)) el.setAttribute(`aria-description`, PARTIAL_DESCRIPTION);
|
|
29
|
+
} else if (el.getAttribute(`aria-description`) === PARTIAL_DESCRIPTION) el.removeAttribute(`aria-description`);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { sameKeySet as i, applyPartialAttributes as n, isPartialKey as r, PARTIAL_DESCRIPTION as t };
|
package/dist/sunburst-tree.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SunburstViewState, i as SunburstZoomEvent, n as SunburstTreeListElementEventMap, r as SunburstZoomDetail, t as SunburstTreeListElement } from "./sunbursttree-list-
|
|
1
|
+
import { a as SunburstViewState, i as SunburstZoomEvent, n as SunburstTreeListElementEventMap, r as SunburstZoomDetail, t as SunburstTreeListElement } from "./sunbursttree-list-Bk20giTF.js";
|
|
2
2
|
export { SunburstTreeListElement, SunburstTreeListElementEventMap, type SunburstViewState, SunburstZoomDetail, SunburstZoomEvent };
|
package/dist/sunburst-tree.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SunburstTreeListElement } from "./sunbursttree-list-
|
|
1
|
+
import { t as SunburstTreeListElement } from "./sunbursttree-list-DQF6DcsS.js";
|
|
2
2
|
export { SunburstTreeListElement };
|
|
@@ -2,7 +2,7 @@ import { C as TreeItemDblClickEvent, E as TreeSearchHost, M as TreeDataModel, a
|
|
|
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, t as GetViewStateOptions } from "./types-LU1u0CB8.js";
|
|
4
4
|
import "./index-9ttcdwlL.js";
|
|
5
|
-
import { S as ListSearchController } from "./index-
|
|
5
|
+
import { S as ListSearchController } from "./index-Bm9a9S3_.js";
|
|
6
6
|
import { LitElement, PropertyValues } from "lit";
|
|
7
7
|
import { CommandRegistry } from "@clinth/ui-commands";
|
|
8
8
|
//#region src/sunburst-tree/types.d.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as TickledController } from "./tickled-controller-D-HZymaZ.js";
|
|
2
2
|
import { t as themeFallbacks } from "./fallbacks-DQ_5OsmR.js";
|
|
3
3
|
import { n as safeCustomElement, t as __decorate } from "./decorate-VRK8rslU.js";
|
|
4
|
-
import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-
|
|
4
|
+
import { i as ListSearchController, n as listSearchStyles, o as registerListSearchCommands, r as LIST_SEARCH_MODES, t as createTreeListSearchAdapter } from "./incr-search-Dc6gYpJG.js";
|
|
5
5
|
import { a as capKeys, l as keysToArray, n as EMPTY_KEYS } from "./pending-BGidHppL.js";
|
|
6
6
|
import { t as collectDataResult } from "./data-provider-35TyWclX.js";
|
|
7
7
|
import { t as ViewStateController } from "./view-state-controller-BdyXWUUM.js";
|
package/dist/timeline.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TimelineTrackReorderEvent, C as TimelineEventResizeEvent, D as TimelineTickleChangeEvent, E as TimelineTickleChangeDetail, F as TrackHeightMode, I as TrackLayout, L as UserScale, M as TimelineTrackResizeEvent, N as TimelineTrackSelectDetail, O as TimelineTrack, P as TimelineTrackSelectEvent, R as ViewRange, S as TimelineEventResizeDetail, T as TimelineSelectionChangeEvent, _ as TimelineDraggingEvent, a as CssVars, b as TimelineEventMoveDetail, c as resolveGrid, d as DragSnappingFn, f as DragTarget, g as TimelineDraggingDetail, h as TimelineDraggingCallbackDetail, i as TimelineTrackTabElement, j as TimelineTrackResizeDetail, k as TimelineTrackReorderDetail, l as TimelineController, m as GridResolution, n as attachTimelineInteractions, o as Rect, p as GridMode, r as IxfxTimelineElement, s as resolveCssVars, t as timelineStyles, u as TimelineControllerConfig, v as TimelineElementEventMap, w as TimelineSelectionChangeDetail, x as TimelineEventMoveEvent, y as TimelineEvent } from "./index-
|
|
1
|
+
import { A as TimelineTrackReorderEvent, C as TimelineEventResizeEvent, D as TimelineTickleChangeEvent, E as TimelineTickleChangeDetail, F as TrackHeightMode, I as TrackLayout, L as UserScale, M as TimelineTrackResizeEvent, N as TimelineTrackSelectDetail, O as TimelineTrack, P as TimelineTrackSelectEvent, R as ViewRange, S as TimelineEventResizeDetail, T as TimelineSelectionChangeEvent, _ as TimelineDraggingEvent, a as CssVars, b as TimelineEventMoveDetail, c as resolveGrid, d as DragSnappingFn, f as DragTarget, g as TimelineDraggingDetail, h as TimelineDraggingCallbackDetail, i as TimelineTrackTabElement, j as TimelineTrackResizeDetail, k as TimelineTrackReorderDetail, l as TimelineController, m as GridResolution, n as attachTimelineInteractions, o as Rect, p as GridMode, r as IxfxTimelineElement, s as resolveCssVars, t as timelineStyles, u as TimelineControllerConfig, v as TimelineElementEventMap, w as TimelineSelectionChangeDetail, x as TimelineEventMoveEvent, y as TimelineEvent } from "./index-DV3iaUBW2.js";
|
|
2
2
|
export { type CssVars, DragSnappingFn, DragTarget, GridMode, GridResolution, IxfxTimelineElement, type Rect, TimelineController, TimelineControllerConfig, TimelineDraggingCallbackDetail, TimelineDraggingDetail, TimelineDraggingEvent, TimelineElementEventMap, TimelineEvent, TimelineEventMoveDetail, TimelineEventMoveEvent, TimelineEventResizeDetail, TimelineEventResizeEvent, TimelineSelectionChangeDetail, TimelineSelectionChangeEvent, TimelineTickleChangeDetail, TimelineTickleChangeEvent, TimelineTrack, TimelineTrackReorderDetail, TimelineTrackReorderEvent, TimelineTrackResizeDetail, TimelineTrackResizeEvent, TimelineTrackSelectDetail, TimelineTrackSelectEvent, TimelineTrackTabElement, TrackHeightMode, TrackLayout, UserScale, ViewRange, attachTimelineInteractions, resolveCssVars, resolveGrid, timelineStyles };
|