@ukic/web-components 2.8.0 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1070) 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 +615 -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 +678 -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 +93 -93
  70. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-pagination-item.cjs.entry.js +42 -42
  72. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination.cjs.entry.js +196 -195
  74. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-popover-menu.cjs.entry.js +231 -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 +639 -639
  86. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-side-navigation.cjs.entry.js +424 -426
  88. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-skeleton.cjs.entry.js +43 -43
  90. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-status-tag.cjs.entry.js +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/collection-manifest.json +2 -2
  125. package/dist/collection/components/ic-accordion/ic-accordion.js +276 -276
  126. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  127. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +39 -39
  128. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -1
  129. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +215 -215
  130. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -1
  131. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +200 -200
  132. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  133. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +5 -5
  134. package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -1
  135. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +68 -68
  136. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -1
  137. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +71 -71
  138. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -1
  139. package/dist/collection/components/ic-alert/ic-alert.js +231 -231
  140. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  141. package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js +5 -5
  142. package/dist/collection/components/ic-alert/test/a11y/ic-alert.test.a11y.js.map +1 -1
  143. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js +12 -12
  144. package/dist/collection/components/ic-alert/test/basic/ic-alert.e2e.js.map +1 -1
  145. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +44 -44
  146. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  147. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +159 -159
  148. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  149. package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js +14 -14
  150. package/dist/collection/components/ic-back-to-top/test/a11y/ic-back-to-top.test.a11y.js.map +1 -1
  151. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js +43 -43
  152. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.e2e.js.map +1 -1
  153. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +102 -102
  154. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
  155. package/dist/collection/components/ic-badge/ic-badge.js +385 -385
  156. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  157. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +10 -10
  158. package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -1
  159. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +172 -172
  160. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  161. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +9 -1
  162. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +186 -157
  163. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  164. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +43 -43
  165. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +1 -1
  166. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +250 -220
  167. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  168. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js +10 -10
  169. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js.map +1 -1
  170. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js +34 -34
  171. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js.map +1 -1
  172. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +156 -118
  173. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +1 -1
  174. package/dist/collection/components/ic-button/ic-button.css +14 -0
  175. package/dist/collection/components/ic-button/ic-button.js +798 -773
  176. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  177. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js +5 -5
  178. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js.map +1 -1
  179. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +114 -114
  180. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js.map +1 -1
  181. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +249 -236
  182. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  183. package/dist/collection/components/ic-card/ic-card.js +375 -375
  184. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  185. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js +15 -15
  186. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js.map +1 -1
  187. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js +19 -19
  188. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js.map +1 -1
  189. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js +147 -147
  190. package/dist/collection/components/ic-card/test/basic/ic-card.spec.js.map +1 -1
  191. package/dist/collection/components/ic-checkbox/ic-checkbox.css +6 -6
  192. package/dist/collection/components/ic-checkbox/ic-checkbox.js +474 -474
  193. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  194. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +302 -302
  195. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  196. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js +5 -5
  197. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js.map +1 -1
  198. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js +124 -124
  199. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js.map +1 -1
  200. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +148 -148
  201. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  202. package/dist/collection/components/ic-chip/ic-chip.css +8 -0
  203. package/dist/collection/components/ic-chip/ic-chip.js +291 -271
  204. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  205. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js +5 -5
  206. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js.map +1 -1
  207. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +81 -81
  208. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  209. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +132 -132
  210. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  211. package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js +5 -5
  212. package/dist/collection/components/ic-classification-banner/test/a11y/ic-classification-banner.test.a11y.js.map +1 -1
  213. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +55 -55
  214. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +1 -1
  215. package/dist/collection/components/ic-data-entity/ic-data-entity.js +92 -92
  216. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  217. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js +5 -5
  218. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js.map +1 -1
  219. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +28 -28
  220. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  221. package/dist/collection/components/ic-data-row/ic-data-row.js +170 -170
  222. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  223. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js +14 -14
  224. package/dist/collection/components/ic-data-row/test/a11y/ic-data-row.test.a11y.js.map +1 -1
  225. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +61 -61
  226. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +1 -1
  227. package/dist/collection/components/ic-dialog/ic-dialog.js +765 -765
  228. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  229. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js +5 -5
  230. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js.map +1 -1
  231. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +155 -155
  232. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  233. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +573 -573
  234. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  235. package/dist/collection/components/ic-divider/ic-divider.js +38 -38
  236. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  237. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +17 -17
  238. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +1 -1
  239. package/dist/collection/components/ic-empty-state/ic-empty-state.js +151 -151
  240. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  241. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js +5 -5
  242. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js.map +1 -1
  243. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +52 -52
  244. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +1 -1
  245. package/dist/collection/components/ic-footer/ic-footer.js +242 -242
  246. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  247. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +15 -15
  248. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +1 -1
  249. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js +25 -25
  250. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js.map +1 -1
  251. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +108 -108
  252. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +1 -1
  253. package/dist/collection/components/ic-footer-link/ic-footer-link.js +190 -190
  254. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  255. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js +13 -13
  256. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js.map +1 -1
  257. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +36 -36
  258. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +1 -1
  259. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +107 -107
  260. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  261. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js +13 -13
  262. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js.map +1 -1
  263. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +52 -52
  264. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +1 -1
  265. package/dist/collection/components/ic-hero/ic-hero.js +292 -292
  266. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  267. package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js +5 -5
  268. package/dist/collection/components/ic-hero/test/a11y/ic-hero.test.a11y.js.map +1 -1
  269. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +62 -62
  270. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +1 -1
  271. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +241 -240
  272. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  273. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js +17 -17
  274. package/dist/collection/components/ic-horizontal-scroll/test/a11y/ic-horizontal-scroll.test.a11y.js.map +1 -1
  275. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +145 -145
  276. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -1
  277. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +248 -248
  278. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  279. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +49 -49
  280. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  281. package/dist/collection/components/ic-input-container/ic-input-container.js +62 -62
  282. package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
  283. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +19 -19
  284. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +1 -1
  285. package/dist/collection/components/ic-input-label/ic-input-label.js +211 -211
  286. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  287. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +37 -37
  288. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  289. package/dist/collection/components/ic-input-validation/ic-input-validation.js +139 -139
  290. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  291. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +31 -31
  292. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +1 -1
  293. package/dist/collection/components/ic-link/ic-link.js +248 -248
  294. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  295. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js +5 -5
  296. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js.map +1 -1
  297. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +92 -92
  298. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  299. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +416 -415
  300. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  301. package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js +5 -5
  302. package/dist/collection/components/ic-loading-indicator/test/a11y/ic-loading-indicator.test.a11y.js.map +1 -1
  303. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js +25 -25
  304. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.e2e.js.map +1 -1
  305. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +114 -114
  306. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +1 -1
  307. package/dist/collection/components/ic-menu/ic-menu.js +1268 -1269
  308. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  309. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +684 -684
  310. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  311. package/dist/collection/components/ic-menu-group/ic-menu-group.js +41 -41
  312. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  313. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +16 -16
  314. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +1 -1
  315. package/dist/collection/components/ic-menu-item/ic-menu-item.js +378 -378
  316. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  317. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +67 -67
  318. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  319. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +262 -259
  320. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  321. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +41 -41
  322. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  323. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +380 -380
  324. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  325. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js +14 -14
  326. package/dist/collection/components/ic-navigation-group/test/a11y/ic-navigation-group.test.a11y.js.map +1 -1
  327. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +242 -242
  328. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -1
  329. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +446 -446
  330. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  331. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js +14 -14
  332. package/dist/collection/components/ic-navigation-item/test/a11y/ic-navigation-item.test.a11y.js.map +1 -1
  333. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +78 -78
  334. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +1 -1
  335. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +187 -187
  336. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  337. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js +25 -25
  338. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.e2e.js.map +1 -1
  339. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +104 -104
  340. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +1 -1
  341. package/dist/collection/components/ic-page-header/ic-page-header.js +286 -286
  342. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  343. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js +5 -5
  344. package/dist/collection/components/ic-page-header/test/a11y/ic-page-header.test.a11y.js.map +1 -1
  345. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js +66 -66
  346. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.e2e.js.map +1 -1
  347. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +82 -82
  348. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +1 -1
  349. package/dist/collection/components/ic-pagination/ic-pagination.js +487 -482
  350. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  351. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +5 -5
  352. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
  353. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js +103 -103
  354. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.e2e.js.map +1 -1
  355. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +303 -303
  356. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +1 -1
  357. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +225 -225
  358. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  359. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +437 -437
  360. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  361. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js +5 -5
  362. package/dist/collection/components/ic-popover-menu/test/a11y/ic-popover-menu.test.a11y.js.map +1 -1
  363. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js +27 -27
  364. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.e2e.js.map +1 -1
  365. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +283 -283
  366. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -1
  367. package/dist/collection/components/ic-radio-group/ic-radio-group.js +429 -429
  368. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  369. package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js +5 -5
  370. package/dist/collection/components/ic-radio-group/test/a11y/ic-radio-group.test.a11y.js.map +1 -1
  371. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +218 -218
  372. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +1 -1
  373. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +238 -238
  374. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  375. package/dist/collection/components/ic-radio-option/ic-radio-option.css +5 -5
  376. package/dist/collection/components/ic-radio-option/ic-radio-option.js +479 -479
  377. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  378. package/dist/collection/components/ic-search-bar/ic-search-bar.js +1381 -1381
  379. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  380. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js +5 -5
  381. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js.map +1 -1
  382. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +992 -992
  383. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  384. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +568 -568
  385. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +1 -1
  386. package/dist/collection/components/ic-section-container/ic-section-container.js +70 -70
  387. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  388. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +28 -28
  389. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +1 -1
  390. package/dist/collection/components/ic-select/ic-select.js +1466 -1466
  391. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  392. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +5 -5
  393. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +1 -1
  394. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +1563 -1563
  395. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  396. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +1299 -1299
  397. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  398. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +675 -654
  399. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  400. package/dist/collection/components/ic-side-navigation/ic-side-navigation.types.js.map +1 -1
  401. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js +5 -5
  402. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js.map +1 -1
  403. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +463 -463
  404. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  405. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +143 -143
  406. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  407. package/dist/collection/components/ic-skeleton/ic-skeleton.js +127 -127
  408. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  409. package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js +5 -5
  410. package/dist/collection/components/ic-skeleton/test/a11y/ic-skeleton.test.a11y.js.map +1 -1
  411. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +38 -38
  412. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +1 -1
  413. package/dist/collection/components/ic-status-tag/ic-status-tag.js +194 -194
  414. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  415. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js +5 -5
  416. package/dist/collection/components/ic-status-tag/test/a11y/ic-status-tag.test.a11y.js.map +1 -1
  417. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +14 -14
  418. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
  419. package/dist/collection/components/ic-step/ic-step.css +6 -0
  420. package/dist/collection/components/ic-step/ic-step.js +385 -385
  421. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  422. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +87 -87
  423. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +1 -1
  424. package/dist/collection/components/ic-stepper/ic-stepper.js +306 -306
  425. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  426. package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js +10 -10
  427. package/dist/collection/components/ic-stepper/test/a11y/ic-stepper.test.a11y.js.map +1 -1
  428. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js +36 -36
  429. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js.map +1 -1
  430. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +350 -350
  431. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  432. package/dist/collection/components/ic-switch/ic-switch.js +355 -355
  433. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  434. package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js +5 -5
  435. package/dist/collection/components/ic-switch/test/a11y/ic-switch.test.a11y.js.map +1 -1
  436. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +88 -88
  437. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +1 -1
  438. package/dist/collection/components/ic-tab/ic-tab.js +350 -350
  439. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  440. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js +26 -26
  441. package/dist/collection/components/ic-tab/test/basic/ic-tab.e2e.js.map +1 -1
  442. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +93 -93
  443. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +1 -1
  444. package/dist/collection/components/ic-tab-context/ic-tab-context.js +442 -441
  445. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  446. package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js +5 -5
  447. package/dist/collection/components/ic-tab-context/test/a11y/ic-tab-context.test.a11y.js.map +1 -1
  448. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +213 -213
  449. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  450. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +250 -250
  451. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +1 -1
  452. package/dist/collection/components/ic-tab-group/ic-tab-group.js +117 -117
  453. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  454. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +444 -1
  455. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +191 -191
  456. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  457. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +29 -29
  458. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +1 -1
  459. package/dist/collection/components/ic-text-field/ic-text-field.js +1115 -1115
  460. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  461. package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js +5 -5
  462. package/dist/collection/components/ic-text-field/test/a11y/ic-text-field.test.a11y.js.map +1 -1
  463. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js +94 -94
  464. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.e2e.js.map +1 -1
  465. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +194 -194
  466. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  467. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +92 -92
  468. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  469. package/dist/collection/components/ic-theme/ic-theme.js +99 -99
  470. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  471. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +65 -65
  472. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +1 -1
  473. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +53 -53
  474. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +1 -1
  475. package/dist/collection/components/ic-toast/ic-toast.js +368 -368
  476. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  477. package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js +10 -10
  478. package/dist/collection/components/ic-toast/test/a11y/ic-toast.test.a11y.js.map +1 -1
  479. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js +66 -66
  480. package/dist/collection/components/ic-toast/test/basic/ic-toast.e2e.js.map +1 -1
  481. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +180 -180
  482. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
  483. package/dist/collection/components/ic-toast-region/ic-toast-region.js +115 -110
  484. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  485. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +58 -58
  486. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  487. package/dist/collection/components/ic-tooltip/ic-tooltip.js +347 -329
  488. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  489. package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js +5 -5
  490. package/dist/collection/components/ic-tooltip/test/a11y/ic-tooltip.test.a11y.js.map +1 -1
  491. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +105 -105
  492. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  493. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +276 -276
  494. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  495. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +0 -4
  496. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +431 -418
  497. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  498. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +20 -20
  499. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +1 -1
  500. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js +43 -43
  501. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js.map +1 -1
  502. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +191 -191
  503. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
  504. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +180 -180
  505. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +1 -1
  506. package/dist/collection/components/ic-typography/ic-typography.js +270 -270
  507. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  508. package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js +5 -5
  509. package/dist/collection/components/ic-typography/test/a11y/ic-typography.test.a11y.js.map +1 -1
  510. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +25 -25
  511. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
  512. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +276 -276
  513. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  514. package/dist/collection/testspec.setup.js +32 -32
  515. package/dist/collection/testspec.setup.js.map +1 -1
  516. package/dist/collection/utils/constants.js +55 -55
  517. package/dist/collection/utils/constants.js.map +1 -1
  518. package/dist/collection/utils/helpers.js +235 -235
  519. package/dist/collection/utils/helpers.js.map +1 -1
  520. package/dist/collection/utils/testa11y.helpers.js +2 -2
  521. package/dist/collection/utils/testa11y.helpers.js.map +1 -1
  522. package/dist/collection/utils/types.js +6 -6
  523. package/dist/collection/utils/types.js.map +1 -1
  524. package/dist/components/helpers.js +290 -290
  525. package/dist/components/helpers.js.map +1 -1
  526. package/dist/components/ic-accordion-group.d.ts +2 -2
  527. package/dist/components/ic-accordion-group.js +112 -112
  528. package/dist/components/ic-accordion-group.js.map +1 -1
  529. package/dist/components/ic-accordion.d.ts +2 -2
  530. package/dist/components/ic-accordion.js +125 -125
  531. package/dist/components/ic-accordion.js.map +1 -1
  532. package/dist/components/ic-alert.d.ts +2 -2
  533. package/dist/components/ic-alert2.js +98 -98
  534. package/dist/components/ic-alert2.js.map +1 -1
  535. package/dist/components/ic-back-to-top.d.ts +2 -2
  536. package/dist/components/ic-back-to-top.js +143 -143
  537. package/dist/components/ic-back-to-top.js.map +1 -1
  538. package/dist/components/ic-badge.d.ts +2 -2
  539. package/dist/components/ic-badge.js +174 -174
  540. package/dist/components/ic-badge.js.map +1 -1
  541. package/dist/components/ic-breadcrumb-group.d.ts +2 -2
  542. package/dist/components/ic-breadcrumb-group.js +199 -192
  543. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  544. package/dist/components/ic-breadcrumb.d.ts +2 -2
  545. package/dist/components/ic-breadcrumb2.js +78 -75
  546. package/dist/components/ic-breadcrumb2.js.map +1 -1
  547. package/dist/components/ic-button.d.ts +2 -2
  548. package/dist/components/ic-button2.js +312 -304
  549. package/dist/components/ic-button2.js.map +1 -1
  550. package/dist/components/ic-card.d.ts +2 -2
  551. package/dist/components/ic-card.js +155 -155
  552. package/dist/components/ic-card.js.map +1 -1
  553. package/dist/components/ic-checkbox-group.d.ts +2 -2
  554. package/dist/components/ic-checkbox-group.js +97 -97
  555. package/dist/components/ic-checkbox-group.js.map +1 -1
  556. package/dist/components/ic-checkbox.d.ts +2 -2
  557. package/dist/components/ic-checkbox.js +131 -131
  558. package/dist/components/ic-checkbox.js.map +1 -1
  559. package/dist/components/ic-chip.d.ts +2 -2
  560. package/dist/components/ic-chip.js +99 -96
  561. package/dist/components/ic-chip.js.map +1 -1
  562. package/dist/components/ic-classification-banner.d.ts +2 -2
  563. package/dist/components/ic-classification-banner.js +47 -47
  564. package/dist/components/ic-classification-banner.js.map +1 -1
  565. package/dist/components/ic-data-entity.d.ts +2 -2
  566. package/dist/components/ic-data-entity.js +39 -39
  567. package/dist/components/ic-data-entity.js.map +1 -1
  568. package/dist/components/ic-data-row.d.ts +2 -2
  569. package/dist/components/ic-data-row.js +97 -97
  570. package/dist/components/ic-data-row.js.map +1 -1
  571. package/dist/components/ic-dialog.d.ts +2 -2
  572. package/dist/components/ic-dialog.js +399 -399
  573. package/dist/components/ic-dialog.js.map +1 -1
  574. package/dist/components/ic-divider.d.ts +2 -2
  575. package/dist/components/ic-divider2.js +28 -28
  576. package/dist/components/ic-divider2.js.map +1 -1
  577. package/dist/components/ic-empty-state.d.ts +2 -2
  578. package/dist/components/ic-empty-state.js +47 -47
  579. package/dist/components/ic-empty-state.js.map +1 -1
  580. package/dist/components/ic-footer-link-group.d.ts +2 -2
  581. package/dist/components/ic-footer-link-group.js +82 -82
  582. package/dist/components/ic-footer-link-group.js.map +1 -1
  583. package/dist/components/ic-footer-link.d.ts +2 -2
  584. package/dist/components/ic-footer-link.js +71 -71
  585. package/dist/components/ic-footer-link.js.map +1 -1
  586. package/dist/components/ic-footer.d.ts +2 -2
  587. package/dist/components/ic-footer.js +108 -108
  588. package/dist/components/ic-footer.js.map +1 -1
  589. package/dist/components/ic-hero.d.ts +2 -2
  590. package/dist/components/ic-hero.js +98 -98
  591. package/dist/components/ic-hero.js.map +1 -1
  592. package/dist/components/ic-horizontal-scroll.d.ts +2 -2
  593. package/dist/components/ic-horizontal-scroll2.js +189 -189
  594. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  595. package/dist/components/ic-input-component-container.d.ts +2 -2
  596. package/dist/components/ic-input-component-container2.js +61 -61
  597. package/dist/components/ic-input-component-container2.js.map +1 -1
  598. package/dist/components/ic-input-container.d.ts +2 -2
  599. package/dist/components/ic-input-container2.js +28 -28
  600. package/dist/components/ic-input-container2.js.map +1 -1
  601. package/dist/components/ic-input-label.d.ts +2 -2
  602. package/dist/components/ic-input-label2.js +62 -62
  603. package/dist/components/ic-input-label2.js.map +1 -1
  604. package/dist/components/ic-input-validation.d.ts +2 -2
  605. package/dist/components/ic-input-validation2.js +50 -50
  606. package/dist/components/ic-input-validation2.js.map +1 -1
  607. package/dist/components/ic-link.d.ts +2 -2
  608. package/dist/components/ic-link2.js +76 -76
  609. package/dist/components/ic-link2.js.map +1 -1
  610. package/dist/components/ic-loading-indicator.d.ts +2 -2
  611. package/dist/components/ic-loading-indicator2.js +211 -210
  612. package/dist/components/ic-loading-indicator2.js.map +1 -1
  613. package/dist/components/ic-menu-group.d.ts +2 -2
  614. package/dist/components/ic-menu-group.js +30 -30
  615. package/dist/components/ic-menu-group.js.map +1 -1
  616. package/dist/components/ic-menu-item.d.ts +2 -2
  617. package/dist/components/ic-menu-item2.js +144 -144
  618. package/dist/components/ic-menu-item2.js.map +1 -1
  619. package/dist/components/ic-menu.d.ts +2 -2
  620. package/dist/components/ic-menu2.js +691 -691
  621. package/dist/components/ic-menu2.js.map +1 -1
  622. package/dist/components/ic-navigation-button.d.ts +2 -2
  623. package/dist/components/ic-navigation-button.js +121 -118
  624. package/dist/components/ic-navigation-button.js.map +1 -1
  625. package/dist/components/ic-navigation-group.d.ts +2 -2
  626. package/dist/components/ic-navigation-group.js +310 -310
  627. package/dist/components/ic-navigation-group.js.map +1 -1
  628. package/dist/components/ic-navigation-item.d.ts +2 -2
  629. package/dist/components/ic-navigation-item.js +194 -194
  630. package/dist/components/ic-navigation-item.js.map +1 -1
  631. package/dist/components/ic-navigation-menu.d.ts +2 -2
  632. package/dist/components/ic-navigation-menu2.js +139 -139
  633. package/dist/components/ic-navigation-menu2.js.map +1 -1
  634. package/dist/components/ic-page-header.d.ts +2 -2
  635. package/dist/components/ic-page-header.js +147 -147
  636. package/dist/components/ic-page-header.js.map +1 -1
  637. package/dist/components/ic-pagination-item.d.ts +2 -2
  638. package/dist/components/ic-pagination-item2.js +67 -67
  639. package/dist/components/ic-pagination-item2.js.map +1 -1
  640. package/dist/components/ic-pagination.d.ts +2 -2
  641. package/dist/components/ic-pagination.js +253 -252
  642. package/dist/components/ic-pagination.js.map +1 -1
  643. package/dist/components/ic-popover-menu.d.ts +2 -2
  644. package/dist/components/ic-popover-menu.js +280 -280
  645. package/dist/components/ic-popover-menu.js.map +1 -1
  646. package/dist/components/ic-radio-group.d.ts +2 -2
  647. package/dist/components/ic-radio-group.js +200 -200
  648. package/dist/components/ic-radio-group.js.map +1 -1
  649. package/dist/components/ic-radio-option.d.ts +2 -2
  650. package/dist/components/ic-radio-option.js +163 -163
  651. package/dist/components/ic-radio-option.js.map +1 -1
  652. package/dist/components/ic-search-bar.d.ts +2 -2
  653. package/dist/components/ic-search-bar.js +580 -580
  654. package/dist/components/ic-search-bar.js.map +1 -1
  655. package/dist/components/ic-section-container.d.ts +2 -2
  656. package/dist/components/ic-section-container2.js +31 -31
  657. package/dist/components/ic-section-container2.js.map +1 -1
  658. package/dist/components/ic-select.d.ts +2 -2
  659. package/dist/components/ic-select.js +751 -751
  660. package/dist/components/ic-select.js.map +1 -1
  661. package/dist/components/ic-side-navigation.d.ts +2 -2
  662. package/dist/components/ic-side-navigation.js +479 -481
  663. package/dist/components/ic-side-navigation.js.map +1 -1
  664. package/dist/components/ic-skeleton.d.ts +2 -2
  665. package/dist/components/ic-skeleton.js +64 -64
  666. package/dist/components/ic-skeleton.js.map +1 -1
  667. package/dist/components/ic-status-tag.d.ts +2 -2
  668. package/dist/components/ic-status-tag.js +53 -53
  669. package/dist/components/ic-status-tag.js.map +1 -1
  670. package/dist/components/ic-step.d.ts +2 -2
  671. package/dist/components/ic-step.js +157 -157
  672. package/dist/components/ic-step.js.map +1 -1
  673. package/dist/components/ic-stepper.d.ts +2 -2
  674. package/dist/components/ic-stepper.js +223 -223
  675. package/dist/components/ic-stepper.js.map +1 -1
  676. package/dist/components/ic-switch.d.ts +2 -2
  677. package/dist/components/ic-switch.js +114 -114
  678. package/dist/components/ic-switch.js.map +1 -1
  679. package/dist/components/ic-tab-context.d.ts +2 -2
  680. package/dist/components/ic-tab-context.js +271 -271
  681. package/dist/components/ic-tab-context.js.map +1 -1
  682. package/dist/components/ic-tab-group.d.ts +2 -2
  683. package/dist/components/ic-tab-group.js +64 -64
  684. package/dist/components/ic-tab-group.js.map +1 -1
  685. package/dist/components/ic-tab-panel.d.ts +2 -2
  686. package/dist/components/ic-tab-panel.js +48 -48
  687. package/dist/components/ic-tab-panel.js.map +1 -1
  688. package/dist/components/ic-tab.d.ts +2 -2
  689. package/dist/components/ic-tab.js +112 -112
  690. package/dist/components/ic-tab.js.map +1 -1
  691. package/dist/components/ic-text-field.d.ts +2 -2
  692. package/dist/components/ic-text-field2.js +293 -293
  693. package/dist/components/ic-text-field2.js.map +1 -1
  694. package/dist/components/ic-theme.d.ts +2 -2
  695. package/dist/components/ic-theme.js +65 -65
  696. package/dist/components/ic-theme.js.map +1 -1
  697. package/dist/components/ic-toast-region.d.ts +2 -2
  698. package/dist/components/ic-toast-region.js +63 -62
  699. package/dist/components/ic-toast-region.js.map +1 -1
  700. package/dist/components/ic-toast.d.ts +2 -2
  701. package/dist/components/ic-toast.js +187 -187
  702. package/dist/components/ic-toast.js.map +1 -1
  703. package/dist/components/ic-tooltip.d.ts +2 -2
  704. package/dist/components/ic-tooltip2.js +213 -211
  705. package/dist/components/ic-tooltip2.js.map +1 -1
  706. package/dist/components/ic-top-navigation.d.ts +2 -2
  707. package/dist/components/ic-top-navigation.js +263 -264
  708. package/dist/components/ic-top-navigation.js.map +1 -1
  709. package/dist/components/ic-typography.d.ts +2 -2
  710. package/dist/components/ic-typography2.js +142 -142
  711. package/dist/components/ic-typography2.js.map +1 -1
  712. package/dist/components/types.js +6 -6
  713. package/dist/components/types.js.map +1 -1
  714. package/dist/core/core.css +1 -1
  715. package/dist/core/core.esm.js +1 -1
  716. package/dist/core/core.esm.js.map +1 -1
  717. package/dist/core/p-02159742.entry.js +2 -0
  718. package/dist/core/p-02159742.entry.js.map +1 -0
  719. package/dist/core/{p-7ce86152.entry.js → p-056f8a67.entry.js} +2 -2
  720. package/dist/core/{p-08b59078.entry.js → p-11736fbe.entry.js} +2 -2
  721. package/dist/core/{p-ba495175.entry.js → p-15466b42.entry.js} +2 -2
  722. package/dist/core/{p-ba495175.entry.js.map → p-15466b42.entry.js.map} +1 -1
  723. package/dist/core/{p-5ccbb042.entry.js → p-15624e08.entry.js} +2 -2
  724. package/dist/core/{p-5fcd202e.entry.js → p-15ef0674.entry.js} +2 -2
  725. package/dist/core/{p-88ea1e49.entry.js → p-180e36b1.entry.js} +2 -2
  726. package/dist/core/{p-43af3cf6.entry.js → p-22c024ee.entry.js} +2 -2
  727. package/dist/core/{p-613aa265.js → p-26b7b18f.js} +1 -1
  728. package/dist/core/{p-932fb4b7.entry.js → p-287ab47c.entry.js} +2 -2
  729. package/dist/core/{p-69948c3e.entry.js → p-2b24b4bf.entry.js} +2 -2
  730. package/dist/core/{p-9f6ffced.entry.js → p-31969be6.entry.js} +2 -2
  731. package/dist/core/{p-475b7bd2.entry.js → p-335fc5e4.entry.js} +2 -2
  732. package/dist/core/{p-c9ef9f5c.entry.js → p-366bcb17.entry.js} +2 -2
  733. package/dist/core/{p-ed256f1d.entry.js → p-3a0ef91e.entry.js} +2 -2
  734. package/dist/core/{p-ca6073be.entry.js → p-498eb7ad.entry.js} +2 -2
  735. package/dist/core/p-498eb7ad.entry.js.map +1 -0
  736. package/dist/core/{p-cb5f19ea.entry.js → p-51f9f329.entry.js} +2 -2
  737. package/dist/core/{p-f019219c.entry.js → p-529d8955.entry.js} +2 -2
  738. package/dist/core/p-52e063d3.js +3 -0
  739. package/dist/core/p-52e063d3.js.map +1 -0
  740. package/dist/core/{p-b879fa3e.entry.js → p-5c7e339f.entry.js} +2 -2
  741. package/dist/core/p-5f9d69ef.entry.js +2 -0
  742. package/dist/core/p-5f9d69ef.entry.js.map +1 -0
  743. package/dist/core/{p-2c30b583.entry.js → p-60c4604f.entry.js} +2 -2
  744. package/dist/core/{p-99fad66b.entry.js → p-6bc431b2.entry.js} +2 -2
  745. package/dist/core/{p-ccac1730.entry.js → p-6d3f9501.entry.js} +2 -2
  746. package/dist/core/{p-536b3c97.entry.js → p-6eb0421d.entry.js} +2 -2
  747. package/dist/core/{p-48525498.entry.js → p-765bdd98.entry.js} +2 -2
  748. package/dist/core/{p-3a814fc4.entry.js → p-7f887c1e.entry.js} +2 -2
  749. package/dist/core/{p-752f0f9a.entry.js → p-8a83f391.entry.js} +2 -2
  750. package/dist/core/p-8a83f391.entry.js.map +1 -0
  751. package/dist/core/{p-e3bffcae.entry.js → p-94e88827.entry.js} +2 -2
  752. package/dist/core/{p-8fb4f0c0.js → p-95a864bf.js} +2 -2
  753. package/dist/core/{p-c0c62df4.entry.js → p-9639e33f.entry.js} +2 -2
  754. package/dist/core/p-9639e33f.entry.js.map +1 -0
  755. package/dist/core/{p-eb4641a9.entry.js → p-96da1e85.entry.js} +2 -2
  756. package/dist/core/{p-69d15528.entry.js → p-988991d3.entry.js} +2 -2
  757. package/dist/core/{p-0c82048e.entry.js → p-9c30720d.entry.js} +2 -2
  758. package/dist/core/{p-a76912b0.entry.js → p-aa0a9870.entry.js} +2 -2
  759. package/dist/core/{p-76563540.entry.js → p-ad36a704.entry.js} +2 -2
  760. package/dist/core/{p-d80f99e0.entry.js → p-b0088956.entry.js} +2 -2
  761. package/dist/core/p-b39ecae2.entry.js +2 -0
  762. package/dist/core/p-b39ecae2.entry.js.map +1 -0
  763. package/dist/core/{p-2265e418.entry.js → p-b6a575c3.entry.js} +2 -2
  764. package/dist/core/{p-fbc8a739.entry.js → p-b9736cf4.entry.js} +2 -2
  765. package/dist/core/{p-025f9d2a.entry.js → p-b99f9e89.entry.js} +2 -2
  766. package/dist/core/{p-b0ce60a0.entry.js → p-c2452388.entry.js} +2 -2
  767. package/dist/core/{p-345fe84a.entry.js → p-c770e7a2.entry.js} +2 -2
  768. package/dist/core/p-ca178add.entry.js +2 -0
  769. package/dist/core/p-ca178add.entry.js.map +1 -0
  770. package/dist/core/{p-748159fe.entry.js → p-ca48e97a.entry.js} +2 -2
  771. package/dist/core/{p-5a3ca50a.entry.js → p-cd8de4c5.entry.js} +2 -2
  772. package/dist/core/{p-a4397df4.entry.js → p-cfc930f6.entry.js} +2 -2
  773. package/dist/core/{p-3a15202f.entry.js → p-d18450f9.entry.js} +2 -2
  774. package/dist/core/p-d18450f9.entry.js.map +1 -0
  775. package/dist/core/p-daebb58a.entry.js +2 -0
  776. package/dist/core/p-daebb58a.entry.js.map +1 -0
  777. package/dist/core/p-dbb5b008.entry.js +2 -0
  778. package/dist/core/p-dbb5b008.entry.js.map +1 -0
  779. package/dist/core/{p-4bc35224.entry.js → p-e278242f.entry.js} +2 -2
  780. package/dist/core/p-e278242f.entry.js.map +1 -0
  781. package/dist/core/{p-9ff57f09.entry.js → p-e5abfadd.entry.js} +2 -2
  782. package/dist/core/{p-41c6eaa1.entry.js → p-e9738c74.entry.js} +2 -2
  783. package/dist/core/p-ea17e371.entry.js +2 -0
  784. package/dist/core/p-ea17e371.entry.js.map +1 -0
  785. package/dist/core/{p-e2fd542e.entry.js → p-edd29edc.entry.js} +2 -2
  786. package/dist/core/p-edec0936.entry.js +2 -0
  787. package/dist/core/p-edec0936.entry.js.map +1 -0
  788. package/dist/core/{p-657513b5.entry.js → p-ee97e2a5.entry.js} +2 -2
  789. package/dist/core/{p-8b18346a.entry.js → p-f0809037.entry.js} +2 -2
  790. package/dist/core/{p-5bb6c79b.entry.js → p-f2e6b9ef.entry.js} +2 -2
  791. package/dist/core/{p-cf4bacee.entry.js → p-fdb4b48f.entry.js} +2 -2
  792. package/dist/esm/core.js +4 -4
  793. package/dist/esm/core.js.map +1 -1
  794. package/dist/esm/{helpers-24f6e762.js → helpers-c597f246.js} +292 -292
  795. package/dist/esm/helpers-c597f246.js.map +1 -0
  796. package/dist/esm/ic-accordion-group.entry.js +71 -71
  797. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  798. package/dist/esm/ic-accordion.entry.js +99 -99
  799. package/dist/esm/ic-accordion.entry.js.map +1 -1
  800. package/dist/esm/ic-alert.entry.js +58 -58
  801. package/dist/esm/ic-alert.entry.js.map +1 -1
  802. package/dist/esm/ic-back-to-top.entry.js +120 -120
  803. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  804. package/dist/esm/ic-badge.entry.js +146 -146
  805. package/dist/esm/ic-badge.entry.js.map +1 -1
  806. package/dist/esm/ic-breadcrumb-group.entry.js +172 -166
  807. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  808. package/dist/esm/ic-breadcrumb.entry.js +55 -53
  809. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  810. package/dist/esm/ic-button_3.entry.js +615 -606
  811. package/dist/esm/ic-button_3.entry.js.map +1 -1
  812. package/dist/esm/ic-card.entry.js +105 -105
  813. package/dist/esm/ic-card.entry.js.map +1 -1
  814. package/dist/esm/ic-checkbox-group.entry.js +60 -60
  815. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  816. package/dist/esm/ic-checkbox.entry.js +95 -95
  817. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  818. package/dist/esm/ic-chip.entry.js +67 -65
  819. package/dist/esm/ic-chip.entry.js.map +1 -1
  820. package/dist/esm/ic-classification-banner.entry.js +23 -23
  821. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  822. package/dist/esm/ic-data-entity.entry.js +17 -17
  823. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  824. package/dist/esm/ic-data-row.entry.js +74 -74
  825. package/dist/esm/ic-data-row.entry.js.map +1 -1
  826. package/dist/esm/ic-dialog.entry.js +339 -339
  827. package/dist/esm/ic-dialog.entry.js.map +1 -1
  828. package/dist/esm/ic-divider.entry.js +16 -16
  829. package/dist/esm/ic-divider.entry.js.map +1 -1
  830. package/dist/esm/ic-empty-state.entry.js +24 -24
  831. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  832. package/dist/esm/ic-footer-link-group.entry.js +55 -55
  833. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  834. package/dist/esm/ic-footer-link.entry.js +50 -50
  835. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  836. package/dist/esm/ic-footer.entry.js +78 -78
  837. package/dist/esm/ic-footer.entry.js.map +1 -1
  838. package/dist/esm/ic-hero.entry.js +62 -62
  839. package/dist/esm/ic-hero.entry.js.map +1 -1
  840. package/dist/esm/ic-horizontal-scroll.entry.js +151 -151
  841. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  842. package/dist/esm/ic-input-component-container_3.entry.js +678 -678
  843. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  844. package/dist/esm/ic-input-label_2.entry.js +63 -63
  845. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  846. package/dist/esm/ic-link.entry.js +55 -55
  847. package/dist/esm/ic-link.entry.js.map +1 -1
  848. package/dist/esm/ic-menu-group.entry.js +12 -12
  849. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  850. package/dist/esm/ic-menu-item.entry.js +100 -100
  851. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  852. package/dist/esm/ic-navigation-button.entry.js +79 -76
  853. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  854. package/dist/esm/ic-navigation-group.entry.js +283 -283
  855. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  856. package/dist/esm/ic-navigation-item.entry.js +152 -152
  857. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  858. package/dist/esm/ic-navigation-menu.entry.js +105 -105
  859. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  860. package/dist/esm/ic-page-header.entry.js +93 -93
  861. package/dist/esm/ic-page-header.entry.js.map +1 -1
  862. package/dist/esm/ic-pagination-item.entry.js +42 -42
  863. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  864. package/dist/esm/ic-pagination.entry.js +196 -195
  865. package/dist/esm/ic-pagination.entry.js.map +1 -1
  866. package/dist/esm/ic-popover-menu.entry.js +231 -231
  867. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  868. package/dist/esm/ic-radio-group.entry.js +156 -156
  869. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  870. package/dist/esm/ic-radio-option.entry.js +128 -128
  871. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  872. package/dist/esm/ic-search-bar.entry.js +474 -474
  873. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  874. package/dist/esm/ic-section-container.entry.js +15 -15
  875. package/dist/esm/ic-section-container.entry.js.map +1 -1
  876. package/dist/esm/ic-select.entry.js +639 -639
  877. package/dist/esm/ic-select.entry.js.map +1 -1
  878. package/dist/esm/ic-side-navigation.entry.js +424 -426
  879. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  880. package/dist/esm/ic-skeleton.entry.js +43 -43
  881. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  882. package/dist/esm/ic-status-tag.entry.js +29 -29
  883. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  884. package/dist/esm/ic-step.entry.js +121 -121
  885. package/dist/esm/ic-step.entry.js.map +1 -1
  886. package/dist/esm/ic-stepper.entry.js +200 -200
  887. package/dist/esm/ic-stepper.entry.js.map +1 -1
  888. package/dist/esm/ic-switch.entry.js +77 -77
  889. package/dist/esm/ic-switch.entry.js.map +1 -1
  890. package/dist/esm/ic-tab-context.entry.js +252 -252
  891. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  892. package/dist/esm/ic-tab-group.entry.js +23 -23
  893. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  894. package/dist/esm/ic-tab-panel.entry.js +31 -31
  895. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  896. package/dist/esm/ic-tab.entry.js +86 -86
  897. package/dist/esm/ic-tab.entry.js.map +1 -1
  898. package/dist/esm/ic-text-field.entry.js +210 -210
  899. package/dist/esm/ic-text-field.entry.js.map +1 -1
  900. package/dist/esm/ic-theme.entry.js +51 -51
  901. package/dist/esm/ic-theme.entry.js.map +1 -1
  902. package/dist/esm/ic-toast-region.entry.js +47 -46
  903. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  904. package/dist/esm/ic-toast.entry.js +145 -145
  905. package/dist/esm/ic-toast.entry.js.map +1 -1
  906. package/dist/esm/ic-top-navigation.entry.js +198 -199
  907. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  908. package/dist/esm/ic-typography.entry.js +118 -118
  909. package/dist/esm/ic-typography.entry.js.map +1 -1
  910. package/dist/{cjs/index-4f8c900f.js → esm/index-05003e1c.js} +603 -407
  911. package/dist/esm/index-05003e1c.js.map +1 -0
  912. package/dist/esm/loader.js +3 -3
  913. package/dist/esm/types-6f6b41a5.js +16 -0
  914. package/dist/esm/{types-b2398b37.js.map → types-6f6b41a5.js.map} +1 -1
  915. package/dist/node.d.ts +12 -0
  916. package/dist/types/components/ic-accordion/ic-accordion.d.ts +48 -48
  917. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +30 -30
  918. package/dist/types/components/ic-alert/ic-alert.d.ts +40 -40
  919. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +23 -23
  920. package/dist/types/components/ic-badge/ic-badge.d.ts +57 -57
  921. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +30 -25
  922. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +43 -38
  923. package/dist/types/components/ic-button/ic-button.d.ts +142 -137
  924. package/dist/types/components/ic-card/ic-card.d.ts +68 -68
  925. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +91 -91
  926. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +50 -50
  927. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.types.d.ts +6 -6
  928. package/dist/types/components/ic-chip/ic-chip.d.ts +50 -46
  929. package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +21 -21
  930. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +14 -14
  931. package/dist/types/components/ic-data-row/ic-data-row.d.ts +34 -34
  932. package/dist/types/components/ic-dialog/ic-dialog.d.ts +139 -139
  933. package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
  934. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +27 -27
  935. package/dist/types/components/ic-footer/ic-footer.d.ts +41 -41
  936. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +35 -35
  937. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +17 -17
  938. package/dist/types/components/ic-hero/ic-hero.d.ts +51 -51
  939. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +41 -41
  940. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +42 -42
  941. package/dist/types/components/ic-input-container/ic-input-container.d.ts +9 -9
  942. package/dist/types/components/ic-input-label/ic-input-label.d.ts +38 -38
  943. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +23 -23
  944. package/dist/types/components/ic-link/ic-link.d.ts +44 -44
  945. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +76 -76
  946. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +3 -3
  947. package/dist/types/components/ic-menu/ic-menu.d.ts +183 -183
  948. package/dist/types/components/ic-menu/ic-menu.types.d.ts +6 -6
  949. package/dist/types/components/ic-menu-group/ic-menu-group.d.ts +6 -6
  950. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +66 -66
  951. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +47 -47
  952. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +62 -62
  953. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +80 -80
  954. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +29 -29
  955. package/dist/types/components/ic-page-header/ic-page-header.d.ts +48 -48
  956. package/dist/types/components/ic-pagination/ic-pagination.d.ts +78 -77
  957. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
  958. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +42 -42
  959. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +60 -60
  960. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +67 -67
  961. package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +5 -5
  962. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +89 -89
  963. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +248 -248
  964. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  965. package/dist/types/components/ic-section-container/ic-section-container.d.ts +9 -9
  966. package/dist/types/components/ic-select/ic-select.d.ts +269 -269
  967. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +103 -97
  968. package/dist/types/components/ic-side-navigation/ic-side-navigation.types.d.ts +10 -6
  969. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +19 -19
  970. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +31 -31
  971. package/dist/types/components/ic-step/ic-step.d.ts +51 -51
  972. package/dist/types/components/ic-stepper/ic-stepper.d.ts +40 -40
  973. package/dist/types/components/ic-switch/ic-switch.d.ts +73 -73
  974. package/dist/types/components/ic-switch/ic-switch.types.d.ts +2 -2
  975. package/dist/types/components/ic-tab/ic-tab.d.ts +51 -51
  976. package/dist/types/components/ic-tab/ic-tab.types.d.ts +4 -4
  977. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +59 -59
  978. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +19 -19
  979. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +33 -33
  980. package/dist/types/components/ic-text-field/ic-text-field.d.ts +214 -214
  981. package/dist/types/components/ic-theme/ic-theme.d.ts +14 -14
  982. package/dist/types/components/ic-toast/ic-toast.d.ts +58 -58
  983. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +16 -15
  984. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +54 -50
  985. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +77 -72
  986. package/dist/types/components/ic-typography/ic-typography.d.ts +54 -54
  987. package/dist/types/components.d.ts +397 -3
  988. package/dist/types/stencil-public-runtime.d.ts +29 -0
  989. package/dist/types/testspec.setup.d.ts +7 -7
  990. package/dist/types/utils/constants.d.ts +26 -26
  991. package/dist/types/utils/helpers.d.ts +7 -7
  992. package/dist/types/utils/types.d.ts +31 -31
  993. package/hydrate/index.d.ts +2 -2
  994. package/hydrate/index.js +15870 -14095
  995. package/package.json +5 -4
  996. package/vscode-data.json +3939 -0
  997. package/dist/cjs/helpers-0d63359f.js.map +0 -1
  998. package/dist/cjs/index-4f8c900f.js.map +0 -1
  999. package/dist/cjs/types-7d67439f.js +0 -16
  1000. package/dist/core/p-03329fd0.entry.js +0 -2
  1001. package/dist/core/p-03329fd0.entry.js.map +0 -1
  1002. package/dist/core/p-24da56e7.entry.js +0 -2
  1003. package/dist/core/p-24da56e7.entry.js.map +0 -1
  1004. package/dist/core/p-39c8111d.entry.js +0 -2
  1005. package/dist/core/p-39c8111d.entry.js.map +0 -1
  1006. package/dist/core/p-3a15202f.entry.js.map +0 -1
  1007. package/dist/core/p-4bc35224.entry.js.map +0 -1
  1008. package/dist/core/p-59bdafff.entry.js +0 -2
  1009. package/dist/core/p-59bdafff.entry.js.map +0 -1
  1010. package/dist/core/p-6c376756.entry.js +0 -2
  1011. package/dist/core/p-6c376756.entry.js.map +0 -1
  1012. package/dist/core/p-717907de.entry.js +0 -2
  1013. package/dist/core/p-717907de.entry.js.map +0 -1
  1014. package/dist/core/p-752f0f9a.entry.js.map +0 -1
  1015. package/dist/core/p-9d124fc7.js +0 -3
  1016. package/dist/core/p-9d124fc7.js.map +0 -1
  1017. package/dist/core/p-c0719bf4.entry.js +0 -2
  1018. package/dist/core/p-c0719bf4.entry.js.map +0 -1
  1019. package/dist/core/p-c0c62df4.entry.js.map +0 -1
  1020. package/dist/core/p-ca6073be.entry.js.map +0 -1
  1021. package/dist/core/p-e9ddb8cd.entry.js +0 -2
  1022. package/dist/core/p-e9ddb8cd.entry.js.map +0 -1
  1023. package/dist/esm/helpers-24f6e762.js.map +0 -1
  1024. package/dist/esm/index-813020f1.js.map +0 -1
  1025. package/dist/esm/types-b2398b37.js +0 -16
  1026. /package/dist/core/{p-7ce86152.entry.js.map → p-056f8a67.entry.js.map} +0 -0
  1027. /package/dist/core/{p-08b59078.entry.js.map → p-11736fbe.entry.js.map} +0 -0
  1028. /package/dist/core/{p-5ccbb042.entry.js.map → p-15624e08.entry.js.map} +0 -0
  1029. /package/dist/core/{p-5fcd202e.entry.js.map → p-15ef0674.entry.js.map} +0 -0
  1030. /package/dist/core/{p-88ea1e49.entry.js.map → p-180e36b1.entry.js.map} +0 -0
  1031. /package/dist/core/{p-43af3cf6.entry.js.map → p-22c024ee.entry.js.map} +0 -0
  1032. /package/dist/core/{p-613aa265.js.map → p-26b7b18f.js.map} +0 -0
  1033. /package/dist/core/{p-932fb4b7.entry.js.map → p-287ab47c.entry.js.map} +0 -0
  1034. /package/dist/core/{p-69948c3e.entry.js.map → p-2b24b4bf.entry.js.map} +0 -0
  1035. /package/dist/core/{p-9f6ffced.entry.js.map → p-31969be6.entry.js.map} +0 -0
  1036. /package/dist/core/{p-475b7bd2.entry.js.map → p-335fc5e4.entry.js.map} +0 -0
  1037. /package/dist/core/{p-c9ef9f5c.entry.js.map → p-366bcb17.entry.js.map} +0 -0
  1038. /package/dist/core/{p-ed256f1d.entry.js.map → p-3a0ef91e.entry.js.map} +0 -0
  1039. /package/dist/core/{p-cb5f19ea.entry.js.map → p-51f9f329.entry.js.map} +0 -0
  1040. /package/dist/core/{p-f019219c.entry.js.map → p-529d8955.entry.js.map} +0 -0
  1041. /package/dist/core/{p-b879fa3e.entry.js.map → p-5c7e339f.entry.js.map} +0 -0
  1042. /package/dist/core/{p-2c30b583.entry.js.map → p-60c4604f.entry.js.map} +0 -0
  1043. /package/dist/core/{p-99fad66b.entry.js.map → p-6bc431b2.entry.js.map} +0 -0
  1044. /package/dist/core/{p-ccac1730.entry.js.map → p-6d3f9501.entry.js.map} +0 -0
  1045. /package/dist/core/{p-536b3c97.entry.js.map → p-6eb0421d.entry.js.map} +0 -0
  1046. /package/dist/core/{p-48525498.entry.js.map → p-765bdd98.entry.js.map} +0 -0
  1047. /package/dist/core/{p-3a814fc4.entry.js.map → p-7f887c1e.entry.js.map} +0 -0
  1048. /package/dist/core/{p-e3bffcae.entry.js.map → p-94e88827.entry.js.map} +0 -0
  1049. /package/dist/core/{p-8fb4f0c0.js.map → p-95a864bf.js.map} +0 -0
  1050. /package/dist/core/{p-eb4641a9.entry.js.map → p-96da1e85.entry.js.map} +0 -0
  1051. /package/dist/core/{p-69d15528.entry.js.map → p-988991d3.entry.js.map} +0 -0
  1052. /package/dist/core/{p-0c82048e.entry.js.map → p-9c30720d.entry.js.map} +0 -0
  1053. /package/dist/core/{p-a76912b0.entry.js.map → p-aa0a9870.entry.js.map} +0 -0
  1054. /package/dist/core/{p-76563540.entry.js.map → p-ad36a704.entry.js.map} +0 -0
  1055. /package/dist/core/{p-d80f99e0.entry.js.map → p-b0088956.entry.js.map} +0 -0
  1056. /package/dist/core/{p-2265e418.entry.js.map → p-b6a575c3.entry.js.map} +0 -0
  1057. /package/dist/core/{p-fbc8a739.entry.js.map → p-b9736cf4.entry.js.map} +0 -0
  1058. /package/dist/core/{p-025f9d2a.entry.js.map → p-b99f9e89.entry.js.map} +0 -0
  1059. /package/dist/core/{p-b0ce60a0.entry.js.map → p-c2452388.entry.js.map} +0 -0
  1060. /package/dist/core/{p-345fe84a.entry.js.map → p-c770e7a2.entry.js.map} +0 -0
  1061. /package/dist/core/{p-748159fe.entry.js.map → p-ca48e97a.entry.js.map} +0 -0
  1062. /package/dist/core/{p-5a3ca50a.entry.js.map → p-cd8de4c5.entry.js.map} +0 -0
  1063. /package/dist/core/{p-a4397df4.entry.js.map → p-cfc930f6.entry.js.map} +0 -0
  1064. /package/dist/core/{p-9ff57f09.entry.js.map → p-e5abfadd.entry.js.map} +0 -0
  1065. /package/dist/core/{p-41c6eaa1.entry.js.map → p-e9738c74.entry.js.map} +0 -0
  1066. /package/dist/core/{p-e2fd542e.entry.js.map → p-edd29edc.entry.js.map} +0 -0
  1067. /package/dist/core/{p-657513b5.entry.js.map → p-ee97e2a5.entry.js.map} +0 -0
  1068. /package/dist/core/{p-8b18346a.entry.js.map → p-f0809037.entry.js.map} +0 -0
  1069. /package/dist/core/{p-5bb6c79b.entry.js.map → p-f2e6b9ef.entry.js.map} +0 -0
  1070. /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