@ukic/web-components 2.1.0-beta.9 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1175) hide show
  1. package/dist/cjs/OpenInNew-f9958725.js +7 -0
  2. package/dist/cjs/OpenInNew-f9958725.js.map +1 -0
  3. package/dist/cjs/chevron-icon-2bb3a907.js +10 -0
  4. package/dist/cjs/chevron-icon-2bb3a907.js.map +1 -0
  5. package/dist/cjs/core.cjs.js +10 -3
  6. package/dist/cjs/core.cjs.js.map +1 -1
  7. package/dist/cjs/{helpers-6eb26e7a.js → helpers-eb53c416.js} +27 -26
  8. package/dist/cjs/helpers-eb53c416.js.map +1 -0
  9. package/dist/cjs/ic-alert.cjs.entry.js +11 -11
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +5 -5
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +39 -33
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +14 -13
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +163 -93
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +46 -45
  20. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +24 -23
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +41 -29
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +18 -15
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-data-entity.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +38 -24
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-dialog.cjs.entry.js +295 -0
  33. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -0
  34. package/dist/cjs/ic-divider.cjs.entry.js +3 -3
  35. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-footer-link-group.cjs.entry.js +18 -18
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +23 -17
  39. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-footer.cjs.entry.js +23 -21
  41. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-hero.cjs.entry.js +23 -21
  43. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +45 -26
  45. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +299 -159
  47. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-input-label_2.cjs.entry.js +11 -11
  49. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-link.cjs.entry.js +22 -23
  51. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-group.cjs.entry.js +24 -0
  53. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -0
  54. package/dist/cjs/ic-menu-item.cjs.entry.js +122 -0
  55. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -0
  56. package/dist/cjs/ic-navigation-button.cjs.entry.js +18 -18
  57. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-group.cjs.entry.js +87 -58
  59. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-item.cjs.entry.js +49 -42
  61. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-navigation-menu.cjs.entry.js +28 -34
  63. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-page-header.cjs.entry.js +24 -27
  65. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-pagination-item.cjs.entry.js +56 -0
  67. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -0
  68. package/dist/cjs/ic-pagination.cjs.entry.js +227 -0
  69. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -0
  70. package/dist/cjs/ic-popover-menu.cjs.entry.js +237 -0
  71. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -0
  72. package/dist/cjs/ic-radio-group.cjs.entry.js +43 -25
  73. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-radio-option.cjs.entry.js +39 -38
  75. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-search-bar.cjs.entry.js +178 -102
  77. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-select.cjs.entry.js +349 -190
  80. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-side-navigation.cjs.entry.js +116 -87
  82. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -4
  84. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-status-tag.cjs.entry.js +6 -6
  86. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-step.cjs.entry.js +10 -10
  88. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-stepper.cjs.entry.js +15 -15
  90. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-switch.cjs.entry.js +20 -19
  92. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-tab-context.cjs.entry.js +68 -32
  94. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-tab-group.cjs.entry.js +5 -4
  96. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-tab-panel.cjs.entry.js +15 -4
  98. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-tab.cjs.entry.js +32 -7
  100. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-text-field.cjs.entry.js +102 -72
  102. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  104. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toast-region.cjs.entry.js +13 -13
  106. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-toast.cjs.entry.js +60 -56
  108. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-top-navigation.cjs.entry.js +49 -45
  110. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-typography.cjs.entry.js +97 -5
  112. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  113. package/dist/cjs/{index-f79a4e53.js → index-2a0c6769.js} +256 -43
  114. package/dist/cjs/index-2a0c6769.js.map +1 -0
  115. package/dist/cjs/loader.cjs.js +4 -3
  116. package/dist/cjs/loader.cjs.js.map +1 -1
  117. package/dist/cjs/{popper-11d5f714.js → popper-d7adcfc6.js} +10 -17
  118. package/dist/cjs/popper-d7adcfc6.js.map +1 -0
  119. package/dist/cjs/types-3eb02246.js.map +1 -1
  120. package/dist/collection/assets/pagination-first-last.svg +3 -0
  121. package/dist/collection/assets/pagination-next-previous.svg +3 -0
  122. package/dist/collection/collection-manifest.json +17 -11
  123. package/dist/collection/components/ic-alert/ic-alert.css +1 -1
  124. package/dist/collection/components/ic-alert/ic-alert.js +49 -49
  125. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  126. package/dist/collection/components/ic-alert/{ic-alert.test.a11y.js → test/a11y/ic-alert.test.a11y.js} +1 -1
  127. package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js.map +1 -0
  128. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js +16 -0
  129. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js.map +1 -0
  130. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +182 -0
  131. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -0
  132. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +3 -3
  133. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +4 -4
  134. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  135. package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js.map +1 -0
  136. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js +68 -0
  137. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js.map +1 -0
  138. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +123 -0
  139. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -0
  140. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +19 -4
  141. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +28 -27
  142. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  143. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +118 -0
  144. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +1 -0
  145. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +37 -31
  146. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  147. package/dist/collection/components/ic-breadcrumb-group/{ic-breadcrumb-group.test.a11y.js → test/a11y/ic-breadcrumb-group.test.a11y.js} +1 -1
  148. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js.map +1 -0
  149. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group-test-examples.js.map +1 -0
  150. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js +41 -0
  151. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js.map +1 -0
  152. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +181 -0
  153. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +1 -0
  154. package/dist/collection/components/ic-button/ic-button.css +23 -8
  155. package/dist/collection/components/ic-button/ic-button.js +269 -114
  156. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  157. package/dist/collection/components/ic-button/{ic-button.test.a11y.js → test/a11y/ic-button.test.a11y.js} +1 -1
  158. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js.map +1 -0
  159. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +198 -0
  160. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js.map +1 -0
  161. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +256 -0
  162. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -0
  163. package/dist/collection/components/ic-card/ic-card.css +35 -10
  164. package/dist/collection/components/ic-card/ic-card.js +123 -122
  165. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  166. package/dist/collection/components/ic-card/{ic-card.test.a11y.js → test/a11y/ic-card.test.a11y.js} +1 -1
  167. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js.map +1 -0
  168. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js +23 -0
  169. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js.map +1 -0
  170. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +152 -0
  171. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -0
  172. package/dist/collection/components/ic-checkbox/ic-checkbox.css +11 -8
  173. package/dist/collection/components/ic-checkbox/ic-checkbox.js +107 -76
  174. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  175. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +3 -3
  176. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +64 -67
  177. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  178. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.types.js.map +1 -1
  179. package/dist/collection/components/ic-checkbox-group/{ic-checkbox-group.test.a11y.js → test/a11y/ic-checkbox-group.test.a11y.js} +1 -1
  180. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js.map +1 -0
  181. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js +201 -0
  182. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js.map +1 -0
  183. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +175 -0
  184. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -0
  185. package/dist/collection/components/ic-chip/ic-chip.css +11 -10
  186. package/dist/collection/components/ic-chip/ic-chip.js +55 -52
  187. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  188. package/dist/collection/components/ic-chip/{ic-chip.test.a11y.js → test/a11y/ic-chip.test.a11y.js} +1 -1
  189. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js.map +1 -0
  190. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +110 -0
  191. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -0
  192. package/dist/collection/components/ic-classification-banner/{ic-classification-banner.test.a11y.js → test/a11y/ic-classification-banner.test.a11y.js} +1 -1
  193. package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js.map +1 -0
  194. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +140 -0
  195. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -0
  196. package/dist/collection/components/ic-data-entity/ic-data-entity.css +1 -1
  197. package/dist/collection/components/ic-data-entity/{ic-data-entity.test.a11y.js → test/a11y/ic-data-entity.test.a11y.js} +1 -1
  198. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js.map +1 -0
  199. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +161 -0
  200. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -0
  201. package/dist/collection/components/ic-data-row/ic-data-row.css +1 -1
  202. package/dist/collection/components/ic-data-row/ic-data-row.js +51 -37
  203. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  204. package/dist/collection/components/ic-data-row/{ic-data-row.test.a11y.js → test/a11y/ic-data-row.test.a11y.js} +1 -1
  205. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -0
  206. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +74 -0
  207. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +1 -0
  208. package/dist/collection/components/ic-dialog/ic-dialog.css +592 -0
  209. package/dist/collection/components/ic-dialog/ic-dialog.js +640 -0
  210. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -0
  211. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js +28 -0
  212. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js.map +1 -0
  213. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +207 -0
  214. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -0
  215. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +520 -0
  216. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -0
  217. package/dist/collection/components/ic-divider/ic-divider.css +1 -1
  218. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +24 -0
  219. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -0
  220. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  221. package/dist/collection/components/ic-footer/ic-footer.js +51 -49
  222. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  223. package/dist/collection/components/ic-footer/{ic-footer.test.a11y.js → test/a11y/ic-footer.test.a11y.js} +1 -1
  224. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -0
  225. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js +50 -0
  226. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js.map +1 -0
  227. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +140 -0
  228. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -0
  229. package/dist/collection/components/ic-footer-link/ic-footer-link.css +36 -4
  230. package/dist/collection/components/ic-footer-link/ic-footer-link.js +111 -15
  231. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  232. package/dist/collection/components/ic-footer-link/{ic-footer-link.test.a11y.js → test/a11y/ic-footer-link.test.a11y.js} +1 -1
  233. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js.map +1 -0
  234. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +62 -0
  235. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -0
  236. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +18 -18
  237. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  238. package/dist/collection/components/ic-footer-link-group/{ic-footer-link-group.test.a11y.js → test/a11y/ic-footer-link-group.test.a11y.js} +1 -1
  239. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js.map +1 -0
  240. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +98 -0
  241. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -0
  242. package/dist/collection/components/ic-hero/ic-hero.css +23 -22
  243. package/dist/collection/components/ic-hero/ic-hero.js +97 -95
  244. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  245. package/dist/collection/components/ic-hero/{ic-hero.test.a11y.js → test/a11y/ic-hero.test.a11y.js} +1 -1
  246. package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js.map +1 -0
  247. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +76 -0
  248. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -0
  249. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +4 -8
  250. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +44 -25
  251. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  252. package/dist/collection/components/ic-horizontal-scroll/{ic-horizontal-scroll.test.a11y.js → test/a11y/ic-horizontal-scroll.test.a11y.js} +1 -1
  253. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -0
  254. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +180 -0
  255. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -0
  256. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +38 -9
  257. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +45 -45
  258. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  259. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +117 -0
  260. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -0
  261. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +38 -0
  262. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +1 -0
  263. package/dist/collection/components/ic-input-label/ic-input-label.css +0 -4
  264. package/dist/collection/components/ic-input-label/ic-input-label.js +51 -51
  265. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  266. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +98 -0
  267. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -0
  268. package/dist/collection/components/ic-input-validation/ic-input-validation.css +0 -8
  269. package/dist/collection/components/ic-input-validation/ic-input-validation.js +41 -41
  270. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  271. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +89 -0
  272. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +1 -0
  273. package/dist/collection/components/ic-link/ic-link.css +16 -3
  274. package/dist/collection/components/ic-link/ic-link.js +55 -52
  275. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  276. package/dist/collection/components/ic-link/{ic-link.test.a11y.js → test/a11y/ic-link.test.a11y.js} +1 -1
  277. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js.map +1 -0
  278. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +203 -0
  279. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -0
  280. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -5
  281. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +97 -89
  282. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  283. package/dist/collection/components/ic-loading-indicator/{ic-loading-indicator.test.a11y.js → test/a11y/ic-loading-indicator.test.a11y.js} +1 -1
  284. package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js.map +1 -0
  285. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js +34 -0
  286. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js.map +1 -0
  287. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +141 -0
  288. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +1 -0
  289. package/dist/collection/components/ic-menu/ic-menu.css +47 -10
  290. package/dist/collection/components/ic-menu/ic-menu.js +521 -268
  291. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  292. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +657 -0
  293. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -0
  294. package/dist/collection/components/ic-menu-group/ic-menu-group.css +465 -0
  295. package/dist/collection/components/ic-menu-group/ic-menu-group.js +45 -0
  296. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -0
  297. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +94 -0
  298. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +1 -0
  299. package/dist/collection/components/ic-menu-item/ic-menu-item.css +628 -0
  300. package/dist/collection/components/ic-menu-item/ic-menu-item.js +394 -0
  301. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -0
  302. package/dist/collection/components/ic-menu-item/ic-menu-item.types.js +2 -0
  303. package/dist/collection/components/ic-menu-item/ic-menu-item.types.js.map +1 -0
  304. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +108 -0
  305. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -0
  306. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +4 -0
  307. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +56 -56
  308. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  309. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +84 -0
  310. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -0
  311. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +2 -10
  312. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +101 -72
  313. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  314. package/dist/collection/components/ic-navigation-group/{ic-navigation-group.test.a11y.js → test/a11y/ic-navigation-group.test.a11y.js} +1 -1
  315. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -0
  316. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +309 -0
  317. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -0
  318. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +59 -16
  319. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +180 -83
  320. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  321. package/dist/collection/components/ic-navigation-item/{ic-navigation-item.test.a11y.js → test/a11y/ic-navigation-item.test.a11y.js} +1 -1
  322. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -0
  323. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +118 -0
  324. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -0
  325. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +19 -18
  326. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +31 -37
  327. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  328. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +29 -0
  329. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +1 -0
  330. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +176 -0
  331. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +1 -0
  332. package/dist/collection/components/ic-page-header/ic-page-header.css +3 -1
  333. package/dist/collection/components/ic-page-header/ic-page-header.js +65 -68
  334. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  335. package/dist/collection/components/ic-page-header/{ic-page-header.test.a11y.js → test/a11y/ic-page-header.test.a11y.js} +1 -1
  336. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +1 -0
  337. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +177 -0
  338. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +1 -0
  339. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +284 -0
  340. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -0
  341. package/dist/collection/components/ic-pagination/ic-pagination.css +486 -0
  342. package/dist/collection/components/ic-pagination/ic-pagination.js +498 -0
  343. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -0
  344. package/dist/collection/components/ic-pagination/ic-pagination.types.js +2 -0
  345. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +1 -0
  346. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +11 -0
  347. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -0
  348. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +128 -0
  349. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +1 -0
  350. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +335 -0
  351. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -0
  352. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +581 -0
  353. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +229 -0
  354. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -0
  355. package/dist/collection/components/ic-pagination-item/ic-pagination-item.types.js +2 -0
  356. package/dist/collection/components/ic-pagination-item/ic-pagination-item.types.js.map +1 -0
  357. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +536 -0
  358. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +433 -0
  359. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -0
  360. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +13 -0
  361. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +1 -0
  362. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +30 -0
  363. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -0
  364. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +381 -0
  365. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -0
  366. package/dist/collection/components/ic-radio-group/ic-radio-group.css +4 -4
  367. package/dist/collection/components/ic-radio-group/ic-radio-group.js +104 -80
  368. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  369. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js +2 -0
  370. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js.map +1 -0
  371. package/dist/collection/components/ic-radio-group/{ic-radio-group.test.a11y.js → test/a11y/ic-radio-group.test.a11y.js} +1 -1
  372. package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js.map +1 -0
  373. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +343 -0
  374. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -0
  375. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +303 -0
  376. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -0
  377. package/dist/collection/components/ic-radio-option/ic-radio-option.css +6 -6
  378. package/dist/collection/components/ic-radio-option/ic-radio-option.js +111 -96
  379. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  380. package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -10
  381. package/dist/collection/components/ic-search-bar/ic-search-bar.js +492 -299
  382. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  383. package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
  384. package/dist/collection/components/ic-search-bar/{ic-search-bar.test.a11y.js → test/a11y/ic-search-bar.test.a11y.js} +1 -1
  385. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js.map +1 -0
  386. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +1099 -0
  387. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -0
  388. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +584 -0
  389. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -0
  390. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +69 -0
  391. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +1 -0
  392. package/dist/collection/components/ic-select/ic-select.css +17 -17
  393. package/dist/collection/components/ic-select/ic-select.js +630 -369
  394. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  395. package/dist/collection/components/ic-select/{ic-select.test.a11y.js → test/a11y/ic-select.test.a11y.js} +1 -1
  396. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -0
  397. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1768 -0
  398. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -0
  399. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +1296 -0
  400. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -0
  401. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +47 -44
  402. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +156 -127
  403. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  404. package/dist/collection/components/ic-side-navigation/{ic-side-navigation.test.a11y.js → test/a11y/ic-side-navigation.test.a11y.js} +1 -1
  405. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js.map +1 -0
  406. package/dist/collection/components/ic-side-navigation/{ic-side-navigation-test-examples.js → test/basic/ic-side-navigation-test-examples.js} +90 -0
  407. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js.map +1 -0
  408. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +412 -0
  409. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -0
  410. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +470 -0
  411. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -0
  412. package/dist/collection/components/ic-skeleton/ic-skeleton.js +22 -22
  413. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  414. package/dist/collection/components/ic-skeleton/{ic-skeleton.test.a11y.js → test/a11y/ic-skeleton.test.a11y.js} +1 -1
  415. package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js.map +1 -0
  416. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +89 -0
  417. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +1 -0
  418. package/dist/collection/components/ic-status-tag/ic-status-tag.css +10 -13
  419. package/dist/collection/components/ic-status-tag/ic-status-tag.js +40 -40
  420. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  421. package/dist/collection/components/ic-status-tag/{ic-status-tag.test.a11y.js → test/a11y/ic-status-tag.test.a11y.js} +1 -1
  422. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +1 -0
  423. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +43 -0
  424. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -0
  425. package/dist/collection/components/ic-step/ic-step.css +6 -6
  426. package/dist/collection/components/ic-step/ic-step.js +127 -127
  427. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  428. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +176 -0
  429. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +1 -0
  430. package/dist/collection/components/ic-stepper/ic-stepper.js +41 -41
  431. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  432. package/dist/collection/components/ic-stepper/{ic-stepper.test.a11y.js → test/a11y/ic-stepper.test.a11y.js} +1 -1
  433. package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js.map +1 -0
  434. package/dist/collection/components/ic-stepper/test/basic/ic-stepper-test-examples.js.map +1 -0
  435. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js +49 -0
  436. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js.map +1 -0
  437. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +706 -0
  438. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -0
  439. package/dist/collection/components/ic-switch/ic-switch.css +4 -4
  440. package/dist/collection/components/ic-switch/ic-switch.js +74 -73
  441. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  442. package/dist/collection/components/ic-switch/{ic-switch.test.a11y.js → test/a11y/ic-switch.test.a11y.js} +1 -1
  443. package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js.map +1 -0
  444. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +104 -0
  445. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -0
  446. package/dist/collection/components/ic-tab/ic-tab.css +4 -4
  447. package/dist/collection/components/ic-tab/ic-tab.js +114 -31
  448. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  449. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js +32 -0
  450. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js.map +1 -0
  451. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +159 -0
  452. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -0
  453. package/dist/collection/components/ic-tab-context/ic-tab-context.js +157 -77
  454. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  455. package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js.map +1 -0
  456. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +317 -0
  457. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -0
  458. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +390 -0
  459. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +1 -0
  460. package/dist/collection/components/ic-tab-group/ic-tab-group.css +3 -3
  461. package/dist/collection/components/ic-tab-group/ic-tab-group.js +33 -29
  462. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  463. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +0 -4
  464. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +89 -34
  465. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  466. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +65 -0
  467. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +1 -0
  468. package/dist/collection/components/ic-text-field/ic-text-field.css +1 -10
  469. package/dist/collection/components/ic-text-field/ic-text-field.js +456 -345
  470. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  471. package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js.map +1 -0
  472. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +98 -0
  473. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -0
  474. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +236 -0
  475. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -0
  476. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +310 -0
  477. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -0
  478. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  479. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +72 -0
  480. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +1 -0
  481. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +77 -0
  482. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +1 -0
  483. package/dist/collection/components/ic-toast/ic-toast.css +5 -0
  484. package/dist/collection/components/ic-toast/ic-toast.js +111 -107
  485. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  486. package/dist/collection/components/ic-toast/{ic-toast.test.a11y.js → test/a11y/ic-toast.test.a11y.js} +1 -1
  487. package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js.map +1 -0
  488. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js +82 -0
  489. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js.map +1 -0
  490. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +278 -0
  491. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -0
  492. package/dist/collection/components/ic-toast-region/ic-toast-region.js +12 -12
  493. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  494. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +62 -0
  495. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -0
  496. package/dist/collection/components/ic-tooltip/ic-tooltip.css +22 -8
  497. package/dist/collection/components/ic-tooltip/ic-tooltip.js +116 -64
  498. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  499. package/dist/collection/components/ic-tooltip/{ic-tooltip.test.a11y.js → test/a11y/ic-tooltip.test.a11y.js} +1 -1
  500. package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js.map +1 -0
  501. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +115 -0
  502. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -0
  503. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +128 -0
  504. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -0
  505. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +21 -15
  506. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +105 -83
  507. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  508. package/dist/collection/components/ic-top-navigation/{ic-top-navigation.test.a11y.js → test/a11y/ic-top-navigation.test.a11y.js} +8 -1
  509. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -0
  510. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js +61 -0
  511. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js.map +1 -0
  512. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +242 -0
  513. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -0
  514. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +299 -0
  515. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -0
  516. package/dist/collection/components/ic-typography/ic-typography.css +58 -1
  517. package/dist/collection/components/ic-typography/ic-typography.js +140 -22
  518. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  519. package/dist/collection/components/ic-typography/{ic-typography.test.a11y.js → test/a11y/ic-typography.test.a11y.js} +1 -1
  520. package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js.map +1 -0
  521. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +39 -0
  522. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -0
  523. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +296 -0
  524. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -0
  525. package/dist/collection/testspec.setup.js +21 -0
  526. package/dist/collection/testspec.setup.js.map +1 -1
  527. package/dist/collection/utils/helpers.js +24 -25
  528. package/dist/collection/utils/helpers.js.map +1 -1
  529. package/dist/collection/utils/types.js.map +1 -1
  530. package/dist/components/OpenInNew.js +5 -0
  531. package/dist/components/OpenInNew.js.map +1 -0
  532. package/dist/components/helpers.js +25 -26
  533. package/dist/components/helpers.js.map +1 -1
  534. package/dist/components/ic-alert.js +1 -113
  535. package/dist/components/ic-alert.js.map +1 -1
  536. package/dist/components/ic-alert2.js +117 -0
  537. package/dist/components/ic-alert2.js.map +1 -0
  538. package/dist/components/ic-back-to-top.js +7 -7
  539. package/dist/components/ic-back-to-top.js.map +1 -1
  540. package/dist/components/ic-breadcrumb-group.js +39 -33
  541. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  542. package/dist/components/ic-breadcrumb2.js +13 -12
  543. package/dist/components/ic-breadcrumb2.js.map +1 -1
  544. package/dist/components/ic-button2.js +99 -44
  545. package/dist/components/ic-button2.js.map +1 -1
  546. package/dist/components/ic-card.js +54 -53
  547. package/dist/components/ic-card.js.map +1 -1
  548. package/dist/components/ic-checkbox-group.js +28 -28
  549. package/dist/components/ic-checkbox-group.js.map +1 -1
  550. package/dist/components/ic-checkbox.js +47 -34
  551. package/dist/components/ic-checkbox.js.map +1 -1
  552. package/dist/components/ic-chip.js +22 -19
  553. package/dist/components/ic-chip.js.map +1 -1
  554. package/dist/components/ic-classification-banner.js +1 -1
  555. package/dist/components/ic-data-entity.js +2 -2
  556. package/dist/components/ic-data-entity.js.map +1 -1
  557. package/dist/components/ic-data-row.js +39 -25
  558. package/dist/components/ic-data-row.js.map +1 -1
  559. package/dist/components/ic-dialog.d.ts +11 -0
  560. package/dist/components/ic-dialog.js +356 -0
  561. package/dist/components/ic-dialog.js.map +1 -0
  562. package/dist/components/ic-divider2.js +3 -3
  563. package/dist/components/ic-divider2.js.map +1 -1
  564. package/dist/components/ic-footer-link-group.js +20 -20
  565. package/dist/components/ic-footer-link-group.js.map +1 -1
  566. package/dist/components/ic-footer-link.js +29 -18
  567. package/dist/components/ic-footer-link.js.map +1 -1
  568. package/dist/components/ic-footer.js +25 -23
  569. package/dist/components/ic-footer.js.map +1 -1
  570. package/dist/components/ic-hero.js +30 -28
  571. package/dist/components/ic-hero.js.map +1 -1
  572. package/dist/components/ic-horizontal-scroll2.js +46 -27
  573. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  574. package/dist/components/ic-input-component-container2.js +11 -11
  575. package/dist/components/ic-input-component-container2.js.map +1 -1
  576. package/dist/components/ic-input-container2.js +1 -1
  577. package/dist/components/ic-input-label2.js +11 -11
  578. package/dist/components/ic-input-label2.js.map +1 -1
  579. package/dist/components/ic-input-validation2.js +9 -9
  580. package/dist/components/ic-input-validation2.js.map +1 -1
  581. package/dist/components/ic-link2.js +24 -25
  582. package/dist/components/ic-link2.js.map +1 -1
  583. package/dist/components/ic-loading-indicator2.js +34 -26
  584. package/dist/components/ic-loading-indicator2.js.map +1 -1
  585. package/dist/components/ic-menu-group.d.ts +11 -0
  586. package/dist/components/ic-menu-group.js +46 -0
  587. package/dist/components/ic-menu-group.js.map +1 -0
  588. package/dist/components/ic-menu-item.d.ts +11 -0
  589. package/dist/components/ic-menu-item.js +8 -0
  590. package/dist/components/ic-menu-item.js.map +1 -0
  591. package/dist/components/ic-menu-item2.js +169 -0
  592. package/dist/components/ic-menu-item2.js.map +1 -0
  593. package/dist/components/ic-menu2.js +326 -169
  594. package/dist/components/ic-menu2.js.map +1 -1
  595. package/dist/components/ic-navigation-button.js +23 -23
  596. package/dist/components/ic-navigation-button.js.map +1 -1
  597. package/dist/components/ic-navigation-group.js +89 -60
  598. package/dist/components/ic-navigation-group.js.map +1 -1
  599. package/dist/components/ic-navigation-item.js +60 -48
  600. package/dist/components/ic-navigation-item.js.map +1 -1
  601. package/dist/components/ic-navigation-menu2.js +30 -36
  602. package/dist/components/ic-navigation-menu2.js.map +1 -1
  603. package/dist/components/ic-page-header.js +30 -33
  604. package/dist/components/ic-page-header.js.map +1 -1
  605. package/dist/components/ic-pagination-item.d.ts +11 -0
  606. package/dist/components/ic-pagination-item.js +8 -0
  607. package/dist/components/ic-pagination-item.js.map +1 -0
  608. package/dist/components/ic-pagination-item2.js +81 -0
  609. package/dist/components/ic-pagination-item2.js.map +1 -0
  610. package/dist/components/ic-pagination.d.ts +11 -0
  611. package/dist/components/ic-pagination.js +288 -0
  612. package/dist/components/ic-pagination.js.map +1 -0
  613. package/dist/components/ic-popover-menu.d.ts +11 -0
  614. package/dist/components/ic-popover-menu.js +290 -0
  615. package/dist/components/ic-popover-menu.js.map +1 -0
  616. package/dist/components/ic-radio-group.js +48 -30
  617. package/dist/components/ic-radio-group.js.map +1 -1
  618. package/dist/components/ic-radio-option.js +44 -43
  619. package/dist/components/ic-radio-option.js.map +1 -1
  620. package/dist/components/ic-search-bar.js +202 -122
  621. package/dist/components/ic-search-bar.js.map +1 -1
  622. package/dist/components/ic-section-container2.js +1 -1
  623. package/dist/components/ic-select.js +379 -212
  624. package/dist/components/ic-select.js.map +1 -1
  625. package/dist/components/ic-side-navigation.js +123 -94
  626. package/dist/components/ic-side-navigation.js.map +1 -1
  627. package/dist/components/ic-skeleton.js +6 -6
  628. package/dist/components/ic-skeleton.js.map +1 -1
  629. package/dist/components/ic-status-tag.js +9 -9
  630. package/dist/components/ic-status-tag.js.map +1 -1
  631. package/dist/components/ic-step.js +18 -18
  632. package/dist/components/ic-step.js.map +1 -1
  633. package/dist/components/ic-stepper.js +21 -21
  634. package/dist/components/ic-stepper.js.map +1 -1
  635. package/dist/components/ic-switch.js +24 -23
  636. package/dist/components/ic-switch.js.map +1 -1
  637. package/dist/components/ic-tab-context.js +73 -36
  638. package/dist/components/ic-tab-context.js.map +1 -1
  639. package/dist/components/ic-tab-group.js +7 -6
  640. package/dist/components/ic-tab-group.js.map +1 -1
  641. package/dist/components/ic-tab-panel.js +18 -7
  642. package/dist/components/ic-tab-panel.js.map +1 -1
  643. package/dist/components/ic-tab.js +33 -8
  644. package/dist/components/ic-tab.js.map +1 -1
  645. package/dist/components/ic-text-field2.js +132 -97
  646. package/dist/components/ic-text-field2.js.map +1 -1
  647. package/dist/components/ic-theme.js +2 -2
  648. package/dist/components/ic-theme.js.map +1 -1
  649. package/dist/components/ic-toast-region.js +13 -13
  650. package/dist/components/ic-toast-region.js.map +1 -1
  651. package/dist/components/ic-toast.js +65 -61
  652. package/dist/components/ic-toast.js.map +1 -1
  653. package/dist/components/ic-tooltip2.js +1854 -49
  654. package/dist/components/ic-tooltip2.js.map +1 -1
  655. package/dist/components/ic-top-navigation.js +59 -54
  656. package/dist/components/ic-top-navigation.js.map +1 -1
  657. package/dist/components/ic-typography2.js +101 -6
  658. package/dist/components/ic-typography2.js.map +1 -1
  659. package/dist/components/index.d.ts +9 -55
  660. package/dist/components/index.js +1 -53
  661. package/dist/components/index.js.map +1 -1
  662. package/dist/components/types.js.map +1 -1
  663. package/dist/core/core.css +47 -3
  664. package/dist/core/core.esm.js +1 -1
  665. package/dist/core/core.esm.js.map +1 -1
  666. package/dist/core/index.esm.js.map +1 -1
  667. package/dist/core/p-0330cb21.entry.js +2 -0
  668. package/dist/core/p-0330cb21.entry.js.map +1 -0
  669. package/dist/core/p-03d1a4a1.entry.js +2 -0
  670. package/dist/core/p-03d1a4a1.entry.js.map +1 -0
  671. package/dist/core/p-041604fc.entry.js +2 -0
  672. package/dist/core/p-041604fc.entry.js.map +1 -0
  673. package/dist/core/{p-24240e11.js → p-06321d19.js} +2 -2
  674. package/dist/core/p-06321d19.js.map +1 -0
  675. package/dist/core/p-1959ec8d.entry.js +2 -0
  676. package/dist/core/p-1959ec8d.entry.js.map +1 -0
  677. package/dist/core/p-1b9b8355.entry.js +2 -0
  678. package/dist/core/p-1b9b8355.entry.js.map +1 -0
  679. package/dist/core/p-26d5fd0f.entry.js +2 -0
  680. package/dist/core/p-26d5fd0f.entry.js.map +1 -0
  681. package/dist/core/p-27d42378.entry.js +2 -0
  682. package/dist/core/p-27d42378.entry.js.map +1 -0
  683. package/dist/core/p-2ae7687a.entry.js +2 -0
  684. package/dist/core/p-2ae7687a.entry.js.map +1 -0
  685. package/dist/core/p-332690f0.entry.js +2 -0
  686. package/dist/core/p-332690f0.entry.js.map +1 -0
  687. package/dist/core/p-39adc795.entry.js +2 -0
  688. package/dist/core/p-39adc795.entry.js.map +1 -0
  689. package/dist/core/{p-ad2477d8.entry.js → p-3adb1167.entry.js} +2 -2
  690. package/dist/core/p-3adb1167.entry.js.map +1 -0
  691. package/dist/core/p-429e4d24.entry.js +2 -0
  692. package/dist/core/p-429e4d24.entry.js.map +1 -0
  693. package/dist/core/{p-8ffa00c9.entry.js → p-441e7d98.entry.js} +2 -2
  694. package/dist/core/p-441e7d98.entry.js.map +1 -0
  695. package/dist/core/p-44512ebe.js.map +1 -1
  696. package/dist/core/p-48301eff.entry.js +2 -0
  697. package/dist/core/p-48301eff.entry.js.map +1 -0
  698. package/dist/core/p-5144e840.entry.js +2 -0
  699. package/dist/core/p-5144e840.entry.js.map +1 -0
  700. package/dist/core/p-5c846d0a.entry.js +2 -0
  701. package/dist/core/p-5c846d0a.entry.js.map +1 -0
  702. package/dist/core/p-5c9c940f.entry.js +2 -0
  703. package/dist/core/p-5c9c940f.entry.js.map +1 -0
  704. package/dist/core/p-5dd0b02e.js +2 -0
  705. package/dist/core/p-5dd0b02e.js.map +1 -0
  706. package/dist/core/{p-35a03442.entry.js → p-65750560.entry.js} +2 -2
  707. package/dist/core/p-65750560.entry.js.map +1 -0
  708. package/dist/core/p-6840589f.entry.js +2 -0
  709. package/dist/core/p-6840589f.entry.js.map +1 -0
  710. package/dist/core/p-69920d86.js +3 -0
  711. package/dist/core/p-69920d86.js.map +1 -0
  712. package/dist/core/p-6bad30aa.entry.js +2 -0
  713. package/dist/core/p-6bad30aa.entry.js.map +1 -0
  714. package/dist/core/p-6f57b13c.js.map +1 -1
  715. package/dist/core/p-7536dd31.entry.js +2 -0
  716. package/dist/core/p-7536dd31.entry.js.map +1 -0
  717. package/dist/core/p-7ae091ef.entry.js +2 -0
  718. package/dist/core/p-7ae091ef.entry.js.map +1 -0
  719. package/dist/core/p-7c0dcd00.js +2 -0
  720. package/dist/core/p-7c0dcd00.js.map +1 -0
  721. package/dist/core/p-7c46caf2.entry.js +2 -0
  722. package/dist/core/p-7c46caf2.entry.js.map +1 -0
  723. package/dist/core/{p-ba8d6c23.entry.js → p-83d5bcae.entry.js} +2 -2
  724. package/dist/core/p-83d5bcae.entry.js.map +1 -0
  725. package/dist/core/p-892d9d9f.entry.js +2 -0
  726. package/dist/core/p-892d9d9f.entry.js.map +1 -0
  727. package/dist/core/p-8991f656.entry.js +2 -0
  728. package/dist/core/p-8991f656.entry.js.map +1 -0
  729. package/dist/core/p-8c45ab61.entry.js +2 -0
  730. package/dist/core/p-8c45ab61.entry.js.map +1 -0
  731. package/dist/core/p-8c7f4343.js.map +1 -1
  732. package/dist/core/p-8ca80000.entry.js +2 -0
  733. package/dist/core/p-8ca80000.entry.js.map +1 -0
  734. package/dist/core/p-8d4f7027.js +2 -0
  735. package/dist/core/p-8d4f7027.js.map +1 -0
  736. package/dist/core/p-90d3a41b.entry.js +2 -0
  737. package/dist/core/p-90d3a41b.entry.js.map +1 -0
  738. package/dist/core/p-95992c98.entry.js +2 -0
  739. package/dist/core/p-95992c98.entry.js.map +1 -0
  740. package/dist/core/{p-41e239cb.entry.js → p-96b71172.entry.js} +2 -2
  741. package/dist/core/p-96b71172.entry.js.map +1 -0
  742. package/dist/core/{p-d2508752.entry.js → p-96bcd466.entry.js} +2 -2
  743. package/dist/core/p-96bcd466.entry.js.map +1 -0
  744. package/dist/core/p-9e551fe9.entry.js +2 -0
  745. package/dist/core/p-9e551fe9.entry.js.map +1 -0
  746. package/dist/core/{p-7fd50355.entry.js → p-a29fe0c6.entry.js} +2 -2
  747. package/dist/core/p-a29fe0c6.entry.js.map +1 -0
  748. package/dist/core/{p-c4a7c734.entry.js → p-a588886f.entry.js} +2 -2
  749. package/dist/core/p-a588886f.entry.js.map +1 -0
  750. package/dist/core/{p-284970bc.entry.js → p-a8b94619.entry.js} +2 -2
  751. package/dist/core/p-a8b94619.entry.js.map +1 -0
  752. package/dist/core/p-adceb0cf.entry.js +2 -0
  753. package/dist/core/p-adceb0cf.entry.js.map +1 -0
  754. package/dist/core/p-b698b8ad.entry.js +2 -0
  755. package/dist/core/p-b698b8ad.entry.js.map +1 -0
  756. package/dist/core/p-b6c538ea.entry.js +2 -0
  757. package/dist/core/p-b6c538ea.entry.js.map +1 -0
  758. package/dist/core/p-c012b867.entry.js +2 -0
  759. package/dist/core/p-c012b867.entry.js.map +1 -0
  760. package/dist/core/p-c5716cbc.entry.js +2 -0
  761. package/dist/core/p-c5716cbc.entry.js.map +1 -0
  762. package/dist/core/p-ca6d834e.entry.js +2 -0
  763. package/dist/core/p-ca6d834e.entry.js.map +1 -0
  764. package/dist/core/{p-7a9bc7f2.entry.js → p-cbbf4b05.entry.js} +2 -2
  765. package/dist/core/p-cbbf4b05.entry.js.map +1 -0
  766. package/dist/core/p-ce791694.entry.js +2 -0
  767. package/dist/core/p-ce791694.entry.js.map +1 -0
  768. package/dist/core/p-cef93d12.entry.js +2 -0
  769. package/dist/core/p-cef93d12.entry.js.map +1 -0
  770. package/dist/core/p-d2215b72.entry.js +2 -0
  771. package/dist/core/p-d2215b72.entry.js.map +1 -0
  772. package/dist/core/p-e0ee714a.entry.js +2 -0
  773. package/dist/core/p-e0ee714a.entry.js.map +1 -0
  774. package/dist/core/p-e6370b7e.entry.js +2 -0
  775. package/dist/core/p-e6370b7e.entry.js.map +1 -0
  776. package/dist/core/p-ee11e185.entry.js +2 -0
  777. package/dist/core/p-ee11e185.entry.js.map +1 -0
  778. package/dist/core/p-f24814b8.entry.js +2 -0
  779. package/dist/core/p-f24814b8.entry.js.map +1 -0
  780. package/dist/core/p-f665242d.entry.js +2 -0
  781. package/dist/core/p-f665242d.entry.js.map +1 -0
  782. package/dist/core/p-f7695299.entry.js +2 -0
  783. package/dist/core/p-f7695299.entry.js.map +1 -0
  784. package/dist/core/p-f923d11b.entry.js +2 -0
  785. package/dist/core/p-f923d11b.entry.js.map +1 -0
  786. package/dist/esm/OpenInNew-67a881e0.js +5 -0
  787. package/dist/esm/OpenInNew-67a881e0.js.map +1 -0
  788. package/dist/esm/chevron-icon-7927f709.js +8 -0
  789. package/dist/esm/chevron-icon-7927f709.js.map +1 -0
  790. package/dist/esm/core.js +7 -3
  791. package/dist/esm/core.js.map +1 -1
  792. package/dist/esm/{helpers-c332acf8.js → helpers-85903813.js} +26 -27
  793. package/dist/esm/helpers-85903813.js.map +1 -0
  794. package/dist/esm/ic-alert.entry.js +11 -11
  795. package/dist/esm/ic-alert.entry.js.map +1 -1
  796. package/dist/esm/ic-back-to-top.entry.js +5 -5
  797. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  798. package/dist/esm/ic-breadcrumb-group.entry.js +39 -33
  799. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  800. package/dist/esm/ic-breadcrumb.entry.js +14 -13
  801. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  802. package/dist/esm/ic-button_3.entry.js +163 -93
  803. package/dist/esm/ic-button_3.entry.js.map +1 -1
  804. package/dist/esm/ic-card.entry.js +46 -45
  805. package/dist/esm/ic-card.entry.js.map +1 -1
  806. package/dist/esm/ic-checkbox-group.entry.js +24 -23
  807. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  808. package/dist/esm/ic-checkbox.entry.js +41 -29
  809. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  810. package/dist/esm/ic-chip.entry.js +18 -15
  811. package/dist/esm/ic-chip.entry.js.map +1 -1
  812. package/dist/esm/ic-classification-banner.entry.js +1 -1
  813. package/dist/esm/ic-data-entity.entry.js +2 -2
  814. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  815. package/dist/esm/ic-data-row.entry.js +38 -24
  816. package/dist/esm/ic-data-row.entry.js.map +1 -1
  817. package/dist/esm/ic-dialog.entry.js +291 -0
  818. package/dist/esm/ic-dialog.entry.js.map +1 -0
  819. package/dist/esm/ic-divider.entry.js +3 -3
  820. package/dist/esm/ic-divider.entry.js.map +1 -1
  821. package/dist/esm/ic-footer-link-group.entry.js +18 -18
  822. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  823. package/dist/esm/ic-footer-link.entry.js +23 -17
  824. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  825. package/dist/esm/ic-footer.entry.js +23 -21
  826. package/dist/esm/ic-footer.entry.js.map +1 -1
  827. package/dist/esm/ic-hero.entry.js +23 -21
  828. package/dist/esm/ic-hero.entry.js.map +1 -1
  829. package/dist/esm/ic-horizontal-scroll.entry.js +45 -26
  830. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  831. package/dist/esm/ic-input-component-container_3.entry.js +299 -159
  832. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  833. package/dist/esm/ic-input-label_2.entry.js +11 -11
  834. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  835. package/dist/esm/ic-link.entry.js +22 -23
  836. package/dist/esm/ic-link.entry.js.map +1 -1
  837. package/dist/esm/ic-menu-group.entry.js +20 -0
  838. package/dist/esm/ic-menu-group.entry.js.map +1 -0
  839. package/dist/esm/ic-menu-item.entry.js +118 -0
  840. package/dist/esm/ic-menu-item.entry.js.map +1 -0
  841. package/dist/esm/ic-navigation-button.entry.js +18 -18
  842. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  843. package/dist/esm/ic-navigation-group.entry.js +87 -58
  844. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  845. package/dist/esm/ic-navigation-item.entry.js +49 -42
  846. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  847. package/dist/esm/ic-navigation-menu.entry.js +28 -34
  848. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  849. package/dist/esm/ic-page-header.entry.js +24 -27
  850. package/dist/esm/ic-page-header.entry.js.map +1 -1
  851. package/dist/esm/ic-pagination-item.entry.js +52 -0
  852. package/dist/esm/ic-pagination-item.entry.js.map +1 -0
  853. package/dist/esm/ic-pagination.entry.js +223 -0
  854. package/dist/esm/ic-pagination.entry.js.map +1 -0
  855. package/dist/esm/ic-popover-menu.entry.js +233 -0
  856. package/dist/esm/ic-popover-menu.entry.js.map +1 -0
  857. package/dist/esm/ic-radio-group.entry.js +43 -25
  858. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  859. package/dist/esm/ic-radio-option.entry.js +39 -38
  860. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  861. package/dist/esm/ic-search-bar.entry.js +178 -102
  862. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  863. package/dist/esm/ic-section-container.entry.js +1 -1
  864. package/dist/esm/ic-select.entry.js +349 -190
  865. package/dist/esm/ic-select.entry.js.map +1 -1
  866. package/dist/esm/ic-side-navigation.entry.js +116 -87
  867. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  868. package/dist/esm/ic-skeleton.entry.js +4 -4
  869. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  870. package/dist/esm/ic-status-tag.entry.js +6 -6
  871. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  872. package/dist/esm/ic-step.entry.js +10 -10
  873. package/dist/esm/ic-step.entry.js.map +1 -1
  874. package/dist/esm/ic-stepper.entry.js +15 -15
  875. package/dist/esm/ic-stepper.entry.js.map +1 -1
  876. package/dist/esm/ic-switch.entry.js +20 -19
  877. package/dist/esm/ic-switch.entry.js.map +1 -1
  878. package/dist/esm/ic-tab-context.entry.js +68 -32
  879. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  880. package/dist/esm/ic-tab-group.entry.js +5 -4
  881. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  882. package/dist/esm/ic-tab-panel.entry.js +15 -4
  883. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  884. package/dist/esm/ic-tab.entry.js +32 -7
  885. package/dist/esm/ic-tab.entry.js.map +1 -1
  886. package/dist/esm/ic-text-field.entry.js +102 -72
  887. package/dist/esm/ic-text-field.entry.js.map +1 -1
  888. package/dist/esm/ic-theme.entry.js +2 -2
  889. package/dist/esm/ic-theme.entry.js.map +1 -1
  890. package/dist/esm/ic-toast-region.entry.js +13 -13
  891. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  892. package/dist/esm/ic-toast.entry.js +60 -56
  893. package/dist/esm/ic-toast.entry.js.map +1 -1
  894. package/dist/esm/ic-top-navigation.entry.js +49 -45
  895. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  896. package/dist/esm/ic-typography.entry.js +97 -5
  897. package/dist/esm/ic-typography.entry.js.map +1 -1
  898. package/dist/esm/{index-90721b3c.js → index-fd30b77e.js} +255 -44
  899. package/dist/esm/index-fd30b77e.js.map +1 -0
  900. package/dist/esm/loader.js +4 -3
  901. package/dist/esm/loader.js.map +1 -1
  902. package/dist/esm/polyfills/css-shim.js +1 -1
  903. package/dist/{components/popper.js → esm/popper-15e448b4.js} +10 -17
  904. package/dist/esm/popper-15e448b4.js.map +1 -0
  905. package/dist/esm/types-dd515332.js.map +1 -1
  906. package/dist/types/components/ic-alert/ic-alert.d.ts +12 -12
  907. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +8 -8
  908. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +6 -6
  909. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +1 -1
  910. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +16 -9
  911. package/dist/types/components/ic-button/ic-button.d.ts +62 -32
  912. package/dist/types/components/ic-button/ic-button.types.d.ts +4 -4
  913. package/dist/types/components/ic-card/ic-card.d.ts +32 -32
  914. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +29 -23
  915. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +14 -15
  916. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.types.d.ts +5 -0
  917. package/dist/types/components/ic-chip/ic-chip.d.ts +16 -15
  918. package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -2
  919. package/dist/types/components/ic-classification-banner/ic-classification-banner.types.d.ts +1 -1
  920. package/dist/types/components/ic-data-row/ic-data-row.d.ts +17 -11
  921. package/dist/types/components/ic-dialog/ic-dialog.d.ts +123 -0
  922. package/dist/types/components/ic-footer/ic-footer.d.ts +20 -20
  923. package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
  924. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +26 -6
  925. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +8 -8
  926. package/dist/types/components/ic-hero/ic-hero.d.ts +24 -24
  927. package/dist/types/components/ic-hero/ic-hero.types.d.ts +1 -1
  928. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +15 -14
  929. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +15 -15
  930. package/dist/types/components/ic-input-label/ic-input-label.d.ts +14 -14
  931. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +8 -8
  932. package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +1 -1
  933. package/dist/types/components/ic-link/ic-link.d.ts +9 -9
  934. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +38 -36
  935. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -2
  936. package/dist/types/components/ic-menu/ic-menu.d.ts +89 -50
  937. package/dist/types/components/ic-menu-group/ic-menu-group.d.ts +8 -0
  938. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +74 -0
  939. package/dist/types/components/ic-menu-item/ic-menu-item.types.d.ts +1 -0
  940. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +21 -21
  941. package/dist/types/components/ic-navigation-button/ic-navigation-button.types.d.ts +1 -1
  942. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +21 -18
  943. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +47 -27
  944. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +14 -14
  945. package/dist/types/components/ic-page-header/ic-page-header.d.ts +19 -19
  946. package/dist/types/components/ic-pagination/ic-pagination.d.ts +82 -0
  947. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +4 -0
  948. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +47 -0
  949. package/dist/types/components/ic-pagination-item/ic-pagination-item.types.d.ts +1 -0
  950. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +59 -0
  951. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +22 -23
  952. package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +7 -0
  953. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +32 -29
  954. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +120 -87
  955. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +2 -1
  956. package/dist/types/components/ic-select/ic-select.d.ts +116 -78
  957. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +30 -24
  958. package/dist/types/components/ic-side-navigation/{ic-side-navigation-test-examples.d.ts → test/basic/ic-side-navigation-test-examples.d.ts} +1 -0
  959. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +8 -8
  960. package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
  961. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +8 -8
  962. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +2 -2
  963. package/dist/types/components/ic-step/ic-step.d.ts +24 -24
  964. package/dist/types/components/ic-step/ic-step.types.d.ts +3 -3
  965. package/dist/types/components/ic-stepper/ic-stepper.d.ts +17 -17
  966. package/dist/types/components/ic-stepper/ic-stepper.types.d.ts +1 -1
  967. package/dist/types/components/ic-switch/ic-switch.d.ts +23 -23
  968. package/dist/types/components/ic-tab/ic-tab.d.ts +25 -8
  969. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +29 -20
  970. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +6 -5
  971. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +27 -7
  972. package/dist/types/components/ic-text-field/ic-text-field.d.ts +110 -91
  973. package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +3 -3
  974. package/dist/types/components/ic-theme/ic-theme.d.ts +1 -1
  975. package/dist/types/components/ic-toast/ic-toast.d.ts +26 -26
  976. package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -1
  977. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +3 -3
  978. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +22 -15
  979. package/dist/types/components/ic-tooltip/ic-tooltip.types.d.ts +1 -1
  980. package/dist/types/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.d.ts +1 -0
  981. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +36 -32
  982. package/dist/types/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.d.ts +1 -0
  983. package/dist/types/components/ic-typography/ic-typography.d.ts +31 -4
  984. package/dist/types/components/ic-typography/test/a11y/ic-typography.test.a11y.d.ts +1 -0
  985. package/dist/types/components.d.ts +826 -29
  986. package/dist/types/stencil-public-runtime.d.ts +74 -15
  987. package/dist/types/testspec.setup.d.ts +11 -0
  988. package/dist/types/utils/helpers.d.ts +1 -0
  989. package/dist/types/utils/types.d.ts +25 -22
  990. package/hydrate/index.d.ts +17 -16
  991. package/hydrate/index.js +3822 -1955
  992. package/loader/index.d.ts +9 -0
  993. package/package.json +7 -5
  994. package/dist/cjs/chevron-icon-2645d6b0.js +0 -10
  995. package/dist/cjs/chevron-icon-2645d6b0.js.map +0 -1
  996. package/dist/cjs/helpers-6eb26e7a.js.map +0 -1
  997. package/dist/cjs/index-f79a4e53.js.map +0 -1
  998. package/dist/cjs/popper-11d5f714.js.map +0 -1
  999. package/dist/collection/components/ic-alert/ic-alert.test.a11y.js.map +0 -1
  1000. package/dist/collection/components/ic-back-to-top/ic-back-to-top.test.a11y.js.map +0 -1
  1001. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js.map +0 -1
  1002. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js.map +0 -1
  1003. package/dist/collection/components/ic-button/ic-button.test.a11y.js.map +0 -1
  1004. package/dist/collection/components/ic-card/ic-card.test.a11y.js.map +0 -1
  1005. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.test.a11y.js.map +0 -1
  1006. package/dist/collection/components/ic-chip/ic-chip.test.a11y.js.map +0 -1
  1007. package/dist/collection/components/ic-classification-banner/ic-classification-banner.test.a11y.js.map +0 -1
  1008. package/dist/collection/components/ic-data-entity/ic-data-entity.test.a11y.js.map +0 -1
  1009. package/dist/collection/components/ic-data-row/ic-data-row.test.a11y.js.map +0 -1
  1010. package/dist/collection/components/ic-footer/ic-footer.test.a11y.js.map +0 -1
  1011. package/dist/collection/components/ic-footer-link/ic-footer-link.test.a11y.js.map +0 -1
  1012. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.test.a11y.js.map +0 -1
  1013. package/dist/collection/components/ic-hero/ic-hero.test.a11y.js.map +0 -1
  1014. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.js.map +0 -1
  1015. package/dist/collection/components/ic-link/ic-link.test.a11y.js.map +0 -1
  1016. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.test.a11y.js.map +0 -1
  1017. package/dist/collection/components/ic-navigation-group/ic-navigation-group.test.a11y.js.map +0 -1
  1018. package/dist/collection/components/ic-navigation-item/ic-navigation-item.test.a11y.js.map +0 -1
  1019. package/dist/collection/components/ic-page-header/ic-page-header.test.a11y.js.map +0 -1
  1020. package/dist/collection/components/ic-radio-group/ic-radio-group.test.a11y.js.map +0 -1
  1021. package/dist/collection/components/ic-search-bar/ic-search-bar.test.a11y.js.map +0 -1
  1022. package/dist/collection/components/ic-select/ic-select.test.a11y.js.map +0 -1
  1023. package/dist/collection/components/ic-side-navigation/ic-side-navigation-test-examples.js.map +0 -1
  1024. package/dist/collection/components/ic-side-navigation/ic-side-navigation.test.a11y.js.map +0 -1
  1025. package/dist/collection/components/ic-skeleton/ic-skeleton.test.a11y.js.map +0 -1
  1026. package/dist/collection/components/ic-status-tag/ic-status-tag.test.a11y.js.map +0 -1
  1027. package/dist/collection/components/ic-stepper/ic-stepper-test-examples.js.map +0 -1
  1028. package/dist/collection/components/ic-stepper/ic-stepper.test.a11y.js.map +0 -1
  1029. package/dist/collection/components/ic-switch/ic-switch.test.a11y.js.map +0 -1
  1030. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js.map +0 -1
  1031. package/dist/collection/components/ic-text-field/ic-text-field.test.a11y.js.map +0 -1
  1032. package/dist/collection/components/ic-toast/ic-toast.test.a11y.js.map +0 -1
  1033. package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js.map +0 -1
  1034. package/dist/collection/components/ic-top-navigation/ic-top-navigation.test.a11y.js.map +0 -1
  1035. package/dist/collection/components/ic-typography/ic-typography.test.a11y.js.map +0 -1
  1036. package/dist/components/popper.js.map +0 -1
  1037. package/dist/core/p-1724000c.js +0 -2
  1038. package/dist/core/p-1724000c.js.map +0 -1
  1039. package/dist/core/p-17f91c94.entry.js +0 -2
  1040. package/dist/core/p-17f91c94.entry.js.map +0 -1
  1041. package/dist/core/p-18ae4b6d.entry.js +0 -2
  1042. package/dist/core/p-18ae4b6d.entry.js.map +0 -1
  1043. package/dist/core/p-18bf3cb0.entry.js +0 -2
  1044. package/dist/core/p-18bf3cb0.entry.js.map +0 -1
  1045. package/dist/core/p-24240e11.js.map +0 -1
  1046. package/dist/core/p-2642f880.entry.js +0 -2
  1047. package/dist/core/p-2642f880.entry.js.map +0 -1
  1048. package/dist/core/p-284970bc.entry.js.map +0 -1
  1049. package/dist/core/p-31a595c1.entry.js +0 -2
  1050. package/dist/core/p-31a595c1.entry.js.map +0 -1
  1051. package/dist/core/p-35a03442.entry.js.map +0 -1
  1052. package/dist/core/p-360adc51.entry.js +0 -2
  1053. package/dist/core/p-360adc51.entry.js.map +0 -1
  1054. package/dist/core/p-3dda76db.entry.js +0 -2
  1055. package/dist/core/p-3dda76db.entry.js.map +0 -1
  1056. package/dist/core/p-41e239cb.entry.js.map +0 -1
  1057. package/dist/core/p-44c9612c.entry.js +0 -2
  1058. package/dist/core/p-44c9612c.entry.js.map +0 -1
  1059. package/dist/core/p-521be4e2.entry.js +0 -2
  1060. package/dist/core/p-521be4e2.entry.js.map +0 -1
  1061. package/dist/core/p-5450cebf.js +0 -3
  1062. package/dist/core/p-5450cebf.js.map +0 -1
  1063. package/dist/core/p-55512a85.entry.js +0 -2
  1064. package/dist/core/p-55512a85.entry.js.map +0 -1
  1065. package/dist/core/p-560c06af.entry.js +0 -2
  1066. package/dist/core/p-560c06af.entry.js.map +0 -1
  1067. package/dist/core/p-57f2c81c.entry.js +0 -2
  1068. package/dist/core/p-57f2c81c.entry.js.map +0 -1
  1069. package/dist/core/p-5b083ce5.entry.js +0 -2
  1070. package/dist/core/p-5b083ce5.entry.js.map +0 -1
  1071. package/dist/core/p-62b3516e.entry.js +0 -2
  1072. package/dist/core/p-62b3516e.entry.js.map +0 -1
  1073. package/dist/core/p-691ea0f2.entry.js +0 -2
  1074. package/dist/core/p-691ea0f2.entry.js.map +0 -1
  1075. package/dist/core/p-7818d958.entry.js +0 -2
  1076. package/dist/core/p-7818d958.entry.js.map +0 -1
  1077. package/dist/core/p-7a0bf893.entry.js +0 -2
  1078. package/dist/core/p-7a0bf893.entry.js.map +0 -1
  1079. package/dist/core/p-7a9bc7f2.entry.js.map +0 -1
  1080. package/dist/core/p-7fd50355.entry.js.map +0 -1
  1081. package/dist/core/p-897e967a.entry.js +0 -2
  1082. package/dist/core/p-897e967a.entry.js.map +0 -1
  1083. package/dist/core/p-8f1176c6.entry.js +0 -2
  1084. package/dist/core/p-8f1176c6.entry.js.map +0 -1
  1085. package/dist/core/p-8ffa00c9.entry.js.map +0 -1
  1086. package/dist/core/p-91a8db51.entry.js +0 -2
  1087. package/dist/core/p-91a8db51.entry.js.map +0 -1
  1088. package/dist/core/p-a09d853e.entry.js +0 -2
  1089. package/dist/core/p-a09d853e.entry.js.map +0 -1
  1090. package/dist/core/p-a667e329.entry.js +0 -2
  1091. package/dist/core/p-a667e329.entry.js.map +0 -1
  1092. package/dist/core/p-ad2477d8.entry.js.map +0 -1
  1093. package/dist/core/p-b35ae170.entry.js +0 -2
  1094. package/dist/core/p-b35ae170.entry.js.map +0 -1
  1095. package/dist/core/p-b40bd77c.entry.js +0 -2
  1096. package/dist/core/p-b40bd77c.entry.js.map +0 -1
  1097. package/dist/core/p-b4234318.entry.js +0 -2
  1098. package/dist/core/p-b4234318.entry.js.map +0 -1
  1099. package/dist/core/p-ba8d6c23.entry.js.map +0 -1
  1100. package/dist/core/p-bd819f68.entry.js +0 -2
  1101. package/dist/core/p-bd819f68.entry.js.map +0 -1
  1102. package/dist/core/p-c4a7c734.entry.js.map +0 -1
  1103. package/dist/core/p-c72e4b75.entry.js +0 -2
  1104. package/dist/core/p-c72e4b75.entry.js.map +0 -1
  1105. package/dist/core/p-c7b86643.entry.js +0 -2
  1106. package/dist/core/p-c7b86643.entry.js.map +0 -1
  1107. package/dist/core/p-c8f07be6.entry.js +0 -2
  1108. package/dist/core/p-c8f07be6.entry.js.map +0 -1
  1109. package/dist/core/p-c9068822.entry.js +0 -2
  1110. package/dist/core/p-c9068822.entry.js.map +0 -1
  1111. package/dist/core/p-cccbf2bf.entry.js +0 -2
  1112. package/dist/core/p-cccbf2bf.entry.js.map +0 -1
  1113. package/dist/core/p-d2508752.entry.js.map +0 -1
  1114. package/dist/core/p-d7bbace4.entry.js +0 -2
  1115. package/dist/core/p-d7bbace4.entry.js.map +0 -1
  1116. package/dist/core/p-d86b0d0e.entry.js +0 -2
  1117. package/dist/core/p-d86b0d0e.entry.js.map +0 -1
  1118. package/dist/core/p-e0d88c31.entry.js +0 -2
  1119. package/dist/core/p-e0d88c31.entry.js.map +0 -1
  1120. package/dist/core/p-e9202767.entry.js +0 -2
  1121. package/dist/core/p-e9202767.entry.js.map +0 -1
  1122. package/dist/core/p-eba373bf.entry.js +0 -2
  1123. package/dist/core/p-eba373bf.entry.js.map +0 -1
  1124. package/dist/core/p-ec26fc38.js +0 -2
  1125. package/dist/core/p-ec26fc38.js.map +0 -1
  1126. package/dist/core/p-ed6cf9b9.entry.js +0 -2
  1127. package/dist/core/p-ed6cf9b9.entry.js.map +0 -1
  1128. package/dist/esm/chevron-icon-98c98242.js +0 -8
  1129. package/dist/esm/chevron-icon-98c98242.js.map +0 -1
  1130. package/dist/esm/helpers-c332acf8.js.map +0 -1
  1131. package/dist/esm/index-90721b3c.js.map +0 -1
  1132. package/dist/esm/popper-f860750c.js +0 -1801
  1133. package/dist/esm/popper-f860750c.js.map +0 -1
  1134. /package/dist/collection/{components/ic-link/assets → assets}/OpenInNew.svg +0 -0
  1135. /package/dist/collection/components/ic-back-to-top/{ic-back-to-top.test.a11y.js → test/a11y/ic-back-to-top.test.a11y.js} +0 -0
  1136. /package/dist/collection/components/ic-breadcrumb-group/{ic-breadcrumb-group-test-examples.js → test/basic/ic-breadcrumb-group-test-examples.js} +0 -0
  1137. /package/dist/collection/components/ic-stepper/{ic-stepper-test-examples.js → test/basic/ic-stepper-test-examples.js} +0 -0
  1138. /package/dist/collection/components/ic-tab-context/{ic-tab-context.test.a11y.js → test/a11y/ic-tab-context.test.a11y.js} +0 -0
  1139. /package/dist/collection/components/ic-text-field/{ic-text-field.test.a11y.js → test/a11y/ic-text-field.test.a11y.js} +0 -0
  1140. /package/dist/types/components/ic-alert/{ic-alert.test.a11y.d.ts → test/a11y/ic-alert.test.a11y.d.ts} +0 -0
  1141. /package/dist/types/components/ic-back-to-top/{ic-back-to-top.test.a11y.d.ts → test/a11y/ic-back-to-top.test.a11y.d.ts} +0 -0
  1142. /package/dist/types/components/ic-breadcrumb-group/{ic-breadcrumb-group.test.a11y.d.ts → test/a11y/ic-breadcrumb-group.test.a11y.d.ts} +0 -0
  1143. /package/dist/types/components/ic-breadcrumb-group/{ic-breadcrumb-group-test-examples.d.ts → test/basic/ic-breadcrumb-group-test-examples.d.ts} +0 -0
  1144. /package/dist/types/components/ic-button/{ic-button.test.a11y.d.ts → test/a11y/ic-button.test.a11y.d.ts} +0 -0
  1145. /package/dist/types/components/ic-card/{ic-card.test.a11y.d.ts → test/a11y/ic-card.test.a11y.d.ts} +0 -0
  1146. /package/dist/types/components/ic-checkbox-group/{ic-checkbox-group.test.a11y.d.ts → test/a11y/ic-checkbox-group.test.a11y.d.ts} +0 -0
  1147. /package/dist/types/components/ic-chip/{ic-chip.test.a11y.d.ts → test/a11y/ic-chip.test.a11y.d.ts} +0 -0
  1148. /package/dist/types/components/ic-classification-banner/{ic-classification-banner.test.a11y.d.ts → test/a11y/ic-classification-banner.test.a11y.d.ts} +0 -0
  1149. /package/dist/types/components/ic-data-entity/{ic-data-entity.test.a11y.d.ts → test/a11y/ic-data-entity.test.a11y.d.ts} +0 -0
  1150. /package/dist/types/components/ic-data-row/{ic-data-row.test.a11y.d.ts → test/a11y/ic-data-row.test.a11y.d.ts} +0 -0
  1151. /package/dist/types/components/{ic-footer-link-group/ic-footer-link-group.test.a11y.d.ts → ic-dialog/test/a11y/ic-dialog.test.a11y.d.ts} +0 -0
  1152. /package/dist/types/components/{ic-hero/ic-hero.test.a11y.d.ts → ic-footer/test/a11y/ic-footer.test.a11y.d.ts} +0 -0
  1153. /package/dist/types/components/{ic-footer/ic-footer.test.a11y.d.ts → ic-footer-link/test/a11y/ic-footer-link.test.a11y.d.ts} +0 -0
  1154. /package/dist/types/components/{ic-footer-link/ic-footer-link.test.a11y.d.ts → ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.d.ts} +0 -0
  1155. /package/dist/types/components/{ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.d.ts → ic-hero/test/a11y/ic-hero.test.a11y.d.ts} +0 -0
  1156. /package/dist/types/components/{ic-link/ic-link.test.a11y.d.ts → ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.d.ts} +0 -0
  1157. /package/dist/types/components/{ic-loading-indicator/ic-loading-indicator.test.a11y.d.ts → ic-link/test/a11y/ic-link.test.a11y.d.ts} +0 -0
  1158. /package/dist/types/components/{ic-navigation-group/ic-navigation-group.test.a11y.d.ts → ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.d.ts} +0 -0
  1159. /package/dist/types/components/{ic-navigation-item/ic-navigation-item.test.a11y.d.ts → ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.d.ts} +0 -0
  1160. /package/dist/types/components/{ic-page-header/ic-page-header.test.a11y.d.ts → ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.d.ts} +0 -0
  1161. /package/dist/types/components/{ic-radio-group/ic-radio-group.test.a11y.d.ts → ic-page-header/test/a11y/ic-page-header.test.a11y.d.ts} +0 -0
  1162. /package/dist/types/components/{ic-search-bar/ic-search-bar.test.a11y.d.ts → ic-pagination/test/a11y/ic-pagination.test.a11y.d.ts} +0 -0
  1163. /package/dist/types/components/{ic-select/ic-select.test.a11y.d.ts → ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.d.ts} +0 -0
  1164. /package/dist/types/components/{ic-side-navigation/ic-side-navigation.test.a11y.d.ts → ic-radio-group/test/a11y/ic-radio-group.test.a11y.d.ts} +0 -0
  1165. /package/dist/types/components/{ic-skeleton/ic-skeleton.test.a11y.d.ts → ic-search-bar/test/a11y/ic-search-bar.test.a11y.d.ts} +0 -0
  1166. /package/dist/types/components/{ic-status-tag/ic-status-tag.test.a11y.d.ts → ic-select/test/a11y/ic-select.test.a11y.d.ts} +0 -0
  1167. /package/dist/types/components/{ic-stepper/ic-stepper.test.a11y.d.ts → ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.d.ts} +0 -0
  1168. /package/dist/types/components/{ic-switch/ic-switch.test.a11y.d.ts → ic-skeleton/test/a11y/ic-skeleton.test.a11y.d.ts} +0 -0
  1169. /package/dist/types/components/{ic-tab-context/ic-tab-context.test.a11y.d.ts → ic-status-tag/test/a11y/ic-status-tag.test.a11y.d.ts} +0 -0
  1170. /package/dist/types/components/{ic-text-field/ic-text-field.test.a11y.d.ts → ic-stepper/test/a11y/ic-stepper.test.a11y.d.ts} +0 -0
  1171. /package/dist/types/components/ic-stepper/{ic-stepper-test-examples.d.ts → test/basic/ic-stepper-test-examples.d.ts} +0 -0
  1172. /package/dist/types/components/{ic-toast/ic-toast.test.a11y.d.ts → ic-switch/test/a11y/ic-switch.test.a11y.d.ts} +0 -0
  1173. /package/dist/types/components/{ic-tooltip/ic-tooltip.test.a11y.d.ts → ic-tab-context/test/a11y/ic-tab-context.test.a11y.d.ts} +0 -0
  1174. /package/dist/types/components/{ic-top-navigation/ic-top-navigation.test.a11y.d.ts → ic-text-field/test/a11y/ic-text-field.test.a11y.d.ts} +0 -0
  1175. /package/dist/types/components/{ic-typography/ic-typography.test.a11y.d.ts → ic-toast/test/a11y/ic-toast.test.a11y.d.ts} +0 -0
