@vscode-elements/elements 2.0.0-pre.2 → 2.0.0-pre.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/custom-elements.json +4772 -4593
  2. package/dist/bundled.js +417 -347
  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/vscode-badge/vscode-badge.js +1 -1
  14. package/dist/vscode-badge/vscode-badge.js.map +1 -1
  15. package/dist/vscode-badge/vscode-badge.styles.d.ts.map +1 -1
  16. package/dist/vscode-badge/vscode-badge.styles.js +8 -4
  17. package/dist/vscode-badge/vscode-badge.styles.js.map +1 -1
  18. package/dist/vscode-button/vscode-button.d.ts +0 -2
  19. package/dist/vscode-button/vscode-button.d.ts.map +1 -1
  20. package/dist/vscode-button/vscode-button.js +10 -24
  21. package/dist/vscode-button/vscode-button.js.map +1 -1
  22. package/dist/vscode-button/vscode-button.styles.d.ts.map +1 -1
  23. package/dist/vscode-button/vscode-button.styles.js +31 -18
  24. package/dist/vscode-button/vscode-button.styles.js.map +1 -1
  25. package/dist/vscode-button-group/vscode-button-group.d.ts.map +1 -1
  26. package/dist/vscode-button-group/vscode-button-group.js +2 -3
  27. package/dist/vscode-button-group/vscode-button-group.js.map +1 -1
  28. package/dist/vscode-button-group/vscode-button-group.styles.d.ts.map +1 -1
  29. package/dist/vscode-button-group/vscode-button-group.styles.js +17 -13
  30. package/dist/vscode-button-group/vscode-button-group.styles.js.map +1 -1
  31. package/dist/vscode-checkbox/vscode-checkbox.d.ts.map +1 -1
  32. package/dist/vscode-checkbox/vscode-checkbox.js +0 -10
  33. package/dist/vscode-checkbox/vscode-checkbox.js.map +1 -1
  34. package/dist/vscode-context-menu/vscode-context-menu.d.ts +0 -1
  35. package/dist/vscode-context-menu/vscode-context-menu.d.ts.map +1 -1
  36. package/dist/vscode-context-menu/vscode-context-menu.js +0 -18
  37. package/dist/vscode-context-menu/vscode-context-menu.js.map +1 -1
  38. package/dist/vscode-context-menu/vscode-context-menu.styles.js +4 -4
  39. package/dist/vscode-context-menu/vscode-context-menu.styles.js.map +1 -1
  40. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js +4 -4
  41. package/dist/vscode-context-menu-item/vscode-context-menu-item.styles.js.map +1 -1
  42. package/dist/vscode-divider/vscode-divider.js +1 -1
  43. package/dist/vscode-divider/vscode-divider.js.map +1 -1
  44. package/dist/vscode-divider/vscode-divider.styles.d.ts.map +1 -1
  45. package/dist/vscode-divider/vscode-divider.styles.js +5 -2
  46. package/dist/vscode-divider/vscode-divider.styles.js.map +1 -1
  47. package/dist/vscode-form-container/vscode-form-container.d.ts +0 -5
  48. package/dist/vscode-form-container/vscode-form-container.d.ts.map +1 -1
  49. package/dist/vscode-form-container/vscode-form-container.js +0 -63
  50. package/dist/vscode-form-container/vscode-form-container.js.map +1 -1
  51. package/dist/vscode-label/vscode-label.styles.js +6 -6
  52. package/dist/vscode-label/vscode-label.styles.js.map +1 -1
  53. package/dist/vscode-multi-select/vscode-multi-select.d.ts.map +1 -1
  54. package/dist/vscode-multi-select/vscode-multi-select.js +0 -7
  55. package/dist/vscode-multi-select/vscode-multi-select.js.map +1 -1
  56. package/dist/vscode-progress-ring/vscode-progress-ring.styles.d.ts.map +1 -1
  57. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js +0 -1
  58. package/dist/vscode-progress-ring/vscode-progress-ring.styles.js.map +1 -1
  59. package/dist/vscode-radio/vscode-radio.d.ts +0 -1
  60. package/dist/vscode-radio/vscode-radio.d.ts.map +1 -1
  61. package/dist/vscode-radio/vscode-radio.js +0 -14
  62. package/dist/vscode-radio/vscode-radio.js.map +1 -1
  63. package/dist/vscode-scrollable/vscode-scrollable.d.ts +0 -1
  64. package/dist/vscode-scrollable/vscode-scrollable.d.ts.map +1 -1
  65. package/dist/vscode-scrollable/vscode-scrollable.js +0 -1
  66. package/dist/vscode-scrollable/vscode-scrollable.js.map +1 -1
  67. package/dist/vscode-single-select/vscode-single-select.d.ts +0 -1
  68. package/dist/vscode-single-select/vscode-single-select.d.ts.map +1 -1
  69. package/dist/vscode-single-select/vscode-single-select.js +0 -10
  70. package/dist/vscode-single-select/vscode-single-select.js.map +1 -1
  71. package/dist/vscode-tab-header/vscode-tab-header.styles.d.ts.map +1 -1
  72. package/dist/vscode-tab-header/vscode-tab-header.styles.js +12 -5
  73. package/dist/vscode-tab-header/vscode-tab-header.styles.js.map +1 -1
  74. package/dist/vscode-tabs/vscode-tabs.d.ts +0 -2
  75. package/dist/vscode-tabs/vscode-tabs.d.ts.map +1 -1
  76. package/dist/vscode-tabs/vscode-tabs.js +7 -13
  77. package/dist/vscode-tabs/vscode-tabs.js.map +1 -1
  78. package/dist/vscode-tabs/vscode-tabs.styles.d.ts.map +1 -1
  79. package/dist/vscode-tabs/vscode-tabs.styles.js +5 -0
  80. package/dist/vscode-tabs/vscode-tabs.styles.js.map +1 -1
  81. package/dist/vscode-textarea/vscode-textarea.d.ts.map +1 -1
  82. package/dist/vscode-textarea/vscode-textarea.js +2 -10
  83. package/dist/vscode-textarea/vscode-textarea.js.map +1 -1
  84. package/dist/vscode-textarea/vscode-textarea.styles.js +1 -1
  85. package/dist/vscode-textarea/vscode-textarea.styles.js.map +1 -1
  86. package/dist/vscode-textfield/vscode-textfield.d.ts.map +1 -1
  87. package/dist/vscode-textfield/vscode-textfield.js +31 -35
  88. package/dist/vscode-textfield/vscode-textfield.js.map +1 -1
  89. package/dist/vscode-textfield/vscode-textfield.styles.d.ts.map +1 -1
  90. package/dist/vscode-textfield/vscode-textfield.styles.js +8 -3
  91. package/dist/vscode-textfield/vscode-textfield.styles.js.map +1 -1
  92. package/dist/vscode-toolbar-container/vscode-toolbar-container.js +1 -1
  93. package/dist/vscode-toolbar-container/vscode-toolbar-container.js.map +1 -1
  94. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.d.ts.map +1 -1
  95. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js +4 -0
  96. package/dist/vscode-toolbar-container/vscode-toolbar-container.styles.js.map +1 -1
  97. package/dist/vscode-tree/helpers.d.ts +4 -6
  98. package/dist/vscode-tree/helpers.d.ts.map +1 -1
  99. package/dist/vscode-tree/helpers.js +45 -68
  100. package/dist/vscode-tree/helpers.js.map +1 -1
  101. package/dist/vscode-tree/tree-context.d.ts +5 -5
  102. package/dist/vscode-tree/tree-context.d.ts.map +1 -1
  103. package/dist/vscode-tree/tree-context.js.map +1 -1
  104. package/dist/vscode-tree/vscode-tree.d.ts +63 -7
  105. package/dist/vscode-tree/vscode-tree.d.ts.map +1 -1
  106. package/dist/vscode-tree/vscode-tree.js +112 -62
  107. package/dist/vscode-tree/vscode-tree.js.map +1 -1
  108. package/dist/vscode-tree/vscode-tree.styles.d.ts.map +1 -1
  109. package/dist/vscode-tree/vscode-tree.styles.js +39 -3
  110. package/dist/vscode-tree/vscode-tree.styles.js.map +1 -1
  111. package/dist/vscode-tree-item/vscode-tree-item.d.ts +5 -0
  112. package/dist/vscode-tree-item/vscode-tree-item.d.ts.map +1 -1
  113. package/dist/vscode-tree-item/vscode-tree-item.js +78 -37
  114. package/dist/vscode-tree-item/vscode-tree-item.js.map +1 -1
  115. package/dist/vscode-tree-item/vscode-tree-item.styles.d.ts.map +1 -1
  116. package/dist/vscode-tree-item/vscode-tree-item.styles.js +34 -51
  117. package/dist/vscode-tree-item/vscode-tree-item.styles.js.map +1 -1
  118. package/package.json +3 -3
  119. package/vscode.css-custom-data.json +41 -42
  120. package/vscode.html-custom-data.json +164 -147
