@ukic/web-components 2.1.0-beta.15 → 2.1.0-beta.17

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