@vscode-elements/elements 2.0.0-pre.3 → 2.0.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 (162) hide show
  1. package/custom-elements.json +1038 -855
  2. package/dist/bundled.js +388 -292
  3. package/dist/includes/VscElement.d.ts.map +1 -1
  4. package/dist/includes/VscElement.js +2 -5
  5. package/dist/includes/VscElement.js.map +1 -1
  6. package/dist/includes/form-button-widget/base.styles.d.ts.map +1 -1
  7. package/dist/includes/form-button-widget/base.styles.js +8 -9
  8. package/dist/includes/form-button-widget/base.styles.js.map +1 -1
  9. package/dist/includes/test-helpers.d.ts +11 -0
  10. package/dist/includes/test-helpers.d.ts.map +1 -1
  11. package/dist/includes/test-helpers.js +36 -0
  12. package/dist/includes/test-helpers.js.map +1 -1
  13. package/dist/includes/vscode-select/styles.d.ts.map +1 -1
  14. package/dist/includes/vscode-select/styles.js +4 -3
  15. package/dist/includes/vscode-select/styles.js.map +1 -1
  16. package/dist/vscode-badge/vscode-badge.js +1 -1
  17. package/dist/vscode-badge/vscode-badge.js.map +1 -1
  18. package/dist/vscode-badge/vscode-badge.styles.d.ts.map +1 -1
  19. package/dist/vscode-badge/vscode-badge.styles.js +8 -4
  20. package/dist/vscode-badge/vscode-badge.styles.js.map +1 -1
  21. package/dist/vscode-button/vscode-button.d.ts +0 -2
  22. package/dist/vscode-button/vscode-button.d.ts.map +1 -1
  23. package/dist/vscode-button/vscode-button.js +10 -24
  24. package/dist/vscode-button/vscode-button.js.map +1 -1
  25. package/dist/vscode-button/vscode-button.styles.d.ts.map +1 -1
  26. package/dist/vscode-button/vscode-button.styles.js +31 -18
  27. package/dist/vscode-button/vscode-button.styles.js.map +1 -1
  28. package/dist/vscode-button-group/vscode-button-group.d.ts.map +1 -1
  29. package/dist/vscode-button-group/vscode-button-group.js +2 -3
  30. package/dist/vscode-button-group/vscode-button-group.js.map +1 -1
  31. package/dist/vscode-button-group/vscode-button-group.styles.d.ts.map +1 -1
  32. package/dist/vscode-button-group/vscode-button-group.styles.js +17 -13
  33. package/dist/vscode-button-group/vscode-button-group.styles.js.map +1 -1
  34. package/dist/vscode-checkbox/vscode-checkbox.d.ts.map +1 -1
  35. package/dist/vscode-checkbox/vscode-checkbox.js +0 -10
  36. package/dist/vscode-checkbox/vscode-checkbox.js.map +1 -1
  37. package/dist/vscode-collapsible/vscode-collapsible.d.ts +11 -2
  38. package/dist/vscode-collapsible/vscode-collapsible.d.ts.map +1 -1
  39. package/dist/vscode-collapsible/vscode-collapsible.js +16 -4
  40. package/dist/vscode-collapsible/vscode-collapsible.js.map +1 -1
  41. package/dist/vscode-context-menu/vscode-context-menu.d.ts +0 -1
  42. package/dist/vscode-context-menu/vscode-context-menu.d.ts.map +1 -1
  43. package/dist/vscode-context-menu/vscode-context-menu.js +0 -18
  44. package/dist/vscode-context-menu/vscode-context-menu.js.map +1 -1
  45. package/dist/vscode-context-menu/vscode-context-menu.styles.js +4 -4
  46. package/dist/vscode-context-menu/vscode-context-menu.styles.js.map +1 -1
  47. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js +4 -4
  48. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js.map +1 -1
  49. package/dist/vscode-divider/vscode-divider.js +1 -1
  50. package/dist/vscode-divider/vscode-divider.js.map +1 -1
  51. package/dist/vscode-divider/vscode-divider.styles.d.ts.map +1 -1
  52. package/dist/vscode-divider/vscode-divider.styles.js +5 -2
  53. package/dist/vscode-divider/vscode-divider.styles.js.map +1 -1
  54. package/dist/vscode-form-container/vscode-form-container.d.ts +0 -5
  55. package/dist/vscode-form-container/vscode-form-container.d.ts.map +1 -1
  56. package/dist/vscode-form-container/vscode-form-container.js +0 -63
  57. package/dist/vscode-form-container/vscode-form-container.js.map +1 -1
  58. package/dist/vscode-label/vscode-label.styles.js +6 -6
  59. package/dist/vscode-label/vscode-label.styles.js.map +1 -1
  60. package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
  61. package/dist/vscode-multi-select/vscode-multi-select.js +0 -7
  62. package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
  63. package/dist/vscode-progress-ring/vscode-progress-ring.styles.d.ts.map +1 -1
  64. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js +0 -1
  65. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js.map +1 -1
  66. package/dist/vscode-radio/vscode-radio.d.ts +0 -1
  67. package/dist/vscode-radio/vscode-radio.d.ts.map +1 -1
  68. package/dist/vscode-radio/vscode-radio.js +0 -14
  69. package/dist/vscode-radio/vscode-radio.js.map +1 -1
  70. package/dist/vscode-scrollable/vscode-scrollable.d.ts +0 -1
  71. package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
  72. package/dist/vscode-scrollable/vscode-scrollable.js +7 -9
  73. package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
  74. package/dist/vscode-single-select/vscode-single-select.d.ts +0 -1
  75. package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
  76. package/dist/vscode-single-select/vscode-single-select.js +0 -10
  77. package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
  78. package/dist/vscode-tab-header/vscode-tab-header.d.ts +5 -6
  79. package/dist/vscode-tab-header/vscode-tab-header.d.ts.map +1 -1
  80. package/dist/vscode-tab-header/vscode-tab-header.js +5 -6
  81. package/dist/vscode-tab-header/vscode-tab-header.js.map +1 -1
  82. package/dist/vscode-tab-header/vscode-tab-header.styles.d.ts.map +1 -1
  83. package/dist/vscode-tab-header/vscode-tab-header.styles.js +19 -12
  84. package/dist/vscode-tab-header/vscode-tab-header.styles.js.map +1 -1
  85. package/dist/vscode-tab-panel/vscode-tab-panel.d.ts +2 -2
  86. package/dist/vscode-tab-panel/vscode-tab-panel.js +2 -2
  87. package/dist/vscode-tab-panel/vscode-tab-panel.js.map +1 -1
  88. package/dist/vscode-tab-panel/vscode-tab-panel.styles.js +2 -2
  89. package/dist/vscode-tab-panel/vscode-tab-panel.styles.js.map +1 -1
  90. package/dist/vscode-table/vscode-table.d.ts +3 -7
  91. package/dist/vscode-table/vscode-table.d.ts.map +1 -1
  92. package/dist/vscode-table/vscode-table.js +3 -7
  93. package/dist/vscode-table/vscode-table.js.map +1 -1
  94. package/dist/vscode-table/vscode-table.styles.d.ts.map +1 -1
  95. package/dist/vscode-table/vscode-table.styles.js +17 -5
  96. package/dist/vscode-table/vscode-table.styles.js.map +1 -1
  97. package/dist/vscode-table-body/vscode-table-body.d.ts +0 -2
  98. package/dist/vscode-table-body/vscode-table-body.d.ts.map +1 -1
  99. package/dist/vscode-table-body/vscode-table-body.js +0 -2
  100. package/dist/vscode-table-body/vscode-table-body.js.map +1 -1
  101. package/dist/vscode-table-cell/vscode-table-cell.d.ts +4 -4
  102. package/dist/vscode-table-cell/vscode-table-cell.js +4 -4
  103. package/dist/vscode-table-cell/vscode-table-cell.js.map +1 -1
  104. package/dist/vscode-table-cell/vscode-table-cell.styles.d.ts.map +1 -1
  105. package/dist/vscode-table-cell/vscode-table-cell.styles.js +7 -4
  106. package/dist/vscode-table-cell/vscode-table-cell.styles.js.map +1 -1
  107. package/dist/vscode-table-header/vscode-table-header.d.ts +1 -1
  108. package/dist/vscode-table-header/vscode-table-header.js +1 -1
  109. package/dist/vscode-table-header/vscode-table-header.js.map +1 -1
  110. package/dist/vscode-table-header/vscode-table-header.styles.d.ts.map +1 -1
  111. package/dist/vscode-table-header/vscode-table-header.styles.js +4 -1
  112. package/dist/vscode-table-header/vscode-table-header.styles.js.map +1 -1
  113. package/dist/vscode-table-header-cell/vscode-table-header-cell.d.ts +3 -3
  114. package/dist/vscode-table-header-cell/vscode-table-header-cell.js +3 -3
  115. package/dist/vscode-table-header-cell/vscode-table-header-cell.js.map +1 -1
  116. package/dist/vscode-table-header-cell/vscode-table-header-cell.styles.js +3 -3
  117. package/dist/vscode-table-header-cell/vscode-table-header-cell.styles.js.map +1 -1
  118. package/dist/vscode-table-row/vscode-table-row.d.ts +1 -1
  119. package/dist/vscode-table-row/vscode-table-row.js +1 -1
  120. package/dist/vscode-table-row/vscode-table-row.js.map +1 -1
  121. package/dist/vscode-table-row/vscode-table-row.styles.d.ts.map +1 -1
  122. package/dist/vscode-table-row/vscode-table-row.styles.js +4 -1
  123. package/dist/vscode-table-row/vscode-table-row.styles.js.map +1 -1
  124. package/dist/vscode-tabs/vscode-tabs.d.ts +5 -7
  125. package/dist/vscode-tabs/vscode-tabs.d.ts.map +1 -1
  126. package/dist/vscode-tabs/vscode-tabs.js +12 -18
  127. package/dist/vscode-tabs/vscode-tabs.js.map +1 -1
  128. package/dist/vscode-tabs/vscode-tabs.styles.d.ts.map +1 -1
  129. package/dist/vscode-tabs/vscode-tabs.styles.js +10 -5
  130. package/dist/vscode-tabs/vscode-tabs.styles.js.map +1 -1
  131. package/dist/vscode-textarea/vscode-textarea.d.ts.map +1 -1
  132. package/dist/vscode-textarea/vscode-textarea.js +2 -10
  133. package/dist/vscode-textarea/vscode-textarea.js.map +1 -1
  134. package/dist/vscode-textarea/vscode-textarea.styles.js +1 -1
  135. package/dist/vscode-textarea/vscode-textarea.styles.js.map +1 -1
  136. package/dist/vscode-textfield/vscode-textfield.d.ts.map +1 -1
  137. package/dist/vscode-textfield/vscode-textfield.js +31 -35
  138. package/dist/vscode-textfield/vscode-textfield.js.map +1 -1
  139. package/dist/vscode-textfield/vscode-textfield.styles.d.ts.map +1 -1
  140. package/dist/vscode-textfield/vscode-textfield.styles.js +8 -3
  141. package/dist/vscode-textfield/vscode-textfield.styles.js.map +1 -1
  142. package/dist/vscode-toolbar-container/vscode-toolbar-container.js +1 -1
  143. package/dist/vscode-toolbar-container/vscode-toolbar-container.js.map +1 -1
  144. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.d.ts.map +1 -1
  145. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js +4 -0
  146. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js.map +1 -1
  147. package/dist/vscode-tree/vscode-tree.d.ts +18 -17
  148. package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
  149. package/dist/vscode-tree/vscode-tree.js +32 -36
  150. package/dist/vscode-tree/vscode-tree.js.map +1 -1
  151. package/dist/vscode-tree/vscode-tree.styles.d.ts.map +1 -1
  152. package/dist/vscode-tree/vscode-tree.styles.js +13 -6
  153. package/dist/vscode-tree/vscode-tree.styles.js.map +1 -1
  154. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
  155. package/dist/vscode-tree-item/vscode-tree-item.js +2 -2
  156. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
  157. package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts.map +1 -1
  158. package/dist/vscode-tree-item/vscode-tree-item.styles.js +25 -10
  159. package/dist/vscode-tree-item/vscode-tree-item.styles.js.map +1 -1
  160. package/package.json +1 -1
  161. package/vscode.css-custom-data.json +35 -31
  162. package/vscode.html-custom-data.json +57 -68