@@ -0,0 +1,1768 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ beforeAll(() => {
3
+ jest.spyOn(console, "warn").mockImplementation(jest.fn());
4
+ });
5
+ const options = `[
6
+ { label: 'Test label 1', value: 'Test value 1' },
7
+ { label: 'Test label 2', value: 'Test value 2' },
8
+ { label: 'Test label 3', value: 'Test value 3' },
9
+ ]`;
10
+ const largeOptions = `[
11
+ { label: 'Test label 1', value: 'Test value 1' },
12
+ { label: 'Test label 2', value: 'Test value 2' },
13
+ { label: 'Test label 3', value: 'Test value 3' },
14
+ { label: 'Test label 4', value: 'Test value 4' },
15
+ { label: 'Test label 5', value: 'Test value 5' },
16
+ { label: 'Test label 6', value: 'Test value 6' },
17
+ { label: 'Test label 7', value: 'Test value 7' },
18
+ { label: 'Test label 8', value: 'Test value 8' },
19
+ { label: 'Test label 9', value: 'Test value 9' },
20
+ { label: 'Test label 10', value: 'Test value 10' },
21
+ ]`;
22
+ const searchableOptions = `[
23
+ { label: "Cappuccino", value: "Cap" },
24
+ { label: "Latte", value: "Lat" },
25
+ { label: "Americano", value: "Ame" },
26
+ { label: "Filter", value: "Fil" },
27
+ { label: "Flat white", value: "Fla" },
28
+ { label: "Mocha", value: "Moc" },
29
+ { label: "Macchiato", value: "Mac" },
30
+ ]`;
31
+ const getTestSelect = (options) => `<ic-select label="IC Select Test"></ic-select>
32
+ <script>
33
+ var select = document.querySelector('ic-select');
34
+ select.options = ${options};
35
+ select.addEventListener('icChange', function (event) {
36
+ option = event.detail.value;
37
+ select.value = option;
38
+ });
39
+ </script>`;
40
+ const getTestSelectFormReset = (options) => `<form><ic-select label="IC Select Test"></ic-select><button type="reset" id="resetButton">Reset</button></form>
41
+ <script>
42
+ var select = document.querySelector('ic-select');
43
+ select.options = ${options};
44
+ select.addEventListener('icChange', function (event) {
45
+ option = event.detail.value;
46
+ select.value = option;
47
+ });
48
+ </script>`;
49
+ const getTestSelectSearchableFormReset = (options) => `<form><ic-select label="IC Select Test" searchable></ic-select><button type="reset" id="resetButton">Reset</button></form>
50
+ <script>
51
+ var select = document.querySelector('ic-select');
52
+ select.options = ${options};
53
+ select.value = 'Test value 1';
54
+ select.addEventListener('icChange', function (event) {
55
+ option = event.detail.value;
56
+ select.value = option;
57
+ });
58
+ </script>`;
59
+ const getTestSearchableSelect = (options) => `<ic-select label="IC Select Test" searchable></ic-select><button>Button</button>
60
+ <script>
61
+ var select = document.querySelector('ic-select');
62
+ select.options = ${options};
63
+ </script>`;
64
+ const getTestSearchableSelectAsync = () => `<ic-select label="IC Select Test" searchable disable-filter="true" value="Test value"></ic-select>
65
+ <script>
66
+ var select = document.querySelector('ic-select');
67
+ select.options = [];
68
+ window.setTimeout(() => {
69
+ select.options = []
70
+ }, 800)
71
+ </script>`;
72
+ const getTestSelectAsync = (firstDataset, secondDataset) => `<ic-select label="IC Select Test" value="Test value"></ic-select>
73
+ <script>
74
+ var select = document.querySelector('ic-select');
75
+ select.options = ${firstDataset};
76
+ window.setTimeout(() => {
77
+ select.options = ${secondDataset}
78
+ }, 1500)
79
+ </script>`;
80
+ const getMenuVisibility = async (page) => {
81
+ return await page.evaluate(() => {
82
+ const menu = document
83
+ .querySelector("ic-select")
84
+ .shadowRoot.querySelector("ic-menu #ic-select-input-0-menu");
85
+ return window.getComputedStyle(menu).visibility;
86
+ });
87
+ };
88
+ const focusAndTypeIntoInput = async (value, page) => {
89
+ await page.$eval("ic-select", (el) => {
90
+ const input = el.shadowRoot.querySelector("input");
91
+ input.focus();
92
+ });
93
+ value.split("").forEach(async (char) => {
94
+ await page.keyboard.press(char);
95
+ });
96
+ };
97
+ describe("ic-select", () => {
98
+ describe("custom", () => {
99
+ it("should render", async () => {
100
+ const page = await newE2EPage();
101
+ await page.setContent(getTestSelect(options));
102
+ await page.waitForChanges();
103
+ const select = await page.find("ic-select");
104
+ expect(select).not.toBeNull();
105
+ });
106
+ it("should render when no options are provided", async () => {
107
+ const page = await newE2EPage();
108
+ await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
109
+ await page.waitForChanges();
110
+ const select = await page.find("ic-select");
111
+ expect(select).not.toBeNull();
112
+ });
113
+ it("should open, set focus on menu and set aria-expanded to 'true' when input clicked", async () => {
114
+ const page = await newE2EPage();
115
+ await page.setContent(getTestSelect(options));
116
+ await page.waitForChanges();
117
+ expect(await getMenuVisibility(page)).toBe("hidden");
118
+ const select = await page.find("ic-select >>> #ic-select-input-0");
119
+ await select.click();
120
+ await page.waitForChanges();
121
+ expect(await getMenuVisibility(page)).toBe("visible");
122
+ expect(select.getAttribute("aria-expanded")).toBeTruthy();
123
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
124
+ expect(activeElId).toBe("ic-select-input-0-menu");
125
+ });
126
+ it("should render options correctly", async () => {
127
+ const page = await newE2EPage();
128
+ await page.setContent(getTestSelect(options));
129
+ await page.waitForChanges();
130
+ const select = await page.find("ic-select >>> #ic-select-input-0");
131
+ await select.click();
132
+ await page.waitForChanges();
133
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
134
+ const menuOptions = await menu.findAll("li");
135
+ expect(menuOptions).toHaveLength(3);
136
+ expect(menuOptions[0]).toEqualText("Test label 1");
137
+ expect(menuOptions[1]).toEqualText("Test label 2");
138
+ expect(menuOptions[2]).toEqualText("Test label 3");
139
+ });
140
+ it("should call icChange when the selected option is changed", async () => {
141
+ const page = await newE2EPage();
142
+ await page.setContent(getTestSelect(options));
143
+ await page.waitForChanges();
144
+ const icChange = await page.spyOnEvent("icChange");
145
+ const select = await page.find("ic-select >>> #ic-select-input-0");
146
+ await select.press("ArrowDown");
147
+ await select.press("Enter");
148
+ await page.waitForChanges();
149
+ expect(icChange).toHaveReceivedEventDetail({
150
+ value: "Test value 1",
151
+ });
152
+ });
153
+ describe("when no option is selected", () => {
154
+ it("should open menu, apply focus style on first option and set as value when Down Arrow is pressed", async () => {
155
+ const page = await newE2EPage();
156
+ await page.setContent(getTestSelect(options));
157
+ await page.waitForChanges();
158
+ const select = await page.find("ic-select >>> #ic-select-input-0");
159
+ await select.press("ArrowDown");
160
+ await page.waitForChanges();
161
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
162
+ expect(await getMenuVisibility(page)).toBe("visible");
163
+ const firstOption = await menu.findAll("li");
164
+ expect(firstOption[0]).toHaveClass("focused-option");
165
+ expect(select).toEqualText("Test label 1");
166
+ });
167
+ it("should open menu when Space is pressed", async () => {
168
+ const page = await newE2EPage();
169
+ await page.setContent(getTestSelect(options));
170
+ await page.waitForChanges();
171
+ const select = await page.find("ic-select >>> #ic-select-input-0");
172
+ await select.press(" ");
173
+ await page.waitForChanges();
174
+ expect(await getMenuVisibility(page)).toBe("visible");
175
+ });
176
+ it("should open menu when Enter is pressed", async () => {
177
+ const page = await newE2EPage();
178
+ await page.setContent(getTestSelect(options));
179
+ await page.waitForChanges();
180
+ const select = await page.find("ic-select >>> #ic-select-input-0");
181
+ await select.press("Enter");
182
+ await page.waitForChanges();
183
+ await page.waitForTimeout(1000);
184
+ expect(await getMenuVisibility(page)).toBe("visible");
185
+ });
186
+ it("should open menu, apply focus style on last option and set as value when Up Arrow is pressed", async () => {
187
+ const page = await newE2EPage();
188
+ await page.setContent(getTestSelect(options));
189
+ await page.waitForChanges();
190
+ const select = await page.find("ic-select >>> #ic-select-input-0");
191
+ await select.press("ArrowUp");
192
+ await page.waitForChanges();
193
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
194
+ expect(await getMenuVisibility(page)).toBe("visible");
195
+ const lastOption = await menu.findAll("li");
196
+ expect(lastOption[2]).toHaveClass("focused-option");
197
+ expect(select).toEqualText("Test label 3");
198
+ });
199
+ it("should keep menu closed when Backspace, Home, End and Escape are pressed", async () => {
200
+ const page = await newE2EPage();
201
+ await page.setContent(getTestSelect(options));
202
+ await page.waitForChanges();
203
+ const select = await page.find("ic-select >>> #ic-select-input-0");
204
+ await select.press("Backspace");
205
+ await page.waitForChanges();
206
+ expect(await getMenuVisibility(page)).toBe("hidden");
207
+ await select.press("Home");
208
+ await page.waitForChanges();
209
+ expect(await getMenuVisibility(page)).toBe("hidden");
210
+ await select.press("End");
211
+ await page.waitForChanges();
212
+ expect(await getMenuVisibility(page)).toBe("hidden");
213
+ await select.press("Escape");
214
+ await page.waitForChanges();
215
+ expect(await getMenuVisibility(page)).toBe("hidden");
216
+ });
217
+ });
218
+ describe("when an option is selected", () => {
219
+ it("should move focus to next option and set as value when Down Arrow is pressed", async () => {
220
+ const page = await newE2EPage();
221
+ await page.setContent(getTestSelect(options));
222
+ await page.waitForChanges();
223
+ const select = await page.find("ic-select >>> #ic-select-input-0");
224
+ await select.press("ArrowDown");
225
+ await select.press("ArrowDown");
226
+ await page.waitForChanges();
227
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
228
+ const secondOption = await menu.findAll("li");
229
+ expect(secondOption[1]).toHaveClass("focused-option");
230
+ expect(select).toEqualText("Test label 2");
231
+ });
232
+ it("should move focus to first option and set as value when focus is on last option and Down Arrow is pressed", async () => {
233
+ const page = await newE2EPage();
234
+ await page.setContent(getTestSelect(options));
235
+ await page.waitForChanges();
236
+ const select = await page.find("ic-select >>> #ic-select-input-0");
237
+ await select.press("ArrowUp");
238
+ await select.press("ArrowDown");
239
+ await page.waitForChanges();
240
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
241
+ const firstOption = await menu.findAll("li");
242
+ expect(firstOption[0]).toHaveClass("focused-option");
243
+ expect(select).toEqualText("Test label 1");
244
+ });
245
+ it("should move focus to previous option and set as value when Up Arrow is pressed", async () => {
246
+ const page = await newE2EPage();
247
+ await page.setContent(getTestSelect(options));
248
+ await page.waitForChanges();
249
+ const select = await page.find("ic-select >>> #ic-select-input-0");
250
+ await select.press("ArrowUp");
251
+ await select.press("ArrowUp");
252
+ await page.waitForChanges();
253
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
254
+ const secondOption = await menu.findAll("li");
255
+ expect(secondOption[1]).toHaveClass("focused-option");
256
+ expect(select).toEqualText("Test label 2");
257
+ });
258
+ it("should move focus to last option and set as value when focus is on first option and Up Arrow is pressed", async () => {
259
+ const page = await newE2EPage();
260
+ await page.setContent(getTestSelect(options));
261
+ await page.waitForChanges();
262
+ const select = await page.find("ic-select >>> #ic-select-input-0");
263
+ await select.press("ArrowDown");
264
+ await select.press("ArrowUp");
265
+ await page.waitForChanges();
266
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
267
+ const lastOption = await menu.findAll("li");
268
+ expect(lastOption[2]).toHaveClass("focused-option");
269
+ expect(select).toEqualText("Test label 3");
270
+ });
271
+ it("should move focus to first option and set as value when Home is pressed", async () => {
272
+ const page = await newE2EPage();
273
+ await page.setContent(getTestSelect(options));
274
+ await page.waitForChanges();
275
+ const select = await page.find("ic-select >>> #ic-select-input-0");
276
+ await select.press("ArrowUp");
277
+ await page.keyboard.press("Home");
278
+ await page.waitForChanges();
279
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
280
+ const firstOption = await menu.findAll("li");
281
+ expect(firstOption[0]).toHaveClass("focused-option");
282
+ expect(select).toEqualText("Test label 1");
283
+ });
284
+ it("should move focus to last option and set as value when End is pressed", async () => {
285
+ const page = await newE2EPage();
286
+ await page.setContent(getTestSelect(options));
287
+ await page.waitForChanges();
288
+ const select = await page.find("ic-select >>> #ic-select-input-0");
289
+ await select.press("ArrowDown");
290
+ await page.keyboard.press("End");
291
+ await page.waitForChanges();
292
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
293
+ const lastOption = await menu.findAll("li");
294
+ expect(lastOption[2]).toHaveClass("focused-option");
295
+ expect(select).toEqualText("Test label 3");
296
+ });
297
+ it("should display a check next to the selected option and set aria-selected", async () => {
298
+ const page = await newE2EPage();
299
+ await page.setContent(getTestSelect(options));
300
+ await page.waitForChanges();
301
+ const select = await page.find("ic-select >>> #ic-select-input-0");
302
+ await select.press("ArrowDown");
303
+ await page.waitForChanges();
304
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
305
+ const firstOption = await menu.findAll("li");
306
+ expect(firstOption[0]).toHaveAttribute("aria-selected");
307
+ expect(await firstOption[0].find(".check-icon")).not.toBeNull;
308
+ expect(firstOption[1]).not.toHaveAttribute("aria-selected");
309
+ expect(await firstOption[1].find(".check-icon")).toBeNull;
310
+ });
311
+ it("should display a check next to the selected option and set aria-selected when a default value is applied", async () => {
312
+ const page = await newE2EPage();
313
+ await page.setContent(getTestSelect(options));
314
+ await page.waitForChanges();
315
+ const icSelect = await page.find("ic-select");
316
+ icSelect.setAttribute("value", "Test value 1");
317
+ await page.waitForChanges();
318
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
319
+ const firstOption = await menu.findAll("li");
320
+ expect(firstOption[0]).toHaveAttribute("aria-selected");
321
+ expect(await firstOption[0].find(".check-icon")).not.toBeNull;
322
+ });
323
+ it("should display clear button if the 'show-clear-button' prop is supplied and an option is selected", async () => {
324
+ const page = await newE2EPage();
325
+ await page.setContent(getTestSelect(options));
326
+ let clearButton = await page.find("ic-select >>> .clear-button");
327
+ expect(clearButton).toBeNull();
328
+ const icSelect = await page.find("ic-select");
329
+ icSelect.setAttribute("show-clear-button", true);
330
+ await page.waitForChanges();
331
+ clearButton = await page.find("ic-select >>> .clear-button");
332
+ expect(clearButton).toBeNull();
333
+ const select = await page.find("ic-select >>> #ic-select-input-0");
334
+ await select.press("ArrowDown");
335
+ await page.keyboard.press("Enter");
336
+ await page.waitForChanges();
337
+ clearButton = await page.find("ic-select >>> .clear-button");
338
+ expect(clearButton).not.toBeNull();
339
+ });
340
+ it("should clear the input if the clear button is clicked", async () => {
341
+ const page = await newE2EPage();
342
+ await page.setContent(getTestSelect(options));
343
+ const icSelect = await page.find("ic-select");
344
+ icSelect.setAttribute("show-clear-button", true);
345
+ await page.waitForChanges();
346
+ const icChange = await page.spyOnEvent("icChange");
347
+ const select = await page.find("ic-select >>> #ic-select-input-0");
348
+ await select.press("ArrowDown");
349
+ await page.keyboard.press("Enter");
350
+ await page.waitForChanges();
351
+ let clearButton = await page.find("ic-select >>> .clear-button");
352
+ await clearButton.click();
353
+ await page.waitForChanges();
354
+ expect(select).toEqualText("Select an option");
355
+ expect(icChange).toHaveReceivedEventDetail({
356
+ value: null,
357
+ });
358
+ clearButton = await page.find("ic-select >>> .clear-button");
359
+ expect(clearButton).toBeNull;
360
+ });
361
+ });
362
+ it("should close menu when input is clicked while open and set focus on it", async () => {
363
+ const page = await newE2EPage();
364
+ await page.setContent(getTestSelect(options));
365
+ await page.waitForChanges();
366
+ const select = await page.find("ic-select >>> #ic-select-input-0");
367
+ await select.click();
368
+ await page.waitForChanges();
369
+ await select.click();
370
+ await page.waitForChanges();
371
+ await page.waitForTimeout(1000);
372
+ expect(await getMenuVisibility(page)).toBe("hidden");
373
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
374
+ expect(activeElId).toBe("ic-select-input-0");
375
+ });
376
+ it("should close menu when an option is clicked, set as value and move focus onto the input", async () => {
377
+ const page = await newE2EPage();
378
+ await page.setContent(getTestSelect(options));
379
+ await page.waitForChanges();
380
+ const select = await page.find("ic-select >>> #ic-select-input-0");
381
+ await select.click();
382
+ await page.waitForChanges();
383
+ const icChange = await page.spyOnEvent("icChange");
384
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
385
+ await menu.click();
386
+ await page.waitForChanges();
387
+ await page.waitForTimeout(1000);
388
+ expect(await getMenuVisibility(page)).toBe("hidden");
389
+ expect(icChange).toHaveReceivedEventDetail({
390
+ value: "Test value 2",
391
+ });
392
+ expect(select).toEqualText("Test label 2");
393
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
394
+ expect(activeElId).toBe("ic-select-input-0");
395
+ });
396
+ it("should close menu when Space is pressed and move focus to the input", async () => {
397
+ const page = await newE2EPage();
398
+ await page.setContent(getTestSelect(options));
399
+ await page.waitForChanges();
400
+ const select = await page.find("ic-select >>> #ic-select-input-0");
401
+ await select.press("ArrowDown");
402
+ await page.waitForChanges();
403
+ await page.keyboard.press(" ");
404
+ await page.waitForChanges();
405
+ await page.waitForTimeout(1000);
406
+ expect(await getMenuVisibility(page)).toBe("hidden");
407
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
408
+ expect(activeElId).toBe("ic-select-input-0");
409
+ });
410
+ it("should close menu when Enter is pressed and set focus to the input", async () => {
411
+ const page = await newE2EPage();
412
+ await page.setContent(getTestSelect(options));
413
+ await page.waitForChanges();
414
+ const select = await page.find("ic-select >>> #ic-select-input-0");
415
+ await select.press("ArrowDown");
416
+ await page.waitForChanges();
417
+ await page.keyboard.press("Enter");
418
+ await page.waitForChanges();
419
+ await page.waitForTimeout(1000);
420
+ expect(await getMenuVisibility(page)).toBe("hidden");
421
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
422
+ expect(activeElId).toBe("ic-select-input-0");
423
+ });
424
+ it("should close menu when Escape is pressed and set focus to the input", async () => {
425
+ const page = await newE2EPage();
426
+ await page.setContent(getTestSelect(options));
427
+ await page.waitForChanges();
428
+ const select = await page.find("ic-select >>> #ic-select-input-0");
429
+ await select.press("ArrowDown");
430
+ await page.waitForChanges();
431
+ await page.keyboard.press("Escape");
432
+ await page.waitForChanges();
433
+ await page.waitForTimeout(1000);
434
+ expect(await getMenuVisibility(page)).toBe("hidden");
435
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
436
+ expect(activeElId).toBe("ic-select-input-0");
437
+ });
438
+ it("should close menu when another element on the page is clicked", async () => {
439
+ const page = await newE2EPage();
440
+ await page.setContent(`${getTestSelect(options)}<button>Test button</button>`);
441
+ await page.waitForChanges();
442
+ const select = await page.find("ic-select >>> #ic-select-input-0");
443
+ await select.press("ArrowDown");
444
+ await page.waitForChanges();
445
+ const button = await page.find("button");
446
+ await button.click();
447
+ await page.waitForChanges();
448
+ await page.waitForTimeout(1000);
449
+ expect(await getMenuVisibility(page)).toBe("hidden");
450
+ });
451
+ it("should close menu when Tab is pressed to move focus onto the next element on the page", async () => {
452
+ const page = await newE2EPage();
453
+ await page.setContent(`${getTestSelect(options)}<button>Test button</button>`);
454
+ await page.waitForChanges();
455
+ const select = await page.find("ic-select >>> #ic-select-input-0");
456
+ await select.press("ArrowDown");
457
+ await page.waitForChanges();
458
+ await page.keyboard.press("Tab");
459
+ await page.waitForChanges();
460
+ await page.waitForTimeout(1000);
461
+ expect(await getMenuVisibility(page)).toBe("hidden");
462
+ });
463
+ it("should close menu when Shift + Tab is pressed to move focus onto the input", async () => {
464
+ const page = await newE2EPage();
465
+ await page.setContent(`${getTestSelect(options)}`);
466
+ await page.waitForChanges();
467
+ const select = await page.find("ic-select >>> #ic-select-input-0");
468
+ await select.press("ArrowDown");
469
+ await page.waitForChanges();
470
+ await page.waitForTimeout(1000);
471
+ await page.keyboard.down("Shift");
472
+ await page.keyboard.press("Tab");
473
+ await page.waitForChanges();
474
+ await page.keyboard.up("Shift");
475
+ await page.waitForChanges();
476
+ await page.waitForTimeout(1000);
477
+ expect(await getMenuVisibility(page)).toBe("hidden");
478
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
479
+ expect(activeElId).toBe("ic-select-input-0");
480
+ });
481
+ it("should display the label of the value passed in using the 'value' prop as the selected option", async () => {
482
+ const page = await newE2EPage();
483
+ await page.setContent(getTestSelect(options));
484
+ const icSelect = await page.find("ic-select");
485
+ icSelect.setAttribute("value", "Test value 2");
486
+ await page.waitForChanges();
487
+ const select = await page.find("ic-select >>> #ic-select-input-0");
488
+ expect(select).toEqualText("Test label 2");
489
+ });
490
+ it("should render options with descriptions", async () => {
491
+ const page = await newE2EPage();
492
+ const optionsWithDescription = `[
493
+ { label: 'Test label 1', value: 'Test value 1', description: 'Test description 1' },
494
+ { label: 'Test label 2', value: 'Test value 2' },
495
+ { label: 'Test label 3', value: 'Test value 3' },
496
+ ]`;
497
+ await page.setContent(getTestSelect(optionsWithDescription));
498
+ await page.waitForChanges();
499
+ const select = await page.find("ic-select >>> #ic-select-input-0");
500
+ await select.press("ArrowDown");
501
+ await page.waitForChanges();
502
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
503
+ const firstOptionDescription = await menu.find("li .option-description");
504
+ expect(firstOptionDescription).toEqualText("Test description 1");
505
+ });
506
+ it("should render the placeholder", async () => {
507
+ const page = await newE2EPage();
508
+ await page.setContent(getTestSelect(options));
509
+ const icSelect = await page.find("ic-select");
510
+ icSelect.setAttribute("placeholder", "Test placeholder");
511
+ await page.waitForChanges();
512
+ const select = await page.find("ic-select >>> #ic-select-input-0");
513
+ expect(select).toEqualText("Test placeholder");
514
+ });
515
+ it("should render as disabled correctly", async () => {
516
+ const page = await newE2EPage();
517
+ await page.setContent(getTestSelect(options));
518
+ const icSelect = await page.find("ic-select");
519
+ icSelect.setAttribute("disabled", true);
520
+ await page.waitForChanges();
521
+ const select = await page.find("ic-select >>> #ic-select-input-0");
522
+ expect(select).toHaveAttribute("disabled");
523
+ await select.click();
524
+ await page.waitForChanges();
525
+ expect(await getMenuVisibility(page)).toBe("hidden");
526
+ });
527
+ it("should prevent click on disabled options", async () => {
528
+ const page = await newE2EPage();
529
+ const optionsWithDisabled = `[
530
+ { label: 'Test label 1', value: 'Test value 1' },
531
+ { label: 'Test label 2', value: 'Test value 2', disabled: true },
532
+ { label: 'Test label 3', value: 'Test value 3' },
533
+ ]`;
534
+ await page.setContent(getTestSelect(optionsWithDisabled));
535
+ await page.waitForChanges();
536
+ const select = await page.find("ic-select >>> #ic-select-input-0");
537
+ await select.press("ArrowDown");
538
+ await page.waitForChanges();
539
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
540
+ await menu.click();
541
+ await page.waitForChanges();
542
+ expect(await getMenuVisibility(page)).toBe("visible");
543
+ });
544
+ it("should set aria-disabled and skip focus when option disabled", async () => {
545
+ const page = await newE2EPage();
546
+ const optionsWithDisabled = `[
547
+ { label: 'Test label 1', value: 'Test value 1', disabled: true },
548
+ { label: 'Test label 2', value: 'Test value 2' },
549
+ { label: 'Test label 3', value: 'Test value 3' },
550
+ ]`;
551
+ await page.setContent(getTestSelect(optionsWithDisabled));
552
+ await page.waitForChanges();
553
+ const select = await page.find("ic-select >>> #ic-select-input-0");
554
+ await select.press("ArrowDown");
555
+ await page.waitForChanges();
556
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
557
+ const menuOptions = await menu.findAll("li");
558
+ expect(menuOptions[0]).toHaveAttribute("aria-disabled");
559
+ expect(menuOptions[1]).toHaveClass("focused-option");
560
+ });
561
+ it("should render as required correctly", async () => {
562
+ const page = await newE2EPage();
563
+ await page.setContent(getTestSelect(options));
564
+ const icSelect = await page.find("ic-select");
565
+ icSelect.setAttribute("required", true);
566
+ await page.waitForChanges();
567
+ const label = await page.find("ic-select >>> ic-input-label");
568
+ expect(label).toEqualText("IC Select Test *");
569
+ const select = await page.find("ic-select >>> #ic-select-input-0");
570
+ expect(select.getAttribute("aria-label").includes("required")).toBeTruthy();
571
+ });
572
+ it("should render selected value as text when read-only", async () => {
573
+ const page = await newE2EPage();
574
+ await page.setContent(getTestSelect(options));
575
+ const icSelect = await page.find("ic-select");
576
+ icSelect.setAttribute("value", "Test value 1");
577
+ icSelect.setAttribute("readonly", true);
578
+ await page.waitForChanges();
579
+ const select = await page.find("ic-select >>> #ic-select-input-0");
580
+ const typography = await page.evaluate(() => Array.from(document
581
+ .querySelector("ic-select")
582
+ .shadowRoot.querySelectorAll("ic-typography"), (typography) => typography.innerText));
583
+ expect(select).toBe(null);
584
+ expect(typography[1]).toBe("Test label 1");
585
+ });
586
+ it("should render options as groups if they have children", async () => {
587
+ const page = await newE2EPage();
588
+ const groupedOptions = `[
589
+ {
590
+ label: 'Test group',
591
+ children: [
592
+ { label: 'Test label 1', value: 'Test value 1' },
593
+ { label: 'Test label 2', value: 'Test value 2' },
594
+ { label: 'Test label 3', value: 'Test value 3' },
595
+ ],
596
+ },
597
+ ]`;
598
+ await page.setContent(getTestSelect(groupedOptions));
599
+ await page.waitForChanges();
600
+ const select = await page.find("ic-select >>> #ic-select-input-0");
601
+ await select.press("ArrowDown");
602
+ await page.waitForChanges();
603
+ const optionGroupTitle = await page.find("ic-select >>> ic-menu >>> .option-group-title");
604
+ expect(optionGroupTitle).not.toBeNull();
605
+ const optionsText = await page.evaluate(() => Array.from(document
606
+ .querySelector("ic-select")
607
+ .shadowRoot.querySelectorAll("ic-menu ic-typography"), (typography) => typography.innerText));
608
+ expect(optionsText[0]).toBe("Test group");
609
+ });
610
+ it("should render and focus child options correctly", async () => {
611
+ const page = await newE2EPage();
612
+ const groupedOptions = `[
613
+ {
614
+ label: 'Test group',
615
+ children: [
616
+ { label: 'Test label 1', value: 'Test value 1' },
617
+ { label: 'Test label 2', value: 'Test value 2' },
618
+ { label: 'Test label 3', value: 'Test value 3' },
619
+ ],
620
+ },
621
+ ]`;
622
+ await page.setContent(getTestSelect(groupedOptions));
623
+ await page.waitForChanges();
624
+ const select = await page.find("ic-select >>> #ic-select-input-0");
625
+ await select.press("ArrowDown");
626
+ await page.waitForChanges();
627
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
628
+ const childOptions = await menu.findAll("li");
629
+ expect(childOptions).toHaveLength(3);
630
+ expect(childOptions[0]).toEqualText("Test label 1");
631
+ expect(childOptions[1]).toEqualText("Test label 2");
632
+ expect(childOptions[2]).toEqualText("Test label 3");
633
+ expect(childOptions[0]).toHaveClass("focused-option");
634
+ });
635
+ it("should render options at the top of the menu if they are recommended", async () => {
636
+ const page = await newE2EPage();
637
+ const optionsWithDisabled = `[
638
+ { label: 'Test label 1', value: 'Test value 1' },
639
+ { label: 'Test label 2', value: 'Test value 2', recommended: true },
640
+ { label: 'Test label 3', value: 'Test value 3' },
641
+ ]`;
642
+ await page.setContent(getTestSelect(optionsWithDisabled));
643
+ await page.waitForChanges();
644
+ const select = await page.find("ic-select >>> #ic-select-input-0");
645
+ await select.press("ArrowDown");
646
+ await page.waitForChanges();
647
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
648
+ const firstOption = await menu.findAll("li");
649
+ expect(firstOption[0]).toEqualText("Test label 2");
650
+ });
651
+ it("should set aria-invalid if validation status is 'error'", async () => {
652
+ const page = await newE2EPage();
653
+ await page.setContent(getTestSelect(options));
654
+ const icSelect = await page.find("ic-select");
655
+ icSelect.setAttribute("validation-status", "error");
656
+ await page.waitForChanges();
657
+ const select = await page.find("ic-select >>> #ic-select-input-0");
658
+ expect(select).toHaveAttribute("aria-invalid");
659
+ });
660
+ it("should set the aria-label correctly if an option has a description", async () => {
661
+ const page = await newE2EPage();
662
+ const optionsWithDescription = `[
663
+ { label: 'Test label 1', value: 'Test value 1', description: 'Test description 1' },
664
+ { label: 'Test label 2', value: 'Test value 2' },
665
+ { label: 'Test label 3', value: 'Test value 3' },
666
+ ]`;
667
+ await page.setContent(getTestSelect(optionsWithDescription));
668
+ await page.waitForChanges();
669
+ const select = await page.find("ic-select >>> #ic-select-input-0");
670
+ await select.press("ArrowDown");
671
+ await page.waitForChanges();
672
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
673
+ const firstOption = await menu.findAll("li");
674
+ expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test description 1");
675
+ });
676
+ it("should set the aria-label correctly if an option is within a group", async () => {
677
+ const page = await newE2EPage();
678
+ const optionsWithDescription = `[
679
+ {
680
+ label: 'Test group',
681
+ children: [
682
+ { label: 'Test label 1', value: 'Test value 1' },
683
+ { label: 'Test label 2', value: 'Test value 2' },
684
+ { label: 'Test label 3', value: 'Test value 3' },
685
+ ],
686
+ },
687
+ ]`;
688
+ await page.setContent(getTestSelect(optionsWithDescription));
689
+ await page.waitForChanges();
690
+ const select = await page.find("ic-select >>> #ic-select-input-0");
691
+ await select.press("ArrowDown");
692
+ await page.waitForChanges();
693
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
694
+ const firstOption = await menu.findAll("li");
695
+ expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test group group");
696
+ });
697
+ it("should set the aria-label correctly if an option has a description and is within a group", async () => {
698
+ const page = await newE2EPage();
699
+ const optionsWithDescription = `[
700
+ {
701
+ label: 'Test group',
702
+ children: [
703
+ { label: 'Test label 1', value: 'Test value 1', description: 'Test description 1' },
704
+ { label: 'Test label 2', value: 'Test value 2' },
705
+ { label: 'Test label 3', value: 'Test value 3' },
706
+ ],
707
+ },
708
+ ]`;
709
+ await page.setContent(getTestSelect(optionsWithDescription));
710
+ await page.waitForChanges();
711
+ const select = await page.find("ic-select >>> #ic-select-input-0");
712
+ await select.press("ArrowDown");
713
+ await page.waitForChanges();
714
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
715
+ const firstOption = await menu.findAll("li");
716
+ expect(firstOption[0].getAttribute("aria-label")).toBe("Test label 1, Test description 1, Test group group");
717
+ });
718
+ it("should call icFocus when focused", async () => {
719
+ const page = await newE2EPage();
720
+ await page.setContent(`<button>Test button</button>${getTestSelect(options)}`);
721
+ await page.waitForChanges();
722
+ const button = await page.find("button");
723
+ await button.focus();
724
+ await page.waitForChanges();
725
+ const icFocus = await page.spyOnEvent("icFocus");
726
+ await page.keyboard.down("Tab");
727
+ await page.waitForChanges();
728
+ expect(icFocus).toHaveReceivedEvent();
729
+ });
730
+ it("should call icBlur when it loses focus", async () => {
731
+ const page = await newE2EPage();
732
+ await page.setContent(getTestSelect(options));
733
+ await page.waitForChanges();
734
+ const icBlur = await page.spyOnEvent("icBlur");
735
+ await page.keyboard.down("Tab");
736
+ await page.keyboard.down("Tab");
737
+ await page.waitForChanges();
738
+ expect(icBlur).toHaveReceivedEvent();
739
+ });
740
+ describe("loading", () => {
741
+ it("should display a loading message and then the options when fetching options externally", async () => {
742
+ const page = await newE2EPage();
743
+ await page.setContent(`<ic-select label="IC Select Test" loading="true"></ic-select>
744
+ <script>
745
+ var select = document.querySelector('ic-select');
746
+ select.options = [];
747
+ select.addEventListener('icChange', function (event) {
748
+ option = event.detail.value;
749
+ select.value = option;
750
+ });
751
+ setTimeout(() => {
752
+ select.options = [
753
+ { label: 'Test label 1', value: 'Test value 1' },
754
+ { label: 'Test label 2', value: 'Test value 2' },
755
+ { label: 'Test label 3', value: 'Test value 3' },
756
+ ];
757
+ }, 1000);
758
+ </script>`);
759
+ await page.waitForChanges();
760
+ let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
761
+ expect(firstOption).toEqualText("Loading...");
762
+ await page.waitForTimeout(1500);
763
+ firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
764
+ expect(firstOption).toEqualText("Test label 1");
765
+ const icSelect = await page.find("ic-select");
766
+ expect(icSelect.getAttribute("loading")).toBeFalsy;
767
+ });
768
+ it("should display a retry button and a custom loading error when it times out and should not update the options", async () => {
769
+ const page = await newE2EPage();
770
+ await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500" options="[]" loading-error-label="Error"></ic-select>`);
771
+ await page.waitForChanges();
772
+ let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
773
+ expect(firstOption).toEqualText("Loading...");
774
+ await page.waitForTimeout(560);
775
+ firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
776
+ expect(firstOption).toEqualText("Error");
777
+ const retryButton = await page.find("ic-select >>> #retry-button");
778
+ expect(retryButton).not.toBeNull;
779
+ await page.waitForTimeout(1500);
780
+ firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
781
+ expect(firstOption).toEqualText("Error");
782
+ });
783
+ it("should focus the retry button on tab and emit icBlur and close the menu when blurring", async () => {
784
+ const page = await newE2EPage();
785
+ await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500" options="[]" loading-error-label="Error"></ic-select>`);
786
+ await page.waitForChanges();
787
+ await page.waitForTimeout(560);
788
+ const select = await page.find("ic-select >>> #ic-select-input-0");
789
+ await select.click();
790
+ await page.waitForChanges();
791
+ await page.keyboard.press("Tab");
792
+ await page.waitForChanges();
793
+ const icBlur = await page.spyOnEvent("icBlur");
794
+ expect(icBlur).not.toHaveReceivedEvent();
795
+ const activeElId = await page.$eval("ic-select", (el) => el.shadowRoot.activeElement.id);
796
+ expect(activeElId).toBe("retry-button");
797
+ await page.keyboard.press("Tab");
798
+ await page.waitForChanges();
799
+ expect(icBlur).toHaveReceivedEvent();
800
+ });
801
+ it("should retry loading and keep the menu open when retry button is clicked", async () => {
802
+ const page = await newE2EPage();
803
+ await page.setContent(`<ic-select label="IC Select Test" loading="true" timeout="500"></ic-select>
804
+ <script>
805
+ var select = document.querySelector('ic-select');
806
+ select.options = [];
807
+ select.addEventListener('icChange', function (event) {
808
+ option = event.detail.value;
809
+ select.value = option;
810
+ });
811
+ select.addEventListener('icRetryLoad', function () {
812
+ select.loading = true;
813
+ });
814
+ </script>`);
815
+ await page.waitForChanges();
816
+ const icRetryLoad = await page.spyOnEvent("icRetryLoad");
817
+ await page.waitForTimeout(560);
818
+ let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
819
+ expect(firstOption).toEqualText("Loading Error");
820
+ const select = await page.find("ic-select >>> #ic-select-input-0");
821
+ await select.click();
822
+ await page.waitForChanges();
823
+ const retryButton = await page.find("ic-select >>> #retry-button");
824
+ await retryButton.click();
825
+ await page.waitForChanges();
826
+ expect(icRetryLoad).toHaveReceivedEvent;
827
+ firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
828
+ expect(firstOption).toEqualText("Loading...");
829
+ expect(await getMenuVisibility(page)).toBe("visible");
830
+ });
831
+ it("should retry loading and keep the menu open when retry button is pressed with Enter", async () => {
832
+ const page = await newE2EPage();
833
+ await page.setContent(`<ic-select label="IC Select Test" loading="true" options="[]" timeout="500"></ic-select>`);
834
+ await page.waitForChanges();
835
+ const icRetryLoad = await page.spyOnEvent("icRetryLoad");
836
+ await page.waitForTimeout(560);
837
+ const firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
838
+ expect(firstOption).toEqualText("Loading Error");
839
+ const select = await page.find("ic-select >>> #ic-select-input-0");
840
+ await select.click();
841
+ await page.waitForChanges();
842
+ const retryButton = await page.find("ic-select >>> #retry-button");
843
+ await retryButton.press("Enter");
844
+ await page.waitForChanges();
845
+ expect(icRetryLoad).toHaveReceivedEvent;
846
+ expect(await getMenuVisibility(page)).toBe("visible");
847
+ });
848
+ });
849
+ });
850
+ describe("searchable", () => {
851
+ it("should open menu when character is entered in input field and filter options", async () => {
852
+ const page = await newE2EPage();
853
+ await page.setContent(getTestSearchableSelect(searchableOptions));
854
+ await page.waitForChanges();
855
+ const select = await page.find("ic-select >>> #ic-select-input-0");
856
+ await select.press("c");
857
+ await page.waitForChanges();
858
+ expect(await getMenuVisibility(page)).toBe("visible");
859
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
860
+ const menuOptions = await menu.findAll("li");
861
+ expect(menuOptions).toHaveLength(4);
862
+ expect(menuOptions[0]).toEqualText("Cappuccino");
863
+ expect(menuOptions[1]).toEqualText("Americano");
864
+ expect(menuOptions[2]).toEqualText("Mocha");
865
+ expect(menuOptions[3]).toEqualText("Macchiato");
866
+ });
867
+ it("should keep the same options when characters are entered and the menu is reopened", async () => {
868
+ const page = await newE2EPage();
869
+ await page.setContent(getTestSearchableSelect(searchableOptions));
870
+ await page.waitForChanges();
871
+ await focusAndTypeIntoInput("foo", page);
872
+ await page.waitForChanges();
873
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
874
+ let menuOptions = await menu.findAll("li");
875
+ expect(menuOptions).toHaveLength(1);
876
+ expect(menuOptions[0]).toEqualText("No results found");
877
+ const select = await page.find("ic-select >>> #ic-select-input-0");
878
+ select.click();
879
+ await page.waitForChanges();
880
+ expect(await getMenuVisibility(page)).toBe("hidden");
881
+ select.click();
882
+ await page.waitForChanges();
883
+ expect(await getMenuVisibility(page)).toBe("visible");
884
+ menuOptions = await menu.findAll("li");
885
+ expect(menuOptions).toHaveLength(1);
886
+ expect(menuOptions[0]).toEqualText("No results found");
887
+ });
888
+ it("should display no results state when search term matches none of the options", async () => {
889
+ const page = await newE2EPage();
890
+ await page.setContent(getTestSearchableSelect(searchableOptions));
891
+ await page.waitForChanges();
892
+ const select = await page.find("ic-select >>> #ic-select-input-0");
893
+ await select.press("z");
894
+ await page.waitForChanges();
895
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
896
+ const menuOptions = await menu.findAll("li");
897
+ expect(menuOptions).toHaveLength(1);
898
+ expect(menuOptions[0]).toEqualText("No results found");
899
+ });
900
+ it("should filter options accordingly when Backspace is pressed", async () => {
901
+ const page = await newE2EPage();
902
+ await page.setContent(getTestSearchableSelect(searchableOptions));
903
+ await page.waitForChanges();
904
+ const select = await page.find("ic-select >>> #ic-select-input-0");
905
+ await select.press("f");
906
+ await page.waitForChanges();
907
+ await select.press("i");
908
+ await page.waitForChanges();
909
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
910
+ let menuOptions = await menu.findAll("li");
911
+ expect(menuOptions).toHaveLength(1);
912
+ await select.press("Backspace");
913
+ await page.waitForChanges();
914
+ menuOptions = await menu.findAll("li");
915
+ expect(menuOptions).toHaveLength(2);
916
+ expect(menuOptions[0]).toEqualText("Filter");
917
+ expect(menuOptions[1]).toEqualText("Flat white");
918
+ });
919
+ it("should filter options when search match position is set to start", async () => {
920
+ const page = await newE2EPage();
921
+ await page.setContent(getTestSearchableSelect(searchableOptions));
922
+ const icSelect = await page.find("ic-select");
923
+ icSelect.setAttribute("search-match-position", "start");
924
+ await page.waitForChanges();
925
+ const select = await page.find("ic-select >>> #ic-select-input-0");
926
+ await select.press("c");
927
+ await page.waitForChanges();
928
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
929
+ const menuOptions = await menu.findAll("li");
930
+ expect(menuOptions).toHaveLength(1);
931
+ expect(menuOptions[0]).toEqualText("Cappuccino");
932
+ });
933
+ it("should include option descriptions in search", async () => {
934
+ const page = await newE2EPage();
935
+ const optionsWithDescription = `[
936
+ { label: "Cappuccino", value: "Cap" },
937
+ { label: "Latte", value: "Lat", description: "A milkier coffee than a cappuccino" },
938
+ { label: "Americano", value: "Ame" },
939
+ { label: "Filter", value: "Fil" },
940
+ { label: "Flat white", value: "Fla" },
941
+ { label: "Mocha", value: "Moc" },
942
+ { label: "Macchiato", value: "Mac" },
943
+ ]`;
944
+ await page.setContent(getTestSearchableSelect(optionsWithDescription));
945
+ const icSelect = await page.find("ic-select");
946
+ icSelect.setAttribute("include-descriptions-in-search", true);
947
+ await page.waitForChanges();
948
+ const select = await page.find("ic-select >>> #ic-select-input-0");
949
+ await select.press("m");
950
+ await page.waitForChanges();
951
+ await select.press("i");
952
+ await page.waitForChanges();
953
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
954
+ const menuOptions = await menu.findAll("li");
955
+ expect(menuOptions).toHaveLength(1);
956
+ expect(menuOptions[0].textContent.substring(0, 5)).toEqualText("Latte");
957
+ });
958
+ it("should not include group titles in search", async () => {
959
+ const page = await newE2EPage();
960
+ const groupedOptions = `[
961
+ {
962
+ label: "Fancy",
963
+ children: [
964
+ { label: "Cappuccino", value: "Cap" },
965
+ { label: "Flat white", value: "Flat" },
966
+ ],
967
+ },
968
+ {
969
+ label: "Boring",
970
+ children: [
971
+ { label: "Filter", value: "Fil" },
972
+ { label: "Latte", value: "Lat" },
973
+ ],
974
+ },
975
+ ]`;
976
+ await page.setContent(getTestSearchableSelect(groupedOptions));
977
+ await page.waitForChanges();
978
+ const select = await page.find("ic-select >>> #ic-select-input-0");
979
+ await select.press("b");
980
+ await page.waitForChanges();
981
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
982
+ const menuOptions = await menu.findAll("li");
983
+ expect(menuOptions).toHaveLength(1);
984
+ expect(menuOptions[0]).toEqualText("No results found");
985
+ });
986
+ it("should display whole group when group titles included in search", async () => {
987
+ const page = await newE2EPage();
988
+ const groupedOptions = `[
989
+ {
990
+ label: "Fancy",
991
+ children: [
992
+ { label: "Cappuccino", value: "Cap" },
993
+ { label: "Flat white", value: "Flat" },
994
+ ],
995
+ },
996
+ {
997
+ label: "Boring",
998
+ children: [
999
+ { label: "Filter", value: "Fil" },
1000
+ { label: "Latte", value: "Lat" },
1001
+ ],
1002
+ },
1003
+ ]`;
1004
+ await page.setContent(getTestSearchableSelect(groupedOptions));
1005
+ const icSelect = await page.find("ic-select");
1006
+ icSelect.setAttribute("include-group-titles-in-search", true);
1007
+ await page.waitForChanges();
1008
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1009
+ await select.press("b");
1010
+ await page.waitForChanges();
1011
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1012
+ const menuOptions = await menu.findAll("li");
1013
+ expect(menuOptions).toHaveLength(2);
1014
+ expect(menuOptions[0]).toEqualText("Filter");
1015
+ expect(menuOptions[1]).toEqualText("Latte");
1016
+ });
1017
+ it("should display a clear button which clears the input when clicked", async () => {
1018
+ const page = await newE2EPage();
1019
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1020
+ await page.waitForChanges();
1021
+ const icChange = await page.spyOnEvent("icChange");
1022
+ let clearButton = await page.find("ic-select >>> .clear-button");
1023
+ expect(clearButton).toBeNull();
1024
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1025
+ await select.press("a");
1026
+ await page.waitForChanges();
1027
+ clearButton = await page.find("ic-select >>> .clear-button");
1028
+ expect(clearButton).not.toBeNull();
1029
+ await clearButton.click();
1030
+ expect(select.textContent).toBe("");
1031
+ expect(icChange).toHaveReceivedEventDetail({
1032
+ value: null,
1033
+ });
1034
+ });
1035
+ it("should emit the value as null when the input is changed after selecting an option", async () => {
1036
+ const page = await newE2EPage();
1037
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1038
+ await page.waitForChanges();
1039
+ const icChange = await page.spyOnEvent("icChange");
1040
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1041
+ await select.press("ArrowDown");
1042
+ await page.waitForChanges();
1043
+ await select.press("Enter");
1044
+ await page.waitForChanges();
1045
+ expect(icChange).toHaveReceivedEventDetail({
1046
+ value: "Cap",
1047
+ });
1048
+ const clearButton = await page.find("ic-select >>> .clear-button");
1049
+ await clearButton.click();
1050
+ await page.waitForChanges();
1051
+ expect(icChange).toHaveReceivedEventDetail({
1052
+ value: null,
1053
+ });
1054
+ });
1055
+ it("should still filter the options when the input is changed after selecting an option", async () => {
1056
+ const page = await newE2EPage();
1057
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1058
+ await page.waitForChanges();
1059
+ const icChange = await page.spyOnEvent("icChange");
1060
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1061
+ await select.press("ArrowDown");
1062
+ await page.waitForChanges();
1063
+ await select.press("Enter");
1064
+ await page.waitForChanges();
1065
+ expect(icChange).toHaveReceivedEventDetail({
1066
+ value: "Cap",
1067
+ });
1068
+ for (let i = 0; i <= 7; i++)
1069
+ select.press("Backspace");
1070
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1071
+ const menuOptions = await menu.findAll("li");
1072
+ expect(menuOptions).toHaveLength(2);
1073
+ expect(menuOptions[0]).toEqualText("Cappuccino");
1074
+ expect(menuOptions[1]).toEqualText("Americano");
1075
+ });
1076
+ it("should close menu on blur", async () => {
1077
+ const page = await newE2EPage();
1078
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1079
+ await page.waitForChanges();
1080
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1081
+ await select.click();
1082
+ await page.waitForChanges();
1083
+ expect(await getMenuVisibility(page)).toBe("visible");
1084
+ await select.press("Tab");
1085
+ expect(await getMenuVisibility(page)).toBe("hidden");
1086
+ });
1087
+ it("should emit icChange on delay", async () => {
1088
+ const page = await newE2EPage();
1089
+ await page.setContent(`<ic-select label="IC Select Test" debounce="500" searchable></ic-select>`);
1090
+ await page.waitForChanges();
1091
+ const icChange = await page.spyOnEvent("icChange");
1092
+ await focusAndTypeIntoInput("foo", page);
1093
+ await page.waitForTimeout(600);
1094
+ expect(icChange).toHaveReceivedEventDetail({
1095
+ value: "foo",
1096
+ });
1097
+ await focusAndTypeIntoInput("bar", page);
1098
+ await page.waitForChanges();
1099
+ await page.waitForTimeout(100);
1100
+ expect(icChange).toHaveReceivedEventDetail({
1101
+ value: "foo",
1102
+ });
1103
+ await page.waitForTimeout(500);
1104
+ expect(icChange).toHaveReceivedEventDetail({
1105
+ value: "foobar",
1106
+ });
1107
+ });
1108
+ it("should update hidden input to value typed in select searchable input", async () => {
1109
+ const page = await newE2EPage();
1110
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1111
+ await page.waitForChanges();
1112
+ await focusAndTypeIntoInput("bar", page);
1113
+ await page.waitForChanges();
1114
+ const hiddenInput = await page.find("input[type='hidden']");
1115
+ expect(hiddenInput.getAttribute("value")).toBe("bar");
1116
+ });
1117
+ it("should keep typed in hidden input value when highlighting menu options", async () => {
1118
+ const page = await newE2EPage();
1119
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1120
+ await page.waitForChanges();
1121
+ await focusAndTypeIntoInput("cap", page);
1122
+ await page.waitForChanges();
1123
+ let hiddenInput = await page.find("input[type='hidden']");
1124
+ expect(hiddenInput.getAttribute("value")).toBe("cap");
1125
+ await page.keyboard.press("ArrowDown");
1126
+ await page.waitForChanges();
1127
+ const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
1128
+ expect(menuListItems[0]).toHaveClass("focused-option");
1129
+ hiddenInput = await page.find("input[type='hidden']");
1130
+ expect(hiddenInput.getAttribute("value")).toBe("cap");
1131
+ });
1132
+ it("should update hidden value from typed to selected", async () => {
1133
+ const page = await newE2EPage();
1134
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1135
+ await page.waitForChanges();
1136
+ await focusAndTypeIntoInput("o", page);
1137
+ await page.waitForChanges();
1138
+ const hiddenInput = await page.find("input[type='hidden']");
1139
+ expect(hiddenInput.getAttribute("value")).toBe("o");
1140
+ await page.keyboard.press("ArrowDown");
1141
+ await page.waitForChanges();
1142
+ const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
1143
+ expect(menuListItems[0]).toHaveClass("focused-option");
1144
+ await page.keyboard.press("Enter");
1145
+ await page.waitForChanges();
1146
+ expect(hiddenInput.getAttribute("value")).toBe("Cap");
1147
+ });
1148
+ it("should update hidden value from typed to selected to typed", async () => {
1149
+ const page = await newE2EPage();
1150
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1151
+ await page.waitForChanges();
1152
+ await focusAndTypeIntoInput("o", page);
1153
+ await page.waitForChanges();
1154
+ const hiddenInput = await page.find("input[type='hidden']");
1155
+ expect(hiddenInput.getAttribute("value")).toBe("o");
1156
+ await page.keyboard.press("ArrowDown");
1157
+ await page.waitForChanges();
1158
+ const menuListItems = await page.findAll("ic-select >>> ic-menu > ul > li");
1159
+ expect(menuListItems[0]).toHaveClass("focused-option");
1160
+ await page.keyboard.press("Enter");
1161
+ await page.waitForChanges();
1162
+ expect(hiddenInput.getAttribute("value")).toBe("Cap");
1163
+ await page.keyboard.press("1");
1164
+ await page.waitForChanges();
1165
+ expect(hiddenInput.getAttribute("value")).toBe("Cappuccino1");
1166
+ });
1167
+ it("should update the value of the input and options when passing the value directly", async () => {
1168
+ const page = await newE2EPage();
1169
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1170
+ await page.waitForChanges();
1171
+ const select = await page.find("ic-select");
1172
+ select.setAttribute("value", "foo");
1173
+ await page.waitForChanges();
1174
+ const selectInput = await page.find('ic-select >>> input[role="combobox"]');
1175
+ expect(await selectInput.getProperty("value")).toBe("foo");
1176
+ });
1177
+ it("should trigger icChange on input for each typed value", async () => {
1178
+ const page = await newE2EPage();
1179
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1180
+ await page.waitForChanges();
1181
+ const select = await page.find("ic-select");
1182
+ const icChange = await select.spyOnEvent("icChange");
1183
+ await focusAndTypeIntoInput("f", page);
1184
+ await page.waitForChanges();
1185
+ expect(icChange).toHaveReceivedEventDetail({
1186
+ value: "f",
1187
+ });
1188
+ await focusAndTypeIntoInput("o", page);
1189
+ await page.waitForChanges();
1190
+ expect(icChange).toHaveReceivedEventDetail({
1191
+ value: "fo",
1192
+ });
1193
+ await focusAndTypeIntoInput("o", page);
1194
+ await page.waitForChanges();
1195
+ expect(icChange).toHaveReceivedEventDetail({
1196
+ value: "foo",
1197
+ });
1198
+ });
1199
+ it("should not trigger icChange on highlighting menu items", async () => {
1200
+ const page = await newE2EPage();
1201
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1202
+ await page.waitForChanges();
1203
+ const select = await page.find("ic-select");
1204
+ const icChange = await select.spyOnEvent("icChange");
1205
+ await page.$eval("ic-select", (el) => {
1206
+ const input = el.shadowRoot.querySelector("input");
1207
+ input.focus();
1208
+ });
1209
+ await page.waitForChanges();
1210
+ await page.keyboard.press("ArrowDown");
1211
+ await page.waitForChanges();
1212
+ expect(icChange).not.toHaveReceivedEvent();
1213
+ await page.keyboard.press("ArrowDown");
1214
+ await page.waitForChanges();
1215
+ expect(icChange).not.toHaveReceivedEvent();
1216
+ });
1217
+ it("should not select a menu option when typing into the searchable input field", async () => {
1218
+ const page = await newE2EPage();
1219
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1220
+ await page.waitForChanges();
1221
+ await focusAndTypeIntoInput("Cap", page);
1222
+ await page.waitForChanges();
1223
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1224
+ expect(await getMenuVisibility(page)).toBe("visible");
1225
+ const firstOption = await menu.findAll("li");
1226
+ expect(firstOption[0]).not.toHaveClass("aria-selected");
1227
+ });
1228
+ it("should not selet a menu option when one has previously been set and backspace is pressed", async () => {
1229
+ const page = await newE2EPage();
1230
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1231
+ await page.waitForChanges();
1232
+ await focusAndTypeIntoInput("Lat", page);
1233
+ await page.waitForChanges();
1234
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1235
+ expect(await getMenuVisibility(page)).toBe("visible");
1236
+ await page.keyboard.press("ArrowDown");
1237
+ await page.waitForChanges();
1238
+ await page.keyboard.press("Enter");
1239
+ await page.waitForChanges();
1240
+ const inputValue = await page.$eval("ic-select", (el) => {
1241
+ const input = el.shadowRoot.querySelector("input");
1242
+ return input.value;
1243
+ });
1244
+ expect(inputValue).toBe("Latte");
1245
+ await page.keyboard.press("Backspace");
1246
+ await page.waitForChanges();
1247
+ await page.keyboard.press("Backspace");
1248
+ await page.waitForChanges();
1249
+ const options = await menu.findAll("li");
1250
+ options.forEach((option) => {
1251
+ expect(option).not.toHaveClass("aria-selected");
1252
+ });
1253
+ });
1254
+ it("should display selected option when selecting a menu option and then opening and closing the menu", async () => {
1255
+ const page = await newE2EPage();
1256
+ await page.setContent(getTestSearchableSelect(searchableOptions));
1257
+ await page.waitForChanges();
1258
+ await focusAndTypeIntoInput("Lat", page);
1259
+ await page.waitForChanges();
1260
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1261
+ expect(await getMenuVisibility(page)).toBe("visible");
1262
+ await page.keyboard.press("ArrowDown");
1263
+ await page.waitForChanges();
1264
+ await page.keyboard.press("Enter");
1265
+ await page.waitForChanges();
1266
+ const inputValue = await page.$eval("ic-select", (el) => {
1267
+ const input = el.shadowRoot.querySelector("input");
1268
+ return input.value;
1269
+ });
1270
+ expect(inputValue).toBe("Latte");
1271
+ await page.evaluate(() => {
1272
+ const button = document.querySelector("button");
1273
+ button.focus();
1274
+ });
1275
+ await page.waitForChanges();
1276
+ expect(await getMenuVisibility(page)).toBe("hidden");
1277
+ const select = await page.find("ic-select");
1278
+ await select.click();
1279
+ await page.keyboard.press("ArrowDown");
1280
+ await page.waitForChanges();
1281
+ const latteOption = await menu.find("li[data-value='Lat']");
1282
+ expect(latteOption).toHaveAttribute("aria-selected");
1283
+ });
1284
+ it("hidden input value when on initial load with default value", async () => {
1285
+ const page = await newE2EPage();
1286
+ await page.setContent(getTestSelectSearchableFormReset(options));
1287
+ await page.waitForChanges();
1288
+ const hiddenInput = await page.find("ic-select > [name*='ic-select-input-0']");
1289
+ expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
1290
+ });
1291
+ it("should submit hidden input value when updating value, pressing reset to initial value and then submitting", async () => {
1292
+ const page = await newE2EPage();
1293
+ await page.setContent(getTestSelectSearchableFormReset(options));
1294
+ await page.waitForChanges();
1295
+ const hiddenInput = await page.find("ic-select > [name*='ic-select-input-0']");
1296
+ expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
1297
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1298
+ await select.press("Backspace");
1299
+ await page.waitForChanges();
1300
+ expect(await getMenuVisibility(page)).toBe("visible");
1301
+ await page.keyboard.press("ArrowDown");
1302
+ await page.waitForChanges();
1303
+ await page.keyboard.press("ArrowDown");
1304
+ await page.waitForChanges();
1305
+ await page.keyboard.press("Enter");
1306
+ await page.waitForChanges();
1307
+ expect(hiddenInput.getAttribute("value")).toBe("Test value 2");
1308
+ await page.$eval("#resetButton", (el) => {
1309
+ const reset = el;
1310
+ reset.click();
1311
+ });
1312
+ await page.waitForChanges();
1313
+ expect(hiddenInput.getAttribute("value")).toBe("Test value 1");
1314
+ });
1315
+ it("should scroll menu", async () => {
1316
+ const page = await newE2EPage();
1317
+ await page.setContent(getTestSearchableSelect(largeOptions));
1318
+ await page.waitForChanges();
1319
+ await focusAndTypeIntoInput("Test", page);
1320
+ await page.waitForChanges();
1321
+ expect(await getMenuVisibility(page)).toBe("visible");
1322
+ await page.keyboard.press("ArrowDown");
1323
+ await page.waitForChanges();
1324
+ let menuScrollTop = await page.$eval("ic-select", (el) => {
1325
+ const menu = el.shadowRoot.querySelector("ic-menu ul");
1326
+ return menu.scrollTop;
1327
+ });
1328
+ expect(menuScrollTop).toBe(0);
1329
+ await page.keyboard.press("Enter");
1330
+ await page.waitForChanges();
1331
+ const inputValue = await page.$eval("ic-select", (el) => {
1332
+ const input = el.shadowRoot.querySelector("input");
1333
+ return input.value;
1334
+ });
1335
+ expect(inputValue).toBe("Test label 1");
1336
+ await page.$eval("ic-select", (el) => {
1337
+ const input = el.shadowRoot.querySelector("input");
1338
+ input.focus();
1339
+ });
1340
+ await page.waitForChanges();
1341
+ await page.keyboard.press("ArrowUp");
1342
+ await page.waitForChanges();
1343
+ menuScrollTop = await page.$eval("ic-select", (el) => {
1344
+ const menu = el.shadowRoot.querySelector("ic-menu ul");
1345
+ return menu.scrollTop;
1346
+ });
1347
+ expect(menuScrollTop).not.toBe(0);
1348
+ });
1349
+ it("should only highlight and select enabled options in searchable with arrowDown", async () => {
1350
+ const optionsWithDisabled = `[
1351
+ { label: 'Test label 1', value: 'Test value 1', disabled: true },
1352
+ { label: 'Test label 2', value: 'Test value 2' },
1353
+ { label: 'Test label 3', value: 'Test value 3', disabled: true },
1354
+ { label: 'Test label 4', value: 'Test value 4', disabled: true },
1355
+ { label: 'Test label 5', value: 'Test value 5' },
1356
+ ]`;
1357
+ const page = await newE2EPage();
1358
+ await page.setContent(getTestSearchableSelect(optionsWithDisabled));
1359
+ await page.waitForChanges();
1360
+ await focusAndTypeIntoInput("Test", page);
1361
+ await page.waitForChanges();
1362
+ expect(await getMenuVisibility(page)).toBe("visible");
1363
+ await page.keyboard.press("ArrowDown");
1364
+ await page.waitForChanges();
1365
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1366
+ const menuItems = await menu.findAll("li");
1367
+ expect(menuItems[0]).not.toHaveClass("focused-option");
1368
+ expect(menuItems[1]).toHaveClass("focused-option");
1369
+ await page.keyboard.press("Enter");
1370
+ await page.waitForChanges();
1371
+ let inputValue = await page.$eval("ic-select", (el) => {
1372
+ const input = el.shadowRoot.querySelector("input");
1373
+ return input.value;
1374
+ });
1375
+ expect(inputValue).toBe("Test label 2");
1376
+ await page.keyboard.press("ArrowDown");
1377
+ await page.waitForChanges();
1378
+ await page.keyboard.press("ArrowDown");
1379
+ await page.waitForChanges();
1380
+ await page.keyboard.press("Enter");
1381
+ await page.waitForChanges();
1382
+ inputValue = await page.$eval("ic-select", (el) => {
1383
+ const input = el.shadowRoot.querySelector("input");
1384
+ return input.value;
1385
+ });
1386
+ expect(inputValue).toBe("Test label 5");
1387
+ });
1388
+ it("should only highlight and select enabled options in searchable with arrowUp", async () => {
1389
+ const optionsWithDisabled = `[
1390
+ { label: 'Test label 1', value: 'Test value 1', disabled: true },
1391
+ { label: 'Test label 2', value: 'Test value 2' },
1392
+ { label: 'Test label 3', value: 'Test value 3', disabled: true },
1393
+ { label: 'Test label 4', value: 'Test value 4', disabled: true },
1394
+ { label: 'Test label 5', value: 'Test value 5' },
1395
+ ]`;
1396
+ const page = await newE2EPage();
1397
+ await page.setContent(getTestSearchableSelect(optionsWithDisabled));
1398
+ await page.waitForChanges();
1399
+ await focusAndTypeIntoInput("Test", page);
1400
+ await page.waitForChanges();
1401
+ expect(await getMenuVisibility(page)).toBe("visible");
1402
+ await page.keyboard.press("ArrowUp");
1403
+ await page.waitForChanges();
1404
+ const menu = await page.find("ic-select >>> #ic-select-input-0-menu");
1405
+ const menuItems = await menu.findAll("li");
1406
+ expect(menuItems[menuItems.length - 1]).toHaveClass("focused-option");
1407
+ expect(menuItems[menuItems.length - 2]).not.toHaveClass("focused-option");
1408
+ await page.keyboard.press("Enter");
1409
+ await page.waitForChanges();
1410
+ let inputValue = await page.$eval("ic-select", (el) => {
1411
+ const input = el.shadowRoot.querySelector("input");
1412
+ return input.value;
1413
+ });
1414
+ expect(inputValue).toBe("Test label 5");
1415
+ await page.keyboard.press("ArrowUp");
1416
+ await page.waitForChanges();
1417
+ await page.keyboard.press("ArrowUp");
1418
+ await page.waitForChanges();
1419
+ await page.keyboard.press("Enter");
1420
+ await page.waitForChanges();
1421
+ inputValue = await page.$eval("ic-select", (el) => {
1422
+ const input = el.shadowRoot.querySelector("input");
1423
+ return input.value;
1424
+ });
1425
+ expect(inputValue).toBe("Test label 2");
1426
+ });
1427
+ describe("loading", () => {
1428
+ it("should retry loading and keep the menu open when retry button is pressed with Spacebar", async () => {
1429
+ const page = await newE2EPage();
1430
+ await page.setContent(`<ic-select label="IC Select Test" searchable="true" options="[]" loading="true" timeout="500"></ic-select>`);
1431
+ await page.waitForChanges();
1432
+ const icRetryLoad = await page.spyOnEvent("icRetryLoad");
1433
+ await page.waitForTimeout(560);
1434
+ const firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li ic-typography");
1435
+ expect(firstOption).toEqualText("Loading Error");
1436
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1437
+ await select.click();
1438
+ await page.waitForChanges();
1439
+ const retryButton = await page.find("ic-select >>> #retry-button");
1440
+ await retryButton.press(" ");
1441
+ await page.waitForChanges();
1442
+ expect(icRetryLoad).toHaveReceivedEvent;
1443
+ expect(await getMenuVisibility(page)).toBe("visible");
1444
+ });
1445
+ it("should cancel loading if the clear button is pressed mid-load", async () => {
1446
+ const page = await newE2EPage();
1447
+ await page.setContent(`<ic-select label="IC Select Test" searchable="true" timeout="500"></ic-select>
1448
+ <script>
1449
+ var select = document.querySelector("ic-select");
1450
+ select.options = [];
1451
+ select.addEventListener("icChange", function() {
1452
+ select.loading = "true";
1453
+ });
1454
+ </script>`);
1455
+ await page.waitForChanges();
1456
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1457
+ await select.press("c");
1458
+ await page.waitForChanges();
1459
+ let firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
1460
+ expect(firstOption).toEqualText("Loading...");
1461
+ const clearButton = await page.find("ic-select >>> .clear-button");
1462
+ await clearButton.click();
1463
+ await page.waitForChanges();
1464
+ await page.waitForTimeout(560);
1465
+ firstOption = await page.find("ic-select >>> #ic-select-input-0-menu li");
1466
+ expect(firstOption).toBeNull;
1467
+ });
1468
+ });
1469
+ });
1470
+ it("should reset to initial value on form reset", async () => {
1471
+ const page = await newE2EPage();
1472
+ await page.setContent(getTestSelectFormReset(options));
1473
+ await page.waitForChanges();
1474
+ let value = await page.$eval("ic-select", (el) => {
1475
+ const select = el;
1476
+ return select.value;
1477
+ });
1478
+ expect(value).toBe(undefined);
1479
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1480
+ await select.press("Enter");
1481
+ await page.waitForChanges();
1482
+ await select.press("ArrowDown");
1483
+ await page.waitForChanges();
1484
+ value = await page.$eval("ic-select", (el) => {
1485
+ const select = el;
1486
+ return select.value;
1487
+ });
1488
+ expect(value).toBe("Test value 1");
1489
+ await page.$eval("#resetButton", (el) => {
1490
+ const reset = el;
1491
+ reset.click();
1492
+ });
1493
+ await page.waitForChanges();
1494
+ value = await page.$eval("ic-select", (el) => {
1495
+ const select = el;
1496
+ return select.value;
1497
+ });
1498
+ expect(value).toBe(undefined);
1499
+ });
1500
+ it("menu should not be visible on initial load if setting default value and disable filter is set", async () => {
1501
+ const page = await newE2EPage();
1502
+ await page.setContent(getTestSearchableSelectAsync());
1503
+ await page.waitForChanges();
1504
+ await page.waitForTimeout(900);
1505
+ expect(await getMenuVisibility(page)).toBe("hidden");
1506
+ });
1507
+ it("should reset to initial value on form reset with searchable", async () => {
1508
+ const page = await newE2EPage();
1509
+ await page.setContent(getTestSelectSearchableFormReset(options));
1510
+ await page.waitForChanges();
1511
+ let value = await page.$eval("ic-select", (el) => {
1512
+ const select = el;
1513
+ return select.value;
1514
+ });
1515
+ expect(value).toBe("Test value 1");
1516
+ const select = await page.find("ic-select >>> #ic-select-input-0");
1517
+ await select.press("ArrowDown");
1518
+ await page.waitForChanges();
1519
+ await select.press("ArrowDown");
1520
+ await page.waitForChanges();
1521
+ await select.press("Enter");
1522
+ await page.waitForChanges();
1523
+ value = await page.$eval("ic-select", (el) => {
1524
+ const select = el;
1525
+ return select.value;
1526
+ });
1527
+ expect(value).toBe("Test value 2");
1528
+ await page.$eval("#resetButton", (el) => {
1529
+ const reset = el;
1530
+ reset.click();
1531
+ });
1532
+ await page.waitForChanges();
1533
+ value = await page.$eval("ic-select", (el) => {
1534
+ const select = el;
1535
+ return select.value;
1536
+ });
1537
+ expect(value).toBe("Test value 1");
1538
+ });
1539
+ let page;
1540
+ describe("native", () => {
1541
+ beforeEach(async () => {
1542
+ page = await newE2EPage();
1543
+ await page.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
1544
+ await page.setViewport({
1545
+ width: 375,
1546
+ height: 667,
1547
+ isMobile: true,
1548
+ hasTouch: true,
1549
+ });
1550
+ });
1551
+ it("should render", async () => {
1552
+ await page.setContent(getTestSelect(options));
1553
+ await page.waitForChanges();
1554
+ const select = await page.find("ic-select >>> select");
1555
+ expect(select).not.toBeNull();
1556
+ });
1557
+ it("should render a native select when searchable is applied on mobile", async () => {
1558
+ await page.setContent(getTestSearchableSelect(options));
1559
+ await page.waitForChanges();
1560
+ const select = await page.find("ic-select >>> select");
1561
+ expect(select).not.toBeNull();
1562
+ });
1563
+ it("should render when no options are provided", async () => {
1564
+ await page.setContent(`<ic-select label="IC Select Test"></ic-select>`);
1565
+ await page.waitForChanges();
1566
+ const select = await page.find("ic-select >>> select");
1567
+ expect(select).not.toBeNull();
1568
+ });
1569
+ it("should disable options correctly", async () => {
1570
+ const optionsWithDisabled = `[
1571
+ { label: 'Test label 1', value: 'Test value 1', disabled: true },
1572
+ { label: 'Test label 2', value: 'Test value 2' },
1573
+ { label: 'Test label 3', value: 'Test value 3' },
1574
+ ]`;
1575
+ await page.setContent(getTestSelect(optionsWithDisabled));
1576
+ await page.waitForChanges();
1577
+ const optionsDisabled = await page.evaluate(() => Array.from(document
1578
+ .querySelector("ic-select")
1579
+ .shadowRoot.querySelectorAll("option"), (option) => option.disabled));
1580
+ expect(optionsDisabled[0]).toBe(true);
1581
+ });
1582
+ it("should render options as <optgroup>s if they have children", async () => {
1583
+ const groupedOptions = `[
1584
+ {
1585
+ label: 'Test group',
1586
+ children: [
1587
+ { label: 'Test label 1', value: 'Test value 1' },
1588
+ { label: 'Test label 2', value: 'Test value 2' },
1589
+ { label: 'Test label 3', value: 'Test value 3' },
1590
+ ],
1591
+ },
1592
+ ]`;
1593
+ await page.setContent(getTestSelect(groupedOptions));
1594
+ await page.waitForChanges();
1595
+ const optGroup = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("optgroup"));
1596
+ expect(optGroup).toBeTruthy();
1597
+ });
1598
+ it("should render a required <select> when required", async () => {
1599
+ await page.setContent(getTestSelect(options));
1600
+ const icSelect = await page.find("ic-select");
1601
+ icSelect.setAttribute("required", true);
1602
+ await page.waitForChanges();
1603
+ const select = await page.find("ic-select >>> select");
1604
+ expect(select).toHaveAttribute("required");
1605
+ });
1606
+ it("should not render a label when the 'hide-label' prop is supplied", async () => {
1607
+ await page.setContent(getTestSelect(options));
1608
+ const icSelect = await page.find("ic-select");
1609
+ icSelect.setAttribute("hide-label", true);
1610
+ await page.waitForChanges();
1611
+ const label = await page.find("ic-select >>> ic-input-label");
1612
+ expect(label).toBeNull();
1613
+ });
1614
+ it("should render a disabled <select> when the 'disabled' prop is supplied", async () => {
1615
+ await page.setContent(getTestSelect(options));
1616
+ const icSelect = await page.find("ic-select");
1617
+ icSelect.setAttribute("disabled", true);
1618
+ await page.waitForChanges();
1619
+ const select = await page.find("ic-select >>> select");
1620
+ expect(select).toHaveAttribute("disabled");
1621
+ });
1622
+ it("should render the selected value as text instead of rendering a <select> when read-only", async () => {
1623
+ await page.setContent(getTestSelect(options));
1624
+ const icSelect = await page.find("ic-select");
1625
+ icSelect.setAttribute("value", "Test value 1");
1626
+ icSelect.setAttribute("readonly", true);
1627
+ await page.waitForChanges();
1628
+ const select = await page.find("ic-select >>> select");
1629
+ const typography = await page.evaluate(() => Array.from(document
1630
+ .querySelector("ic-select")
1631
+ .shadowRoot.querySelectorAll("ic-typography"), (typography) => typography.innerText));
1632
+ expect(select).toBe(null);
1633
+ expect(typography[1]).toBe("Test label 1");
1634
+ });
1635
+ it("should render the correct placeholder", async () => {
1636
+ await page.setContent(getTestSelect(options));
1637
+ const icSelect = await page.find("ic-select");
1638
+ icSelect.setAttribute("placeholder", "Test placeholder");
1639
+ await page.waitForChanges();
1640
+ const optionLabels = await page.evaluate(() => Array.from(document
1641
+ .querySelector("ic-select")
1642
+ .shadowRoot.querySelectorAll("option"), (option) => option.innerText));
1643
+ expect(optionLabels[0]).toEqual("Test placeholder");
1644
+ });
1645
+ it("should set aria-invalid if validation status is 'error'", async () => {
1646
+ await page.setContent(getTestSelect(options));
1647
+ const icSelect = await page.find("ic-select");
1648
+ icSelect.setAttribute("validation-status", "error");
1649
+ await page.waitForChanges();
1650
+ const select = await page.find("ic-select >>> select");
1651
+ expect(select).toHaveAttribute("aria-invalid");
1652
+ });
1653
+ it("should display the value passed in using the 'value' prop as the selected option", async () => {
1654
+ await page.setContent(getTestSelect(options));
1655
+ const icSelect = await page.find("ic-select");
1656
+ icSelect.setAttribute("value", "Test value 1");
1657
+ await page.waitForChanges();
1658
+ const optionsSelected = await page.evaluate(() => Array.from(document
1659
+ .querySelector("ic-select")
1660
+ .shadowRoot.querySelectorAll("option"), (option) => option.selected));
1661
+ expect(optionsSelected[1]).toBe(true);
1662
+ });
1663
+ it("should set the correct name on the hidden input", async () => {
1664
+ await page.setContent(getTestSelect(options));
1665
+ const icSelect = await page.find("ic-select");
1666
+ icSelect.setAttribute("name", "Test name");
1667
+ await page.waitForChanges();
1668
+ const hiddenInput = await page.find("input");
1669
+ const hiddenInputName = await hiddenInput.getProperty("name");
1670
+ expect(hiddenInputName).toEqual("Test name");
1671
+ });
1672
+ it("should call icChange when the selected option is changed", async () => {
1673
+ await page.setContent(getTestSelect(options));
1674
+ await page.waitForChanges();
1675
+ const icChange = await page.spyOnEvent("icChange");
1676
+ const select = await page.find("ic-select >>> select");
1677
+ await select.press("ArrowDown");
1678
+ await select.press("Enter");
1679
+ await page.waitForChanges();
1680
+ expect(icChange).toHaveReceivedEventDetail({
1681
+ value: "Test value 1",
1682
+ });
1683
+ });
1684
+ it("should call icFocus when focused", async () => {
1685
+ await page.setContent(getTestSelect(options));
1686
+ await page.waitForChanges();
1687
+ const icFocus = await page.spyOnEvent("icFocus");
1688
+ await page.keyboard.down("Tab");
1689
+ await page.waitForChanges();
1690
+ expect(icFocus).toHaveReceivedEvent();
1691
+ });
1692
+ it("should call icBlur when it loses focus", async () => {
1693
+ await page.setContent(getTestSelect(options));
1694
+ await page.waitForChanges();
1695
+ const icBlur = await page.spyOnEvent("icBlur");
1696
+ await page.keyboard.down("Tab");
1697
+ await page.keyboard.down("Tab");
1698
+ await page.waitForChanges();
1699
+ expect(icBlur).toHaveReceivedEvent();
1700
+ });
1701
+ it("should set the 'placeholder' class name if no option is selected", async () => {
1702
+ await page.setContent(getTestSelect(options));
1703
+ await page.waitForChanges();
1704
+ const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
1705
+ .className);
1706
+ expect(selectClassName).toBe("placeholder");
1707
+ });
1708
+ it("should set the text colour to the primary text colour if an option is selected", async () => {
1709
+ await page.setContent(getTestSelect(options));
1710
+ const icSelect = await page.find("ic-select");
1711
+ icSelect.setAttribute("value", "Test value 1");
1712
+ await page.waitForChanges();
1713
+ const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
1714
+ .className);
1715
+ expect(selectClassName).toBe("select-option-selected");
1716
+ });
1717
+ it("should change the text colour to the primary text colour when an option is selected", async () => {
1718
+ await page.setContent(getTestSelect(options));
1719
+ await page.waitForChanges();
1720
+ const select = await page.find("ic-select >>> select");
1721
+ await select.press("ArrowDown");
1722
+ await select.press("Enter");
1723
+ await page.waitForChanges();
1724
+ const selectClassName = await page.evaluate(() => document.querySelector("ic-select").shadowRoot.querySelector("select")
1725
+ .className);
1726
+ expect(selectClassName).toBe("select-option-selected");
1727
+ });
1728
+ it("should add .menu-scroll to menu components when options height is over 320", async () => {
1729
+ const page = await newE2EPage();
1730
+ await page.setContent(getTestSelect(largeOptions));
1731
+ await page.waitForChanges();
1732
+ const select = await page.find("ic-select >>> button.select-input");
1733
+ await select.click();
1734
+ await page.waitForChanges();
1735
+ const menuClasses = await page.evaluate(() => {
1736
+ const menu = document
1737
+ .querySelector("ic-select")
1738
+ .shadowRoot.querySelector("ic-menu .menu");
1739
+ return menu.classList;
1740
+ });
1741
+ expect(Object.values(menuClasses).includes("menu-scroll")).toBeTruthy();
1742
+ });
1743
+ it("should add .menu-scroll to menu components when options are initially set and then populated with large data set", async () => {
1744
+ const page = await newE2EPage();
1745
+ await page.setContent(getTestSelectAsync(options, largeOptions));
1746
+ await page.waitForChanges();
1747
+ const select = await page.find("ic-select >>> button.select-input");
1748
+ await select.click();
1749
+ await page.waitForChanges();
1750
+ let menuClasses = await page.evaluate(() => {
1751
+ const menu = document
1752
+ .querySelector("ic-select")
1753
+ .shadowRoot.querySelector("ic-menu .menu");
1754
+ return menu.classList;
1755
+ });
1756
+ expect(Object.values(menuClasses).includes("menu-scroll")).toBeFalsy();
1757
+ await page.waitForTimeout(1200);
1758
+ menuClasses = await page.evaluate(() => {
1759
+ const menu = document
1760
+ .querySelector("ic-select")
1761
+ .shadowRoot.querySelector("ic-menu .menu");
1762
+ return menu.classList;
1763
+ });
1764
+ expect(Object.values(menuClasses).includes("menu-scroll")).toBeTruthy();
1765
+ });
1766
+ });
1767
+ });
1768
+ //# sourceMappingURL=ic-select.e2e.js.map