@ukic/web-components 2.7.0 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1117) hide show
  1. package/dist/cjs/core.cjs.js +3 -3
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/{helpers-0d63359f.js → helpers-3f91f63a.js} +292 -292
  4. package/dist/cjs/helpers-3f91f63a.js.map +1 -0
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +71 -71
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +99 -99
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +58 -58
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +121 -121
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-badge.cjs.entry.js +146 -146
  14. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +172 -166
  16. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-breadcrumb.cjs.entry.js +55 -53
  18. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-button_3.cjs.entry.js +616 -607
  20. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-card.cjs.entry.js +106 -106
  22. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js +60 -60
  24. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-checkbox.cjs.entry.js +95 -95
  26. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-chip.cjs.entry.js +67 -65
  28. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-classification-banner.cjs.entry.js +23 -23
  30. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-data-entity.cjs.entry.js +18 -18
  32. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-data-row.cjs.entry.js +75 -75
  34. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-dialog.cjs.entry.js +339 -318
  36. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-divider.cjs.entry.js +16 -16
  38. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-empty-state.cjs.entry.js +24 -24
  40. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-footer-link-group.cjs.entry.js +55 -55
  42. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-footer-link.cjs.entry.js +50 -50
  44. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer.cjs.entry.js +78 -78
  46. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-hero.cjs.entry.js +62 -62
  48. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +151 -151
  50. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +682 -673
  52. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-input-label_2.cjs.entry.js +63 -63
  54. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-link.cjs.entry.js +55 -55
  56. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-menu-group.cjs.entry.js +12 -12
  58. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-menu-item.cjs.entry.js +100 -100
  60. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-navigation-button.cjs.entry.js +79 -76
  62. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-navigation-group.cjs.entry.js +284 -284
  64. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-navigation-item.cjs.entry.js +153 -153
  66. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-navigation-menu.cjs.entry.js +106 -103
  68. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-page-header.cjs.entry.js +93 -93
  70. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-pagination-item.cjs.entry.js +42 -42
  72. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination.cjs.entry.js +196 -195
  74. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-popover-menu.cjs.entry.js +229 -260
  76. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-radio-group.cjs.entry.js +156 -156
  78. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-radio-option.cjs.entry.js +128 -128
  80. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-search-bar.cjs.entry.js +475 -475
  82. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-section-container.cjs.entry.js +15 -15
  84. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-select.cjs.entry.js +640 -639
  86. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-side-navigation.cjs.entry.js +424 -426
  88. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-skeleton.cjs.entry.js +43 -43
  90. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-status-tag.cjs.entry.js +30 -30
  92. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-step.cjs.entry.js +121 -121
  94. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-stepper.cjs.entry.js +200 -200
  96. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-switch.cjs.entry.js +78 -78
  98. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-tab-context.cjs.entry.js +252 -252
  100. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-tab-group.cjs.entry.js +24 -24
  102. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-tab-panel.cjs.entry.js +31 -31
  104. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-tab.cjs.entry.js +86 -86
  106. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-text-field.cjs.entry.js +209 -217
  108. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-theme.cjs.entry.js +51 -51
  110. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-toast-region.cjs.entry.js +47 -46
  112. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-toast.cjs.entry.js +145 -145
  114. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ic-top-navigation.cjs.entry.js +198 -195
  116. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ic-typography.cjs.entry.js +118 -118
  118. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  119. package/dist/{esm/index-813020f1.js → cjs/index-152d1fe5.js} +634 -376
  120. package/dist/cjs/index-152d1fe5.js.map +1 -0
  121. package/dist/cjs/loader.cjs.js +2 -2
  122. package/dist/cjs/types-dc22e301.js +16 -0
  123. package/dist/cjs/{types-7d67439f.js.map → types-dc22e301.js.map} +1 -1
  124. package/dist/collection/collection-manifest.json +2 -2
  125. package/dist/collection/components/ic-accordion/ic-accordion.js +276 -276
  126. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  127. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +39 -39
  128. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -1
  129. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +215 -215
  130. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
  131. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +200 -200
  132. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  133. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +5 -5
  134. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -1
  135. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +70 -67
  136. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
  137. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +73 -70
  138. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
  139. package/dist/collection/components/ic-alert/ic-alert.js +231 -231
  140. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  141. package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js +5 -5
  142. package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js.map +1 -1
  143. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js +12 -12
  144. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js.map +1 -1
  145. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +44 -44
  146. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  147. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
  148. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +159 -159
  149. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  150. package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js +14 -14
  151. package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js.map +1 -1
  152. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js +43 -43
  153. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js.map +1 -1
  154. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +102 -102
  155. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
  156. package/dist/collection/components/ic-badge/ic-badge.js +385 -385
  157. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  158. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +10 -10
  159. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -1
  160. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +172 -172
  161. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  162. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +9 -1
  163. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +186 -157
  164. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  165. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +43 -43
  166. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +1 -1
  167. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +250 -220
  168. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  169. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js +10 -10
  170. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js.map +1 -1
  171. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js +34 -34
  172. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js.map +1 -1
  173. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +156 -118
  174. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +1 -1
  175. package/dist/collection/components/ic-button/ic-button.css +17 -1
  176. package/dist/collection/components/ic-button/ic-button.js +798 -773
  177. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  178. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js +5 -5
  179. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js.map +1 -1
  180. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +114 -114
  181. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js.map +1 -1
  182. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +249 -236
  183. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  184. package/dist/collection/components/ic-card/ic-card.css +1 -1
  185. package/dist/collection/components/ic-card/ic-card.js +375 -375
  186. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  187. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js +15 -15
  188. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js.map +1 -1
  189. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js +19 -19
  190. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js.map +1 -1
  191. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +147 -147
  192. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -1
  193. package/dist/collection/components/ic-checkbox/ic-checkbox.css +11 -11
  194. package/dist/collection/components/ic-checkbox/ic-checkbox.js +474 -474
  195. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  196. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +302 -302
  197. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  198. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js +5 -5
  199. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js.map +1 -1
  200. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js +124 -124
  201. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js.map +1 -1
  202. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +148 -148
  203. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  204. package/dist/collection/components/ic-chip/ic-chip.css +9 -1
  205. package/dist/collection/components/ic-chip/ic-chip.js +291 -271
  206. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  207. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js +5 -5
  208. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js.map +1 -1
  209. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +81 -81
  210. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  211. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +132 -132
  212. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  213. package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js +5 -5
  214. package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js.map +1 -1
  215. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +55 -55
  216. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -1
  217. package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
  218. package/dist/collection/components/ic-data-entity/ic-data-entity.js +92 -92
  219. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  220. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js +5 -5
  221. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js.map +1 -1
  222. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +28 -28
  223. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  224. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  225. package/dist/collection/components/ic-data-row/ic-data-row.js +170 -170
  226. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  227. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +15 -13
  228. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
  229. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +61 -61
  230. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +1 -1
  231. package/dist/collection/components/ic-dialog/ic-dialog.css +56 -22
  232. package/dist/collection/components/ic-dialog/ic-dialog.js +765 -726
  233. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  234. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js +5 -5
  235. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js.map +1 -1
  236. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +207 -126
  237. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  238. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +573 -574
  239. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  240. package/dist/collection/components/ic-divider/ic-divider.js +38 -38
  241. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  242. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +17 -17
  243. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -1
  244. package/dist/collection/components/ic-empty-state/ic-empty-state.js +151 -151
  245. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  246. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js +5 -5
  247. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js.map +1 -1
  248. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +52 -52
  249. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +1 -1
  250. package/dist/collection/components/ic-footer/ic-footer.js +242 -242
  251. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  252. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +15 -13
  253. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
  254. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js +25 -25
  255. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js.map +1 -1
  256. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +108 -108
  257. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -1
  258. package/dist/collection/components/ic-footer-link/ic-footer-link.js +190 -190
  259. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  260. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js +13 -13
  261. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js.map +1 -1
  262. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +36 -36
  263. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
  264. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +107 -107
  265. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  266. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js +13 -13
  267. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js.map +1 -1
  268. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +52 -52
  269. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
  270. package/dist/collection/components/ic-hero/ic-hero.js +292 -292
  271. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  272. package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js +5 -5
  273. package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js.map +1 -1
  274. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +62 -62
  275. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
  276. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +241 -240
  277. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  278. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +17 -15
  279. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
  280. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +145 -145
  281. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -1
  282. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +4 -4
  283. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +248 -248
  284. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  285. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +49 -49
  286. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  287. package/dist/collection/components/ic-input-container/ic-input-container.js +62 -62
  288. package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
  289. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +19 -19
  290. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +1 -1
  291. package/dist/collection/components/ic-input-label/ic-input-label.js +211 -211
  292. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  293. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +37 -37
  294. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  295. package/dist/collection/components/ic-input-validation/ic-input-validation.js +139 -139
  296. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  297. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +31 -31
  298. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +1 -1
  299. package/dist/collection/components/ic-link/ic-link.js +248 -248
  300. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  301. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js +5 -5
  302. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js.map +1 -1
  303. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +92 -92
  304. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  305. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +416 -415
  306. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  307. package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js +5 -5
  308. package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js.map +1 -1
  309. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js +25 -25
  310. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js.map +1 -1
  311. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +114 -114
  312. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +1 -1
  313. package/dist/collection/components/ic-menu/ic-menu.css +1 -5
  314. package/dist/collection/components/ic-menu/ic-menu.js +1271 -1213
  315. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  316. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +684 -667
  317. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  318. package/dist/collection/components/ic-menu-group/ic-menu-group.js +41 -41
  319. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  320. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +16 -16
  321. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +1 -1
  322. package/dist/collection/components/ic-menu-item/ic-menu-item.js +378 -378
  323. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  324. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +67 -67
  325. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  326. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +262 -259
  327. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  328. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +41 -41
  329. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  330. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  331. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +380 -380
  332. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  333. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +14 -12
  334. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
  335. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +242 -242
  336. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -1
  337. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +11 -5
  338. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +446 -446
  339. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  340. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +14 -12
  341. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
  342. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +78 -78
  343. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -1
  344. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +7 -3
  345. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +187 -184
  346. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  347. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +25 -25
  348. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +1 -1
  349. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +104 -104
  350. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +1 -1
  351. package/dist/collection/components/ic-page-header/ic-page-header.js +286 -286
  352. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  353. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +5 -5
  354. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +1 -1
  355. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +66 -66
  356. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +1 -1
  357. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +82 -82
  358. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
  359. package/dist/collection/components/ic-pagination/ic-pagination.js +487 -482
  360. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  361. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +5 -5
  362. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
  363. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +103 -103
  364. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +1 -1
  365. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +304 -303
  366. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  367. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +225 -225
  368. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  369. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +434 -465
  370. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  371. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +5 -5
  372. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +1 -1
  373. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +29 -26
  374. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
  375. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +283 -283
  376. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -1
  377. package/dist/collection/components/ic-radio-group/ic-radio-group.js +429 -429
  378. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  379. package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js +5 -5
  380. package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js.map +1 -1
  381. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +218 -218
  382. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
  383. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +238 -238
  384. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  385. package/dist/collection/components/ic-radio-option/ic-radio-option.css +8 -8
  386. package/dist/collection/components/ic-radio-option/ic-radio-option.js +479 -479
  387. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  388. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  389. package/dist/collection/components/ic-search-bar/ic-search-bar.js +1381 -1381
  390. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  391. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js +5 -5
  392. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js.map +1 -1
  393. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +992 -1008
  394. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  395. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +568 -568
  396. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
  397. package/dist/collection/components/ic-section-container/ic-section-container.js +70 -70
  398. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  399. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +28 -28
  400. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +1 -1
  401. package/dist/collection/components/ic-select/ic-select.css +1 -1
  402. package/dist/collection/components/ic-select/ic-select.js +1466 -1447
  403. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  404. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +5 -5
  405. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -1
  406. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1563 -1562
  407. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  408. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +1299 -1299
  409. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  410. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +675 -654
  411. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  412. package/dist/collection/components/ic-side-navigation/ic-side-navigation.types.js.map +1 -1
  413. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js +5 -5
  414. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js.map +1 -1
  415. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +463 -464
  416. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  417. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +143 -143
  418. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  419. package/dist/collection/components/ic-skeleton/ic-skeleton.js +127 -127
  420. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  421. package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js +5 -5
  422. package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js.map +1 -1
  423. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +38 -38
  424. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +1 -1
  425. package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
  426. package/dist/collection/components/ic-status-tag/ic-status-tag.js +194 -194
  427. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  428. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +5 -5
  429. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +1 -1
  430. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +14 -14
  431. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
  432. package/dist/collection/components/ic-step/ic-step.css +7 -1
  433. package/dist/collection/components/ic-step/ic-step.js +385 -385
  434. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  435. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +87 -87
  436. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +1 -1
  437. package/dist/collection/components/ic-stepper/ic-stepper.js +306 -306
  438. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  439. package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js +10 -10
  440. package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js.map +1 -1
  441. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js +36 -36
  442. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js.map +1 -1
  443. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +350 -350
  444. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  445. package/dist/collection/components/ic-switch/ic-switch.css +3 -2
  446. package/dist/collection/components/ic-switch/ic-switch.js +355 -355
  447. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  448. package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js +5 -5
  449. package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js.map +1 -1
  450. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +88 -88
  451. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
  452. package/dist/collection/components/ic-tab/ic-tab.js +350 -350
  453. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  454. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js +26 -26
  455. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js.map +1 -1
  456. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +93 -93
  457. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -1
  458. package/dist/collection/components/ic-tab-context/ic-tab-context.js +442 -441
  459. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  460. package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js +5 -5
  461. package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js.map +1 -1
  462. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +213 -213
  463. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  464. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +250 -250
  465. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +1 -1
  466. package/dist/collection/components/ic-tab-group/ic-tab-group.css +1 -1
  467. package/dist/collection/components/ic-tab-group/ic-tab-group.js +117 -117
  468. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  469. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +444 -1
  470. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +191 -191
  471. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  472. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +29 -29
  473. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +1 -1
  474. package/dist/collection/components/ic-text-field/ic-text-field.js +1114 -1122
  475. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  476. package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js +5 -5
  477. package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js.map +1 -1
  478. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +94 -94
  479. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -1
  480. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +194 -194
  481. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  482. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +92 -92
  483. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  484. package/dist/collection/components/ic-theme/ic-theme.js +99 -99
  485. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  486. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +65 -65
  487. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +1 -1
  488. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +53 -53
  489. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +1 -1
  490. package/dist/collection/components/ic-toast/ic-toast.js +368 -368
  491. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  492. package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js +10 -10
  493. package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js.map +1 -1
  494. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js +66 -66
  495. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js.map +1 -1
  496. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +180 -180
  497. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
  498. package/dist/collection/components/ic-toast-region/ic-toast-region.js +115 -110
  499. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  500. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +58 -58
  501. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  502. package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -2
  503. package/dist/collection/components/ic-tooltip/ic-tooltip.js +347 -329
  504. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  505. package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js +5 -5
  506. package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js.map +1 -1
  507. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +105 -105
  508. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  509. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +276 -276
  510. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  511. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +3 -7
  512. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +432 -414
  513. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  514. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +20 -18
  515. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -1
  516. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js +43 -43
  517. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js.map +1 -1
  518. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +191 -191
  519. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
  520. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +187 -172
  521. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
  522. package/dist/collection/components/ic-typography/ic-typography.js +270 -270
  523. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  524. package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js +5 -5
  525. package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js.map +1 -1
  526. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +25 -25
  527. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
  528. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +276 -276
  529. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  530. package/dist/collection/testspec.setup.js +32 -32
  531. package/dist/collection/testspec.setup.js.map +1 -1
  532. package/dist/collection/utils/constants.js +55 -55
  533. package/dist/collection/utils/constants.js.map +1 -1
  534. package/dist/collection/utils/helpers.js +235 -235
  535. package/dist/collection/utils/helpers.js.map +1 -1
  536. package/dist/collection/utils/testa11y.helpers.js +2 -2
  537. package/dist/collection/utils/testa11y.helpers.js.map +1 -1
  538. package/dist/collection/utils/types.js +6 -6
  539. package/dist/collection/utils/types.js.map +1 -1
  540. package/dist/components/helpers.js +290 -290
  541. package/dist/components/helpers.js.map +1 -1
  542. package/dist/components/ic-accordion-group.d.ts +2 -2
  543. package/dist/components/ic-accordion-group.js +112 -112
  544. package/dist/components/ic-accordion-group.js.map +1 -1
  545. package/dist/components/ic-accordion.d.ts +2 -2
  546. package/dist/components/ic-accordion.js +125 -125
  547. package/dist/components/ic-accordion.js.map +1 -1
  548. package/dist/components/ic-alert.d.ts +2 -2
  549. package/dist/components/ic-alert2.js +98 -98
  550. package/dist/components/ic-alert2.js.map +1 -1
  551. package/dist/components/ic-back-to-top.d.ts +2 -2
  552. package/dist/components/ic-back-to-top.js +144 -144
  553. package/dist/components/ic-back-to-top.js.map +1 -1
  554. package/dist/components/ic-badge.d.ts +2 -2
  555. package/dist/components/ic-badge.js +174 -174
  556. package/dist/components/ic-badge.js.map +1 -1
  557. package/dist/components/ic-breadcrumb-group.d.ts +2 -2
  558. package/dist/components/ic-breadcrumb-group.js +199 -192
  559. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  560. package/dist/components/ic-breadcrumb.d.ts +2 -2
  561. package/dist/components/ic-breadcrumb2.js +78 -75
  562. package/dist/components/ic-breadcrumb2.js.map +1 -1
  563. package/dist/components/ic-button.d.ts +2 -2
  564. package/dist/components/ic-button2.js +312 -304
  565. package/dist/components/ic-button2.js.map +1 -1
  566. package/dist/components/ic-card.d.ts +2 -2
  567. package/dist/components/ic-card.js +156 -156
  568. package/dist/components/ic-card.js.map +1 -1
  569. package/dist/components/ic-checkbox-group.d.ts +2 -2
  570. package/dist/components/ic-checkbox-group.js +97 -97
  571. package/dist/components/ic-checkbox-group.js.map +1 -1
  572. package/dist/components/ic-checkbox.d.ts +2 -2
  573. package/dist/components/ic-checkbox.js +131 -131
  574. package/dist/components/ic-checkbox.js.map +1 -1
  575. package/dist/components/ic-chip.d.ts +2 -2
  576. package/dist/components/ic-chip.js +99 -96
  577. package/dist/components/ic-chip.js.map +1 -1
  578. package/dist/components/ic-classification-banner.d.ts +2 -2
  579. package/dist/components/ic-classification-banner.js +47 -47
  580. package/dist/components/ic-classification-banner.js.map +1 -1
  581. package/dist/components/ic-data-entity.d.ts +2 -2
  582. package/dist/components/ic-data-entity.js +40 -40
  583. package/dist/components/ic-data-entity.js.map +1 -1
  584. package/dist/components/ic-data-row.d.ts +2 -2
  585. package/dist/components/ic-data-row.js +98 -98
  586. package/dist/components/ic-data-row.js.map +1 -1
  587. package/dist/components/ic-dialog.d.ts +2 -2
  588. package/dist/components/ic-dialog.js +400 -378
  589. package/dist/components/ic-dialog.js.map +1 -1
  590. package/dist/components/ic-divider.d.ts +2 -2
  591. package/dist/components/ic-divider2.js +28 -28
  592. package/dist/components/ic-divider2.js.map +1 -1
  593. package/dist/components/ic-empty-state.d.ts +2 -2
  594. package/dist/components/ic-empty-state.js +47 -47
  595. package/dist/components/ic-empty-state.js.map +1 -1
  596. package/dist/components/ic-footer-link-group.d.ts +2 -2
  597. package/dist/components/ic-footer-link-group.js +82 -82
  598. package/dist/components/ic-footer-link-group.js.map +1 -1
  599. package/dist/components/ic-footer-link.d.ts +2 -2
  600. package/dist/components/ic-footer-link.js +71 -71
  601. package/dist/components/ic-footer-link.js.map +1 -1
  602. package/dist/components/ic-footer.d.ts +2 -2
  603. package/dist/components/ic-footer.js +108 -108
  604. package/dist/components/ic-footer.js.map +1 -1
  605. package/dist/components/ic-hero.d.ts +2 -2
  606. package/dist/components/ic-hero.js +98 -98
  607. package/dist/components/ic-hero.js.map +1 -1
  608. package/dist/components/ic-horizontal-scroll.d.ts +2 -2
  609. package/dist/components/ic-horizontal-scroll2.js +189 -189
  610. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  611. package/dist/components/ic-input-component-container.d.ts +2 -2
  612. package/dist/components/ic-input-component-container2.js +62 -62
  613. package/dist/components/ic-input-component-container2.js.map +1 -1
  614. package/dist/components/ic-input-container.d.ts +2 -2
  615. package/dist/components/ic-input-container2.js +28 -28
  616. package/dist/components/ic-input-container2.js.map +1 -1
  617. package/dist/components/ic-input-label.d.ts +2 -2
  618. package/dist/components/ic-input-label2.js +62 -62
  619. package/dist/components/ic-input-label2.js.map +1 -1
  620. package/dist/components/ic-input-validation.d.ts +2 -2
  621. package/dist/components/ic-input-validation2.js +50 -50
  622. package/dist/components/ic-input-validation2.js.map +1 -1
  623. package/dist/components/ic-link.d.ts +2 -2
  624. package/dist/components/ic-link2.js +76 -76
  625. package/dist/components/ic-link2.js.map +1 -1
  626. package/dist/components/ic-loading-indicator.d.ts +2 -2
  627. package/dist/components/ic-loading-indicator2.js +211 -210
  628. package/dist/components/ic-loading-indicator2.js.map +1 -1
  629. package/dist/components/ic-menu-group.d.ts +2 -2
  630. package/dist/components/ic-menu-group.js +30 -30
  631. package/dist/components/ic-menu-group.js.map +1 -1
  632. package/dist/components/ic-menu-item.d.ts +2 -2
  633. package/dist/components/ic-menu-item2.js +144 -144
  634. package/dist/components/ic-menu-item2.js.map +1 -1
  635. package/dist/components/ic-menu.d.ts +2 -2
  636. package/dist/components/ic-menu2.js +694 -682
  637. package/dist/components/ic-menu2.js.map +1 -1
  638. package/dist/components/ic-navigation-button.d.ts +2 -2
  639. package/dist/components/ic-navigation-button.js +121 -118
  640. package/dist/components/ic-navigation-button.js.map +1 -1
  641. package/dist/components/ic-navigation-group.d.ts +2 -2
  642. package/dist/components/ic-navigation-group.js +311 -311
  643. package/dist/components/ic-navigation-group.js.map +1 -1
  644. package/dist/components/ic-navigation-item.d.ts +2 -2
  645. package/dist/components/ic-navigation-item.js +195 -195
  646. package/dist/components/ic-navigation-item.js.map +1 -1
  647. package/dist/components/ic-navigation-menu.d.ts +2 -2
  648. package/dist/components/ic-navigation-menu2.js +140 -137
  649. package/dist/components/ic-navigation-menu2.js.map +1 -1
  650. package/dist/components/ic-page-header.d.ts +2 -2
  651. package/dist/components/ic-page-header.js +147 -147
  652. package/dist/components/ic-page-header.js.map +1 -1
  653. package/dist/components/ic-pagination-item.d.ts +2 -2
  654. package/dist/components/ic-pagination-item2.js +67 -67
  655. package/dist/components/ic-pagination-item2.js.map +1 -1
  656. package/dist/components/ic-pagination.d.ts +2 -2
  657. package/dist/components/ic-pagination.js +253 -252
  658. package/dist/components/ic-pagination.js.map +1 -1
  659. package/dist/components/ic-popover-menu.d.ts +2 -2
  660. package/dist/components/ic-popover-menu.js +278 -309
  661. package/dist/components/ic-popover-menu.js.map +1 -1
  662. package/dist/components/ic-radio-group.d.ts +2 -2
  663. package/dist/components/ic-radio-group.js +200 -200
  664. package/dist/components/ic-radio-group.js.map +1 -1
  665. package/dist/components/ic-radio-option.d.ts +2 -2
  666. package/dist/components/ic-radio-option.js +163 -163
  667. package/dist/components/ic-radio-option.js.map +1 -1
  668. package/dist/components/ic-search-bar.d.ts +2 -2
  669. package/dist/components/ic-search-bar.js +581 -581
  670. package/dist/components/ic-search-bar.js.map +1 -1
  671. package/dist/components/ic-section-container.d.ts +2 -2
  672. package/dist/components/ic-section-container2.js +31 -31
  673. package/dist/components/ic-section-container2.js.map +1 -1
  674. package/dist/components/ic-select.d.ts +2 -2
  675. package/dist/components/ic-select.js +752 -750
  676. package/dist/components/ic-select.js.map +1 -1
  677. package/dist/components/ic-side-navigation.d.ts +2 -2
  678. package/dist/components/ic-side-navigation.js +479 -481
  679. package/dist/components/ic-side-navigation.js.map +1 -1
  680. package/dist/components/ic-skeleton.d.ts +2 -2
  681. package/dist/components/ic-skeleton.js +64 -64
  682. package/dist/components/ic-skeleton.js.map +1 -1
  683. package/dist/components/ic-status-tag.d.ts +2 -2
  684. package/dist/components/ic-status-tag.js +54 -54
  685. package/dist/components/ic-status-tag.js.map +1 -1
  686. package/dist/components/ic-step.d.ts +2 -2
  687. package/dist/components/ic-step.js +157 -157
  688. package/dist/components/ic-step.js.map +1 -1
  689. package/dist/components/ic-stepper.d.ts +2 -2
  690. package/dist/components/ic-stepper.js +223 -223
  691. package/dist/components/ic-stepper.js.map +1 -1
  692. package/dist/components/ic-switch.d.ts +2 -2
  693. package/dist/components/ic-switch.js +115 -115
  694. package/dist/components/ic-switch.js.map +1 -1
  695. package/dist/components/ic-tab-context.d.ts +2 -2
  696. package/dist/components/ic-tab-context.js +271 -271
  697. package/dist/components/ic-tab-context.js.map +1 -1
  698. package/dist/components/ic-tab-group.d.ts +2 -2
  699. package/dist/components/ic-tab-group.js +65 -65
  700. package/dist/components/ic-tab-group.js.map +1 -1
  701. package/dist/components/ic-tab-panel.d.ts +2 -2
  702. package/dist/components/ic-tab-panel.js +48 -48
  703. package/dist/components/ic-tab-panel.js.map +1 -1
  704. package/dist/components/ic-tab.d.ts +2 -2
  705. package/dist/components/ic-tab.js +112 -112
  706. package/dist/components/ic-tab.js.map +1 -1
  707. package/dist/components/ic-text-field.d.ts +2 -2
  708. package/dist/components/ic-text-field2.js +292 -300
  709. package/dist/components/ic-text-field2.js.map +1 -1
  710. package/dist/components/ic-theme.d.ts +2 -2
  711. package/dist/components/ic-theme.js +65 -65
  712. package/dist/components/ic-theme.js.map +1 -1
  713. package/dist/components/ic-toast-region.d.ts +2 -2
  714. package/dist/components/ic-toast-region.js +63 -62
  715. package/dist/components/ic-toast-region.js.map +1 -1
  716. package/dist/components/ic-toast.d.ts +2 -2
  717. package/dist/components/ic-toast.js +187 -187
  718. package/dist/components/ic-toast.js.map +1 -1
  719. package/dist/components/ic-tooltip.d.ts +2 -2
  720. package/dist/components/ic-tooltip2.js +214 -212
  721. package/dist/components/ic-tooltip2.js.map +1 -1
  722. package/dist/components/ic-top-navigation.d.ts +2 -2
  723. package/dist/components/ic-top-navigation.js +263 -260
  724. package/dist/components/ic-top-navigation.js.map +1 -1
  725. package/dist/components/ic-typography.d.ts +2 -2
  726. package/dist/components/ic-typography2.js +142 -142
  727. package/dist/components/ic-typography2.js.map +1 -1
  728. package/dist/components/types.js +6 -6
  729. package/dist/components/types.js.map +1 -1
  730. package/dist/core/core.css +2 -2
  731. package/dist/core/core.esm.js +1 -1
  732. package/dist/core/core.esm.js.map +1 -1
  733. package/dist/core/p-02159742.entry.js +2 -0
  734. package/dist/core/p-02159742.entry.js.map +1 -0
  735. package/dist/core/p-056f8a67.entry.js +2 -0
  736. package/dist/core/p-056f8a67.entry.js.map +1 -0
  737. package/dist/core/{p-08b59078.entry.js → p-11736fbe.entry.js} +2 -2
  738. package/dist/core/{p-ba495175.entry.js → p-15466b42.entry.js} +2 -2
  739. package/dist/core/{p-ba495175.entry.js.map → p-15466b42.entry.js.map} +1 -1
  740. package/dist/core/{p-eb063498.entry.js → p-15624e08.entry.js} +2 -2
  741. package/dist/core/p-15624e08.entry.js.map +1 -0
  742. package/dist/core/{p-5fcd202e.entry.js → p-15ef0674.entry.js} +2 -2
  743. package/dist/core/{p-88ea1e49.entry.js → p-180e36b1.entry.js} +2 -2
  744. package/dist/core/p-22c024ee.entry.js +2 -0
  745. package/dist/core/p-22c024ee.entry.js.map +1 -0
  746. package/dist/core/{p-613aa265.js → p-26b7b18f.js} +1 -1
  747. package/dist/core/{p-932fb4b7.entry.js → p-287ab47c.entry.js} +2 -2
  748. package/dist/core/{p-69948c3e.entry.js → p-2b24b4bf.entry.js} +2 -2
  749. package/dist/core/p-31969be6.entry.js +2 -0
  750. package/dist/core/p-31969be6.entry.js.map +1 -0
  751. package/dist/core/{p-475b7bd2.entry.js → p-335fc5e4.entry.js} +2 -2
  752. package/dist/core/{p-c9ef9f5c.entry.js → p-366bcb17.entry.js} +2 -2
  753. package/dist/core/{p-ed256f1d.entry.js → p-3a0ef91e.entry.js} +2 -2
  754. package/dist/core/p-498eb7ad.entry.js +2 -0
  755. package/dist/core/p-498eb7ad.entry.js.map +1 -0
  756. package/dist/core/p-51f9f329.entry.js +2 -0
  757. package/dist/core/p-51f9f329.entry.js.map +1 -0
  758. package/dist/core/{p-f019219c.entry.js → p-529d8955.entry.js} +2 -2
  759. package/dist/core/p-52e063d3.js +3 -0
  760. package/dist/core/p-52e063d3.js.map +1 -0
  761. package/dist/core/p-5c7e339f.entry.js +2 -0
  762. package/dist/core/p-5c7e339f.entry.js.map +1 -0
  763. package/dist/core/p-5f9d69ef.entry.js +2 -0
  764. package/dist/core/p-5f9d69ef.entry.js.map +1 -0
  765. package/dist/core/{p-2c30b583.entry.js → p-60c4604f.entry.js} +2 -2
  766. package/dist/core/p-6bc431b2.entry.js +2 -0
  767. package/dist/core/p-6bc431b2.entry.js.map +1 -0
  768. package/dist/core/{p-ccac1730.entry.js → p-6d3f9501.entry.js} +2 -2
  769. package/dist/core/{p-536b3c97.entry.js → p-6eb0421d.entry.js} +2 -2
  770. package/dist/core/{p-48525498.entry.js → p-765bdd98.entry.js} +2 -2
  771. package/dist/core/{p-3a814fc4.entry.js → p-7f887c1e.entry.js} +2 -2
  772. package/dist/core/{p-752f0f9a.entry.js → p-8a83f391.entry.js} +2 -2
  773. package/dist/core/p-8a83f391.entry.js.map +1 -0
  774. package/dist/core/{p-e3bffcae.entry.js → p-94e88827.entry.js} +2 -2
  775. package/dist/core/{p-8fb4f0c0.js → p-95a864bf.js} +2 -2
  776. package/dist/core/{p-c0c62df4.entry.js → p-9639e33f.entry.js} +2 -2
  777. package/dist/core/p-9639e33f.entry.js.map +1 -0
  778. package/dist/core/p-96da1e85.entry.js +2 -0
  779. package/dist/core/p-96da1e85.entry.js.map +1 -0
  780. package/dist/core/p-988991d3.entry.js +2 -0
  781. package/dist/core/p-988991d3.entry.js.map +1 -0
  782. package/dist/core/{p-0c82048e.entry.js → p-9c30720d.entry.js} +2 -2
  783. package/dist/core/p-aa0a9870.entry.js +2 -0
  784. package/dist/core/p-aa0a9870.entry.js.map +1 -0
  785. package/dist/core/{p-76563540.entry.js → p-ad36a704.entry.js} +2 -2
  786. package/dist/core/p-b0088956.entry.js +2 -0
  787. package/dist/core/p-b0088956.entry.js.map +1 -0
  788. package/dist/core/p-b39ecae2.entry.js +2 -0
  789. package/dist/core/p-b39ecae2.entry.js.map +1 -0
  790. package/dist/core/{p-2265e418.entry.js → p-b6a575c3.entry.js} +2 -2
  791. package/dist/core/{p-fbc8a739.entry.js → p-b9736cf4.entry.js} +2 -2
  792. package/dist/core/{p-025f9d2a.entry.js → p-b99f9e89.entry.js} +2 -2
  793. package/dist/core/{p-b0ce60a0.entry.js → p-c2452388.entry.js} +2 -2
  794. package/dist/core/{p-345fe84a.entry.js → p-c770e7a2.entry.js} +2 -2
  795. package/dist/core/p-ca178add.entry.js +2 -0
  796. package/dist/core/p-ca178add.entry.js.map +1 -0
  797. package/dist/core/p-ca48e97a.entry.js +2 -0
  798. package/dist/core/p-ca48e97a.entry.js.map +1 -0
  799. package/dist/core/p-cd8de4c5.entry.js +2 -0
  800. package/dist/core/p-cd8de4c5.entry.js.map +1 -0
  801. package/dist/core/{p-a4397df4.entry.js → p-cfc930f6.entry.js} +2 -2
  802. package/dist/core/{p-3a15202f.entry.js → p-d18450f9.entry.js} +2 -2
  803. package/dist/core/p-d18450f9.entry.js.map +1 -0
  804. package/dist/core/p-daebb58a.entry.js +2 -0
  805. package/dist/core/p-daebb58a.entry.js.map +1 -0
  806. package/dist/core/p-dbb5b008.entry.js +2 -0
  807. package/dist/core/p-dbb5b008.entry.js.map +1 -0
  808. package/dist/core/p-e278242f.entry.js +2 -0
  809. package/dist/core/p-e278242f.entry.js.map +1 -0
  810. package/dist/core/{p-af9f1caa.entry.js → p-e5abfadd.entry.js} +2 -2
  811. package/dist/core/p-e5abfadd.entry.js.map +1 -0
  812. package/dist/core/{p-41c6eaa1.entry.js → p-e9738c74.entry.js} +2 -2
  813. package/dist/core/p-ea17e371.entry.js +2 -0
  814. package/dist/core/p-ea17e371.entry.js.map +1 -0
  815. package/dist/core/{p-e2fd542e.entry.js → p-edd29edc.entry.js} +2 -2
  816. package/dist/core/p-edec0936.entry.js +2 -0
  817. package/dist/core/p-edec0936.entry.js.map +1 -0
  818. package/dist/core/p-ee97e2a5.entry.js +2 -0
  819. package/dist/core/p-ee97e2a5.entry.js.map +1 -0
  820. package/dist/core/{p-8b18346a.entry.js → p-f0809037.entry.js} +2 -2
  821. package/dist/core/p-f0809037.entry.js.map +1 -0
  822. package/dist/core/{p-5bb6c79b.entry.js → p-f2e6b9ef.entry.js} +2 -2
  823. package/dist/core/{p-cf4bacee.entry.js → p-fdb4b48f.entry.js} +2 -2
  824. package/dist/esm/core.js +4 -4
  825. package/dist/esm/core.js.map +1 -1
  826. package/dist/esm/{helpers-24f6e762.js → helpers-c597f246.js} +292 -292
  827. package/dist/esm/helpers-c597f246.js.map +1 -0
  828. package/dist/esm/ic-accordion-group.entry.js +71 -71
  829. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  830. package/dist/esm/ic-accordion.entry.js +99 -99
  831. package/dist/esm/ic-accordion.entry.js.map +1 -1
  832. package/dist/esm/ic-alert.entry.js +58 -58
  833. package/dist/esm/ic-alert.entry.js.map +1 -1
  834. package/dist/esm/ic-back-to-top.entry.js +121 -121
  835. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  836. package/dist/esm/ic-badge.entry.js +146 -146
  837. package/dist/esm/ic-badge.entry.js.map +1 -1
  838. package/dist/esm/ic-breadcrumb-group.entry.js +172 -166
  839. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  840. package/dist/esm/ic-breadcrumb.entry.js +55 -53
  841. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  842. package/dist/esm/ic-button_3.entry.js +616 -607
  843. package/dist/esm/ic-button_3.entry.js.map +1 -1
  844. package/dist/esm/ic-card.entry.js +106 -106
  845. package/dist/esm/ic-card.entry.js.map +1 -1
  846. package/dist/esm/ic-checkbox-group.entry.js +60 -60
  847. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  848. package/dist/esm/ic-checkbox.entry.js +95 -95
  849. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  850. package/dist/esm/ic-chip.entry.js +67 -65
  851. package/dist/esm/ic-chip.entry.js.map +1 -1
  852. package/dist/esm/ic-classification-banner.entry.js +23 -23
  853. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  854. package/dist/esm/ic-data-entity.entry.js +18 -18
  855. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  856. package/dist/esm/ic-data-row.entry.js +75 -75
  857. package/dist/esm/ic-data-row.entry.js.map +1 -1
  858. package/dist/esm/ic-dialog.entry.js +339 -318
  859. package/dist/esm/ic-dialog.entry.js.map +1 -1
  860. package/dist/esm/ic-divider.entry.js +16 -16
  861. package/dist/esm/ic-divider.entry.js.map +1 -1
  862. package/dist/esm/ic-empty-state.entry.js +24 -24
  863. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  864. package/dist/esm/ic-footer-link-group.entry.js +55 -55
  865. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  866. package/dist/esm/ic-footer-link.entry.js +50 -50
  867. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  868. package/dist/esm/ic-footer.entry.js +78 -78
  869. package/dist/esm/ic-footer.entry.js.map +1 -1
  870. package/dist/esm/ic-hero.entry.js +62 -62
  871. package/dist/esm/ic-hero.entry.js.map +1 -1
  872. package/dist/esm/ic-horizontal-scroll.entry.js +151 -151
  873. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  874. package/dist/esm/ic-input-component-container_3.entry.js +682 -673
  875. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  876. package/dist/esm/ic-input-label_2.entry.js +63 -63
  877. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  878. package/dist/esm/ic-link.entry.js +55 -55
  879. package/dist/esm/ic-link.entry.js.map +1 -1
  880. package/dist/esm/ic-menu-group.entry.js +12 -12
  881. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  882. package/dist/esm/ic-menu-item.entry.js +100 -100
  883. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  884. package/dist/esm/ic-navigation-button.entry.js +79 -76
  885. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  886. package/dist/esm/ic-navigation-group.entry.js +284 -284
  887. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  888. package/dist/esm/ic-navigation-item.entry.js +153 -153
  889. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  890. package/dist/esm/ic-navigation-menu.entry.js +106 -103
  891. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  892. package/dist/esm/ic-page-header.entry.js +93 -93
  893. package/dist/esm/ic-page-header.entry.js.map +1 -1
  894. package/dist/esm/ic-pagination-item.entry.js +42 -42
  895. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  896. package/dist/esm/ic-pagination.entry.js +196 -195
  897. package/dist/esm/ic-pagination.entry.js.map +1 -1
  898. package/dist/esm/ic-popover-menu.entry.js +229 -260
  899. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  900. package/dist/esm/ic-radio-group.entry.js +156 -156
  901. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  902. package/dist/esm/ic-radio-option.entry.js +128 -128
  903. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  904. package/dist/esm/ic-search-bar.entry.js +475 -475
  905. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  906. package/dist/esm/ic-section-container.entry.js +15 -15
  907. package/dist/esm/ic-section-container.entry.js.map +1 -1
  908. package/dist/esm/ic-select.entry.js +640 -639
  909. package/dist/esm/ic-select.entry.js.map +1 -1
  910. package/dist/esm/ic-side-navigation.entry.js +424 -426
  911. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  912. package/dist/esm/ic-skeleton.entry.js +43 -43
  913. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  914. package/dist/esm/ic-status-tag.entry.js +30 -30
  915. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  916. package/dist/esm/ic-step.entry.js +121 -121
  917. package/dist/esm/ic-step.entry.js.map +1 -1
  918. package/dist/esm/ic-stepper.entry.js +200 -200
  919. package/dist/esm/ic-stepper.entry.js.map +1 -1
  920. package/dist/esm/ic-switch.entry.js +78 -78
  921. package/dist/esm/ic-switch.entry.js.map +1 -1
  922. package/dist/esm/ic-tab-context.entry.js +252 -252
  923. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  924. package/dist/esm/ic-tab-group.entry.js +24 -24
  925. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  926. package/dist/esm/ic-tab-panel.entry.js +31 -31
  927. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  928. package/dist/esm/ic-tab.entry.js +86 -86
  929. package/dist/esm/ic-tab.entry.js.map +1 -1
  930. package/dist/esm/ic-text-field.entry.js +209 -217
  931. package/dist/esm/ic-text-field.entry.js.map +1 -1
  932. package/dist/esm/ic-theme.entry.js +51 -51
  933. package/dist/esm/ic-theme.entry.js.map +1 -1
  934. package/dist/esm/ic-toast-region.entry.js +47 -46
  935. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  936. package/dist/esm/ic-toast.entry.js +145 -145
  937. package/dist/esm/ic-toast.entry.js.map +1 -1
  938. package/dist/esm/ic-top-navigation.entry.js +198 -195
  939. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  940. package/dist/esm/ic-typography.entry.js +118 -118
  941. package/dist/esm/ic-typography.entry.js.map +1 -1
  942. package/dist/{cjs/index-4f8c900f.js → esm/index-05003e1c.js} +603 -407
  943. package/dist/esm/index-05003e1c.js.map +1 -0
  944. package/dist/esm/loader.js +3 -3
  945. package/dist/esm/types-6f6b41a5.js +16 -0
  946. package/dist/esm/{types-b2398b37.js.map → types-6f6b41a5.js.map} +1 -1
  947. package/dist/node.d.ts +12 -0
  948. package/dist/types/components/ic-accordion/ic-accordion.d.ts +48 -48
  949. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +30 -30
  950. package/dist/types/components/ic-alert/ic-alert.d.ts +40 -40
  951. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +23 -23
  952. package/dist/types/components/ic-badge/ic-badge.d.ts +57 -57
  953. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +30 -25
  954. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +43 -38
  955. package/dist/types/components/ic-button/ic-button.d.ts +142 -137
  956. package/dist/types/components/ic-card/ic-card.d.ts +68 -68
  957. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +91 -91
  958. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +50 -50
  959. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.types.d.ts +6 -6
  960. package/dist/types/components/ic-chip/ic-chip.d.ts +50 -46
  961. package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +21 -21
  962. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +14 -14
  963. package/dist/types/components/ic-data-row/ic-data-row.d.ts +34 -34
  964. package/dist/types/components/ic-dialog/ic-dialog.d.ts +139 -128
  965. package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
  966. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +27 -27
  967. package/dist/types/components/ic-footer/ic-footer.d.ts +41 -41
  968. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +35 -35
  969. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +17 -17
  970. package/dist/types/components/ic-hero/ic-hero.d.ts +51 -51
  971. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +41 -41
  972. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +42 -42
  973. package/dist/types/components/ic-input-container/ic-input-container.d.ts +9 -9
  974. package/dist/types/components/ic-input-label/ic-input-label.d.ts +38 -38
  975. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +23 -23
  976. package/dist/types/components/ic-link/ic-link.d.ts +44 -44
  977. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +76 -76
  978. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +3 -3
  979. package/dist/types/components/ic-menu/ic-menu.d.ts +183 -173
  980. package/dist/types/components/ic-menu/ic-menu.types.d.ts +6 -6
  981. package/dist/types/components/ic-menu-group/ic-menu-group.d.ts +6 -6
  982. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +66 -66
  983. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +47 -47
  984. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +62 -62
  985. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +80 -80
  986. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +29 -29
  987. package/dist/types/components/ic-page-header/ic-page-header.d.ts +48 -48
  988. package/dist/types/components/ic-pagination/ic-pagination.d.ts +78 -77
  989. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
  990. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +42 -42
  991. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +60 -60
  992. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +67 -67
  993. package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +5 -5
  994. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +89 -89
  995. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +248 -248
  996. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  997. package/dist/types/components/ic-section-container/ic-section-container.d.ts +9 -9
  998. package/dist/types/components/ic-select/ic-select.d.ts +269 -265
  999. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +103 -97
  1000. package/dist/types/components/ic-side-navigation/ic-side-navigation.types.d.ts +10 -6
  1001. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +19 -19
  1002. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +31 -31
  1003. package/dist/types/components/ic-step/ic-step.d.ts +51 -51
  1004. package/dist/types/components/ic-stepper/ic-stepper.d.ts +40 -40
  1005. package/dist/types/components/ic-switch/ic-switch.d.ts +73 -73
  1006. package/dist/types/components/ic-switch/ic-switch.types.d.ts +2 -2
  1007. package/dist/types/components/ic-tab/ic-tab.d.ts +51 -51
  1008. package/dist/types/components/ic-tab/ic-tab.types.d.ts +4 -4
  1009. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +59 -59
  1010. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +19 -19
  1011. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +33 -33
  1012. package/dist/types/components/ic-text-field/ic-text-field.d.ts +214 -213
  1013. package/dist/types/components/ic-theme/ic-theme.d.ts +14 -14
  1014. package/dist/types/components/ic-toast/ic-toast.d.ts +58 -58
  1015. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +16 -15
  1016. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +54 -50
  1017. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +78 -72
  1018. package/dist/types/components/ic-typography/ic-typography.d.ts +54 -54
  1019. package/dist/types/components.d.ts +415 -3
  1020. package/dist/types/stencil-public-runtime.d.ts +29 -0
  1021. package/dist/types/testspec.setup.d.ts +7 -7
  1022. package/dist/types/utils/constants.d.ts +26 -26
  1023. package/dist/types/utils/helpers.d.ts +7 -7
  1024. package/dist/types/utils/types.d.ts +31 -31
  1025. package/hydrate/index.d.ts +2 -2
  1026. package/hydrate/index.js +16042 -14263
  1027. package/package.json +5 -4
  1028. package/vscode-data.json +3939 -0
  1029. package/dist/cjs/helpers-0d63359f.js.map +0 -1
  1030. package/dist/cjs/index-4f8c900f.js.map +0 -1
  1031. package/dist/cjs/types-7d67439f.js +0 -16
  1032. package/dist/core/p-03329fd0.entry.js +0 -2
  1033. package/dist/core/p-03329fd0.entry.js.map +0 -1
  1034. package/dist/core/p-0dc4f225.entry.js +0 -2
  1035. package/dist/core/p-0dc4f225.entry.js.map +0 -1
  1036. package/dist/core/p-12124e24.entry.js +0 -2
  1037. package/dist/core/p-12124e24.entry.js.map +0 -1
  1038. package/dist/core/p-1cf2a6aa.entry.js +0 -2
  1039. package/dist/core/p-1cf2a6aa.entry.js.map +0 -1
  1040. package/dist/core/p-39c8111d.entry.js +0 -2
  1041. package/dist/core/p-39c8111d.entry.js.map +0 -1
  1042. package/dist/core/p-3a15202f.entry.js.map +0 -1
  1043. package/dist/core/p-3fd897c9.entry.js +0 -2
  1044. package/dist/core/p-3fd897c9.entry.js.map +0 -1
  1045. package/dist/core/p-432f8ff0.entry.js +0 -2
  1046. package/dist/core/p-432f8ff0.entry.js.map +0 -1
  1047. package/dist/core/p-4559600a.entry.js +0 -2
  1048. package/dist/core/p-4559600a.entry.js.map +0 -1
  1049. package/dist/core/p-59bdafff.entry.js +0 -2
  1050. package/dist/core/p-59bdafff.entry.js.map +0 -1
  1051. package/dist/core/p-5b487daa.entry.js +0 -2
  1052. package/dist/core/p-5b487daa.entry.js.map +0 -1
  1053. package/dist/core/p-5ca39ed5.entry.js +0 -2
  1054. package/dist/core/p-5ca39ed5.entry.js.map +0 -1
  1055. package/dist/core/p-752f0f9a.entry.js.map +0 -1
  1056. package/dist/core/p-763d0822.entry.js +0 -2
  1057. package/dist/core/p-763d0822.entry.js.map +0 -1
  1058. package/dist/core/p-7bb3c340.entry.js +0 -2
  1059. package/dist/core/p-7bb3c340.entry.js.map +0 -1
  1060. package/dist/core/p-8b18346a.entry.js.map +0 -1
  1061. package/dist/core/p-9ccfb863.entry.js +0 -2
  1062. package/dist/core/p-9ccfb863.entry.js.map +0 -1
  1063. package/dist/core/p-9d124fc7.js +0 -3
  1064. package/dist/core/p-9d124fc7.js.map +0 -1
  1065. package/dist/core/p-a448d873.entry.js +0 -2
  1066. package/dist/core/p-a448d873.entry.js.map +0 -1
  1067. package/dist/core/p-af9f1caa.entry.js.map +0 -1
  1068. package/dist/core/p-b77ab20a.entry.js +0 -2
  1069. package/dist/core/p-b77ab20a.entry.js.map +0 -1
  1070. package/dist/core/p-c0c62df4.entry.js.map +0 -1
  1071. package/dist/core/p-c36cbd8a.entry.js +0 -2
  1072. package/dist/core/p-c36cbd8a.entry.js.map +0 -1
  1073. package/dist/core/p-e2903ce9.entry.js +0 -2
  1074. package/dist/core/p-e2903ce9.entry.js.map +0 -1
  1075. package/dist/core/p-ea6ad791.entry.js +0 -2
  1076. package/dist/core/p-ea6ad791.entry.js.map +0 -1
  1077. package/dist/core/p-eb063498.entry.js.map +0 -1
  1078. package/dist/core/p-ec82fa24.entry.js +0 -2
  1079. package/dist/core/p-ec82fa24.entry.js.map +0 -1
  1080. package/dist/core/p-f00e510b.entry.js +0 -2
  1081. package/dist/core/p-f00e510b.entry.js.map +0 -1
  1082. package/dist/core/p-f69fb26b.entry.js +0 -2
  1083. package/dist/core/p-f69fb26b.entry.js.map +0 -1
  1084. package/dist/core/p-fe6e0c0e.entry.js +0 -2
  1085. package/dist/core/p-fe6e0c0e.entry.js.map +0 -1
  1086. package/dist/esm/helpers-24f6e762.js.map +0 -1
  1087. package/dist/esm/index-813020f1.js.map +0 -1
  1088. package/dist/esm/types-b2398b37.js +0 -16
  1089. /package/dist/core/{p-08b59078.entry.js.map → p-11736fbe.entry.js.map} +0 -0
  1090. /package/dist/core/{p-5fcd202e.entry.js.map → p-15ef0674.entry.js.map} +0 -0
  1091. /package/dist/core/{p-88ea1e49.entry.js.map → p-180e36b1.entry.js.map} +0 -0
  1092. /package/dist/core/{p-613aa265.js.map → p-26b7b18f.js.map} +0 -0
  1093. /package/dist/core/{p-932fb4b7.entry.js.map → p-287ab47c.entry.js.map} +0 -0
  1094. /package/dist/core/{p-69948c3e.entry.js.map → p-2b24b4bf.entry.js.map} +0 -0
  1095. /package/dist/core/{p-475b7bd2.entry.js.map → p-335fc5e4.entry.js.map} +0 -0
  1096. /package/dist/core/{p-c9ef9f5c.entry.js.map → p-366bcb17.entry.js.map} +0 -0
  1097. /package/dist/core/{p-ed256f1d.entry.js.map → p-3a0ef91e.entry.js.map} +0 -0
  1098. /package/dist/core/{p-f019219c.entry.js.map → p-529d8955.entry.js.map} +0 -0
  1099. /package/dist/core/{p-2c30b583.entry.js.map → p-60c4604f.entry.js.map} +0 -0
  1100. /package/dist/core/{p-ccac1730.entry.js.map → p-6d3f9501.entry.js.map} +0 -0
  1101. /package/dist/core/{p-536b3c97.entry.js.map → p-6eb0421d.entry.js.map} +0 -0
  1102. /package/dist/core/{p-48525498.entry.js.map → p-765bdd98.entry.js.map} +0 -0
  1103. /package/dist/core/{p-3a814fc4.entry.js.map → p-7f887c1e.entry.js.map} +0 -0
  1104. /package/dist/core/{p-e3bffcae.entry.js.map → p-94e88827.entry.js.map} +0 -0
  1105. /package/dist/core/{p-8fb4f0c0.js.map → p-95a864bf.js.map} +0 -0
  1106. /package/dist/core/{p-0c82048e.entry.js.map → p-9c30720d.entry.js.map} +0 -0
  1107. /package/dist/core/{p-76563540.entry.js.map → p-ad36a704.entry.js.map} +0 -0
  1108. /package/dist/core/{p-2265e418.entry.js.map → p-b6a575c3.entry.js.map} +0 -0
  1109. /package/dist/core/{p-fbc8a739.entry.js.map → p-b9736cf4.entry.js.map} +0 -0
  1110. /package/dist/core/{p-025f9d2a.entry.js.map → p-b99f9e89.entry.js.map} +0 -0
  1111. /package/dist/core/{p-b0ce60a0.entry.js.map → p-c2452388.entry.js.map} +0 -0
  1112. /package/dist/core/{p-345fe84a.entry.js.map → p-c770e7a2.entry.js.map} +0 -0
  1113. /package/dist/core/{p-a4397df4.entry.js.map → p-cfc930f6.entry.js.map} +0 -0
  1114. /package/dist/core/{p-41c6eaa1.entry.js.map → p-e9738c74.entry.js.map} +0 -0
  1115. /package/dist/core/{p-e2fd542e.entry.js.map → p-edd29edc.entry.js.map} +0 -0
  1116. /package/dist/core/{p-5bb6c79b.entry.js.map → p-f2e6b9ef.entry.js.map} +0 -0
  1117. /package/dist/core/{p-cf4bacee.entry.js.map → p-fdb4b48f.entry.js.map} +0 -0
