@ixfx/components 0.11.4 → 0.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/bundle/index.d.ts +442 -120
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +2230 -538
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +1 -1
  6. package/dist/{ac-token-TCLAZeVg.d.ts → ac-token--_vCHXWw.d.ts} +2 -2
  7. package/dist/{ac-token-TCLAZeVg.d.ts.map → ac-token--_vCHXWw.d.ts.map} +1 -1
  8. package/dist/ac-token.d.ts +1 -1
  9. package/dist/{button-CTL45aBl.d.ts → button-BYuf72aR.d.ts} +2 -2
  10. package/dist/{button-CTL45aBl.d.ts.map → button-BYuf72aR.d.ts.map} +1 -1
  11. package/dist/button.d.ts +1 -1
  12. package/dist/colour-picker.d.ts +1 -1
  13. package/dist/crumbs.d.ts +3 -3
  14. package/dist/{data-grid-CfiaBqTA.d.ts → data-grid-CPsJBnL4.d.ts} +48 -6
  15. package/dist/data-grid-CPsJBnL4.d.ts.map +1 -0
  16. package/dist/data-grid.d.ts +3 -3
  17. package/dist/data-grid.js +66 -2
  18. package/dist/data-grid.js.map +1 -1
  19. package/dist/{detail-list-DxQZkK-C.d.ts → detail-list-CmdCxddo.d.ts} +22 -5
  20. package/dist/detail-list-CmdCxddo.d.ts.map +1 -0
  21. package/dist/detail-list.d.ts +3 -3
  22. package/dist/detail-list.js +67 -4
  23. package/dist/detail-list.js.map +1 -1
  24. package/dist/{grid-list-k89JpiNy.js → grid-list-3fGhdaFA.js} +92 -7
  25. package/dist/grid-list-3fGhdaFA.js.map +1 -0
  26. package/dist/{grid-list-ChgYpUUq.d.ts → grid-list-D6AfWfwn.d.ts} +27 -4
  27. package/dist/grid-list-D6AfWfwn.d.ts.map +1 -0
  28. package/dist/grid-list.d.ts +2 -2
  29. package/dist/grid-list.js +1 -1
  30. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts → grouped-item-lister-DETte0Dh.d.ts} +2 -2
  31. package/dist/{grouped-item-lister-Bhyo-dkH.d.ts.map → grouped-item-lister-DETte0Dh.d.ts.map} +1 -1
  32. package/dist/grouped-item-lister.d.ts +1 -1
  33. package/dist/{icon-DR_3rSyZ.d.ts → icon-CDGprSdE.d.ts} +2 -2
  34. package/dist/icon-CDGprSdE.d.ts.map +1 -0
  35. package/dist/icons.d.ts +2 -2
  36. package/dist/incr-search.d.ts +1 -1
  37. package/dist/{index-CHbuPyLL.d.ts → index-CMsmZ6Or.d.ts} +4 -4
  38. package/dist/{index-CHbuPyLL.d.ts.map → index-CMsmZ6Or.d.ts.map} +1 -1
  39. package/dist/{index-garxxqgV.d.ts → index-CYndvTWH.d.ts} +2 -2
  40. package/dist/{index-garxxqgV.d.ts.map → index-CYndvTWH.d.ts.map} +1 -1
  41. package/dist/{index-CDllxjVG.d.ts → index-CnyoNA6m.d.ts} +4 -4
  42. package/dist/{index-CDllxjVG.d.ts.map → index-CnyoNA6m.d.ts.map} +1 -1
  43. package/dist/{index-BUB5SICW.d.ts → index-CoqtMSd9.d.ts} +2 -2
  44. package/dist/{index-BUB5SICW.d.ts.map → index-CoqtMSd9.d.ts.map} +1 -1
  45. package/dist/{index-CJ5fshD3.d.ts → index-UvnoZUAo.d.ts} +2 -2
  46. package/dist/{index-CJ5fshD3.d.ts.map → index-UvnoZUAo.d.ts.map} +1 -1
  47. package/dist/{index-BOUaDIW-.d.ts → index-tq6f8007.d.ts} +2 -2
  48. package/dist/{index-BOUaDIW-.d.ts.map → index-tq6f8007.d.ts.map} +1 -1
  49. package/dist/index.d.ts +337 -140
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +2036 -644
  52. package/dist/index.js.map +1 -1
  53. package/dist/item-appearance-BjcMyauw.js +31 -0
  54. package/dist/item-appearance-BjcMyauw.js.map +1 -0
  55. package/dist/{labelled-input-base-Dp_9KP0G.d.ts → labelled-input-base-DiTme1JO.d.ts} +2 -2
  56. package/dist/{labelled-input-base-Dp_9KP0G.d.ts.map → labelled-input-base-DiTme1JO.d.ts.map} +1 -1
  57. package/dist/labelled-radial-input.d.ts +2 -2
  58. package/dist/labelled-radial-input.d.ts.map +1 -1
  59. package/dist/labelled-range-input.d.ts +1 -1
  60. package/dist/labelled-slider-input.d.ts +1 -1
  61. package/dist/{list-native-drag-controller-B9reY4uM.d.ts → list-native-drag-controller-CllsHLxw.d.ts} +2 -2
  62. package/dist/{list-native-drag-controller-B9reY4uM.d.ts.map → list-native-drag-controller-CllsHLxw.d.ts.map} +1 -1
  63. package/dist/{menu-item-DlxAb0Xr.d.ts → menu-item-DT7bKAIw.d.ts} +2 -2
  64. package/dist/{menu-item-DlxAb0Xr.d.ts.map → menu-item-DT7bKAIw.d.ts.map} +1 -1
  65. package/dist/menu.d.ts +2 -2
  66. package/dist/miller.d.ts +3 -3
  67. package/dist/miller.d.ts.map +1 -1
  68. package/dist/miller.js +18 -2
  69. package/dist/miller.js.map +1 -1
  70. package/dist/panel.d.ts +1 -1
  71. package/dist/{split-layout-C5SYbDrq.d.ts → split-layout-JK3xWVX2.d.ts} +2 -2
  72. package/dist/{split-layout-C5SYbDrq.d.ts.map → split-layout-JK3xWVX2.d.ts.map} +1 -1
  73. package/dist/split-layout.d.ts +1 -1
  74. package/dist/{tab-list-v8mKX7Fu.d.ts → tab-list-pqfKaVAE.d.ts} +2 -2
  75. package/dist/{tab-list-v8mKX7Fu.d.ts.map → tab-list-pqfKaVAE.d.ts.map} +1 -1
  76. package/dist/tabs.d.ts +1 -1
  77. package/dist/{titlebar-B5zSTZnF.d.ts → titlebar-Tqu-VvMU.d.ts} +2 -2
  78. package/dist/{titlebar-B5zSTZnF.d.ts.map → titlebar-Tqu-VvMU.d.ts.map} +1 -1
  79. package/dist/titlebar.d.ts +1 -1
  80. package/dist/{tree-component-CMGeqyjZ.d.ts → tree-component-DukLqesg.d.ts} +2 -2
  81. package/dist/{tree-component-CMGeqyjZ.d.ts.map → tree-component-DukLqesg.d.ts.map} +1 -1
  82. package/dist/tree.d.ts +4 -4
  83. package/dist/{types-3Jfcaxvo.d.ts → types-D-kYF16b.d.ts} +21 -1
  84. package/dist/types-D-kYF16b.d.ts.map +1 -0
  85. package/dist/{vertical-list-R25WqAVO.d.ts → vertical-list-DTp-UIUE.d.ts} +26 -3
  86. package/dist/vertical-list-DTp-UIUE.d.ts.map +1 -0
  87. package/dist/vertical-list.d.ts +2 -2
  88. package/dist/vertical-list.js +53 -4
  89. package/dist/vertical-list.js.map +1 -1
  90. package/docs-user/data-grid.md +51 -1
  91. package/docs-user/detail-list.md +46 -0
  92. package/docs-user/grid-list.md +49 -2
  93. package/docs-user/hyperbolic-tree.md +98 -18
  94. package/docs-user/index.json +2 -2
  95. package/docs-user/miller.md +52 -7
  96. package/docs-user/vertical-list.md +63 -0
  97. package/package.json +1 -1
  98. package/dist/data-grid-CfiaBqTA.d.ts.map +0 -1
  99. package/dist/detail-list-DxQZkK-C.d.ts.map +0 -1
  100. package/dist/grid-list-ChgYpUUq.d.ts.map +0 -1
  101. package/dist/grid-list-k89JpiNy.js.map +0 -1
  102. package/dist/icon-DR_3rSyZ.d.ts.map +0 -1
  103. package/dist/types-3Jfcaxvo.d.ts.map +0 -1
  104. package/dist/vertical-list-R25WqAVO.d.ts.map +0 -1
