@crowdstrike/glide-core 0.5.1 → 0.5.2
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.
- package/dist/accordion.js +1 -1
- package/dist/accordion.styles.js +4 -4
- package/dist/accordion.test.basics.js +109 -0
- package/dist/accordion.test.events.js +39 -0
- package/dist/button-group.button.js +1 -1
- package/dist/button-group.button.styles.js +4 -4
- package/dist/button-group.button.test.basics.js +169 -0
- package/dist/button-group.button.test.events.js +73 -0
- package/dist/button-group.js +1 -1
- package/dist/button-group.styles.js +3 -3
- package/dist/button-group.test.basics.js +268 -0
- package/dist/button-group.test.events.js +291 -0
- package/dist/button.js +1 -1
- package/dist/button.styles.js +4 -4
- package/dist/button.test.basics.js +196 -0
- package/dist/button.test.events.js +25 -0
- package/dist/button.test.form.js +49 -0
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.styles.js +2 -2
- package/dist/checkbox-group.test.basics.js +119 -0
- package/dist/checkbox-group.test.events.js +110 -0
- package/dist/checkbox-group.test.focus.js +45 -0
- package/dist/checkbox-group.test.form.js +130 -0
- package/dist/checkbox-group.test.validity.js +75 -0
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.styles.js +3 -3
- package/dist/checkbox.test.basics.js +89 -0
- package/dist/checkbox.test.events.js +87 -0
- package/dist/checkbox.test.focus.js +38 -0
- package/dist/checkbox.test.form.js +115 -0
- package/dist/checkbox.test.states.js +62 -0
- package/dist/checkbox.test.validity.js +51 -0
- package/dist/drawer.d.ts +2 -2
- package/dist/drawer.js +1 -15
- package/dist/drawer.styles.js +18 -4
- package/dist/drawer.test.accessibility.js +22 -0
- package/dist/drawer.test.basics.js +43 -0
- package/dist/drawer.test.closing.js +37 -0
- package/dist/drawer.test.events.js +52 -0
- package/dist/drawer.test.methods.js +34 -0
- package/dist/dropdown.d.ts +4 -2
- package/dist/dropdown.js +1 -1
- package/dist/dropdown.option.d.ts +0 -2
- package/dist/dropdown.option.js +1 -1
- package/dist/dropdown.option.styles.js +2 -2
- package/dist/dropdown.option.test.basics.js +59 -0
- package/dist/dropdown.option.test.basics.multiple.js +26 -0
- package/dist/dropdown.option.test.basics.single.js +20 -0
- package/dist/dropdown.option.test.events.js +27 -0
- package/dist/dropdown.option.test.focus.js +11 -0
- package/dist/dropdown.option.test.interactions.multiple.js +87 -0
- package/dist/dropdown.option.test.interactions.single.js +22 -0
- package/dist/dropdown.styles.js +25 -6
- package/dist/dropdown.test.basics.filterable.js +84 -0
- package/dist/dropdown.test.basics.js +233 -0
- package/dist/dropdown.test.basics.multiple.js +270 -0
- package/dist/dropdown.test.basics.single.js +79 -0
- package/dist/dropdown.test.events.js +268 -0
- package/dist/dropdown.test.events.multiple.js +130 -0
- package/dist/dropdown.test.focus.d.ts +1 -0
- package/dist/dropdown.test.focus.filterable.js +154 -0
- package/dist/dropdown.test.focus.js +18 -0
- package/dist/dropdown.test.focus.multiple.js +181 -0
- package/dist/dropdown.test.focus.single.js +53 -0
- package/dist/dropdown.test.form.js +140 -0
- package/dist/dropdown.test.form.multiple.js +149 -0
- package/dist/dropdown.test.form.single.js +128 -0
- package/dist/dropdown.test.interactions.filterable.js +385 -0
- package/dist/dropdown.test.interactions.js +446 -0
- package/dist/dropdown.test.interactions.multiple.js +908 -0
- package/dist/dropdown.test.interactions.single.js +466 -0
- package/dist/dropdown.test.validity.js +46 -0
- package/dist/icon-button.js +1 -1
- package/dist/icon-button.styles.js +3 -3
- package/dist/icon-button.test.basics.js +103 -0
- package/dist/icons/checked.js +1 -1
- package/dist/icons/magnifying-glass.js +1 -1
- package/dist/input.js +1 -1
- package/dist/input.styles.js +3 -3
- package/dist/input.test.basics.js +169 -0
- package/dist/input.test.events.js +97 -0
- package/dist/input.test.focus.js +54 -0
- package/dist/input.test.form.js +56 -0
- package/dist/input.test.validity.js +50 -0
- package/dist/label.js +1 -1
- package/dist/label.styles.js +3 -3
- package/dist/label.test.basics.js +129 -0
- package/dist/library/expect-argument-error.js +1 -1
- package/dist/library/ow.js +1 -1
- package/dist/library/ow.test.js +55 -0
- package/dist/menu.button.d.ts +1 -2
- package/dist/menu.button.js +1 -1
- package/dist/menu.button.styles.js +3 -3
- package/dist/menu.button.test.basics.js +42 -0
- package/dist/menu.d.ts +4 -0
- package/dist/menu.js +1 -1
- package/dist/menu.link.d.ts +1 -2
- package/dist/menu.link.js +1 -1
- package/dist/menu.link.styles.js +3 -3
- package/dist/menu.link.test.basics.js +46 -0
- package/dist/menu.styles.js +6 -6
- package/dist/menu.test.basics.js +161 -0
- package/dist/menu.test.focus.d.ts +0 -1
- package/dist/menu.test.focus.js +66 -0
- package/dist/menu.test.interactions.d.ts +0 -1
- package/dist/menu.test.interactions.js +522 -0
- package/dist/modal.icon-button.js +1 -1
- package/dist/modal.icon-button.styles.js +2 -2
- package/dist/modal.icon-button.test.basics.js +45 -0
- package/dist/modal.js +1 -15
- package/dist/modal.styles.js +4 -4
- package/dist/modal.tertiary-icon.js +1 -1
- package/dist/modal.tertiary-icon.test.basics.js +59 -0
- package/dist/modal.test.accessibility.js +48 -0
- package/dist/modal.test.basics.js +203 -0
- package/dist/modal.test.close.js +38 -0
- package/dist/modal.test.events.js +110 -0
- package/dist/modal.test.lock-scroll.js +76 -0
- package/dist/modal.test.methods.js +23 -0
- package/dist/modal.test.scrollbars.js +19 -0
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.styles.js +2 -2
- package/dist/radio-group.test.basics.js +323 -0
- package/dist/radio-group.test.events.js +277 -0
- package/dist/radio-group.test.focus.js +75 -0
- package/dist/radio-group.test.form.js +104 -0
- package/dist/radio-group.test.validity.js +228 -0
- package/dist/radio.js +1 -1
- package/dist/radio.styles.js +4 -4
- package/dist/split-button.d.ts +24 -0
- package/dist/split-button.js +1 -0
- package/dist/split-button.stories.d.ts +17 -0
- package/dist/split-button.styles.d.ts +2 -0
- package/dist/split-button.styles.js +103 -0
- package/dist/split-button.test.basics.d.ts +1 -0
- package/dist/split-button.test.basics.js +84 -0
- package/dist/split-container.d.ts +30 -0
- package/dist/split-container.js +1 -0
- package/dist/split-container.styles.d.ts +2 -0
- package/dist/split-container.styles.js +132 -0
- package/dist/split-container.test.basics.d.ts +3 -0
- package/dist/split-container.test.basics.js +445 -0
- package/dist/split-container.test.interactions.d.ts +1 -0
- package/dist/split-container.test.interactions.js +20 -0
- package/dist/split-link.d.ts +25 -0
- package/dist/split-link.js +1 -0
- package/dist/split-link.test.basics.d.ts +1 -0
- package/dist/split-link.test.basics.js +92 -0
- package/dist/split-link.test.interactions.d.ts +1 -0
- package/dist/split-link.test.interactions.js +19 -0
- package/dist/status-indicator.js +1 -1
- package/dist/status-indicator.styles.js +2 -2
- package/dist/status-indicator.test.basics.js +102 -0
- package/dist/styles/focus-outline.js +1 -4
- package/dist/styles/visually-hidden.js +1 -11
- package/dist/tab.group.js +1 -1
- package/dist/tab.group.styles.js +2 -2
- package/dist/tab.group.test.basics.js +185 -0
- package/dist/tab.js +1 -1
- package/dist/tab.panel.js +1 -1
- package/dist/tab.panel.styles.js +3 -3
- package/dist/tab.styles.js +2 -2
- package/dist/tab.test.basics.js +71 -0
- package/dist/tag.js +1 -1
- package/dist/tag.styles.js +3 -3
- package/dist/tag.test.basics.js +118 -0
- package/dist/tag.test.events.js +16 -0
- package/dist/tag.test.focus.js +11 -0
- package/dist/textarea.js +2 -2
- package/dist/textarea.styles.js +3 -3
- package/dist/textarea.test.basics.js +140 -0
- package/dist/textarea.test.events.js +204 -0
- package/dist/textarea.test.form.js +70 -0
- package/dist/textarea.test.validity.js +83 -0
- package/dist/toasts.js +1 -1
- package/dist/toasts.styles.js +2 -2
- package/dist/toasts.test.basics.js +94 -0
- package/dist/toasts.toast.js +1 -1
- package/dist/toasts.toast.styles.js +5 -2
- package/dist/toasts.toast.test.basics.js +139 -0
- package/dist/toggle.js +1 -1
- package/dist/toggle.styles.js +3 -3
- package/dist/toggle.test.basics.js +64 -0
- package/dist/toggle.test.events.js +29 -0
- package/dist/toggle.test.focus.js +9 -0
- package/dist/toggle.test.states.js +35 -0
- package/dist/tooltip.js +1 -1
- package/dist/tooltip.styles.js +3 -3
- package/dist/tooltip.test.basics.js +64 -0
- package/dist/tooltip.test.interactions.js +78 -0
- package/dist/tree.item.icon-button.js +1 -1
- package/dist/tree.item.icon-button.styles.js +2 -2
- package/dist/tree.item.icon-button.test.basics.js +13 -0
- package/dist/tree.item.js +1 -1
- package/dist/tree.item.menu.js +1 -1
- package/dist/tree.item.menu.styles.js +2 -2
- package/dist/tree.item.menu.test.basics.js +34 -0
- package/dist/tree.item.styles.js +2 -2
- package/dist/tree.item.test.basics.js +102 -0
- package/dist/tree.js +1 -1
- package/dist/tree.styles.js +2 -2
- package/dist/tree.test.aria.js +86 -0
- package/dist/tree.test.basics.js +123 -0
- package/dist/tree.test.events.js +19 -0
- package/dist/tree.test.focus.js +261 -0
- package/package.json +18 -16
- /package/dist/{dropdown.option.test.focus.multiple.d.ts → dropdown.option.test.focus.d.ts} +0 -0
- /package/dist/{dropdown.option.test.focus.single.d.ts → dropdown.test.events.multiple.d.ts} +0 -0
@@ -0,0 +1,268 @@
|
|
1
|
+
import './button-group.js';
|
2
|
+
import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
|
3
|
+
import GlideCoreButtonGroup from './button-group.js';
|
4
|
+
import GlideCoreButtonGroupButton from './button-group.button.js';
|
5
|
+
import expectArgumentError from './library/expect-argument-error.js';
|
6
|
+
GlideCoreButtonGroup.shadowRootOptions.mode = 'open';
|
7
|
+
GlideCoreButtonGroupButton.shadowRootOptions.mode = 'open';
|
8
|
+
it('registers', async () => {
|
9
|
+
expect(window.customElements.get('glide-core-button-group')).to.equal(GlideCoreButtonGroup);
|
10
|
+
});
|
11
|
+
it('is accessible', async () => {
|
12
|
+
const element = await fixture(html `<glide-core-button-group label="label"
|
13
|
+
><glide-core-button-group-button value="value"
|
14
|
+
>Button</glide-core-button-group-button
|
15
|
+
></glide-core-button-group
|
16
|
+
>`);
|
17
|
+
await expect(element).to.be.accessible();
|
18
|
+
});
|
19
|
+
it('renders a label and unordered list', async () => {
|
20
|
+
const element = await fixture(html `<glide-core-button-group label="label"
|
21
|
+
><glide-core-button-group-button value="value"
|
22
|
+
>Button</glide-core-button-group-button
|
23
|
+
></glide-core-button-group
|
24
|
+
>`);
|
25
|
+
const ulElement = element.shadowRoot?.querySelector('ul');
|
26
|
+
const labelElement = element.shadowRoot?.querySelector('div.label');
|
27
|
+
expect(ulElement).to.not.be.null;
|
28
|
+
expect(labelElement).to.not.be.null;
|
29
|
+
expect(ulElement).to.have.attribute('aria-labelledby', labelElement?.id);
|
30
|
+
});
|
31
|
+
it('does not render a label when not given', async () => {
|
32
|
+
const element = await fixture(html `<glide-core-button-group
|
33
|
+
><glide-core-button-group-button value="value"
|
34
|
+
>Button</glide-core-button-group-button
|
35
|
+
></glide-core-button-group
|
36
|
+
>`);
|
37
|
+
const ulElement = element.shadowRoot?.querySelector('ul');
|
38
|
+
const labelElement = element.shadowRoot?.querySelector('label');
|
39
|
+
expect(ulElement).to.not.be.null;
|
40
|
+
expect(labelElement).to.be.null;
|
41
|
+
});
|
42
|
+
it('assigns buttons the correct positional presentation when in a group', async () => {
|
43
|
+
await fixture(html `<glide-core-button-group>
|
44
|
+
<glide-core-button-group-button value="value-1"
|
45
|
+
>Button 1</glide-core-button-group-button
|
46
|
+
>
|
47
|
+
<glide-core-button-group-button value="value-2"
|
48
|
+
>Button 2</glide-core-button-group-button
|
49
|
+
>
|
50
|
+
<glide-core-button-group-button value="value-3"
|
51
|
+
>Button 3</glide-core-button-group-button
|
52
|
+
>
|
53
|
+
<glide-core-button-group-button value="value-4"
|
54
|
+
>Button 4</glide-core-button-group-button
|
55
|
+
>
|
56
|
+
</glide-core-button-group>`);
|
57
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
58
|
+
expect(buttonElements.length).to.equal(4);
|
59
|
+
const liElement1 = buttonElements[0].shadowRoot?.querySelector('li');
|
60
|
+
expect(liElement1).to.have.class('first');
|
61
|
+
const liElement2 = buttonElements[1].shadowRoot?.querySelector('li');
|
62
|
+
expect(liElement2).to.have.class('inner');
|
63
|
+
const liElement3 = buttonElements[2].shadowRoot?.querySelector('li');
|
64
|
+
expect(liElement3).to.have.class('inner');
|
65
|
+
const liElement4 = buttonElements[3].shadowRoot?.querySelector('li');
|
66
|
+
expect(liElement4).to.have.class('last');
|
67
|
+
});
|
68
|
+
it('buttons have a vertical presention when attribute "orientation" is set to "vertical"', async () => {
|
69
|
+
await fixture(html `<glide-core-button-group orientation="vertical"
|
70
|
+
><glide-core-button-group-button value="value"
|
71
|
+
>Button</glide-core-button-group-button
|
72
|
+
>
|
73
|
+
<glide-core-button-group-button value="value-2"
|
74
|
+
>Button 2</glide-core-button-group-button
|
75
|
+
>
|
76
|
+
</glide-core-button-group>`);
|
77
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
78
|
+
const liElement1 = buttonElements[0]?.shadowRoot?.querySelector('li');
|
79
|
+
const liElement2 = buttonElements[1]?.shadowRoot?.querySelector('li');
|
80
|
+
expect(buttonElements[0]).to.have.attribute('vertical');
|
81
|
+
expect(liElement1).to.have.class('vertical');
|
82
|
+
expect(buttonElements[1]).to.have.attribute('vertical');
|
83
|
+
expect(liElement2).to.have.class('vertical');
|
84
|
+
});
|
85
|
+
it('does not have a vertical presention when the "orientation" is not set to "vertical"', async () => {
|
86
|
+
await fixture(html `<glide-core-button-group label="label">
|
87
|
+
<glide-core-button-group-button value="value"
|
88
|
+
>Button</glide-core-button-group-button
|
89
|
+
>
|
90
|
+
<glide-core-button-group-button value="value-2"
|
91
|
+
>Button 2</glide-core-button-group-button
|
92
|
+
>
|
93
|
+
</glide-core-button-group>`);
|
94
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
95
|
+
const liElement1 = buttonElements[0]?.shadowRoot?.querySelector('li');
|
96
|
+
const liElement2 = buttonElements[1]?.shadowRoot?.querySelector('li');
|
97
|
+
expect(buttonElements[0]).to.not.have.attribute('vertical');
|
98
|
+
expect(liElement1).to.not.have.class('vertical');
|
99
|
+
expect(buttonElements[1]).to.not.have.attribute('vertical');
|
100
|
+
expect(liElement2).to.not.have.class('vertical');
|
101
|
+
});
|
102
|
+
it('reacts to "orientation" attribute when changed from "horizontal" to "vertical"', async () => {
|
103
|
+
const element = await fixture(html `<glide-core-button-group label="label" orientation="horizontal"
|
104
|
+
><glide-core-button-group-button value="value"
|
105
|
+
>Button</glide-core-button-group-button
|
106
|
+
></glide-core-button-group
|
107
|
+
>`);
|
108
|
+
const buttonElement = document.querySelector('glide-core-button-group-button');
|
109
|
+
const liElement = buttonElement?.shadowRoot?.querySelector('li');
|
110
|
+
expect(liElement).to.not.have.class('vertical');
|
111
|
+
element.setAttribute('orientation', 'vertical');
|
112
|
+
// wait for attributes to be set on li
|
113
|
+
await elementUpdated(element);
|
114
|
+
expect(liElement).to.have.class('vertical');
|
115
|
+
element.setAttribute('orientation', 'horizontal');
|
116
|
+
// wait for attributes to be set on li
|
117
|
+
await elementUpdated(element);
|
118
|
+
await expect(liElement).to.not.have.class('vertical');
|
119
|
+
});
|
120
|
+
it('applies an "icon-only" variant to buttons when set on the group', async () => {
|
121
|
+
await fixture(html `<glide-core-button-group label="label" variant="icon-only"
|
122
|
+
><glide-core-button-group-button value="value"
|
123
|
+
><span slot="prefix">Prefix 1</span>Button
|
124
|
+
1</glide-core-button-group-button
|
125
|
+
>
|
126
|
+
<glide-core-button-group-button value="value-2"
|
127
|
+
><span slot="prefix">Prefix 2</span>Button
|
128
|
+
2</glide-core-button-group-button
|
129
|
+
>
|
130
|
+
</glide-core-button-group>`);
|
131
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
132
|
+
const liElement1 = buttonElements[0]?.shadowRoot?.querySelector('li');
|
133
|
+
const liElement2 = buttonElements[1]?.shadowRoot?.querySelector('li');
|
134
|
+
expect(buttonElements[0]).to.have.attribute('variant', 'icon-only');
|
135
|
+
expect(liElement1).to.have.class('icon-only');
|
136
|
+
expect(buttonElements[1]).to.have.attribute('variant', 'icon-only');
|
137
|
+
expect(liElement2).to.have.class('icon-only');
|
138
|
+
});
|
139
|
+
it('does not apply an "icon-only" variant to buttons when not set on the group', async () => {
|
140
|
+
await fixture(html `<glide-core-button-group label="label"
|
141
|
+
><glide-core-button-group-button value="value"
|
142
|
+
>Button</glide-core-button-group-button
|
143
|
+
>
|
144
|
+
<glide-core-button-group-button value="value-2"
|
145
|
+
>Button 2</glide-core-button-group-button
|
146
|
+
>
|
147
|
+
</glide-core-button-group>`);
|
148
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
149
|
+
const liElement1 = buttonElements[0]?.shadowRoot?.querySelector('li');
|
150
|
+
const liElement2 = buttonElements[1]?.shadowRoot?.querySelector('li');
|
151
|
+
expect(buttonElements[0]).to.not.have.attribute('variant');
|
152
|
+
expect(liElement1).to.not.have.class('icon-only');
|
153
|
+
expect(buttonElements[1]).to.not.have.attribute('variant');
|
154
|
+
expect(liElement2).to.not.have.class('icon-only');
|
155
|
+
});
|
156
|
+
it('reacts to variant "icon-only" attribute when added and removed', async () => {
|
157
|
+
await fixture(html `<glide-core-button-group label="label"
|
158
|
+
><glide-core-button-group-button value="value"
|
159
|
+
><span slot="prefix">Prefix</span>Button</glide-core-button-group-button
|
160
|
+
></glide-core-button-group
|
161
|
+
>`);
|
162
|
+
const element = document.querySelector('glide-core-button-group');
|
163
|
+
const buttonElement = document.querySelector('glide-core-button-group-button');
|
164
|
+
expect(element).to.not.be.null;
|
165
|
+
expect(buttonElement).to.not.be.null;
|
166
|
+
expect(buttonElement).to.not.have.attribute('variant');
|
167
|
+
element?.setAttribute('variant', 'icon-only');
|
168
|
+
// wait for attributes to be set
|
169
|
+
await elementUpdated(element);
|
170
|
+
expect(buttonElement).to.have.attribute('variant', 'icon-only');
|
171
|
+
element?.removeAttribute('variant');
|
172
|
+
// wait for attributes to be set
|
173
|
+
await elementUpdated(element);
|
174
|
+
expect(buttonElement).to.not.have.attribute('variant');
|
175
|
+
});
|
176
|
+
it('throws an error when an element other than `glide-core-button-group-button` is a child of the default slot', async () => {
|
177
|
+
await expectArgumentError(() => {
|
178
|
+
return fixture(html `
|
179
|
+
<glide-core-button-group label="label">
|
180
|
+
<div>Content</div>
|
181
|
+
</glide-core-button-group>
|
182
|
+
`);
|
183
|
+
});
|
184
|
+
});
|
185
|
+
it('throws an error when the group has no children', async () => {
|
186
|
+
await expectArgumentError(() => {
|
187
|
+
return fixture(html `<glide-core-button-group label="label"> </glide-core-button-group>`);
|
188
|
+
});
|
189
|
+
});
|
190
|
+
it("has a tabble button if it's the first element in a button group", async () => {
|
191
|
+
await fixture(html `<glide-core-button-group>
|
192
|
+
<glide-core-button-group-button value="value-1"
|
193
|
+
>Button 1</glide-core-button-group-button
|
194
|
+
>
|
195
|
+
<glide-core-button-group-button value="value-2"
|
196
|
+
>Button 2</glide-core-button-group-button
|
197
|
+
>
|
198
|
+
<glide-core-button-group-button value="value-3"
|
199
|
+
>Button 3</glide-core-button-group-button
|
200
|
+
>
|
201
|
+
</glide-core-button-group>`);
|
202
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
203
|
+
expect(buttonElements.length).to.equal(3);
|
204
|
+
const liElement1 = buttonElements[0].shadowRoot?.querySelector('li');
|
205
|
+
expect(liElement1).to.have.attribute('tabindex', '0');
|
206
|
+
const liElement2 = buttonElements[1].shadowRoot?.querySelector('li');
|
207
|
+
expect(liElement2).to.have.attribute('tabindex', '-1');
|
208
|
+
const liElement3 = buttonElements[2].shadowRoot?.querySelector('li');
|
209
|
+
expect(liElement3).to.have.attribute('tabindex', '-1');
|
210
|
+
});
|
211
|
+
it('has the first non-disabled button set as tabbable when in a group', async () => {
|
212
|
+
await fixture(html `<glide-core-button-group>
|
213
|
+
<glide-core-button-group-button value="value-1" disabled
|
214
|
+
>Button 1</glide-core-button-group-button
|
215
|
+
>
|
216
|
+
<glide-core-button-group-button value="value-2"
|
217
|
+
>Button 2</glide-core-button-group-button
|
218
|
+
>
|
219
|
+
<glide-core-button-group-button value="value-3"
|
220
|
+
>Button 3</glide-core-button-group-button
|
221
|
+
>
|
222
|
+
</glide-core-button-group>`);
|
223
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
224
|
+
expect(buttonElements.length).to.equal(3);
|
225
|
+
const liElement1 = buttonElements[0].shadowRoot?.querySelector('li');
|
226
|
+
expect(liElement1).to.have.attribute('tabindex', '-1');
|
227
|
+
const liElement2 = buttonElements[1].shadowRoot?.querySelector('li');
|
228
|
+
expect(liElement2).to.have.attribute('tabindex', '0');
|
229
|
+
const liElement3 = buttonElements[2].shadowRoot?.querySelector('li');
|
230
|
+
expect(liElement3).to.have.attribute('tabindex', '-1');
|
231
|
+
});
|
232
|
+
it('has the "selected" button as tabbable and others are not when in a group', async () => {
|
233
|
+
await fixture(html `<glide-core-button-group>
|
234
|
+
<glide-core-button-group-button value="value-1"
|
235
|
+
>Button 1</glide-core-button-group-button
|
236
|
+
>
|
237
|
+
<glide-core-button-group-button value="value-2" selected
|
238
|
+
>Button 2</glide-core-button-group-button
|
239
|
+
>
|
240
|
+
<glide-core-button-group-button value="value-3"
|
241
|
+
>Button 3</glide-core-button-group-button
|
242
|
+
>
|
243
|
+
</glide-core-button-group>`);
|
244
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
245
|
+
expect(buttonElements.length).to.equal(3);
|
246
|
+
const liElement1 = buttonElements[0].shadowRoot?.querySelector('li');
|
247
|
+
expect(liElement1).to.have.attribute('tabindex', '-1');
|
248
|
+
const liElement2 = buttonElements[1].shadowRoot?.querySelector('li');
|
249
|
+
expect(liElement2).to.have.attribute('tabindex', '0');
|
250
|
+
const liElement3 = buttonElements[2].shadowRoot?.querySelector('li');
|
251
|
+
expect(liElement3).to.have.attribute('tabindex', '-1');
|
252
|
+
});
|
253
|
+
it('initially no button sets itself as tabbable if all are disabled in a group', async () => {
|
254
|
+
await fixture(html `<glide-core-button-group>
|
255
|
+
<glide-core-button-group-button value="value-1" disabled
|
256
|
+
>Button 1</glide-core-button-group-button
|
257
|
+
>
|
258
|
+
<glide-core-button-group-button value="value-2" disabled
|
259
|
+
>Button 2</glide-core-button-group-button
|
260
|
+
>
|
261
|
+
</glide-core-button-group>`);
|
262
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
263
|
+
expect(buttonElements.length).to.equal(2);
|
264
|
+
const liElement1 = buttonElements[0].shadowRoot?.querySelector('li');
|
265
|
+
expect(liElement1).to.have.attribute('tabindex', '-1');
|
266
|
+
const liElement2 = buttonElements[1].shadowRoot?.querySelector('li');
|
267
|
+
expect(liElement2).to.have.attribute('tabindex', '-1');
|
268
|
+
});
|
@@ -0,0 +1,291 @@
|
|
1
|
+
import './button-group.button.js';
|
2
|
+
import { elementUpdated, expect, fixture, html, oneEvent, } from '@open-wc/testing';
|
3
|
+
import { sendKeys } from '@web/test-runner-commands';
|
4
|
+
import GlideCoreButtonGroup from './button-group.js';
|
5
|
+
import GlideCoreButtonGroupButton from './button-group.button.js';
|
6
|
+
GlideCoreButtonGroup.shadowRootOptions.mode = 'open';
|
7
|
+
GlideCoreButtonGroupButton.shadowRootOptions.mode = 'open';
|
8
|
+
it('emits a change event when arrow keys are pressed', async () => {
|
9
|
+
await fixture(html `<glide-core-button-group>
|
10
|
+
<glide-core-button-group-button value="value-1"
|
11
|
+
>Button 1</glide-core-button-group-button
|
12
|
+
>
|
13
|
+
<glide-core-button-group-button value="value-2" selected
|
14
|
+
>Button 2</glide-core-button-group-button
|
15
|
+
>
|
16
|
+
<glide-core-button-group-button value="value-3"
|
17
|
+
>Button 3</glide-core-button-group-button
|
18
|
+
>
|
19
|
+
</glide-core-button-group>`);
|
20
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
21
|
+
await sendKeys({ press: 'Tab' });
|
22
|
+
// This pattern is adopted from https://open-wc.org/docs/testing/helpers/#testing-events
|
23
|
+
// Without the setTimeout the test fails. An `await` is used since `sendKeys` returns a
|
24
|
+
// promise, however the test seems to work without it. Keeping `await` here until this can
|
25
|
+
// be investigated further.
|
26
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowLeft' }));
|
27
|
+
const changeEventLeft = await oneEvent(buttonElements[0], 'change');
|
28
|
+
expect(changeEventLeft instanceof Event).to.be.true;
|
29
|
+
expect(changeEventLeft.bubbles).to.be.true;
|
30
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowRight' }));
|
31
|
+
const changeEventRight = await oneEvent(buttonElements[1], 'change');
|
32
|
+
expect(changeEventRight instanceof Event).to.be.true;
|
33
|
+
expect(changeEventRight.bubbles).to.be.true;
|
34
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowUp' }));
|
35
|
+
const changeEventUp = await oneEvent(buttonElements[0], 'change');
|
36
|
+
expect(changeEventUp instanceof Event).to.be.true;
|
37
|
+
expect(changeEventUp.bubbles).to.be.true;
|
38
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowDown' }));
|
39
|
+
const changeEventDown = await oneEvent(buttonElements[1], 'change');
|
40
|
+
expect(changeEventDown instanceof Event).to.be.true;
|
41
|
+
expect(changeEventDown.bubbles).to.be.true;
|
42
|
+
});
|
43
|
+
it('emits an input event when arrow keys are pressed', async () => {
|
44
|
+
await fixture(html `<glide-core-button-group>
|
45
|
+
<glide-core-button-group-button value="value-1"
|
46
|
+
>Button 1</glide-core-button-group-button
|
47
|
+
>
|
48
|
+
<glide-core-button-group-button value="value-2" selected
|
49
|
+
>Button 2</glide-core-button-group-button
|
50
|
+
>
|
51
|
+
<glide-core-button-group-button value="value-3"
|
52
|
+
>Button 3</glide-core-button-group-button
|
53
|
+
>
|
54
|
+
</glide-core-button-group>`);
|
55
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
56
|
+
await sendKeys({ press: 'Tab' });
|
57
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowLeft' }));
|
58
|
+
const inputEventLeft = await oneEvent(buttonElements[0], 'input');
|
59
|
+
expect(inputEventLeft instanceof Event).to.be.true;
|
60
|
+
expect(inputEventLeft.bubbles).to.be.true;
|
61
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowRight' }));
|
62
|
+
const inputEventRight = await oneEvent(buttonElements[1], 'input');
|
63
|
+
expect(inputEventRight instanceof Event).to.be.true;
|
64
|
+
expect(inputEventRight.bubbles).to.be.true;
|
65
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowUp' }));
|
66
|
+
const inputEventUp = await oneEvent(buttonElements[0], 'input');
|
67
|
+
expect(inputEventUp instanceof Event).to.be.true;
|
68
|
+
expect(inputEventUp.bubbles).to.be.true;
|
69
|
+
setTimeout(async () => await sendKeys({ press: 'ArrowDown' }));
|
70
|
+
const inputEventDown = await oneEvent(buttonElements[1], 'input');
|
71
|
+
expect(inputEventDown instanceof Event).to.be.true;
|
72
|
+
expect(inputEventDown.bubbles).to.be.true;
|
73
|
+
});
|
74
|
+
it('moves focus to previous button when left or up arrow keys are pressed', async () => {
|
75
|
+
await fixture(html `<glide-core-button-group>
|
76
|
+
<glide-core-button-group-button value="value-1"
|
77
|
+
>Button 1</glide-core-button-group-button
|
78
|
+
>
|
79
|
+
<glide-core-button-group-button value="value-2"
|
80
|
+
>Button 2</glide-core-button-group-button
|
81
|
+
>
|
82
|
+
<glide-core-button-group-button value="value-3" selected
|
83
|
+
>Button 3</glide-core-button-group-button
|
84
|
+
>
|
85
|
+
</glide-core-button-group>`);
|
86
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
87
|
+
await sendKeys({ press: 'Tab' });
|
88
|
+
await sendKeys({ press: 'ArrowLeft' });
|
89
|
+
expect(buttonElements[1]).to.have.focus;
|
90
|
+
await sendKeys({ press: 'ArrowUp' });
|
91
|
+
expect(buttonElements[0]).to.have.focus;
|
92
|
+
});
|
93
|
+
it('moves focus to last button when left or up arrow keys are pressed on the first button', async () => {
|
94
|
+
await fixture(html `<glide-core-button-group>
|
95
|
+
<glide-core-button-group-button value="value-1" selected
|
96
|
+
>Button 1</glide-core-button-group-button
|
97
|
+
>
|
98
|
+
<glide-core-button-group-button value="value-2"
|
99
|
+
>Button 2</glide-core-button-group-button
|
100
|
+
>
|
101
|
+
<glide-core-button-group-button value="value-3"
|
102
|
+
>Button 3</glide-core-button-group-button
|
103
|
+
>
|
104
|
+
</glide-core-button-group>`);
|
105
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
106
|
+
await sendKeys({ press: 'Tab' });
|
107
|
+
await sendKeys({ press: 'ArrowLeft' });
|
108
|
+
expect(buttonElements[2]).to.have.focus;
|
109
|
+
buttonElements[0].focus();
|
110
|
+
await sendKeys({ press: ' ' });
|
111
|
+
await sendKeys({ press: 'ArrowUp' });
|
112
|
+
expect(buttonElements[2]).to.have.focus;
|
113
|
+
});
|
114
|
+
it('moves focus to next button when right or down arrow keys are pressed', async () => {
|
115
|
+
await fixture(html `<glide-core-button-group>
|
116
|
+
<glide-core-button-group-button value="value-1" selected
|
117
|
+
>Button 1</glide-core-button-group-button
|
118
|
+
>
|
119
|
+
<glide-core-button-group-button value="value-2"
|
120
|
+
>Button 2</glide-core-button-group-button
|
121
|
+
>
|
122
|
+
<glide-core-button-group-button value="value-3"
|
123
|
+
>Button 3</glide-core-button-group-button
|
124
|
+
>
|
125
|
+
</glide-core-button-group>`);
|
126
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
127
|
+
await sendKeys({ press: 'Tab' });
|
128
|
+
await sendKeys({ press: 'ArrowRight' });
|
129
|
+
expect(buttonElements[1]).to.have.focus;
|
130
|
+
await sendKeys({ press: 'ArrowDown' });
|
131
|
+
expect(buttonElements[2]).to.have.focus;
|
132
|
+
});
|
133
|
+
it('moves focus to first button when right or down arrow keys are pressed on the last button', async () => {
|
134
|
+
await fixture(html `<glide-core-button-group>
|
135
|
+
<glide-core-button-group-button value="value-1"
|
136
|
+
>Button 1</glide-core-button-group-button
|
137
|
+
>
|
138
|
+
<glide-core-button-group-button value="value-2"
|
139
|
+
>Button 2</glide-core-button-group-button
|
140
|
+
>
|
141
|
+
<glide-core-button-group-button value="value-3" selected
|
142
|
+
>Button 3</glide-core-button-group-button
|
143
|
+
>
|
144
|
+
</glide-core-button-group>`);
|
145
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
146
|
+
await sendKeys({ press: 'Tab' });
|
147
|
+
await sendKeys({ press: 'ArrowRight' });
|
148
|
+
expect(buttonElements[0]).to.have.focus;
|
149
|
+
buttonElements[2].focus();
|
150
|
+
await sendKeys({ press: ' ' });
|
151
|
+
expect(buttonElements[2]).to.have.focus;
|
152
|
+
await sendKeys({ press: 'ArrowDown' });
|
153
|
+
expect(buttonElements[0]).to.have.focus;
|
154
|
+
});
|
155
|
+
it('moves focus to previous enabled button when pressing left or up arrow keys', async () => {
|
156
|
+
await fixture(html `<glide-core-button-group>
|
157
|
+
<glide-core-button-group-button value="value-1"
|
158
|
+
>Button 1</glide-core-button-group-button
|
159
|
+
>
|
160
|
+
<glide-core-button-group-button value="value-2" disabled
|
161
|
+
>Button 2</glide-core-button-group-button
|
162
|
+
>
|
163
|
+
<glide-core-button-group-button value="value-3" selected
|
164
|
+
>Button 3</glide-core-button-group-button
|
165
|
+
>
|
166
|
+
</glide-core-button-group>`);
|
167
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
168
|
+
await sendKeys({ press: 'Tab' });
|
169
|
+
await sendKeys({ press: 'ArrowLeft' });
|
170
|
+
expect(buttonElements[0]).to.have.focus;
|
171
|
+
buttonElements[2].focus();
|
172
|
+
await sendKeys({ press: ' ' });
|
173
|
+
expect(buttonElements[2]).to.have.focus;
|
174
|
+
await sendKeys({ press: 'ArrowUp' });
|
175
|
+
expect(buttonElements[0]).to.have.focus;
|
176
|
+
});
|
177
|
+
it('moves focus to next enabled button when pressing right or down arrow keys', async () => {
|
178
|
+
await fixture(html `<glide-core-button-group>
|
179
|
+
<glide-core-button-group-button value="value-1" selected
|
180
|
+
>Button 1</glide-core-button-group-button
|
181
|
+
>
|
182
|
+
<glide-core-button-group-button value="value-2" disabled
|
183
|
+
>Button 2</glide-core-button-group-button
|
184
|
+
>
|
185
|
+
<glide-core-button-group-button value="value-3"
|
186
|
+
>Button 3</glide-core-button-group-button
|
187
|
+
>
|
188
|
+
</glide-core-button-group>`);
|
189
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
190
|
+
await sendKeys({ press: 'Tab' });
|
191
|
+
await sendKeys({ press: 'ArrowRight' });
|
192
|
+
expect(buttonElements[2]).to.have.focus;
|
193
|
+
buttonElements[0].focus();
|
194
|
+
await sendKeys({ press: ' ' });
|
195
|
+
expect(buttonElements[0]).to.have.focus;
|
196
|
+
await sendKeys({ press: 'ArrowDown' });
|
197
|
+
expect(buttonElements[2]).to.have.focus;
|
198
|
+
});
|
199
|
+
it('does not move focus if there is only one button when pressing arrow keys', async () => {
|
200
|
+
await fixture(html `<glide-core-button-group>
|
201
|
+
<glide-core-button-group-button value="value-1"
|
202
|
+
>Button 1</glide-core-button-group-button
|
203
|
+
>
|
204
|
+
</glide-core-button-group>`);
|
205
|
+
const buttonElement = document.querySelector('glide-core-button-group-button');
|
206
|
+
await sendKeys({ press: 'Tab' });
|
207
|
+
await sendKeys({ press: 'ArrowLeft' });
|
208
|
+
expect(buttonElement).to.have.focus;
|
209
|
+
await sendKeys({ press: 'ArrowRight' });
|
210
|
+
expect(buttonElement).to.have.focus;
|
211
|
+
await sendKeys({ press: 'ArrowUp' });
|
212
|
+
expect(buttonElement).to.have.focus;
|
213
|
+
await sendKeys({ press: 'ArrowDown' });
|
214
|
+
expect(buttonElement).to.have.focus;
|
215
|
+
});
|
216
|
+
it('changes the "selected" attribute when clicking', async () => {
|
217
|
+
const element = await fixture(html `<glide-core-button-group>
|
218
|
+
<glide-core-button-group-button value="value-1" selected
|
219
|
+
>Button 1</glide-core-button-group-button
|
220
|
+
>
|
221
|
+
<glide-core-button-group-button value="value-2"
|
222
|
+
>Button 2</glide-core-button-group-button
|
223
|
+
>
|
224
|
+
<glide-core-button-group-button value="value-3"
|
225
|
+
>Button 3</glide-core-button-group-button
|
226
|
+
>
|
227
|
+
</glide-core-button-group>`);
|
228
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
229
|
+
const liElement = buttonElements[2].shadowRoot.querySelector('li');
|
230
|
+
expect(liElement).to.exist;
|
231
|
+
liElement?.click();
|
232
|
+
await elementUpdated(element);
|
233
|
+
expect(buttonElements[2]).to.have.focus;
|
234
|
+
expect(buttonElements[2]).to.have.attribute('selected');
|
235
|
+
expect(buttonElements[0]).to.not.have.attribute('selected');
|
236
|
+
});
|
237
|
+
it('does not change focus nor the "selected" attribute when clicking a disabled button', async () => {
|
238
|
+
const element = await fixture(html `<glide-core-button-group>
|
239
|
+
<glide-core-button-group-button value="value-1" selected
|
240
|
+
>Button 1</glide-core-button-group-button
|
241
|
+
>
|
242
|
+
<glide-core-button-group-button value="value-2" disabled
|
243
|
+
>Button 2</glide-core-button-group-button
|
244
|
+
>
|
245
|
+
</glide-core-button-group>`);
|
246
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
247
|
+
await sendKeys({ press: 'Tab' });
|
248
|
+
const liElement = buttonElements[0].shadowRoot.querySelector('li');
|
249
|
+
expect(liElement).to.exist;
|
250
|
+
liElement?.click();
|
251
|
+
await elementUpdated(element);
|
252
|
+
expect(buttonElements[0]).to.have.focus;
|
253
|
+
expect(buttonElements[0]).to.have.attribute('selected');
|
254
|
+
expect(buttonElements[1]).to.not.have.attribute('selected');
|
255
|
+
});
|
256
|
+
it('changes the "selected" attribute when pressing arrow and space keys', async () => {
|
257
|
+
await fixture(html `<glide-core-button-group>
|
258
|
+
<glide-core-button-group-button value="value-1" selected
|
259
|
+
>Button 1</glide-core-button-group-button
|
260
|
+
>
|
261
|
+
<glide-core-button-group-button value="value-2"
|
262
|
+
>Button 2</glide-core-button-group-button
|
263
|
+
>
|
264
|
+
<glide-core-button-group-button value="value-3"
|
265
|
+
>Button 3</glide-core-button-group-button
|
266
|
+
>
|
267
|
+
</glide-core-button-group>`);
|
268
|
+
const buttonElements = document.querySelectorAll('glide-core-button-group-button');
|
269
|
+
await sendKeys({ press: 'Tab' });
|
270
|
+
await sendKeys({ press: 'ArrowRight' });
|
271
|
+
expect(buttonElements[1]).to.have.focus;
|
272
|
+
expect(buttonElements[1]).to.have.attribute('selected');
|
273
|
+
expect(buttonElements[0]).to.not.have.attribute('selected');
|
274
|
+
await sendKeys({ press: 'ArrowDown' });
|
275
|
+
expect(buttonElements[2]).to.have.focus;
|
276
|
+
expect(buttonElements[2]).to.have.attribute('selected');
|
277
|
+
expect(buttonElements[1]).to.not.have.attribute('selected');
|
278
|
+
await sendKeys({ press: 'ArrowUp' });
|
279
|
+
expect(buttonElements[1]).to.have.focus;
|
280
|
+
expect(buttonElements[1]).to.have.attribute('selected');
|
281
|
+
expect(buttonElements[2]).to.not.have.attribute('selected');
|
282
|
+
await sendKeys({ press: 'ArrowLeft' });
|
283
|
+
expect(buttonElements[0]).to.have.focus;
|
284
|
+
expect(buttonElements[0]).to.have.attribute('selected');
|
285
|
+
expect(buttonElements[1]).to.not.have.attribute('selected');
|
286
|
+
buttonElements[2].focus();
|
287
|
+
await sendKeys({ press: ' ' });
|
288
|
+
expect(buttonElements[2]).to.have.focus;
|
289
|
+
expect(buttonElements[2]).to.have.attribute('selected');
|
290
|
+
expect(buttonElements[0]).to.not.have.attribute('selected');
|
291
|
+
});
|
package/dist/button.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
var __decorate=this&&this.__decorate||function(t,e,o,i){var r,s=arguments.length,l=s<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(t,e,o,i);else for(var a=t.length-1;a>=0;a--)(r=t[a])&&(l=(s<3?r(l):s>3?r(e,o,l):r(e,o))||l);return s>3&&l&&Object.defineProperty(e,o,l),l};import{LitElement,html}from"lit";import{classMap}from"lit/directives/class-map.js";import{createRef,ref}from"lit/directives/ref.js";import{customElement,property,state}from"lit/decorators.js";import{owSlot}from"./library/ow.js";import styles from"./button.styles.js";let GlideCoreButton=class GlideCoreButton extends LitElement{static{this.formAssociated=!0}static{this.shadowRootOptions={...LitElement.shadowRootOptions,delegatesFocus:!0,mode:"closed"}}static{this.styles=styles}get form(){return this.#t.form}firstUpdated(){owSlot(this.#e.value)}render(){return html`<button class="${classMap({component:!0,primary:"primary"===this.variant,secondary:"secondary"===this.variant,tertiary:"tertiary"===this.variant,large:"large"===this.size,small:"small"===this.size,"has-prefix":this.hasPrefixSlot,"has-suffix":this.hasSuffixSlot})}" type="${this.type}" ?disabled="${this.disabled}" @click="${this.#o}" @keydown="${this.#i}"><slot name="prefix" @slotchange="${this.#r}" ${ref(this.#s)}></slot><slot @slotchange="${this.#l}" ${ref(this.#e)}></slot><slot name="suffix" @slotchange="${this.#a}" ${ref(this.#n)}></slot></button>`}constructor(){super(),this.ariaExpanded=null,this.ariaHasPopup=null,this.disabled=!1,this.type="button",this.variant="primary",this.size="large",this.hasPrefixSlot=!1,this.hasSuffixSlot=!1,this.#e=createRef(),this.#s=createRef(),this.#n=createRef(),this.#t=this.attachInternals()}#e;#t;#s;#n;#o(){"button"!==this.type&&("submit"!==this.type?this.form?.reset():this.form?.requestSubmit())}#l(){owSlot(this.#e.value)}#i(t){["Enter"].includes(t.key)&&(t.preventDefault(),this.#o())}#r(){const t=this.#s.value?.assignedNodes();this.hasPrefixSlot=!!(t&&t.length>0)}#a(){const t=this.#n.value?.assignedNodes();this.hasSuffixSlot=!!(t&&t.length>0)}};__decorate([property({reflect:!0})],GlideCoreButton.prototype,"ariaExpanded",void 0),__decorate([property({reflect:!0})],GlideCoreButton.prototype,"ariaHasPopup",void 0),__decorate([property({type:Boolean,reflect:!0})],GlideCoreButton.prototype,"disabled",void 0),__decorate([property()],GlideCoreButton.prototype,"type",void 0),__decorate([property({reflect:!0})],GlideCoreButton.prototype,"variant",void 0),__decorate([property({reflect:!0})],GlideCoreButton.prototype,"size",void 0),__decorate([state()],GlideCoreButton.prototype,"hasPrefixSlot",void 0),__decorate([state()],GlideCoreButton.prototype,"hasSuffixSlot",void 0),GlideCoreButton=__decorate([customElement("glide-core-button")],GlideCoreButton);export default GlideCoreButton;
|
package/dist/button.styles.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
import{css}from"lit";import focusOutline from"./styles/focus-outline.js";export default[css`
|
2
2
|
:host {
|
3
3
|
/* Contains elements with "padding" and "width". Inline by default. */
|
4
4
|
display: inline-block;
|
@@ -7,7 +7,7 @@
|
|
7
7
|
.component {
|
8
8
|
align-items: center;
|
9
9
|
border-color: transparent;
|
10
|
-
border-radius:
|
10
|
+
border-radius: 0.75rem;
|
11
11
|
border-style: solid;
|
12
12
|
border-width: 1px;
|
13
13
|
cursor: pointer;
|
@@ -29,7 +29,7 @@
|
|
29
29
|
}
|
30
30
|
|
31
31
|
&:focus-visible {
|
32
|
-
${
|
32
|
+
${focusOutline};
|
33
33
|
}
|
34
34
|
|
35
35
|
&:disabled {
|
@@ -130,4 +130,4 @@
|
|
130
130
|
min-inline-size: 4.375rem;
|
131
131
|
}
|
132
132
|
}
|
133
|
-
`];
|
133
|
+
`];
|