@@ -7,7 +7,7 @@ import { Button } from "../../../ic-button/ic-button";
7
7
  import { waitForTimeout } from "../../../../testspec.setup";
8
8
  import { InputComponentContainer } from "../../../ic-input-component-container/ic-input-component-container";
9
9
  beforeAll(() => {
10
- jest.spyOn(console, "warn").mockImplementation(jest.fn());
10
+ jest.spyOn(console, "warn").mockImplementation(jest.fn());
11
11
  });
12
12
  const label1 = "Test label 1";
13
13
  const value1 = "Test value 1";
@@ -26,60 +26,60 @@ const loadingLabel = "Loading...";
26
26
  const loadingErrorLabel = "Loading Error";
27
27
  const retryButtonId = "#retry-button";
28
28
  const menuOptions = [
29
- { label: label1, value: value1 },
30
- { label: label2, value: value2 },
31
- { label: label3, value: value3 },
29
+ { label: label1, value: value1 },
30
+ { label: label2, value: value2 },
31
+ { label: label3, value: value3 },
32
32
  ];
33
33
  const menuOptionsWithDescriptions = [
34
- {
35
- label: "Cappuccino",
36
- value: "Cap",
37
- description: "Coffee frothed up with pressurised steam",
38
- },
39
- {
40
- label: "Latte",
41
- value: "Lat",
42
- description: "A milkier coffee than a cappuccino",
43
- },
44
- {
45
- label: "Americano",
46
- value: "Ame",
47
- description: "Espresso coffee diluted with hot water",
48
- },
34
+ {
35
+ label: "Cappuccino",
36
+ value: "Cap",
37
+ description: "Coffee frothed up with pressurised steam",
38
+ },
39
+ {
40
+ label: "Latte",
41
+ value: "Lat",
42
+ description: "A milkier coffee than a cappuccino",
43
+ },
44
+ {
45
+ label: "Americano",
46
+ value: "Ame",
47
+ description: "Espresso coffee diluted with hot water",
48
+ },
49
49
  ];
