@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,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 {};