@ukic/web-components 2.7.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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