@vscode-elements/elements 2.4.0 → 2.4.1-pre.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.
Files changed (43) hide show
  1. package/custom-elements.json +1370 -314
  2. package/dist/bundled.js +163 -164
  3. package/dist/includes/VscElement.d.ts +1 -0
  4. package/dist/includes/VscElement.d.ts.map +1 -1
  5. package/dist/includes/VscElement.js +16 -3
  6. package/dist/includes/VscElement.js.map +1 -1
  7. package/dist/includes/helpers.d.ts +1 -0
  8. package/dist/includes/helpers.d.ts.map +1 -1
  9. package/dist/includes/helpers.js +3 -0
  10. package/dist/includes/helpers.js.map +1 -1
  11. package/dist/includes/vscode-select/vscode-select-base.d.ts.map +1 -1
  12. package/dist/includes/vscode-select/vscode-select-base.js +1 -4
  13. package/dist/includes/vscode-select/vscode-select-base.js.map +1 -1
  14. package/dist/vscode-icon/vscode-icon.d.ts.map +1 -1
  15. package/dist/vscode-icon/vscode-icon.js +2 -3
  16. package/dist/vscode-icon/vscode-icon.js.map +1 -1
  17. package/dist/vscode-table/ColumnResizeController.d.ts +37 -0
  18. package/dist/vscode-table/ColumnResizeController.d.ts.map +1 -0
  19. package/dist/vscode-table/ColumnResizeController.js +141 -0
  20. package/dist/vscode-table/ColumnResizeController.js.map +1 -0
  21. package/dist/vscode-table/calculations.d.ts +13 -0
  22. package/dist/vscode-table/calculations.d.ts.map +1 -0
  23. package/dist/vscode-table/calculations.js +82 -0
  24. package/dist/vscode-table/calculations.js.map +1 -0
  25. package/dist/vscode-table/vscode-table.d.ts +9 -14
  26. package/dist/vscode-table/vscode-table.d.ts.map +1 -1
  27. package/dist/vscode-table/vscode-table.js +62 -98
  28. package/dist/vscode-table/vscode-table.js.map +1 -1
  29. package/dist/vscode-table/vscode-table.styles.d.ts +2 -0
  30. package/dist/vscode-table/vscode-table.styles.d.ts.map +1 -1
  31. package/dist/vscode-table/vscode-table.styles.js +6 -5
  32. package/dist/vscode-table/vscode-table.styles.js.map +1 -1
  33. package/dist/vscode-tree-item/vscode-tree-item.d.ts +13 -0
  34. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
  35. package/dist/vscode-tree-item/vscode-tree-item.js +13 -0
  36. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
  37. package/package.json +3 -3
  38. package/vscode.css-custom-data.json +15 -15
  39. package/vscode.html-custom-data.json +19 -19
  40. package/dist/vscode-table/helpers.d.ts +0 -2
  41. package/dist/vscode-table/helpers.d.ts.map +0 -1
  42. package/dist/vscode-table/helpers.js +0 -20
  43. package/dist/vscode-table/helpers.js.map +0 -1
@@ -1,4 +1,6 @@
1
1
  import { CSSResultGroup } from 'lit';
2
+ export declare const SPLITTER_HIT_WIDTH = 5;
3
+ export declare const SPLITTER_VISIBLE_WIDTH = 1;
2
4
  declare const styles: CSSResultGroup;
3
5
  export default styles;
4
6
  //# sourceMappingURL=vscode-table.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-table.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,QAAA,MAAM,MAAM,EAAE,cA0Ib,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-table.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAGxC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,QAAA,MAAM,MAAM,EAAE,cAyIb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { css } from 'lit';
2
2
  import baseStyles from '../includes/default.styles.js';
