@crowdstrike/glide-core 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/drawer.d.ts +2 -2
  2. package/dist/drawer.js +1 -1
  3. package/dist/drawer.styles.js +3 -3
  4. package/dist/dropdown.js +11 -11
  5. package/dist/dropdown.option.d.ts +1 -1
  6. package/dist/dropdown.option.js +1 -1
  7. package/dist/dropdown.styles.js +11 -16
  8. package/dist/input.styles.js +6 -1
  9. package/dist/styles/variables.css +1 -1
  10. package/dist/textarea.styles.js +6 -0
  11. package/dist/toasts.d.ts +2 -2
  12. package/dist/toasts.toast.d.ts +1 -1
  13. package/dist/toasts.toast.js +1 -1
  14. package/dist/toasts.toast.styles.js +8 -0
  15. package/dist/tree.item.styles.js +2 -2
  16. package/package.json +9 -6
  17. package/dist/accordion.stories.d.ts +0 -6
  18. package/dist/accordion.test.basics.d.ts +0 -1
  19. package/dist/accordion.test.basics.js +0 -28
  20. package/dist/accordion.test.events.d.ts +0 -1
  21. package/dist/accordion.test.events.js +0 -28
  22. package/dist/accordion.test.focus.d.ts +0 -1
  23. package/dist/accordion.test.focus.js +0 -11
  24. package/dist/accordion.test.interactions.d.ts +0 -1
  25. package/dist/accordion.test.interactions.js +0 -75
  26. package/dist/button-group.button.test.basics.d.ts +0 -1
  27. package/dist/button-group.button.test.basics.js +0 -97
  28. package/dist/button-group.button.test.events.d.ts +0 -1
  29. package/dist/button-group.button.test.events.js +0 -15
  30. package/dist/button-group.button.test.focus.d.ts +0 -1
  31. package/dist/button-group.button.test.focus.js +0 -13
  32. package/dist/button-group.button.test.interactions.d.ts +0 -1
  33. package/dist/button-group.button.test.interactions.js +0 -42
  34. package/dist/button-group.stories.d.ts +0 -7
  35. package/dist/button-group.test.basics.d.ts +0 -1
  36. package/dist/button-group.test.basics.js +0 -148
  37. package/dist/button-group.test.events.d.ts +0 -1
  38. package/dist/button-group.test.events.js +0 -241
  39. package/dist/button-group.test.focus.d.ts +0 -1
  40. package/dist/button-group.test.focus.js +0 -39
  41. package/dist/button-group.test.interactions.d.ts +0 -1
  42. package/dist/button-group.test.interactions.js +0 -91
  43. package/dist/button.stories.d.ts +0 -7
  44. package/dist/button.test.basics.d.ts +0 -1
  45. package/dist/button.test.basics.js +0 -69
  46. package/dist/button.test.events.d.ts +0 -1
  47. package/dist/button.test.events.js +0 -102
  48. package/dist/checkbox-group.stories.d.ts +0 -6
  49. package/dist/checkbox-group.test.basics.d.ts +0 -1
  50. package/dist/checkbox-group.test.basics.js +0 -116
  51. package/dist/checkbox-group.test.events.d.ts +0 -1
  52. package/dist/checkbox-group.test.events.js +0 -111
  53. package/dist/checkbox-group.test.focus.d.ts +0 -1
  54. package/dist/checkbox-group.test.focus.js +0 -70
  55. package/dist/checkbox-group.test.form.d.ts +0 -1
  56. package/dist/checkbox-group.test.form.js +0 -131
  57. package/dist/checkbox-group.test.interactions.d.ts +0 -1
  58. package/dist/checkbox-group.test.interactions.js +0 -82
  59. package/dist/checkbox-group.test.validity.d.ts +0 -1
  60. package/dist/checkbox-group.test.validity.js +0 -145
  61. package/dist/checkbox.stories.d.ts +0 -5
  62. package/dist/checkbox.test.basics.d.ts +0 -1
  63. package/dist/checkbox.test.basics.js +0 -90
  64. package/dist/checkbox.test.events.d.ts +0 -1
  65. package/dist/checkbox.test.events.js +0 -105
  66. package/dist/checkbox.test.focus.d.ts +0 -1
  67. package/dist/checkbox.test.focus.js +0 -51
  68. package/dist/checkbox.test.form.d.ts +0 -1
  69. package/dist/checkbox.test.form.js +0 -133
  70. package/dist/checkbox.test.interactions.d.ts +0 -1
  71. package/dist/checkbox.test.interactions.js +0 -131
  72. package/dist/checkbox.test.validity.d.ts +0 -1
  73. package/dist/checkbox.test.validity.js +0 -128
  74. package/dist/drawer.stories.d.ts +0 -6
  75. package/dist/drawer.test.accessibility.d.ts +0 -1
  76. package/dist/drawer.test.accessibility.js +0 -22
  77. package/dist/drawer.test.basics.d.ts +0 -1
  78. package/dist/drawer.test.basics.js +0 -44
  79. package/dist/drawer.test.closing.d.ts +0 -1
  80. package/dist/drawer.test.closing.js +0 -40
  81. package/dist/drawer.test.events.d.ts +0 -1
  82. package/dist/drawer.test.events.js +0 -42
  83. package/dist/drawer.test.methods.d.ts +0 -1
  84. package/dist/drawer.test.methods.js +0 -35
  85. package/dist/dropdown.option.test.basics.d.ts +0 -1
  86. package/dist/dropdown.option.test.basics.js +0 -34
  87. package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
  88. package/dist/dropdown.option.test.basics.multiple.js +0 -36
  89. package/dist/dropdown.option.test.basics.single.d.ts +0 -1
  90. package/dist/dropdown.option.test.basics.single.js +0 -29
  91. package/dist/dropdown.option.test.events.d.ts +0 -1
  92. package/dist/dropdown.option.test.events.js +0 -36
  93. package/dist/dropdown.option.test.focus.d.ts +0 -1
  94. package/dist/dropdown.option.test.focus.js +0 -11
  95. package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
  96. package/dist/dropdown.option.test.interactions.multiple.js +0 -42
  97. package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
  98. package/dist/dropdown.option.test.interactions.single.js +0 -76
  99. package/dist/dropdown.stories.d.ts +0 -8
  100. package/dist/dropdown.test.basics.d.ts +0 -1
  101. package/dist/dropdown.test.basics.filterable.d.ts +0 -1
  102. package/dist/dropdown.test.basics.filterable.js +0 -108
  103. package/dist/dropdown.test.basics.js +0 -181
  104. package/dist/dropdown.test.basics.multiple.d.ts +0 -1
  105. package/dist/dropdown.test.basics.multiple.js +0 -259
  106. package/dist/dropdown.test.basics.single.d.ts +0 -1
  107. package/dist/dropdown.test.basics.single.js +0 -122
  108. package/dist/dropdown.test.events.d.ts +0 -1
  109. package/dist/dropdown.test.events.filterable.d.ts +0 -1
  110. package/dist/dropdown.test.events.filterable.js +0 -31
  111. package/dist/dropdown.test.events.js +0 -251
  112. package/dist/dropdown.test.events.multiple.d.ts +0 -1
  113. package/dist/dropdown.test.events.multiple.js +0 -446
  114. package/dist/dropdown.test.events.single.d.ts +0 -1
  115. package/dist/dropdown.test.events.single.js +0 -343
  116. package/dist/dropdown.test.focus.d.ts +0 -1
  117. package/dist/dropdown.test.focus.filterable.d.ts +0 -1
  118. package/dist/dropdown.test.focus.filterable.js +0 -140
  119. package/dist/dropdown.test.focus.js +0 -107
  120. package/dist/dropdown.test.focus.multiple.d.ts +0 -1
  121. package/dist/dropdown.test.focus.multiple.js +0 -170
  122. package/dist/dropdown.test.focus.single.d.ts +0 -1
  123. package/dist/dropdown.test.focus.single.js +0 -42
  124. package/dist/dropdown.test.form.d.ts +0 -1
  125. package/dist/dropdown.test.form.js +0 -74
  126. package/dist/dropdown.test.form.multiple.d.ts +0 -1
  127. package/dist/dropdown.test.form.multiple.js +0 -151
  128. package/dist/dropdown.test.form.single.d.ts +0 -1
  129. package/dist/dropdown.test.form.single.js +0 -129
  130. package/dist/dropdown.test.interactions.d.ts +0 -1
  131. package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
  132. package/dist/dropdown.test.interactions.filterable.js +0 -805
  133. package/dist/dropdown.test.interactions.js +0 -696
  134. package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
  135. package/dist/dropdown.test.interactions.multiple.js +0 -1026
  136. package/dist/dropdown.test.interactions.single.d.ts +0 -1
  137. package/dist/dropdown.test.interactions.single.js +0 -569
  138. package/dist/dropdown.test.validity.d.ts +0 -1
  139. package/dist/dropdown.test.validity.js +0 -181
  140. package/dist/form-controls-layout.stories.d.ts +0 -10
  141. package/dist/form-controls-layout.test.basics.d.ts +0 -2
  142. package/dist/form-controls-layout.test.basics.js +0 -75
  143. package/dist/form-controls-layout.test.interactions.d.ts +0 -2
  144. package/dist/form-controls-layout.test.interactions.js +0 -26
  145. package/dist/icon-button.stories.d.ts +0 -6
  146. package/dist/icon-button.test.basics.d.ts +0 -1
  147. package/dist/icon-button.test.basics.js +0 -43
  148. package/dist/icon-button.test.focus.d.ts +0 -1
  149. package/dist/icon-button.test.focus.js +0 -13
  150. package/dist/input.stories.d.ts +0 -8
  151. package/dist/input.test.basics.d.ts +0 -1
  152. package/dist/input.test.basics.js +0 -138
  153. package/dist/input.test.events.d.ts +0 -1
  154. package/dist/input.test.events.js +0 -98
  155. package/dist/input.test.focus.d.ts +0 -1
  156. package/dist/input.test.focus.js +0 -58
  157. package/dist/input.test.form.d.ts +0 -1
  158. package/dist/input.test.form.js +0 -74
  159. package/dist/input.test.validity.d.ts +0 -1
  160. package/dist/input.test.validity.js +0 -258
  161. package/dist/label.test.basics.d.ts +0 -1
  162. package/dist/label.test.basics.js +0 -136
  163. package/dist/menu.button.test.basics.d.ts +0 -1
  164. package/dist/menu.button.test.basics.js +0 -43
  165. package/dist/menu.link.test.basics.d.ts +0 -1
  166. package/dist/menu.link.test.basics.js +0 -47
  167. package/dist/menu.options.test.basics.d.ts +0 -2
  168. package/dist/menu.options.test.basics.js +0 -44
  169. package/dist/menu.options.test.events.d.ts +0 -1
  170. package/dist/menu.options.test.events.js +0 -19
  171. package/dist/menu.stories.d.ts +0 -11
  172. package/dist/menu.test.basics.d.ts +0 -1
  173. package/dist/menu.test.basics.js +0 -178
  174. package/dist/menu.test.events.d.ts +0 -3
  175. package/dist/menu.test.events.js +0 -125
  176. package/dist/menu.test.focus.d.ts +0 -2
  177. package/dist/menu.test.focus.js +0 -102
  178. package/dist/menu.test.interactions.d.ts +0 -3
  179. package/dist/menu.test.interactions.js +0 -1069
  180. package/dist/modal.icon-button.test.basics.d.ts +0 -1
  181. package/dist/modal.icon-button.test.basics.js +0 -46
  182. package/dist/modal.stories.d.ts +0 -13
  183. package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
  184. package/dist/modal.tertiary-icon.test.basics.js +0 -60
  185. package/dist/modal.test.accessibility.d.ts +0 -1
  186. package/dist/modal.test.accessibility.js +0 -38
  187. package/dist/modal.test.basics.d.ts +0 -3
  188. package/dist/modal.test.basics.js +0 -204
  189. package/dist/modal.test.close.d.ts +0 -1
  190. package/dist/modal.test.close.js +0 -35
  191. package/dist/modal.test.events.d.ts +0 -1
  192. package/dist/modal.test.events.js +0 -99
  193. package/dist/modal.test.lock-scroll.d.ts +0 -1
  194. package/dist/modal.test.lock-scroll.js +0 -67
  195. package/dist/modal.test.methods.d.ts +0 -1
  196. package/dist/modal.test.methods.js +0 -20
  197. package/dist/modal.test.scrollbars.d.ts +0 -1
  198. package/dist/modal.test.scrollbars.js +0 -18
  199. package/dist/radio-group.stories.d.ts +0 -6
  200. package/dist/radio-group.test.basics.d.ts +0 -2
  201. package/dist/radio-group.test.basics.js +0 -324
  202. package/dist/radio-group.test.events.d.ts +0 -2
  203. package/dist/radio-group.test.events.js +0 -278
  204. package/dist/radio-group.test.focus.d.ts +0 -2
  205. package/dist/radio-group.test.focus.js +0 -95
  206. package/dist/radio-group.test.form.d.ts +0 -1
  207. package/dist/radio-group.test.form.js +0 -124
  208. package/dist/radio-group.test.validity.d.ts +0 -1
  209. package/dist/radio-group.test.validity.js +0 -311
  210. package/dist/split-button.primary-button.test.basics.d.ts +0 -1
  211. package/dist/split-button.primary-button.test.basics.js +0 -31
  212. package/dist/split-button.primary-button.test.focus.d.ts +0 -1
  213. package/dist/split-button.primary-button.test.focus.js +0 -14
  214. package/dist/split-button.primary-link.test.basics.d.ts +0 -1
  215. package/dist/split-button.primary-link.test.basics.js +0 -30
  216. package/dist/split-button.primary-link.test.focus.d.ts +0 -1
  217. package/dist/split-button.primary-link.test.focus.js +0 -15
  218. package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
  219. package/dist/split-button.secondary-button.test.basics.js +0 -58
  220. package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
  221. package/dist/split-button.secondary-button.test.focus.js +0 -14
  222. package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
  223. package/dist/split-button.secondary-button.test.interactions.js +0 -30
  224. package/dist/split-button.stories.d.ts +0 -13
  225. package/dist/split-button.test.basics.d.ts +0 -2
  226. package/dist/split-button.test.basics.js +0 -87
  227. package/dist/split-button.test.interactions.d.ts +0 -4
  228. package/dist/split-button.test.interactions.js +0 -51
  229. package/dist/tab.group.test.basics.d.ts +0 -3
  230. package/dist/tab.group.test.basics.js +0 -234
  231. package/dist/tab.group.test.interactions.d.ts +0 -3
  232. package/dist/tab.group.test.interactions.js +0 -434
  233. package/dist/tab.test.basics.d.ts +0 -1
  234. package/dist/tab.test.basics.js +0 -50
  235. package/dist/tabs.stories.d.ts +0 -8
  236. package/dist/tag.stories.d.ts +0 -7
  237. package/dist/tag.test.basics.d.ts +0 -1
  238. package/dist/tag.test.basics.js +0 -28
  239. package/dist/tag.test.events.d.ts +0 -1
  240. package/dist/tag.test.events.js +0 -93
  241. package/dist/tag.test.focus.d.ts +0 -1
  242. package/dist/tag.test.focus.js +0 -10
  243. package/dist/tag.test.interactions.d.ts +0 -1
  244. package/dist/tag.test.interactions.js +0 -36
  245. package/dist/textarea.stories.d.ts +0 -5
  246. package/dist/textarea.test.basics.d.ts +0 -1
  247. package/dist/textarea.test.basics.js +0 -177
  248. package/dist/textarea.test.events.d.ts +0 -1
  249. package/dist/textarea.test.events.js +0 -106
  250. package/dist/textarea.test.form.d.ts +0 -1
  251. package/dist/textarea.test.form.js +0 -71
  252. package/dist/textarea.test.validity.d.ts +0 -1
  253. package/dist/textarea.test.validity.js +0 -204
  254. package/dist/toasts.stories.d.ts +0 -7
  255. package/dist/toasts.test.basics.d.ts +0 -1
  256. package/dist/toasts.test.basics.js +0 -115
  257. package/dist/toasts.toast.test.basics.d.ts +0 -1
  258. package/dist/toasts.toast.test.basics.js +0 -139
  259. package/dist/toggle.stories.d.ts +0 -4
  260. package/dist/toggle.test.basics.d.ts +0 -1
  261. package/dist/toggle.test.basics.js +0 -69
  262. package/dist/toggle.test.events.d.ts +0 -1
  263. package/dist/toggle.test.events.js +0 -30
  264. package/dist/toggle.test.focus.d.ts +0 -1
  265. package/dist/toggle.test.focus.js +0 -9
  266. package/dist/toggle.test.interactions.d.ts +0 -1
  267. package/dist/toggle.test.interactions.js +0 -81
  268. package/dist/tooltip.stories.d.ts +0 -7
  269. package/dist/tooltip.test.basics.d.ts +0 -1
  270. package/dist/tooltip.test.basics.js +0 -100
  271. package/dist/tooltip.test.interactions.d.ts +0 -1
  272. package/dist/tooltip.test.interactions.js +0 -203
  273. package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
  274. package/dist/tree.item.icon-button.test.basics.js +0 -22
  275. package/dist/tree.item.menu.test.basics.d.ts +0 -1
  276. package/dist/tree.item.menu.test.basics.js +0 -86
  277. package/dist/tree.item.test.basics.d.ts +0 -2
  278. package/dist/tree.item.test.basics.js +0 -138
  279. package/dist/tree.stories.d.ts +0 -9
  280. package/dist/tree.test.aria.d.ts +0 -1
  281. package/dist/tree.test.aria.js +0 -86
  282. package/dist/tree.test.basics.d.ts +0 -3
  283. package/dist/tree.test.basics.js +0 -130
  284. package/dist/tree.test.events.d.ts +0 -2
  285. package/dist/tree.test.events.js +0 -19
  286. package/dist/tree.test.focus.d.ts +0 -1
  287. package/dist/tree.test.focus.js +0 -383
