@crowdstrike/glide-core 0.13.1 → 0.14.1

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 (284) hide show
  1. package/dist/drawer.d.ts +2 -2
  2. package/dist/drawer.js +1 -1
  3. package/dist/drawer.styles.js +3 -14
  4. package/dist/dropdown.styles.js +3 -2
  5. package/dist/input.styles.js +1 -0
  6. package/dist/styles/variables.css +1 -1
  7. package/dist/textarea.styles.js +2 -0
  8. package/dist/toasts.d.ts +2 -2
  9. package/dist/toasts.toast.d.ts +1 -1
  10. package/dist/toasts.toast.js +1 -1
  11. package/dist/toasts.toast.styles.js +8 -0
  12. package/dist/tree.item.styles.js +2 -2
  13. package/package.json +8 -5
  14. package/dist/accordion.stories.d.ts +0 -6
  15. package/dist/accordion.test.basics.d.ts +0 -1
  16. package/dist/accordion.test.basics.js +0 -28
  17. package/dist/accordion.test.events.d.ts +0 -1
  18. package/dist/accordion.test.events.js +0 -28
  19. package/dist/accordion.test.focus.d.ts +0 -1
  20. package/dist/accordion.test.focus.js +0 -11
  21. package/dist/accordion.test.interactions.d.ts +0 -1
  22. package/dist/accordion.test.interactions.js +0 -75
  23. package/dist/button-group.button.test.basics.d.ts +0 -1
  24. package/dist/button-group.button.test.basics.js +0 -97
  25. package/dist/button-group.button.test.events.d.ts +0 -1
  26. package/dist/button-group.button.test.events.js +0 -15
  27. package/dist/button-group.button.test.focus.d.ts +0 -1
  28. package/dist/button-group.button.test.focus.js +0 -13
  29. package/dist/button-group.button.test.interactions.d.ts +0 -1
  30. package/dist/button-group.button.test.interactions.js +0 -42
  31. package/dist/button-group.stories.d.ts +0 -7
  32. package/dist/button-group.test.basics.d.ts +0 -1
  33. package/dist/button-group.test.basics.js +0 -148
  34. package/dist/button-group.test.events.d.ts +0 -1
  35. package/dist/button-group.test.events.js +0 -241
  36. package/dist/button-group.test.focus.d.ts +0 -1
  37. package/dist/button-group.test.focus.js +0 -39
  38. package/dist/button-group.test.interactions.d.ts +0 -1
  39. package/dist/button-group.test.interactions.js +0 -91
  40. package/dist/button.stories.d.ts +0 -7
  41. package/dist/button.test.basics.d.ts +0 -1
  42. package/dist/button.test.basics.js +0 -69
  43. package/dist/button.test.events.d.ts +0 -1
  44. package/dist/button.test.events.js +0 -102
  45. package/dist/checkbox-group.stories.d.ts +0 -6
  46. package/dist/checkbox-group.test.basics.d.ts +0 -1
  47. package/dist/checkbox-group.test.basics.js +0 -116
  48. package/dist/checkbox-group.test.events.d.ts +0 -1
  49. package/dist/checkbox-group.test.events.js +0 -111
  50. package/dist/checkbox-group.test.focus.d.ts +0 -1
  51. package/dist/checkbox-group.test.focus.js +0 -70
  52. package/dist/checkbox-group.test.form.d.ts +0 -1
  53. package/dist/checkbox-group.test.form.js +0 -131
  54. package/dist/checkbox-group.test.interactions.d.ts +0 -1
  55. package/dist/checkbox-group.test.interactions.js +0 -82
  56. package/dist/checkbox-group.test.validity.d.ts +0 -1
  57. package/dist/checkbox-group.test.validity.js +0 -145
  58. package/dist/checkbox.stories.d.ts +0 -5
  59. package/dist/checkbox.test.basics.d.ts +0 -1
  60. package/dist/checkbox.test.basics.js +0 -90
  61. package/dist/checkbox.test.events.d.ts +0 -1
  62. package/dist/checkbox.test.events.js +0 -105
  63. package/dist/checkbox.test.focus.d.ts +0 -1
  64. package/dist/checkbox.test.focus.js +0 -51
  65. package/dist/checkbox.test.form.d.ts +0 -1
  66. package/dist/checkbox.test.form.js +0 -133
  67. package/dist/checkbox.test.interactions.d.ts +0 -1
  68. package/dist/checkbox.test.interactions.js +0 -131
  69. package/dist/checkbox.test.validity.d.ts +0 -1
  70. package/dist/checkbox.test.validity.js +0 -128
  71. package/dist/drawer.stories.d.ts +0 -6
  72. package/dist/drawer.test.accessibility.d.ts +0 -1
  73. package/dist/drawer.test.accessibility.js +0 -22
  74. package/dist/drawer.test.basics.d.ts +0 -1
  75. package/dist/drawer.test.basics.js +0 -44
  76. package/dist/drawer.test.closing.d.ts +0 -1
  77. package/dist/drawer.test.closing.js +0 -40
  78. package/dist/drawer.test.events.d.ts +0 -1
  79. package/dist/drawer.test.events.js +0 -42
  80. package/dist/drawer.test.methods.d.ts +0 -1
  81. package/dist/drawer.test.methods.js +0 -35
  82. package/dist/dropdown.option.test.basics.d.ts +0 -1
  83. package/dist/dropdown.option.test.basics.js +0 -34
  84. package/dist/dropdown.option.test.basics.multiple.d.ts +0 -1
  85. package/dist/dropdown.option.test.basics.multiple.js +0 -36
  86. package/dist/dropdown.option.test.basics.single.d.ts +0 -1
  87. package/dist/dropdown.option.test.basics.single.js +0 -29
  88. package/dist/dropdown.option.test.events.d.ts +0 -1
  89. package/dist/dropdown.option.test.events.js +0 -36
  90. package/dist/dropdown.option.test.focus.d.ts +0 -1
  91. package/dist/dropdown.option.test.focus.js +0 -11
  92. package/dist/dropdown.option.test.interactions.multiple.d.ts +0 -1
  93. package/dist/dropdown.option.test.interactions.multiple.js +0 -42
  94. package/dist/dropdown.option.test.interactions.single.d.ts +0 -1
  95. package/dist/dropdown.option.test.interactions.single.js +0 -76
  96. package/dist/dropdown.stories.d.ts +0 -8
  97. package/dist/dropdown.test.basics.d.ts +0 -1
  98. package/dist/dropdown.test.basics.filterable.d.ts +0 -1
  99. package/dist/dropdown.test.basics.filterable.js +0 -108
  100. package/dist/dropdown.test.basics.js +0 -181
  101. package/dist/dropdown.test.basics.multiple.d.ts +0 -1
  102. package/dist/dropdown.test.basics.multiple.js +0 -259
  103. package/dist/dropdown.test.basics.single.d.ts +0 -1
  104. package/dist/dropdown.test.basics.single.js +0 -122
  105. package/dist/dropdown.test.events.d.ts +0 -1
  106. package/dist/dropdown.test.events.filterable.d.ts +0 -1
  107. package/dist/dropdown.test.events.filterable.js +0 -31
  108. package/dist/dropdown.test.events.js +0 -251
  109. package/dist/dropdown.test.events.multiple.d.ts +0 -1
  110. package/dist/dropdown.test.events.multiple.js +0 -446
  111. package/dist/dropdown.test.events.single.d.ts +0 -1
  112. package/dist/dropdown.test.events.single.js +0 -343
  113. package/dist/dropdown.test.focus.d.ts +0 -1
  114. package/dist/dropdown.test.focus.filterable.d.ts +0 -1
  115. package/dist/dropdown.test.focus.filterable.js +0 -140
  116. package/dist/dropdown.test.focus.js +0 -107
  117. package/dist/dropdown.test.focus.multiple.d.ts +0 -1
  118. package/dist/dropdown.test.focus.multiple.js +0 -170
  119. package/dist/dropdown.test.focus.single.d.ts +0 -1
  120. package/dist/dropdown.test.focus.single.js +0 -42
  121. package/dist/dropdown.test.form.d.ts +0 -1
  122. package/dist/dropdown.test.form.js +0 -74
  123. package/dist/dropdown.test.form.multiple.d.ts +0 -1
  124. package/dist/dropdown.test.form.multiple.js +0 -151
  125. package/dist/dropdown.test.form.single.d.ts +0 -1
  126. package/dist/dropdown.test.form.single.js +0 -129
  127. package/dist/dropdown.test.interactions.d.ts +0 -1
  128. package/dist/dropdown.test.interactions.filterable.d.ts +0 -1
  129. package/dist/dropdown.test.interactions.filterable.js +0 -805
  130. package/dist/dropdown.test.interactions.js +0 -696
  131. package/dist/dropdown.test.interactions.multiple.d.ts +0 -1
  132. package/dist/dropdown.test.interactions.multiple.js +0 -1026
  133. package/dist/dropdown.test.interactions.single.d.ts +0 -1
  134. package/dist/dropdown.test.interactions.single.js +0 -569
  135. package/dist/dropdown.test.validity.d.ts +0 -1
  136. package/dist/dropdown.test.validity.js +0 -181
  137. package/dist/form-controls-layout.stories.d.ts +0 -10
  138. package/dist/form-controls-layout.test.basics.d.ts +0 -2
  139. package/dist/form-controls-layout.test.basics.js +0 -75
  140. package/dist/form-controls-layout.test.interactions.d.ts +0 -2
  141. package/dist/form-controls-layout.test.interactions.js +0 -26
  142. package/dist/icon-button.stories.d.ts +0 -6
  143. package/dist/icon-button.test.basics.d.ts +0 -1
  144. package/dist/icon-button.test.basics.js +0 -43
  145. package/dist/icon-button.test.focus.d.ts +0 -1
  146. package/dist/icon-button.test.focus.js +0 -13
  147. package/dist/input.stories.d.ts +0 -8
  148. package/dist/input.test.basics.d.ts +0 -1
  149. package/dist/input.test.basics.js +0 -138
  150. package/dist/input.test.events.d.ts +0 -1
  151. package/dist/input.test.events.js +0 -98
  152. package/dist/input.test.focus.d.ts +0 -1
  153. package/dist/input.test.focus.js +0 -58
  154. package/dist/input.test.form.d.ts +0 -1
  155. package/dist/input.test.form.js +0 -74
  156. package/dist/input.test.validity.d.ts +0 -1
  157. package/dist/input.test.validity.js +0 -258
  158. package/dist/label.test.basics.d.ts +0 -1
  159. package/dist/label.test.basics.js +0 -136
  160. package/dist/menu.button.test.basics.d.ts +0 -1
  161. package/dist/menu.button.test.basics.js +0 -43
  162. package/dist/menu.link.test.basics.d.ts +0 -1
  163. package/dist/menu.link.test.basics.js +0 -47
  164. package/dist/menu.options.test.basics.d.ts +0 -2
  165. package/dist/menu.options.test.basics.js +0 -44
  166. package/dist/menu.options.test.events.d.ts +0 -1
  167. package/dist/menu.options.test.events.js +0 -19
  168. package/dist/menu.stories.d.ts +0 -11
  169. package/dist/menu.test.basics.d.ts +0 -1
  170. package/dist/menu.test.basics.js +0 -178
  171. package/dist/menu.test.events.d.ts +0 -3
  172. package/dist/menu.test.events.js +0 -125
  173. package/dist/menu.test.focus.d.ts +0 -2
  174. package/dist/menu.test.focus.js +0 -102
  175. package/dist/menu.test.interactions.d.ts +0 -3
  176. package/dist/menu.test.interactions.js +0 -1069
  177. package/dist/modal.icon-button.test.basics.d.ts +0 -1
  178. package/dist/modal.icon-button.test.basics.js +0 -46
  179. package/dist/modal.stories.d.ts +0 -13
  180. package/dist/modal.tertiary-icon.test.basics.d.ts +0 -1
  181. package/dist/modal.tertiary-icon.test.basics.js +0 -60
  182. package/dist/modal.test.accessibility.d.ts +0 -1
  183. package/dist/modal.test.accessibility.js +0 -38
  184. package/dist/modal.test.basics.d.ts +0 -3
  185. package/dist/modal.test.basics.js +0 -204
  186. package/dist/modal.test.close.d.ts +0 -1
  187. package/dist/modal.test.close.js +0 -35
  188. package/dist/modal.test.events.d.ts +0 -1
  189. package/dist/modal.test.events.js +0 -99
  190. package/dist/modal.test.lock-scroll.d.ts +0 -1
  191. package/dist/modal.test.lock-scroll.js +0 -67
  192. package/dist/modal.test.methods.d.ts +0 -1
  193. package/dist/modal.test.methods.js +0 -20
  194. package/dist/modal.test.scrollbars.d.ts +0 -1
  195. package/dist/modal.test.scrollbars.js +0 -18
  196. package/dist/radio-group.stories.d.ts +0 -6
  197. package/dist/radio-group.test.basics.d.ts +0 -2
  198. package/dist/radio-group.test.basics.js +0 -324
  199. package/dist/radio-group.test.events.d.ts +0 -2
  200. package/dist/radio-group.test.events.js +0 -278
  201. package/dist/radio-group.test.focus.d.ts +0 -2
  202. package/dist/radio-group.test.focus.js +0 -95
  203. package/dist/radio-group.test.form.d.ts +0 -1
  204. package/dist/radio-group.test.form.js +0 -124
  205. package/dist/radio-group.test.validity.d.ts +0 -1
  206. package/dist/radio-group.test.validity.js +0 -311
  207. package/dist/split-button.primary-button.test.basics.d.ts +0 -1
  208. package/dist/split-button.primary-button.test.basics.js +0 -31
  209. package/dist/split-button.primary-button.test.focus.d.ts +0 -1
  210. package/dist/split-button.primary-button.test.focus.js +0 -14
  211. package/dist/split-button.primary-link.test.basics.d.ts +0 -1
  212. package/dist/split-button.primary-link.test.basics.js +0 -30
  213. package/dist/split-button.primary-link.test.focus.d.ts +0 -1
  214. package/dist/split-button.primary-link.test.focus.js +0 -15
  215. package/dist/split-button.secondary-button.test.basics.d.ts +0 -1
  216. package/dist/split-button.secondary-button.test.basics.js +0 -58
  217. package/dist/split-button.secondary-button.test.focus.d.ts +0 -1
  218. package/dist/split-button.secondary-button.test.focus.js +0 -14
  219. package/dist/split-button.secondary-button.test.interactions.d.ts +0 -2
  220. package/dist/split-button.secondary-button.test.interactions.js +0 -30
  221. package/dist/split-button.stories.d.ts +0 -13
  222. package/dist/split-button.test.basics.d.ts +0 -2
  223. package/dist/split-button.test.basics.js +0 -87
  224. package/dist/split-button.test.interactions.d.ts +0 -4
  225. package/dist/split-button.test.interactions.js +0 -51
  226. package/dist/tab.group.test.basics.d.ts +0 -3
  227. package/dist/tab.group.test.basics.js +0 -234
  228. package/dist/tab.group.test.interactions.d.ts +0 -3
  229. package/dist/tab.group.test.interactions.js +0 -434
  230. package/dist/tab.test.basics.d.ts +0 -1
  231. package/dist/tab.test.basics.js +0 -50
  232. package/dist/tabs.stories.d.ts +0 -8
  233. package/dist/tag.stories.d.ts +0 -7
  234. package/dist/tag.test.basics.d.ts +0 -1
  235. package/dist/tag.test.basics.js +0 -28
  236. package/dist/tag.test.events.d.ts +0 -1
  237. package/dist/tag.test.events.js +0 -93
  238. package/dist/tag.test.focus.d.ts +0 -1
  239. package/dist/tag.test.focus.js +0 -10
  240. package/dist/tag.test.interactions.d.ts +0 -1
  241. package/dist/tag.test.interactions.js +0 -36
  242. package/dist/textarea.stories.d.ts +0 -5
  243. package/dist/textarea.test.basics.d.ts +0 -1
  244. package/dist/textarea.test.basics.js +0 -177
  245. package/dist/textarea.test.events.d.ts +0 -1
  246. package/dist/textarea.test.events.js +0 -106
  247. package/dist/textarea.test.form.d.ts +0 -1
  248. package/dist/textarea.test.form.js +0 -71
  249. package/dist/textarea.test.validity.d.ts +0 -1
  250. package/dist/textarea.test.validity.js +0 -204
  251. package/dist/toasts.stories.d.ts +0 -7
  252. package/dist/toasts.test.basics.d.ts +0 -1
  253. package/dist/toasts.test.basics.js +0 -115
  254. package/dist/toasts.toast.test.basics.d.ts +0 -1
  255. package/dist/toasts.toast.test.basics.js +0 -139
  256. package/dist/toggle.stories.d.ts +0 -4
  257. package/dist/toggle.test.basics.d.ts +0 -1
  258. package/dist/toggle.test.basics.js +0 -69
  259. package/dist/toggle.test.events.d.ts +0 -1
  260. package/dist/toggle.test.events.js +0 -30
  261. package/dist/toggle.test.focus.d.ts +0 -1
  262. package/dist/toggle.test.focus.js +0 -9
  263. package/dist/toggle.test.interactions.d.ts +0 -1
  264. package/dist/toggle.test.interactions.js +0 -81
  265. package/dist/tooltip.stories.d.ts +0 -7
  266. package/dist/tooltip.test.basics.d.ts +0 -1
  267. package/dist/tooltip.test.basics.js +0 -100
  268. package/dist/tooltip.test.interactions.d.ts +0 -1
  269. package/dist/tooltip.test.interactions.js +0 -203
  270. package/dist/tree.item.icon-button.test.basics.d.ts +0 -1
  271. package/dist/tree.item.icon-button.test.basics.js +0 -22
  272. package/dist/tree.item.menu.test.basics.d.ts +0 -1
  273. package/dist/tree.item.menu.test.basics.js +0 -86
  274. package/dist/tree.item.test.basics.d.ts +0 -2
  275. package/dist/tree.item.test.basics.js +0 -138
  276. package/dist/tree.stories.d.ts +0 -9
  277. package/dist/tree.test.aria.d.ts +0 -1
  278. package/dist/tree.test.aria.js +0 -86
  279. package/dist/tree.test.basics.d.ts +0 -3
  280. package/dist/tree.test.basics.js +0 -130
  281. package/dist/tree.test.events.d.ts +0 -2
  282. package/dist/tree.test.events.js +0 -19
  283. package/dist/tree.test.focus.d.ts +0 -1
  284. package/dist/tree.test.focus.js +0 -383
