diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml
index 366346cd4..e7cc7eb61 100644
--- a/.github/workflows/verify.yml
+++ b/.github/workflows/verify.yml
@@ -24,6 +24,9 @@ jobs:
- name: Install dependencies
run: npm ci
+ - name: Transpile files
+ run: npm run build:ts
+
- name: Prettier
run: npm run prettier
diff --git a/dev/vscode-button-group.html b/dev/vscode-button-group.html
deleted file mode 100644
index 0913083f9..000000000
--- a/dev/vscode-button-group.html
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
-
- <vscode-button-group> Demo
-
-
-
-
-
-
-
-
- Basic example
-
-
-
-
- Hello World
-
-
-
-
-
-
- Left
-
- Right
-
-
-
-
-
- Left
-
- Right
-
-
-
-
-
- Primary
- Secondary
-
-
-
-
-
-
diff --git a/dev/vscode-button-group/vscode-button-group.html b/dev/vscode-button-group/vscode-button-group.html
new file mode 100644
index 000000000..dcc2c9726
--- /dev/null
+++ b/dev/vscode-button-group/vscode-button-group.html
@@ -0,0 +1,157 @@
+
+
+
+
+
+ <vscode-button-group> Demo
+
+
+
+
+
+
+
+
+ Basic example
+
+
+
+
+ Hello World
+
+
+
+
+
+
+ Left
+
+ Right
+
+
+
+
+
+ Left
+
+ Right
+
+
+
+
+
+ Primary
+ Secondary
+
+
+
+
+
+
+
+
diff --git a/dev/vscode-button/icon-button.html b/dev/vscode-button/icon-button.html
new file mode 100644
index 000000000..9a610b8e8
--- /dev/null
+++ b/dev/vscode-button/icon-button.html
@@ -0,0 +1,34 @@
+
+
+
+
+
+ VSCode Elements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/vscode-button-group/vscode-button-group.styles.ts b/src/vscode-button-group/vscode-button-group.styles.ts
index 5b8e5191c..6a80d0cb6 100644
--- a/src/vscode-button-group/vscode-button-group.styles.ts
+++ b/src/vscode-button-group/vscode-button-group.styles.ts
@@ -6,7 +6,7 @@ const styles: CSSResultGroup = [
defaultStyles,
css`
:host {
- display: flex;
+ display: inline-flex;
align-items: stretch;
padding: 0;
border: none;
diff --git a/src/vscode-button/vscode-button.styles.ts b/src/vscode-button/vscode-button.styles.ts
index 3dfb0bb86..f8b4bfa64 100644
--- a/src/vscode-button/vscode-button.styles.ts
+++ b/src/vscode-button/vscode-button.styles.ts
@@ -62,7 +62,7 @@ const styles: CSSResultGroup = [
outline: none;
}
- :host(:focus) {
+ :host(:focus-visible) {
background-color: var(--vscode-button-hoverBackground, #026ec1);
outline: 1px solid var(--vscode-focusBorder, #0078d4);
outline-offset: 2px;
@@ -110,7 +110,10 @@ const styles: CSSResultGroup = [
padding: 1px 13px;
}
- :host(:empty) .wrapper {
+ :host(:empty) .wrapper,
+ :host([icon-only]) .wrapper {
+ min-height: 24px;
+ min-width: 16px;
padding: 1px 5px;
}
diff --git a/src/vscode-button/vscode-button.ts b/src/vscode-button/vscode-button.ts
index 66208d23a..2b8160b2c 100644
--- a/src/vscode-button/vscode-button.ts
+++ b/src/vscode-button/vscode-button.ts
@@ -98,6 +98,9 @@ export class VscodeButton extends VscElement {
@property({type: String, reflect: true})
name: string | undefined = undefined;
+ @property({type: Boolean, reflect: true, attribute: 'icon-only'})
+ iconOnly = false;
+
@property({reflect: true})
type: 'submit' | 'reset' | 'button' = 'button';
@@ -241,6 +244,7 @@ export class VscodeButton extends VscElement {
wrapper: true,
'has-icon-before': hasIcon,
'has-icon-after': hasIconAfter,
+ 'icon-only': this.iconOnly,
};
const iconElem = hasIcon