@crowdstrike/glide-core 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button-group.button.d.ts +14 -15
- package/dist/button-group.button.js +1 -1
- package/dist/button-group.button.styles.js +75 -52
- package/dist/button-group.button.test.basics.d.ts +1 -1
- package/dist/button-group.button.test.basics.js +83 -147
- package/dist/button-group.button.test.events.js +8 -67
- package/dist/button-group.button.test.focus.js +13 -0
- package/dist/button-group.button.test.interactions.d.ts +1 -0
- package/dist/button-group.button.test.interactions.js +42 -0
- package/dist/button-group.d.ts +7 -10
- package/dist/button-group.js +1 -1
- package/dist/button-group.stories.d.ts +1 -5
- package/dist/button-group.styles.js +18 -6
- package/dist/button-group.test.basics.js +113 -234
- package/dist/button-group.test.events.js +210 -263
- package/dist/button-group.test.focus.d.ts +1 -0
- package/dist/button-group.test.focus.js +39 -0
- package/dist/button-group.test.interactions.d.ts +1 -0
- package/dist/button-group.test.interactions.js +91 -0
- package/dist/button.test.basics.js +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.styles.js +1 -1
- package/dist/checkbox-group.test.basics.js +1 -1
- package/dist/checkbox-group.test.events.js +4 -4
- package/dist/checkbox-group.test.focus.js +4 -3
- package/dist/checkbox.d.ts +7 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.styles.js +10 -0
- package/dist/checkbox.test.events.js +4 -4
- package/dist/checkbox.test.focus.js +2 -2
- package/dist/{checkbox.test.states.js → checkbox.test.interactions.js} +24 -1
- package/dist/drawer.js +1 -1
- package/dist/dropdown.d.ts +6 -4
- package/dist/dropdown.js +1 -1
- package/dist/dropdown.option.d.ts +6 -2
- package/dist/dropdown.option.js +1 -1
- package/dist/dropdown.option.styles.js +13 -0
- package/dist/dropdown.option.test.basics.js +6 -3
- package/dist/dropdown.option.test.events.js +1 -1
- package/dist/dropdown.option.test.focus.js +1 -1
- package/dist/dropdown.option.test.interactions.multiple.js +1 -54
- package/dist/dropdown.option.test.interactions.single.js +51 -9
- package/dist/dropdown.styles.js +20 -19
- package/dist/dropdown.test.basics.js +143 -2
- package/dist/dropdown.test.basics.multiple.js +5 -2
- package/dist/dropdown.test.events.filterable.js +74 -0
- package/dist/dropdown.test.events.js +49 -160
- package/dist/dropdown.test.events.multiple.js +265 -8
- package/dist/dropdown.test.events.single.js +199 -2
- package/dist/dropdown.test.focus.filterable.js +9 -5
- package/dist/dropdown.test.focus.js +1 -1
- package/dist/dropdown.test.focus.multiple.js +1 -1
- package/dist/dropdown.test.focus.single.js +1 -1
- package/dist/dropdown.test.interactions.filterable.js +68 -11
- package/dist/dropdown.test.interactions.js +94 -5
- package/dist/dropdown.test.interactions.multiple.js +202 -5
- package/dist/dropdown.test.interactions.single.js +68 -6
- package/dist/form-controls-layout.test.basics.js +1 -1
- package/dist/icon-button.test.basics.js +1 -1
- package/dist/icons/checked.d.ts +1 -1
- package/dist/icons/checked.js +1 -1
- package/dist/icons/magnifying-glass.js +1 -1
- package/dist/input.d.ts +0 -6
- package/dist/input.js +1 -1
- package/dist/input.styles.js +7 -2
- package/dist/input.test.basics.js +19 -5
- package/dist/input.test.events.js +4 -4
- package/dist/input.test.focus.js +4 -4
- package/dist/input.test.translations.d.ts +1 -0
- package/dist/input.test.translations.js +38 -0
- package/dist/input.test.validity.js +133 -4
- package/dist/label.d.ts +1 -1
- package/dist/label.js +1 -1
- package/dist/label.styles.js +22 -13
- package/dist/label.test.basics.js +26 -24
- package/dist/library/expect-argument-error.js +1 -1
- package/dist/library/localize.d.ts +3 -1
- package/dist/menu.d.ts +3 -5
- package/dist/menu.js +1 -1
- package/dist/menu.options.test.basics.js +2 -2
- package/dist/menu.styles.js +1 -15
- package/dist/menu.test.basics.d.ts +1 -2
- package/dist/menu.test.basics.js +22 -6
- package/dist/menu.test.focus.d.ts +1 -0
- package/dist/menu.test.focus.js +13 -6
- package/dist/menu.test.interactions.js +212 -56
- package/dist/modal.icon-button.test.basics.js +1 -1
- package/dist/modal.js +1 -1
- package/dist/modal.styles.js +18 -13
- package/dist/modal.tertiary-icon.d.ts +0 -1
- package/dist/modal.tertiary-icon.js +1 -1
- package/dist/modal.tertiary-icon.test.basics.js +1 -1
- package/dist/modal.test.basics.js +1 -1
- package/dist/modal.test.events.js +10 -10
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.styles.js +1 -1
- package/dist/radio-group.test.focus.js +3 -3
- package/dist/radio.d.ts +1 -0
- package/dist/radio.js +1 -1
- package/dist/radio.styles.js +33 -0
- package/dist/split-container.test.basics.js +4 -0
- package/dist/split-link.test.interactions.js +1 -1
- package/dist/styles/variables.css +1 -1
- package/dist/tab.d.ts +1 -1
- package/dist/tab.group.js +1 -1
- package/dist/tab.group.test.basics.js +1 -1
- package/dist/tab.group.test.interactions.js +198 -2
- package/dist/tab.js +1 -1
- package/dist/tab.panel.d.ts +1 -0
- package/dist/tab.panel.js +1 -1
- package/dist/tab.panel.styles.js +11 -1
- package/dist/tag.test.basics.js +2 -2
- package/dist/textarea.d.ts +0 -1
- package/dist/textarea.js +2 -2
- package/dist/textarea.stories.d.ts +3 -4
- package/dist/textarea.styles.js +14 -3
- package/dist/textarea.test.basics.js +80 -44
- package/dist/textarea.test.events.js +56 -41
- package/dist/textarea.test.translations.d.ts +1 -0
- package/dist/textarea.test.translations.js +34 -0
- package/dist/textarea.test.validity.js +104 -20
- package/dist/toasts.js +1 -1
- package/dist/toasts.styles.js +8 -1
- package/dist/toasts.test.basics.js +20 -0
- package/dist/toggle.js +1 -1
- package/dist/toggle.test.focus.js +1 -1
- package/dist/toggle.test.interactions.d.ts +1 -0
- package/dist/tooltip.d.ts +7 -5
- package/dist/tooltip.js +1 -1
- package/dist/tooltip.styles.js +90 -25
- package/dist/tooltip.test.basics.js +38 -3
- package/dist/tooltip.test.interactions.js +136 -34
- package/dist/translations/en.js +1 -1
- package/dist/translations/fr.js +1 -1
- package/dist/translations/ja.js +1 -1
- package/dist/tree.d.ts +0 -1
- package/dist/tree.item.d.ts +1 -2
- package/dist/tree.item.js +1 -1
- package/dist/tree.item.menu.d.ts +0 -1
- package/dist/tree.item.menu.js +1 -1
- package/dist/tree.js +1 -1
- package/dist/tree.test.basics.js +1 -1
- package/package.json +2 -4
- package/dist/drawer.test.floating-components.d.ts +0 -1
- package/dist/drawer.test.floating-components.js +0 -52
- package/dist/library/set-containing-block.d.ts +0 -15
- package/dist/library/set-containing-block.js +0 -1
- package/dist/modal.test.floating-components.js +0 -63
- /package/dist/{checkbox.test.states.d.ts → button-group.button.test.focus.d.ts} +0 -0
- /package/dist/{modal.test.floating-components.d.ts → checkbox.test.interactions.d.ts} +0 -0
- /package/dist/{toggle.test.states.d.ts → dropdown.test.events.filterable.d.ts} +0 -0
- /package/dist/{toggle.test.states.js → toggle.test.interactions.js} +0 -0
package/dist/menu.test.basics.js
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
|
-
import './menu.button.js';
|
3
|
-
import './menu.link.js';
|
4
2
|
import { ArgumentError } from 'ow';
|
5
|
-
import { expect, fixture, html } from '@open-wc/testing';
|
3
|
+
import { aTimeout, expect, fixture, html } from '@open-wc/testing';
|
6
4
|
import GlideCoreMenu from './menu.js';
|
5
|
+
import GlideCoreMenuButton from './menu.button.js';
|
6
|
+
import GlideCoreMenuLink from './menu.link.js';
|
7
7
|
import GlideCoreMenuOptions from './menu.options.js';
|
8
8
|
import expectArgumentError from './library/expect-argument-error.js';
|
9
9
|
import sinon from 'sinon';
|
10
10
|
GlideCoreMenu.shadowRootOptions.mode = 'open';
|
11
|
+
GlideCoreMenuButton.shadowRootOptions.mode = 'open';
|
12
|
+
GlideCoreMenuLink.shadowRootOptions.mode = 'open';
|
11
13
|
it('registers', async () => {
|
12
14
|
expect(window.customElements.get('glide-core-menu')).to.equal(GlideCoreMenu);
|
13
15
|
});
|
@@ -38,6 +40,7 @@ it('is accessible', async () => {
|
|
38
40
|
const target = component.querySelector('button');
|
39
41
|
const options = component.querySelector('glide-core-menu-options');
|
40
42
|
expect(target?.getAttribute('aria-controls')).to.equal(options?.id);
|
43
|
+
expect(target?.getAttribute('aria-haspopup')).to.equal('true');
|
41
44
|
expect(options?.ariaLabelledby).to.equal(target?.id);
|
42
45
|
await expect(component).to.be.accessible();
|
43
46
|
});
|
@@ -49,11 +52,16 @@ it('can be opened', async () => {
|
|
49
52
|
<glide-core-menu-link label="Link"></glide-core-menu-link>
|
50
53
|
</glide-core-menu-options>
|
51
54
|
</glide-core-menu>`);
|
55
|
+
// Wait for Floating UI.
|
56
|
+
await aTimeout(0);
|
52
57
|
const defaultSlot = component?.shadowRoot?.querySelector('slot:not([name])');
|
58
|
+
const options = component.querySelector('glide-core-menu-options');
|
53
59
|
const target = component.querySelector('button');
|
60
|
+
const link = component.querySelector('glide-core-menu-link');
|
54
61
|
expect(component.open).to.be.true;
|
55
|
-
expect(defaultSlot?.checkVisibility(
|
62
|
+
expect(defaultSlot?.checkVisibility()).to.be.true;
|
56
63
|
expect(target?.ariaExpanded).to.equal('true');
|
64
|
+
expect(options?.getAttribute('aria-activedescendant')).to.equal(link?.id);
|
57
65
|
});
|
58
66
|
it('can have a default slot', async () => {
|
59
67
|
const component = await fixture(html `<glide-core-menu>
|
@@ -92,6 +100,8 @@ it('activates the first menu link by default', async () => {
|
|
92
100
|
</glide-core-menu-options>
|
93
101
|
</glide-core-menu>
|
94
102
|
`);
|
103
|
+
// Wait for Floating UI.
|
104
|
+
await aTimeout(0);
|
95
105
|
const links = component.querySelectorAll('glide-core-menu-link');
|
96
106
|
const options = component.querySelector('glide-core-menu-options');
|
97
107
|
expect(links[0].privateActive).to.be.true;
|
@@ -109,6 +119,8 @@ it('activates the first menu button by default', async () => {
|
|
109
119
|
</glide-core-menu-options>
|
110
120
|
</glide-core-menu>
|
111
121
|
`);
|
122
|
+
// Wait for Floating UI.
|
123
|
+
await aTimeout(0);
|
112
124
|
const buttons = component.querySelectorAll('glide-core-menu-button');
|
113
125
|
const options = component.querySelector('glide-core-menu-options');
|
114
126
|
expect(buttons[0].privateActive).to.be.true;
|
@@ -123,10 +135,14 @@ it('is not opened when initially `open` and its target is `disabled`', async ()
|
|
123
135
|
<glide-core-menu-link label="Link"></glide-core-menu-link>
|
124
136
|
</glide-core-menu-options>
|
125
137
|
</glide-core-menu>`);
|
138
|
+
// Wait for Floating UI.
|
139
|
+
await aTimeout(0);
|
126
140
|
const defaultSlot = component?.shadowRoot?.querySelector('slot:not([name])');
|
127
141
|
const target = component.querySelector('button');
|
128
|
-
|
142
|
+
const options = component.querySelector('glide-core-menu-options');
|
143
|
+
expect(defaultSlot?.checkVisibility()).to.be.false;
|
129
144
|
expect(target?.ariaExpanded).to.equal('false');
|
145
|
+
expect(options?.getAttribute('aria-activedescendant')).to.equal('');
|
130
146
|
});
|
131
147
|
it('throws if it does not have a default slot', async () => {
|
132
148
|
await expectArgumentError(() => {
|
@@ -157,7 +173,7 @@ it('throws if it does not have a "target" slot', async () => {
|
|
157
173
|
spy();
|
158
174
|
}
|
159
175
|
}
|
160
|
-
expect(spy.
|
176
|
+
expect(spy.callCount).to.equal(1);
|
161
177
|
});
|
162
178
|
it('sets accessibility attributes', async () => {
|
163
179
|
const component = await fixture(html `<glide-core-menu>
|
package/dist/menu.test.focus.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unused-expressions */
|
2
2
|
import './menu.link.js';
|
3
|
-
import
|
3
|
+
import './menu.options.js';
|
4
|
+
import { aTimeout, assert, elementUpdated, expect, fixture, html, } from '@open-wc/testing';
|
4
5
|
import { sendKeys } from '@web/test-runner-commands';
|
5
6
|
import GlideCoreMenu from './menu.js';
|
6
|
-
import GlideCoreMenuOptions from './menu.options.js';
|
7
7
|
GlideCoreMenu.shadowRootOptions.mode = 'open';
|
8
8
|
it('focuses the target on `focus()`', async () => {
|
9
9
|
const component = await fixture(html `<glide-core-menu>
|
@@ -31,7 +31,7 @@ it('closes when it loses focus', async () => {
|
|
31
31
|
const defaultSlot = component?.shadowRoot?.querySelector('slot:not([name])');
|
32
32
|
const options = component.querySelector('glide-core-menu-options');
|
33
33
|
expect(component.open).to.be.false;
|
34
|
-
expect(defaultSlot?.checkVisibility(
|
34
|
+
expect(defaultSlot?.checkVisibility()).be.false;
|
35
35
|
expect(options?.getAttribute('aria-activedescendant')).to.equal('');
|
36
36
|
});
|
37
37
|
it('remains open when the options component is focused', async () => {
|
@@ -42,13 +42,14 @@ it('remains open when the options component is focused', async () => {
|
|
42
42
|
<glide-core-menu-link label="Link"></glide-core-menu-link>
|
43
43
|
</glide-core-menu-options>
|
44
44
|
</glide-core-menu>`);
|
45
|
+
// Wait for Floating UI.
|
46
|
+
await aTimeout(0);
|
45
47
|
component.focus();
|
46
48
|
const options = component.querySelector('glide-core-menu-options');
|
47
|
-
assert(options instanceof GlideCoreMenuOptions);
|
48
|
-
options.focus();
|
49
49
|
const defaultSlot = component?.shadowRoot?.querySelector('slot:not([name])');
|
50
|
+
options?.focus();
|
50
51
|
expect(component.open).to.be.true;
|
51
|
-
expect(defaultSlot?.checkVisibility(
|
52
|
+
expect(defaultSlot?.checkVisibility()).to.be.true;
|
52
53
|
});
|
53
54
|
it('remains open when an option is focused', async () => {
|
54
55
|
const component = await fixture(html `<glide-core-menu open>
|
@@ -58,11 +59,15 @@ it('remains open when an option is focused', async () => {
|
|
58
59
|
<glide-core-menu-link label="Link"></glide-core-menu-link>
|
59
60
|
</glide-core-menu-options>
|
60
61
|
</glide-core-menu>`);
|
62
|
+
// Wait for Floating UI.
|
63
|
+
await aTimeout(0);
|
61
64
|
component.focus();
|
65
|
+
const defaultSlot = component?.shadowRoot?.querySelector('slot:not([name])');
|
62
66
|
const option = component.querySelector('glide-core-menu-link');
|
63
67
|
assert(option);
|
64
68
|
option?.focus();
|
65
69
|
expect(component.open).to.be.true;
|
70
|
+
expect(defaultSlot?.checkVisibility()).to.be.true;
|
66
71
|
});
|
67
72
|
it('sets the focused option as active', async () => {
|
68
73
|
const component = await fixture(html `<glide-core-menu open>
|
@@ -73,6 +78,8 @@ it('sets the focused option as active', async () => {
|
|
73
78
|
<glide-core-menu-link label="Link"></glide-core-menu-link>
|
74
79
|
</glide-core-menu-options>
|
75
80
|
</glide-core-menu>`);
|
81
|
+
// Wait for Floating UI.
|
82
|
+
await aTimeout(0);
|
76
83
|
component.focus();
|
77
84
|
const target = component.querySelector('glide-core-menu-button');
|
78
85
|
const link = component.querySelector('glide-core-menu-link');
|