50
50
  const menuOptionsNoValues = [
51
- { label: label1 },
52
- { label: label2 },
53
- { label: label3 },
51
+ { label: label1 },
52
+ { label: label2 },
53
+ { label: label3 },
54
54
  ];
55
55
  const menuOptionsWithDuplicates = [
56
- { label: label1, value: value1 },
57
- { label: label2, value: value2 },
58
- { label: label3, value: value3 },
59
- { label: label3, value: value3 },
60
- {
61
- label: groupLabel,
62
- children: [
63
- { label: label1, value: value1 },
64
- { label: label4, value: value4 },
65
- ],
66
- },
56
+ { label: label1, value: value1 },
57
+ { label: label2, value: value2 },
58
+ { label: label3, value: value3 },
59
+ { label: label3, value: value3 },
60
+ {
61
+ label: groupLabel,
62
+ children: [
63
+ { label: label1, value: value1 },
64
+ { label: label4, value: value4 },
65
+ ],
66
+ },
67
67
  ];
68
68
  const menuOptionsWithGroups = [
69
- {
70
- label: "Fancy",
71
- children: [
72
- { label: "Cappuccino", value: "Cap" },
73
- { label: "Flat white", value: "Flat" },
74
- ],
75
- },
76
- {
77
- label: "Boring",
78
- children: [
79
- { label: "Filter", value: "Fil" },
80
- { label: "Latte", value: "Lat" },
81
- ],
82
- },
69
+ {
70
+ label: "Fancy",
71
+ children: [
72
+ { label: "Cappuccino", value: "Cap" },
73
+ { label: "Flat white", value: "Flat" },
74
+ ],
75
+ },
76
+ {
77
+ label: "Boring",
78
+ children: [
79
+ { label: "Filter", value: "Fil" },
80
+ { label: "Latte", value: "Lat" },
81
+ ],
82
+ },
83
83
  ];
84
84
  const getTestSelect = (props) => `<ic-select label="IC Select Test" ${props}></ic-select>
85
85
  <script>
@@ -92,1268 +92,1268 @@ const getTestSelect = (props) => `<ic-select label="IC Select Test" ${props}></i
92
92
  });