@@ -1,170 +0,0 @@
1
- import './dropdown.option.js';
2
- import { aTimeout, elementUpdated, expect, fixture, html, } from '@open-wc/testing';
3
- import GlideCoreDropdown from './dropdown.js';
4
- import GlideCoreDropdownOption from './dropdown.option.js';
5
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
6
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
7
- it('focuses the primary button when `focus()` is called', async () => {
8
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
9
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
10
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
11
- </glide-core-dropdown>`);
12
- component.focus();
13
- expect(component.shadowRoot?.activeElement).to.equal(component.shadowRoot?.querySelector('[data-test="primary-button"]'));
14
- });
15
- it('focuses the primary button on submit when required and no options are selected', async () => {
16
- const form = document.createElement('form');
17
- const component = await fixture(html `<glide-core-dropdown
18
- label="Label"
19
- placeholder="Placeholder"
20
- multiple
21
- required
22
- >
23
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
24
-
25
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
26
- </glide-core-dropdown>`, {
27
- parentNode: form,
28
- });
29
- form.requestSubmit();
30
- const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
31
- expect(component.shadowRoot?.activeElement).to.be.equal(button);
32
- });
33
- it('focuses the primary button when `reportValidity` is called when required and no options are selected', async () => {
34
- const form = document.createElement('form');
35
- const component = await fixture(html `<glide-core-dropdown
36
- label="Label"
37
- placeholder="Placeholder"
38
- multiple
39
- required
40
- >
41
- <glide-core-dropdown-option label="One"></glide-core-dropdown-option>
42
- <glide-core-dropdown-option label="Two"></glide-core-dropdown-option>
43
- </glide-core-dropdown>`, { parentNode: form });
44
- component.reportValidity();
45
- const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
46
- expect(component.shadowRoot?.activeElement).to.equal(button);
47
- });
48
- it('does not focus the primary button when `checkValidity` is called', async () => {
49
- const form = document.createElement('form');
50
- const component = await fixture(html `<glide-core-dropdown
51
- label="Label"
52
- placeholder="Placeholder"
53
- multiple
54
- required
55
- >
56
- <glide-core-dropdown-option
57
- label="One"
58
- selected
59
- ></glide-core-dropdown-option>
60
-
61
- <glide-core-dropdown-option
62
- label="Two"
63
- selected
64
- ></glide-core-dropdown-option>
65
- </glide-core-dropdown>`, { parentNode: form });
66
- component.checkValidity();
67
- expect(component.shadowRoot?.activeElement).to.equal(null);
68
- });
69
- it('focuses the second tag when the first one is removed', async () => {
70
- const component = await fixture(html `<glide-core-dropdown
71
- label="Label"
72
- placeholder="Placeholder"
73
- open
74
- multiple
75
- >
76
- <glide-core-dropdown-option
77
- label="One"
78
- selected
79
- ></glide-core-dropdown-option>
80
-
81
- <glide-core-dropdown-option
82
- label="Two"
83
- selected
84
- ></glide-core-dropdown-option>
85
-
86
- <glide-core-dropdown-option
87
- label="Three"
88
- selected
89
- ></glide-core-dropdown-option>
90
- </glide-core-dropdown>`);
91
- const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
92
- tags?.[0].click();
93
- await elementUpdated(component);
94
- // Wait for the timeout in `#onTagRemove`.
95
- await aTimeout(0);
96
- expect(component.shadowRoot?.activeElement).to.equal(tags?.[1]);
97
- });
98
- it('focuses the third tag when the second one is removed', async () => {
99
- const component = await fixture(html `<glide-core-dropdown
100
- label="Label"
101
- placeholder="Placeholder"
102
- open
103
- multiple
104
- >
105
- <glide-core-dropdown-option
106
- label="One"
107
- selected
108
- ></glide-core-dropdown-option>
109
-
110
- <glide-core-dropdown-option
111
- label="Two"
112
- selected
113
- ></glide-core-dropdown-option>
114
-
115
- <glide-core-dropdown-option
116
- label="Three"
117
- selected
118
- ></glide-core-dropdown-option>
119
- </glide-core-dropdown>`);
120
- const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
121
- tags?.[1].click();
122
- await elementUpdated(component);
123
- // Wait for the timeout in `#onTagRemove`.
124
- await aTimeout(0);
125
- expect(component.shadowRoot?.activeElement).to.equal(tags?.[2]);
126
- });
127
- it('focuses the second tag when the third tag removed', async () => {
128
- const component = await fixture(html `<glide-core-dropdown
129
- label="Label"
130
- placeholder="Placeholder"
131
- open
132
- multiple
133
- >
134
- <glide-core-dropdown-option
135
- label="One"
136
- selected
137
- ></glide-core-dropdown-option>
138
-
139
- <glide-core-dropdown-option
140
- label="Two"
141
- selected
142
- ></glide-core-dropdown-option>
143
-
144
- <glide-core-dropdown-option
145
- label="Three"
146
- selected
147
- ></glide-core-dropdown-option>
148
- </glide-core-dropdown>`);
149
- const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
150
- tags?.[2].click();
151
- await elementUpdated(component);
152
- // Wait for the timeout in `#onTagRemove`.
153
- await aTimeout(0);
154
- expect(component.shadowRoot?.activeElement).to.equal(tags?.[1]);
155
- });
156
- it('focuses itself when the last tag is removed', async () => {
157
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
158
- <glide-core-dropdown-option
159
- label="One"
160
- selected
161
- ></glide-core-dropdown-option>
162
- </glide-core-dropdown>`);
163
- component.shadowRoot
164
- ?.querySelector('[data-test="tag"]')
165
- ?.click();
166
- await elementUpdated(component);
167
- // Wait for the timeout in `#onTagRemove`.
168
- await aTimeout(0);
169
- expect(document.activeElement).to.equal(component);
170
- });
@@ -1 +0,0 @@
1
- import './dropdown.option.js';
@@ -1,42 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './dropdown.option.js';
3
- import { expect, fixture, html } from '@open-wc/testing';
4
- import GlideCoreDropdown from './dropdown.js';
5
- import GlideCoreDropdownOption from './dropdown.option.js';
6
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
7
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
8
- it('focuses the primary button when `focus()` is called', async () => {
9
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
10
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
11
- </glide-core-dropdown>`);
12
- component.focus();
13
- expect(component.shadowRoot?.activeElement).to.equal(component.shadowRoot?.querySelector('[data-test="primary-button"]'));
14
- });
15
- it('focuses the button on submit', async () => {
16
- const form = document.createElement('form');
17
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
18
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
19
- </glide-core-dropdown>`, {
20
- parentNode: form,
21
- });
22
- form.requestSubmit();
23
- const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
24
- expect(component.shadowRoot?.activeElement).to.be.equal(button);
25
- });
26
- it('focuses the primary button when `reportValidity` is called when required and no option is selected', async () => {
27
- const form = document.createElement('form');
28
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
29
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
30
- </glide-core-dropdown>`, { parentNode: form });
31
- component.reportValidity();
32
- const button = component.shadowRoot?.querySelector('[data-test="primary-button"]');
33
- expect(component.shadowRoot?.activeElement).to.equal(button);
34
- });
35
- it('does not focus the primary button when `checkValidity` is called', async () => {
36
- const form = document.createElement('form');
37
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" required>
38
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
39
- </glide-core-dropdown>`, { parentNode: form });
40
- component.checkValidity();
41
- expect(component.shadowRoot?.activeElement).to.equal(null);
42
- });
@@ -1 +0,0 @@
1
- import './dropdown.option.js';
@@ -1,74 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './dropdown.option.js';
3
- import { expect, fixture, html } from '@open-wc/testing';
4
- import { sendKeys } from '@web/test-runner-commands';
5
- import GlideCoreDropdown from './dropdown.js';
6
- import GlideCoreDropdownOption from './dropdown.option.js';
7
- import sinon from 'sinon';
8
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
9
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
10
- it('exposes standard form control properties and methods', async () => {
11
- const form = document.createElement('form');
12
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
13
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
14
- </glide-core-dropdown>`, { parentNode: form });
15
- expect(component.form).to.equal(form);
16
- expect(component.validity instanceof ValidityState).to.be.true;
17
- expect(component.willValidate).to.be.true;
18
- expect(component.checkValidity).to.be.a('function');
19
- expect(component.reportValidity).to.be.a('function');
20
- });
21
- it('submits its form on Enter when closed', async () => {
22
- const form = document.createElement('form');
23
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
24
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
25
- </glide-core-dropdown>`, {
26
- parentNode: form,
27
- });
28
- const spy = sinon.spy();
29
- form.addEventListener('submit', (event) => {
30
- event.preventDefault();
31
- spy();
32
- });
33
- component.focus();
34
- await sendKeys({ press: 'Enter' });
35
- expect(spy.callCount).to.equal(1);
36
- });
37
- it('does not submit its form on Enter when open', async () => {
38
- const form = document.createElement('form');
39
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" open>
40
- <glide-core-dropdown-option label="Label"></glide-core-dropdown-option>
41
- </glide-core-dropdown>`, {
42
- parentNode: form,
43
- });
44
- const spy = sinon.spy();
45
- form.addEventListener('submit', (event) => {
46
- event.preventDefault();
47
- spy();
48
- });
49
- component.focus();
50
- await sendKeys({ press: 'Enter' });
51
- expect(spy.callCount).to.equal(0);
52
- });
53
- it('does not submit its form when Enter is pressed on the Edit button', async () => {
54
- const form = document.createElement('form');
55
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
56
- <glide-core-dropdown-option
57
- label="Label"
58
- editable
59
- selected
60
- ></glide-core-dropdown-option>
61
- </glide-core-dropdown>`, {
62
- parentNode: form,
63
- });
64
- const spy = sinon.spy();
65
- form.addEventListener('submit', (event) => {
66
- event.preventDefault();
67
- spy();
68
- });
69
- component.shadowRoot
70
- ?.querySelector('[data-test="edit-button"]')
71
- ?.focus();
72
- await sendKeys({ press: 'Enter' });
73
- expect(spy.callCount).to.equal(0);
74
- });
@@ -1 +0,0 @@
1
- import './dropdown.option.js';
@@ -1,151 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './dropdown.option.js';
3
- import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
4
- import GlideCoreDropdown from './dropdown.js';
5
- import GlideCoreDropdownOption from './dropdown.option.js';
6
- import GlideCoreTag from './tag.js';
7
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
8
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
9
- it('can be reset', async () => {
10
- const form = document.createElement('form');
11
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
12
- <glide-core-dropdown-option
13
- label="One"
14
- value="one"
15
- ></glide-core-dropdown-option>
16
-
17
- <glide-core-dropdown-option
18
- label="Two"
19
- value="two"
20
- ></glide-core-dropdown-option>
21
- </glide-core-dropdown>`, {
22
- parentNode: form,
23
- });
24
- const options = component.querySelectorAll('glide-core-dropdown-option');
25
- options[0]?.shadowRoot
26
- ?.querySelector('[data-test="component"]')
27
- ?.dispatchEvent(new Event('click'));
28
- options[1]?.shadowRoot
29
- ?.querySelector('[data-test="component"]')
30
- ?.dispatchEvent(new Event('click'));
31
- form.reset();
32
- await elementUpdated(component);
33
- expect(component.value).to.deep.equal([]);
34
- const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
35
- expect(label?.textContent?.trim()).to.equal('Placeholder');
36
- });
37
- it('can be reset to the initially selected options', async () => {
38
- const form = document.createElement('form');
39
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder" multiple>
40
- <glide-core-dropdown-option
41
- label="One"
42
- value="one"
43
- ></glide-core-dropdown-option>
44
-
45
- <glide-core-dropdown-option
46
- label="Two"
47
- value="two"
48
- selected
49
- ></glide-core-dropdown-option>
50
-
51
- <glide-core-dropdown-option
52
- label="Three"
53
- value="three"
54
- selected
55
- ></glide-core-dropdown-option>
56
- </glide-core-dropdown>`, {
57
- parentNode: form,
58
- });
59
- component
60
- .querySelector('glide-core-dropdown-option')
61
- ?.shadowRoot?.querySelector('[data-test="component"]')
62
- ?.dispatchEvent(new Event('click'));
63
- form.reset();
64
- const tags = component.shadowRoot?.querySelectorAll('[data-test="tag"]');
65
- expect(tags?.length).to.equal(2);
66
- expect(tags?.[0].label).to.equal('Two');
67
- expect(tags?.[1].label).to.equal('Three');
68
- expect(component.value).to.deep.equal(['two', 'three']);
69
- });
70
- it('has `formData` value when options are selected', async () => {
71
- const form = document.createElement('form');
72
- await fixture(html `<glide-core-dropdown
73
- label="Label"
74
- placeholder="Placeholder"
75
- name="name"
76
- multiple
77
- >
78
- <glide-core-dropdown-option
79
- label="One"
80
- value="one"
81
- selected
82
- ></glide-core-dropdown-option>
83
-
84
- <glide-core-dropdown-option
85
- label="Two"
86
- value="two"
87
- selected
88
- ></glide-core-dropdown-option>
89
- </glide-core-dropdown>
90
- >`, {
91
- parentNode: form,
92
- });
93
- const formData = new FormData(form);
94
- expect(formData.get('name')).to.be.equal('["one","two"]');
95
- });
96
- it('has no `formData` value when no option is selected', async () => {
97
- const form = document.createElement('form');
98
- await fixture(html `<glide-core-dropdown
99
- label="Label"
100
- placeholder="Placeholder"
101
- name="name"
102
- multiple
103
- >
104
- <glide-core-dropdown-option
105
- label=""
106
- value="value"
107
- ></glide-core-dropdown-option>
108
- </glide-core-dropdown>`, {
109
- parentNode: form,
110
- });
111
- const formData = new FormData(form);
112
- expect(formData.get('name')).to.be.null;
113
- });
114
- it('has no `formData` value when disabled and an option is selected', async () => {
115
- const form = document.createElement('form');
116
- await fixture(html `<glide-core-dropdown
117
- label="Label"
118
- placeholder="Placeholder"
119
- name="name"
120
- disabled
121
- multiple
122
- >
123
- <glide-core-dropdown-option
124
- label="Label"
125
- value="value"
126
- selected
127
- ></glide-core-dropdown-option>
128
- </glide-core-dropdown>`, {
129
- parentNode: form,
130
- });
131
- const formData = new FormData(form);
132
- expect(formData.get('name')).to.be.null;
133
- });
134
- it('has no `formData` value when an option is selected that has no `value`', async () => {
135
- const form = document.createElement('form');
136
- await fixture(html `<glide-core-dropdown
137
- label="Label"
138
- placeholder="Placeholder"
139
- name="name"
140
- multiple
141
- >
142
- <glide-core-dropdown-option
143
- label="Label"
144
- selected
145
- ></glide-core-dropdown-option>
146
- </glide-core-dropdown>`, {
147
- parentNode: form,
148
- });
149
- const formData = new FormData(form);
150
- expect(formData.get('name')).to.be.null;
151
- });
@@ -1 +0,0 @@
1
- import './dropdown.option.js';
@@ -1,129 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unused-expressions */
2
- import './dropdown.option.js';
3
- import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
4
- import GlideCoreDropdown from './dropdown.js';
5
- import GlideCoreDropdownOption from './dropdown.option.js';
6
- GlideCoreDropdown.shadowRootOptions.mode = 'open';
7
- GlideCoreDropdownOption.shadowRootOptions.mode = 'open';
8
- it('can be reset', async () => {
9
- const form = document.createElement('form');
10
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
11
- <glide-core-dropdown-option
12
- label="One"
13
- value="one"
14
- ></glide-core-dropdown-option>
15
-
16
- <glide-core-dropdown-option
17
- label="Two"
18
- value="two"
19
- ></glide-core-dropdown-option>
20
- </glide-core-dropdown>`, {
21
- parentNode: form,
22
- });
23
- component
24
- .querySelector('glide-core-dropdown-option')
25
- ?.shadowRoot?.querySelector('[data-test="component"]')
26
- ?.dispatchEvent(new Event('click'));
27
- form.reset();
28
- await elementUpdated(component);
29
- const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
30
- expect(label?.textContent?.trim()).to.equal('Placeholder');
31
- expect(component.value).to.deep.equal([]);
32
- });
33
- it('can be reset to the initially selected option', async () => {
34
- const form = document.createElement('form');
35
- const component = await fixture(html `<glide-core-dropdown label="Label" placeholder="Placeholder">
36
- <glide-core-dropdown-option
37
- label="One"
38
- value="one"
39
- ></glide-core-dropdown-option>
40
-
41
- <glide-core-dropdown-option
42
- label="Two"
43
- value="two"
44
- selected
45
- ></glide-core-dropdown-option>
46
- </glide-core-dropdown>`, {
47
- parentNode: form,
48
- });
49
- component
50
- .querySelector('glide-core-dropdown-option')
51
- ?.shadowRoot?.querySelector('[data-test="component"]')
52
- ?.dispatchEvent(new Event('click'));
53
- form.reset();
54
- const label = component.shadowRoot?.querySelector('[data-test="internal-label"]');
55
- expect(label?.textContent?.trim()).to.equal('Two');
56
- expect(component.value).to.deep.equal(['two']);
57
- });
58
- it('has `formData` value when an option is selected', async () => {
59
- const form = document.createElement('form');
60
- await fixture(html `<glide-core-dropdown
61
- label="Label"
62
- placeholder="Placeholder"
63
- name="name"
64
- >
65
- <glide-core-dropdown-option
66
- label="Label"
67
- value="value"
68
- selected
69
- ></glide-core-dropdown-option>
70
- </glide-core-dropdown>
71
- >`, {
72
- parentNode: form,
73
- });
74
- const formData = new FormData(form);
75
- expect(formData.get('name')).to.be.equal('["value"]');
76
- });
77
- it('has no `formData` value when no option is selected', async () => {
78
- const form = document.createElement('form');
79
- await fixture(html `<glide-core-dropdown
80
- label="Label"
81
- placeholder="Placeholder"
82
- name="name"
83
- >
84
- <glide-core-dropdown-option
85
- label=""
86
- value="value"
87
- ></glide-core-dropdown-option>
88
- </glide-core-dropdown>`, {
89
- parentNode: form,
90
- });
91
- const formData = new FormData(form);
92
- expect(formData.get('name')).to.be.null;
93
- });
94
- it('has no `formData` value when disabled and an option is selected', async () => {
95
- const form = document.createElement('form');
96
- await fixture(html `<glide-core-dropdown
97
- label="Label"
98
- placeholder="Placeholder"
99
- name="name"
100
- disabled
101
- >
102
- <glide-core-dropdown-option
103
- label="Label"
104
- value="value"
105
- selected
106
- ></glide-core-dropdown-option>
107
- </glide-core-dropdown>`, {
108
- parentNode: form,
109
- });
110
- const formData = new FormData(form);
111
- expect(formData.get('name')).to.be.null;
112
- });
113
- it('has no `formData` value when an option is selected that has no `value`', async () => {
114
- const form = document.createElement('form');
115
- await fixture(html `<glide-core-dropdown
116
- label="Label"
117
- placeholder="Placeholder"
118
- name="name"
119
- >
120
- <glide-core-dropdown-option
121
- label="Label"
122
- selected
123
- ></glide-core-dropdown-option>
124
- </glide-core-dropdown>`, {
125
- parentNode: form,
126
- });
127
- const formData = new FormData(form);
128
- expect(formData.get('name')).to.be.null;
129
- });
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};