@@ -6,13 +6,25 @@ const styles = [
6
6
  defaultStyles,
7
7
  css `
8
8
  :host {
9
+ cursor: pointer;
10
+ display: inline-block;
11
+ width: auto;
12
+ }
13
+
14
+ .root {
9
15
  background-color: var(--vscode-button-background, #0078d4);
16
+ border-bottom-left-radius: var(--vsc-border-left-radius, 2px);
17
+ border-bottom-right-radius: var(--vsc-border-right-radius, 2px);
18
+ border-bottom-width: 1px;
10
19
  border-color: var(--vscode-button-border, transparent);
20
+ border-left-width: var(--vsc-border-left-width, 1px);
21
+ border-right-width: var(--vsc-border-right-width, 1px);
11
22
  border-style: solid;
12
- border-radius: 2px;
13
- border-width: 1px;
23
+ border-top-left-radius: var(--vsc-border-left-radius, 2px);
24
+ border-top-right-radius: var(--vsc-border-right-radius, 2px);
25
+ border-top-width: 1px;
26
+ box-sizing: border-box;
14
27
  color: var(--vscode-button-foreground, #ffffff);
15
- cursor: pointer;
16
28
  display: inline-flex;
17
29
  font-family: var(--vscode-font-family, ${defaultFontStack});
18
30
  font-size: var(--vscode-font-size, 13px);
@@ -22,9 +34,10 @@ const styles = [
22
34
  padding: 0;
23
35
  user-select: none;
24
36
  white-space: nowrap;
37
+ width: 100%;
25
38
  }
26
39
 
27
- :host([secondary]) {
40
+ :host([secondary]) .root {
28
41
  color: var(--vscode-button-secondaryForeground, #cccccc);
29
42
  background-color: var(--vscode-button-secondaryBackground, #313131);
30
43
  border-color: var(
@@ -39,19 +52,19 @@ const styles = [
39
52
  pointer-events: none;
40
53
  }
41
54
 
42
- :host(:hover) {
55
+ :host(:hover) .root {
43
56
  background-color: var(--vscode-button-hoverBackground, #026ec1);
44
57
  }
45
58
 
46
- :host([disabled]:hover) {
59
+ :host([disabled]:hover) .root {
47
60
  background-color: var(--vscode-button-background, #0078d4);
48
61
  }
49
62
 
50
- :host([secondary]:hover) {
63
+ :host([secondary]:hover) .root {
51
64
  background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);
52
65
  }
53
66
 
54
- :host([secondary][disabled]:hover) {
67
+ :host([secondary][disabled]:hover) .root {
55
68
  background-color: var(--vscode-button-secondaryBackground, #313131);
56
69
  }
57
70
 
@@ -60,22 +73,22 @@ const styles = [
60
73
  outline: none;
61
74
  }
62
75
 
63
- :host(:focus) {
76
+ :host(:focus) .root {
64
77
  background-color: var(--vscode-button-hoverBackground, #026ec1);
65
78
  outline: 1px solid var(--vscode-focusBorder, #0078d4);
66
79
  outline-offset: 2px;
67
80
  }
68
81
 
69
- :host([disabled]:focus) {
82
+ :host([disabled]:focus) .root {
70
83
  background-color: var(--vscode-button-background, #0078d4);
71
84
  outline: 0;
72
85
  }
73
86
 
74
- :host([secondary]:focus) {
87
+ :host([secondary]:focus) .root {
75
88
  background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);
76
89
  }
77
90
 
78
- :host([secondary][disabled]:focus) {
91
+ :host([secondary][disabled]:focus) .root {
79
92
  background-color: var(--vscode-button-secondaryBackground, #313131);
80
93
  }
81
94
 
@@ -97,22 +110,22 @@ const styles = [
97
110
  color: inherit;
98
111
  }
99
112
 
100
- .wrapper {
113
+ .content {
101
114
  align-items: center;
102
115
  box-sizing: border-box;
103
116
  display: flex;
104
117
  justify-content: center;
105
118
  position: relative;
106
- width: var(--wrapper-width, 100%);
119
+ width: 100%;
107
120
  height: 100%;
108
121
  padding: 1px 13px;
109
122
  }
110
123
 
111
- :host(:empty) .wrapper,
112
- :host([icon-only]) .wrapper {
124
+ :host(:empty) .content,
125
+ :host([icon-only]) .content {
113
126
  min-height: 24px;
114
127
  min-width: 16px;
115
- padding: 1px 5px;
128
+ padding: 1px 4px;
116
129
  }
117
130
 
118
131
  slot {
@@ -137,7 +150,7 @@ const styles = [
137
150
  }
138
151
 
139
152
  .divider {
140
- display: var(--divider-display, none);
153
+ display: var(--vsc-divider-display, none);
141
154
  background-color: transparent;
142
155
  padding: 4px 0;
143
156
  box-sizing: border-box;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button.styles.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAkB,SAAS,EAAC,MAAM,KAAK,CAAC;AACnD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;+CAU0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6J5D;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup, unsafeCSS} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\nimport {getDefaultFontStack} from '../includes/helpers.js';\n\nconst defaultFontStack = unsafeCSS(getDefaultFontStack());\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n background-color: var(--vscode-button-background, #0078d4);\n border-color: var(--vscode-button-border, transparent);\n border-style: solid;\n border-radius: 2px;\n border-width: 1px;\n color: var(--vscode-button-foreground, #ffffff);\n cursor: pointer;\n display: inline-flex;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 22px;\n overflow: hidden;\n padding: 0;\n user-select: none;\n white-space: nowrap;\n }\n\n :host([secondary]) {\n color: var(--vscode-button-secondaryForeground, #cccccc);\n background-color: var(--vscode-button-secondaryBackground, #313131);\n border-color: var(\n --vscode-button-border,\n var(--vscode-button-secondaryBackground, rgba(255, 255, 255, 0.07))\n );\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 0.4;\n pointer-events: none;\n }\n\n :host(:hover) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([disabled]:hover) {\n background-color: var(--vscode-button-background, #0078d4);\n }\n\n :host([secondary]:hover) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:hover) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host(:focus),\n :host(:active) {\n outline: none;\n }\n\n :host(:focus) {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n outline: 1px solid var(--vscode-focusBorder, #0078d4);\n outline-offset: 2px;\n }\n\n :host([disabled]:focus) {\n background-color: var(--vscode-button-background, #0078d4);\n outline: 0;\n }\n\n :host([secondary]:focus) {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:focus) {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n ::slotted(*) {\n display: inline-block;\n margin-left: 4px;\n margin-right: 4px;\n }\n\n ::slotted(*:first-child) {\n margin-left: 0;\n }\n\n ::slotted(*:last-child) {\n margin-right: 0;\n }\n\n ::slotted(vscode-icon) {\n color: inherit;\n }\n\n .wrapper {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n position: relative;\n width: var(--wrapper-width, 100%);\n height: 100%;\n padding: 1px 13px;\n }\n\n :host(:empty) .wrapper,\n :host([icon-only]) .wrapper {\n min-height: 24px;\n min-width: 16px;\n padding: 1px 5px;\n }\n\n slot {\n align-items: center;\n display: flex;\n height: 100%;\n }\n\n .icon,\n .icon-after {\n color: inherit;\n display: block;\n }\n\n :host(:not(:empty)) .icon {\n margin-right: 3px;\n }\n\n :host(:not(:empty)) .icon-after,\n :host([icon]) .icon-after {\n margin-left: 3px;\n }\n\n .divider {\n display: var(--divider-display, none);\n background-color: transparent;\n padding: 4px 0;\n box-sizing: border-box;\n }\n\n :host(:hover) .divider,\n :host(:focus) .divider {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([secondary]) .divider {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host([secondary]:hover) .divider,\n :host([secondary]:focus) .divider {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n .divider > div {\n background-color: var(\n --vscode-button-separator,\n rgba(255, 255, 255, 0.4)\n );\n height: 100%;\n width: 1px;\n margin: 0;\n }\n\n :host([secondary]) .divider > div {\n background-color: var(--vscode-button-secondaryForeground, #cccccc);\n opacity: 0.4;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-button.styles.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAkB,SAAS,EAAC,MAAM,KAAK,CAAC;AACnD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAE3D,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,EAAE,CAAC,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;+CAsB0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8J5D;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup, unsafeCSS} from 'lit';\nimport defaultStyles from '../includes/default.styles.js';\nimport {getDefaultFontStack} from '../includes/helpers.js';\n\nconst defaultFontStack = unsafeCSS(getDefaultFontStack());\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n cursor: pointer;\n display: inline-block;\n width: auto;\n }\n\n .root {\n background-color: var(--vscode-button-background, #0078d4);\n border-bottom-left-radius: var(--vsc-border-left-radius, 2px);\n border-bottom-right-radius: var(--vsc-border-right-radius, 2px);\n border-bottom-width: 1px;\n border-color: var(--vscode-button-border, transparent);\n border-left-width: var(--vsc-border-left-width, 1px);\n border-right-width: var(--vsc-border-right-width, 1px);\n border-style: solid;\n border-top-left-radius: var(--vsc-border-left-radius, 2px);\n border-top-right-radius: var(--vsc-border-right-radius, 2px);\n border-top-width: 1px;\n box-sizing: border-box;\n color: var(--vscode-button-foreground, #ffffff);\n display: inline-flex;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 22px;\n overflow: hidden;\n padding: 0;\n user-select: none;\n white-space: nowrap;\n width: 100%;\n }\n\n :host([secondary]) .root {\n color: var(--vscode-button-secondaryForeground, #cccccc);\n background-color: var(--vscode-button-secondaryBackground, #313131);\n border-color: var(\n --vscode-button-border,\n var(--vscode-button-secondaryBackground, rgba(255, 255, 255, 0.07))\n );\n }\n\n :host([disabled]) {\n cursor: default;\n opacity: 0.4;\n pointer-events: none;\n }\n\n :host(:hover) .root {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([disabled]:hover) .root {\n background-color: var(--vscode-button-background, #0078d4);\n }\n\n :host([secondary]:hover) .root {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:hover) .root {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host(:focus),\n :host(:active) {\n outline: none;\n }\n\n :host(:focus) .root {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n outline: 1px solid var(--vscode-focusBorder, #0078d4);\n outline-offset: 2px;\n }\n\n :host([disabled]:focus) .root {\n background-color: var(--vscode-button-background, #0078d4);\n outline: 0;\n }\n\n :host([secondary]:focus) .root {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n :host([secondary][disabled]:focus) .root {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n ::slotted(*) {\n display: inline-block;\n margin-left: 4px;\n margin-right: 4px;\n }\n\n ::slotted(*:first-child) {\n margin-left: 0;\n }\n\n ::slotted(*:last-child) {\n margin-right: 0;\n }\n\n ::slotted(vscode-icon) {\n color: inherit;\n }\n\n .content {\n align-items: center;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n position: relative;\n width: 100%;\n height: 100%;\n padding: 1px 13px;\n }\n\n :host(:empty) .content,\n :host([icon-only]) .content {\n min-height: 24px;\n min-width: 16px;\n padding: 1px 4px;\n }\n\n slot {\n align-items: center;\n display: flex;\n height: 100%;\n }\n\n .icon,\n .icon-after {\n color: inherit;\n display: block;\n }\n\n :host(:not(:empty)) .icon {\n margin-right: 3px;\n }\n\n :host(:not(:empty)) .icon-after,\n :host([icon]) .icon-after {\n margin-left: 3px;\n }\n\n .divider {\n display: var(--vsc-divider-display, none);\n background-color: transparent;\n padding: 4px 0;\n box-sizing: border-box;\n }\n\n :host(:hover) .divider,\n :host(:focus) .divider {\n background-color: var(--vscode-button-hoverBackground, #026ec1);\n }\n\n :host([secondary]) .divider {\n background-color: var(--vscode-button-secondaryBackground, #313131);\n }\n\n :host([secondary]:hover) .divider,\n :host([secondary]:focus) .divider {\n background-color: var(--vscode-button-secondaryHoverBackground, #3c3c3c);\n }\n\n .divider > div {\n background-color: var(\n --vscode-button-separator,\n rgba(255, 255, 255, 0.4)\n );\n height: 100%;\n width: 1px;\n margin: 0;\n }\n\n :host([secondary]) .divider > div {\n background-color: var(--vscode-button-secondaryForeground, #cccccc);\n opacity: 0.4;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AAEzC,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEvB,MAAM,IAAI,cAAc;CAGlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;CACF"}
1
+ {"version":3,"file":"vscode-button-group.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,cAAc,EAAC,MAAM,KAAK,CAAC;AACzC,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGpE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEvB,MAAM,IAAI,cAAc;CAGlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;CACF"}
@@ -5,8 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { html } from 'lit';
8
- import { customElement } from 'lit/decorators.js';
9
- import { VscElement } from '../includes/VscElement.js';
8
+ import { customElement, VscElement } from '../includes/VscElement.js';
10
9
  import styles from './vscode-button-group.styles.js';
11
10
  /**
12
11
  * Shows a split button, including several components in a single button. Commonly used to show a button with a dropdown to the right.
@@ -27,7 +26,7 @@ import styles from './vscode-button-group.styles.js';
27
26
  */
28
27
  let VscodeButtonGroup = class VscodeButtonGroup extends VscElement {
29
28
  render() {
30
- return html ` <slot></slot> `;
29
+ return html `<div class="root"><slot></slot></div>`;
31
30
  }
32
31
  };
33
32
  VscodeButtonGroup.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,OAAO,MAAM,MAAM,iCAAiC,CAAC;AAErD;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAGtC,MAAM;QACb,OAAO,IAAI,CAAA,iBAAiB,CAAC;IAC/B,CAAC;;AAJe,wBAAM,GAAG,MAAM,AAAT,CAAU;AADrB,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAM7B","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {customElement} from 'lit/decorators.js';\nimport {VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-button-group.styles.js';\n\n/**\n * 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 * @tag vscode-button-group\n *\n * @cssprop [--vscode-button-background=#0078d4]\n * @cssprop [--vscode-button-foreground=#ffffff]\n * @cssprop [--vscode-button-border=var(--vscode-button-background, rgba(255, 255, 255, 0.07))]\n * @cssprop [--vscode-button-hoverBackground=#026ec1]\n * @cssprop [--vscode-font-family=sans-serif] - A sans-serif font type depends on the host OS.\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-button-secondaryForeground=#cccccc]\n * @cssprop [--vscode-button-secondaryBackground=#313131]\n * @cssprop [--vscode-button-secondaryHoverBackground=#3c3c3c]\n * @cssprop [--vscode-focusBorder=#0078d4]\n */\n@customElement('vscode-button-group')\nexport class VscodeButtonGroup extends VscElement {\n static override styles = styles;\n\n override render(): TemplateResult {\n return html` <slot></slot> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-button-group': VscodeButtonGroup;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-button-group.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,iCAAiC,CAAC;AAErD;;;;;;;;;;;;;;;;GAgBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAGtC,MAAM;QACb,OAAO,IAAI,CAAA,uCAAuC,CAAC;IACrD,CAAC;;AAJe,wBAAM,GAAG,MAAM,AAAT,CAAU;AADrB,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAM7B","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-button-group.styles.js';\n\n/**\n * 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 * @tag vscode-button-group\n *\n * @cssprop [--vscode-button-background=#0078d4]\n * @cssprop [--vscode-button-foreground=#ffffff]\n * @cssprop [--vscode-button-border=var(--vscode-button-background, rgba(255, 255, 255, 0.07))]\n * @cssprop [--vscode-button-hoverBackground=#026ec1]\n * @cssprop [--vscode-font-family=sans-serif] - A sans-serif font type depends on the host OS.\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-button-secondaryForeground=#cccccc]\n * @cssprop [--vscode-button-secondaryBackground=#313131]\n * @cssprop [--vscode-button-secondaryHoverBackground=#3c3c3c]\n * @cssprop [--vscode-focusBorder=#0078d4]\n */\n@customElement('vscode-button-group')\nexport class VscodeButtonGroup extends VscElement {\n static override styles = styles;\n\n override render(): TemplateResult {\n return html`<div class=\"root\"><slot></slot></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-button-group': VscodeButtonGroup;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAIxC,QAAA,MAAM,MAAM,EAAE,cA8Bb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-button-group.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAC,MAAM,KAAK,CAAC;AAIxC,QAAA,MAAM,MAAM,EAAE,cAkCb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -4,31 +4,35 @@ const styles = [
4
4
  defaultStyles,
5
5
  css `
6
6
  :host {
7
- display: inline-flex;
7
+ display: inline-block;
8
+ }
9
+
10
+ .root {
8
11
  align-items: stretch;
9
- padding: 0;
10
- border: none;
11
- overflow: hidden;
12
+ display: flex;
13
+ width: 100%;
12
14
  }
13
15
 
14
16
  ::slotted(vscode-button:not(:first-child)) {
15
- border-top-left-radius: 0;
16
- border-bottom-left-radius: 0;
17
- border-left-width: 0;
17
+ --vsc-border-left-width: 0;
18
+ --vsc-border-left-radius: 0;
19
+ --vsc-border-left-width: 0;
18
20
  }
19
21
 
20
22
  ::slotted(vscode-button:not(:last-child)) {
21
- --divider-display: block;
22
- --wrapper-width: calc(100% - 1px);
23
-
24
- border-top-right-radius: 0;
25
- border-bottom-right-radius: 0;
26
- border-right-width: 0;
23
+ --vsc-divider-display: block;
24
+ --vsc-border-right-width: 0;
25
+ --vsc-border-right-radius: 0;
26
+ --vsc-border-right-width: 0;
27
27
  }
28
28
 
29
29
  ::slotted(vscode-button:focus) {
30
30
  z-index: 1;
31
31
  }
32
+
33
+ ::slotted(vscode-button:not(:empty)) {
34
+ width: 100%;
35
+ }
32
36
  `,
33
37
  ];
34
38
  export default styles;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button-group.styles.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AAExC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\n\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-flex;\n align-items: stretch;\n padding: 0;\n border: none;\n overflow: hidden;\n }\n\n ::slotted(vscode-button:not(:first-child)) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n border-left-width: 0;\n }\n\n ::slotted(vscode-button:not(:last-child)) {\n --divider-display: block;\n --wrapper-width: calc(100% - 1px);\n\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-right-width: 0;\n }\n\n ::slotted(vscode-button:focus) {\n z-index: 1;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-button-group.styles.js","sourceRoot":"","sources":["../../src/vscode-button-group/vscode-button-group.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAiB,MAAM,KAAK,CAAC;AAExC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,MAAM,MAAM,GAAmB;IAC7B,aAAa;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC","sourcesContent":["import {css, CSSResultGroup} from 'lit';\n\nimport defaultStyles from '../includes/default.styles.js';\n\nconst styles: CSSResultGroup = [\n defaultStyles,\n css`\n :host {\n display: inline-block;\n }\n\n .root {\n align-items: stretch;\n display: flex;\n width: 100%;\n }\n\n ::slotted(vscode-button:not(:first-child)) {\n --vsc-border-left-width: 0;\n --vsc-border-left-radius: 0;\n --vsc-border-left-width: 0;\n }\n\n ::slotted(vscode-button:not(:last-child)) {\n --vsc-divider-display: block;\n --vsc-border-right-width: 0;\n --vsc-border-right-radius: 0;\n --vsc-border-right-width: 0;\n }\n\n ::slotted(vscode-button:focus) {\n z-index: 1;\n }\n\n ::slotted(vscode-button:not(:empty)) {\n width: 100%;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-checkbox.d.ts","sourceRoot":"","sources":["../../src/vscode-checkbox/vscode-checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,gBAAgB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAIhF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wDAAwD,CAAC;AAG5F,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,cACX,SAAQ,mBACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,+BAAU;IAEhC,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF;;;;OAIG;IAEM,SAAS,UAAS;IAE3B,IACI,OAAO,CAAC,MAAM,EAAE,OAAO,EAI1B;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IAEH,cAAc,UAAS;IAGvB,OAAO,UAAS;IAGhB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;;;;OAMG;IAEH,KAAK,SAAM;IAGX,QAAQ,UAAS;IAGjB,aAAa,UAAS;IAEtB,IACI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAI3B;IACD,IAAI,QAAQ,IALS,OAAO,CAO3B;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAEhB,IAAI,SAAc;IAElB,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;OAKG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;;IAShB,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAI5B,MAAM,CAEb,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACnE,IAAI;IAQP,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IAOP,OAAO,CAAC,QAAQ,CAAoB;IAEpC,OAAO,CAAC,UAAU,CAAmB;IAOrC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY,CAQlB;IAEF,OAAO,CAAC,cAAc,CAYpB;IAEF,OAAO,CAAC,eAAe;IAcd,MAAM,IAAI,cAAc;CAiDlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"vscode-checkbox.d.ts","sourceRoot":"","sources":["../../src/vscode-checkbox/vscode-checkbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,gBAAgB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAIhF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wDAAwD,CAAC;AAG5F,OAAO,EAAC,qBAAqB,EAAC,MAAM,sCAAsC,CAAC;;AAE3E;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBACa,cACX,SAAQ,mBACR,YAAW,qBAAqB;IAEhC,OAAgB,MAAM,+BAAU;IAEhC,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAE7B,gBAAgB;IAChB,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF;;;;OAIG;IAEM,SAAS,UAAS;IAE3B,IACI,OAAO,CAAC,MAAM,EAAE,OAAO,EAI1B;IACD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IAEH,cAAc,UAAS;IAGvB,OAAO,UAAS;IAGhB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;;;;OAMG;IAEH,KAAK,SAAM;IAGX,QAAQ,UAAS;IAGjB,aAAa,UAAS;IAEtB,IACI,QAAQ,CAAC,MAAM,EAAE,OAAO,EAI3B;IACD,IAAI,QAAQ,IALS,OAAO,CAO3B;IACD,OAAO,CAAC,SAAS,CAAS;IAE1B,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAED,gBAAgB;IAEhB,IAAI,SAAc;IAElB,IAAI,QAAQ,IAAI,aAAa,CAE5B;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;OAKG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;OAMG;IACH,cAAc,IAAI,OAAO;;IAShB,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAI5B,MAAM,CAEb,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACnE,IAAI;IAQP,gBAAgB;IAChB,iBAAiB,IAAI,IAAI;IAIzB,gBAAgB;IAChB,wBAAwB,CACtB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;IAOP,OAAO,CAAC,QAAQ,CAAoB;IAEpC,OAAO,CAAC,UAAU,CAAmB;IAOrC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,YAAY,CAQlB;IAEF,OAAO,CAAC,cAAc,CAYpB;IAEF,OAAO,CAAC,eAAe;IAcd,MAAM,IAAI,cAAc;CAiDlC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,cAAc,CAAC;KACnC;CACF"}
@@ -184,16 +184,6 @@ let VscodeCheckbox = class VscodeCheckbox extends LabelledCheckboxOrRadioMixin(F
184
184
  this._setActualFormValue();
185
185
  this._manageRequired();
186
186
  this.dispatchEvent(new Event('change', { bubbles: true }));
187
- /** @deprecated */
188
- this.dispatchEvent(new CustomEvent('vsc-change', {
189
- detail: {
190
- checked: this.checked,
191
- label: this.label,
192
- value: this.value,
193
- },
194
- bubbles: true,
195
- composed: true,
196
- }));
197
187
  }
198
188
  _manageRequired() {
199
189
  if (!this.checked && this.required) {
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-checkbox.js","sourceRoot":"","sources":["../../src/vscode-checkbox/vscode-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, LitElement, nothing, PropertyValueMap, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement} from '../includes/VscElement.js';\nimport {FormButtonWidgetBase} from '../includes/form-button-widget/FormButtonWidgetBase.js';\nimport {LabelledCheckboxOrRadioMixin} from '../includes/form-button-widget/LabelledCheckboxOrRadio.js';\nimport styles from './vscode-checkbox.styles.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\n\n/**\n * Allows users to select one or more options from a set. When participating in a form, it supports\n * the `:invalid` pseudo class. Otherwise the error styles can be applied through the `invalid`\n * property.\n *\n * @tag vscode-checkbox\n *\n * @attr name - Name which is used as a variable name in the data of the form-container.\n * @attr label - Attribute pair of the `label` property.\n * @prop label - Label text. It is only applied if component's innerHTML doesn't contain any text.\n *\n * @fires {Event} change - Dispatched when checked state is changed. The event is bubbled, so it can be listened on a parent element like the `CheckboxGroup`.\n * @fires {Event} invalid - Dispatched when the element is invalid and `checkValidity()` has been called or the form containing this element is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event)\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-settings-checkboxBackground=#313131]\n * @cssprop [--vscode-settings-checkboxBorder=#3c3c3c]\n * @cssprop [--vscode-settings-checkboxForeground=#cccccc]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-inputValidation-errorBackground=#5a1d1d]\n * @cssprop [--vscode-inputValidation-errorBorder=#be1100]\n */\n@customElement('vscode-checkbox')\nexport class VscodeCheckbox\n extends LabelledCheckboxOrRadioMixin(FormButtonWidgetBase)\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /** @internal */\n static formAssociated = true;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Automatically focus on the element when the page loads.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus)\n */\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n @property({type: Boolean, reflect: true})\n set checked(newVal: boolean) {\n this._checked = newVal;\n this._manageRequired();\n this.requestUpdate();\n }\n get checked(): boolean {\n return this._checked;\n }\n\n private _checked = false;\n\n /**\n * The element's initial checked state, which will be restored when the containing form is reset.\n */\n @property({type: Boolean, reflect: true, attribute: 'default-checked'})\n defaultChecked = false;\n\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n @property({reflect: true})\n name: string | undefined = undefined;\n\n /**\n * Associate a value to the checkbox. According to the native checkbox [specification](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value_2), If the component participates in a form:\n *\n * - If it is unchecked, the value will not be submitted.\n * - If it is checked but the value is not set, `on` will be submitted.\n * - If it is checked and value is set, the value will be submitted.\n */\n @property()\n value = '';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n @property({type: Boolean, reflect: true})\n indeterminate = false;\n\n @property({type: Boolean, reflect: true})\n set required(newVal: boolean) {\n this._required = newVal;\n this._manageRequired();\n this.requestUpdate();\n }\n get required() {\n return this._required;\n }\n private _required = false;\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** @internal */\n @property()\n type = 'checkbox';\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n get willValidate(): boolean {\n return this._internals.willValidate;\n }\n\n /**\n * Returns `true` if the element's value is valid; otherwise, it returns `false`.\n * If the element's value is invalid, an invalid event is triggered on the element.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity)\n */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /**\n * Returns `true` if the element's value is valid; otherwise, it returns `false`.\n * If the element's value is invalid, an invalid event is triggered on the element, and the\n * browser displays an error message to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity)\n */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.addEventListener('keydown', this._handleKeyDown);\n\n this.updateComplete.then(() => {\n this._manageRequired();\n this._setActualFormValue();\n });\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('keydown', this._handleKeyDown);\n }\n\n override update(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n super.update(changedProperties);\n\n if (changedProperties.has('checked')) {\n this.ariaChecked = this.checked ? 'true' : 'false';\n }\n }\n\n /** @internal */\n formResetCallback(): void {\n this.checked = this.defaultChecked;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n if (state) {\n this.checked = true;\n }\n }\n\n @query('#input')\n private _inputEl!: HTMLInputElement;\n\n private _internals: ElementInternals;\n\n // Sets the value of the control according to the native checkbox behavior.\n // - If the checkbox is unchecked, the value will be null, so the control will\n // excluded from the form.\n // - If the control is checked but the value is not set, the value will be \"on\".\n // - If the control is checked and value is set, the value won't be changed.\n private _setActualFormValue() {\n let actualValue: string | null = '';\n\n if (this.checked) {\n actualValue = !this.value ? 'on' : this.value;\n } else {\n actualValue = null;\n }\n\n this._internals.setFormValue(actualValue);\n }\n\n private _toggleState() {\n this.checked = !this.checked;\n this.indeterminate = false;\n this._setActualFormValue();\n this._manageRequired();\n this.dispatchEvent(new Event('change', {bubbles: true}));\n /** @deprecated */\n this.dispatchEvent(\n new CustomEvent('vsc-change', {\n detail: {\n checked: this.checked,\n label: this.label,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _handleClick = (ev: MouseEvent): void => {\n ev.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this._toggleState();\n };\n\n private _handleKeyDown = (ev: KeyboardEvent): void => {\n if (!this.disabled && (ev.key === 'Enter' || ev.key === ' ')) {\n ev.preventDefault();\n\n if (ev.key === ' ') {\n this._toggleState();\n }\n\n if (ev.key === 'Enter') {\n this._internals.form?.requestSubmit();\n }\n }\n };\n\n private _manageRequired() {\n if (!this.checked && this.required) {\n this._internals.setValidity(\n {\n valueMissing: true,\n },\n 'Please check this box if you want to proceed.',\n this._inputEl ?? undefined\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n override render(): TemplateResult {\n const iconClasses = classMap({\n icon: true,\n checked: this.checked,\n indeterminate: this.indeterminate,\n });\n const labelInnerClasses = classMap({\n 'label-inner': true,\n });\n\n const icon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n class=\"check-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14.431 3.323l-8.47 10-.79-.036-3.35-4.77.818-.574 2.978 4.24 8.051-9.506.764.646z\"\n />\n </svg>`;\n const check = this.checked && !this.indeterminate ? icon : nothing;\n const indeterminate = this.indeterminate\n ? html`<span class=\"indeterminate-icon\"></span>`\n : nothing;\n\n return html`\n <div class=\"wrapper\">\n <input\n ?autofocus=${this.autofocus}\n id=\"input\"\n class=\"checkbox\"\n type=\"checkbox\"\n ?checked=${this.checked}\n value=${this.value}\n >\n <div class=${iconClasses}>${indeterminate}${check}</div>\n <label for=\"input\" class=\"label\" @click=${this._handleClick}>\n <span class=${labelInnerClasses}>\n ${this._renderLabelAttribute()}\n <slot @slotchange=${this._handleSlotChange}></slot>\n </span>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-checkbox': VscodeCheckbox;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-checkbox.js","sourceRoot":"","sources":["../../src/vscode-checkbox/vscode-checkbox.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, LitElement, nothing, PropertyValueMap, TemplateResult} from 'lit';\nimport {property, query} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement} from '../includes/VscElement.js';\nimport {FormButtonWidgetBase} from '../includes/form-button-widget/FormButtonWidgetBase.js';\nimport {LabelledCheckboxOrRadioMixin} from '../includes/form-button-widget/LabelledCheckboxOrRadio.js';\nimport styles from './vscode-checkbox.styles.js';\nimport {AssociatedFormControl} from '../includes/AssociatedFormControl.js';\n\n/**\n * Allows users to select one or more options from a set. When participating in a form, it supports\n * the `:invalid` pseudo class. Otherwise the error styles can be applied through the `invalid`\n * property.\n *\n * @tag vscode-checkbox\n *\n * @attr name - Name which is used as a variable name in the data of the form-container.\n * @attr label - Attribute pair of the `label` property.\n * @prop label - Label text. It is only applied if component's innerHTML doesn't contain any text.\n *\n * @fires {Event} change - Dispatched when checked state is changed. The event is bubbled, so it can be listened on a parent element like the `CheckboxGroup`.\n * @fires {Event} invalid - Dispatched when the element is invalid and `checkValidity()` has been called or the form containing this element is submitted.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event)\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-foreground=#cccccc]\n * @cssprop [--vscode-settings-checkboxBackground=#313131]\n * @cssprop [--vscode-settings-checkboxBorder=#3c3c3c]\n * @cssprop [--vscode-settings-checkboxForeground=#cccccc]\n * @cssprop [--vscode-focusBorder=#0078d4]\n * @cssprop [--vscode-inputValidation-errorBackground=#5a1d1d]\n * @cssprop [--vscode-inputValidation-errorBorder=#be1100]\n */\n@customElement('vscode-checkbox')\nexport class VscodeCheckbox\n extends LabelledCheckboxOrRadioMixin(FormButtonWidgetBase)\n implements AssociatedFormControl\n{\n static override styles = styles;\n\n /** @internal */\n static formAssociated = true;\n\n /** @internal */\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n /**\n * Automatically focus on the element when the page loads.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus)\n */\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n @property({type: Boolean, reflect: true})\n set checked(newVal: boolean) {\n this._checked = newVal;\n this._manageRequired();\n this.requestUpdate();\n }\n get checked(): boolean {\n return this._checked;\n }\n\n private _checked = false;\n\n /**\n * The element's initial checked state, which will be restored when the containing form is reset.\n */\n @property({type: Boolean, reflect: true, attribute: 'default-checked'})\n defaultChecked = false;\n\n @property({type: Boolean, reflect: true})\n invalid = false;\n\n @property({reflect: true})\n name: string | undefined = undefined;\n\n /**\n * Associate a value to the checkbox. According to the native checkbox [specification](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#value_2), If the component participates in a form:\n *\n * - If it is unchecked, the value will not be submitted.\n * - If it is checked but the value is not set, `on` will be submitted.\n * - If it is checked and value is set, the value will be submitted.\n */\n @property()\n value = '';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n @property({type: Boolean, reflect: true})\n indeterminate = false;\n\n @property({type: Boolean, reflect: true})\n set required(newVal: boolean) {\n this._required = newVal;\n this._manageRequired();\n this.requestUpdate();\n }\n get required() {\n return this._required;\n }\n private _required = false;\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** @internal */\n @property()\n type = 'checkbox';\n\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n get willValidate(): boolean {\n return this._internals.willValidate;\n }\n\n /**\n * Returns `true` if the element's value is valid; otherwise, it returns `false`.\n * If the element's value is invalid, an invalid event is triggered on the element.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/checkValidity)\n */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /**\n * Returns `true` if the element's value is valid; otherwise, it returns `false`.\n * If the element's value is invalid, an invalid event is triggered on the element, and the\n * browser displays an error message to the user.\n *\n * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/reportValidity)\n */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n this.addEventListener('keydown', this._handleKeyDown);\n\n this.updateComplete.then(() => {\n this._manageRequired();\n this._setActualFormValue();\n });\n }\n\n override disconnectedCallback(): void {\n this.removeEventListener('keydown', this._handleKeyDown);\n }\n\n override update(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>\n ): void {\n super.update(changedProperties);\n\n if (changedProperties.has('checked')) {\n this.ariaChecked = this.checked ? 'true' : 'false';\n }\n }\n\n /** @internal */\n formResetCallback(): void {\n this.checked = this.defaultChecked;\n }\n\n /** @internal */\n formStateRestoreCallback(\n state: string,\n _mode: 'restore' | 'autocomplete'\n ): void {\n if (state) {\n this.checked = true;\n }\n }\n\n @query('#input')\n private _inputEl!: HTMLInputElement;\n\n private _internals: ElementInternals;\n\n // Sets the value of the control according to the native checkbox behavior.\n // - If the checkbox is unchecked, the value will be null, so the control will\n // excluded from the form.\n // - If the control is checked but the value is not set, the value will be \"on\".\n // - If the control is checked and value is set, the value won't be changed.\n private _setActualFormValue() {\n let actualValue: string | null = '';\n\n if (this.checked) {\n actualValue = !this.value ? 'on' : this.value;\n } else {\n actualValue = null;\n }\n\n this._internals.setFormValue(actualValue);\n }\n\n private _toggleState() {\n this.checked = !this.checked;\n this.indeterminate = false;\n this._setActualFormValue();\n this._manageRequired();\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n\n private _handleClick = (ev: MouseEvent): void => {\n ev.preventDefault();\n\n if (this.disabled) {\n return;\n }\n\n this._toggleState();\n };\n\n private _handleKeyDown = (ev: KeyboardEvent): void => {\n if (!this.disabled && (ev.key === 'Enter' || ev.key === ' ')) {\n ev.preventDefault();\n\n if (ev.key === ' ') {\n this._toggleState();\n }\n\n if (ev.key === 'Enter') {\n this._internals.form?.requestSubmit();\n }\n }\n };\n\n private _manageRequired() {\n if (!this.checked && this.required) {\n this._internals.setValidity(\n {\n valueMissing: true,\n },\n 'Please check this box if you want to proceed.',\n this._inputEl ?? undefined\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n override render(): TemplateResult {\n const iconClasses = classMap({\n icon: true,\n checked: this.checked,\n indeterminate: this.indeterminate,\n });\n const labelInnerClasses = classMap({\n 'label-inner': true,\n });\n\n const icon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n class=\"check-icon\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14.431 3.323l-8.47 10-.79-.036-3.35-4.77.818-.574 2.978 4.24 8.051-9.506.764.646z\"\n />\n </svg>`;\n const check = this.checked && !this.indeterminate ? icon : nothing;\n const indeterminate = this.indeterminate\n ? html`<span class=\"indeterminate-icon\"></span>`\n : nothing;\n\n return html`\n <div class=\"wrapper\">\n <input\n ?autofocus=${this.autofocus}\n id=\"input\"\n class=\"checkbox\"\n type=\"checkbox\"\n ?checked=${this.checked}\n value=${this.value}\n >\n <div class=${iconClasses}>${indeterminate}${check}</div>\n <label for=\"input\" class=\"label\" @click=${this._handleClick}>\n <span class=${labelInnerClasses}>\n ${this._renderLabelAttribute()}\n <slot @slotchange=${this._handleSlotChange}></slot>\n </span>\n </label>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-checkbox': VscodeCheckbox;\n }\n}\n"]}
@@ -25,9 +25,18 @@ export type VscCollapsibleToggleEvent = CustomEvent<{
25
25
  */
26
26
  export declare class VscodeCollapsible extends VscElement {
27
27
  static styles: import("lit").CSSResultGroup;
28
- /** Component heading text */
28
+ /**
29
+ * Component heading text
30
+ *
31
+ * @deprecated The `title` is a global HTML attribute and will unintentionally trigger a native
32
+ * tooltip on the component. Use the `heading` property instead.
33
+ */
29
34
  title: string;
30
- /** Less prominent text than the title in the header */
35
+ /**
36
+ * Heading text.
37
+ */
38
+ heading: string;
39
+ /** Less prominent text in the header. */
31
40
  description: string;
32
41
  open: boolean;
33
42
  private _emitToggleEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-collapsible.d.ts","sourceRoot":"","sources":["../../src/vscode-collapsible/vscode-collapsible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAGlD,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEhC,6BAA6B;IAEpB,KAAK,SAAM;IAEpB,uDAAuD;IAEvD,WAAW,SAAM;IAGjB,IAAI,UAAS;IAEb,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAOf,MAAM,IAAI,cAAc;CA4ClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,iBAAiB,CAAC;KACzC;IAED,UAAU,2BAA2B;QACnC,wBAAwB,EAAE,yBAAyB,CAAC;KACrD;CACF"}
1
+ {"version":3,"file":"vscode-collapsible.d.ts","sourceRoot":"","sources":["../../src/vscode-collapsible/vscode-collapsible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAGlD,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGpE,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEhC;;;;;OAKG;IAEM,KAAK,EAAE,MAAM,CAAM;IAE5B;;OAEG;IAEH,OAAO,SAAM;IAEb,yCAAyC;IAEzC,WAAW,SAAM;IAGjB,IAAI,UAAS;IAEb,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAOf,MAAM,IAAI,cAAc;CA4ClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,oBAAoB,EAAE,iBAAiB,CAAC;KACzC;IAED,UAAU,2BAA2B;QACnC,wBAAwB,EAAE,yBAAyB,CAAC;KACrD;CACF"}
@@ -32,9 +32,18 @@ import styles from './vscode-collapsible.styles.js';
32
32
  let VscodeCollapsible = class VscodeCollapsible extends VscElement {
33
33
  constructor() {
34
34
  super(...arguments);
35
- /** Component heading text */
35
+ /**
36
+ * Component heading text
37
+ *
38
+ * @deprecated The `title` is a global HTML attribute and will unintentionally trigger a native
39
+ * tooltip on the component. Use the `heading` property instead.
40
+ */
36
41
  this.title = '';
37
- /** Less prominent text than the title in the header */
42
+ /**
43
+ * Heading text.
44
+ */
45
+ this.heading = '';
46
+ /** Less prominent text in the header. */
38
47
  this.description = '';
39
48
  this.open = false;
40
49
  }
@@ -55,6 +64,7 @@ let VscodeCollapsible = class VscodeCollapsible extends VscElement {
55
64
  }
56
65
  render() {
57
66
  const classes = classMap({ collapsible: true, open: this.open });
67
+ const heading = this.heading ? this.heading : this.title;
58
68
  const icon = html `<svg
59
69
  width="16"
60
70
  height="16"
@@ -77,12 +87,11 @@ let VscodeCollapsible = class VscodeCollapsible extends VscElement {
77
87
  <div
78
88
  class="collapsible-header"
79
89
  tabindex="0"
80
- title=${this.title}
81
90
  @click=${this._onHeaderClick}
82
91
  @keydown=${this._onHeaderKeyDown}
83
92
  >
84
93
  ${icon}
85
- <h3 class="title">${this.title}${descriptionMarkup}</h3>
94
+ <h3 class="title">${heading}${descriptionMarkup}</h3>
86
95
  <div class="header-slots">
87
96
  <div class="actions"><slot name="actions"></slot></div>
88
97
  <div class="decorations"><slot name="decorations"></slot></div>
@@ -99,6 +108,9 @@ VscodeCollapsible.styles = styles;
99
108
  __decorate([
100
109
  property({ type: String })
101
110
  ], VscodeCollapsible.prototype, "title", void 0);
111
+ __decorate([
112
+ property()
113
+ ], VscodeCollapsible.prototype, "heading", void 0);
102
114
  __decorate([
103
115
  property()
104
116
  ], VscodeCollapsible.prototype, "description", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-collapsible.js","sourceRoot":"","sources":["../../src/vscode-collapsible/vscode-collapsible.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAiB,MAAM,KAAK,CAAC;AAClD,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAIpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAGL,6BAA6B;QAEpB,UAAK,GAAG,EAAE,CAAC;QAEpB,uDAAuD;QAEvD,gBAAW,GAAG,EAAE,CAAC;QAGjB,SAAI,GAAG,KAAK,CAAC;IAkEf,CAAC;IAhES,gBAAgB;QACtB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,wBAAwB,EAAE;YACxC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC;SAC1B,CAA8B,CAChC,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;QAE/D,MAAM,IAAI,GAAG,IAAI,CAAA;;;;;;;;;;;;;WAaV,CAAC;QAER,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW;YACxC,CAAC,CAAC,IAAI,CAAA,6BAA6B,IAAI,CAAC,WAAW,SAAS;YAC5D,CAAC,CAAC,OAAO,CAAC;QAEZ,OAAO,IAAI,CAAA;mBACI,OAAO;;;;kBAIR,IAAI,CAAC,KAAK;mBACT,IAAI,CAAC,cAAc;qBACjB,IAAI,CAAC,gBAAgB;;YAE9B,IAAI;8BACc,IAAI,CAAC,KAAK,GAAG,iBAAiB;;;;;;;;;;KAUvD,CAAC;IACJ,CAAC;;AA5Ee,wBAAM,GAAG,MAAM,AAAT,CAAU;AAIvB;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;gDACL;AAIpB;IADC,QAAQ,EAAE;sDACM;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;+CAC5B;AAZF,iBAAiB;IAD7B,aAAa,CAAC,oBAAoB,CAAC;GACvB,iBAAiB,CA8E7B","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-collapsible.styles.js';\n\nexport type VscCollapsibleToggleEvent = CustomEvent<{open: boolean}>;\n\n/**\n * Allows users to reveal or hide related content on a page.\n *\n * @tag vscode-collapsible\n *\n * @slot - Main content.\n * @slot actions - You can place any action icon in this slot in the header, but it's also possible to use any HTML element in it. It's only visible when the component is open.\n * @slot decorations - The elements placed in the decorations slot are always visible.\n *\n * @fires {VscCollapsibleToggleEvent} vsc-collapsible-toggle - Dispatched when the content visibility is changed.\n *\n * @cssprop [--vscode-sideBar-background=#181818] - Background color\n * @cssprop [--vscode-focusBorder=#0078d4] - Focus border color\n * @cssprop [--vscode-font-family=sans-serif] - Header font family\n * @cssprop [--vscode-sideBarSectionHeader-background=#181818] - Header background\n * @cssprop [--vscode-icon-foreground=#cccccc] - Arrow icon color\n * @cssprop [--vscode-sideBarTitle-foreground=#cccccc] - Header font color\n *\n * @csspart body - Container for the toggleable content of the component. The container's overflow content is hidden by default. This CSS part can serve as an escape hatch to modify this behavior.\n */\n@customElement('vscode-collapsible')\nexport class VscodeCollapsible extends VscElement {\n static override styles = styles;\n\n /** Component heading text */\n @property({type: String})\n override title = '';\n\n /** Less prominent text than the title in the header */\n @property()\n description = '';\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n private _emitToggleEvent() {\n this.dispatchEvent(\n new CustomEvent('vsc-collapsible-toggle', {\n detail: {open: this.open},\n }) as VscCollapsibleToggleEvent\n );\n }\n\n private _onHeaderClick() {\n this.open = !this.open;\n this._emitToggleEvent();\n }\n\n private _onHeaderKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.open = !this.open;\n this._emitToggleEvent();\n }\n }\n\n override render(): TemplateResult {\n const classes = classMap({collapsible: true, open: this.open});\n\n const icon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n class=\"header-icon\"\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\n const descriptionMarkup = this.description\n ? html`<span class=\"description\">${this.description}</span>`\n : nothing;\n\n return html`\n <div class=${classes}>\n <div\n class=\"collapsible-header\"\n tabindex=\"0\"\n title=${this.title}\n @click=${this._onHeaderClick}\n @keydown=${this._onHeaderKeyDown}\n >\n ${icon}\n <h3 class=\"title\">${this.title}${descriptionMarkup}</h3>\n <div class=\"header-slots\">\n <div class=\"actions\"><slot name=\"actions\"></slot></div>\n <div class=\"decorations\"><slot name=\"decorations\"></slot></div>\n </div>\n </div>\n <div class=\"collapsible-body\" part=\"body\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-collapsible': VscodeCollapsible;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-collapsible-toggle': VscCollapsibleToggleEvent;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-collapsible.js","sourceRoot":"","sources":["../../src/vscode-collapsible/vscode-collapsible.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAiB,MAAM,KAAK,CAAC;AAClD,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,gCAAgC,CAAC;AAIpD;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,UAAU;IAA1C;;QAGL;;;;;WAKG;QAEM,UAAK,GAAW,EAAE,CAAC;QAE5B;;WAEG;QAEH,YAAO,GAAG,EAAE,CAAC;QAEb,yCAAyC;QAEzC,gBAAW,GAAG,EAAE,CAAC;QAGjB,SAAI,GAAG,KAAK,CAAC;IAkEf,CAAC;IAhES,gBAAgB;QACtB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,wBAAwB,EAAE;YACxC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC;SAC1B,CAA8B,CAChC,CAAC;IACJ,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAEO,gBAAgB,CAAC,KAAoB;QAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAEzD,MAAM,IAAI,GAAG,IAAI,CAAA;;;;;;;;;;;;;WAaV,CAAC;QAER,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW;YACxC,CAAC,CAAC,IAAI,CAAA,6BAA6B,IAAI,CAAC,WAAW,SAAS;YAC5D,CAAC,CAAC,OAAO,CAAC;QAEZ,OAAO,IAAI,CAAA;mBACI,OAAO;;;;mBAIP,IAAI,CAAC,cAAc;qBACjB,IAAI,CAAC,gBAAgB;;YAE9B,IAAI;8BACc,OAAO,GAAG,iBAAiB;;;;;;;;;;KAUpD,CAAC;IACJ,CAAC;;AAvFe,wBAAM,GAAG,MAAM,AAAT,CAAU;AASvB;IADR,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;gDACG;AAM5B;IADC,QAAQ,EAAE;kDACE;AAIb;IADC,QAAQ,EAAE;sDACM;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;+CAC5B;AAvBF,iBAAiB;IAD7B,aAAa,CAAC,oBAAoB,CAAC;GACvB,iBAAiB,CAyF7B","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-collapsible.styles.js';\n\nexport type VscCollapsibleToggleEvent = CustomEvent<{open: boolean}>;\n\n/**\n * Allows users to reveal or hide related content on a page.\n *\n * @tag vscode-collapsible\n *\n * @slot - Main content.\n * @slot actions - You can place any action icon in this slot in the header, but it's also possible to use any HTML element in it. It's only visible when the component is open.\n * @slot decorations - The elements placed in the decorations slot are always visible.\n *\n * @fires {VscCollapsibleToggleEvent} vsc-collapsible-toggle - Dispatched when the content visibility is changed.\n *\n * @cssprop [--vscode-sideBar-background=#181818] - Background color\n * @cssprop [--vscode-focusBorder=#0078d4] - Focus border color\n * @cssprop [--vscode-font-family=sans-serif] - Header font family\n * @cssprop [--vscode-sideBarSectionHeader-background=#181818] - Header background\n * @cssprop [--vscode-icon-foreground=#cccccc] - Arrow icon color\n * @cssprop [--vscode-sideBarTitle-foreground=#cccccc] - Header font color\n *\n * @csspart body - Container for the toggleable content of the component. The container's overflow content is hidden by default. This CSS part can serve as an escape hatch to modify this behavior.\n */\n@customElement('vscode-collapsible')\nexport class VscodeCollapsible extends VscElement {\n static override styles = styles;\n\n /**\n * Component heading text\n *\n * @deprecated The `title` is a global HTML attribute and will unintentionally trigger a native\n * tooltip on the component. Use the `heading` property instead.\n */\n @property({type: String})\n override title: string = '';\n\n /**\n * Heading text.\n */\n @property()\n heading = '';\n\n /** Less prominent text in the header. */\n @property()\n description = '';\n\n @property({type: Boolean, reflect: true})\n open = false;\n\n private _emitToggleEvent() {\n this.dispatchEvent(\n new CustomEvent('vsc-collapsible-toggle', {\n detail: {open: this.open},\n }) as VscCollapsibleToggleEvent\n );\n }\n\n private _onHeaderClick() {\n this.open = !this.open;\n this._emitToggleEvent();\n }\n\n private _onHeaderKeyDown(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.open = !this.open;\n this._emitToggleEvent();\n }\n }\n\n override render(): TemplateResult {\n const classes = classMap({collapsible: true, open: this.open});\n const heading = this.heading ? this.heading : this.title;\n\n const icon = html`<svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"currentColor\"\n class=\"header-icon\"\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\n const descriptionMarkup = this.description\n ? html`<span class=\"description\">${this.description}</span>`\n : nothing;\n\n return html`\n <div class=${classes}>\n <div\n class=\"collapsible-header\"\n tabindex=\"0\"\n @click=${this._onHeaderClick}\n @keydown=${this._onHeaderKeyDown}\n >\n ${icon}\n <h3 class=\"title\">${heading}${descriptionMarkup}</h3>\n <div class=\"header-slots\">\n <div class=\"actions\"><slot name=\"actions\"></slot></div>\n <div class=\"decorations\"><slot name=\"decorations\"></slot></div>\n </div>\n </div>\n <div class=\"collapsible-body\" part=\"body\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-collapsible': VscodeCollapsible;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-collapsible-toggle': VscCollapsibleToggleEvent;\n }\n}\n"]}
@@ -53,7 +53,6 @@ export declare class VscodeContextMenu extends VscElement {
53
53
  private _handleArrowDown;
54
54
  private _handleEscape;
55
55
  private _dispatchSelectEvent;
56
- private _dispatchLegacySelectEvent;
57
56
  private _handleEnter;
58
57
  private _onItemClick;
59
58
  private _onItemMouseOver;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-context-menu.d.ts","sourceRoot":"","sources":["../../src/vscode-context-menu/vscode-context-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAElD,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAKpE,OAAO,sCAAsC,CAAC;AAG9C,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEhC,IACI,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EAY5B;IACD,IAAI,IAAI,IAAI,YAAY,EAAE,CAEzB;IAED;;OAEG;IAEH,YAAY,UAAS;IAErB,IACI,IAAI,CAAC,IAAI,EAAE,OAAO,EAiBrB;IACD,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,gBAAgB;IAEP,QAAQ,SAAK;;IAkBtB,OAAO,CAAC,2BAA2B,CAAM;IAGzC,OAAO,CAAC,KAAK,CAAS;IAGtB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,oBAAoB,CAAmC;IAE/D,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,0BAA0B;IAoBlC,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,eAAe;IAId,MAAM,IAAI,cAAc;CAwClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;IAED,UAAU,2BAA2B;QACnC,yBAAyB,EAAE,yBAAyB,CAAC;KACtD;CACF"}
1
+ {"version":3,"file":"vscode-context-menu.d.ts","sourceRoot":"","sources":["../../src/vscode-context-menu/vscode-context-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAC,MAAM,KAAK,CAAC;AAElD,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAEpE,OAAO,sCAAsC,CAAC;AAG9C,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,WAAW,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC/C,OAAgB,MAAM,+BAAU;IAEhC,IACI,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,EAY5B;IACD,IAAI,IAAI,IAAI,YAAY,EAAE,CAEzB;IAED;;OAEG;IAEH,YAAY,UAAS;IAErB,IACI,IAAI,CAAC,IAAI,EAAE,OAAO,EAiBrB;IACD,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,gBAAgB;IAEP,QAAQ,SAAK;;IAkBtB,OAAO,CAAC,2BAA2B,CAAM;IAGzC,OAAO,CAAC,KAAK,CAAS;IAGtB,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO,CAAC,qBAAqB,CAAgB;IAE7C,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,oBAAoB,CAAmC;IAE/D,OAAO,CAAC,UAAU;IA6BlB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,eAAe;IAId,MAAM,IAAI,cAAc;CAwClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,qBAAqB,EAAE,iBAAiB,CAAC;KAC1C;IAED,UAAU,2BAA2B;QACnC,yBAAyB,EAAE,yBAAyB,CAAC;KACtD;CACF"}
@@ -141,22 +141,6 @@ let VscodeContextMenu = class VscodeContextMenu extends VscElement {
141
141
  },
142
142
  }));
143
143
  }
144
- _dispatchLegacySelectEvent(selectedOption) {
145
- const { keybinding, label, value, separator, tabindex } = selectedOption;
146
- const detail = {
147
- keybinding,
148
- label,
149
- value,
150
- separator,
151
- tabindex,
152
- };
153
- /** @deprecated - Renamed to `vsc-context-menu-select` */
154
- this.dispatchEvent(new CustomEvent('vsc-select', {
155
- detail,
156
- bubbles: true,
157
- composed: true,
158
- }));
159
- }
160
144
  _handleEnter() {
161
145
  if (this._selectedClickableItemIndex === -1) {
162
146
  return;
@@ -164,7 +148,6 @@ let VscodeContextMenu = class VscodeContextMenu extends VscElement {
164
148
  const realItemIndex = this._clickableItemIndexes[this._selectedClickableItemIndex];
165
149
  const options = this._wrapperEl.querySelectorAll('vscode-context-menu-item');
166
150
  const selectedOption = options[realItemIndex];
167
- this._dispatchLegacySelectEvent(selectedOption);
168
151
  this._dispatchSelectEvent(selectedOption);
169
152
  if (!this.preventClose) {
170
153
  this.show = false;
@@ -173,7 +156,6 @@ let VscodeContextMenu = class VscodeContextMenu extends VscElement {
173
156
  }
174
157
  _onItemClick(event) {
175
158
  const et = event.currentTarget;
176
- this._dispatchLegacySelectEvent(et);
177
159
  this._dispatchSelectEvent(et);
178
160
  if (!this.preventClose) {
179
161
  this.show = false;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-context-menu.js","sourceRoot":"","sources":["../../src/vscode-context-menu/vscode-context-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport type {\n VscClickEventDetail,\n VscodeContextMenuItem,\n} from '../vscode-context-menu-item/vscode-context-menu-item.js';\nimport '../vscode-context-menu-item/index.js';\nimport styles from './vscode-context-menu.styles.js';\n\ninterface MenuItemData {\n label?: string;\n keybinding?: string;\n value?: string;\n separator?: boolean;\n tabindex?: number;\n}\n\nexport type VscContextMenuSelectEvent = CustomEvent<{\n keybinding: string;\n label: string;\n value: string;\n separator: boolean;\n tabindex: number;\n}>;\n\n/**\n * @tag vscode-context-menu\n *\n * @fires {VscMenuSelectEvent} vsc-menu-select - Emitted when a menu item is clicked\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-menu-background=#1f1f1f]\n * @cssprop [--vscode-menu-border=#454545]\n * @cssprop [--vscode-menu-foreground=#cccccc]\n * @cssprop [--vscode-widget-shadow=rgba(0, 0, 0, 0.36)]\n */\n@customElement('vscode-context-menu')\nexport class VscodeContextMenu extends VscElement {\n static override styles = styles;\n\n @property({type: Array, attribute: false})\n set data(data: MenuItemData[]) {\n this._data = data;\n\n const indexes: number[] = [];\n\n data.forEach((v, i) => {\n if (!v.separator) {\n indexes.push(i);\n }\n });\n\n this._clickableItemIndexes = indexes;\n }\n get data(): MenuItemData[] {\n return this._data;\n }\n\n /**\n * By default, the menu closes when an item is clicked. This attribute prevents the menu from closing.\n */\n @property({type: Boolean, reflect: true, attribute: 'prevent-close'})\n preventClose = false;\n\n @property({type: Boolean, reflect: true})\n set show(show: boolean) {\n this._show = show;\n this._selectedClickableItemIndex = -1;\n\n if (show) {\n this.updateComplete.then(() => {\n if (this._wrapperEl) {\n this._wrapperEl.focus();\n }\n\n requestAnimationFrame(() => {\n document.addEventListener('click', this._onClickOutsideBound, {\n once: true,\n });\n });\n });\n }\n }\n get show(): boolean {\n return this._show;\n }\n\n /** @internal */\n @property({type: Number, reflect: true})\n override tabIndex = 0;\n\n constructor() {\n super();\n this.addEventListener('keydown', this._onKeyDown);\n }\n\n /* connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._onClickOutsideBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._onClickOutsideBound);\n } */\n\n @state()\n private _selectedClickableItemIndex = -1;\n\n @state()\n private _show = false;\n\n @query('.context-menu')\n private _wrapperEl!: HTMLDivElement;\n\n private _data: MenuItemData[] = [];\n\n private _clickableItemIndexes: number[] = [];\n\n private _onClickOutside(ev: MouseEvent) {\n if (!ev.composedPath().includes(this)) {\n this.show = false;\n }\n }\n\n private _onClickOutsideBound = this._onClickOutside.bind(this);\n\n private _onKeyDown(ev: KeyboardEvent) {\n const {key} = ev;\n\n if (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'Escape' ||\n key === 'Enter'\n ) {\n ev.preventDefault();\n }\n\n switch (key) {\n case 'ArrowUp':\n this._handleArrowUp();\n break;\n case 'ArrowDown':\n this._handleArrowDown();\n break;\n case 'Escape':\n this._handleEscape();\n break;\n case 'Enter':\n this._handleEnter();\n break;\n default:\n }\n }\n\n private _handleArrowUp() {\n if (this._selectedClickableItemIndex === 0) {\n this._selectedClickableItemIndex = this._clickableItemIndexes.length - 1;\n } else {\n this._selectedClickableItemIndex -= 1;\n }\n }\n\n private _handleArrowDown() {\n if (\n this._selectedClickableItemIndex + 1 <\n this._clickableItemIndexes.length\n ) {\n this._selectedClickableItemIndex += 1;\n } else {\n this._selectedClickableItemIndex = 0;\n }\n }\n\n private _handleEscape() {\n this.show = false;\n document.removeEventListener('click', this._onClickOutsideBound);\n }\n\n private _dispatchSelectEvent(selectedOption: VscodeContextMenuItem) {\n const {keybinding, label, value, separator, tabindex} = selectedOption;\n\n this.dispatchEvent(\n new CustomEvent('vsc-context-menu-select', {\n detail: {\n keybinding,\n label,\n separator,\n tabindex,\n value,\n },\n }) as VscContextMenuSelectEvent\n );\n }\n\n private _dispatchLegacySelectEvent(selectedOption: VscodeContextMenuItem) {\n const {keybinding, label, value, separator, tabindex} = selectedOption;\n const detail: VscClickEventDetail = {\n keybinding,\n label,\n value,\n separator,\n tabindex,\n };\n\n /** @deprecated - Renamed to `vsc-context-menu-select` */\n this.dispatchEvent(\n new CustomEvent('vsc-select', {\n detail,\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private _handleEnter() {\n if (this._selectedClickableItemIndex === -1) {\n return;\n }\n\n const realItemIndex =\n this._clickableItemIndexes[this._selectedClickableItemIndex];\n const options = this._wrapperEl.querySelectorAll(\n 'vscode-context-menu-item'\n );\n const selectedOption = options[realItemIndex];\n\n this._dispatchLegacySelectEvent(selectedOption);\n this._dispatchSelectEvent(selectedOption);\n\n if (!this.preventClose) {\n this.show = false;\n document.removeEventListener('click', this._onClickOutsideBound);\n }\n }\n\n private _onItemClick(event: CustomEvent) {\n const et = event.currentTarget as VscodeContextMenuItem;\n\n this._dispatchLegacySelectEvent(et);\n this._dispatchSelectEvent(et);\n\n if (!this.preventClose) {\n this.show = false;\n }\n }\n\n private _onItemMouseOver(event: MouseEvent) {\n const el = event.target as HTMLElement;\n const index = el.dataset.index ? +el.dataset.index : -1;\n const found = this._clickableItemIndexes.findIndex(\n (item) => item === index\n );\n\n if (found !== -1) {\n this._selectedClickableItemIndex = found;\n }\n }\n\n private _onItemMouseOut() {\n this._selectedClickableItemIndex = -1;\n }\n\n override render(): TemplateResult {\n if (!this._show) {\n return html`${nothing}`;\n }\n\n const selectedIndex =\n this._clickableItemIndexes[this._selectedClickableItemIndex];\n\n return html`\n <div class=\"context-menu\" tabindex=\"0\">\n ${this.data\n ? this.data.map(\n (\n {\n label = '',\n keybinding = '',\n value = '',\n separator = false,\n tabindex = 0,\n },\n index\n ) => html`\n <vscode-context-menu-item\n label=${label}\n keybinding=${keybinding}\n value=${value}\n ?separator=${separator}\n ?selected=${index === selectedIndex}\n tabindex=${tabindex}\n @vsc-click=${this._onItemClick}\n @mouseover=${this._onItemMouseOver}\n @mouseout=${this._onItemMouseOut}\n data-index=${index}\n ></vscode-context-menu-item>\n `\n )\n : html`<slot></slot>`}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-context-menu': VscodeContextMenu;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-context-menu-select': VscContextMenuSelectEvent;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-context-menu.js","sourceRoot":"","sources":["../../src/vscode-context-menu/vscode-context-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, TemplateResult} from 'lit';\nimport {property, query, state} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport type {VscodeContextMenuItem} from '../vscode-context-menu-item/vscode-context-menu-item.js';\nimport '../vscode-context-menu-item/index.js';\nimport styles from './vscode-context-menu.styles.js';\n\ninterface MenuItemData {\n label?: string;\n keybinding?: string;\n value?: string;\n separator?: boolean;\n tabindex?: number;\n}\n\nexport type VscContextMenuSelectEvent = CustomEvent<{\n keybinding: string;\n label: string;\n value: string;\n separator: boolean;\n tabindex: number;\n}>;\n\n/**\n * @tag vscode-context-menu\n *\n * @fires {VscMenuSelectEvent} vsc-menu-select - Emitted when a menu item is clicked\n *\n * @cssprop [--vscode-font-family=sans-serif]\n * @cssprop [--vscode-font-size=13px]\n * @cssprop [--vscode-font-weight=normal]\n * @cssprop [--vscode-menu-background=#1f1f1f]\n * @cssprop [--vscode-menu-border=#454545]\n * @cssprop [--vscode-menu-foreground=#cccccc]\n * @cssprop [--vscode-widget-shadow=rgba(0, 0, 0, 0.36)]\n */\n@customElement('vscode-context-menu')\nexport class VscodeContextMenu extends VscElement {\n static override styles = styles;\n\n @property({type: Array, attribute: false})\n set data(data: MenuItemData[]) {\n this._data = data;\n\n const indexes: number[] = [];\n\n data.forEach((v, i) => {\n if (!v.separator) {\n indexes.push(i);\n }\n });\n\n this._clickableItemIndexes = indexes;\n }\n get data(): MenuItemData[] {\n return this._data;\n }\n\n /**\n * By default, the menu closes when an item is clicked. This attribute prevents the menu from closing.\n */\n @property({type: Boolean, reflect: true, attribute: 'prevent-close'})\n preventClose = false;\n\n @property({type: Boolean, reflect: true})\n set show(show: boolean) {\n this._show = show;\n this._selectedClickableItemIndex = -1;\n\n if (show) {\n this.updateComplete.then(() => {\n if (this._wrapperEl) {\n this._wrapperEl.focus();\n }\n\n requestAnimationFrame(() => {\n document.addEventListener('click', this._onClickOutsideBound, {\n once: true,\n });\n });\n });\n }\n }\n get show(): boolean {\n return this._show;\n }\n\n /** @internal */\n @property({type: Number, reflect: true})\n override tabIndex = 0;\n\n constructor() {\n super();\n this.addEventListener('keydown', this._onKeyDown);\n }\n\n /* connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._onClickOutsideBound);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._onClickOutsideBound);\n } */\n\n @state()\n private _selectedClickableItemIndex = -1;\n\n @state()\n private _show = false;\n\n @query('.context-menu')\n private _wrapperEl!: HTMLDivElement;\n\n private _data: MenuItemData[] = [];\n\n private _clickableItemIndexes: number[] = [];\n\n private _onClickOutside(ev: MouseEvent) {\n if (!ev.composedPath().includes(this)) {\n this.show = false;\n }\n }\n\n private _onClickOutsideBound = this._onClickOutside.bind(this);\n\n private _onKeyDown(ev: KeyboardEvent) {\n const {key} = ev;\n\n if (\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'Escape' ||\n key === 'Enter'\n ) {\n ev.preventDefault();\n }\n\n switch (key) {\n case 'ArrowUp':\n this._handleArrowUp();\n break;\n case 'ArrowDown':\n this._handleArrowDown();\n break;\n case 'Escape':\n this._handleEscape();\n break;\n case 'Enter':\n this._handleEnter();\n break;\n default:\n }\n }\n\n private _handleArrowUp() {\n if (this._selectedClickableItemIndex === 0) {\n this._selectedClickableItemIndex = this._clickableItemIndexes.length - 1;\n } else {\n this._selectedClickableItemIndex -= 1;\n }\n }\n\n private _handleArrowDown() {\n if (\n this._selectedClickableItemIndex + 1 <\n this._clickableItemIndexes.length\n ) {\n this._selectedClickableItemIndex += 1;\n } else {\n this._selectedClickableItemIndex = 0;\n }\n }\n\n private _handleEscape() {\n this.show = false;\n document.removeEventListener('click', this._onClickOutsideBound);\n }\n\n private _dispatchSelectEvent(selectedOption: VscodeContextMenuItem) {\n const {keybinding, label, value, separator, tabindex} = selectedOption;\n\n this.dispatchEvent(\n new CustomEvent('vsc-context-menu-select', {\n detail: {\n keybinding,\n label,\n separator,\n tabindex,\n value,\n },\n }) as VscContextMenuSelectEvent\n );\n }\n\n private _handleEnter() {\n if (this._selectedClickableItemIndex === -1) {\n return;\n }\n\n const realItemIndex =\n this._clickableItemIndexes[this._selectedClickableItemIndex];\n const options = this._wrapperEl.querySelectorAll(\n 'vscode-context-menu-item'\n );\n const selectedOption = options[realItemIndex];\n\n this._dispatchSelectEvent(selectedOption);\n\n if (!this.preventClose) {\n this.show = false;\n document.removeEventListener('click', this._onClickOutsideBound);\n }\n }\n\n private _onItemClick(event: CustomEvent) {\n const et = event.currentTarget as VscodeContextMenuItem;\n\n this._dispatchSelectEvent(et);\n\n if (!this.preventClose) {\n this.show = false;\n }\n }\n\n private _onItemMouseOver(event: MouseEvent) {\n const el = event.target as HTMLElement;\n const index = el.dataset.index ? +el.dataset.index : -1;\n const found = this._clickableItemIndexes.findIndex(\n (item) => item === index\n );\n\n if (found !== -1) {\n this._selectedClickableItemIndex = found;\n }\n }\n\n private _onItemMouseOut() {\n this._selectedClickableItemIndex = -1;\n }\n\n override render(): TemplateResult {\n if (!this._show) {\n return html`${nothing}`;\n }\n\n const selectedIndex =\n this._clickableItemIndexes[this._selectedClickableItemIndex];\n\n return html`\n <div class=\"context-menu\" tabindex=\"0\">\n ${this.data\n ? this.data.map(\n (\n {\n label = '',\n keybinding = '',\n value = '',\n separator = false,\n tabindex = 0,\n },\n index\n ) => html`\n <vscode-context-menu-item\n label=${label}\n keybinding=${keybinding}\n value=${value}\n ?separator=${separator}\n ?selected=${index === selectedIndex}\n tabindex=${tabindex}\n @vsc-click=${this._onItemClick}\n @mouseover=${this._onItemMouseOver}\n @mouseout=${this._onItemMouseOut}\n data-index=${index}\n ></vscode-context-menu-item>\n `\n )\n : html`<slot></slot>`}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-context-menu': VscodeContextMenu;\n }\n\n interface GlobalEventHandlersEventMap {\n 'vsc-context-menu-select': VscContextMenuSelectEvent;\n }\n}\n"]}