@@ -1,241 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './button-group.button.js';
3
- import { aTimeout, expect, fixture, html, oneEvent } from '@open-wc/testing';
4
- import { sendKeys } from '@web/test-runner-commands';
5
- import GlideCoreButtonGroup from './button-group.js';
6
- import GlideCoreButtonGroupButton from './button-group.button.js';
7
- import sinon from 'sinon';
8
- GlideCoreButtonGroup.shadowRootOptions.mode = 'open';
9
- GlideCoreButtonGroupButton.shadowRootOptions.mode = 'open';
10
- it('emits a "change" event when a button is clicked and not already selected', async () => {
11
- const component = await fixture(html `<glide-core-button-group>
12
- <glide-core-button-group-button
13
- label="One"
14
- ></glide-core-button-group-button>
15
-
16
- <glide-core-button-group-button
17
- label="Two"
18
- ></glide-core-button-group-button>
19
- </glide-core-button-group>`);
20
- const button = component.querySelector('glide-core-button-group-button:last-of-type');
21
- setTimeout(() => {
22
- button?.click();
23
- });
24
- const event = await oneEvent(component, 'change');
25
- expect(event instanceof Event).to.be.true;
26
- expect(event.bubbles).to.be.true;
27
- expect(event.target).to.equal(button);
28
- });
29
- it('emits an "input" event when a button is clicked and not already selected', async () => {
30
- const component = await fixture(html `<glide-core-button-group>
31
- <glide-core-button-group-button
32
- label="One"
33
- ></glide-core-button-group-button>
34
-
35
- <glide-core-button-group-button
36
- label="Two"
37
- ></glide-core-button-group-button>
38
- </glide-core-button-group>`);
39
- const button = component.querySelector('glide-core-button-group-button:last-of-type');
40
- setTimeout(() => {
41
- button?.click();
42
- });
43
- const event = await oneEvent(component, 'input');
44
- expect(event instanceof Event).to.be.true;
45
- expect(event.bubbles).to.be.true;
46
- expect(event.target).to.equal(button);
47
- });
48
- it('does not emit an "change" event when clicked button is clicked and already selected', async () => {
49
- const component = await fixture(html `<glide-core-button-group>
50
- <glide-core-button-group-button
51
- label="One"
52
- selected
53
- ></glide-core-button-group-button>
54
-
55
- <glide-core-button-group-button
56
- label="One"
57
- ></glide-core-button-group-button>
58
- </glide-core-button-group>`);
59
- const spy = sinon.spy();
60
- const button = component.querySelector('glide-core-button-group-button');
61
- component.addEventListener('change', spy);
62
- setTimeout(() => {
63
- button?.click();
64
- });
65
- await aTimeout(0);
66
- expect(spy.callCount).to.equal(0);
67
- });
68
- it('does not emit an "input" event when clicked button is clicked and already selected', async () => {
69
- const component = await fixture(html `<glide-core-button-group>
70
- <glide-core-button-group-button
71
- label="One"
72
- selected
73
- ></glide-core-button-group-button>
74
-
75
- <glide-core-button-group-button
76
- label="Two"
77
- ></glide-core-button-group-button>
78
- </glide-core-button-group>`);
79
- const spy = sinon.spy();
80
- const button = component.querySelector('glide-core-button-group-button');
81
- component.addEventListener('input', spy);
82
- setTimeout(() => {
83
- button?.click();
84
- });
85
- await aTimeout(0);
86
- expect(spy.callCount).to.equal(0);
87
- });
88
- it('emits a "change" event when arrowing', async () => {
89
- const component = await fixture(html `<glide-core-button-group>
90
- <glide-core-button-group-button
91
- label="One"
92
- ></glide-core-button-group-button>
93
-
94
- <glide-core-button-group-button
95
- label="Two"
96
- selected
97
- ></glide-core-button-group-button>
98
- </glide-core-button-group>`);
99
- const buttons = document.querySelectorAll('glide-core-button-group-button');
100
- buttons[0].focus();
101
- let event;
102
- sendKeys({ press: 'ArrowRight' });
103
- event = await oneEvent(component, 'change');
104
- expect(event instanceof Event).to.be.true;
105
- expect(event.bubbles).to.be.true;
106
- sendKeys({ press: 'ArrowLeft' });
107
- event = await oneEvent(component, 'change');
108
- expect(event instanceof Event).to.be.true;
109
- expect(event.bubbles).to.be.true;
110
- sendKeys({ press: 'ArrowDown' });
111
- event = await oneEvent(component, 'change');
112
- expect(event instanceof Event).to.be.true;
113
- expect(event.bubbles).to.be.true;
114
- sendKeys({ press: 'ArrowUp' });
115
- event = await oneEvent(component, 'change');
116
- expect(event instanceof Event).to.be.true;
117
- expect(event.bubbles).to.be.true;
118
- });
119
- it('emits an "input" event when arrowing', async () => {
120
- const component = await fixture(html `<glide-core-button-group>
121
- <glide-core-button-group-button
122
- label="One"
123
- ></glide-core-button-group-button>
124
-
125
- <glide-core-button-group-button
126
- label="Two"
127
- ></glide-core-button-group-button>
128
- </glide-core-button-group>`);
129
- const buttons = document.querySelectorAll('glide-core-button-group-button');
130
- buttons[0].focus();
131
- let event;
132
- sendKeys({ press: 'ArrowRight' });
133
- event = await oneEvent(component, 'input');
134
- expect(event instanceof Event).to.be.true;
135
- expect(event.bubbles).to.be.true;
136
- sendKeys({ press: 'ArrowLeft' });
137
- event = await oneEvent(component, 'input');
138
- expect(event instanceof Event).to.be.true;
139
- expect(event.bubbles).to.be.true;
140
- sendKeys({ press: 'ArrowDown' });
141
- event = await oneEvent(component, 'input');
142
- expect(event instanceof Event).to.be.true;
143
- expect(event.bubbles).to.be.true;
144
- sendKeys({ press: 'ArrowUp' });
145
- event = await oneEvent(component, 'input');
146
- expect(event instanceof Event).to.be.true;
147
- expect(event.bubbles).to.be.true;
148
- });
149
- it('emits a "change" event when a button is selected via Space', async () => {
150
- const component = await fixture(html `<glide-core-button-group>
151
- <glide-core-button-group-button
152
- label="One"
153
- selected
154
- ></glide-core-button-group-button>
155
-
156
- <glide-core-button-group-button
157
- label="Two"
158
- ></glide-core-button-group-button>
159
- </glide-core-button-group>`);
160
- const buttons = document.querySelectorAll('glide-core-button-group-button');
161
- buttons[1]?.focus();
162
- sendKeys({ press: ' ' });
163
- const event = await oneEvent(component, 'input');
164
- expect(event instanceof Event).to.be.true;
165
- expect(event.bubbles).to.be.true;
166
- });
167
- it('emits a "change" event when a button is selected programmatically', async () => {
168
- const component = await fixture(html `<glide-core-button-group>
169
- <glide-core-button-group-button
170
- label="One"
171
- selected
172
- ></glide-core-button-group-button>
173
-
174
- <glide-core-button-group-button
175
- label="Two"
176
- ></glide-core-button-group-button>
177
- </glide-core-button-group>`);
178
- const buttons = document.querySelectorAll('glide-core-button-group-button');
179
- setTimeout(() => {
180
- buttons[1].selected = true;
181
- });
182
- const event = await oneEvent(component, 'input');
183
- expect(event instanceof Event).to.be.true;
184
- expect(event.bubbles).to.be.true;
185
- });
186
- it('does not emit a "change" event when an already selected button is selected via Space', async () => {
187
- const component = await fixture(html `<glide-core-button-group>
188
- <glide-core-button-group-button
189
- label="One"
190
- selected
191
- ></glide-core-button-group-button>
192
-
193
- <glide-core-button-group-button
194
- label="Two"
195
- ></glide-core-button-group-button>
196
- </glide-core-button-group>`);
197
- const buttons = document.querySelectorAll('glide-core-button-group-button');
198
- buttons[0]?.focus();
199
- const spy = sinon.spy();
200
- component.addEventListener('change', spy);
201
- sendKeys({ press: ' ' });
202
- expect(spy.callCount).to.equal(0);
203
- });
204
- it('does not emit a "change" event a button is selected programmatically', async () => {
205
- const component = await fixture(html `<glide-core-button-group>
206
- <glide-core-button-group-button
207
- label="One"
208
- selected
209
- ></glide-core-button-group-button>
210
-
211
- <glide-core-button-group-button
212
- label="Two"
213
- ></glide-core-button-group-button>
214
- </glide-core-button-group>`);
215
- const buttons = document.querySelectorAll('glide-core-button-group-button');
216
- const spy = sinon.spy();
217
- component.addEventListener('change', spy);
218
- setTimeout(() => {
219
- buttons[1].selected = true;
220
- });
221
- expect(spy.callCount).to.equal(0);
222
- });
223
- it('does not emit a "input" event a button is selected programmatically', async () => {
224
- const component = await fixture(html `<glide-core-button-group>
225
- <glide-core-button-group-button
226
- label="One"
227
- selected
228
- ></glide-core-button-group-button>
229
-
230
- <glide-core-button-group-button
231
- label="Two"
232
- ></glide-core-button-group-button>
233
- </glide-core-button-group>`);
234
- const buttons = document.querySelectorAll('glide-core-button-group-button');
235
- const spy = sinon.spy();
236
- component.addEventListener('input', spy);
237
- setTimeout(() => {
238
- buttons[1].selected = true;
239
- });
240
- expect(spy.callCount).to.equal(0);
241
- });
@@ -1 +0,0 @@
1
- import './button-group.button.js';
@@ -1,39 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './button-group.button.js';
3
- import { expect, fixture, html } from '@open-wc/testing';
4
- import { sendKeys } from '@web/test-runner-commands';
5
- import GlideCoreButtonGroup from './button-group.js';
6
- import GlideCoreButtonGroupButton from './button-group.button.js';
7
- GlideCoreButtonGroup.shadowRootOptions.mode = 'open';
8
- GlideCoreButtonGroupButton.shadowRootOptions.mode = 'open';
9
- it('moves focus', async () => {
10
- await fixture(html `<glide-core-button-group>
11
- <glide-core-button-group-button
12
- label="One"
13
- ></glide-core-button-group-button>
14
-
15
- <glide-core-button-group-button
16
- label="Two"
17
- disabled
18
- ></glide-core-button-group-button>
19
-
20
- <glide-core-button-group-button
21
- label="Three"
22
- ></glide-core-button-group-button>
23
-
24
- <glide-core-button-group-button
25
- label="Four"
26
- selected
27
- ></glide-core-button-group-button>
28
- </glide-core-button-group>`);
29
- const buttons = document.querySelectorAll('glide-core-button-group-button');
30
- buttons[3]?.focus();
31
- await sendKeys({ press: 'ArrowRight' });
32
- expect(buttons[0]).to.have.focus;
33
- await sendKeys({ press: 'ArrowUp' });
34
- expect(buttons[3]).to.have.focus;
35
- await sendKeys({ press: 'ArrowLeft' });
36
- expect(buttons[2]).to.have.focus;
37
- await sendKeys({ press: 'ArrowDown' });
38
- expect(buttons[3]).to.have.focus;
39
- });
@@ -1 +0,0 @@
1
- import './button-group.button.js';
@@ -1,91 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './button-group.button.js';
3
- import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
4
- import { sendKeys } from '@web/test-runner-commands';
5
- import GlideCoreButtonGroup from './button-group.js';
6
- import GlideCoreButtonGroupButton from './button-group.button.js';
7
- GlideCoreButtonGroup.shadowRootOptions.mode = 'open';
8
- GlideCoreButtonGroupButton.shadowRootOptions.mode = 'open';
9
- it('selects a button when clicked', async () => {
10
- const component = await fixture(html `<glide-core-button-group>
11
- <glide-core-button-group-button
12
- label="One"
13
- selected
14
- ></glide-core-button-group-button>
15
-
16
- <glide-core-button-group-button
17
- label="Two"
18
- ></glide-core-button-group-button>
19
- </glide-core-button-group>`);
20
- const buttons = document.querySelectorAll('glide-core-button-group-button');
21
- buttons[1]?.click();
22
- await elementUpdated(component);
23
- expect(buttons[0].selected).to.be.false;
24
- expect(buttons[1].selected).to.be.true;
25
- });
26
- it('selects buttons when arrowing', async () => {
27
- await fixture(html `<glide-core-button-group>
28
- <glide-core-button-group-button
29
- label="One"
30
- disabled
31
- ></glide-core-button-group-button>
32
-
33
- <glide-core-button-group-button
34
- label="Two"
35
- selected
36
- ></glide-core-button-group-button>
37
-
38
- <glide-core-button-group-button
39
- label="Three"
40
- ></glide-core-button-group-button>
41
-
42
- <glide-core-button-group-button
43
- label="Four"
44
- disabled
45
- ></glide-core-button-group-button>
46
- </glide-core-button-group>`);
47
- const buttons = document.querySelectorAll('glide-core-button-group-button');
48
- buttons[1]?.focus();
49
- await sendKeys({ press: 'ArrowRight' });
50
- expect(buttons[2].selected).to.be.true;
51
- await sendKeys({ press: 'ArrowDown' });
52
- expect(buttons[1].selected).to.be.true;
53
- await sendKeys({ press: 'ArrowLeft' });
54
- expect(buttons[2].selected).to.be.true;
55
- await sendKeys({ press: 'ArrowUp' });
56
- expect(buttons[1].selected).to.be.true;
57
- });
58
- it('selects a button on Space', async () => {
59
- await fixture(html `<glide-core-button-group>
60
- <glide-core-button-group-button
61
- label="One"
62
- selected
63
- ></glide-core-button-group-button>
64
-
65
- <glide-core-button-group-button
66
- label="Two"
67
- ></glide-core-button-group-button>
68
- </glide-core-button-group>`);
69
- const buttons = document.querySelectorAll('glide-core-button-group-button');
70
- buttons[1]?.focus();
71
- await sendKeys({ press: ' ' });
72
- expect(buttons[0].selected).to.be.false;
73
- expect(buttons[1].selected).to.be.true;
74
- });
75
- it('does not select a disabled button', async () => {
76
- await fixture(html `<glide-core-button-group>
77
- <glide-core-button-group-button
78
- label="One"
79
- selected
80
- ></glide-core-button-group-button>
81
-
82
- <glide-core-button-group-button
83
- label="Two"
84
- disabled
85
- ></glide-core-button-group-button>
86
- </glide-core-button-group>`);
87
- const buttons = document.querySelectorAll('glide-core-button-group-button');
88
- buttons[1]?.click();
89
- expect(buttons[0].selected).to.be.true;
90
- expect(buttons[1].selected).to.be.false;
91
- });
@@ -1,7 +0,0 @@
1
- import './button.js';
2
- import './icons/storybook.js';
3
- import type { Meta, StoryObj } from '@storybook/web-components';
4
- declare const meta: Meta;
5
- export default meta;
6
- export declare const Button: StoryObj;
7
- export declare const WithIcons: StoryObj;
@@ -1 +0,0 @@
1
- import './button.js';
@@ -1,69 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './button.js';
3
- import { expect, fixture, html } from '@open-wc/testing';
4
- import GlideCoreButton from './button.js';
5
- GlideCoreButton.shadowRootOptions.mode = 'open';
6
- it('registers', async () => {
7
- expect(window.customElements.get('glide-core-button')).to.equal(GlideCoreButton);
8
- });
9
- it('is accessible', async () => {
10
- const component = await fixture(html `<glide-core-button label="Label"></glide-core-button>`);
11
- await expect(component).to.be.accessible();
12
- });
13
- it('has defaults', async () => {
14
- const component = await fixture(html `
15
- <glide-core-button label="Label"></glide-core-button>
16
- `);
17
- expect(component.ariaControls).to.be.null;
18
- expect(component.ariaExpanded).to.be.null;
19
- expect(component.ariaHasPopup).to.be.null;
20
- expect(component.autofocus).to.be.false;
21
- expect(component.disabled).to.be.false;
22
- expect(component.formAction).to.be.empty.string;
23
- expect(component.formEncType).to.be.empty.string;
24
- expect(component.formMethod).to.be.empty.string;
25
- expect(component.formNoValidate).to.be.false;
26
- expect(component.name).to.be.empty.string;
27
- expect(component.popoverTarget).to.be.undefined;
28
- expect(component.popoverTargetAction).to.be.empty.string;
29
- expect(component.value).to.be.empty.string;
30
- expect(component.type).to.equal('button');
31
- expect(component.hasAttribute('autofocus')).to.be.false;
32
- expect(component.getAttribute('aria-controls')).to.be.null;
33
- expect(component.getAttribute('aria-expanded')).to.be.null;
34
- expect(component.getAttribute('aria-haspopup')).to.be.null;
35
- expect(component.hasAttribute('disabled')).to.be.false;
36
- expect(component.getAttribute('formaction')).to.be.empty.string;
37
- expect(component.getAttribute('formenctype')).to.be.empty.string;
38
- expect(component.getAttribute('formmethod')).to.be.empty.string;
39
- expect(component.hasAttribute('formnovalidate')).to.be.false;
40
- expect(component.getAttribute('name')).to.be.empty.string;
41
- expect(component.getAttribute('popovertarget')).to.be.null;
42
- expect(component.getAttribute('popovertargetaction')).to.be.empty.string;
43
- expect(component.getAttribute('type')).to.equal('button');
44
- expect(component.getAttribute('value')).to.be.empty.string;
45
- const button = component.shadowRoot?.querySelector('button');
46
- expect(button?.getAttribute('aria-controls')).to.be.null;
47
- expect(button?.ariaExpanded).to.be.null;
48
- expect(button?.ariaHasPopup).to.be.null;
49
- expect(button?.disabled).to.be.false;
50
- });
51
- it('delegates focus', async () => {
52
- const component = await fixture(html `<glide-core-button label="Label"></glide-core-button>`);
53
- component.focus();
54
- expect(component.shadowRoot?.activeElement).to.equal(component.shadowRoot?.querySelector('button'));
55
- });
56
- it('has `#onPrefixSlotChange` coverage', async () => {
57
- await fixture(html `
58
- <glide-core-button label="Label">
59
- <span slot="prefix-icon">Prefix</span>
60
- </glide-core-button>
61
- `);
62
- });
63
- it('has `#onSuffixIconSlotChange` coverage', async () => {
64
- await fixture(html `
65
- <glide-core-button label="Label">
66
- <span slot="suffix-icon">Suffix</span>
67
- </glide-core-button>
68
- `);
69
- });
@@ -1 +0,0 @@
1
- import './button.js';
@@ -1,102 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './button.js';
3
- import { expect, fixture, html, oneEvent } from '@open-wc/testing';
4
- import { sendKeys } from '@web/test-runner-commands';
5
- import GlideCoreButton from './button.js';
6
- GlideCoreButton.shadowRootOptions.mode = 'open';
7
- it('dispatches a "click" event when clicked', async () => {
8
- const component = await fixture(html `
9
- <glide-core-button label="Label" type="button"></glide-core-button>
10
- `);
11
- setTimeout(() => {
12
- component.click();
13
- });
14
- const event = await oneEvent(component, 'click');
15
- expect(event instanceof PointerEvent).to.be.true;
16
- expect(event.bubbles).to.be.true;
17
- });
18
- it('dispatches a "click" event on Enter', async () => {
19
- const component = await fixture(html `
20
- <glide-core-button label="Label" type="button"></glide-core-button>
21
- `);
22
- component.focus();
23
- sendKeys({ press: 'Enter' });
24
- const event = await oneEvent(component, 'click');
25
- expect(event instanceof PointerEvent).to.be.true;
26
- expect(event.bubbles).to.be.true;
27
- });
28
- it('dispatches a "click" event on Space', async () => {
29
- const component = await fixture(html `
30
- <glide-core-button label="Label" type="button"></glide-core-button>
31
- `);
32
- component.focus();
33
- sendKeys({ press: ' ' });
34
- const event = await oneEvent(component, 'click');
35
- expect(event instanceof PointerEvent).to.be.true;
36
- expect(event.bubbles).to.be.true;
37
- });
38
- it('dispatches a "reset" event on click', async () => {
39
- const form = document.createElement('form');
40
- const component = await fixture(html ` <glide-core-button label="Label" type="reset"></glide-core-button>`, {
41
- parentNode: form,
42
- });
43
- setTimeout(() => {
44
- component.click();
45
- });
46
- const event = await oneEvent(form, 'reset');
47
- expect(event instanceof Event).to.be.true;
48
- });
49
- it('dispatches a "reset" event on Enter', async () => {
50
- const form = document.createElement('form');
51
- const component = await fixture(html ` <glide-core-button label="Label" type="reset"></glide-core-button>`, {
52
- parentNode: form,
53
- });
54
- component.focus();
55
- sendKeys({ press: 'Enter' });
56
- const event = await oneEvent(form, 'reset');
57
- expect(event instanceof Event).to.be.true;
58
- });
59
- it('dispatches a "reset" event on Space', async () => {
60
- const form = document.createElement('form');
61
- const component = await fixture(html ` <glide-core-button label="Label" type="reset"></glide-core-button>`, {
62
- parentNode: form,
63
- });
64
- component.focus();
65
- sendKeys({ press: ' ' });
66
- const event = await oneEvent(form, 'reset');
67
- expect(event instanceof Event).to.be.true;
68
- });
69
- it('dispatches a "submit" event on click', async () => {
70
- const form = document.createElement('form');
71
- const component = await fixture(html ` <glide-core-button label="Label" type="submit"></glide-core-button>`, {
72
- parentNode: form,
73
- });
74
- form.addEventListener('submit', (event) => event.preventDefault());
75
- setTimeout(() => {
76
- component.click();
77
- });
78
- const event = await oneEvent(form, 'submit');
79
- expect(event instanceof Event).to.be.true;
80
- });
81
- it('dispatches a "submit" event on Enter', async () => {
82
- const form = document.createElement('form');
83
- const component = await fixture(html ` <glide-core-button label="Label" type="submit"></glide-core-button>`, {
84
- parentNode: form,
85
- });
86
- form.addEventListener('submit', (event) => event.preventDefault());
87
- component.focus();
88
- sendKeys({ press: 'Enter' });
89
- const event = await oneEvent(form, 'submit');
90
- expect(event instanceof Event).to.be.true;
91
- });
92
- it('dispatches a "submit" event on Space', async () => {
93
- const form = document.createElement('form');
94
- const component = await fixture(html ` <glide-core-button label="Label" type="submit"></glide-core-button>`, {
95
- parentNode: form,
96
- });
97
- form.addEventListener('submit', (event) => event.preventDefault());
98
- component.focus();
99
- sendKeys({ press: ' ' });
100
- const event = await oneEvent(form, 'submit');
101
- expect(event instanceof Event).to.be.true;
102
- });
@@ -1,6 +0,0 @@
1
- import './checkbox.js';
2
- import type { Meta, StoryObj } from '@storybook/web-components';
3
- declare const meta: Meta;
4
- export default meta;
5
- export declare const CheckboxGroup: StoryObj;
6
- export declare const WithError: StoryObj;
@@ -1 +0,0 @@
1
- import './checkbox.js';