3
+ export const SPLITTER_HIT_WIDTH = 5;
4
+ export const SPLITTER_VISIBLE_WIDTH = 1;
3
5
  const styles = [
4
6
  baseStyles,
5
7
  css `
@@ -119,10 +121,10 @@ const styles = [
119
121
  --vscode-editorGroup-border,
120
122
  rgba(255, 255, 255, 0.09)
121
123
  );
122
- height: 100%;
124
+ height: calc(100% - 30px);
123
125
  position: absolute;
124
126
  top: 30px;
125
- width: 1px;
127
+ width: ${SPLITTER_VISIBLE_WIDTH}px;
126
128
  }
127
129
 
128
130
  .sash.hover .sash-visible {
@@ -131,11 +133,10 @@ const styles = [
131
133
  }
132
134
 
133
135
  .sash .sash-clickable {
134
- background-color: transparent;
135
136
  height: 100%;
136
- left: -2px;
137
+ left: ${0 - (SPLITTER_HIT_WIDTH - SPLITTER_VISIBLE_WIDTH) / 2}px;
137
138
  position: absolute;
138
- width: 5px;
139
+ width: ${SPLITTER_HIT_WIDTH}px;
139
140
  }
140
141
  `,
141
142
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-table.styles.js","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,MAAM,MAAM,GAAmB;IAC7B,UAAU;IACV,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuIF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport baseStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n baseStyles,\n css`\n :host {\n display: block;\n --vsc-row-even-background: transparent;\n --vsc-row-odd-background: transparent;\n --vsc-row-border-bottom-width: 0;\n --vsc-row-border-top-width: 0;\n --vsc-row-display: table-row;\n }\n\n :host([bordered]),\n :host([bordered-rows]) {\n --vsc-row-border-bottom-width: 1px;\n }\n\n :host([compact]) {\n --vsc-row-display: block;\n }\n\n :host([bordered][compact]),\n :host([bordered-rows][compact]) {\n --vsc-row-border-bottom-width: 0;\n --vsc-row-border-top-width: 1px;\n }\n\n :host([zebra]) {\n --vsc-row-even-background: var(\n --vscode-keybindingTable-rowsBackground,\n rgba(204, 204, 204, 0.04)\n );\n }\n\n :host([zebra-odd]) {\n --vsc-row-odd-background: var(\n --vscode-keybindingTable-rowsBackground,\n rgba(204, 204, 204, 0.04)\n );\n }\n\n ::slotted(vscode-table-row) {\n width: 100%;\n }\n\n .wrapper {\n height: 100%;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n }\n\n .wrapper.select-disabled {\n user-select: none;\n }\n\n .wrapper.resize-cursor {\n cursor: ew-resize;\n }\n\n .wrapper.compact-view .header-slot-wrapper {\n height: 0;\n overflow: hidden;\n }\n\n .scrollable {\n height: 100%;\n }\n\n .scrollable:before {\n background-color: transparent;\n content: '';\n display: block;\n height: 1px;\n position: absolute;\n width: 100%;\n }\n\n .wrapper:not(.compact-view) .scrollable:not([scrolled]):before {\n background-color: var(\n --vscode-editorGroup-border,\n rgba(255, 255, 255, 0.09)\n );\n }\n\n .sash {\n visibility: hidden;\n }\n\n :host([bordered-columns]) .sash,\n :host([bordered]) .sash {\n visibility: visible;\n }\n\n :host([resizable]) .wrapper:hover .sash {\n visibility: visible;\n }\n\n .sash {\n height: 100%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n\n .wrapper.compact-view .sash {\n display: none;\n }\n\n .sash.resizable {\n cursor: ew-resize;\n }\n\n .sash-visible {\n background-color: var(\n --vscode-editorGroup-border,\n rgba(255, 255, 255, 0.09)\n );\n height: 100%;\n position: absolute;\n top: 30px;\n width: 1px;\n }\n\n .sash.hover .sash-visible {\n background-color: var(--vscode-sash-hoverBorder, #0078d4);\n transition: background-color 50ms linear 300ms;\n }\n\n .sash .sash-clickable {\n background-color: transparent;\n height: 100%;\n left: -2px;\n position: absolute;\n width: 5px;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-table.styles.js","sourceRoot":"","sources":["../../src/vscode-table/vscode-table.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AACxC,OAAO,UAAU,MAAM,+BAA+B,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AACpC,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC,MAAM,MAAM,GAAmB;IAC7B,UAAU;IACV,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAwHU,sBAAsB;;;;;;;;;;cAUvB,CAAC,GAAG,CAAC,kBAAkB,GAAG,sBAAsB,CAAC,GAAG,CAAC;;eAEpD,kBAAkB;;GAE9B;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\nimport baseStyles from '../includes/default.styles.js';\n\nexport const SPLITTER_HIT_WIDTH = 5;\nexport const SPLITTER_VISIBLE_WIDTH = 1;\n\nconst styles: CSSResultGroup = [\n baseStyles,\n css`\n :host {\n display: block;\n --vsc-row-even-background: transparent;\n --vsc-row-odd-background: transparent;\n --vsc-row-border-bottom-width: 0;\n --vsc-row-border-top-width: 0;\n --vsc-row-display: table-row;\n }\n\n :host([bordered]),\n :host([bordered-rows]) {\n --vsc-row-border-bottom-width: 1px;\n }\n\n :host([compact]) {\n --vsc-row-display: block;\n }\n\n :host([bordered][compact]),\n :host([bordered-rows][compact]) {\n --vsc-row-border-bottom-width: 0;\n --vsc-row-border-top-width: 1px;\n }\n\n :host([zebra]) {\n --vsc-row-even-background: var(\n --vscode-keybindingTable-rowsBackground,\n rgba(204, 204, 204, 0.04)\n );\n }\n\n :host([zebra-odd]) {\n --vsc-row-odd-background: var(\n --vscode-keybindingTable-rowsBackground,\n rgba(204, 204, 204, 0.04)\n );\n }\n\n ::slotted(vscode-table-row) {\n width: 100%;\n }\n\n .wrapper {\n height: 100%;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n width: 100%;\n }\n\n .wrapper.select-disabled {\n user-select: none;\n }\n\n .wrapper.resize-cursor {\n cursor: ew-resize;\n }\n\n .wrapper.compact-view .header-slot-wrapper {\n height: 0;\n overflow: hidden;\n }\n\n .scrollable {\n height: 100%;\n }\n\n .scrollable:before {\n background-color: transparent;\n content: '';\n display: block;\n height: 1px;\n position: absolute;\n width: 100%;\n }\n\n .wrapper:not(.compact-view) .scrollable:not([scrolled]):before {\n background-color: var(\n --vscode-editorGroup-border,\n rgba(255, 255, 255, 0.09)\n );\n }\n\n .sash {\n visibility: hidden;\n }\n\n :host([bordered-columns]) .sash,\n :host([bordered]) .sash {\n visibility: visible;\n }\n\n :host([resizable]) .wrapper:hover .sash {\n visibility: visible;\n }\n\n .sash {\n height: 100%;\n position: absolute;\n top: 0;\n width: 1px;\n }\n\n .wrapper.compact-view .sash {\n display: none;\n }\n\n .sash.resizable {\n cursor: ew-resize;\n }\n\n .sash-visible {\n background-color: var(\n --vscode-editorGroup-border,\n rgba(255, 255, 255, 0.09)\n );\n height: calc(100% - 30px);\n position: absolute;\n top: 30px;\n width: ${SPLITTER_VISIBLE_WIDTH}px;\n }\n\n .sash.hover .sash-visible {\n background-color: var(--vscode-sash-hoverBorder, #0078d4);\n transition: background-color 50ms linear 300ms;\n }\n\n .sash .sash-clickable {\n height: 100%;\n left: ${0 - (SPLITTER_HIT_WIDTH - SPLITTER_VISIBLE_WIDTH) / 2}px;\n position: absolute;\n width: ${SPLITTER_HIT_WIDTH}px;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1,5 +1,18 @@
1
1
  import { PropertyValues, TemplateResult } from 'lit';
2
2
  import { VscElement } from '../includes/VscElement.js';
3
+ /**
4
+ * Represents an item in a Tree component.
5
+ *
6
+ * @tag vscode-tree
7
+ *
8
+ * @slot - Main content
9
+ * @slot icon-branch - Custom icon for a closed branch item.
10
+ * @slot icon-branch-opened - Custom icon for an opened branch item.
11
+ * @slot icon-leaf - Custom icon for a leaf item.
12
+ * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.
13
+ * @slot actions - Container for action buttons.
14
+ * @slot decoration - Container for small decorative elements aligned to the right edge of the item.
15
+ */
3
16
  export declare class VscodeTreeItem extends VscElement {
4
17
  static styles: import("lit").CSSResultGroup;
5
18
  active: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree-item.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAgB,MAAM,KAAK,CAAC;AAIlE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAwCpE,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,+BAAU;IAKhC,MAAM,UAAS;IAGf,MAAM,UAAS;IAGf,aAAa,UAAS;IAGtB,eAAe,UAAS;IAExB,gBAAgB;IAEhB,iBAAiB,UAAS;IAG1B,IAAI,UAAS;IAGb,KAAK,SAAK;IAEV,IACI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAS7B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAEzB;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAMD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,iBAAiB,CAWvB;IAGF,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,2BAA2B,CAAoB;IAGvD,OAAO,CAAC,kBAAkB,CAAoB;IAG9C,OAAO,CAAC,wBAAwB,CAAa;IAG7C,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAM5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;;IAiBzB,iBAAiB,IAAI,IAAI;cAOf,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;cAarD,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IActE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,oCAAoC;IAwB5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAoBpB,MAAM,IAAI,cAAc;CA4HlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
1
+ {"version":3,"file":"vscode-tree-item.d.ts","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,cAAc,EAAgB,MAAM,KAAK,CAAC;AAIlE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAwCpE;;;;;;;;;;;;GAYG;AACH,qBACa,cAAe,SAAQ,UAAU;IAC5C,OAAgB,MAAM,+BAAU;IAKhC,MAAM,UAAS;IAGf,MAAM,UAAS;IAGf,aAAa,UAAS;IAGtB,eAAe,UAAS;IAExB,gBAAgB;IAEhB,iBAAiB,UAAS;IAG1B,IAAI,UAAS;IAGb,KAAK,SAAK;IAEV,IACI,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAS7B;IACD,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAEzB;IACD,IAAI,IAAI,IAAI,MAAM,EAAE,CAEnB;IAMD,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,oBAAoB,CAAS;IAGrC,OAAO,CAAC,YAAY,CAAS;IAG7B,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,sBAAsB,CAAS;IAGvC,OAAO,CAAC,yBAAyB,CAAS;IAG1C,OAAO,CAAC,iBAAiB,CAWvB;IAGF,OAAO,CAAC,cAAc,CAAiB;IAGvC,OAAO,CAAC,2BAA2B,CAAoB;IAGvD,OAAO,CAAC,kBAAkB,CAAoB;IAG9C,OAAO,CAAC,wBAAwB,CAAa;IAG7C,OAAO,CAAC,oBAAoB,CAAa;IAGzC,OAAO,CAAC,uBAAuB,CAAa;IAM5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,iBAAiB,CAAS;;IAiBzB,iBAAiB,IAAI,IAAI;cAOf,YAAY,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;cAarD,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IActE,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,2BAA2B;IAWnC,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,yBAAyB;IAUjC,OAAO,CAAC,wBAAwB;IAkBhC,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IA8CpB,OAAO,CAAC,oCAAoC;IAwB5C,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,4BAA4B;IAIpC,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,CAAC,qBAAqB,CAc3B;IAEF,OAAO,CAAC,mBAAmB,CAGzB;IAEF,OAAO,CAAC,mBAAmB,CAezB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CAErB;IAEF,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,qBAAqB;IAoBpB,MAAM,IAAI,cAAc;CA4HlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}
@@ -38,6 +38,19 @@ function getParentItem(childItem) {
38
38
  }
39
39
  return childItem.parentElement;
40
40
  }
41
+ /**
42
+ * Represents an item in a Tree component.
43
+ *
44
+ * @tag vscode-tree
45
+ *
46
+ * @slot - Main content
47
+ * @slot icon-branch - Custom icon for a closed branch item.
48
+ * @slot icon-branch-opened - Custom icon for an opened branch item.
49
+ * @slot icon-leaf - Custom icon for a leaf item.
50
+ * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.
51
+ * @slot actions - Container for action buttons.
52
+ * @slot decoration - Container for small decorative elements aligned to the right edge of the item.
53
+ */
41
54
  let VscodeTreeItem = VscodeTreeItem_1 = class VscodeTreeItem extends VscElement {
42
55
  set selected(selected) {
43
56
  this._selected = selected;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-tree-item.js","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {PropertyValues, TemplateResult, html, nothing} from 'lit';\nimport {consume} from '@lit/context';\nimport {property, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {\n ConfigContext,\n configContext,\n treeContext,\n type TreeContext,\n} from '../vscode-tree/tree-context.js';\nimport {initPathTrackerProps} from '../vscode-tree/helpers.js';\nimport styles from './vscode-tree-item.styles.js';\nimport {ExpandMode, IndentGuides} from '../vscode-tree/vscode-tree.js';\n\nconst BASE_INDENT = 3;\nconst ARROW_CONTAINER_WIDTH = 30;\n\nconst arrowIcon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.072 8.024L5.715 3.667l.618-.62L11 7.716v.618L6.333 13l-.618-.619 4.357-4.357z\"\n />\n</svg>`;\n\nfunction getParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!(childItem.parentElement instanceof VscodeTreeItem)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n\n@customElement('vscode-tree-item')\nexport class VscodeTreeItem extends VscElement {\n static override styles = styles;\n\n //#region properties\n\n @property({type: Boolean})\n active = false;\n\n @property({type: Boolean, reflect: true})\n branch = false;\n\n @property({type: Boolean})\n hasActiveItem = false;\n\n @property({type: Boolean})\n hasSelectedItem = false;\n\n /** @internal */\n @property({type: Boolean})\n highlightedGuides = false;\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n @property({type: Number, reflect: true})\n level = 0;\n\n @property({type: Boolean, reflect: true})\n set selected(selected: boolean) {\n this._selected = selected;\n if (selected) {\n this._treeContextState.selectedItems.add(this);\n } else {\n this._treeContextState.selectedItems.delete(this);\n }\n this.ariaSelected = selected ? 'true' : 'false';\n this._updateActionsVisibility();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n set path(newPath: number[]) {\n this._path = newPath;\n }\n get path(): number[] {\n return this._path;\n }\n\n //#endregion\n\n //#region private variables\n\n private _path: number[] = [];\n private _internals: ElementInternals;\n\n @state()\n private _hasBranchIcon = false;\n\n @state()\n private _hasBranchOpenedIcon = false;\n\n @state()\n private _hasLeafIcon = false;\n\n @state()\n private _hasDescriptionSlotContent = false;\n\n @state()\n private _hasActionsSlotContent = false;\n\n @state()\n private _hasDecorationSlotContent = false;\n\n @consume({context: treeContext, subscribe: true})\n private _treeContextState: TreeContext = {\n isShiftPressed: false,\n selectedItems: new Set(),\n hoveredItem: null,\n allItems: null,\n itemListUpToDate: false,\n focusedItem: null,\n prevFocusedItem: null,\n hasBranchItem: false,\n rootElement: null,\n activeItem: null,\n };\n\n @consume({context: configContext, subscribe: true})\n private _configContext!: ConfigContext;\n\n @queryAssignedElements({selector: 'vscode-tree-item'})\n private _initiallyAssignedTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({selector: 'vscode-tree-item', slot: 'children'})\n private _childrenTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({slot: 'description', flatten: true})\n private _descriptionSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'actions', flatten: true})\n private _actionsSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'decoration', flatten: true})\n private _decorationSlotElements!: Element[];\n\n //#endregion\n\n //#region derived state\n\n private _isPointerInside = false;\n private _hasKeyboardFocus = false;\n\n //#endregion\n\n //#region lifecycle methods\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this.addEventListener('focus', this._handleComponentFocus);\n this.addEventListener('pointerenter', this._handlePointerEnter);\n this.addEventListener('pointerleave', this._handlePointerLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._mainSlotChange();\n this.role = 'treeitem';\n this.ariaDisabled = 'false';\n }\n\n protected override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n this._refreshDescriptionSlotState();\n this._refreshActionsSlotState();\n this._refreshDecorationSlotState();\n if (this.matches(':hover')) {\n this._isPointerInside = true;\n this._claimHover();\n } else {\n this._updateActionsVisibility();\n }\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('active')) {\n this._toggleActiveState();\n }\n\n if (changedProperties.has('open') || changedProperties.has('branch')) {\n this._setAriaExpanded();\n }\n }\n\n //#endregion\n\n //#region private methods\n\n private _setAriaExpanded() {\n if (!this.branch) {\n this.ariaExpanded = null;\n } else {\n this.ariaExpanded = this.open ? 'true' : 'false';\n }\n }\n\n private _setHasActiveItemFlagOnParent(\n childItem: VscodeTreeItem,\n value: boolean\n ) {\n const parent = getParentItem(childItem);\n\n if (parent) {\n parent.hasActiveItem = value;\n }\n }\n\n private _refreshDescriptionSlotState() {\n const hasContent = (this._descriptionSlotElements?.length ?? 0) > 0;\n\n this._hasDescriptionSlotContent = hasContent;\n this._setCustomState('has-description', hasContent);\n }\n\n private _refreshActionsSlotState() {\n const hasContent = (this._actionsSlotElements?.length ?? 0) > 0;\n\n this._hasActionsSlotContent = hasContent;\n this._setCustomState('has-actions', hasContent);\n this._updateActionsVisibility();\n }\n\n private _refreshDecorationSlotState() {\n const hasContent = (this._decorationSlotElements?.length ?? 0) > 0;\n\n const prevHasDecoration = this._hasDecorationSlotContent;\n this._hasDecorationSlotContent = hasContent;\n this._setCustomState('has-decoration', hasContent);\n if (prevHasDecoration !== hasContent) {\n this.requestUpdate();\n }\n }\n\n private _setCustomState(stateName: string, present: boolean) {\n if (!this._internals?.states) {\n return;\n }\n\n try {\n if (present) {\n this._internals.states.add(stateName);\n } else {\n this._internals.states.delete(stateName);\n }\n } catch {\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#compatibility_with_dashed-ident_syntax\n if (present) {\n this._internals.states.add(`--${stateName}`);\n } else {\n this._internals.states.delete(`--${stateName}`);\n }\n }\n }\n\n private _getActiveElement(): Element | null {\n const root = this.getRootNode({composed: true});\n\n if (root instanceof Document) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n if (root instanceof ShadowRoot) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n return null;\n }\n\n private _isActiveElementInActions(activeElement: Element | null): boolean {\n if (!activeElement) {\n return false;\n }\n\n return (this._actionsSlotElements ?? []).some(\n (element) => element === activeElement || element.contains(activeElement)\n );\n }\n\n private _updateActionsVisibility() {\n if (!this._hasActionsSlotContent) {\n this._setCustomState('show-actions', false);\n return;\n }\n\n const activeElement = this._getActiveElement();\n const isActionsFocused = this._isActiveElementInActions(activeElement);\n\n const shouldShow =\n this.selected ||\n this._isPointerInside ||\n this._hasKeyboardFocus ||\n isActionsFocused;\n\n this._setCustomState('show-actions', shouldShow);\n }\n\n private _updateFocusState() {\n const hostFocusVisible = this.matches(':focus-visible');\n this._setCustomState('focus-visible', hostFocusVisible);\n\n const activeElement = this._getActiveElement();\n let owner: VscodeTreeItem | null = null;\n if (activeElement instanceof Element) {\n owner = activeElement.closest('vscode-tree-item');\n\n if (!owner) {\n const root = activeElement.getRootNode();\n if (root instanceof ShadowRoot && root.host instanceof VscodeTreeItem) {\n owner = root.host;\n }\n }\n }\n\n const hasKeyboardFocus = owner === this;\n\n this._hasKeyboardFocus = hasKeyboardFocus;\n this._setCustomState('keyboard-focus', hasKeyboardFocus);\n this._updateActionsVisibility();\n }\n\n private _clearHoverState() {\n this._isPointerInside = false;\n this._setCustomState('hover', false);\n this._updateActionsVisibility();\n }\n\n private _adoptHoverFromSibling() {\n this._isPointerInside = true;\n this._claimHover();\n }\n\n private _claimHover() {\n const treeState = this._treeContextState;\n if (treeState.hoveredItem && treeState.hoveredItem !== this) {\n treeState.hoveredItem._clearHoverState();\n }\n\n treeState.hoveredItem = this;\n this._setCustomState('hover', true);\n this._updateActionsVisibility();\n }\n\n private _toggleActiveState() {\n if (this.active) {\n if (this._treeContextState.activeItem) {\n this._treeContextState.activeItem.active = false;\n this._setHasActiveItemFlagOnParent(\n this._treeContextState.activeItem,\n false\n );\n }\n\n this._treeContextState.activeItem = this;\n this._setHasActiveItemFlagOnParent(this, true);\n this.tabIndex = 0;\n this._setCustomState('active', true);\n } else {\n if (this._treeContextState.activeItem === this) {\n this._treeContextState.activeItem = null;\n this._setHasActiveItemFlagOnParent(this, false);\n }\n\n this.tabIndex = -1;\n this._setCustomState('active', false);\n }\n }\n\n private _selectItem(isCtrlDown: boolean) {\n const {selectedItems} = this._treeContextState;\n const {multiSelect} = this._configContext;\n const prevSelected = new Set(selectedItems);\n\n if (multiSelect && isCtrlDown) {\n this.selected = !this.selected;\n } else {\n Array.from(selectedItems).forEach((li) => {\n if (li !== this) {\n li.selected = false;\n }\n });\n selectedItems.clear();\n this.selected = true;\n }\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectRange() {\n const prevFocused = this._treeContextState.prevFocusedItem;\n\n if (!prevFocused || prevFocused === this) {\n return;\n }\n\n const prevSelected = new Set(this._treeContextState.selectedItems);\n\n if (!this._treeContextState.itemListUpToDate) {\n this._treeContextState.allItems =\n this._treeContextState.rootElement!.querySelectorAll(\n 'vscode-tree-item'\n );\n\n if (this._treeContextState.allItems) {\n this._treeContextState.allItems.forEach((li, i) => {\n li.dataset.score = i.toString();\n });\n }\n\n this._treeContextState.itemListUpToDate = true;\n }\n\n let from = +(prevFocused.dataset.score ?? -1);\n let to = +(this.dataset.score ?? -1);\n\n if (from > to) {\n [from, to] = [to, from];\n }\n\n Array.from(this._treeContextState.selectedItems).forEach(\n (li) => (li.selected = false)\n );\n this._treeContextState.selectedItems.clear();\n\n this._selectItemsAndAllVisibleDescendants(from, to);\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...this._treeContextState.selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectItemsAndAllVisibleDescendants(from: number, to: number) {\n let i = from;\n\n while (i <= to) {\n if (this._treeContextState.allItems) {\n const item = this._treeContextState.allItems[i];\n\n if (item.branch && !item.open) {\n item.selected = true;\n const numChildren = item.querySelectorAll('vscode-tree-item').length;\n i += numChildren;\n } else if (item.branch && item.open) {\n item.selected = true;\n i += this._selectItemsAndAllVisibleDescendants(i + 1, to);\n } else {\n item.selected = true;\n i += 1;\n }\n }\n }\n\n return i;\n }\n\n private _mainSlotChange() {\n this._initiallyAssignedTreeItems.forEach((li) => {\n li.setAttribute('slot', 'children');\n });\n }\n\n //#endregion\n\n //#region event handlers\n\n private _handleChildrenSlotChange() {\n initPathTrackerProps(this, this._childrenTreeItems);\n\n if (this._treeContextState.rootElement) {\n this._treeContextState.rootElement.updateHasBranchItemFlag();\n }\n }\n\n private _handleDescriptionSlotChange() {\n this._refreshDescriptionSlotState();\n }\n\n private _handleActionsSlotChange() {\n this._refreshActionsSlotState();\n }\n\n private _handleDecorationSlotChange() {\n this._refreshDecorationSlotState();\n }\n\n private _handleMainSlotChange = () => {\n this._mainSlotChange();\n this._treeContextState.itemListUpToDate = false;\n };\n\n private _handleComponentFocus = () => {\n if (\n this._treeContextState.focusedItem &&\n this._treeContextState.focusedItem !== this\n ) {\n if (!this._treeContextState.isShiftPressed) {\n this._treeContextState.prevFocusedItem =\n this._treeContextState.focusedItem;\n }\n\n this._treeContextState.focusedItem = null;\n }\n\n this._treeContextState.focusedItem = this;\n };\n\n private _handlePointerEnter = () => {\n this._isPointerInside = true;\n this._claimHover();\n };\n\n private _handlePointerLeave = (ev: PointerEvent) => {\n this._isPointerInside = false;\n if (this._treeContextState.hoveredItem === this) {\n this._treeContextState.hoveredItem = null;\n }\n this._clearHoverState();\n\n const relatedTarget = ev.relatedTarget;\n if (relatedTarget instanceof Element) {\n const nextItem =\n relatedTarget.closest<VscodeTreeItem>('vscode-tree-item');\n if (nextItem && nextItem !== this && nextItem.isConnected) {\n nextItem._adoptHoverFromSibling();\n }\n }\n };\n\n private _handleFocusIn = () => {\n this._updateFocusState();\n };\n\n private _handleFocusOut = () => {\n this._updateFocusState();\n };\n\n private _handleContentClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const isCtrlDown = ev.ctrlKey || ev.metaKey;\n const isShiftDown = ev.shiftKey;\n\n if (isShiftDown && this._configContext.multiSelect) {\n this._selectRange();\n this._treeContextState.emitSelectEvent?.();\n\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n } else {\n this._selectItem(isCtrlDown);\n this._treeContextState.emitSelectEvent?.();\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n\n if (this._configContext.expandMode === ExpandMode.singleClick) {\n if (this.branch && !(this._configContext.multiSelect && isCtrlDown)) {\n this.open = !this.open;\n }\n }\n }\n\n this.active = true;\n\n if (!isShiftDown) {\n this._treeContextState.prevFocusedItem = this;\n }\n }\n\n private _handleDoubleClick(ev: MouseEvent) {\n if (this._configContext.expandMode === ExpandMode.doubleClick) {\n if (\n this.branch &&\n !(this._configContext.multiSelect && (ev.ctrlKey || ev.metaKey))\n ) {\n this.open = !this.open;\n }\n }\n }\n\n private _handleIconSlotChange(ev: Event) {\n const slot = ev.target as HTMLSlotElement;\n const hasContent = slot.assignedElements().length > 0;\n\n switch (slot.name) {\n case 'icon-branch':\n this._hasBranchIcon = hasContent;\n break;\n case 'icon-branch-opened':\n this._hasBranchOpenedIcon = hasContent;\n break;\n case 'icon-leaf':\n this._hasLeafIcon = hasContent;\n break;\n default:\n }\n }\n\n //#endregion\n\n override render(): TemplateResult {\n const {hideArrows, indent, indentGuides} = this._configContext;\n const {hasBranchItem} = this._treeContextState;\n let indentation = BASE_INDENT + this.level * indent;\n const guideOffset = !hideArrows ? 13 : 3;\n const indentGuideX = BASE_INDENT + this.level * indent + guideOffset;\n\n if (!this.branch && !hideArrows && hasBranchItem) {\n indentation += ARROW_CONTAINER_WIDTH;\n }\n\n const hasVisibleIcon =\n (this._hasBranchIcon && this.branch) ||\n (this._hasBranchOpenedIcon && this.branch && this.open) ||\n (this._hasLeafIcon && !this.branch);\n\n const wrapperClasses = {\n wrapper: true,\n active: this.active,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-actions': this._hasActionsSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n const childrenClasses = {\n children: true,\n guide: indentGuides !== IndentGuides.none,\n 'default-guide': indentGuides !== IndentGuides.none,\n 'highlighted-guide': this.highlightedGuides,\n };\n\n const iconContainerClasses = {\n 'icon-container': true,\n 'has-icon': hasVisibleIcon,\n };\n\n const contentClasses = {\n content: true,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n return html` <div class=\"root\">\n <div\n class=${classMap(wrapperClasses)}\n part=\"wrapper\"\n @click=${this._handleContentClick}\n @dblclick=${this._handleDoubleClick}\n .style=${stylePropertyMap({paddingLeft: `${indentation}px`})}\n >\n ${this.branch && !hideArrows\n ? html`<div\n class=${classMap({\n 'arrow-container': true,\n 'icon-rotated': this.open,\n })}\n part=\"arrow-icon-container\"\n >\n ${arrowIcon}\n </div>`\n : nothing}\n <div class=${classMap(iconContainerClasses)} part=\"icon-container\">\n ${this.branch && !this.open\n ? html`<slot\n name=\"icon-branch\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${this.branch && this.open\n ? html`<slot\n name=\"icon-branch-opened\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${!this.branch\n ? html`<slot\n name=\"icon-leaf\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n </div>\n <div class=${classMap(contentClasses)} part=\"content\">\n <span class=\"label\" part=\"label\">\n <slot @slotchange=${this._handleMainSlotChange}></slot>\n </span>\n <span\n class=\"description\"\n part=\"description\"\n ?hidden=${!this._hasDescriptionSlotContent}\n >\n <slot\n name=\"description\"\n @slotchange=${this._handleDescriptionSlotChange}\n ></slot>\n </span>\n <div class=\"actions\" part=\"actions\">\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsSlotChange}\n ></slot>\n </div>\n <div class=\"decoration\" part=\"decoration\">\n <slot\n name=\"decoration\"\n @slotchange=${this._handleDecorationSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n <div\n class=${classMap(childrenClasses)}\n .style=${stylePropertyMap({\n '--indentation-guide-left': `${indentGuideX}px`,\n })}\n role=\"group\"\n part=\"children\"\n >\n <slot\n name=\"children\"\n @slotchange=${this._handleChildrenSlotChange}\n ></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree-item': VscodeTreeItem;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-tree-item.js","sourceRoot":"","sources":["../../src/vscode-tree-item/vscode-tree-item.ts"],"names":[],"mappings":"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","sourcesContent":["import {PropertyValues, TemplateResult, html, nothing} from 'lit';\nimport {consume} from '@lit/context';\nimport {property, queryAssignedElements, state} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport {stylePropertyMap} from '../includes/style-property-map.js';\nimport {\n ConfigContext,\n configContext,\n treeContext,\n type TreeContext,\n} from '../vscode-tree/tree-context.js';\nimport {initPathTrackerProps} from '../vscode-tree/helpers.js';\nimport styles from './vscode-tree-item.styles.js';\nimport {ExpandMode, IndentGuides} from '../vscode-tree/vscode-tree.js';\n\nconst BASE_INDENT = 3;\nconst ARROW_CONTAINER_WIDTH = 30;\n\nconst arrowIcon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10.072 8.024L5.715 3.667l.618-.62L11 7.716v.618L6.333 13l-.618-.619 4.357-4.357z\"\n />\n</svg>`;\n\nfunction getParentItem(childItem: VscodeTreeItem) {\n if (!childItem.parentElement) {\n return null;\n }\n\n if (!(childItem.parentElement instanceof VscodeTreeItem)) {\n return null;\n }\n\n return childItem.parentElement;\n}\n\n/**\n * Represents an item in a Tree component.\n *\n * @tag vscode-tree\n *\n * @slot - Main content\n * @slot icon-branch - Custom icon for a closed branch item.\n * @slot icon-branch-opened - Custom icon for an opened branch item.\n * @slot icon-leaf - Custom icon for a leaf item.\n * @slot description - Description of the item. Displayed with a smaller font size and a less prominent color.\n * @slot actions - Container for action buttons.\n * @slot decoration - Container for small decorative elements aligned to the right edge of the item.\n */\n@customElement('vscode-tree-item')\nexport class VscodeTreeItem extends VscElement {\n static override styles = styles;\n\n //#region properties\n\n @property({type: Boolean})\n active = false;\n\n @property({type: Boolean, reflect: true})\n branch = false;\n\n @property({type: Boolean})\n hasActiveItem = false;\n\n @property({type: Boolean})\n hasSelectedItem = false;\n\n /** @internal */\n @property({type: Boolean})\n highlightedGuides = false;\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n @property({type: Number, reflect: true})\n level = 0;\n\n @property({type: Boolean, reflect: true})\n set selected(selected: boolean) {\n this._selected = selected;\n if (selected) {\n this._treeContextState.selectedItems.add(this);\n } else {\n this._treeContextState.selectedItems.delete(this);\n }\n this.ariaSelected = selected ? 'true' : 'false';\n this._updateActionsVisibility();\n }\n get selected(): boolean {\n return this._selected;\n }\n private _selected = false;\n\n set path(newPath: number[]) {\n this._path = newPath;\n }\n get path(): number[] {\n return this._path;\n }\n\n //#endregion\n\n //#region private variables\n\n private _path: number[] = [];\n private _internals: ElementInternals;\n\n @state()\n private _hasBranchIcon = false;\n\n @state()\n private _hasBranchOpenedIcon = false;\n\n @state()\n private _hasLeafIcon = false;\n\n @state()\n private _hasDescriptionSlotContent = false;\n\n @state()\n private _hasActionsSlotContent = false;\n\n @state()\n private _hasDecorationSlotContent = false;\n\n @consume({context: treeContext, subscribe: true})\n private _treeContextState: TreeContext = {\n isShiftPressed: false,\n selectedItems: new Set(),\n hoveredItem: null,\n allItems: null,\n itemListUpToDate: false,\n focusedItem: null,\n prevFocusedItem: null,\n hasBranchItem: false,\n rootElement: null,\n activeItem: null,\n };\n\n @consume({context: configContext, subscribe: true})\n private _configContext!: ConfigContext;\n\n @queryAssignedElements({selector: 'vscode-tree-item'})\n private _initiallyAssignedTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({selector: 'vscode-tree-item', slot: 'children'})\n private _childrenTreeItems!: VscodeTreeItem[];\n\n @queryAssignedElements({slot: 'description', flatten: true})\n private _descriptionSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'actions', flatten: true})\n private _actionsSlotElements!: Element[];\n\n @queryAssignedElements({slot: 'decoration', flatten: true})\n private _decorationSlotElements!: Element[];\n\n //#endregion\n\n //#region derived state\n\n private _isPointerInside = false;\n private _hasKeyboardFocus = false;\n\n //#endregion\n\n //#region lifecycle methods\n\n constructor() {\n super();\n\n this._internals = this.attachInternals();\n this.addEventListener('focus', this._handleComponentFocus);\n this.addEventListener('pointerenter', this._handlePointerEnter);\n this.addEventListener('pointerleave', this._handlePointerLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._mainSlotChange();\n this.role = 'treeitem';\n this.ariaDisabled = 'false';\n }\n\n protected override firstUpdated(changedProperties: PropertyValues): void {\n super.firstUpdated(changedProperties);\n this._refreshDescriptionSlotState();\n this._refreshActionsSlotState();\n this._refreshDecorationSlotState();\n if (this.matches(':hover')) {\n this._isPointerInside = true;\n this._claimHover();\n } else {\n this._updateActionsVisibility();\n }\n }\n\n protected override willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('active')) {\n this._toggleActiveState();\n }\n\n if (changedProperties.has('open') || changedProperties.has('branch')) {\n this._setAriaExpanded();\n }\n }\n\n //#endregion\n\n //#region private methods\n\n private _setAriaExpanded() {\n if (!this.branch) {\n this.ariaExpanded = null;\n } else {\n this.ariaExpanded = this.open ? 'true' : 'false';\n }\n }\n\n private _setHasActiveItemFlagOnParent(\n childItem: VscodeTreeItem,\n value: boolean\n ) {\n const parent = getParentItem(childItem);\n\n if (parent) {\n parent.hasActiveItem = value;\n }\n }\n\n private _refreshDescriptionSlotState() {\n const hasContent = (this._descriptionSlotElements?.length ?? 0) > 0;\n\n this._hasDescriptionSlotContent = hasContent;\n this._setCustomState('has-description', hasContent);\n }\n\n private _refreshActionsSlotState() {\n const hasContent = (this._actionsSlotElements?.length ?? 0) > 0;\n\n this._hasActionsSlotContent = hasContent;\n this._setCustomState('has-actions', hasContent);\n this._updateActionsVisibility();\n }\n\n private _refreshDecorationSlotState() {\n const hasContent = (this._decorationSlotElements?.length ?? 0) > 0;\n\n const prevHasDecoration = this._hasDecorationSlotContent;\n this._hasDecorationSlotContent = hasContent;\n this._setCustomState('has-decoration', hasContent);\n if (prevHasDecoration !== hasContent) {\n this.requestUpdate();\n }\n }\n\n private _setCustomState(stateName: string, present: boolean) {\n if (!this._internals?.states) {\n return;\n }\n\n try {\n if (present) {\n this._internals.states.add(stateName);\n } else {\n this._internals.states.delete(stateName);\n }\n } catch {\n // https://developer.mozilla.org/en-US/docs/Web/API/CustomStateSet#compatibility_with_dashed-ident_syntax\n if (present) {\n this._internals.states.add(`--${stateName}`);\n } else {\n this._internals.states.delete(`--${stateName}`);\n }\n }\n }\n\n private _getActiveElement(): Element | null {\n const root = this.getRootNode({composed: true});\n\n if (root instanceof Document) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n if (root instanceof ShadowRoot) {\n return root.activeElement instanceof Element ? root.activeElement : null;\n }\n\n return null;\n }\n\n private _isActiveElementInActions(activeElement: Element | null): boolean {\n if (!activeElement) {\n return false;\n }\n\n return (this._actionsSlotElements ?? []).some(\n (element) => element === activeElement || element.contains(activeElement)\n );\n }\n\n private _updateActionsVisibility() {\n if (!this._hasActionsSlotContent) {\n this._setCustomState('show-actions', false);\n return;\n }\n\n const activeElement = this._getActiveElement();\n const isActionsFocused = this._isActiveElementInActions(activeElement);\n\n const shouldShow =\n this.selected ||\n this._isPointerInside ||\n this._hasKeyboardFocus ||\n isActionsFocused;\n\n this._setCustomState('show-actions', shouldShow);\n }\n\n private _updateFocusState() {\n const hostFocusVisible = this.matches(':focus-visible');\n this._setCustomState('focus-visible', hostFocusVisible);\n\n const activeElement = this._getActiveElement();\n let owner: VscodeTreeItem | null = null;\n if (activeElement instanceof Element) {\n owner = activeElement.closest('vscode-tree-item');\n\n if (!owner) {\n const root = activeElement.getRootNode();\n if (root instanceof ShadowRoot && root.host instanceof VscodeTreeItem) {\n owner = root.host;\n }\n }\n }\n\n const hasKeyboardFocus = owner === this;\n\n this._hasKeyboardFocus = hasKeyboardFocus;\n this._setCustomState('keyboard-focus', hasKeyboardFocus);\n this._updateActionsVisibility();\n }\n\n private _clearHoverState() {\n this._isPointerInside = false;\n this._setCustomState('hover', false);\n this._updateActionsVisibility();\n }\n\n private _adoptHoverFromSibling() {\n this._isPointerInside = true;\n this._claimHover();\n }\n\n private _claimHover() {\n const treeState = this._treeContextState;\n if (treeState.hoveredItem && treeState.hoveredItem !== this) {\n treeState.hoveredItem._clearHoverState();\n }\n\n treeState.hoveredItem = this;\n this._setCustomState('hover', true);\n this._updateActionsVisibility();\n }\n\n private _toggleActiveState() {\n if (this.active) {\n if (this._treeContextState.activeItem) {\n this._treeContextState.activeItem.active = false;\n this._setHasActiveItemFlagOnParent(\n this._treeContextState.activeItem,\n false\n );\n }\n\n this._treeContextState.activeItem = this;\n this._setHasActiveItemFlagOnParent(this, true);\n this.tabIndex = 0;\n this._setCustomState('active', true);\n } else {\n if (this._treeContextState.activeItem === this) {\n this._treeContextState.activeItem = null;\n this._setHasActiveItemFlagOnParent(this, false);\n }\n\n this.tabIndex = -1;\n this._setCustomState('active', false);\n }\n }\n\n private _selectItem(isCtrlDown: boolean) {\n const {selectedItems} = this._treeContextState;\n const {multiSelect} = this._configContext;\n const prevSelected = new Set(selectedItems);\n\n if (multiSelect && isCtrlDown) {\n this.selected = !this.selected;\n } else {\n Array.from(selectedItems).forEach((li) => {\n if (li !== this) {\n li.selected = false;\n }\n });\n selectedItems.clear();\n this.selected = true;\n }\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectRange() {\n const prevFocused = this._treeContextState.prevFocusedItem;\n\n if (!prevFocused || prevFocused === this) {\n return;\n }\n\n const prevSelected = new Set(this._treeContextState.selectedItems);\n\n if (!this._treeContextState.itemListUpToDate) {\n this._treeContextState.allItems =\n this._treeContextState.rootElement!.querySelectorAll(\n 'vscode-tree-item'\n );\n\n if (this._treeContextState.allItems) {\n this._treeContextState.allItems.forEach((li, i) => {\n li.dataset.score = i.toString();\n });\n }\n\n this._treeContextState.itemListUpToDate = true;\n }\n\n let from = +(prevFocused.dataset.score ?? -1);\n let to = +(this.dataset.score ?? -1);\n\n if (from > to) {\n [from, to] = [to, from];\n }\n\n Array.from(this._treeContextState.selectedItems).forEach(\n (li) => (li.selected = false)\n );\n this._treeContextState.selectedItems.clear();\n\n this._selectItemsAndAllVisibleDescendants(from, to);\n\n const affected = new Set<VscodeTreeItem>([\n ...prevSelected,\n ...this._treeContextState.selectedItems,\n ]);\n affected.add(this);\n affected.forEach((li) => li._updateActionsVisibility());\n }\n\n private _selectItemsAndAllVisibleDescendants(from: number, to: number) {\n let i = from;\n\n while (i <= to) {\n if (this._treeContextState.allItems) {\n const item = this._treeContextState.allItems[i];\n\n if (item.branch && !item.open) {\n item.selected = true;\n const numChildren = item.querySelectorAll('vscode-tree-item').length;\n i += numChildren;\n } else if (item.branch && item.open) {\n item.selected = true;\n i += this._selectItemsAndAllVisibleDescendants(i + 1, to);\n } else {\n item.selected = true;\n i += 1;\n }\n }\n }\n\n return i;\n }\n\n private _mainSlotChange() {\n this._initiallyAssignedTreeItems.forEach((li) => {\n li.setAttribute('slot', 'children');\n });\n }\n\n //#endregion\n\n //#region event handlers\n\n private _handleChildrenSlotChange() {\n initPathTrackerProps(this, this._childrenTreeItems);\n\n if (this._treeContextState.rootElement) {\n this._treeContextState.rootElement.updateHasBranchItemFlag();\n }\n }\n\n private _handleDescriptionSlotChange() {\n this._refreshDescriptionSlotState();\n }\n\n private _handleActionsSlotChange() {\n this._refreshActionsSlotState();\n }\n\n private _handleDecorationSlotChange() {\n this._refreshDecorationSlotState();\n }\n\n private _handleMainSlotChange = () => {\n this._mainSlotChange();\n this._treeContextState.itemListUpToDate = false;\n };\n\n private _handleComponentFocus = () => {\n if (\n this._treeContextState.focusedItem &&\n this._treeContextState.focusedItem !== this\n ) {\n if (!this._treeContextState.isShiftPressed) {\n this._treeContextState.prevFocusedItem =\n this._treeContextState.focusedItem;\n }\n\n this._treeContextState.focusedItem = null;\n }\n\n this._treeContextState.focusedItem = this;\n };\n\n private _handlePointerEnter = () => {\n this._isPointerInside = true;\n this._claimHover();\n };\n\n private _handlePointerLeave = (ev: PointerEvent) => {\n this._isPointerInside = false;\n if (this._treeContextState.hoveredItem === this) {\n this._treeContextState.hoveredItem = null;\n }\n this._clearHoverState();\n\n const relatedTarget = ev.relatedTarget;\n if (relatedTarget instanceof Element) {\n const nextItem =\n relatedTarget.closest<VscodeTreeItem>('vscode-tree-item');\n if (nextItem && nextItem !== this && nextItem.isConnected) {\n nextItem._adoptHoverFromSibling();\n }\n }\n };\n\n private _handleFocusIn = () => {\n this._updateFocusState();\n };\n\n private _handleFocusOut = () => {\n this._updateFocusState();\n };\n\n private _handleContentClick(ev: MouseEvent) {\n ev.stopPropagation();\n\n const isCtrlDown = ev.ctrlKey || ev.metaKey;\n const isShiftDown = ev.shiftKey;\n\n if (isShiftDown && this._configContext.multiSelect) {\n this._selectRange();\n this._treeContextState.emitSelectEvent?.();\n\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n } else {\n this._selectItem(isCtrlDown);\n this._treeContextState.emitSelectEvent?.();\n this.updateComplete.then(() => {\n this._treeContextState.highlightIndentGuides?.();\n });\n\n if (this._configContext.expandMode === ExpandMode.singleClick) {\n if (this.branch && !(this._configContext.multiSelect && isCtrlDown)) {\n this.open = !this.open;\n }\n }\n }\n\n this.active = true;\n\n if (!isShiftDown) {\n this._treeContextState.prevFocusedItem = this;\n }\n }\n\n private _handleDoubleClick(ev: MouseEvent) {\n if (this._configContext.expandMode === ExpandMode.doubleClick) {\n if (\n this.branch &&\n !(this._configContext.multiSelect && (ev.ctrlKey || ev.metaKey))\n ) {\n this.open = !this.open;\n }\n }\n }\n\n private _handleIconSlotChange(ev: Event) {\n const slot = ev.target as HTMLSlotElement;\n const hasContent = slot.assignedElements().length > 0;\n\n switch (slot.name) {\n case 'icon-branch':\n this._hasBranchIcon = hasContent;\n break;\n case 'icon-branch-opened':\n this._hasBranchOpenedIcon = hasContent;\n break;\n case 'icon-leaf':\n this._hasLeafIcon = hasContent;\n break;\n default:\n }\n }\n\n //#endregion\n\n override render(): TemplateResult {\n const {hideArrows, indent, indentGuides} = this._configContext;\n const {hasBranchItem} = this._treeContextState;\n let indentation = BASE_INDENT + this.level * indent;\n const guideOffset = !hideArrows ? 13 : 3;\n const indentGuideX = BASE_INDENT + this.level * indent + guideOffset;\n\n if (!this.branch && !hideArrows && hasBranchItem) {\n indentation += ARROW_CONTAINER_WIDTH;\n }\n\n const hasVisibleIcon =\n (this._hasBranchIcon && this.branch) ||\n (this._hasBranchOpenedIcon && this.branch && this.open) ||\n (this._hasLeafIcon && !this.branch);\n\n const wrapperClasses = {\n wrapper: true,\n active: this.active,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-actions': this._hasActionsSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n const childrenClasses = {\n children: true,\n guide: indentGuides !== IndentGuides.none,\n 'default-guide': indentGuides !== IndentGuides.none,\n 'highlighted-guide': this.highlightedGuides,\n };\n\n const iconContainerClasses = {\n 'icon-container': true,\n 'has-icon': hasVisibleIcon,\n };\n\n const contentClasses = {\n content: true,\n 'has-description': this._hasDescriptionSlotContent,\n 'has-decoration': this._hasDecorationSlotContent,\n };\n\n return html` <div class=\"root\">\n <div\n class=${classMap(wrapperClasses)}\n part=\"wrapper\"\n @click=${this._handleContentClick}\n @dblclick=${this._handleDoubleClick}\n .style=${stylePropertyMap({paddingLeft: `${indentation}px`})}\n >\n ${this.branch && !hideArrows\n ? html`<div\n class=${classMap({\n 'arrow-container': true,\n 'icon-rotated': this.open,\n })}\n part=\"arrow-icon-container\"\n >\n ${arrowIcon}\n </div>`\n : nothing}\n <div class=${classMap(iconContainerClasses)} part=\"icon-container\">\n ${this.branch && !this.open\n ? html`<slot\n name=\"icon-branch\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${this.branch && this.open\n ? html`<slot\n name=\"icon-branch-opened\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n ${!this.branch\n ? html`<slot\n name=\"icon-leaf\"\n @slotchange=${this._handleIconSlotChange}\n ></slot>`\n : nothing}\n </div>\n <div class=${classMap(contentClasses)} part=\"content\">\n <span class=\"label\" part=\"label\">\n <slot @slotchange=${this._handleMainSlotChange}></slot>\n </span>\n <span\n class=\"description\"\n part=\"description\"\n ?hidden=${!this._hasDescriptionSlotContent}\n >\n <slot\n name=\"description\"\n @slotchange=${this._handleDescriptionSlotChange}\n ></slot>\n </span>\n <div class=\"actions\" part=\"actions\">\n <slot\n name=\"actions\"\n @slotchange=${this._handleActionsSlotChange}\n ></slot>\n </div>\n <div class=\"decoration\" part=\"decoration\">\n <slot\n name=\"decoration\"\n @slotchange=${this._handleDecorationSlotChange}\n ></slot>\n </div>\n </div>\n </div>\n <div\n class=${classMap(childrenClasses)}\n .style=${stylePropertyMap({\n '--indentation-guide-left': `${indentGuideX}px`,\n })}\n role=\"group\"\n part=\"children\"\n >\n <slot\n name=\"children\"\n @slotchange=${this._handleChildrenSlotChange}\n ></slot>\n </div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-tree-item': VscodeTreeItem;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vscode-elements/elements",
3
- "version": "2.4.0",
3
+ "version": "2.4.1-pre.0",
4
4
  "description": "Web components for creating Visual Studio Code extensions",
5
5
  "main": "dist/main.js",
6
6
  "module": "dist/main.js",
@@ -140,7 +140,7 @@
140
140
  },
141
141
  "devDependencies": {
142
142
  "@awmottaz/prettier-plugin-void-html": "^2.0.0",
143
- "@bendera/wds-plugin-directory-index": "^0.5.0",
143
+ "@bendera/wds-plugin-directory-index": "^0.7.0",
144
144
  "@custom-elements-manifest/analyzer": "^0.11.0",
145
145
  "@eslint/eslintrc": "^3.3.1",
146
146
  "@eslint/js": "^9.23.0",
@@ -151,7 +151,7 @@
151
151
  "@rollup/plugin-terser": "^0.4.4",
152
152
  "@types/chai": "4.3.20",
153
153
  "@types/mocha": "^10.0.10",
154
- "@types/node": "^22.14.0",
154
+ "@types/node": "^24.0.0",
155
155
  "@typescript-eslint/eslint-plugin": "^8.29.0",
156
156
  "@typescript-eslint/parser": "^8.29.0",
157
157
  "@vscode-elements/webview-playground": "^1.6.0",
@@ -2,6 +2,21 @@
2
2
  "$schema": "https://raw.githubusercontent.com/microsoft/vscode-css-languageservice/main/docs/customData.schema.json",
3
3
  "version": 1.1,
4
4
  "properties": [
5
+ { "name": "--vscode-button-background", "values": [] },
6
+ { "name": "--vscode-button-foreground", "values": [] },
7
+ { "name": "--vscode-button-border", "values": [] },
8
+ { "name": "--vscode-button-hoverBackground", "values": [] },
9
+ {
10
+ "name": "--vscode-font-family",
11
+ "description": "A sans-serif font type depends on the host OS.",
12
+ "values": []
13
+ },
14
+ { "name": "--vscode-font-size", "values": [] },
15
+ { "name": "--vscode-font-weight", "values": [] },
16
+ { "name": "--vscode-button-secondaryForeground", "values": [] },
17
+ { "name": "--vscode-button-secondaryBackground", "values": [] },
18
+ { "name": "--vscode-button-secondaryHoverBackground", "values": [] },
19
+ { "name": "--vscode-focusBorder", "values": [] },
5
20
  {
6
21
  "name": "--vscode-font-family",
7
22
  "description": "A sans-serif font type depends on the host OS.",
@@ -43,21 +58,6 @@
43
58
  { "name": "--vscode-button-secondaryBackground", "values": [] },
44
59
  { "name": "--vscode-button-secondaryHoverBackground", "values": [] },
45
60
  { "name": "--vscode-focusBorder", "values": [] },
46
- { "name": "--vscode-button-background", "values": [] },
47
- { "name": "--vscode-button-foreground", "values": [] },
48
- { "name": "--vscode-button-border", "values": [] },
49
- { "name": "--vscode-button-hoverBackground", "values": [] },
50
- {
51
- "name": "--vscode-font-family",
52
- "description": "A sans-serif font type depends on the host OS.",
53
- "values": []
54
- },
55
- { "name": "--vscode-font-size", "values": [] },
56
- { "name": "--vscode-font-weight", "values": [] },
57
- { "name": "--vscode-button-secondaryForeground", "values": [] },
58
- { "name": "--vscode-button-secondaryBackground", "values": [] },
59
- { "name": "--vscode-button-secondaryHoverBackground", "values": [] },
60
- { "name": "--vscode-focusBorder", "values": [] },
61
61
  { "name": "--vscode-font-family", "values": [] },
62
62
  { "name": "--vscode-font-size", "values": [] },
63
63
  { "name": "--vscode-font-weight", "values": [] },
@@ -2,23 +2,6 @@
2
2
  "$schema": "https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/main/docs/customData.schema.json",
3
3
  "version": 1.1,
4
4
  "tags": [
5
- {
6
- "name": "vscode-badge",
7
- "description": "Show counts or status information. Badges can also be used within [Textfield](https://vscode-elements.github.io/components/textfield) and [TabHeader](https://vscode-elements.github.io/components/tabs) components.\n---\n\n\n### **CSS Properties:**\n - **--vscode-font-family** - A sans-serif font type depends on the host OS. _(default: sans-serif)_\n- **--vscode-contrastBorder** - undefined _(default: transparent)_\n- **--vscode-badge-background** - default and counter variant background color _(default: #616161)_\n- **--vscode-badge-foreground** - default and counter variant foreground color _(default: #f8f8f8)_\n- **--vscode-activityBarBadge-background** - activity bar variant background color _(default: #0078d4)_\n- **--vscode-activityBarBadge-foreground** - activity bar variant foreground color _(default: #ffffff)_",
8
- "attributes": [
9
- {
10
- "name": "variant",
11
- "values": [
12
- { "name": "" },
13
- { "name": "default" },
14
- { "name": "counter" },
15
- { "name": "activity-bar-counter" },
16
- { "name": "tab-header-counter" }
17
- ]
18
- }
19
- ],
20
- "references": []
21
- },
22
5
  {
23
6
  "name": "vscode-button",
24
7
  "description": "Clickable element that are used to trigger actions.\n---\n\n\n### **Slots:**\n - **content-before** - Slot before the main content.\n- **content-after** - Slot after the main content.\n\n### **CSS Properties:**\n - **--vscode-button-background** - undefined _(default: #0078d4)_\n- **--vscode-button-foreground** - undefined _(default: #ffffff)_\n- **--vscode-button-border** - undefined _(default: var(--vscode-button-background, rgba(255, 255, 255, 0.07)))_\n- **--vscode-button-hoverBackground** - undefined _(default: #026ec1)_\n- **--vscode-font-family** - A sans-serif font type depends on the host OS. _(default: sans-serif)_\n- **--vscode-font-size** - undefined _(default: 13px)_\n- **--vscode-font-weight** - undefined _(default: normal)_\n- **--vscode-button-secondaryForeground** - undefined _(default: #cccccc)_\n- **--vscode-button-secondaryBackground** - undefined _(default: #313131)_\n- **--vscode-button-secondaryHoverBackground** - undefined _(default: #3c3c3c)_\n- **--vscode-focusBorder** - undefined _(default: #0078d4)_\n\n### **CSS Parts:**\n - **base** - The main content area of the component.",
@@ -80,6 +63,23 @@
80
63
  ],
81
64
  "references": []
82
65
  },
66
+ {
67
+ "name": "vscode-badge",
68
+ "description": "Show counts or status information. Badges can also be used within [Textfield](https://vscode-elements.github.io/components/textfield) and [TabHeader](https://vscode-elements.github.io/components/tabs) components.\n---\n\n\n### **CSS Properties:**\n - **--vscode-font-family** - A sans-serif font type depends on the host OS. _(default: sans-serif)_\n- **--vscode-contrastBorder** - undefined _(default: transparent)_\n- **--vscode-badge-background** - default and counter variant background color _(default: #616161)_\n- **--vscode-badge-foreground** - default and counter variant foreground color _(default: #f8f8f8)_\n- **--vscode-activityBarBadge-background** - activity bar variant background color _(default: #0078d4)_\n- **--vscode-activityBarBadge-foreground** - activity bar variant foreground color _(default: #ffffff)_",
69
+ "attributes": [
70
+ {
71
+ "name": "variant",
72
+ "values": [
73
+ { "name": "" },
74
+ { "name": "default" },
75
+ { "name": "counter" },
76
+ { "name": "activity-bar-counter" },
77
+ { "name": "tab-header-counter" }
78
+ ]
79
+ }
80
+ ],
81
+ "references": []
82
+ },
83
83
  {
84
84
  "name": "vscode-button-group",
85
85
  "description": "Shows a split button, including several components in a single button. Commonly used to show a button with a dropdown to the right.\n---\n\n\n### **CSS Properties:**\n - **--vscode-button-background** - undefined _(default: #0078d4)_\n- **--vscode-button-foreground** - undefined _(default: #ffffff)_\n- **--vscode-button-border** - undefined _(default: var(--vscode-button-background, rgba(255, 255, 255, 0.07)))_\n- **--vscode-button-hoverBackground** - undefined _(default: #026ec1)_\n- **--vscode-font-family** - A sans-serif font type depends on the host OS. _(default: sans-serif)_\n- **--vscode-font-size** - undefined _(default: 13px)_\n- **--vscode-font-weight** - undefined _(default: normal)_\n- **--vscode-button-secondaryForeground** - undefined _(default: #cccccc)_\n- **--vscode-button-secondaryBackground** - undefined _(default: #313131)_\n- **--vscode-button-secondaryHoverBackground** - undefined _(default: #3c3c3c)_\n- **--vscode-focusBorder** - undefined _(default: #0078d4)_",
@@ -812,8 +812,8 @@
812
812
  "references": []
813
813
  },
814
814
  {
815
- "name": "vscode-tree-item",
816
- "description": "\n---\n",
815
+ "name": "vscode-tree",
816
+ "description": "Represents an item in a Tree component.\n---\n\n\n### **Slots:**\n - _default_ - Main content\n- **icon-branch** - Custom icon for a closed branch item.\n- **icon-branch-opened** - Custom icon for an opened branch item.\n- **icon-leaf** - Custom icon for a leaf item.\n- **description** - Description of the item. Displayed with a smaller font size and a less prominent color.\n- **actions** - Container for action buttons.\n- **decoration** - Container for small decorative elements aligned to the right edge of the item.",
817
817
  "attributes": [
818
818
  { "name": "active", "values": [] },
819
819
  { "name": "branch", "values": [] },
@@ -1,2 +0,0 @@
1
- export declare const rawValueToPercentage: (raw: string | number, base: number) => number | null;
2
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vscode-table/helpers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,GAC/B,KAAK,MAAM,GAAG,MAAM,EACpB,MAAM,MAAM,KACX,MAAM,GAAG,IAcX,CAAC"}
@@ -1,20 +0,0 @@
1
- export const rawValueToPercentage = (raw, base) => {
2
- if (typeof raw === 'number' && !Number.isNaN(raw)) {
3
- return (raw / base) * 100;
4
- }
5
- else if (typeof raw === 'string' && /^[0-9.]+$/.test(raw)) {
6
- const val = Number(raw);
7
- return (val / base) * 100;
8
- }
9
- else if (typeof raw === 'string' && /^[0-9.]+%$/.test(raw)) {
10
- return Number(raw.substring(0, raw.length - 1));
11
- }
12
- else if (typeof raw === 'string' && /^[0-9.]+px$/.test(raw)) {
13
- const val = Number(raw.substring(0, raw.length - 2));
14
- return (val / base) * 100;
15
- }
16
- else {
17
- return null;
18
- }
19
- };
20
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/vscode-table/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,GAAoB,EACpB,IAAY,EACG,EAAE;IACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7D,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;SAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC","sourcesContent":["export const rawValueToPercentage = (\n raw: string | number,\n base: number\n): number | null => {\n if (typeof raw === 'number' && !Number.isNaN(raw)) {\n return (raw / base) * 100;\n } else if (typeof raw === 'string' && /^[0-9.]+$/.test(raw)) {\n const val = Number(raw);\n return (val / base) * 100;\n } else if (typeof raw === 'string' && /^[0-9.]+%$/.test(raw)) {\n return Number(raw.substring(0, raw.length - 1));\n } else if (typeof raw === 'string' && /^[0-9.]+px$/.test(raw)) {\n const val = Number(raw.substring(0, raw.length - 2));\n return (val / base) * 100;\n } else {\n return null;\n }\n};\n"]}