93
93
  </script>`;
94
94
  describe("ic-select", () => {
95
- it("should not render a label when the 'hide-label' prop is supplied", async () => {
96
- const page = await newSpecPage({
97
- components: [Select, Menu, InputComponentContainer],
98
- html: getTestSelect("hide-label"),
99
- });
100
- expect(page.root).toMatchSnapshot("hide-label-set");
101
- });
102
- it("should test select as submit on form", async () => {
103
- const page = await newSpecPage({
104
- components: [Select, Menu, InputComponentContainer, Button],
105
- html: `<form id="new-form"></form><ic-select id="ic-select" form="new-form" label="IC Select Test" value="test-value"></ic-select>`,
106
- });
107
- expect(page.root).toMatchSnapshot();
108
- });
109
- it("should render readonly", async () => {
110
- const page = await newSpecPage({
111
- components: [Select, Menu, InputComponentContainer],
112
- html: getTestSelect('readonly="true"'),
113
- });
114
- expect(page.root).toMatchSnapshot("readonly");
115
- });
116
- it("should have correct validation status", async () => {
117
- const page = await newSpecPage({
118
- components: [Select, Menu, InputComponentContainer],
119
- html: getTestSelect('validation-status="error"'),
120
- });
121
- expect(page.root).toMatchSnapshot("with-validation-status-error");
122
- });
123
- it("should not have a validation status if disabled", async () => {
124
- const page = await newSpecPage({
125
- components: [Select, Menu, InputComponentContainer],
126
- html: getTestSelect('disabled validation-status="error"'),
127
- });
128
- expect(page.root).toMatchSnapshot("no-validation-status-if-disabled");
129
- });
130
- it("should render correct validation text", async () => {
131
- const page = await newSpecPage({
132
- components: [Select, Menu, InputComponentContainer],
133
- html: getTestSelect('validation-status="error" validation-text="Test validation text"'),
134
- });
135
- expect(page.root).toMatchSnapshot("with-validation-text");
136
- });
137
- it("should not render validation text if no validation status has been supplied", async () => {
138
- const page = await newSpecPage({
139
- components: [Select, Menu, InputComponentContainer],
140
- html: getTestSelect('validation-text="Test validation text"'),
141
- });
142
- expect(page.root).toMatchSnapshot("no-validation-text-if-no-status");
143
- });
144
- it("should test with clear button", async () => {
145
- const eventSpy = jest.fn();
146
- const page = await newSpecPage({
147
- components: [Select, Menu, InputComponentContainer, Button],
148
- html: `<ic-select label="IC Select Test" show-clear-button="true" value="test-value"></ic-select>`,
149
- });
150
- page.root.addEventListener("icClear", eventSpy);
151
- page.root.options = menuOptions;
152
- await page.waitForChanges();
153
- expect(page.root).toMatchSnapshot("with-clear-button");
154
- page.root.setFocus();
155
- await page.waitForChanges();
156
- const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
157
- clearButton.focus();
158
- await page.waitForChanges();
159
- expect(page.rootInstance.clearButtonFocused).toBe(true);
160
- clearButton.blur();
161
- await page.waitForChanges();
162
- expect(page.rootInstance.clearButtonFocused).toBe(false);
163
- clearButton.click();
164
- await page.waitForChanges();
165
- expect(eventSpy).toHaveBeenCalled;
166
- });
167
- it("should test menu handleKeyboardOpen method - arrow down (custom select)", async () => {
168
- const page = await newSpecPage({
169
- components: [Select, Menu, InputComponentContainer],
170
- html: `<ic-select label="IC Select Test"></ic-select>`,
171
- });
172
- page.root.options = menuOptions;
173
- await page.waitForChanges();
174
- const menu = page.root.shadowRoot.querySelector("ic-menu");
175
- const KeyEvent = {
176
- key: "ArrowDown",
177
- preventDefault: () => null,
178
- };
179
- await menu.handleKeyboardOpen(KeyEvent);
180
- await page.waitForChanges();
181
- expect(page.rootInstance.open).toBeTruthy;
182
- expect(page.rootInstance.value).toBe(value1);
183
- await menu.handleKeyboardOpen(KeyEvent);
184
- await page.waitForChanges();
185
- await menu.handleKeyboardOpen(KeyEvent);
186
- await page.waitForChanges();
187
- await menu.handleKeyboardOpen(KeyEvent);
188
- await page.waitForChanges();
189
- expect(page.rootInstance.value).toBe(value1);
190
- });
191
- it("should test menu handleKeyboardOpen method - arrow up (custom select)", async () => {
192
- const page = await newSpecPage({
193
- components: [Select, Menu, InputComponentContainer],
194
- html: `<ic-select label="IC Select Test"></ic-select>`,
195
- });
196
- page.root.options = menuOptions;
197
- await page.waitForChanges();
198
- const menu = page.root.shadowRoot.querySelector("ic-menu");
199
- const KeyEvent = {
200
- key: "ArrowUp",
201
- preventDefault: () => null,
202
- };
203
- await menu.handleKeyboardOpen(KeyEvent);
204
- await page.waitForChanges();
205
- expect(page.rootInstance.open).toBeTruthy;
206
- expect(page.rootInstance.value).toBe(value3);
207
- await menu.handleKeyboardOpen(KeyEvent);
208
- await page.waitForChanges();
209
- await menu.handleKeyboardOpen(KeyEvent);
210
- await page.waitForChanges();
211
- await menu.handleKeyboardOpen(KeyEvent);
212
- await page.waitForChanges();
213
- expect(page.rootInstance.value).toBe(value3);
214
- });
215
- it("should test keydown on menu - space key (custom)", async () => {
216
- const page = await newSpecPage({
217
- components: [Select, Menu, InputComponentContainer],
218
- html: `<ic-select label="IC Select Test"></ic-select>`,
219
- });
220
- page.root.options = menuOptions;
221
- page.rootInstance.open = true;
222
- await page.waitForChanges();
223
- const list = page.root.shadowRoot.querySelector("ic-menu ul");
224
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
225
- key: " ",
226
- bubbles: true,
227
- cancelable: true,
228
- }));
229
- await page.waitForChanges();
230
- expect(page.rootInstance.open).toBe(false);
231
- });
232
- it("should test mousedown handler", async () => {
233
- const page = await newSpecPage({
234
- components: [Select, Menu, InputComponentContainer],
235
- html: `<ic-select label="IC Select Test"></ic-select>`,
236
- });
237
- page.root.options = menuOptions;
238
- const button = page.root.shadowRoot.querySelector("button.select-input");
239
- const event = new Event("mousedown", {
240
- bubbles: true,
241
- cancelable: true,
242
- });
243
- button.dispatchEvent(event);
244
- await page.waitForChanges();
245
- expect(page.rootInstance.open).toBe(false);
246
- });
247
- it("should use option labels if no values", async () => {
248
- const page = await newSpecPage({
249
- components: [Select, Menu, InputComponentContainer],
250
- html: `<ic-select label="IC Select Test"></ic-select>`,
251
- });
252
- page.root.options = menuOptionsNoValues;
253
- await page.waitForChanges();
254
- expect(page.root.options[0].value).toBe(label1);
255
- expect(page.root.options[1].value).toBe(label2);
256
- expect(page.root.options[2].value).toBe(label3);
257
- });
258
- it("should select the option that matches the pressed character key", async () => {
259
- const page = await newSpecPage({
260
- components: [Select, Menu, InputComponentContainer],
261
- html: `<ic-select label="IC Select Test"></ic-select>`,
262
- });
263
- page.root.options = menuOptionsWithDescriptions;
264
- await page.waitForChanges();
265
- const eventSpy = jest.fn();
266
- page.win.addEventListener("icChange", eventSpy);
267
- await page.rootInstance.handleKeyDown({
268
- key: "A",
269
- preventDefault: () => null,
270
- });
271
- await page.waitForChanges();
272
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
273
- detail: expect.objectContaining({
274
- value: "Ame",
275
- }),
276
- }));
277
- await waitForTimeout(1000);
278
- await page.rootInstance.handleKeyDown({
279
- key: "C",
280
- preventDefault: () => null,
281
- });
282
- await page.waitForChanges();
283
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
284
- detail: expect.objectContaining({
285
- value: "Cap",
286
- }),
287
- }));
288
- });
289
- it("should select the option that matches the pressed character key - grouped options", async () => {
290
- const page = await newSpecPage({
291
- components: [Select, Menu, InputComponentContainer],
292
- html: `<ic-select label="IC Select Test"></ic-select>`,
293
- });
294
- page.root.options = menuOptionsWithGroups;
295
- await page.waitForChanges();
296
- const eventSpy = jest.fn();
297
- page.win.addEventListener("icChange", eventSpy);
298
- await page.rootInstance.handleKeyDown({
299
- key: "F",
300
- preventDefault: () => null,
301
- });
302
- await page.waitForChanges();
303
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
304
- detail: expect.objectContaining({
305
- value: "Flat",
306
- }),
307
- }));
308
- });
309
- it("should test getFilteredChildMenuOptions for custom select", async () => {
310
- const page = await newSpecPage({
311
- components: [Select, Menu, InputComponentContainer],
312
- html: `<ic-select label="IC Select Test"></ic-select>`,
313
- });
314
- page.root.options = menuOptionsWithGroups;
315
- await page.waitForChanges();
316
- const result = await page.rootInstance.getFilteredChildMenuOptions(menuOptionsWithGroups[0]);
317
- await page.waitForChanges();
318
- expect(result).toEqual(page.root.options[0]);
319
- });
320
- it("should select the option that matches the character key pressed when menu is open", async () => {
321
- const page = await newSpecPage({
322
- components: [Select, Menu, InputComponentContainer],
323
- html: `<ic-select label="IC Select Test"></ic-select>`,
324
- });
325
- page.root.options = menuOptionsWithDescriptions;
326
- page.rootInstance.open = true;
327
- await page.waitForChanges();
328
- const eventSpy = jest.fn();
329
- page.win.addEventListener("icChange", eventSpy);
330
- const list = page.root.shadowRoot.querySelector(menuUl);
331
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
332
- key: "C",
333
- bubbles: true,
334
- cancelable: true,
335
- }));
336
- await page.waitForChanges();
337
- expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
338
- detail: expect.objectContaining({
339
- value: "Cap",
340
- }),
341
- }));
342
- });
343
- it("should add to pressedCharacters as characters are pressed and then reset it after 1 second", async () => {
344
- const page = await newSpecPage({
345
- components: [Select, Menu, InputComponentContainer],
346
- html: `<ic-select label="IC Select Test"></ic-select>`,
347
- });
348
- page.root.options = menuOptionsWithDescriptions;
349
- await page.waitForChanges();
350
- await page.rootInstance.handleKeyDown({
351
- key: "A",
352
- preventDefault: () => null,
353
- });
354
- await page.waitForChanges();
355
- expect(page.rootInstance.pressedCharacters).toBe("A");
356
- await page.rootInstance.handleKeyDown({
357
- key: "B",
358
- preventDefault: () => null,
359
- });
360
- await page.waitForChanges();
361
- expect(page.rootInstance.pressedCharacters).toBe("AB");
362
- await page.rootInstance.handleKeyDown({
363
- key: "C",
364
- preventDefault: () => null,
365
- });
366
- await page.waitForChanges();
367
- await waitForTimeout(1000);
368
- await page.waitForChanges();
369
- expect(page.rootInstance.pressedCharacters).toBe("");
370
- });
371
- it("should not open the menu when space key is used as a character key", async () => {
372
- const page = await newSpecPage({
373
- components: [Select, Menu, InputComponentContainer],
374
- html: `<ic-select label="IC Select Test"></ic-select>`,
375
- });
376
- page.root.options = menuOptionsWithDescriptions;
377
- await page.waitForChanges();
378
- await page.rootInstance.handleKeyDown({
379
- key: "A",
380
- preventDefault: () => null,
381
- });
382
- await page.rootInstance.handleKeyDown({
383
- key: " ",
384
- preventDefault: () => null,
385
- });
386
- await page.waitForChanges();
387
- expect(page.rootInstance.pressedCharacters).toBe("A ");
388
- expect(page.rootInstance.open).toBe(false);
389
- });
390
- it("should not close the menu when space key is used as a character key", async () => {
391
- const page = await newSpecPage({
392
- components: [Select, Menu, InputComponentContainer],
393
- html: `<ic-select label="IC Select Test"></ic-select>`,
394
- });
395
- page.root.options = menuOptionsWithDescriptions;
396
- page.rootInstance.open = true;
397
- await page.waitForChanges();
398
- const eventSpy = jest.fn();
399
- page.win.addEventListener("icChange", eventSpy);
400
- const list = page.root.shadowRoot.querySelector(menuUl);
401
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
402
- key: "C",
403
- bubbles: true,
404
- cancelable: true,
405
- }));
406
- await page.waitForChanges();
407
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
408
- key: " ",
409
- bubbles: true,
410
- cancelable: true,
411
- }));
412
- await page.waitForChanges();
413
- expect(page.rootInstance.pressedCharacters).toBe("C ");
414
- expect(page.rootInstance.open).toBe(true);
415
- });
416
- it("should test loading state and timeout for custom select", async () => {
417
- const page = await newSpecPage({
418
- components: [Select, Menu, InputComponentContainer],
419
- html: `<ic-select label="IC Select Test" timeout="1000"></ic-select>`,
420
- });
421
- const eventSpy = jest.fn();
422
- page.win.addEventListener("icBlur", eventSpy);
423
- page.rootInstance.loading = true;
424
- page.rootInstance.open = true;
425
- await page.waitForChanges();
426
- expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingLabel);
427
- await waitForTimeout(1000);
428
- expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingErrorLabel);
429
- await page.waitForChanges();
430
- const retryButton = page.root.shadowRoot
431
- .querySelector("ic-menu")
432
- .querySelector(retryButtonId);
433
- retryButton.blur();
434
- expect(page.rootInstance.open).toBeFalsy;
435
- expect(eventSpy).toHaveBeenCalled;
436
- page.root.options = [];
437
- await page.waitForChanges();
438
- expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingErrorLabel);
439
- });
440
- it("should focus the input when escape is pressed whilst the menu is focused", async () => {
441
- const spy = jest.spyOn(HTMLButtonElement.prototype, "focus");
442
- const page = await newSpecPage({
443
- components: [Select, Menu, InputComponentContainer],
444
- html: `<ic-select label="IC Select Test"></ic-select>`,
445
- });
446
- page.root.options = menuOptions;
447
- page.rootInstance.open = true;
448
- await page.waitForChanges();
449
- const list = page.root.shadowRoot.querySelector(menuUl);
450
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
451
- key: "Escape",
452
- bubbles: true,
453
- cancelable: true,
454
- }));
455
- await page.waitForChanges();
456
- expect(page.rootInstance.open).toBeFalsy();
457
- expect(spy).toHaveBeenCalled();
458
- });
459
- it("should deduplicateOptions and log a console warning about the offending items", async () => {
460
- const page = await newSpecPage({
461
- components: [Select, Menu, InputComponentContainer],
462
- html: `<ic-select label="IC Select Test"></ic-select>`,
463
- });
464
- page.rootInstance.options = menuOptionsWithDuplicates;
465
- await page.waitForChanges();
466
- expect(page.rootInstance.uniqueOptions).toEqual([
467
- {
468
- label: label1,
469
- value: value1,
470
- },
471
- {
472
- label: label2,
473
- value: value2,
474
- },
475
- {
476
- label: label3,
477
- value: value3,
478
- },
479
- {
480
- label: groupLabel,
481
- value: groupLabel,
482
- children: [
483
- {
484
- label: label4,
485
- value: value4,
486
- },
487
- ],
488
- },
489
- ]);
490
- });
95
+ it("should not render a label when the 'hide-label' prop is supplied", async () => {
96
+ const page = await newSpecPage({
97
+ components: [Select, Menu, InputComponentContainer],
98
+ html: getTestSelect("hide-label"),
99
+ });
100
+ expect(page.root).toMatchSnapshot("hide-label-set");
101
+ });
102
+ it("should test select as submit on form", async () => {
103
+ const page = await newSpecPage({
104
+ components: [Select, Menu, InputComponentContainer, Button],
105
+ html: `<form id="new-form"></form><ic-select id="ic-select" form="new-form" label="IC Select Test" value="test-value"></ic-select>`,
106
+ });
107
+ expect(page.root).toMatchSnapshot();
108
+ });
109
+ it("should render readonly", async () => {
110
+ const page = await newSpecPage({
111
+ components: [Select, Menu, InputComponentContainer],
112
+ html: getTestSelect('readonly="true"'),
113
+ });
114
+ expect(page.root).toMatchSnapshot("readonly");
115
+ });
116
+ it("should have correct validation status", async () => {
117
+ const page = await newSpecPage({
118
+ components: [Select, Menu, InputComponentContainer],
119
+ html: getTestSelect('validation-status="error"'),
120
+ });
121
+ expect(page.root).toMatchSnapshot("with-validation-status-error");
122
+ });
123
+ it("should not have a validation status if disabled", async () => {
124
+ const page = await newSpecPage({
125
+ components: [Select, Menu, InputComponentContainer],
126
+ html: getTestSelect('disabled validation-status="error"'),
127
+ });
128
+ expect(page.root).toMatchSnapshot("no-validation-status-if-disabled");
129
+ });
130
+ it("should render correct validation text", async () => {
131
+ const page = await newSpecPage({
132
+ components: [Select, Menu, InputComponentContainer],
133
+ html: getTestSelect('validation-status="error" validation-text="Test validation text"'),
134
+ });
135
+ expect(page.root).toMatchSnapshot("with-validation-text");
136
+ });
137
+ it("should not render validation text if no validation status has been supplied", async () => {
138
+ const page = await newSpecPage({
139
+ components: [Select, Menu, InputComponentContainer],
140
+ html: getTestSelect('validation-text="Test validation text"'),
141
+ });
142
+ expect(page.root).toMatchSnapshot("no-validation-text-if-no-status");
143
+ });
144
+ it("should test with clear button", async () => {
145
+ const eventSpy = jest.fn();
146
+ const page = await newSpecPage({
147
+ components: [Select, Menu, InputComponentContainer, Button],
148
+ html: `<ic-select label="IC Select Test" show-clear-button="true" value="test-value"></ic-select>`,
149
+ });
150
+ page.root.addEventListener("icClear", eventSpy);
151
+ page.root.options = menuOptions;
152
+ await page.waitForChanges();
153
+ expect(page.root).toMatchSnapshot("with-clear-button");
154
+ page.root.setFocus();
155
+ await page.waitForChanges();
156
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
157
+ clearButton.focus();
158
+ await page.waitForChanges();
159
+ expect(page.rootInstance.clearButtonFocused).toBe(true);
160
+ clearButton.blur();
161
+ await page.waitForChanges();
162
+ expect(page.rootInstance.clearButtonFocused).toBe(false);
163
+ clearButton.click();
164
+ await page.waitForChanges();
165
+ expect(eventSpy).toHaveBeenCalled;
166
+ });
167
+ it("should test menu handleKeyboardOpen method - arrow down (custom select)", async () => {
168
+ const page = await newSpecPage({
169
+ components: [Select, Menu, InputComponentContainer],
170
+ html: `<ic-select label="IC Select Test"></ic-select>`,
171
+ });
172
+ page.root.options = menuOptions;
173
+ await page.waitForChanges();
174
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
175
+ const KeyEvent = {
176
+ key: "ArrowDown",
177
+ preventDefault: () => null,
178
+ };
179
+ await menu.handleKeyboardOpen(KeyEvent);
180
+ await page.waitForChanges();
181
+ expect(page.rootInstance.open).toBeTruthy;
182
+ expect(page.rootInstance.value).toBe(value1);
183
+ await menu.handleKeyboardOpen(KeyEvent);
184
+ await page.waitForChanges();
185
+ await menu.handleKeyboardOpen(KeyEvent);
186
+ await page.waitForChanges();
187
+ await menu.handleKeyboardOpen(KeyEvent);
188
+ await page.waitForChanges();
189
+ expect(page.rootInstance.value).toBe(value1);
190
+ });
191
+ it("should test menu handleKeyboardOpen method - arrow up (custom select)", async () => {
192
+ const page = await newSpecPage({
193
+ components: [Select, Menu, InputComponentContainer],
194
+ html: `<ic-select label="IC Select Test"></ic-select>`,
195
+ });
196
+ page.root.options = menuOptions;
197
+ await page.waitForChanges();
198
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
199
+ const KeyEvent = {
200
+ key: "ArrowUp",
201
+ preventDefault: () => null,
202
+ };
203
+ await menu.handleKeyboardOpen(KeyEvent);
204
+ await page.waitForChanges();
205
+ expect(page.rootInstance.open).toBeTruthy;
206
+ expect(page.rootInstance.value).toBe(value3);
207
+ await menu.handleKeyboardOpen(KeyEvent);
208
+ await page.waitForChanges();
209
+ await menu.handleKeyboardOpen(KeyEvent);
210
+ await page.waitForChanges();
211
+ await menu.handleKeyboardOpen(KeyEvent);
212
+ await page.waitForChanges();
213
+ expect(page.rootInstance.value).toBe(value3);
214
+ });
215
+ it("should test keydown on menu - space key (custom)", async () => {
216
+ const page = await newSpecPage({
217
+ components: [Select, Menu, InputComponentContainer],
218
+ html: `<ic-select label="IC Select Test"></ic-select>`,
219
+ });
220
+ page.root.options = menuOptions;
221
+ page.rootInstance.open = true;
222
+ await page.waitForChanges();
223
+ const list = page.root.shadowRoot.querySelector("ic-menu ul");
224
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
225
+ key: " ",
226
+ bubbles: true,
227
+ cancelable: true,
228
+ }));
229
+ await page.waitForChanges();
230
+ expect(page.rootInstance.open).toBe(false);
231
+ });
232
+ it("should test mousedown handler", async () => {
233
+ const page = await newSpecPage({
234
+ components: [Select, Menu, InputComponentContainer],
235
+ html: `<ic-select label="IC Select Test"></ic-select>`,
236
+ });
237
+ page.root.options = menuOptions;
238
+ const button = page.root.shadowRoot.querySelector("button.select-input");
239
+ const event = new Event("mousedown", {
240
+ bubbles: true,
241
+ cancelable: true,
242
+ });
243
+ button.dispatchEvent(event);
244
+ await page.waitForChanges();
245
+ expect(page.rootInstance.open).toBe(false);
246
+ });
247
+ it("should use option labels if no values", async () => {
248
+ const page = await newSpecPage({
249
+ components: [Select, Menu, InputComponentContainer],
250
+ html: `<ic-select label="IC Select Test"></ic-select>`,
251
+ });
252
+ page.root.options = menuOptionsNoValues;
253
+ await page.waitForChanges();
254
+ expect(page.root.options[0].value).toBe(label1);
255
+ expect(page.root.options[1].value).toBe(label2);
256
+ expect(page.root.options[2].value).toBe(label3);
257
+ });
258
+ it("should select the option that matches the pressed character key", async () => {
259
+ const page = await newSpecPage({
260
+ components: [Select, Menu, InputComponentContainer],
261
+ html: `<ic-select label="IC Select Test"></ic-select>`,
262
+ });
263
+ page.root.options = menuOptionsWithDescriptions;
264
+ await page.waitForChanges();
265
+ const eventSpy = jest.fn();
266
+ page.win.addEventListener("icChange", eventSpy);
267
+ await page.rootInstance.handleKeyDown({
268
+ key: "A",
269
+ preventDefault: () => null,
270
+ });
271
+ await page.waitForChanges();
272
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
273
+ detail: expect.objectContaining({
274
+ value: "Ame",
275
+ }),
276
+ }));
277
+ await waitForTimeout(1000);
278
+ await page.rootInstance.handleKeyDown({
279
+ key: "C",
280
+ preventDefault: () => null,
281
+ });
282
+ await page.waitForChanges();
283
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
284
+ detail: expect.objectContaining({
285
+ value: "Cap",
286
+ }),
287
+ }));
288
+ });
289
+ it("should select the option that matches the pressed character key - grouped options", async () => {
290
+ const page = await newSpecPage({
291
+ components: [Select, Menu, InputComponentContainer],
292
+ html: `<ic-select label="IC Select Test"></ic-select>`,
293
+ });
294
+ page.root.options = menuOptionsWithGroups;
295
+ await page.waitForChanges();
296
+ const eventSpy = jest.fn();
297
+ page.win.addEventListener("icChange", eventSpy);
298
+ await page.rootInstance.handleKeyDown({
299
+ key: "F",
300
+ preventDefault: () => null,
301
+ });
302
+ await page.waitForChanges();
303
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
304
+ detail: expect.objectContaining({
305
+ value: "Flat",
306
+ }),
307
+ }));
308
+ });
309
+ it("should test getFilteredChildMenuOptions for custom select", async () => {
310
+ const page = await newSpecPage({
311
+ components: [Select, Menu, InputComponentContainer],
312
+ html: `<ic-select label="IC Select Test"></ic-select>`,
313
+ });
314
+ page.root.options = menuOptionsWithGroups;
315
+ await page.waitForChanges();
316
+ const result = await page.rootInstance.getFilteredChildMenuOptions(menuOptionsWithGroups[0]);
317
+ await page.waitForChanges();
318
+ expect(result).toEqual(page.root.options[0]);
319
+ });
320
+ it("should select the option that matches the character key pressed when menu is open", async () => {
321
+ const page = await newSpecPage({
322
+ components: [Select, Menu, InputComponentContainer],
323
+ html: `<ic-select label="IC Select Test"></ic-select>`,
324
+ });
325
+ page.root.options = menuOptionsWithDescriptions;
326
+ page.rootInstance.open = true;
327
+ await page.waitForChanges();
328
+ const eventSpy = jest.fn();
329
+ page.win.addEventListener("icChange", eventSpy);
330
+ const list = page.root.shadowRoot.querySelector(menuUl);
331
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
332
+ key: "C",
333
+ bubbles: true,
334
+ cancelable: true,
335
+ }));
336
+ await page.waitForChanges();
337
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
338
+ detail: expect.objectContaining({
339
+ value: "Cap",
340
+ }),
341
+ }));
342
+ });
343
+ it("should add to pressedCharacters as characters are pressed and then reset it after 1 second", async () => {
344
+ const page = await newSpecPage({
345
+ components: [Select, Menu, InputComponentContainer],
346
+ html: `<ic-select label="IC Select Test"></ic-select>`,
347
+ });
348
+ page.root.options = menuOptionsWithDescriptions;
349
+ await page.waitForChanges();
350
+ await page.rootInstance.handleKeyDown({
351
+ key: "A",
352
+ preventDefault: () => null,
353
+ });
354
+ await page.waitForChanges();
355
+ expect(page.rootInstance.pressedCharacters).toBe("A");
356
+ await page.rootInstance.handleKeyDown({
357
+ key: "B",
358
+ preventDefault: () => null,
359
+ });
360
+ await page.waitForChanges();
361
+ expect(page.rootInstance.pressedCharacters).toBe("AB");
362
+ await page.rootInstance.handleKeyDown({
363
+ key: "C",
364
+ preventDefault: () => null,
365
+ });
366
+ await page.waitForChanges();
367
+ await waitForTimeout(1000);
368
+ await page.waitForChanges();
369
+ expect(page.rootInstance.pressedCharacters).toBe("");
370
+ });
371
+ it("should not open the menu when space key is used as a character key", async () => {
372
+ const page = await newSpecPage({
373
+ components: [Select, Menu, InputComponentContainer],
374
+ html: `<ic-select label="IC Select Test"></ic-select>`,
375
+ });
376
+ page.root.options = menuOptionsWithDescriptions;
377
+ await page.waitForChanges();
378
+ await page.rootInstance.handleKeyDown({
379
+ key: "A",
380
+ preventDefault: () => null,
381
+ });
382
+ await page.rootInstance.handleKeyDown({
383
+ key: " ",
384
+ preventDefault: () => null,
385
+ });
386
+ await page.waitForChanges();
387
+ expect(page.rootInstance.pressedCharacters).toBe("A ");
388
+ expect(page.rootInstance.open).toBe(false);
389
+ });
390
+ it("should not close the menu when space key is used as a character key", async () => {
391
+ const page = await newSpecPage({
392
+ components: [Select, Menu, InputComponentContainer],
393
+ html: `<ic-select label="IC Select Test"></ic-select>`,
394
+ });
395
+ page.root.options = menuOptionsWithDescriptions;
396
+ page.rootInstance.open = true;
397
+ await page.waitForChanges();
398
+ const eventSpy = jest.fn();
399
+ page.win.addEventListener("icChange", eventSpy);
400
+ const list = page.root.shadowRoot.querySelector(menuUl);
401
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
402
+ key: "C",
403
+ bubbles: true,
404
+ cancelable: true,
405
+ }));
406
+ await page.waitForChanges();
407
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
408
+ key: " ",
409
+ bubbles: true,
410
+ cancelable: true,
411
+ }));
412
+ await page.waitForChanges();
413
+ expect(page.rootInstance.pressedCharacters).toBe("C ");
414
+ expect(page.rootInstance.open).toBe(true);
415
+ });
416
+ it("should test loading state and timeout for custom select", async () => {
417
+ const page = await newSpecPage({
418
+ components: [Select, Menu, InputComponentContainer],
419
+ html: `<ic-select label="IC Select Test" timeout="1000"></ic-select>`,
420
+ });
421
+ const eventSpy = jest.fn();
422
+ page.win.addEventListener("icBlur", eventSpy);
423
+ page.rootInstance.loading = true;
424
+ page.rootInstance.open = true;
425
+ await page.waitForChanges();
426
+ expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingLabel);
427
+ await waitForTimeout(1000);
428
+ expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingErrorLabel);
429
+ await page.waitForChanges();
430
+ const retryButton = page.root.shadowRoot
431
+ .querySelector("ic-menu")
432
+ .querySelector(retryButtonId);
433
+ retryButton.blur();
434
+ expect(page.rootInstance.open).toBeFalsy;
435
+ expect(eventSpy).toHaveBeenCalled;
436
+ page.root.options = [];
437
+ await page.waitForChanges();
438
+ expect(page.rootInstance.uniqueOptions[0].label).toEqual(loadingErrorLabel);
439
+ });
440
+ it("should focus the input when escape is pressed whilst the menu is focused", async () => {
441
+ const spy = jest.spyOn(HTMLButtonElement.prototype, "focus");
442
+ const page = await newSpecPage({
443
+ components: [Select, Menu, InputComponentContainer],
444
+ html: `<ic-select label="IC Select Test"></ic-select>`,
445
+ });
446
+ page.root.options = menuOptions;
447
+ page.rootInstance.open = true;
448
+ await page.waitForChanges();
449
+ const list = page.root.shadowRoot.querySelector(menuUl);
450
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
451
+ key: "Escape",
452
+ bubbles: true,
453
+ cancelable: true,
454
+ }));
455
+ await page.waitForChanges();
456
+ expect(page.rootInstance.open).toBeFalsy();
457
+ expect(spy).toHaveBeenCalled();
458
+ });
459
+ it("should deduplicateOptions and log a console warning about the offending items", async () => {
460
+ const page = await newSpecPage({
461
+ components: [Select, Menu, InputComponentContainer],
462
+ html: `<ic-select label="IC Select Test"></ic-select>`,
463
+ });
464
+ page.rootInstance.options = menuOptionsWithDuplicates;
465
+ await page.waitForChanges();
466
+ expect(page.rootInstance.uniqueOptions).toEqual([
467
+ {
468
+ label: label1,
469
+ value: value1,
470
+ },
471
+ {
472
+ label: label2,
473
+ value: value2,
474
+ },
475
+ {
476
+ label: label3,
477
+ value: value3,
478
+ },
479
+ {
480
+ label: groupLabel,
481
+ value: groupLabel,
482
+ children: [
483
+ {
484
+ label: label4,
485
+ value: value4,
486
+ },
487
+ ],
488
+ },
489
+ ]);
490
+ });
491
491
  });
492
492
  describe("ic-select native", () => {
493
- beforeEach(() => {
494
- Object.defineProperty(helpers, "isMobileOrTablet", {
495
- value: jest.fn().mockReturnValue(true),
496
- });
497
- });
498
- afterEach(() => {
499
- Object.defineProperty(helpers, "isMobileOrTablet", {
500
- value: jest.fn().mockReturnValue(false),
501
- });
502
- });
503
- it("should test native select", async () => {
504
- const page = await newSpecPage({
505
- components: [Select],
506
- html: `<ic-select label="IC Select Test"></ic-select>`,
507
- });
508
- page.root.options = menuOptions;
509
- page.root.label = "New label";
510
- await page.waitForChanges();
511
- page.root.setFocus();
512
- await page.waitForChanges();
513
- expect(page.root).toMatchSnapshot("native-select");
514
- });
515
- it("should test native select with groups", async () => {
516
- const page = await newSpecPage({
517
- components: [Select],
518
- html: `<ic-select label="IC Select Test"></ic-select>`,
519
- });
520
- page.root.options = menuOptionsWithGroups;
521
- page.root.label = "New label";
522
- await page.waitForChanges();
523
- page.root.setFocus();
524
- await page.waitForChanges();
525
- expect(page.root).toMatchSnapshot("native-select-with-groups");
526
- let eventSpy = jest.fn();
527
- page.win.addEventListener("icBlur", eventSpy);
528
- const select = page.root.shadowRoot.querySelector("select");
529
- select.blur();
530
- await page.waitForChanges();
531
- expect(eventSpy).toHaveBeenCalled();
532
- eventSpy = jest.fn();
533
- page.win.addEventListener("icChange", eventSpy);
534
- const event = new Event("change", {
535
- bubbles: true,
536
- cancelable: true,
537
- });
538
- page.rootInstance.nativeSelectElement.selectedIndex = 0;
539
- select.dispatchEvent(event);
540
- await page.waitForChanges();
541
- //delay to wait for aria live update
542
- await waitForTimeout(900);
543
- expect(eventSpy).toHaveBeenCalled();
544
- });
545
- it("should test native select keydown", async () => {
546
- const page = await newSpecPage({
547
- components: [Select],
548
- html: `<ic-select label="IC Select Test"></ic-select>`,
549
- });
550
- page.root.options = menuOptions;
551
- page.root.setFocus();
552
- await page.waitForChanges();
553
- await page.rootInstance.handleNativeSelectKeyDown({
554
- key: "ArrowDown",
555
- preventDefault: () => null,
556
- });
557
- await page.waitForChanges();
558
- expect(page.rootInstance.open).toBeFalsy;
559
- });
493
+ beforeEach(() => {
494
+ Object.defineProperty(helpers, "isMobileOrTablet", {
495
+ value: jest.fn().mockReturnValue(true),
496
+ });
497
+ });
498
+ afterEach(() => {
499
+ Object.defineProperty(helpers, "isMobileOrTablet", {
500
+ value: jest.fn().mockReturnValue(false),
501
+ });
502
+ });
503
+ it("should test native select", async () => {
504
+ const page = await newSpecPage({
505
+ components: [Select],
506
+ html: `<ic-select label="IC Select Test"></ic-select>`,
507
+ });
508
+ page.root.options = menuOptions;
509
+ page.root.label = "New label";
510
+ await page.waitForChanges();
511
+ page.root.setFocus();
512
+ await page.waitForChanges();
513
+ expect(page.root).toMatchSnapshot("native-select");
514
+ });
515
+ it("should test native select with groups", async () => {
516
+ const page = await newSpecPage({
517
+ components: [Select],
518
+ html: `<ic-select label="IC Select Test"></ic-select>`,
519
+ });
520
+ page.root.options = menuOptionsWithGroups;
521
+ page.root.label = "New label";
522
+ await page.waitForChanges();
523
+ page.root.setFocus();
524
+ await page.waitForChanges();
525
+ expect(page.root).toMatchSnapshot("native-select-with-groups");
526
+ let eventSpy = jest.fn();
527
+ page.win.addEventListener("icBlur", eventSpy);
528
+ const select = page.root.shadowRoot.querySelector("select");
529
+ select.blur();
530
+ await page.waitForChanges();
531
+ expect(eventSpy).toHaveBeenCalled();
532
+ eventSpy = jest.fn();
533
+ page.win.addEventListener("icChange", eventSpy);
534
+ const event = new Event("change", {
535
+ bubbles: true,
536
+ cancelable: true,
537
+ });
538
+ page.rootInstance.nativeSelectElement.selectedIndex = 0;
539
+ select.dispatchEvent(event);
540
+ await page.waitForChanges();
541
+ //delay to wait for aria live update
542
+ await waitForTimeout(900);
543
+ expect(eventSpy).toHaveBeenCalled();
544
+ });
545
+ it("should test native select keydown", async () => {
546
+ const page = await newSpecPage({
547
+ components: [Select],
548
+ html: `<ic-select label="IC Select Test"></ic-select>`,
549
+ });
550
+ page.root.options = menuOptions;
551
+ page.root.setFocus();
552
+ await page.waitForChanges();
553
+ await page.rootInstance.handleNativeSelectKeyDown({
554
+ key: "ArrowDown",
555
+ preventDefault: () => null,
556
+ });
557
+ await page.waitForChanges();
558
+ expect(page.rootInstance.open).toBeFalsy;
559
+ });
560
560
  });
561
561
  describe("ic-select searchable", () => {
562
- it("should render as required", async () => {
563
- const page = await newSpecPage({
564
- components: [Select, Menu, InputComponentContainer],
565
- html: getTestSelect('required="true" searchable="true"'),
566
- });
567
- expect(page.root).toMatchSnapshot("required-searchable");
568
- });
569
- it("should test with clear button with searchable", async () => {
570
- const page = await newSpecPage({
571
- components: [Select, Menu, InputComponentContainer, Button],
572
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
573
- });
574
- page.root.options = menuOptions;
575
- page.rootInstance.searchableSelectInputValue = "test value";
576
- await page.waitForChanges();
577
- const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
578
- clearButton.focus();
579
- await page.waitForChanges();
580
- expect(page.rootInstance.clearButtonFocused).toBe(true);
581
- clearButton.blur();
582
- await page.waitForChanges();
583
- expect(page.rootInstance.clearButtonFocused).toBe(false);
584
- clearButton.click();
585
- await page.waitForChanges();
586
- expect(page.rootInstance.searchableSelectInputValue).toBeNull;
587
- });
588
- it("should test keydown handler searchable", async () => {
589
- const page = await newSpecPage({
590
- components: [Select, Menu, InputComponentContainer],
591
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
592
- });
593
- jest.spyOn(page.rootInstance, "setFocus").mockImplementation();
594
- page.root.options = menuOptions;
595
- await page.waitForChanges();
596
- await page.root.setFocus();
597
- await page.waitForChanges();
598
- await page.rootInstance.handleKeyDown({
599
- key: "ArrowDown",
600
- preventDefault: () => null,
601
- });
602
- await page.waitForChanges();
603
- const menu = page.root.shadowRoot.querySelector("ic-menu");
604
- expect(menu.options).toEqual(menuOptions);
605
- expect(page.rootInstance.open).toBeTruthy;
606
- await page.waitForChanges();
607
- await page.rootInstance.handleKeyDown({
608
- key: "Enter",
609
- preventDefault: () => null,
610
- });
611
- await page.waitForChanges();
612
- expect(page.rootInstance.open).toBeFalsy;
613
- page.rootInstance.open = true;
614
- page.rootInstance.noOptions = true;
615
- await page.waitForChanges();
616
- await page.rootInstance.handleKeyDown({
617
- key: "Ctrl",
618
- preventDefault: () => null,
619
- });
620
- await page.waitForChanges();
621
- expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(2);
622
- page.rootInstance.open = true;
623
- page.rootInstance.noOptions = true;
624
- await page.waitForChanges();
625
- await page.rootInstance.handleKeyDown({
626
- key: "Backspace",
627
- preventDefault: () => null,
628
- });
629
- await page.waitForChanges();
630
- expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(3);
631
- });
632
- it("should test keydown on menu - arrow up (searchable)", async () => {
633
- const page = await newSpecPage({
634
- components: [Select, Menu, InputComponentContainer],
635
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
636
- });
637
- page.root.options = menuOptions;
638
- page.root.value = value2;
639
- await page.waitForChanges();
640
- const list = page.root.shadowRoot.querySelector(menuUl);
641
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
642
- key: "ArrowUp",
643
- bubbles: true,
644
- cancelable: true,
645
- }));
646
- await page.waitForChanges();
647
- const input = page.root.shadowRoot.querySelector("input");
648
- expect(input.value).toBe(label2);
649
- expect(page.rootInstance.open).toBeTruthy;
650
- });
651
- it("should test keydown on menu - arrow up wrap around (searchable)", async () => {
652
- const page = await newSpecPage({
653
- components: [Select, Menu, InputComponentContainer],
654
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
655
- });
656
- page.root.options = menuOptions;
657
- page.rootInstance.open = true;
658
- await page.waitForChanges();
659
- page.root.value = value1;
660
- await page.waitForChanges();
661
- const list = page.root.shadowRoot.querySelector(menuUl);
662
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
663
- key: "ArrowUp",
664
- bubbles: true,
665
- cancelable: true,
666
- }));
667
- await page.waitForChanges();
668
- const input = page.root.shadowRoot.querySelector("input");
669
- expect(input.value).toBe(label1);
670
- });
671
- it("should test keydown on menu - arrow down", async () => {
672
- const page = await newSpecPage({
673
- components: [Select, Menu, InputComponentContainer],
674
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
675
- });
676
- page.root.options = menuOptions;
677
- page.rootInstance.open = true;
678
- await page.waitForChanges();
679
- page.root.value = value1;
680
- await page.waitForChanges();
681
- const list = page.root.shadowRoot.querySelector(menuUl);
682
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
683
- key: "ArrowDown",
684
- bubbles: true,
685
- cancelable: true,
686
- }));
687
- await page.waitForChanges();
688
- const input = page.root.shadowRoot.querySelector("input");
689
- expect(input.value).toBe(label1);
690
- });
691
- it("should test keydown on menu - arrow down wrap around", async () => {
692
- const page = await newSpecPage({
693
- components: [Select, Menu, InputComponentContainer],
694
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
695
- });
696
- page.root.options = menuOptions;
697
- page.rootInstance.open = true;
698
- await page.waitForChanges();
699
- page.root.value = value3;
700
- await page.waitForChanges();
701
- const list = page.root.shadowRoot.querySelector(menuUl);
702
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
703
- key: "ArrowDown",
704
- bubbles: true,
705
- cancelable: true,
706
- }));
707
- await page.waitForChanges();
708
- const input = page.root.shadowRoot.querySelector("input");
709
- expect(input.value).toBe(label3);
710
- });
711
- it("should test keydown on menu - home key", async () => {
712
- const page = await newSpecPage({
713
- components: [Select, Menu, InputComponentContainer],
714
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
715
- });
716
- page.root.options = menuOptions;
717
- page.rootInstance.open = true;
718
- await page.waitForChanges();
719
- page.root.value = value3;
720
- await page.waitForChanges();
721
- const list = page.root.shadowRoot.querySelector(menuUl);
722
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
723
- key: "Home",
724
- bubbles: true,
725
- cancelable: true,
726
- }));
727
- expect(page.rootInstance.open).toBeTruthy;
728
- });
729
- it("should test keydown on menu - end key", async () => {
730
- const page = await newSpecPage({
731
- components: [Select, Menu, InputComponentContainer],
732
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
733
- });
734
- page.root.options = menuOptions;
735
- page.root.value = value1;
736
- await page.waitForChanges();
737
- const list = page.root.shadowRoot.querySelector(menuUl);
738
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
739
- key: "End",
740
- bubbles: true,
741
- cancelable: true,
742
- }));
743
- await page.waitForChanges();
744
- const input = page.root.shadowRoot.querySelector("input");
745
- expect(input.value).toBe(label1);
746
- expect(page.rootInstance.open).toBeTruthy;
747
- });
748
- it("should test keydown on menu - backspace key", async () => {
749
- const page = await newSpecPage({
750
- components: [Select, Menu, InputComponentContainer],
751
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
752
- });
753
- page.root.options = menuOptions;
754
- page.rootInstance.open = true;
755
- await page.waitForChanges();
756
- page.root.value = value3;
757
- await page.waitForChanges();
758
- const list = page.root.shadowRoot.querySelector(menuUl);
759
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
760
- key: "Backspace",
761
- bubbles: true,
762
- cancelable: true,
763
- }));
764
- await page.waitForChanges();
765
- const input = page.root.shadowRoot.querySelector("input");
766
- expect(input.value).toBe(label3);
767
- });
768
- it("should test keydown on menu - enter key", async () => {
769
- const page = await newSpecPage({
770
- components: [Select, Menu, InputComponentContainer],
771
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
772
- });
773
- page.root.options = menuOptions;
774
- page.rootInstance.open = true;
775
- await page.waitForChanges();
776
- page.root.value = value3;
777
- await page.waitForChanges();
778
- const list = page.root.shadowRoot.querySelector(menuUl);
779
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
780
- key: "ArrowDown",
781
- bubbles: true,
782
- cancelable: true,
783
- }));
784
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
785
- key: "Enter",
786
- bubbles: true,
787
- cancelable: true,
788
- }));
789
- await page.waitForChanges();
790
- const input = page.root.shadowRoot.querySelector("input");
791
- expect(input.value).toBe(label1);
792
- input.click();
793
- await page.waitForChanges();
794
- expect(page.rootInstance.filteredOptions).toHaveLength(3);
795
- });
796
- it("should test keydown on menu - space key", async () => {
797
- const page = await newSpecPage({
798
- components: [Select, Menu, InputComponentContainer],
799
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
800
- });
801
- page.root.options = menuOptions;
802
- page.rootInstance.open = true;
803
- await page.waitForChanges();
804
- const list = page.root.shadowRoot.querySelector(menuUl);
805
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
806
- key: " ",
807
- bubbles: true,
808
- cancelable: true,
809
- }));
810
- await page.waitForChanges();
811
- expect(page.rootInstance.open).toBe(true);
812
- });
813
- it("should test keydown on menu - other key", async () => {
814
- const page = await newSpecPage({
815
- components: [Select, Menu, InputComponentContainer],
816
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
817
- });
818
- page.root.options = menuOptions;
819
- page.rootInstance.open = true;
820
- await page.waitForChanges();
821
- page.root.value = value2;
822
- await page.waitForChanges();
823
- const list = page.root.shadowRoot.querySelector(menuUl);
824
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
825
- key: "Ctrl",
826
- bubbles: true,
827
- cancelable: true,
828
- }));
829
- await page.waitForChanges();
830
- const input = page.root.shadowRoot.querySelector("input");
831
- expect(input.value).toBe(label2);
832
- });
833
- it("should test keyup on menu list", async () => {
834
- const page = await newSpecPage({
835
- components: [Select, Menu, InputComponentContainer],
836
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
837
- });
838
- page.root.options = menuOptions;
839
- page.rootInstance.open = true;
840
- await page.waitForChanges();
841
- page.root.value = value2;
842
- await page.waitForChanges();
843
- const list = page.root.shadowRoot.querySelector(menuUl);
844
- list.dispatchEvent(new window.window.KeyboardEvent("keyup", {
845
- key: "Tab",
846
- shiftKey: true,
847
- bubbles: true,
848
- cancelable: true,
849
- }));
850
- await page.waitForChanges();
851
- const input = page.root.shadowRoot.querySelector("input");
852
- expect(input.value).toBe(label2);
853
- });
854
- it("should test click on input", async () => {
855
- const page = await newSpecPage({
856
- components: [Select, Menu, InputComponentContainer],
857
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
858
- });
859
- page.root.options = menuOptions;
860
- await page.waitForChanges();
861
- const input = page.root.shadowRoot.querySelector("input");
862
- input.click();
863
- await page.waitForChanges();
864
- expect(page.rootInstance.open).toBe(true);
865
- });
866
- it("should test click on input with external filtering", async () => {
867
- const page = await newSpecPage({
868
- components: [Select, Menu, InputComponentContainer],
869
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true"></ic-select>`,
870
- });
871
- page.root.options = menuOptions;
872
- await page.waitForChanges();
873
- const input = page.root.shadowRoot.querySelector("input");
874
- input.click();
875
- await page.waitForChanges();
876
- expect(page.rootInstance.open).toBe(true);
877
- });
878
- it("should test blur on searchable input", async () => {
879
- const page = await newSpecPage({
880
- components: [Select, Menu, InputComponentContainer],
881
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
882
- });
883
- page.root.options = menuOptions;
884
- await page.waitForChanges();
885
- const eventSpy = jest.fn();
886
- page.win.addEventListener("icBlur", eventSpy);
887
- const input = page.root.shadowRoot.querySelector("input");
888
- input.blur();
889
- await page.waitForChanges();
890
- expect(eventSpy).toHaveBeenCalled();
891
- });
892
- it("should test blur on searchable input where target is an element of the menu but not a menu option", async () => {
893
- const page = await newSpecPage({
894
- components: [Select, Menu, InputComponentContainer],
895
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
896
- });
897
- page.root.options = menuOptions;
898
- await page.waitForChanges();
899
- const target = page.root.shadowRoot.querySelector("ul.menu");
900
- const event = new FocusEvent("blur", {
901
- bubbles: true,
902
- cancelable: true,
903
- relatedTarget: target,
904
- });
905
- const eventSpy = jest.fn();
906
- page.win.addEventListener("icBlur", eventSpy);
907
- await page.rootInstance.onBlur(event);
908
- await page.waitForChanges();
909
- expect(eventSpy).not.toHaveBeenCalled();
910
- });
911
- it("should test searchable input", async () => {
912
- const page = await newSpecPage({
913
- components: [Select, Menu, InputComponentContainer],
914
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
915
- });
916
- page.root.options = menuOptions;
917
- await page.waitForChanges();
918
- const event = new Event("input", {
919
- bubbles: true,
920
- cancelable: true,
921
- });
922
- const input = page.root.shadowRoot.querySelector("input");
923
- page.rootInstance.searchableSelectInputValue = testValue;
924
- input.dispatchEvent(event);
925
- await page.waitForChanges();
926
- //delay to wait for aria live update
927
- await waitForTimeout(900);
928
- expect(page.rootInstance.open).toBe(true);
929
- page.rootInstance.searchableSelectInputValue = "";
930
- await page.waitForChanges();
931
- input.dispatchEvent(event);
932
- await page.waitForChanges();
933
- //delay to wait for aria live update
934
- await waitForTimeout(900);
935
- expect(page.rootInstance.open).toBe(true);
936
- page.root.options = [];
937
- await page.waitForChanges();
938
- page.rootInstance.searchableSelectInputValue = "";
939
- input.dispatchEvent(event);
940
- await page.waitForChanges();
941
- //delay to wait for aria live update
942
- await waitForTimeout(900);
943
- expect(page.rootInstance.open).toBe(true);
944
- });
945
- it("should test searchable input filtering", async () => {
946
- const page = await newSpecPage({
947
- components: [Select, Menu, InputComponentContainer],
948
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
949
- });
950
- page.root.options = menuOptionsWithDescriptions;
951
- page.rootInstance.searchableSelectInputValue = "c";
952
- await page.waitForChanges();
953
- const input = page.root.shadowRoot.querySelector("input");
954
- const event = new Event("input", {
955
- bubbles: true,
956
- cancelable: true,
957
- });
958
- input.dispatchEvent(event);
959
- await page.waitForChanges();
960
- //delay to wait for aria live update
961
- await waitForTimeout(900);
962
- expect(page.rootInstance.filteredOptions.length).toBe(2);
963
- });
964
- it("should test searchable input - with search match position set to start", async () => {
965
- const page = await newSpecPage({
966
- components: [Select, Menu, InputComponentContainer],
967
- html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start"></ic-select>`,
968
- });
969
- page.root.options = menuOptionsWithDescriptions;
970
- page.rootInstance.searchableSelectInputValue = "c";
971
- await page.waitForChanges();
972
- const input = page.root.shadowRoot.querySelector("input");
973
- const event = new Event("input", {
974
- bubbles: true,
975
- cancelable: true,
976
- });
977
- input.dispatchEvent(event);
978
- await page.waitForChanges();
979
- //delay to wait for aria live update
980
- await waitForTimeout(900);
981
- expect(page.rootInstance.filteredOptions.length).toBe(1);
982
- });
983
- it("should test searchable input - with descriptions and descriptions included in search", async () => {
984
- const page = await newSpecPage({
985
- components: [Select, Menu, InputComponentContainer],
986
- html: `<ic-select label="IC Select Test" searchable="true" include-descriptions-in-search="true"></ic-select>`,
987
- });
988
- page.root.options = menuOptionsWithDescriptions;
989
- page.rootInstance.searchableSelectInputValue = "Test description 2";
990
- await page.waitForChanges();
991
- const input = page.root.shadowRoot.querySelector("input");
992
- const event = new Event("input", {
993
- bubbles: true,
994
- cancelable: true,
995
- });
996
- input.dispatchEvent(event);
997
- await page.waitForChanges();
998
- //delay to wait for aria live update
999
- await waitForTimeout(900);
1000
- expect(page.rootInstance.filteredOptions).not.toBeNull;
1001
- });
1002
- it("should test searchable input - with search match position set to start and descriptions included in search", async () => {
1003
- const page = await newSpecPage({
1004
- components: [Select, Menu, InputComponentContainer],
1005
- html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start" include-descriptions-in-search="true"></ic-select>`,
1006
- });
1007
- page.root.options = menuOptionsWithDescriptions;
1008
- page.rootInstance.searchableSelectInputValue = "e";
1009
- await page.waitForChanges();
1010
- const input = page.root.shadowRoot.querySelector("input");
1011
- const event = new Event("input", {
1012
- bubbles: true,
1013
- cancelable: true,
1014
- });
1015
- input.dispatchEvent(event);
1016
- await page.waitForChanges();
1017
- //delay to wait for aria live update
1018
- await waitForTimeout(900);
1019
- expect(page.rootInstance.filteredOptions.length).toBe(1);
1020
- });
1021
- it("should test searchable input - with groups", async () => {
1022
- const page = await newSpecPage({
1023
- components: [Select, Menu, InputComponentContainer],
1024
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1025
- });
1026
- page.root.options = menuOptionsWithGroups;
1027
- page.rootInstance.searchableSelectInputValue = "Latte";
1028
- await page.waitForChanges();
1029
- const input = page.root.shadowRoot.querySelector("input");
1030
- const event = new Event("input", {
1031
- bubbles: true,
1032
- cancelable: true,
1033
- });
1034
- input.dispatchEvent(event);
1035
- await page.waitForChanges();
1036
- //delay to wait for aria live update
1037
- await waitForTimeout(900);
1038
- expect(page.rootInstance.filteredOptions).not.toBeNull;
1039
- });
1040
- it("should test searchable input - with groups and group titles included in search", async () => {
1041
- const page = await newSpecPage({
1042
- components: [Select, Menu, InputComponentContainer],
1043
- html: `<ic-select label="IC Select Test" searchable="true" include-group-titles-in-search="true"></ic-select>`,
1044
- });
1045
- page.root.options = menuOptionsWithGroups;
1046
- page.rootInstance.searchableSelectInputValue = "Fancy";
1047
- await page.waitForChanges();
1048
- const input = page.root.shadowRoot.querySelector("input");
1049
- const event = new Event("input", {
1050
- bubbles: true,
1051
- cancelable: true,
1052
- });
1053
- input.dispatchEvent(event);
1054
- await page.waitForChanges();
1055
- //delay to wait for aria live update
1056
- await waitForTimeout(900);
1057
- expect(page.rootInstance.filteredOptions).not.toBeNull;
1058
- });
1059
- it("should test selectchange on no result found entry", async () => {
1060
- const page = await newSpecPage({
1061
- components: [Select, Menu, InputComponentContainer],
1062
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1063
- });
1064
- page.root.options = menuOptions;
1065
- page.rootInstance.open = true;
1066
- page.rootInstance.searchableSelectInputValue = testValue;
1067
- await page.waitForChanges();
1068
- page.rootInstance.handleCustomSelectChange({
1069
- detail: {
1070
- label: noResults,
1071
- },
1072
- });
1073
- await page.waitForChanges();
1074
- expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1075
- });
1076
- it("should test dropdown icon mousedown handler", async () => {
1077
- const page = await newSpecPage({
1078
- components: [Select, Menu, InputComponentContainer],
1079
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1080
- });
1081
- page.root.options = menuOptions;
1082
- page.rootInstance.handleExpandIconMouseDown({
1083
- detail: "some value",
1084
- preventDefault: () => null,
1085
- });
1086
- await page.waitForChanges();
1087
- expect(page.rootInstance.open).toBe(true);
1088
- });
1089
- it("should test form reset event", async () => {
1090
- const page = await newSpecPage({
1091
- components: [Select],
1092
- html: `<form>
562
+ it("should render as required", async () => {
563
+ const page = await newSpecPage({
564
+ components: [Select, Menu, InputComponentContainer],
565
+ html: getTestSelect('required="true" searchable="true"'),
566
+ });
567
+ expect(page.root).toMatchSnapshot("required-searchable");
568
+ });
569
+ it("should test with clear button with searchable", async () => {
570
+ const page = await newSpecPage({
571
+ components: [Select, Menu, InputComponentContainer, Button],
572
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
573
+ });
574
+ page.root.options = menuOptions;
575
+ page.rootInstance.searchableSelectInputValue = "test value";
576
+ await page.waitForChanges();
577
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
578
+ clearButton.focus();
579
+ await page.waitForChanges();
580
+ expect(page.rootInstance.clearButtonFocused).toBe(true);
581
+ clearButton.blur();
582
+ await page.waitForChanges();
583
+ expect(page.rootInstance.clearButtonFocused).toBe(false);
584
+ clearButton.click();
585
+ await page.waitForChanges();
586
+ expect(page.rootInstance.searchableSelectInputValue).toBeNull;
587
+ });
588
+ it("should test keydown handler searchable", async () => {
589
+ const page = await newSpecPage({
590
+ components: [Select, Menu, InputComponentContainer],
591
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
592
+ });
593
+ jest.spyOn(page.rootInstance, "setFocus").mockImplementation();
594
+ page.root.options = menuOptions;
595
+ await page.waitForChanges();
596
+ await page.root.setFocus();
597
+ await page.waitForChanges();
598
+ await page.rootInstance.handleKeyDown({
599
+ key: "ArrowDown",
600
+ preventDefault: () => null,
601
+ });
602
+ await page.waitForChanges();
603
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
604
+ expect(menu.options).toEqual(menuOptions);
605
+ expect(page.rootInstance.open).toBeTruthy;
606
+ await page.waitForChanges();
607
+ await page.rootInstance.handleKeyDown({
608
+ key: "Enter",
609
+ preventDefault: () => null,
610
+ });
611
+ await page.waitForChanges();
612
+ expect(page.rootInstance.open).toBeFalsy;
613
+ page.rootInstance.open = true;
614
+ page.rootInstance.noOptions = true;
615
+ await page.waitForChanges();
616
+ await page.rootInstance.handleKeyDown({
617
+ key: "Ctrl",
618
+ preventDefault: () => null,
619
+ });
620
+ await page.waitForChanges();
621
+ expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(2);
622
+ page.rootInstance.open = true;
623
+ page.rootInstance.noOptions = true;
624
+ await page.waitForChanges();
625
+ await page.rootInstance.handleKeyDown({
626
+ key: "Backspace",
627
+ preventDefault: () => null,
628
+ });
629
+ await page.waitForChanges();
630
+ expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(3);
631
+ });
632
+ it("should test keydown on menu - arrow up (searchable)", async () => {
633
+ const page = await newSpecPage({
634
+ components: [Select, Menu, InputComponentContainer],
635
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
636
+ });
637
+ page.root.options = menuOptions;
638
+ page.root.value = value2;
639
+ await page.waitForChanges();
640
+ const list = page.root.shadowRoot.querySelector(menuUl);
641
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
642
+ key: "ArrowUp",
643
+ bubbles: true,
644
+ cancelable: true,
645
+ }));
646
+ await page.waitForChanges();
647
+ const input = page.root.shadowRoot.querySelector("input");
648
+ expect(input.value).toBe(label2);
649
+ expect(page.rootInstance.open).toBeTruthy;
650
+ });
651
+ it("should test keydown on menu - arrow up wrap around (searchable)", async () => {
652
+ const page = await newSpecPage({
653
+ components: [Select, Menu, InputComponentContainer],
654
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
655
+ });
656
+ page.root.options = menuOptions;
657
+ page.rootInstance.open = true;
658
+ await page.waitForChanges();
659
+ page.root.value = value1;
660
+ await page.waitForChanges();
661
+ const list = page.root.shadowRoot.querySelector(menuUl);
662
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
663
+ key: "ArrowUp",
664
+ bubbles: true,
665
+ cancelable: true,
666
+ }));
667
+ await page.waitForChanges();
668
+ const input = page.root.shadowRoot.querySelector("input");
669
+ expect(input.value).toBe(label1);
670
+ });
671
+ it("should test keydown on menu - arrow down", async () => {
672
+ const page = await newSpecPage({
673
+ components: [Select, Menu, InputComponentContainer],
674
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
675
+ });
676
+ page.root.options = menuOptions;
677
+ page.rootInstance.open = true;
678
+ await page.waitForChanges();
679
+ page.root.value = value1;
680
+ await page.waitForChanges();
681
+ const list = page.root.shadowRoot.querySelector(menuUl);
682
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
683
+ key: "ArrowDown",
684
+ bubbles: true,
685
+ cancelable: true,
686
+ }));
687
+ await page.waitForChanges();
688
+ const input = page.root.shadowRoot.querySelector("input");
689
+ expect(input.value).toBe(label1);
690
+ });
691
+ it("should test keydown on menu - arrow down wrap around", async () => {
692
+ const page = await newSpecPage({
693
+ components: [Select, Menu, InputComponentContainer],
694
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
695
+ });
696
+ page.root.options = menuOptions;
697
+ page.rootInstance.open = true;
698
+ await page.waitForChanges();
699
+ page.root.value = value3;
700
+ await page.waitForChanges();
701
+ const list = page.root.shadowRoot.querySelector(menuUl);
702
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
703
+ key: "ArrowDown",
704
+ bubbles: true,
705
+ cancelable: true,
706
+ }));
707
+ await page.waitForChanges();
708
+ const input = page.root.shadowRoot.querySelector("input");
709
+ expect(input.value).toBe(label3);
710
+ });
711
+ it("should test keydown on menu - home key", async () => {
712
+ const page = await newSpecPage({
713
+ components: [Select, Menu, InputComponentContainer],
714
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
715
+ });
716
+ page.root.options = menuOptions;
717
+ page.rootInstance.open = true;
718
+ await page.waitForChanges();
719
+ page.root.value = value3;
720
+ await page.waitForChanges();
721
+ const list = page.root.shadowRoot.querySelector(menuUl);
722
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
723
+ key: "Home",
724
+ bubbles: true,
725
+ cancelable: true,
726
+ }));
727
+ expect(page.rootInstance.open).toBeTruthy;
728
+ });
729
+ it("should test keydown on menu - end key", async () => {
730
+ const page = await newSpecPage({
731
+ components: [Select, Menu, InputComponentContainer],
732
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
733
+ });
734
+ page.root.options = menuOptions;
735
+ page.root.value = value1;
736
+ await page.waitForChanges();
737
+ const list = page.root.shadowRoot.querySelector(menuUl);
738
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
739
+ key: "End",
740
+ bubbles: true,
741
+ cancelable: true,
742
+ }));
743
+ await page.waitForChanges();
744
+ const input = page.root.shadowRoot.querySelector("input");
745
+ expect(input.value).toBe(label1);
746
+ expect(page.rootInstance.open).toBeTruthy;
747
+ });
748
+ it("should test keydown on menu - backspace key", async () => {
749
+ const page = await newSpecPage({
750
+ components: [Select, Menu, InputComponentContainer],
751
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
752
+ });
753
+ page.root.options = menuOptions;
754
+ page.rootInstance.open = true;
755
+ await page.waitForChanges();
756
+ page.root.value = value3;
757
+ await page.waitForChanges();
758
+ const list = page.root.shadowRoot.querySelector(menuUl);
759
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
760
+ key: "Backspace",
761
+ bubbles: true,
762
+ cancelable: true,
763
+ }));
764
+ await page.waitForChanges();
765
+ const input = page.root.shadowRoot.querySelector("input");
766
+ expect(input.value).toBe(label3);
767
+ });
768
+ it("should test keydown on menu - enter key", async () => {
769
+ const page = await newSpecPage({
770
+ components: [Select, Menu, InputComponentContainer],
771
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
772
+ });
773
+ page.root.options = menuOptions;
774
+ page.rootInstance.open = true;
775
+ await page.waitForChanges();
776
+ page.root.value = value3;
777
+ await page.waitForChanges();
778
+ const list = page.root.shadowRoot.querySelector(menuUl);
779
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
780
+ key: "ArrowDown",
781
+ bubbles: true,
782
+ cancelable: true,
783
+ }));
784
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
785
+ key: "Enter",
786
+ bubbles: true,
787
+ cancelable: true,
788
+ }));
789
+ await page.waitForChanges();
790
+ const input = page.root.shadowRoot.querySelector("input");
791
+ expect(input.value).toBe(label1);
792
+ input.click();
793
+ await page.waitForChanges();
794
+ expect(page.rootInstance.filteredOptions).toHaveLength(3);
795
+ });
796
+ it("should test keydown on menu - space key", async () => {
797
+ const page = await newSpecPage({
798
+ components: [Select, Menu, InputComponentContainer],
799
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
800
+ });
801
+ page.root.options = menuOptions;
802
+ page.rootInstance.open = true;
803
+ await page.waitForChanges();
804
+ const list = page.root.shadowRoot.querySelector(menuUl);
805
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
806
+ key: " ",
807
+ bubbles: true,
808
+ cancelable: true,
809
+ }));
810
+ await page.waitForChanges();
811
+ expect(page.rootInstance.open).toBe(true);
812
+ });
813
+ it("should test keydown on menu - other key", async () => {
814
+ const page = await newSpecPage({
815
+ components: [Select, Menu, InputComponentContainer],
816
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
817
+ });
818
+ page.root.options = menuOptions;
819
+ page.rootInstance.open = true;
820
+ await page.waitForChanges();
821
+ page.root.value = value2;
822
+ await page.waitForChanges();
823
+ const list = page.root.shadowRoot.querySelector(menuUl);
824
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
825
+ key: "Ctrl",
826
+ bubbles: true,
827
+ cancelable: true,
828
+ }));
829
+ await page.waitForChanges();
830
+ const input = page.root.shadowRoot.querySelector("input");
831
+ expect(input.value).toBe(label2);
832
+ });
833
+ it("should test keyup on menu list", async () => {
834
+ const page = await newSpecPage({
835
+ components: [Select, Menu, InputComponentContainer],
836
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
837
+ });
838
+ page.root.options = menuOptions;
839
+ page.rootInstance.open = true;
840
+ await page.waitForChanges();
841
+ page.root.value = value2;
842
+ await page.waitForChanges();
843
+ const list = page.root.shadowRoot.querySelector(menuUl);
844
+ list.dispatchEvent(new window.window.KeyboardEvent("keyup", {
845
+ key: "Tab",
846
+ shiftKey: true,
847
+ bubbles: true,
848
+ cancelable: true,
849
+ }));
850
+ await page.waitForChanges();
851
+ const input = page.root.shadowRoot.querySelector("input");
852
+ expect(input.value).toBe(label2);
853
+ });
854
+ it("should test click on input", async () => {
855
+ const page = await newSpecPage({
856
+ components: [Select, Menu, InputComponentContainer],
857
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
858
+ });
859
+ page.root.options = menuOptions;
860
+ await page.waitForChanges();
861
+ const input = page.root.shadowRoot.querySelector("input");
862
+ input.click();
863
+ await page.waitForChanges();
864
+ expect(page.rootInstance.open).toBe(true);
865
+ });
866
+ it("should test click on input with external filtering", async () => {
867
+ const page = await newSpecPage({
868
+ components: [Select, Menu, InputComponentContainer],
869
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true"></ic-select>`,
870
+ });
871
+ page.root.options = menuOptions;
872
+ await page.waitForChanges();
873
+ const input = page.root.shadowRoot.querySelector("input");
874
+ input.click();
875
+ await page.waitForChanges();
876
+ expect(page.rootInstance.open).toBe(true);
877
+ });
878
+ it("should test blur on searchable input", async () => {
879
+ const page = await newSpecPage({
880
+ components: [Select, Menu, InputComponentContainer],
881
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
882
+ });
883
+ page.root.options = menuOptions;
884
+ await page.waitForChanges();
885
+ const eventSpy = jest.fn();
886
+ page.win.addEventListener("icBlur", eventSpy);
887
+ const input = page.root.shadowRoot.querySelector("input");
888
+ input.blur();
889
+ await page.waitForChanges();
890
+ expect(eventSpy).toHaveBeenCalled();
891
+ });
892
+ it("should test blur on searchable input where target is an element of the menu but not a menu option", async () => {
893
+ const page = await newSpecPage({
894
+ components: [Select, Menu, InputComponentContainer],
895
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
896
+ });
897
+ page.root.options = menuOptions;
898
+ await page.waitForChanges();
899
+ const target = page.root.shadowRoot.querySelector("ul.menu");
900
+ const event = new FocusEvent("blur", {
901
+ bubbles: true,
902
+ cancelable: true,
903
+ relatedTarget: target,
904
+ });
905
+ const eventSpy = jest.fn();
906
+ page.win.addEventListener("icBlur", eventSpy);
907
+ await page.rootInstance.onBlur(event);
908
+ await page.waitForChanges();
909
+ expect(eventSpy).not.toHaveBeenCalled();
910
+ });
911
+ it("should test searchable input", async () => {
912
+ const page = await newSpecPage({
913
+ components: [Select, Menu, InputComponentContainer],
914
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
915
+ });
916
+ page.root.options = menuOptions;
917
+ await page.waitForChanges();
918
+ const event = new Event("input", {
919
+ bubbles: true,
920
+ cancelable: true,
921
+ });
922
+ const input = page.root.shadowRoot.querySelector("input");
923
+ page.rootInstance.searchableSelectInputValue = testValue;
924
+ input.dispatchEvent(event);
925
+ await page.waitForChanges();
926
+ //delay to wait for aria live update
927
+ await waitForTimeout(900);
928
+ expect(page.rootInstance.open).toBe(true);
929
+ page.rootInstance.searchableSelectInputValue = "";
930
+ await page.waitForChanges();
931
+ input.dispatchEvent(event);
932
+ await page.waitForChanges();
933
+ //delay to wait for aria live update
934
+ await waitForTimeout(900);
935
+ expect(page.rootInstance.open).toBe(true);
936
+ page.root.options = [];
937
+ await page.waitForChanges();
938
+ page.rootInstance.searchableSelectInputValue = "";
939
+ input.dispatchEvent(event);
940
+ await page.waitForChanges();
941
+ //delay to wait for aria live update
942
+ await waitForTimeout(900);
943
+ expect(page.rootInstance.open).toBe(true);
944
+ });
945
+ it("should test searchable input filtering", async () => {
946
+ const page = await newSpecPage({
947
+ components: [Select, Menu, InputComponentContainer],
948
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
949
+ });
950
+ page.root.options = menuOptionsWithDescriptions;
951
+ page.rootInstance.searchableSelectInputValue = "c";
952
+ await page.waitForChanges();
953
+ const input = page.root.shadowRoot.querySelector("input");
954
+ const event = new Event("input", {
955
+ bubbles: true,
956
+ cancelable: true,
957
+ });
958
+ input.dispatchEvent(event);
959
+ await page.waitForChanges();
960
+ //delay to wait for aria live update
961
+ await waitForTimeout(900);
962
+ expect(page.rootInstance.filteredOptions.length).toBe(2);
963
+ });
964
+ it("should test searchable input - with search match position set to start", async () => {
965
+ const page = await newSpecPage({
966
+ components: [Select, Menu, InputComponentContainer],
967
+ html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start"></ic-select>`,
968
+ });
969
+ page.root.options = menuOptionsWithDescriptions;
970
+ page.rootInstance.searchableSelectInputValue = "c";
971
+ await page.waitForChanges();
972
+ const input = page.root.shadowRoot.querySelector("input");
973
+ const event = new Event("input", {
974
+ bubbles: true,
975
+ cancelable: true,
976
+ });
977
+ input.dispatchEvent(event);
978
+ await page.waitForChanges();
979
+ //delay to wait for aria live update
980
+ await waitForTimeout(900);
981
+ expect(page.rootInstance.filteredOptions.length).toBe(1);
982
+ });
983
+ it("should test searchable input - with descriptions and descriptions included in search", async () => {
984
+ const page = await newSpecPage({
985
+ components: [Select, Menu, InputComponentContainer],
986
+ html: `<ic-select label="IC Select Test" searchable="true" include-descriptions-in-search="true"></ic-select>`,
987
+ });
988
+ page.root.options = menuOptionsWithDescriptions;
989
+ page.rootInstance.searchableSelectInputValue = "Test description 2";
990
+ await page.waitForChanges();
991
+ const input = page.root.shadowRoot.querySelector("input");
992
+ const event = new Event("input", {
993
+ bubbles: true,
994
+ cancelable: true,
995
+ });
996
+ input.dispatchEvent(event);
997
+ await page.waitForChanges();
998
+ //delay to wait for aria live update
999
+ await waitForTimeout(900);
1000
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
1001
+ });
1002
+ it("should test searchable input - with search match position set to start and descriptions included in search", async () => {
1003
+ const page = await newSpecPage({
1004
+ components: [Select, Menu, InputComponentContainer],
1005
+ html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start" include-descriptions-in-search="true"></ic-select>`,
1006
+ });
1007
+ page.root.options = menuOptionsWithDescriptions;
1008
+ page.rootInstance.searchableSelectInputValue = "e";
1009
+ await page.waitForChanges();
1010
+ const input = page.root.shadowRoot.querySelector("input");
1011
+ const event = new Event("input", {
1012
+ bubbles: true,
1013
+ cancelable: true,
1014
+ });
1015
+ input.dispatchEvent(event);
1016
+ await page.waitForChanges();
1017
+ //delay to wait for aria live update
1018
+ await waitForTimeout(900);
1019
+ expect(page.rootInstance.filteredOptions.length).toBe(1);
1020
+ });
1021
+ it("should test searchable input - with groups", async () => {
1022
+ const page = await newSpecPage({
1023
+ components: [Select, Menu, InputComponentContainer],
1024
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1025
+ });
1026
+ page.root.options = menuOptionsWithGroups;
1027
+ page.rootInstance.searchableSelectInputValue = "Latte";
1028
+ await page.waitForChanges();
1029
+ const input = page.root.shadowRoot.querySelector("input");
1030
+ const event = new Event("input", {
1031
+ bubbles: true,
1032
+ cancelable: true,
1033
+ });
1034
+ input.dispatchEvent(event);
1035
+ await page.waitForChanges();
1036
+ //delay to wait for aria live update
1037
+ await waitForTimeout(900);
1038
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
1039
+ });
1040
+ it("should test searchable input - with groups and group titles included in search", async () => {
1041
+ const page = await newSpecPage({
1042
+ components: [Select, Menu, InputComponentContainer],
1043
+ html: `<ic-select label="IC Select Test" searchable="true" include-group-titles-in-search="true"></ic-select>`,
1044
+ });
1045
+ page.root.options = menuOptionsWithGroups;
1046
+ page.rootInstance.searchableSelectInputValue = "Fancy";
1047
+ await page.waitForChanges();
1048
+ const input = page.root.shadowRoot.querySelector("input");
1049
+ const event = new Event("input", {
1050
+ bubbles: true,
1051
+ cancelable: true,
1052
+ });
1053
+ input.dispatchEvent(event);
1054
+ await page.waitForChanges();
1055
+ //delay to wait for aria live update
1056
+ await waitForTimeout(900);
1057
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
1058
+ });
1059
+ it("should test selectchange on no result found entry", async () => {
1060
+ const page = await newSpecPage({
1061
+ components: [Select, Menu, InputComponentContainer],
1062
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1063
+ });
1064
+ page.root.options = menuOptions;
1065
+ page.rootInstance.open = true;
1066
+ page.rootInstance.searchableSelectInputValue = testValue;
1067
+ await page.waitForChanges();
1068
+ page.rootInstance.handleCustomSelectChange({
1069
+ detail: {
1070
+ label: noResults,
1071
+ },
1072
+ });
1073
+ await page.waitForChanges();
1074
+ expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1075
+ });
1076
+ it("should test dropdown icon mousedown handler", async () => {
1077
+ const page = await newSpecPage({
1078
+ components: [Select, Menu, InputComponentContainer],
1079
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1080
+ });
1081
+ page.root.options = menuOptions;
1082
+ page.rootInstance.handleExpandIconMouseDown({
1083
+ detail: "some value",
1084
+ preventDefault: () => null,
1085
+ });
1086
+ await page.waitForChanges();
1087
+ expect(page.rootInstance.open).toBe(true);
1088
+ });
1089
+ it("should test form reset event", async () => {
1090
+ const page = await newSpecPage({
1091
+ components: [Select, Menu],
1092
+ html: `<form>
1093
1093
  <ic-select label="IC Select Test" searchable="true"></ic-select>
1094
1094
  <button id="resetButton" type="reset">Reset</button>
1095
1095
  </form>`,
1096
- });
1097
- expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1098
- page.rootInstance.searchableSelectInputValue = testValue;
1099
- await page.waitForChanges();
1100
- expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1101
- await page.rootInstance.handleFormReset();
1102
- await page.waitForChanges();
1103
- expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1104
- });
1105
- it("should test debounce change", async () => {
1106
- const page = await newSpecPage({
1107
- components: [Select, Menu, InputComponentContainer],
1108
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1109
- });
1110
- await page.waitForChanges();
1111
- expect(page.rootInstance.currDebounce).toBe(300);
1112
- page.root.debounce = 500;
1113
- await page.waitForChanges();
1114
- expect(page.rootInstance.currDebounce).toBe(500);
1115
- });
1116
- it("should test no results state when no options passed and filtering disabled", async () => {
1117
- const page = await newSpecPage({
1118
- components: [Select, Menu, InputComponentContainer],
1119
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1120
- });
1121
- page.root.options = menuOptions;
1122
- page.rootInstance.searchableSelectInputValue = "test";
1123
- await page.waitForChanges();
1124
- const input = page.root.shadowRoot.querySelector("input");
1125
- const event = new Event("input", {
1126
- bubbles: true,
1127
- cancelable: true,
1128
- });
1129
- input.dispatchEvent(event);
1130
- await page.waitForChanges();
1131
- page.root.options = [];
1132
- await page.waitForChanges();
1133
- expect(page.rootInstance.filteredOptions).toHaveLength(1);
1134
- expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1135
- expect(page.rootInstance.open).toBe(true);
1136
- input.click();
1137
- await page.waitForChanges();
1138
- expect(page.rootInstance.open).toBe(false);
1139
- page.root.options = menuOptions;
1140
- await page.waitForChanges();
1141
- });
1142
- it("should test menus opens and closes when enter pressed - external filtering", async () => {
1143
- const page = await newSpecPage({
1144
- components: [Select, Menu, InputComponentContainer],
1145
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1146
- });
1147
- page.root.options = [];
1148
- page.rootInstance.searchableSelectInputValue = "test";
1149
- await page.waitForChanges();
1150
- const input = page.root.shadowRoot.querySelector("input");
1151
- const event = new Event("input", {
1152
- bubbles: true,
1153
- cancelable: true,
1154
- });
1155
- input.dispatchEvent(event);
1156
- await page.waitForChanges();
1157
- //test menu displays when Enter pressed
1158
- input.focus();
1159
- await page.waitForChanges();
1160
- await page.rootInstance.handleKeyDown({
1161
- key: "Enter",
1162
- preventDefault: () => null,
1163
- });
1164
- await page.waitForChanges();
1165
- expect(page.rootInstance.open).toBe(false);
1166
- await page.rootInstance.handleKeyDown({
1167
- key: "Enter",
1168
- target: { id: "test-event-id" },
1169
- preventDefault: () => null,
1170
- });
1171
- await page.waitForChanges();
1172
- expect(page.rootInstance.open).toBe(false);
1173
- });
1174
- it("should test adding and removing form reset listener on connect and disconnect", async () => {
1175
- const page = await newSpecPage({
1176
- components: [Select],
1177
- html: `<form>
1096
+ });
1097
+ expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1098
+ page.rootInstance.searchableSelectInputValue = testValue;
1099
+ await page.waitForChanges();
1100
+ expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1101
+ await page.rootInstance.handleFormReset();
1102
+ await page.waitForChanges();
1103
+ expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1104
+ });
1105
+ it("should test debounce change", async () => {
1106
+ const page = await newSpecPage({
1107
+ components: [Select, Menu, InputComponentContainer],
1108
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1109
+ });
1110
+ await page.waitForChanges();
1111
+ expect(page.rootInstance.currDebounce).toBe(300);
1112
+ page.root.debounce = 500;
1113
+ await page.waitForChanges();
1114
+ expect(page.rootInstance.currDebounce).toBe(500);
1115
+ });
1116
+ it("should test no results state when no options passed and filtering disabled", async () => {
1117
+ const page = await newSpecPage({
1118
+ components: [Select, Menu, InputComponentContainer],
1119
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1120
+ });
1121
+ page.root.options = menuOptions;
1122
+ page.rootInstance.searchableSelectInputValue = "test";
1123
+ await page.waitForChanges();
1124
+ const input = page.root.shadowRoot.querySelector("input");
1125
+ const event = new Event("input", {
1126
+ bubbles: true,
1127
+ cancelable: true,
1128
+ });
1129
+ input.dispatchEvent(event);
1130
+ await page.waitForChanges();
1131
+ page.root.options = [];
1132
+ await page.waitForChanges();
1133
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1134
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1135
+ expect(page.rootInstance.open).toBe(true);
1136
+ input.click();
1137
+ await page.waitForChanges();
1138
+ expect(page.rootInstance.open).toBe(false);
1139
+ page.root.options = menuOptions;
1140
+ await page.waitForChanges();
1141
+ });
1142
+ it("should test menus opens and closes when enter pressed - external filtering", async () => {
1143
+ const page = await newSpecPage({
1144
+ components: [Select, Menu, InputComponentContainer],
1145
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1146
+ });
1147
+ page.root.options = [];
1148
+ page.rootInstance.searchableSelectInputValue = "test";
1149
+ await page.waitForChanges();
1150
+ const input = page.root.shadowRoot.querySelector("input");
1151
+ const event = new Event("input", {
1152
+ bubbles: true,
1153
+ cancelable: true,
1154
+ });
1155
+ input.dispatchEvent(event);
1156
+ await page.waitForChanges();
1157
+ //test menu displays when Enter pressed
1158
+ input.focus();
1159
+ await page.waitForChanges();
1160
+ await page.rootInstance.handleKeyDown({
1161
+ key: "Enter",
1162
+ preventDefault: () => null,
1163
+ });
1164
+ await page.waitForChanges();
1165
+ expect(page.rootInstance.open).toBe(false);
1166
+ await page.rootInstance.handleKeyDown({
1167
+ key: "Enter",
1168
+ target: { id: "test-event-id" },
1169
+ preventDefault: () => null,
1170
+ });
1171
+ await page.waitForChanges();
1172
+ expect(page.rootInstance.open).toBe(false);
1173
+ });
1174
+ it("should test adding and removing form reset listener on connect and disconnect", async () => {
1175
+ const page = await newSpecPage({
1176
+ components: [Select, Menu],
1177
+ html: `<form>
1178
1178
  <ic-select label="IC Select Test" searchable="true"></ic-select>
1179
1179
  <button id="resetButton" type="reset">Reset</button>
1180
1180
  </form>`,
1181
+ });
1182
+ const addSpy = jest.spyOn(page.root, "addEventListener");
1183
+ const removeSpy = jest.spyOn(page.root, "removeEventListener");
1184
+ expect(addSpy).toHaveBeenCalled;
1185
+ page.setContent("");
1186
+ await page.waitForChanges();
1187
+ expect(removeSpy).toHaveBeenCalled;
1188
+ });
1189
+ it("should set the default value of searchable as custom value when not matching options", async () => {
1190
+ const page = await newSpecPage({
1191
+ components: [Select, Menu, InputComponentContainer],
1192
+ html: `<ic-select label='Select test' searchable='true' value='Test value 01'></ic-select>`,
1193
+ });
1194
+ page.root.options = [];
1195
+ await page.waitForChanges();
1196
+ expect(page.rootInstance.searchableSelectInputValue).toBe("Test value 01");
1197
+ const input = page.root.shadowRoot.querySelector("input");
1198
+ expect(input.value).toBe("Test value 01");
1199
+ });
1200
+ it("should set the default value of searchable as option label if matching label/value exists", async () => {
1201
+ const page = await newSpecPage({
1202
+ components: [Select, Menu, InputComponentContainer],
1203
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: menuOptions, value: value1 })),
1204
+ });
1205
+ expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1206
+ const input = page.root.shadowRoot.querySelector("input");
1207
+ expect(input.value).toBe(label1);
1208
+ });
1209
+ it("should set the default value of searchable as option label when options initially set to [] then populated", async () => {
1210
+ const page = await newSpecPage({
1211
+ components: [Select, Menu, InputComponentContainer],
1212
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1213
+ });
1214
+ page.root.options = menuOptions;
1215
+ await page.waitForChanges();
1216
+ expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1217
+ const input = page.root.shadowRoot.querySelector("input");
1218
+ expect(input.value).toBe(label1);
1219
+ });
1220
+ it("should set the default value to custom value when options initially set to [] then set to [] again", async () => {
1221
+ const page = await newSpecPage({
1222
+ components: [Select, Menu, InputComponentContainer],
1223
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1224
+ });
1225
+ page.root.options = [];
1226
+ await page.waitForChanges();
1227
+ expect(page.rootInstance.searchableSelectInputValue).toBe(value1);
1228
+ const input = page.root.shadowRoot.querySelector("input");
1229
+ expect(input.value).toBe(value1);
1230
+ });
1231
+ it("should test loading state and timeout for searchable select with external filtering", async () => {
1232
+ const page = await newSpecPage({
1233
+ components: [Select, Menu, InputComponentContainer],
1234
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1235
+ });
1236
+ page.rootInstance.searchableSelectInputValue = "test";
1237
+ await page.waitForChanges();
1238
+ const input = page.root.shadowRoot.querySelector("input");
1239
+ const event = new Event("input", {
1240
+ bubbles: true,
1241
+ cancelable: true,
1242
+ });
1243
+ input.dispatchEvent(event);
1244
+ page.rootInstance.loading = true;
1245
+ await page.waitForChanges();
1246
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1247
+ await waitForTimeout(1000);
1248
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingErrorLabel);
1249
+ await page.waitForChanges();
1250
+ const retryButton = page.root.shadowRoot
1251
+ .querySelector("ic-menu")
1252
+ .querySelector(retryButtonId);
1253
+ retryButton.click();
1254
+ page.rootInstance.loading = true;
1255
+ await page.waitForChanges();
1256
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1257
+ page.root.options = [];
1258
+ await page.waitForChanges();
1259
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1260
+ });
1261
+ it("should focus the input when escape is pressed whilst the menu is focused (searchable)", async () => {
1262
+ const spy = jest.spyOn(HTMLInputElement.prototype, "focus");
1263
+ const page = await newSpecPage({
1264
+ components: [Select, Menu, InputComponentContainer],
1265
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1266
+ });
1267
+ page.root.options = menuOptions;
1268
+ page.rootInstance.open = true;
1269
+ await page.waitForChanges();
1270
+ const list = page.root.shadowRoot.querySelector(menuUl);
1271
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
1272
+ key: "Escape",
1273
+ bubbles: true,
1274
+ cancelable: true,
1275
+ }));
1276
+ await page.waitForChanges();
1277
+ expect(page.rootInstance.open).toBeFalsy();
1278
+ expect(spy).toHaveBeenCalled();
1279
+ });
1280
+ it("should test keydown on loading retry button", async () => {
1281
+ const page = await newSpecPage({
1282
+ components: [Select, Menu, InputComponentContainer],
1283
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1284
+ });
1285
+ const input = page.root.shadowRoot.querySelector("input");
1286
+ const spy = jest.spyOn(input, "focus");
1287
+ page.rootInstance.searchableSelectInputValue = "test";
1288
+ await page.waitForChanges();
1289
+ let event = new Event("input", {
1290
+ bubbles: true,
1291
+ cancelable: true,
1292
+ });
1293
+ input.dispatchEvent(event);
1294
+ page.rootInstance.loading = true;
1295
+ await page.waitForChanges();
1296
+ await waitForTimeout(1000);
1297
+ await page.waitForChanges();
1298
+ event = new KeyboardEvent("keyDown", {
1299
+ key: "Enter",
1300
+ });
1301
+ const retryButton = page.root.shadowRoot
1302
+ .querySelector("ic-menu")
1303
+ .querySelector(retryButtonId);
1304
+ retryButton.dispatchEvent(event);
1305
+ expect(spy).toHaveBeenCalled;
1306
+ });
1307
+ it("should stop the timeout if clear button is clicked before timeout", async () => {
1308
+ const page = await newSpecPage({
1309
+ components: [Select, Menu, InputComponentContainer],
1310
+ html: `<ic-select label="IC Select Test" searchable="true" timeout="1000"></ic-select>`,
1311
+ });
1312
+ page.rootInstance.searchableSelectInputValue = "test";
1313
+ await page.waitForChanges();
1314
+ const event = new Event("input", {
1315
+ bubbles: true,
1316
+ cancelable: true,
1317
+ });
1318
+ const input = page.root.shadowRoot.querySelector("input");
1319
+ input.dispatchEvent(event);
1320
+ page.rootInstance.loading = true;
1321
+ await page.waitForChanges();
1322
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1323
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
1324
+ clearButton.click();
1325
+ await page.waitForChanges();
1326
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1327
+ expect(page.rootInstance.filteredOptions[0]).toMatchObject({
1328
+ label: noResults,
1329
+ value: "",
1330
+ });
1331
+ await waitForTimeout(1000);
1332
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1333
+ expect(page.rootInstance.filteredOptions[0]).toMatchObject({
1334
+ label: noResults,
1335
+ value: "",
1336
+ });
1337
+ });
1338
+ it("should clear the searchable input if the value is programatically set to undefined", async () => {
1339
+ const page = await newSpecPage({
1340
+ components: [Select, Menu, InputComponentContainer],
1341
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1342
+ });
1343
+ page.rootInstance.searchableSelectInputValue = "test";
1344
+ await page.waitForChanges();
1345
+ const event = new Event("input", {
1346
+ bubbles: true,
1347
+ cancelable: true,
1348
+ });
1349
+ const input = page.root.shadowRoot.querySelector("input");
1350
+ input.dispatchEvent(event);
1351
+ page.rootInstance.loading = true;
1352
+ await page.waitForChanges();
1353
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1354
+ page.rootInstance.value = undefined;
1355
+ await page.waitForChanges();
1356
+ expect(page.rootInstance.searchableSelectInputValue).toBeUndefined;
1181
1357
  });
1182
- const addSpy = jest.spyOn(page.root, "addEventListener");
1183
- const removeSpy = jest.spyOn(page.root, "removeEventListener");
1184
- expect(addSpy).toHaveBeenCalled;
1185
- page.setContent("");
1186
- await page.waitForChanges();
1187
- expect(removeSpy).toHaveBeenCalled;
1188
- });
1189
- it("should set the default value of searchable as custom value when not matching options", async () => {
1190
- const page = await newSpecPage({
1191
- components: [Select, Menu, InputComponentContainer],
1192
- html: `<ic-select label='Select test' searchable='true' value='Test value 01'></ic-select>`,
1193
- });
1194
- page.root.options = [];
1195
- await page.waitForChanges();
1196
- expect(page.rootInstance.searchableSelectInputValue).toBe("Test value 01");
1197
- const input = page.root.shadowRoot.querySelector("input");
1198
- expect(input.value).toBe("Test value 01");
1199
- });
1200
- it("should set the default value of searchable as option label if matching label/value exists", async () => {
1201
- const page = await newSpecPage({
1202
- components: [Select, Menu, InputComponentContainer],
1203
- template: () => (h("ic-select", { label: "select test", searchable: true, options: menuOptions, value: value1 })),
1204
- });
1205
- expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1206
- const input = page.root.shadowRoot.querySelector("input");
1207
- expect(input.value).toBe(label1);
1208
- });
1209
- it("should set the default value of searchable as option label when options initially set to [] then populated", async () => {
1210
- const page = await newSpecPage({
1211
- components: [Select, Menu, InputComponentContainer],
1212
- template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1213
- });
1214
- page.root.options = menuOptions;
1215
- await page.waitForChanges();
1216
- expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1217
- const input = page.root.shadowRoot.querySelector("input");
1218
- expect(input.value).toBe(label1);
1219
- });
1220
- it("should set the default value to custom value when options initially set to [] then set to [] again", async () => {
1221
- const page = await newSpecPage({
1222
- components: [Select, Menu, InputComponentContainer],
1223
- template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1224
- });
1225
- page.root.options = [];
1226
- await page.waitForChanges();
1227
- expect(page.rootInstance.searchableSelectInputValue).toBe(value1);
1228
- const input = page.root.shadowRoot.querySelector("input");
1229
- expect(input.value).toBe(value1);
1230
- });
1231
- it("should test loading state and timeout for searchable select with external filtering", async () => {
1232
- const page = await newSpecPage({
1233
- components: [Select, Menu, InputComponentContainer],
1234
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1235
- });
1236
- page.rootInstance.searchableSelectInputValue = "test";
1237
- await page.waitForChanges();
1238
- const input = page.root.shadowRoot.querySelector("input");
1239
- const event = new Event("input", {
1240
- bubbles: true,
1241
- cancelable: true,
1242
- });
1243
- input.dispatchEvent(event);
1244
- page.rootInstance.loading = true;
1245
- await page.waitForChanges();
1246
- expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1247
- await waitForTimeout(1000);
1248
- expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingErrorLabel);
1249
- await page.waitForChanges();
1250
- const retryButton = page.root.shadowRoot
1251
- .querySelector("ic-menu")
1252
- .querySelector(retryButtonId);
1253
- retryButton.click();
1254
- page.rootInstance.loading = true;
1255
- await page.waitForChanges();
1256
- expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1257
- page.root.options = [];
1258
- await page.waitForChanges();
1259
- expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1260
- });
1261
- it("should focus the input when escape is pressed whilst the menu is focused (searchable)", async () => {
1262
- const spy = jest.spyOn(HTMLInputElement.prototype, "focus");
1263
- const page = await newSpecPage({
1264
- components: [Select, Menu, InputComponentContainer],
1265
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1266
- });
1267
- page.root.options = menuOptions;
1268
- page.rootInstance.open = true;
1269
- await page.waitForChanges();
1270
- const list = page.root.shadowRoot.querySelector(menuUl);
1271
- list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
1272
- key: "Escape",
1273
- bubbles: true,
1274
- cancelable: true,
1275
- }));
1276
- await page.waitForChanges();
1277
- expect(page.rootInstance.open).toBeFalsy();
1278
- expect(spy).toHaveBeenCalled();
1279
- });
1280
- it("should test keydown on loading retry button", async () => {
1281
- const page = await newSpecPage({
1282
- components: [Select, Menu, InputComponentContainer],
1283
- html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1284
- });
1285
- const input = page.root.shadowRoot.querySelector("input");
1286
- const spy = jest.spyOn(input, "focus");
1287
- page.rootInstance.searchableSelectInputValue = "test";
1288
- await page.waitForChanges();
1289
- let event = new Event("input", {
1290
- bubbles: true,
1291
- cancelable: true,
1292
- });
1293
- input.dispatchEvent(event);
1294
- page.rootInstance.loading = true;
1295
- await page.waitForChanges();
1296
- await waitForTimeout(1000);
1297
- await page.waitForChanges();
1298
- event = new KeyboardEvent("keyDown", {
1299
- key: "Enter",
1300
- });
1301
- const retryButton = page.root.shadowRoot
1302
- .querySelector("ic-menu")
1303
- .querySelector(retryButtonId);
1304
- retryButton.dispatchEvent(event);
1305
- expect(spy).toHaveBeenCalled;
1306
- });
1307
- it("should stop the timeout if clear button is clicked before timeout", async () => {
1308
- const page = await newSpecPage({
1309
- components: [Select, Menu, InputComponentContainer],
1310
- html: `<ic-select label="IC Select Test" searchable="true" timeout="1000"></ic-select>`,
1311
- });
1312
- page.rootInstance.searchableSelectInputValue = "test";
1313
- await page.waitForChanges();
1314
- const event = new Event("input", {
1315
- bubbles: true,
1316
- cancelable: true,
1317
- });
1318
- const input = page.root.shadowRoot.querySelector("input");
1319
- input.dispatchEvent(event);
1320
- page.rootInstance.loading = true;
1321
- await page.waitForChanges();
1322
- expect(page.rootInstance.filteredOptions).toHaveLength(1);
1323
- const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
1324
- clearButton.click();
1325
- await page.waitForChanges();
1326
- expect(page.rootInstance.filteredOptions).toHaveLength(1);
1327
- expect(page.rootInstance.filteredOptions[0]).toMatchObject({
1328
- label: noResults,
1329
- value: "",
1330
- });
1331
- await waitForTimeout(1000);
1332
- expect(page.rootInstance.filteredOptions).toHaveLength(1);
1333
- expect(page.rootInstance.filteredOptions[0]).toMatchObject({
1334
- label: noResults,
1335
- value: "",
1336
- });
1337
- });
1338
- it("should clear the searchable input if the value is programatically set to undefined", async () => {
1339
- const page = await newSpecPage({
1340
- components: [Select, Menu, InputComponentContainer],
1341
- html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1342
- });
1343
- page.rootInstance.searchableSelectInputValue = "test";
1344
- await page.waitForChanges();
1345
- const event = new Event("input", {
1346
- bubbles: true,
1347
- cancelable: true,
1348
- });
1349
- const input = page.root.shadowRoot.querySelector("input");
1350
- input.dispatchEvent(event);
1351
- page.rootInstance.loading = true;
1352
- await page.waitForChanges();
1353
- expect(page.rootInstance.filteredOptions).toHaveLength(1);
1354
- page.rootInstance.value = undefined;
1355
- await page.waitForChanges();
1356
- expect(page.rootInstance.searchableSelectInputValue).toBeUndefined;
1357
- });
1358
1358
  });
1359
1359
  //# sourceMappingURL=ic-select.spec.js.map