@ukic/web-components 2.8.0 → 2.10.0

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