@@ -1 +1 @@
1
- {"version":3,"file":"VscElement.d.ts","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAK/B,qBAAa,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE,KAAK,CAAC,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAE3B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,MACnC,eAAe,kBAAkB,SAsC1C,CAAC"}
1
+ {"version":3,"file":"VscElement.d.ts","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAK/B,qBAAa,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAED,KAAK,kBAAkB,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE,KAAK,CAAC,CAAC;AAE1D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAE3B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,MACnC,eAAe,kBAAkB,SAgC1C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { LitElement } from 'lit';
2
- const VERSION = '2.0.0-pre.2';
2
+ const VERSION = '2.0.0-pre.4';
3
3
  const CONFIG_KEY = '__vscodeElements_disableRegistryWarning__';
4
4
  export class VscElement extends LitElement {
5
5
  /** VSCode Elements version */
@@ -24,8 +24,6 @@ export const customElement = (tagName) => {
24
24
  const anotherVersion = el?.version;
25
25
  let message = '';
26
26
  if (!anotherVersion) {
27
- // eslint-disable-next-line no-console
28
- console.warn(tagName, 'is already registered by an unknown custom element handler class.');
29
27
  message +=
30
28
  'is already registered by an unknown custom element handler class.';
31
29
  }
@@ -35,8 +33,7 @@ export const customElement = (tagName) => {
35
33
  message += `This version is "${VERSION}", while the other one is "${anotherVersion}".`;
36
34
  }
37
35
  else {
38
- message +=
39
- 'is already registered by the same version of VSCode Elements. ';
36
+ message += `is already registered by the same version of VSCode Elements (${VERSION}).`;
40
37
  }
41
38
  // eslint-disable-next-line no-console
42
39
  console.warn(`[VSCode Elements] ${tagName} ${message}\nTo suppress this warning, set window.${CONFIG_KEY} to true`);
@@ -1 +1 @@
1
- {"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,UAAU,GAAG,2CAA2C,CAAC;AAE/D,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO;QACT,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AASD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAC/C,OAAO,CAAC,aAAiC,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAyC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAI,EAAiB,EAAE,OAAO,CAAC;QACnD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CACV,OAAO,EACP,mEAAmE,CACpE,CAAC;YACF,OAAO;gBACL,mEAAmE,CAAC;QACxE,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,mEAAmE,CAAC;YACtE,OAAO,IAAI,oBAAoB,OAAO,8BAA8B,cAAc,IAAI,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,gEAAgE,CAAC;QACrE,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,qBAAqB,OAAO,IAAI,OAAO,0CAA0C,UAAU,UAAU,CACtG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {LitElement} from 'lit';\n\nconst VERSION = '2.0.0-pre.2';\nconst CONFIG_KEY = '__vscodeElements_disableRegistryWarning__';\n\nexport class VscElement extends LitElement {\n /** VSCode Elements version */\n get version(): string {\n return VERSION;\n }\n}\n\ntype CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport type Constructor<T> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n};\n\n/**\n * Own implementation of Lit's customElement decorator.\n */\nexport const customElement = (tagName: string) => {\n return (classOrTarget: CustomElementClass) => {\n const customElementClass = customElements.get(tagName);\n\n if (!customElementClass) {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n return;\n }\n\n if (CONFIG_KEY in window) {\n return;\n }\n\n const el = document.createElement(tagName);\n const anotherVersion = (el as VscElement)?.version;\n let message = '';\n\n if (!anotherVersion) {\n // eslint-disable-next-line no-console\n console.warn(\n tagName,\n 'is already registered by an unknown custom element handler class.'\n );\n message +=\n 'is already registered by an unknown custom element handler class.';\n } else if (anotherVersion !== VERSION) {\n message +=\n 'is already registered by a different version of VSCode Elements. ';\n message += `This version is \"${VERSION}\", while the other one is \"${anotherVersion}\".`;\n } else {\n message +=\n 'is already registered by the same version of VSCode Elements. ';\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n `[VSCode Elements] ${tagName} ${message}\\nTo suppress this warning, set window.${CONFIG_KEY} to true`\n );\n };\n};\n"]}
1
+ {"version":3,"file":"VscElement.js","sourceRoot":"","sources":["../../src/includes/VscElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,KAAK,CAAC;AAE/B,MAAM,OAAO,GAAG,aAAa,CAAC;AAC9B,MAAM,UAAU,GAAG,2CAA2C,CAAC;AAE/D,MAAM,OAAO,UAAW,SAAQ,UAAU;IACxC,8BAA8B;IAC9B,IAAI,OAAO;QACT,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AASD;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE;IAC/C,OAAO,CAAC,aAAiC,EAAE,EAAE;QAC3C,MAAM,kBAAkB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,aAAyC,CAAC,CAAC;YAC1E,OAAO;QACT,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAI,EAAiB,EAAE,OAAO,CAAC;QACnD,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO;gBACL,mEAAmE,CAAC;QACxE,CAAC;aAAM,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO;gBACL,mEAAmE,CAAC;YACtE,OAAO,IAAI,oBAAoB,OAAO,8BAA8B,cAAc,IAAI,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,iEAAiE,OAAO,IAAI,CAAC;QAC1F,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,qBAAqB,OAAO,IAAI,OAAO,0CAA0C,UAAU,UAAU,CACtG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import {LitElement} from 'lit';\n\nconst VERSION = '2.0.0-pre.4';\nconst CONFIG_KEY = '__vscodeElements_disableRegistryWarning__';\n\nexport class VscElement extends LitElement {\n /** VSCode Elements version */\n get version(): string {\n return VERSION;\n }\n}\n\ntype CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport type Constructor<T> = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (...args: any[]): T;\n};\n\n/**\n * Own implementation of Lit's customElement decorator.\n */\nexport const customElement = (tagName: string) => {\n return (classOrTarget: CustomElementClass) => {\n const customElementClass = customElements.get(tagName);\n\n if (!customElementClass) {\n customElements.define(tagName, classOrTarget as CustomElementConstructor);\n return;\n }\n\n if (CONFIG_KEY in window) {\n return;\n }\n\n const el = document.createElement(tagName);\n const anotherVersion = (el as VscElement)?.version;\n let message = '';\n\n if (!anotherVersion) {\n message +=\n 'is already registered by an unknown custom element handler class.';\n } else if (anotherVersion !== VERSION) {\n message +=\n 'is already registered by a different version of VSCode Elements. ';\n message += `This version is \"${VERSION}\", while the other one is \"${anotherVersion}\".`;\n } else {\n message += `is already registered by the same version of VSCode Elements (${VERSION}).`;\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n `[VSCode Elements] ${tagName} ${message}\\nTo suppress this warning, set window.${CONFIG_KEY} to true`\n );\n };\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"base.styles.d.ts","sourceRoot":"","sources":["../../../src/includes/form-button-widget/base.styles.ts"],"names":[],"mappings":";AAEA,wBA2FE"}
1
+ {"version":3,"file":"base.styles.d.ts","sourceRoot":"","sources":["../../../src/includes/form-button-widget/base.styles.ts"],"names":[],"mappings":";AAEA,wBA0FE"}
@@ -2,12 +2,7 @@ import { css } from 'lit';
2
2
  export default [
3
3
  css `
4
4
  :host {
5
- color: var(--vscode-foreground, #cccccc);
6
5
  display: inline-block;
7
- font-family: var(--vscode-font-family, sans-serif);
8
- font-size: var(--vscode-font-size, 13px);
9
- font-weight: var(--vscode-font-weight, normal);
10
- line-height: 18px;
11
6
  }
12
7
 
13
8
  :host(:focus) {
@@ -19,9 +14,13 @@ export default [
19
14
  }
20
15
 
21
16
  .wrapper {
17
+ color: var(--vscode-foreground, #cccccc);
22
18
  cursor: pointer;
23
19
  display: block;
20
+ font-family: var(--vscode-font-family, sans-serif);
24
21
  font-size: var(--vscode-font-size, 13px);
22
+ font-weight: var(--vscode-font-weight, normal);
23
+ line-height: 18px;
25
24
  margin-bottom: 4px;
26
25
  margin-top: 4px;
27
26
  min-height: 18px;
@@ -34,15 +33,15 @@ export default [
34
33
  }
35
34
 
36
35
  input {
37
- position: absolute;
36
+ clip: rect(1px, 1px, 1px, 1px);
38
37
  height: 1px;
39
38
  left: 9px;
40
39
  margin: 0;
41
- top: 17px;
42
- width: 1px;
43
40
  overflow: hidden;
44
- clip: rect(1px, 1px, 1px, 1px);
41
+ position: absolute;
42
+ top: 17px;
45
43
  white-space: nowrap;
44
+ width: 1px;
46
45
  }
47
46
 
48
47
  .icon {
@@ -1 +1 @@
1
- {"version":3,"file":"base.styles.js","sourceRoot":"","sources":["../../../src/includes/form-button-widget/base.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,eAAe;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyFF;CACF,CAAC","sourcesContent":["import {css} from 'lit';\n\nexport default [\n css`\n :host {\n color: var(--vscode-foreground, #cccccc);\n display: inline-block;\n font-family: var(--vscode-font-family, sans-serif);\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 18px;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n :host([disabled]) {\n opacity: 0.4;\n }\n\n .wrapper {\n cursor: pointer;\n display: block;\n font-size: var(--vscode-font-size, 13px);\n margin-bottom: 4px;\n margin-top: 4px;\n min-height: 18px;\n position: relative;\n user-select: none;\n }\n\n :host([disabled]) .wrapper {\n cursor: default;\n }\n\n input {\n position: absolute;\n height: 1px;\n left: 9px;\n margin: 0;\n top: 17px;\n width: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n white-space: nowrap;\n }\n\n .icon {\n align-items: center;\n background-color: var(--vscode-settings-checkboxBackground, #313131);\n background-size: 16px;\n border: 1px solid var(--vscode-settings-checkboxBorder, #3c3c3c);\n box-sizing: border-box;\n color: var(--vscode-settings-checkboxForeground, #cccccc);\n display: flex;\n height: 18px;\n justify-content: center;\n left: 0;\n margin-left: 0;\n margin-right: 9px;\n padding: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 18px;\n }\n\n .icon.before-empty-label {\n margin-right: 0;\n }\n\n .label {\n cursor: pointer;\n display: block;\n min-height: 18px;\n min-width: 18px;\n }\n\n .label-inner {\n display: block;\n opacity: 0.9;\n padding-left: 27px;\n }\n\n .label-inner.empty {\n padding-left: 0;\n }\n\n :host([disabled]) .label {\n cursor: default;\n }\n `,\n];\n"]}
1
+ {"version":3,"file":"base.styles.js","sourceRoot":"","sources":["../../../src/includes/form-button-widget/base.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AAExB,eAAe;IACb,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFF;CACF,CAAC","sourcesContent":["import {css} from 'lit';\n\nexport default [\n css`\n :host {\n display: inline-block;\n }\n\n :host(:focus) {\n outline: none;\n }\n\n :host([disabled]) {\n opacity: 0.4;\n }\n\n .wrapper {\n color: var(--vscode-foreground, #cccccc);\n cursor: pointer;\n display: block;\n font-family: var(--vscode-font-family, sans-serif);\n font-size: var(--vscode-font-size, 13px);\n font-weight: var(--vscode-font-weight, normal);\n line-height: 18px;\n margin-bottom: 4px;\n margin-top: 4px;\n min-height: 18px;\n position: relative;\n user-select: none;\n }\n\n :host([disabled]) .wrapper {\n cursor: default;\n }\n\n input {\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n left: 9px;\n margin: 0;\n overflow: hidden;\n position: absolute;\n top: 17px;\n white-space: nowrap;\n width: 1px;\n }\n\n .icon {\n align-items: center;\n background-color: var(--vscode-settings-checkboxBackground, #313131);\n background-size: 16px;\n border: 1px solid var(--vscode-settings-checkboxBorder, #3c3c3c);\n box-sizing: border-box;\n color: var(--vscode-settings-checkboxForeground, #cccccc);\n display: flex;\n height: 18px;\n justify-content: center;\n left: 0;\n margin-left: 0;\n margin-right: 9px;\n padding: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 18px;\n }\n\n .icon.before-empty-label {\n margin-right: 0;\n }\n\n .label {\n cursor: pointer;\n display: block;\n min-height: 18px;\n min-width: 18px;\n }\n\n .label-inner {\n display: block;\n opacity: 0.9;\n padding-left: 27px;\n }\n\n .label-inner.empty {\n padding-left: 0;\n }\n\n :host([disabled]) .label {\n cursor: default;\n }\n `,\n];\n"]}
@@ -29,4 +29,15 @@ deltaY?: number, callbacks?: {
29
29
  afterMouseDown?: () => void | Promise<void>;
30
30
  afterMouseMove?: () => void | Promise<void>;
31
31
  }): Promise<void>;
32
+ type AllTagNames = keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap;
33
+ type TagNameToElement<K extends AllTagNames> = K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : K extends keyof SVGElementTagNameMap ? SVGElementTagNameMap[K] : Element;
34
+ export declare function $<K extends AllTagNames>(selector: K): TagNameToElement<K>;
35
+ export declare function $<K extends AllTagNames>(root: Element, selector: K): TagNameToElement<K>;
36
+ export declare function $<T extends Element = Element>(selector: string): T;
37
+ export declare function $<T extends Element = Element>(root: Element, selector: string): T;
38
+ export declare function $$<K extends AllTagNames>(selector: K): NodeListOf<TagNameToElement<K>>;
39
+ export declare function $$<K extends AllTagNames>(root: Element, selector: K): NodeListOf<TagNameToElement<K>>;
40
+ export declare function $$<T extends Element = Element>(selector: string): NodeListOf<T>;
41
+ export declare function $$<T extends Element = Element>(root: Element, selector: string): NodeListOf<T>;
42
+ export {};
32
43
  //# sourceMappingURL=test-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/includes/test-helpers.ts"],"names":[],"mappings":"AA2CA,8EAA8E;AAC9E,wBAAsB,cAAc;AAClC,2BAA2B;AAC3B,EAAE,EAAE,OAAO;AACX,2CAA2C;AAC3C,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAmB;AACnE,mEAAmE;AACnE,OAAO,SAAI;AACX,iEAAiE;AACjE,OAAO,SAAI,iBAUZ;AAED,8DAA8D;AAC9D,wBAAsB,kBAAkB;AACtC,2BAA2B;AAC3B,EAAE,EAAE,OAAO;AACX,2CAA2C;AAC3C,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAmB;AACnE,mEAAmE;AACnE,OAAO,SAAI;AACX,iEAAiE;AACjE,OAAO,SAAI,iBAUZ;AAED,8DAA8D;AAC9D,wBAAsB,WAAW;AAC/B,0BAA0B;AAC1B,EAAE,EAAE,OAAO;AACX,gDAAgD;AAChD,MAAM,SAAI;AACV,8CAA8C;AAC9C,MAAM,SAAI,EACV,SAAS,GAAE;IACT,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,GACL,OAAO,CAAC,IAAI,CAAC,CAYf"}
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/includes/test-helpers.ts"],"names":[],"mappings":"AA2CA,8EAA8E;AAC9E,wBAAsB,cAAc;AAClC,2BAA2B;AAC3B,EAAE,EAAE,OAAO;AACX,2CAA2C;AAC3C,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAmB;AACnE,mEAAmE;AACnE,OAAO,SAAI;AACX,iEAAiE;AACjE,OAAO,SAAI,iBAUZ;AAED,8DAA8D;AAC9D,wBAAsB,kBAAkB;AACtC,2BAA2B;AAC3B,EAAE,EAAE,OAAO;AACX,2CAA2C;AAC3C,QAAQ,GAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAmB;AACnE,mEAAmE;AACnE,OAAO,SAAI;AACX,iEAAiE;AACjE,OAAO,SAAI,iBAUZ;AAED,8DAA8D;AAC9D,wBAAsB,WAAW;AAC/B,0BAA0B;AAC1B,EAAE,EAAE,OAAO;AACX,gDAAgD;AAChD,MAAM,SAAI;AACV,8CAA8C;AAC9C,MAAM,SAAI,EACV,SAAS,GAAE;IACT,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC,GACL,OAAO,CAAC,IAAI,CAAC,CAYf;AAED,KAAK,WAAW,GAAG,MAAM,qBAAqB,GAAG,MAAM,oBAAoB,CAAC;AAE5E,KAAK,gBAAgB,CAAC,CAAC,SAAS,WAAW,IACzC,CAAC,SAAS,MAAM,qBAAqB,GACjC,qBAAqB,CAAC,CAAC,CAAC,GACxB,CAAC,SAAS,MAAM,oBAAoB,GAClC,oBAAoB,CAAC,CAAC,CAAC,GACvB,OAAO,CAAC;AAEhB,wBAAgB,CAAC,CAAC,CAAC,SAAS,WAAW,EAAE,QAAQ,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC3E,wBAAgB,CAAC,CAAC,CAAC,SAAS,WAAW,EACrC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,GACV,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACvB,wBAAgB,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;AACpE,wBAAgB,CAAC,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3C,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,CAAC,CAAC;AAwBL,wBAAgB,EAAE,CAAC,CAAC,SAAS,WAAW,EACtC,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,wBAAgB,EAAE,CAAC,CAAC,SAAS,WAAW,EACtC,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,GACV,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,wBAAgB,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC5C,QAAQ,EAAE,MAAM,GACf,UAAU,CAAC,CAAC,CAAC,CAAC;AACjB,wBAAgB,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC5C,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,GACf,UAAU,CAAC,CAAC,CAAC,CAAC"}
@@ -73,4 +73,40 @@ deltaY = 0, callbacks = {}) {
73
73
  await callbacks.afterMouseMove?.();
74
74
  await sendMouse({ type: 'up' });
75
75
  }
76
+ export function $(arg1, arg2) {
77
+ let result;
78
+ if (typeof arg1 === 'string') {
79
+ result = document.querySelector(arg1);
80
+ }
81
+ else if (arg1 instanceof Element && typeof arg2 === 'string') {
82
+ result = arg1.querySelector(arg2);
83
+ }
84
+ else {
85
+ throw new Error('Invalid arguments passed to $()');
86
+ }
87
+ if (!result) {
88
+ const selector = typeof arg1 === 'string' ? arg1 : arg2;
89
+ const context = typeof arg1 === 'string' ? 'document' : 'root element';
90
+ throw new Error(`No match for selector: ${selector} in ${context}`);
91
+ }
92
+ return result;
93
+ }
94
+ export function $$(arg1, arg2) {
95
+ let result;
96
+ if (typeof arg1 === 'string') {
97
+ result = document.querySelectorAll(arg1);
98
+ }
99
+ else if (arg1 instanceof Element && typeof arg2 === 'string') {
100
+ result = arg1.querySelectorAll(arg2);
101
+ }
102
+ else {
103
+ throw new Error('Invalid arguments passed to $$()');
104
+ }
105
+ if (result.length === 0) {
106
+ const selector = typeof arg1 === 'string' ? arg1 : arg2;
107
+ const context = typeof arg1 === 'string' ? 'document' : 'root element';
108
+ throw new Error(`No matches for selector: ${selector} in ${context}`);
109
+ }
110
+ return result;
111
+ }
76
112
  //# sourceMappingURL=test-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../src/includes/test-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Borrowed from Shoelace\n\nimport {sendMouse} from '@web/test-runner-commands';\n\nfunction determineMousePosition(\n el: Element,\n position: string,\n offsetX: number,\n offsetY: number\n) {\n const {x, y, width, height} = el.getBoundingClientRect();\n const centerX = Math.floor(x + window.scrollX + width / 2);\n const centerY = Math.floor(y + window.scrollY + height / 2);\n let clickX: number;\n let clickY: number;\n\n switch (position) {\n case 'top':\n clickX = centerX;\n clickY = y;\n break;\n case 'right':\n clickX = x + width - 1;\n clickY = centerY;\n break;\n case 'bottom':\n clickX = centerX;\n clickY = y + height - 1;\n break;\n case 'left':\n clickX = x;\n clickY = centerY;\n break;\n default:\n clickX = centerX;\n clickY = centerY;\n }\n\n clickX += offsetX;\n clickY += offsetY;\n return {clickX, clickY};\n}\n\n/** A testing utility that measures an element's position and clicks on it. */\nexport async function clickOnElement(\n /** The element to click */\n el: Element,\n /** The location of the element to click */\n position: 'top' | 'right' | 'bottom' | 'left' | 'center' = 'center',\n /** The horizontal offset to apply to the position when clicking */\n offsetX = 0,\n /** The vertical offset to apply to the position when clicking */\n offsetY = 0\n) {\n const {clickX, clickY} = determineMousePosition(\n el,\n position,\n offsetX,\n offsetY\n );\n\n await sendMouse({type: 'click', position: [clickX, clickY]});\n}\n\n/** A testing utility that moves the mouse onto an element. */\nexport async function moveMouseOnElement(\n /** The element to click */\n el: Element,\n /** The location of the element to click */\n position: 'top' | 'right' | 'bottom' | 'left' | 'center' = 'center',\n /** The horizontal offset to apply to the position when clicking */\n offsetX = 0,\n /** The vertical offset to apply to the position when clicking */\n offsetY = 0\n) {\n const {clickX, clickY} = determineMousePosition(\n el,\n position,\n offsetX,\n offsetY\n );\n\n await sendMouse({type: 'move', position: [clickX, clickY]});\n}\n\n/** A testing utility that drags an element with the mouse. */\nexport async function dragElement(\n /** The element to drag */\n el: Element,\n /** The horizontal distance to drag in pixels */\n deltaX = 0,\n /** The vertical distance to drag in pixels */\n deltaY = 0,\n callbacks: {\n afterMouseDown?: () => void | Promise<void>;\n afterMouseMove?: () => void | Promise<void>;\n } = {}\n): Promise<void> {\n await moveMouseOnElement(el);\n await sendMouse({type: 'down'});\n\n await callbacks.afterMouseDown?.();\n\n const {clickX, clickY} = determineMousePosition(el, 'center', deltaX, deltaY);\n await sendMouse({type: 'move', position: [clickX, clickY]});\n\n await callbacks.afterMouseMove?.();\n\n await sendMouse({type: 'up'});\n}\n"]}
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../src/includes/test-helpers.ts"],"names":[],"mappings":"AAAA,yBAAyB;AAEzB,OAAO,EAAC,SAAS,EAAC,MAAM,2BAA2B,CAAC;AAEpD,SAAS,sBAAsB,CAC7B,EAAW,EACX,QAAgB,EAChB,OAAe,EACf,OAAe;IAEf,MAAM,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;IACzD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,IAAI,MAAc,CAAC;IACnB,IAAI,MAAc,CAAC;IAEnB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,KAAK;YACR,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;QACR,KAAK,OAAO;YACV,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM;YACT,MAAM,GAAG,CAAC,CAAC;YACX,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM;QACR;YACE,MAAM,GAAG,OAAO,CAAC;YACjB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,OAAO,CAAC;IAClB,MAAM,IAAI,OAAO,CAAC;IAClB,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,KAAK,UAAU,cAAc;AAClC,2BAA2B;AAC3B,EAAW;AACX,2CAA2C;AAC3C,WAA2D,QAAQ;AACnE,mEAAmE;AACnE,OAAO,GAAG,CAAC;AACX,iEAAiE;AACjE,OAAO,GAAG,CAAC;IAEX,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,sBAAsB,CAC7C,EAAE,EACF,QAAQ,EACR,OAAO,EACP,OAAO,CACR,CAAC;IAEF,MAAM,SAAS,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,kBAAkB;AACtC,2BAA2B;AAC3B,EAAW;AACX,2CAA2C;AAC3C,WAA2D,QAAQ;AACnE,mEAAmE;AACnE,OAAO,GAAG,CAAC;AACX,iEAAiE;AACjE,OAAO,GAAG,CAAC;IAEX,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,sBAAsB,CAC7C,EAAE,EACF,QAAQ,EACR,OAAO,EACP,OAAO,CACR,CAAC;IAEF,MAAM,SAAS,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;AAC9D,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,WAAW;AAC/B,0BAA0B;AAC1B,EAAW;AACX,gDAAgD;AAChD,MAAM,GAAG,CAAC;AACV,8CAA8C;AAC9C,MAAM,GAAG,CAAC,EACV,YAGI,EAAE;IAEN,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,SAAS,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;IAEhC,MAAM,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;IAEnC,MAAM,EAAC,MAAM,EAAE,MAAM,EAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9E,MAAM,SAAS,CAAC,EAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAC,CAAC,CAAC;IAE5D,MAAM,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;IAEnC,MAAM,SAAS,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAChC,CAAC;AAqBD,MAAM,UAAU,CAAC,CACf,IAAsB,EACtB,IAAa;IAEb,IAAI,MAAsB,CAAC;IAE3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,IAAI,YAAY,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,OAAO,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAgBD,MAAM,UAAU,EAAE,CAChB,IAAsB,EACtB,IAAa;IAEb,IAAI,MAA2B,CAAC;IAEhC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,IAAI,YAAY,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/D,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAK,CAAC;QACzD,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,OAAO,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,MAAuB,CAAC;AACjC,CAAC","sourcesContent":["// Borrowed from Shoelace\n\nimport {sendMouse} from '@web/test-runner-commands';\n\nfunction determineMousePosition(\n el: Element,\n position: string,\n offsetX: number,\n offsetY: number\n) {\n const {x, y, width, height} = el.getBoundingClientRect();\n const centerX = Math.floor(x + window.scrollX + width / 2);\n const centerY = Math.floor(y + window.scrollY + height / 2);\n let clickX: number;\n let clickY: number;\n\n switch (position) {\n case 'top':\n clickX = centerX;\n clickY = y;\n break;\n case 'right':\n clickX = x + width - 1;\n clickY = centerY;\n break;\n case 'bottom':\n clickX = centerX;\n clickY = y + height - 1;\n break;\n case 'left':\n clickX = x;\n clickY = centerY;\n break;\n default:\n clickX = centerX;\n clickY = centerY;\n }\n\n clickX += offsetX;\n clickY += offsetY;\n return {clickX, clickY};\n}\n\n/** A testing utility that measures an element's position and clicks on it. */\nexport async function clickOnElement(\n /** The element to click */\n el: Element,\n /** The location of the element to click */\n position: 'top' | 'right' | 'bottom' | 'left' | 'center' = 'center',\n /** The horizontal offset to apply to the position when clicking */\n offsetX = 0,\n /** The vertical offset to apply to the position when clicking */\n offsetY = 0\n) {\n const {clickX, clickY} = determineMousePosition(\n el,\n position,\n offsetX,\n offsetY\n );\n\n await sendMouse({type: 'click', position: [clickX, clickY]});\n}\n\n/** A testing utility that moves the mouse onto an element. */\nexport async function moveMouseOnElement(\n /** The element to click */\n el: Element,\n /** The location of the element to click */\n position: 'top' | 'right' | 'bottom' | 'left' | 'center' = 'center',\n /** The horizontal offset to apply to the position when clicking */\n offsetX = 0,\n /** The vertical offset to apply to the position when clicking */\n offsetY = 0\n) {\n const {clickX, clickY} = determineMousePosition(\n el,\n position,\n offsetX,\n offsetY\n );\n\n await sendMouse({type: 'move', position: [clickX, clickY]});\n}\n\n/** A testing utility that drags an element with the mouse. */\nexport async function dragElement(\n /** The element to drag */\n el: Element,\n /** The horizontal distance to drag in pixels */\n deltaX = 0,\n /** The vertical distance to drag in pixels */\n deltaY = 0,\n callbacks: {\n afterMouseDown?: () => void | Promise<void>;\n afterMouseMove?: () => void | Promise<void>;\n } = {}\n): Promise<void> {\n await moveMouseOnElement(el);\n await sendMouse({type: 'down'});\n\n await callbacks.afterMouseDown?.();\n\n const {clickX, clickY} = determineMousePosition(el, 'center', deltaX, deltaY);\n await sendMouse({type: 'move', position: [clickX, clickY]});\n\n await callbacks.afterMouseMove?.();\n\n await sendMouse({type: 'up'});\n}\n\ntype AllTagNames = keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap;\n\ntype TagNameToElement<K extends AllTagNames> =\n K extends keyof HTMLElementTagNameMap\n ? HTMLElementTagNameMap[K]\n : K extends keyof SVGElementTagNameMap\n ? SVGElementTagNameMap[K]\n : Element;\n\nexport function $<K extends AllTagNames>(selector: K): TagNameToElement<K>;\nexport function $<K extends AllTagNames>(\n root: Element,\n selector: K\n): TagNameToElement<K>;\nexport function $<T extends Element = Element>(selector: string): T;\nexport function $<T extends Element = Element>(\n root: Element,\n selector: string\n): T;\nexport function $<T extends Element = Element>(\n arg1: string | Element,\n arg2?: string\n): T {\n let result: Element | null;\n\n if (typeof arg1 === 'string') {\n result = document.querySelector(arg1);\n } else if (arg1 instanceof Element && typeof arg2 === 'string') {\n result = arg1.querySelector(arg2);\n } else {\n throw new Error('Invalid arguments passed to $()');\n }\n\n if (!result) {\n const selector = typeof arg1 === 'string' ? arg1 : arg2!;\n const context = typeof arg1 === 'string' ? 'document' : 'root element';\n throw new Error(`No match for selector: ${selector} in ${context}`);\n }\n\n return result as T;\n}\n\nexport function $$<K extends AllTagNames>(\n selector: K\n): NodeListOf<TagNameToElement<K>>;\nexport function $$<K extends AllTagNames>(\n root: Element,\n selector: K\n): NodeListOf<TagNameToElement<K>>;\nexport function $$<T extends Element = Element>(\n selector: string\n): NodeListOf<T>;\nexport function $$<T extends Element = Element>(\n root: Element,\n selector: string\n): NodeListOf<T>;\nexport function $$<T extends Element = Element>(\n arg1: string | Element,\n arg2?: string\n): NodeListOf<T> {\n let result: NodeListOf<Element>;\n\n if (typeof arg1 === 'string') {\n result = document.querySelectorAll(arg1);\n } else if (arg1 instanceof Element && typeof arg2 === 'string') {\n result = arg1.querySelectorAll(arg2);\n } else {\n throw new Error('Invalid arguments passed to $$()');\n }\n\n if (result.length === 0) {\n const selector = typeof arg1 === 'string' ? arg1 : arg2!;\n const context = typeof arg1 === 'string' ? 'document' : 'root element';\n throw new Error(`No matches for selector: ${selector} in ${context}`);\n }\n\n return result as NodeListOf<T>;\n}\n"]}
@@ -26,7 +26,7 @@ let VscodeBadge = class VscodeBadge extends VscElement {
26
26
  this.variant = 'default';
27
27
  }
28
28
  render() {
29
- return html ` <slot></slot> `;
29
+ return html `<div class="root"><slot></slot></div>`;
30
30
  }
31
31
  };
32
32
  VscodeBadge.styles = styles;
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-badge.js","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C;;;;;;;;;;;GAWG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAIL,YAAO,GAIoB,SAAS,CAAC;IAKvC,CAAC;IAHU,MAAM;QACb,OAAO,IAAI,CAAA,iBAAiB,CAAC;IAC/B,CAAC;;AAXe,kBAAM,GAAG,MAAM,AAAT,CAAU;AAGhC;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;4CAKW;AAR1B,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAavB","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-badge.styles.js';\n\n/**\n * 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 * @tag vscode-badge\n *\n * @cssprop [--vscode-font-family=sans-serif] - A sans-serif font type depends on the host OS.\n * @cssprop [--vscode-contrastBorder=transparent]\n * @cssprop [--vscode-badge-background=#616161] - default and counter variant background color\n * @cssprop [--vscode-badge-foreground=#f8f8f8] - default and counter variant foreground color\n * @cssprop [--vscode-activityBarBadge-background=#0078d4] - activity bar variant background color\n * @cssprop [--vscode-activityBarBadge-foreground=#ffffff] - activity bar variant foreground color\n */\n@customElement('vscode-badge')\nexport class VscodeBadge extends VscElement {\n static override styles = styles;\n\n @property({reflect: true})\n variant:\n | 'default'\n | 'counter'\n | 'activity-bar-counter'\n | 'tab-header-counter' = 'default';\n\n override render(): TemplateResult {\n return html` <slot></slot> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-badge': VscodeBadge;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-badge.js","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,KAAK,CAAC;AACzC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C;;;;;;;;;;;GAWG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QAIL,YAAO,GAIoB,SAAS,CAAC;IAKvC,CAAC;IAHU,MAAM;QACb,OAAO,IAAI,CAAA,uCAAuC,CAAC;IACrD,CAAC;;AAXe,kBAAM,GAAG,MAAM,AAAT,CAAU;AAGhC;IADC,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;4CAKW;AAR1B,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAavB","sourcesContent":["import {html, TemplateResult} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {customElement, VscElement} from '../includes/VscElement.js';\nimport styles from './vscode-badge.styles.js';\n\n/**\n * 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 * @tag vscode-badge\n *\n * @cssprop [--vscode-font-family=sans-serif] - A sans-serif font type depends on the host OS.\n * @cssprop [--vscode-contrastBorder=transparent]\n * @cssprop [--vscode-badge-background=#616161] - default and counter variant background color\n * @cssprop [--vscode-badge-foreground=#f8f8f8] - default and counter variant foreground color\n * @cssprop [--vscode-activityBarBadge-background=#0078d4] - activity bar variant background color\n * @cssprop [--vscode-activityBarBadge-foreground=#ffffff] - activity bar variant foreground color\n */\n@customElement('vscode-badge')\nexport class VscodeBadge extends VscElement {\n static override styles = styles;\n\n @property({reflect: true})\n variant:\n | 'default'\n | 'counter'\n | 'activity-bar-counter'\n | 'tab-header-counter' = 'default';\n\n override render(): TemplateResult {\n return html`<div class=\"root\"><slot></slot></div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-badge': VscodeBadge;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-badge.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAY,MAAM,KAAK,CAAC;AAMnD,QAAA,MAAM,MAAM,EAAE,cAgDb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-badge.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAY,MAAM,KAAK,CAAC;AAMnD,QAAA,MAAM,MAAM,EAAE,cAoDb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -6,12 +6,16 @@ const styles = [
6
6
  defaultStyles,
7
7
  css `
8
8
  :host {
9
+ display: inline-block;
10
+ }
11
+
12
+ .root {
9
13
  background-color: var(--vscode-badge-background, #616161);
10
14
  border: 1px solid var(--vscode-contrastBorder, transparent);
11
15
  border-radius: 2px;
12
16
  box-sizing: border-box;
13
17
  color: var(--vscode-badge-foreground, #f8f8f8);
14
- display: inline-block;
18
+ display: block;
15
19
  font-family: var(--vscode-font-family, ${defaultFontStack});
16
20
  font-size: 11px;
17
21
  font-weight: 400;
@@ -22,7 +26,7 @@ const styles = [
22
26
  white-space: nowrap;
23
27
  }
24
28
 
25
- :host([variant='counter']) {
29
+ :host([variant='counter']) .root {
26
30
  border-radius: 11px;
27
31
  line-height: 11px;
28
32
  min-height: 18px;
@@ -30,7 +34,7 @@ const styles = [
30
34
  padding: 3px 6px;
31
35
  }
32
36
 
33
- :host([variant='activity-bar-counter']) {
37
+ :host([variant='activity-bar-counter']) .root {
34
38
  background-color: var(--vscode-activityBarBadge-background, #0078d4);
35
39
  border-radius: 20px;
36
40
  color: var(--vscode-activityBarBadge-foreground, #ffffff);
@@ -40,7 +44,7 @@ const styles = [
40
44
  padding: 0 4px;
41
45
  }
42
46
 
43
- :host([variant='tab-header-counter']) {
47
+ :host([variant='tab-header-counter']) .root {
44
48
  background-color: var(--vscode-activityBarBadge-background, #0078d4);
45
49
  border-radius: 10px;
46
50
  color: var(--vscode-activityBarBadge-foreground, #ffffff);
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-badge.styles.js","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.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;;;;;;;;+CAQ0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC5D;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-badge-background, #616161);\n border: 1px solid var(--vscode-contrastBorder, transparent);\n border-radius: 2px;\n box-sizing: border-box;\n color: var(--vscode-badge-foreground, #f8f8f8);\n display: inline-block;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: 11px;\n font-weight: 400;\n line-height: 14px;\n min-width: 18px;\n padding: 2px 3px;\n text-align: center;\n white-space: nowrap;\n }\n\n :host([variant='counter']) {\n border-radius: 11px;\n line-height: 11px;\n min-height: 18px;\n min-width: 18px;\n padding: 3px 6px;\n }\n\n :host([variant='activity-bar-counter']) {\n background-color: var(--vscode-activityBarBadge-background, #0078d4);\n border-radius: 20px;\n color: var(--vscode-activityBarBadge-foreground, #ffffff);\n font-size: 9px;\n font-weight: 600;\n line-height: 16px;\n padding: 0 4px;\n }\n\n :host([variant='tab-header-counter']) {\n background-color: var(--vscode-activityBarBadge-background, #0078d4);\n border-radius: 10px;\n color: var(--vscode-activityBarBadge-foreground, #ffffff);\n line-height: 10px;\n min-height: 16px;\n min-width: 16px;\n padding: 3px 5px;\n }\n `,\n];\n\nexport default styles;\n"]}
1
+ {"version":3,"file":"vscode-badge.styles.js","sourceRoot":"","sources":["../../src/vscode-badge/vscode-badge.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;;;;;;;;;;;;+CAY0C,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC5D;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 display: inline-block;\n }\n\n .root {\n background-color: var(--vscode-badge-background, #616161);\n border: 1px solid var(--vscode-contrastBorder, transparent);\n border-radius: 2px;\n box-sizing: border-box;\n color: var(--vscode-badge-foreground, #f8f8f8);\n display: block;\n font-family: var(--vscode-font-family, ${defaultFontStack});\n font-size: 11px;\n font-weight: 400;\n line-height: 14px;\n min-width: 18px;\n padding: 2px 3px;\n text-align: center;\n white-space: nowrap;\n }\n\n :host([variant='counter']) .root {\n border-radius: 11px;\n line-height: 11px;\n min-height: 18px;\n min-width: 18px;\n padding: 3px 6px;\n }\n\n :host([variant='activity-bar-counter']) .root {\n background-color: var(--vscode-activityBarBadge-background, #0078d4);\n border-radius: 20px;\n color: var(--vscode-activityBarBadge-foreground, #ffffff);\n font-size: 9px;\n font-weight: 600;\n line-height: 16px;\n padding: 0 4px;\n }\n\n :host([variant='tab-header-counter']) .root {\n background-color: var(--vscode-activityBarBadge-background, #0078d4);\n border-radius: 10px;\n color: var(--vscode-activityBarBadge-foreground, #ffffff);\n line-height: 10px;\n min-height: 16px;\n min-width: 16px;\n padding: 3px 5px;\n }\n `,\n];\n\nexport default styles;\n"]}
@@ -6,8 +6,6 @@ import '../vscode-icon/index.js';
6
6
  *
7
7
  * @tag vscode-button
8
8
  *
9
- * @fires vsc-click Dispatched only when button is not in disabled state.
10
- *
11
9
  * @cssprop [--vscode-button-background=#0078d4]
12
10
  * @cssprop [--vscode-button-foreground=#ffffff]
13
11
  * @cssprop [--vscode-button-border=var(--vscode-button-background, rgba(255, 255, 255, 0.07))]
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button.d.ts","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAGpE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,yBAAyB,CAAC;AAIjC;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,+BAAU;IAEhC,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAGpB,SAAS,UAAS;IAE3B,gBAAgB;IAEP,QAAQ,SAAK;IAEtB;;OAEG;IAEH,SAAS,UAAS;IAElB,gBAAgB;IAEP,IAAI,SAAY;IAGzB,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,QAAQ,CAAC,sBAAS;IAElB;;OAEG;IAEH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IAEH,SAAS,SAAM;IAEf;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAMH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,OAAO,UAAS;IAGhB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,QAAQ,UAAS;IAGjB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAY;IAG/C,KAAK,SAAM;IAEX,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAmB;IAErC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;;IASQ,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IAM5B,MAAM,CAEb,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACnE,IAAI;IAqBP,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEO,MAAM,IAAI,cAAc;CAqClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"vscode-button.d.ts","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,gBAAgB,EAAE,cAAc,EAAC,MAAM,KAAK,CAAC;AAGpE,OAAO,EAAgB,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,yBAAyB,CAAC;AAIjC;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,+BAAU;IAEhC,gBAAgB;IAChB,MAAM,CAAC,cAAc,UAAQ;IAGpB,SAAS,UAAS;IAE3B,gBAAgB;IAEP,QAAQ,SAAK;IAEtB;;OAEG;IAEH,SAAS,UAAS;IAElB,gBAAgB;IAEP,IAAI,SAAY;IAGzB,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,QAAQ,CAAC,sBAAS;IAElB;;OAEG;IAEH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IAEH,SAAS,SAAM;IAEf;;OAEG;IAEH,aAAa,UAAS;IAEtB;;OAEG;IAMH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,OAAO,UAAS;IAGhB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAGrC,QAAQ,UAAS;IAGjB,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAY;IAG/C,KAAK,SAAM;IAEX,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,UAAU,CAAmB;IAErC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;;IASQ,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IAM5B,MAAM,CAEb,iBAAiB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GACnE,IAAI;IAqBP,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,WAAW,CAEjB;IAEO,MAAM,IAAI,cAAc;CAuClC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAC;KAC/B;CACF"}
@@ -16,8 +16,6 @@ import { ifDefined } from 'lit/directives/if-defined.js';
16
16
  *
17
17
  * @tag vscode-button
18
18
  *
19
- * @fires vsc-click Dispatched only when button is not in disabled state.
20
- *
21
19
  * @cssprop [--vscode-button-background=#0078d4]
22
20
  * @cssprop [--vscode-button-foreground=#ffffff]
23
21
  * @cssprop [--vscode-button-border=var(--vscode-button-background, rgba(255, 255, 255, 0.07))]
@@ -129,15 +127,6 @@ let VscodeButton = class VscodeButton extends VscElement {
129
127
  _handleKeyDown(event) {
130
128
  if ((event.key === 'Enter' || event.key === ' ') &&
131
129
  !this.hasAttribute('disabled')) {
132
- /**
133
- * @deprecated
134
- * Please use the standard `click` event.
135
- */
136
- this.dispatchEvent(new CustomEvent('vsc-click', {
137
- detail: {
138
- originalEvent: new MouseEvent('click'),
139
- },
140
- }));
141
130
  const syntheticClick = new MouseEvent('click', {
142
131
  bubbles: true,
143
132
  cancelable: true,
@@ -152,19 +141,14 @@ let VscodeButton = class VscodeButton extends VscElement {
152
141
  return;
153
142
  }
154
143
  if (!this.hasAttribute('disabled')) {
155
- this.dispatchEvent(new CustomEvent('vsc-click', {
156
- detail: {
157
- originalEvent: event,
158
- },
159
- }));
160
144
  this._executeAction();
161
145
  }
162
146
  }
163
147
  render() {
164
148
  const hasIcon = this.icon !== '';
165
149
  const hasIconAfter = this.iconAfter !== '';
166
- const wrapperClasses = {
167
- wrapper: true,
150
+ const contentClasses = {
151
+ content: true,
168
152
  'has-icon-before': hasIcon,
169
153
  'has-icon-after': hasIconAfter,
170
154
  'icon-only': this.iconOnly,
@@ -186,12 +170,14 @@ let VscodeButton = class VscodeButton extends VscElement {
186
170
  ></vscode-icon>`
187
171
  : nothing;
188
172
  return html `
189
- <span class=${classMap(wrapperClasses)}>
190
- ${iconElem}
191
- <slot></slot>
192
- ${iconAfterElem}
193
- </span>
194
- <div class="divider"><div></div></div>
173
+ <div class="root">
174
+ <div class=${classMap(contentClasses)}>
175
+ ${iconElem}
176
+ <slot></slot>
177
+ ${iconAfterElem}
178
+ </div>
179
+ <div class="divider"><div></div></div>
180
+ </div>
195
181
  `;
196
182
  }
197
183
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, PropertyValueMap, 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 '../vscode-icon/index.js';\nimport styles from './vscode-button.styles.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\n\n/**\n * Clickable element that are used to trigger actions.\n *\n * @tag vscode-button\n *\n * @fires vsc-click Dispatched only when button is not in disabled state.\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')\nexport class VscodeButton extends VscElement {\n static override styles = styles;\n\n /** @internal */\n static formAssociated = true;\n\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n /** @internal */\n @property({type: Number, reflect: true})\n override tabIndex = 0;\n\n /**\n * Button has a less prominent style.\n */\n @property({type: Boolean, reflect: true})\n secondary = false;\n\n /** @internal */\n @property({reflect: true})\n override role = 'button';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n /**\n * A [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) before the label\n */\n @property()\n icon = '';\n\n /**\n * Spin property for the icon\n */\n @property({type: Boolean, reflect: true, attribute: 'icon-spin'})\n iconSpin? = false;\n\n /**\n * Duration property for the icon\n */\n @property({type: Number, reflect: true, attribute: 'icon-spin-duration'})\n iconSpinDuration?: number;\n\n /**\n * A [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) after the label\n */\n @property({attribute: 'icon-after'})\n iconAfter = '';\n\n /**\n * Spin property for the after icon\n */\n @property({type: Boolean, reflect: true, attribute: 'icon-after-spin'})\n iconAfterSpin = false;\n\n /**\n * Duration property for the after icon\n */\n @property({\n type: Number,\n reflect: true,\n attribute: 'icon-after-spin-duration',\n })\n iconAfterSpinDuration?: number;\n\n @property({type: Boolean, reflect: true})\n focused = false;\n\n @property({type: String, reflect: true})\n name: string | undefined = undefined;\n\n @property({type: Boolean, reflect: true, attribute: 'icon-only'})\n iconOnly = false;\n\n @property({reflect: true})\n type: 'submit' | 'reset' | 'button' = 'button';\n\n @property()\n value = '';\n\n private _prevTabindex = 0;\n private _internals: ElementInternals;\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this._handleKeyDown.bind(this));\n this.addEventListener('click', this._handleClick.bind(this));\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.autofocus) {\n if (this.tabIndex < 0) {\n this.tabIndex = 0;\n }\n\n this.updateComplete.then(() => {\n this.focus();\n this.requestUpdate();\n });\n }\n\n this.addEventListener('focus', this._handleFocus);\n this.addEventListener('blur', this._handleBlur);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('focus', this._handleFocus);\n this.removeEventListener('blur', this._handleBlur);\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('value')) {\n this._internals.setFormValue(this.value);\n }\n\n if (changedProperties.has('disabled')) {\n if (this.disabled) {\n // Save the original tabIndex, which may have been modified by the user.\n this._prevTabindex = this.tabIndex;\n // It's a native property, we don't care about re-rendering.\n // eslint-disable-next-line lit/no-property-change-update\n this.tabIndex = -1;\n } else {\n // eslint-disable-next-line lit/no-property-change-update\n this.tabIndex = this._prevTabindex;\n }\n }\n }\n\n private _executeAction() {\n if (this.type === 'submit' && this._internals.form) {\n this._internals.form.requestSubmit();\n }\n\n if (this.type === 'reset' && this._internals.form) {\n this._internals.form.reset();\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n if (\n (event.key === 'Enter' || event.key === ' ') &&\n !this.hasAttribute('disabled')\n ) {\n /**\n * @deprecated\n * Please use the standard `click` event.\n */\n this.dispatchEvent(\n new CustomEvent<{\n originalEvent: MouseEvent;\n }>('vsc-click', {\n detail: {\n originalEvent: new MouseEvent('click'),\n },\n })\n );\n\n const syntheticClick = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n }) as Event & {synthetic?: boolean};\n\n syntheticClick.synthetic = true;\n this.dispatchEvent(syntheticClick);\n\n this._executeAction();\n }\n }\n\n private _handleClick(event: MouseEvent) {\n if ((event as MouseEvent & {synthetic?: boolean}).synthetic) {\n return;\n }\n if (!this.hasAttribute('disabled')) {\n this.dispatchEvent(\n new CustomEvent<{\n originalEvent: MouseEvent;\n }>('vsc-click', {\n detail: {\n originalEvent: event,\n },\n })\n );\n\n this._executeAction();\n }\n }\n\n private _handleFocus = () => {\n this.focused = true;\n };\n\n private _handleBlur = () => {\n this.focused = false;\n };\n\n override render(): TemplateResult {\n const hasIcon = this.icon !== '';\n const hasIconAfter = this.iconAfter !== '';\n const wrapperClasses = {\n wrapper: true,\n 'has-icon-before': hasIcon,\n 'has-icon-after': hasIconAfter,\n 'icon-only': this.iconOnly,\n };\n\n const iconElem = hasIcon\n ? html`<vscode-icon\n name=${this.icon}\n ?spin=${this.iconSpin}\n spin-duration=${ifDefined(this.iconSpinDuration)}\n class=\"icon\"\n ></vscode-icon>`\n : nothing;\n\n const iconAfterElem = hasIconAfter\n ? html`<vscode-icon\n name=${this.iconAfter}\n ?spin=${this.iconAfterSpin}\n spin-duration=${ifDefined(this.iconAfterSpinDuration)}\n class=\"icon-after\"\n ></vscode-icon>`\n : nothing;\n\n return html`\n <span class=${classMap(wrapperClasses)}>\n ${iconElem}\n <slot></slot>\n ${iconAfterElem}\n </span>\n <div class=\"divider\"><div></div></div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-button': VscodeButton;\n }\n}\n"]}
1
+ {"version":3,"file":"vscode-button.js","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.ts"],"names":[],"mappings":"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","sourcesContent":["import {html, nothing, PropertyValueMap, 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 '../vscode-icon/index.js';\nimport styles from './vscode-button.styles.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\n\n/**\n * Clickable element that are used to trigger actions.\n *\n * @tag vscode-button\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')\nexport class VscodeButton extends VscElement {\n static override styles = styles;\n\n /** @internal */\n static formAssociated = true;\n\n @property({type: Boolean, reflect: true})\n override autofocus = false;\n\n /** @internal */\n @property({type: Number, reflect: true})\n override tabIndex = 0;\n\n /**\n * Button has a less prominent style.\n */\n @property({type: Boolean, reflect: true})\n secondary = false;\n\n /** @internal */\n @property({reflect: true})\n override role = 'button';\n\n @property({type: Boolean, reflect: true})\n disabled = false;\n\n /**\n * A [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) before the label\n */\n @property()\n icon = '';\n\n /**\n * Spin property for the icon\n */\n @property({type: Boolean, reflect: true, attribute: 'icon-spin'})\n iconSpin? = false;\n\n /**\n * Duration property for the icon\n */\n @property({type: Number, reflect: true, attribute: 'icon-spin-duration'})\n iconSpinDuration?: number;\n\n /**\n * A [Codicon](https://microsoft.github.io/vscode-codicons/dist/codicon.html) after the label\n */\n @property({attribute: 'icon-after'})\n iconAfter = '';\n\n /**\n * Spin property for the after icon\n */\n @property({type: Boolean, reflect: true, attribute: 'icon-after-spin'})\n iconAfterSpin = false;\n\n /**\n * Duration property for the after icon\n */\n @property({\n type: Number,\n reflect: true,\n attribute: 'icon-after-spin-duration',\n })\n iconAfterSpinDuration?: number;\n\n @property({type: Boolean, reflect: true})\n focused = false;\n\n @property({type: String, reflect: true})\n name: string | undefined = undefined;\n\n @property({type: Boolean, reflect: true, attribute: 'icon-only'})\n iconOnly = false;\n\n @property({reflect: true})\n type: 'submit' | 'reset' | 'button' = 'button';\n\n @property()\n value = '';\n\n private _prevTabindex = 0;\n private _internals: ElementInternals;\n\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n constructor() {\n super();\n this.addEventListener('keydown', this._handleKeyDown.bind(this));\n this.addEventListener('click', this._handleClick.bind(this));\n this._internals = this.attachInternals();\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n\n if (this.autofocus) {\n if (this.tabIndex < 0) {\n this.tabIndex = 0;\n }\n\n this.updateComplete.then(() => {\n this.focus();\n this.requestUpdate();\n });\n }\n\n this.addEventListener('focus', this._handleFocus);\n this.addEventListener('blur', this._handleBlur);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('focus', this._handleFocus);\n this.removeEventListener('blur', this._handleBlur);\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('value')) {\n this._internals.setFormValue(this.value);\n }\n\n if (changedProperties.has('disabled')) {\n if (this.disabled) {\n // Save the original tabIndex, which may have been modified by the user.\n this._prevTabindex = this.tabIndex;\n // It's a native property, we don't care about re-rendering.\n // eslint-disable-next-line lit/no-property-change-update\n this.tabIndex = -1;\n } else {\n // eslint-disable-next-line lit/no-property-change-update\n this.tabIndex = this._prevTabindex;\n }\n }\n }\n\n private _executeAction() {\n if (this.type === 'submit' && this._internals.form) {\n this._internals.form.requestSubmit();\n }\n\n if (this.type === 'reset' && this._internals.form) {\n this._internals.form.reset();\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n if (\n (event.key === 'Enter' || event.key === ' ') &&\n !this.hasAttribute('disabled')\n ) {\n const syntheticClick = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n }) as Event & {synthetic?: boolean};\n\n syntheticClick.synthetic = true;\n this.dispatchEvent(syntheticClick);\n\n this._executeAction();\n }\n }\n\n private _handleClick(event: MouseEvent) {\n if ((event as MouseEvent & {synthetic?: boolean}).synthetic) {\n return;\n }\n if (!this.hasAttribute('disabled')) {\n this._executeAction();\n }\n }\n\n private _handleFocus = () => {\n this.focused = true;\n };\n\n private _handleBlur = () => {\n this.focused = false;\n };\n\n override render(): TemplateResult {\n const hasIcon = this.icon !== '';\n const hasIconAfter = this.iconAfter !== '';\n const contentClasses = {\n content: true,\n 'has-icon-before': hasIcon,\n 'has-icon-after': hasIconAfter,\n 'icon-only': this.iconOnly,\n };\n\n const iconElem = hasIcon\n ? html`<vscode-icon\n name=${this.icon}\n ?spin=${this.iconSpin}\n spin-duration=${ifDefined(this.iconSpinDuration)}\n class=\"icon\"\n ></vscode-icon>`\n : nothing;\n\n const iconAfterElem = hasIconAfter\n ? html`<vscode-icon\n name=${this.iconAfter}\n ?spin=${this.iconAfterSpin}\n spin-duration=${ifDefined(this.iconAfterSpinDuration)}\n class=\"icon-after\"\n ></vscode-icon>`\n : nothing;\n\n return html`\n <div class=\"root\">\n <div class=${classMap(contentClasses)}>\n ${iconElem}\n <slot></slot>\n ${iconAfterElem}\n </div>\n <div class=\"divider\"><div></div></div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vscode-button': VscodeButton;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"vscode-button.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAY,MAAM,KAAK,CAAC;AAMnD,QAAA,MAAM,MAAM,EAAE,cA0Kb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vscode-button.styles.d.ts","sourceRoot":"","sources":["../../src/vscode-button/vscode-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,cAAc,EAAY,MAAM,KAAK,CAAC;AAMnD,QAAA,MAAM,MAAM,EAAE,cAuLb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -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"]}