@@ -1,4 +1,4 @@
1
- import { a as TreeItem, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-3Jfcaxvo.js";
1
+ import { a as TreeItem, n as TreeExclusivity, o as TreeNode, r as TreeFilterPredicate, s as TreeSelectionFilter, t as LoadChildrenCallback } from "./types-D-kYF16b.js";
2
2
  //#region src/interaction/list-drag-types.d.ts
3
3
  interface ListDragEntry<T> {
4
4
  readonly key: string;
@@ -409,4 +409,4 @@ interface TreeSearchHost extends TreeComponent {
409
409
  }
410
410
  //#endregion
411
411
  export { TreeDataModelOptions as A, TreeItemDblClickEvent as C, TreeTickleDetail as D, TreeSelectEvent as E, ListDragPreviewSourceResolver as F, ListDragSource as I, ListNativeDragStartDetail as L, ListDragPreview as M, ListDragPreviewContext as N, TreeTickleEvent as O, ListDragPreviewRenderer as P, ListNativeDragStartEvent as R, TreeItemDblClickDetail as S, TreeSelectDetail as T, TreeDropTarget as _, TreeComponent as a, TreeItemClickDetail as b, TreeDragContext as c, TreeDragStartEvent as d, TreeDropApplyContext as f, TreeDropPosition as g, TreeDropEvent as h, TreeCollapseEvent as i, ListDragEntry as j, TreeDataModel as k, TreeDragEndEvent as l, TreeDropDetail as m, TreeActivateEvent as n, TreeComponentEventMap as o, TreeDropContext as p, TreeCollapseDetail as r, TreeDndMode as s, TreeActivateDetail as t, TreeDragOverEvent as u, TreeExpandDetail as v, TreeSearchHost as w, TreeItemClickEvent as x, TreeExpandEvent as y };
412
- //# sourceMappingURL=tree-component-CMGeqyjZ.d.ts.map
412
+ //# sourceMappingURL=tree-component-DukLqesg.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree-component-CMGeqyjZ.d.ts","names":[],"sources":["../src/interaction/list-drag-types.ts","../src/common/tree-data-model.ts","../src/common/tree-component.ts"],"mappings":";;UAAiB,cAAc;WACpB;WACA;WACA,MAAM,IAAI;;;;;;;;;;;;;;WAcV,UAAU;;KAGT;UAEK,uBAAuB;WAC7B,QAAQ;WACR,QAAQ,cAAc;WACtB,UAAU,cAAc,cAAc;WACtC;aACE;aACA;aACA;aACA;;WAEF,WAAW;WACX,2BAA2B,8BAA8B;;UAGnD;WACN,SAAS;WACT,UAAU;IAAW;IAAW;;WAChC,SAAS;WACT;;KAGC,wBAAwB,MAAM,SAAS,uBAAuB,OAAO;KAErE,8BAA8B,MACxC,OAAO,cAAc,OAClB;UAEY,0BAA0B;WAChC;WACA;WACA,MAAM,IAAI;WACV;WACA,UAAU,cAAc,cAAc;WACtC,UAAU;;KAGT,yBAAyB,eAAe,YAAY,0BAA0B;;;KCjDrF;EAAoB;EAAoB;;KACxC;EAAc;EAAc,MAAM;;KAClC,aAAa,kBAAkB;KAE/B,mBAAmB,OAAO;KA6DnB;;EAEV,MAAM;;;;;EAKN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgCJ;;EAMC,YAAA,SAAS;;MAUjB,QAAQ;;;;;EAQZ,QAAQ,MAAM;;;;;;;;;EAkBR,YAAY,MAAM,UAAU,eAAe,QAAQ,cAAc,QAAQ;;;;;;EAyB/E,WAAW;;;;;EAaX,QAAQ,mBAAmB,MAAM,WAAW;;;;;EAU5C,WAAW,cAAc;;;;;EAWzB,WAAW,aAAa,OAAO,QAAQ,YAAY;;;;;;EAcnD,SAAS,aAAa,sBAAsB,iBAAiB;;;;;;;EAmB7D,iBAAiB,aAAa,sBAAsB,+BAA+B;;;;;;EAkBnF,UAAU,KAAK,uBAAuB;;;;;;EActC,WAAW,+BAA+B,MAAM,UAAU,iBAAiB;;;;;;;EA6B3E,WAAW,UAAU;;;;KC/RX;KAEA;UAEK;WACN;WACA;WACA;WACA,UAAU;WACV;;UAGM;WACN,gBAAgB;WAChB;;;;;;UAOM;WACN;;;;;WAKA,mBAAmB;WACnB;WACA,QAAQ;;UAGF,wBAAwB;WAC9B,cAAc;;UAGR,uBAAuB;WAC7B,oBAAoB;;KAGnB,qBAAqB,YAAY;KACjC,oBAAoB,YAAY;KAChC,gBAAgB,YAAY;KAC5B,mBAAmB;EAAc;;;;;;KAUjC;;WAED,UAAU,YAAY;;WAEtB,UAAU,YAAY;;;;;;;KAQrB;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;;KAQC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;KAIC,kBAAkB,YAAY;KAC9B,kBAAkB,YAAY;KAC9B,oBAAoB,YAAY;KAChC,qBAAqB,YAAY;KACjC,wBAAwB,YAAY;KACpC,kBAAkB,YAAY;KAC9B,oBAAoB,YAAY;UAM3B;EACf,UAAU;EACV,UAAU;EACV,YAAY;EACZ,cAAc;EACd,UAAU;EACV,YAAY;EACZ,0BAA0B,YAAY,0BAA0B;EAChE,mBAAmB;EACnB,kBAAkB;EAClB,aAAa;EACb,iBAAiB;;;;;;;;;;;;;;;UAoBF,sBAAsB;;;;;;EAQrC,MAAM;;;;;;;EAQN,OAAO;;;;;;EAOP,cAAc;;;;;EAQd,cAAc;;;;;WAML,eAAe,YAAY;;;;;;EASpC,iBAAiB;;;;;;EASjB,iBAAiB;;;;;;EASjB,aAAa;;EAKb,SAAS,MAAM;;EAEf,WAAW,MAAM;;EAEjB;;;;;;EAMA;;EAEA;;;;;EAQA,aAAa;;;;;EAMb,iBAAiB,YAAY,MAAM;;;;;;EAOnC,YAAY;;EAGZ,aAAa,OAAO,SAAS;;;;;EAQ7B,gBAAgB;IAAgB,MAAM;IAAU;;;;;;;;;;;UAejC,uBAAuB;WAC7B,YAAY;WACZ,gBAAgB"}
1
+ {"version":3,"file":"tree-component-DukLqesg.d.ts","names":[],"sources":["../src/interaction/list-drag-types.ts","../src/common/tree-data-model.ts","../src/common/tree-component.ts"],"mappings":";;UAAiB,cAAc;WACpB;WACA;WACA,MAAM,IAAI;;;;;;;;;;;;;;WAcV,UAAU;;KAGT;UAEK,uBAAuB;WAC7B,QAAQ;WACR,QAAQ,cAAc;WACtB,UAAU,cAAc,cAAc;WACtC;aACE;aACA;aACA;aACA;;WAEF,WAAW;WACX,2BAA2B,8BAA8B;;UAGnD;WACN,SAAS;WACT,UAAU;IAAW;IAAW;;WAChC,SAAS;WACT;;KAGC,wBAAwB,MAAM,SAAS,uBAAuB,OAAO;KAErE,8BAA8B,MACxC,OAAO,cAAc,OAClB;UAEY,0BAA0B;WAChC;WACA;WACA,MAAM,IAAI;WACV;WACA,UAAU,cAAc,cAAc;WACtC,UAAU;;KAGT,yBAAyB,eAAe,YAAY,0BAA0B;;;KCjDrF;EAAoB;EAAoB;;KACxC;EAAc;EAAc,MAAM;;KAClC,aAAa,kBAAkB;KAE/B,mBAAmB,OAAO;KA6DnB;;EAEV,MAAM;;;;;EAKN,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgCJ;;EAMC,YAAA,SAAS;;MAUjB,QAAQ;;;;;EAQZ,QAAQ,MAAM;;;;;;;;;EAkBR,YAAY,MAAM,UAAU,eAAe,QAAQ,cAAc,QAAQ;;;;;;EAyB/E,WAAW;;;;;EAaX,QAAQ,mBAAmB,MAAM,WAAW;;;;;EAU5C,WAAW,cAAc;;;;;EAWzB,WAAW,aAAa,OAAO,QAAQ,YAAY;;;;;;EAcnD,SAAS,aAAa,sBAAsB,iBAAiB;;;;;;;EAmB7D,iBAAiB,aAAa,sBAAsB,+BAA+B;;;;;;EAkBnF,UAAU,KAAK,uBAAuB;;;;;;EActC,WAAW,+BAA+B,MAAM,UAAU,iBAAiB;;;;;;;EA6B3E,WAAW,UAAU;;;;KC/RX;KAEA;UAEK;WACN;WACA;WACA;WACA,UAAU;WACV;;UAGM;WACN,gBAAgB;WAChB;;;;;;UAOM;WACN;;;;;WAKA,mBAAmB;WACnB;WACA,QAAQ;;UAGF,wBAAwB;WAC9B,cAAc;;UAGR,uBAAuB;WAC7B,oBAAoB;;KAGnB,qBAAqB,YAAY;KACjC,oBAAoB,YAAY;KAChC,gBAAgB,YAAY;KAC5B,mBAAmB;EAAc;;;;;;KAUjC;;WAED,UAAU,YAAY;;WAEtB,UAAU,YAAY;;;;;;;KAQrB;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;;KAQC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;;;;;KAOC;WACD,MAAM;WACN;;KAIC,kBAAkB,YAAY;KAC9B,kBAAkB,YAAY;KAC9B,oBAAoB,YAAY;KAChC,qBAAqB,YAAY;KACjC,wBAAwB,YAAY;KACpC,kBAAkB,YAAY;KAC9B,oBAAoB,YAAY;UAM3B;EACf,UAAU;EACV,UAAU;EACV,YAAY;EACZ,cAAc;EACd,UAAU;EACV,YAAY;EACZ,0BAA0B,YAAY,0BAA0B;EAChE,mBAAmB;EACnB,kBAAkB;EAClB,aAAa;EACb,iBAAiB;;;;;;;;;;;;;;;UAoBF,sBAAsB;;;;;;EAQrC,MAAM;;;;;;;EAQN,OAAO;;;;;;EAOP,cAAc;;;;;EAQd,cAAc;;;;;WAML,eAAe,YAAY;;;;;;EASpC,iBAAiB;;;;;;EASjB,iBAAiB;;;;;;EASjB,aAAa;;EAKb,SAAS,MAAM;;EAEf,WAAW,MAAM;;EAEjB;;;;;;EAMA;;EAEA;;;;;EAQA,aAAa;;;;;EAMb,iBAAiB,YAAY,MAAM;;;;;;EAOnC,YAAY;;EAGZ,aAAa,OAAO,SAAS;;;;;EAQ7B,gBAAgB;IAAgB,MAAM;IAAU;;;;;;;;;;;UAejC,uBAAuB;WAC7B,YAAY;WACZ,gBAAgB"}
package/dist/tree.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { A as TreeDataModelOptions, C as TreeItemDblClickEvent, D as TreeTickleDetail, E as TreeSelectEvent, F as ListDragPreviewSourceResolver, L as ListNativeDragStartDetail, O as TreeTickleEvent, P as ListDragPreviewRenderer, T as TreeSelectDetail, _ as TreeDropTarget, a as TreeComponent, b as TreeItemClickDetail, c as TreeDragContext, d as TreeDragStartEvent, g as TreeDropPosition, h as TreeDropEvent, i as TreeCollapseEvent, k as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, r as TreeCollapseDetail, s as TreeDndMode, t as TreeActivateDetail, u as TreeDragOverEvent, v as TreeExpandDetail, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-CMGeqyjZ.js";
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-3Jfcaxvo.js";
3
- import { S as ListSearchController } from "./index-CHbuPyLL.js";
4
- import { t as ListNativeDragController } from "./list-native-drag-controller-B9reY4uM.js";
1
+ import { A as TreeDataModelOptions, C as TreeItemDblClickEvent, D as TreeTickleDetail, E as TreeSelectEvent, F as ListDragPreviewSourceResolver, L as ListNativeDragStartDetail, O as TreeTickleEvent, P as ListDragPreviewRenderer, T as TreeSelectDetail, _ as TreeDropTarget, a as TreeComponent, b as TreeItemClickDetail, c as TreeDragContext, d as TreeDragStartEvent, g as TreeDropPosition, h as TreeDropEvent, i as TreeCollapseEvent, k as TreeDataModel, l as TreeDragEndEvent, m as TreeDropDetail, n as TreeActivateEvent, o as TreeComponentEventMap, p as TreeDropContext, r as TreeCollapseDetail, s as TreeDndMode, t as TreeActivateDetail, u as TreeDragOverEvent, v as TreeExpandDetail, w as TreeSearchHost, x as TreeItemClickEvent, y as TreeExpandEvent } from "./tree-component-DukLqesg.js";
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-D-kYF16b.js";
3
+ import { S as ListSearchController } from "./index-CMsmZ6Or.js";
4
+ import { t as ListNativeDragController } from "./list-native-drag-controller-CllsHLxw.js";
5
5
  import { n as TickledController } from "./tickled-controller-C1ZsHpyg.js";
6
6
  import { LitElement, PropertyValues, ReactiveController, ReactiveControllerHost, TemplateResult, nothing } from "lit";
7
7
  import { CommandRegistry } from "@clinth/ui-commands";
@@ -11,6 +11,26 @@ type TreeItem = {
11
11
  data?: unknown;
12
12
  /** Icon name passed to an icon component, if icons are enabled. */
13
13
  icon?: string;
14
+ /**
15
+ * CSS colour applied to the node's icon, overriding the inherited text
16
+ * colour. Only meaningful when `icon` is set. Components that render the
17
+ * icon from `icon` honour this; the rest ignore it.
18
+ */
19
+ iconColor?: string;
20
+ /**
21
+ * CSS colour applied to the node's label. Inline, so it wins over the
22
+ * selected/tickled text colours — keep it legible against both, or leave
23
+ * it unset and let the component's theming handle selection contrast.
24
+ */
25
+ textColor?: string;
26
+ /**
27
+ * Finder-style badge rendered alongside the label — e.g. a colour-tag chip
28
+ * or a stack of them. Anything Lit can render (usually a `TemplateResult`),
29
+ * or a DOM `Node` for the components that build their rows imperatively.
30
+ * Placement is per-component: thumbnails-style lists put it before the
31
+ * name, list-style views right-justify it on the same line.
32
+ */
33
+ badge?: unknown;
14
34
  /** Tooltip text shown on hover. */
15
35
  tooltip?: string;
16
36
  /** Optional string value, e.g. for use as a command/route. */
@@ -76,4 +96,4 @@ type TreeSelectionFilter = `none` | `leaf` | `branch` | `all`;
76
96
  type TreeInteractionMode = `implicit` | `standard` | `manual` | `checked` | `vscode`;
77
97
  //#endregion
78
98
  export { TreeItem as a, TreeInteractionMode as i, TreeExclusivity as n, TreeNode as o, TreeFilterPredicate as r, TreeSelectionFilter as s, LoadChildrenCallback as t };
79
- //# sourceMappingURL=types-3Jfcaxvo.d.ts.map
99
+ //# sourceMappingURL=types-D-kYF16b.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-D-kYF16b.d.ts","names":[],"sources":["../src/common/types.ts"],"mappings":";;KAQY;;EAEV;;EAEA;;EAEA;;EAEA;;EAEA;;;;;;EAMA;;;;;;EAMA;;;;;;;;EAQA;;EAEA;;EAEA;;;;;;;EAOA;;;KAIU;EACV,MAAM;;;;;;;EAON,WAAW;;;;;;;KAQD,uBAAuB;EAAgB,MAAM;EAAU;GAAiB;;;;;;KAOxE,uBAAuB,MAAM,UAAU;;;;;;;KAQvC;;;;;;;;;KAUA;;;;;;;;;KAUA"}
@@ -1,6 +1,6 @@
1
- import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-CMGeqyjZ.js";
1
+ import { F as ListDragPreviewSourceResolver, P as ListDragPreviewRenderer, R as ListNativeDragStartEvent } from "./tree-component-DukLqesg.js";
2
2
  import { n as ListViewportChangeEvent } from "./list-viewport-types-BRZsLcvp.js";
3
- import { S as ListSearchController } from "./index-CHbuPyLL.js";
3
+ import { S as ListSearchController } from "./index-CMsmZ6Or.js";
4
4
  import { i as ListInteractionMode, l as ListSelectionMode, r as ListElementEventMap } from "./list-selection-types-PjKdhF-a.js";
5
5
  import { LitElement, PropertyValues } from "lit";
6
6
  import { CommandId, CommandRegistry } from "@clinth/ui-commands";
@@ -91,6 +91,29 @@ declare class VerticalListElement extends LitElement {
91
91
  * appended.
92
92
  */
93
93
  formatter: ((item: unknown, index: number) => unknown) | undefined;
94
+ /**
95
+ * Per-item icon for adapter (`items`) mode, prepended to the row — a DOM
96
+ * `Node` or anything Lit can render (usually a `TemplateResult` wrapping an
97
+ * `<ixfx-icon>` or an inline SVG). Ignored when the `formatter` returns a
98
+ * full row element (the formatter then owns the whole row, icon included).
99
+ */
100
+ icon: ((item: unknown, index: number) => unknown) | undefined;
101
+ /**
102
+ * CSS colour tinting the per-item `icon`. Icons paint from `currentColor`,
103
+ * so this recolours them. Inline, so it wins over selection styling.
104
+ */
105
+ iconColor: ((item: unknown, index: number) => string | undefined) | undefined;
106
+ /**
107
+ * CSS colour for the row's text. Inline, so it wins over the selected /
108
+ * tickled text colours — keep it legible against both.
109
+ */
110
+ textColor: ((item: unknown, index: number) => string | undefined) | undefined;
111
+ /**
112
+ * Finder-style badge for the row, right-justified after the text — a
113
+ * `TemplateResult`, a DOM `Node`, or anything Lit can render. The row is
114
+ * flex, so the badge self-justifies to the trailing edge.
115
+ */
116
+ badge: ((item: unknown, index: number) => unknown) | undefined;
94
117
  /**
95
118
  * Virtualize the list: only the overscanned viewport window exists in the
96
119
  * DOM; offscreen rows are recycled through an off-DOM pool as the list
@@ -253,4 +276,4 @@ interface VerticalListElementEventMap extends ListElementEventMap {
253
276
  }
254
277
  //#endregion
255
278
  export { VerticalListElementEventMap as i, CustomCheckboxOptions as n, VerticalListElement as r, AddItemOptions as t };
256
- //# sourceMappingURL=vertical-list-R25WqAVO.d.ts.map
279
+ //# sourceMappingURL=vertical-list-DTp-UIUE.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vertical-list-DTp-UIUE.d.ts","names":[],"sources":["../src/vertical-list/vertical-list.ts"],"mappings":";;;;;;;UA4DiB;EACf,WAAW;EACX;EACA;;UAGe;;;;;;EAMf;;cAkCW,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;;;;;;;EAS5B,QAAQ,eAAe;;;;;EAOvB,aAAa,eAAe;;;;;EAO5B,aAAa,eAAe;;;;;;EAQ5B,SAAS,eAAe;;;;;;;;;;;;;;;;;;EAoBxB;;;;;;EAQA;mBAyCiB;UAeT;UA6EA;;WA6EC,QAAM,qBAAA;;MAYX,YAAY;EA2BP;EAsBA;;;;;;YA4BU;EAwDV,QAAQ,SAAS;;MAgFtB,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;UAmiBhB;UAgBA;UAOA;UAiBA;;;;;;;UA4GA;;;;;UAuBA;UAcA;UAYA;UAQA;UAWA;UAMA;UAIA;UAwDA;UAUA;UAMA;SAUQ,sBAAM;EA2Kb,wBAAM;;QAeT;YACI;IACR,sBAAsB;;YAGd,4BAA4B;;UAGvB,oCAAoC;EACnD,iCAAiC;EACjC,0BAA0B,yBAAyB"}
@@ -1,5 +1,5 @@
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-CMGeqyjZ.js";
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-DukLqesg.js";
2
2
  import { n as ListViewportChangeEvent, t as ListViewportChangeDetail } from "./list-viewport-types-BRZsLcvp.js";
3
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-R25WqAVO.js";
4
+ import { i as VerticalListElementEventMap, n as CustomCheckboxOptions, r as VerticalListElement, t as AddItemOptions } from "./vertical-list-DTp-UIUE.js";
5
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 };
@@ -6,6 +6,7 @@ import { t as ListNativeDragController } from "./list-native-drag-controller-B9x
6
6
  import { r as ListDragSelectController, t as ListSelectionController } from "./list-selection-controller-SA4piSBi.js";
7
7
  import { n as animateListItemIn, r as animateListItemOut } from "./list-item-animation-BUoEKi5s.js";
8
8
  import { t as scrollFadeStyles } from "./scroll-fade-BrNUIYnm.js";
9
+ import { n as appearanceColor, t as appearanceAbsent } from "./item-appearance-BjcMyauw.js";
9
10
  import { LitElement, css, html, render } from "lit";
10
11
  import { property } from "lit/decorators.js";
11
12
  import { createCommandRegistry } from "@clinth/ui-commands";
@@ -16,6 +17,16 @@ const ITEM_SELECTOR = `li:not([data-virtual-spacer]), [data-list-item]:not([data
16
17
  * vertical rows are shorter relative to the viewport, so 3.
17
18
  */
18
19
  const VIRTUAL_OVERSCAN = 3;
20
+ /**
21
+ * Layout for the per-item icon / badge wrappers `#decorateAdapterItem` adds.
22
+ *
23
+ * Applied as inline `cssText` rather than shadow CSS because `::slotted()` only
24
+ * matches the host's *direct* children — these spans live inside a slotted
25
+ * `<li>`, so a `::slotted()` rule could never reach them. The values still read
26
+ * the CSS custom properties, so they stay themeable from the outside.
27
+ */
28
+ const ITEM_ICON_EL_CSS = `flex:none;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;margin-inline-end:var(--list-item-icon-gap,6px);width:var(--list-item-icon-size,1em);height:var(--list-item-icon-size,1em)`;
29
+ const ITEM_BADGE_EL_CSS = `flex:none;display:inline-flex;align-items:center;margin-inline-start:auto;padding-inline-start:var(--list-item-badge-gap,8px)`;
19
30
  /** Shallow key-array equality, treating `undefined` (never dispatched) as different. */
20
31
  function sameKeys(a, b) {
21
32
  if (a === void 0 || a.length !== b.length) return false;
@@ -425,7 +436,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
425
436
  }
426
437
  this.#syncSearchCommands();
427
438
  }
428
- if ((changed.has(`items`) || changed.has(`formatter`) || changed.has(`keyProperty`)) && this.items !== void 0) {
439
+ if ((changed.has(`items`) || changed.has(`formatter`) || changed.has(`keyProperty`) || changed.has(`icon`) || changed.has(`iconColor`) || changed.has(`textColor`) || changed.has(`badge`)) && this.items !== void 0) {
429
440
  if (this.#suspendAdapterRebuild) this.#suspendAdapterRebuild = false;
430
441
  else if (this.#virtualActive()) this.#rebuildAdapterVirtual();
431
442
  else this.#rebuildFromAdapter();
@@ -695,7 +706,7 @@ let VerticalListElement = class VerticalListElement extends LitElement {
695
706
  const fresh = this.formatter ? this.formatter(data, index) : data;
696
707
  if (el instanceof HTMLLIElement) {
697
708
  for (const child of [...el.childNodes]) child.remove();
698
- this.#fillAdapterItem(el, fresh, data);
709
+ this.#fillAdapterItem(el, fresh, data, index);
699
710
  if (this.interactionMode === `checked`) this._syncCheckboxes();
700
711
  this._syncItemStates();
701
712
  } else if (fresh instanceof Element && this.#isRowElement(fresh)) {
@@ -750,17 +761,47 @@ let VerticalListElement = class VerticalListElement extends LitElement {
750
761
  return content;
751
762
  }
752
763
  const li = document.createElement(`li`);
753
- this.#fillAdapterItem(li, content, item);
764
+ this.#fillAdapterItem(li, content, item, index);
754
765
  return li;
755
766
  }
756
- #fillAdapterItem(li, content, item) {
767
+ #fillAdapterItem(li, content, item, index) {
757
768
  if (typeof content === `string`) li.textContent = content;
758
769
  else if (content instanceof Node) li.appendChild(content);
759
770
  else if (this.formatter && content !== void 0 && content !== null) render(content, li);
771
+ this.#decorateAdapterItem(li, item, index);
760
772
  this.#stampAdapterKey(li, item);
761
773
  this.#itemData.set(li, item);
762
774
  }
763
775
  /**
776
+ * Apply the per-item icon / text colour / badge to a built row. Split out
777
+ * from {@link #fillAdapterItem} so the parts stay readable.
778
+ */
779
+ #decorateAdapterItem(li, item, index) {
780
+ const textColor = appearanceColor(this.textColor?.(item, index));
781
+ if (textColor !== void 0) li.style.color = textColor;
782
+ else li.style.removeProperty(`color`);
783
+ const icon = this.icon?.(item, index);
784
+ if (!appearanceAbsent(icon)) {
785
+ const holder = document.createElement(`span`);
786
+ holder.className = `item-icon`;
787
+ holder.style.cssText = ITEM_ICON_EL_CSS;
788
+ const iconColor = appearanceColor(this.iconColor?.(item, index));
789
+ if (iconColor !== void 0) holder.style.color = iconColor;
790
+ if (icon instanceof Node) holder.appendChild(icon);
791
+ else render(icon, holder);
792
+ li.prepend(holder);
793
+ }
794
+ const badge = this.badge?.(item, index);
795
+ if (!appearanceAbsent(badge)) {
796
+ const holder = document.createElement(`span`);
797
+ holder.className = `item-badge`;
798
+ holder.style.cssText = ITEM_BADGE_EL_CSS;
799
+ if (badge instanceof Node) holder.appendChild(badge);
800
+ else render(badge, holder);
801
+ li.appendChild(holder);
802
+ }
803
+ }
804
+ /**
764
805
  * Whether a formatter-produced element is a whole row (used directly)
765
806
  * rather than row content (rendered into a `<li>`): an `<li>`, already
766
807
  * marked `[data-list-item]`, or a custom element.
@@ -1282,6 +1323,10 @@ let VerticalListElement = class VerticalListElement extends LitElement {
1282
1323
  outline: 1px solid transparent;
1283
1324
  }
1284
1325
 
1326
+ /* Per-item icon / badge (adapter mode) are styled inline by
1327
+ #decorateAdapterItem — ::slotted() only reaches the host's direct
1328
+ children, and these spans live inside a slotted <li>. */
1329
+
1285
1330
  /* Custom shadow-DOM components handle their own internal layout/padding.
1286
1331
  Wrapped in :where() so the selector stays at zero specificity and a
1287
1332
  consumer's own :host rule (e.g. display: flex) wins without
@@ -1428,6 +1473,10 @@ __decorate([property({
1428
1473
  attribute: `key-property`
1429
1474
  })], VerticalListElement.prototype, "keyProperty", void 0);
1430
1475
  __decorate([property({ attribute: false })], VerticalListElement.prototype, "formatter", void 0);
1476
+ __decorate([property({ attribute: false })], VerticalListElement.prototype, "icon", void 0);
1477
+ __decorate([property({ attribute: false })], VerticalListElement.prototype, "iconColor", void 0);
1478
+ __decorate([property({ attribute: false })], VerticalListElement.prototype, "textColor", void 0);
1479
+ __decorate([property({ attribute: false })], VerticalListElement.prototype, "badge", void 0);
1431
1480
  __decorate([property({
1432
1481
  type: Boolean,
1433
1482
  attribute: `virtualize`,