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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (744) hide show
  1. package/dist/cjs/core.cjs.js +10 -3
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/{helpers-d6b5880e.js → helpers-eb53c416.js} +7 -1
  4. package/dist/cjs/helpers-eb53c416.js.map +1 -0
  5. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  6. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-button_3.cjs.entry.js +31 -31
  10. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-card.cjs.entry.js +4 -3
  12. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-checkbox-group.cjs.entry.js +5 -2
  14. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -2
  16. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-chip.cjs.entry.js +5 -2
  18. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-dialog.cjs.entry.js +296 -0
  23. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -0
  24. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-footer.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +65 -26
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-input-label_2.cjs.entry.js +3 -3
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-menu-item.cjs.entry.js +4 -3
  38. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js +44 -18
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-page-header.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-pagination-item.cjs.entry.js +6 -1
  47. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-pagination.cjs.entry.js +3 -2
  49. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +3 -3
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-group.cjs.entry.js +16 -5
  53. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -11
  55. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-search-bar.cjs.entry.js +6 -3
  57. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-select.cjs.entry.js +34 -32
  60. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js +51 -42
  62. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  65. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-switch.cjs.entry.js +4 -3
  69. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  72. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  74. package/dist/cjs/ic-tab.cjs.entry.js +5 -1
  75. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-text-field.cjs.entry.js +4 -5
  77. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  79. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  80. package/dist/cjs/ic-toast.cjs.entry.js +2 -2
  81. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  82. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  83. package/dist/cjs/{index-a62312a7.js → index-014e3058.js} +222 -43
  84. package/dist/cjs/index-014e3058.js.map +1 -0
  85. package/dist/cjs/loader.cjs.js +4 -3
  86. package/dist/cjs/loader.cjs.js.map +1 -1
  87. package/dist/collection/collection-manifest.json +13 -12
  88. package/dist/collection/components/ic-alert/ic-alert.e2e.js +16 -0
  89. package/dist/collection/components/ic-alert/ic-alert.e2e.js.map +1 -0
  90. package/dist/collection/components/ic-alert/ic-alert.spec.js +182 -0
  91. package/dist/collection/components/ic-alert/ic-alert.spec.js.map +1 -0
  92. package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js +68 -0
  93. package/dist/collection/components/ic-back-to-top/ic-back-to-top.e2e.js.map +1 -0
  94. package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js +123 -0
  95. package/dist/collection/components/ic-back-to-top/ic-back-to-top.spec.js.map +1 -0
  96. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js +118 -0
  97. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.spec.js.map +1 -0
  98. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js +41 -0
  99. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.e2e.js.map +1 -0
  100. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js +181 -0
  101. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.spec.js.map +1 -0
  102. package/dist/collection/components/ic-button/ic-button.e2e.js +173 -0
  103. package/dist/collection/components/ic-button/ic-button.e2e.js.map +1 -0
  104. package/dist/collection/components/ic-button/ic-button.js +3 -2
  105. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  106. package/dist/collection/components/ic-button/ic-button.spec.js +230 -0
  107. package/dist/collection/components/ic-button/ic-button.spec.js.map +1 -0
  108. package/dist/collection/components/ic-card/ic-card.css +3 -2
  109. package/dist/collection/components/ic-card/ic-card.e2e.js +23 -0
  110. package/dist/collection/components/ic-card/ic-card.e2e.js.map +1 -0
  111. package/dist/collection/components/ic-card/ic-card.js +2 -1
  112. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  113. package/dist/collection/components/ic-card/ic-card.spec.js +152 -0
  114. package/dist/collection/components/ic-card/ic-card.spec.js.map +1 -0
  115. package/dist/collection/components/ic-checkbox/ic-checkbox.js +2 -1
  116. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  117. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js +201 -0
  118. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.e2e.js.map +1 -0
  119. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -1
  120. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  121. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js +175 -0
  122. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.spec.js.map +1 -0
  123. package/dist/collection/components/ic-chip/ic-chip.js +4 -1
  124. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  125. package/dist/collection/components/ic-chip/ic-chip.spec.js +110 -0
  126. package/dist/collection/components/ic-chip/ic-chip.spec.js.map +1 -0
  127. package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js +140 -0
  128. package/dist/collection/components/ic-classification-banner/ic-classification-banner.spec.js.map +1 -0
  129. package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js +161 -0
  130. package/dist/collection/components/ic-data-entity/ic-data-entity.spec.js.map +1 -0
  131. package/dist/collection/components/ic-data-row/ic-data-row.spec.js +185 -0
  132. package/dist/collection/components/ic-data-row/ic-data-row.spec.js.map +1 -0
  133. package/dist/collection/components/ic-dialog/ic-dialog.css +595 -0
  134. package/dist/collection/components/ic-dialog/ic-dialog.e2e.js +204 -0
  135. package/dist/collection/components/ic-dialog/ic-dialog.e2e.js.map +1 -0
  136. package/dist/collection/components/ic-dialog/ic-dialog.js +641 -0
  137. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -0
  138. package/dist/collection/components/ic-dialog/ic-dialog.spec.js +520 -0
  139. package/dist/collection/components/ic-dialog/ic-dialog.spec.js.map +1 -0
  140. package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js +28 -0
  141. package/dist/collection/components/ic-dialog/ic-dialog.test.a11y.js.map +1 -0
  142. package/dist/collection/components/ic-divider/ic-divider.spec.js +24 -0
  143. package/dist/collection/components/ic-divider/ic-divider.spec.js.map +1 -0
  144. package/dist/collection/components/ic-footer/ic-footer.e2e.js +50 -0
  145. package/dist/collection/components/ic-footer/ic-footer.e2e.js.map +1 -0
  146. package/dist/collection/components/ic-footer/ic-footer.js +1 -1
  147. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  148. package/dist/collection/components/ic-footer/ic-footer.spec.js +140 -0
  149. package/dist/collection/components/ic-footer/ic-footer.spec.js.map +1 -0
  150. package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js +62 -0
  151. package/dist/collection/components/ic-footer-link/ic-footer-link.spec.js.map +1 -0
  152. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js +98 -0
  153. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.spec.js.map +1 -0
  154. package/dist/collection/components/ic-hero/ic-hero.spec.js +76 -0
  155. package/dist/collection/components/ic-hero/ic-hero.spec.js.map +1 -0
  156. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js +180 -0
  157. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.spec.js.map +1 -0
  158. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +32 -4
  159. package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js +117 -0
  160. package/dist/collection/components/ic-input-component-container/ic-input-component-container.spec.js.map +1 -0
  161. package/dist/collection/components/ic-input-container/ic-input-container.spec.js +38 -0
  162. package/dist/collection/components/ic-input-container/ic-input-container.spec.js.map +1 -0
  163. package/dist/collection/components/ic-input-label/ic-input-label.spec.js +98 -0
  164. package/dist/collection/components/ic-input-label/ic-input-label.spec.js.map +1 -0
  165. package/dist/collection/components/ic-input-validation/ic-input-validation.css +0 -8
  166. package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js +89 -0
  167. package/dist/collection/components/ic-input-validation/ic-input-validation.spec.js.map +1 -0
  168. package/dist/collection/components/ic-link/ic-link.spec.js +203 -0
  169. package/dist/collection/components/ic-link/ic-link.spec.js.map +1 -0
  170. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js +34 -0
  171. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.e2e.js.map +1 -0
  172. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js +141 -0
  173. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.spec.js.map +1 -0
  174. package/dist/collection/components/ic-menu/ic-menu.css +9 -1
  175. package/dist/collection/components/ic-menu/ic-menu.js +85 -22
  176. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  177. package/dist/collection/components/ic-menu/ic-menu.spec.js +650 -0
  178. package/dist/collection/components/ic-menu/ic-menu.spec.js.map +1 -0
  179. package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js +94 -0
  180. package/dist/collection/components/ic-menu-group/ic-menu-group.spec.js.map +1 -0
  181. package/dist/collection/components/ic-menu-item/ic-menu-item.css +2 -2
  182. package/dist/collection/components/ic-menu-item/ic-menu-item.js +2 -1
  183. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  184. package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js +105 -0
  185. package/dist/collection/components/ic-menu-item/ic-menu-item.spec.js.map +1 -0
  186. package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js +84 -0
  187. package/dist/collection/components/ic-navigation-button/ic-navigation-button.spec.js.map +1 -0
  188. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -1
  189. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +41 -15
  190. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  191. package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js +309 -0
  192. package/dist/collection/components/ic-navigation-group/ic-navigation-group.spec.js.map +1 -0
  193. package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js +118 -0
  194. package/dist/collection/components/ic-navigation-item/ic-navigation-item.spec.js.map +1 -0
  195. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js +29 -0
  196. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.e2e.js.map +1 -0
  197. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js +176 -0
  198. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.spec.js.map +1 -0
  199. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
  200. package/dist/collection/components/ic-page-header/ic-page-header.e2e.js +177 -0
  201. package/dist/collection/components/ic-page-header/ic-page-header.e2e.js.map +1 -0
  202. package/dist/collection/components/ic-page-header/ic-page-header.spec.js +284 -0
  203. package/dist/collection/components/ic-page-header/ic-page-header.spec.js.map +1 -0
  204. package/dist/collection/components/ic-pagination/ic-pagination.e2e.js +128 -0
  205. package/dist/collection/components/ic-pagination/ic-pagination.e2e.js.map +1 -0
  206. package/dist/collection/components/ic-pagination/ic-pagination.js +3 -2
  207. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  208. package/dist/collection/components/ic-pagination/ic-pagination.spec.js +325 -0
  209. package/dist/collection/components/ic-pagination/ic-pagination.spec.js.map +1 -0
  210. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +5 -1
  211. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  212. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +1 -1
  213. package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js +30 -0
  214. package/dist/collection/components/ic-popover-menu/ic-popover-menu.e2e.js.map +1 -0
  215. package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js +381 -0
  216. package/dist/collection/components/ic-popover-menu/ic-popover-menu.spec.js.map +1 -0
  217. package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js +343 -0
  218. package/dist/collection/components/ic-radio-group/ic-radio-group.e2e.js.map +1 -0
  219. package/dist/collection/components/ic-radio-group/ic-radio-group.js +19 -8
  220. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  221. package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js +303 -0
  222. package/dist/collection/components/ic-radio-group/ic-radio-group.spec.js.map +1 -0
  223. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js +2 -0
  224. package/dist/collection/components/ic-radio-group/ic-radio-group.types.js.map +1 -0
  225. package/dist/collection/components/ic-radio-option/ic-radio-option.css +1 -1
  226. package/dist/collection/components/ic-radio-option/ic-radio-option.js +5 -14
  227. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  228. package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js +1054 -0
  229. package/dist/collection/components/ic-search-bar/ic-search-bar.e2e.js.map +1 -0
  230. package/dist/collection/components/ic-search-bar/ic-search-bar.js +12 -9
  231. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  232. package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js +570 -0
  233. package/dist/collection/components/ic-search-bar/ic-search-bar.spec.js.map +1 -0
  234. package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
  235. package/dist/collection/components/ic-section-container/ic-section-container.spec.js +69 -0
  236. package/dist/collection/components/ic-section-container/ic-section-container.spec.js.map +1 -0
  237. package/dist/collection/components/ic-select/ic-select.e2e.js +1765 -0
  238. package/dist/collection/components/ic-select/ic-select.e2e.js.map +1 -0
  239. package/dist/collection/components/ic-select/ic-select.js +35 -33
  240. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  241. package/dist/collection/components/ic-select/ic-select.spec.js +1276 -0
  242. package/dist/collection/components/ic-select/ic-select.spec.js.map +1 -0
  243. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +0 -7
  244. package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js +412 -0
  245. package/dist/collection/components/ic-side-navigation/ic-side-navigation.e2e.js.map +1 -0
  246. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +48 -39
  247. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  248. package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js +470 -0
  249. package/dist/collection/components/ic-side-navigation/ic-side-navigation.spec.js.map +1 -0
  250. package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js +89 -0
  251. package/dist/collection/components/ic-skeleton/ic-skeleton.spec.js.map +1 -0
  252. package/dist/collection/components/ic-status-tag/ic-status-tag.css +2 -6
  253. package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js +43 -0
  254. package/dist/collection/components/ic-status-tag/ic-status-tag.spec.js.map +1 -0
  255. package/dist/collection/components/ic-step/ic-step.spec.js +176 -0
  256. package/dist/collection/components/ic-step/ic-step.spec.js.map +1 -0
  257. package/dist/collection/components/ic-stepper/ic-stepper.e2e.js +49 -0
  258. package/dist/collection/components/ic-stepper/ic-stepper.e2e.js.map +1 -0
  259. package/dist/collection/components/ic-stepper/ic-stepper.spec.js +706 -0
  260. package/dist/collection/components/ic-stepper/ic-stepper.spec.js.map +1 -0
  261. package/dist/collection/components/ic-switch/ic-switch.css +1 -1
  262. package/dist/collection/components/ic-switch/ic-switch.js +2 -1
  263. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  264. package/dist/collection/components/ic-switch/ic-switch.spec.js +104 -0
  265. package/dist/collection/components/ic-switch/ic-switch.spec.js.map +1 -0
  266. package/dist/collection/components/ic-tab/ic-tab.e2e.js +32 -0
  267. package/dist/collection/components/ic-tab/ic-tab.e2e.js.map +1 -0
  268. package/dist/collection/components/ic-tab/ic-tab.js +4 -0
  269. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  270. package/dist/collection/components/ic-tab/ic-tab.spec.js +159 -0
  271. package/dist/collection/components/ic-tab/ic-tab.spec.js.map +1 -0
  272. package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js +317 -0
  273. package/dist/collection/components/ic-tab-context/ic-tab-context.e2e.js.map +1 -0
  274. package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js +369 -0
  275. package/dist/collection/components/ic-tab-context/ic-tab-context.spec.js.map +1 -0
  276. package/dist/collection/components/ic-tab-group/ic-tab-group.css +2 -2
  277. package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js +65 -0
  278. package/dist/collection/components/ic-tab-panel/ic-tab-panel.spec.js.map +1 -0
  279. package/dist/collection/components/ic-text-field/ic-text-field.css +0 -4
  280. package/dist/collection/components/ic-text-field/ic-text-field.e2e.js +98 -0
  281. package/dist/collection/components/ic-text-field/ic-text-field.e2e.js.map +1 -0
  282. package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js +236 -0
  283. package/dist/collection/components/ic-text-field/ic-text-field.input.spec.js.map +1 -0
  284. package/dist/collection/components/ic-text-field/ic-text-field.js +11 -12
  285. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  286. package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js +310 -0
  287. package/dist/collection/components/ic-text-field/ic-text-field.textarea.spec.js.map +1 -0
  288. package/dist/collection/components/ic-theme/ic-theme.e2e.js +72 -0
  289. package/dist/collection/components/ic-theme/ic-theme.e2e.js.map +1 -0
  290. package/dist/collection/components/ic-theme/ic-theme.spec.js +77 -0
  291. package/dist/collection/components/ic-theme/ic-theme.spec.js.map +1 -0
  292. package/dist/collection/components/ic-toast/ic-toast.e2e.js +82 -0
  293. package/dist/collection/components/ic-toast/ic-toast.e2e.js.map +1 -0
  294. package/dist/collection/components/ic-toast/ic-toast.spec.js +278 -0
  295. package/dist/collection/components/ic-toast/ic-toast.spec.js.map +1 -0
  296. package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js +62 -0
  297. package/dist/collection/components/ic-toast-region/ic-toast-region.spec.js.map +1 -0
  298. package/dist/collection/components/ic-tooltip/ic-tooltip.css +22 -8
  299. package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js +115 -0
  300. package/dist/collection/components/ic-tooltip/ic-tooltip.e2e.js.map +1 -0
  301. package/dist/collection/components/ic-tooltip/ic-tooltip.js +26 -27
  302. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  303. package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js +128 -0
  304. package/dist/collection/components/ic-tooltip/ic-tooltip.spec.js.map +1 -0
  305. package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js +42 -0
  306. package/dist/collection/components/ic-top-navigation/ic-top-navigation.e2e.js.map +1 -0
  307. package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js +242 -0
  308. package/dist/collection/components/ic-top-navigation/ic-top-navigation.mobile.e2e.js.map +1 -0
  309. package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js +286 -0
  310. package/dist/collection/components/ic-top-navigation/ic-top-navigation.spec.js.map +1 -0
  311. package/dist/collection/components/ic-typography/ic-typography.e2e.js +36 -0
  312. package/dist/collection/components/ic-typography/ic-typography.e2e.js.map +1 -0
  313. package/dist/collection/components/ic-typography/ic-typography.spec.js +296 -0
  314. package/dist/collection/components/ic-typography/ic-typography.spec.js.map +1 -0
  315. package/dist/collection/testspec.setup.js +11 -0
  316. package/dist/collection/testspec.setup.js.map +1 -1
  317. package/dist/collection/utils/helpers.js +5 -0
  318. package/dist/collection/utils/helpers.js.map +1 -1
  319. package/dist/components/helpers.js +6 -1
  320. package/dist/components/helpers.js.map +1 -1
  321. package/dist/components/ic-alert.js +1 -113
  322. package/dist/components/ic-alert.js.map +1 -1
  323. package/dist/components/ic-alert2.js +117 -0
  324. package/dist/components/ic-alert2.js.map +1 -0
  325. package/dist/components/ic-back-to-top.js +2 -2
  326. package/dist/components/ic-breadcrumb-group.js +2 -2
  327. package/dist/components/ic-breadcrumb2.js +1 -1
  328. package/dist/components/ic-button2.js +4 -3
  329. package/dist/components/ic-button2.js.map +1 -1
  330. package/dist/components/ic-card.js +4 -3
  331. package/dist/components/ic-card.js.map +1 -1
  332. package/dist/components/ic-checkbox-group.js +5 -2
  333. package/dist/components/ic-checkbox-group.js.map +1 -1
  334. package/dist/components/ic-checkbox.js +3 -2
  335. package/dist/components/ic-checkbox.js.map +1 -1
  336. package/dist/components/ic-chip.js +5 -2
  337. package/dist/components/ic-chip.js.map +1 -1
  338. package/dist/components/ic-classification-banner.js +1 -1
  339. package/dist/components/ic-data-entity.js +1 -1
  340. package/dist/components/ic-data-row.js +2 -2
  341. package/dist/components/ic-dialog.d.ts +11 -0
  342. package/dist/components/ic-dialog.js +357 -0
  343. package/dist/components/ic-dialog.js.map +1 -0
  344. package/dist/components/ic-divider2.js +2 -2
  345. package/dist/components/ic-footer-link-group.js +2 -2
  346. package/dist/components/ic-footer-link.js +2 -2
  347. package/dist/components/ic-footer.js +3 -3
  348. package/dist/components/ic-footer.js.map +1 -1
  349. package/dist/components/ic-hero.js +2 -2
  350. package/dist/components/ic-horizontal-scroll2.js +2 -2
  351. package/dist/components/ic-input-component-container2.js +3 -3
  352. package/dist/components/ic-input-component-container2.js.map +1 -1
  353. package/dist/components/ic-input-container2.js +1 -1
  354. package/dist/components/ic-input-label2.js +2 -2
  355. package/dist/components/ic-input-validation2.js +3 -3
  356. package/dist/components/ic-input-validation2.js.map +1 -1
  357. package/dist/components/ic-link2.js +2 -2
  358. package/dist/components/ic-loading-indicator2.js +1 -1
  359. package/dist/components/ic-menu-group.js +1 -1
  360. package/dist/components/ic-menu-item2.js +4 -3
  361. package/dist/components/ic-menu-item2.js.map +1 -1
  362. package/dist/components/ic-menu2.js +65 -26
  363. package/dist/components/ic-menu2.js.map +1 -1
  364. package/dist/components/ic-navigation-button.js +2 -2
  365. package/dist/components/ic-navigation-group.js +44 -18
  366. package/dist/components/ic-navigation-group.js.map +1 -1
  367. package/dist/components/ic-navigation-item.js +2 -2
  368. package/dist/components/ic-navigation-menu2.js +2 -2
  369. package/dist/components/ic-page-header.js +3 -3
  370. package/dist/components/ic-page-header.js.map +1 -1
  371. package/dist/components/ic-pagination-item2.js +5 -1
  372. package/dist/components/ic-pagination-item2.js.map +1 -1
  373. package/dist/components/ic-pagination.js +3 -2
  374. package/dist/components/ic-pagination.js.map +1 -1
  375. package/dist/components/ic-popover-menu.js +3 -3
  376. package/dist/components/ic-popover-menu.js.map +1 -1
  377. package/dist/components/ic-radio-group.js +16 -5
  378. package/dist/components/ic-radio-group.js.map +1 -1
  379. package/dist/components/ic-radio-option.js +5 -11
  380. package/dist/components/ic-radio-option.js.map +1 -1
  381. package/dist/components/ic-search-bar.js +6 -3
  382. package/dist/components/ic-search-bar.js.map +1 -1
  383. package/dist/components/ic-section-container2.js +1 -1
  384. package/dist/components/ic-select.js +34 -32
  385. package/dist/components/ic-select.js.map +1 -1
  386. package/dist/components/ic-side-navigation.js +51 -42
  387. package/dist/components/ic-side-navigation.js.map +1 -1
  388. package/dist/components/ic-skeleton.js +1 -1
  389. package/dist/components/ic-status-tag.js +3 -3
  390. package/dist/components/ic-status-tag.js.map +1 -1
  391. package/dist/components/ic-step.js +1 -1
  392. package/dist/components/ic-stepper.js +2 -2
  393. package/dist/components/ic-switch.js +4 -3
  394. package/dist/components/ic-switch.js.map +1 -1
  395. package/dist/components/ic-tab-context.js +1 -1
  396. package/dist/components/ic-tab-group.js +3 -3
  397. package/dist/components/ic-tab-group.js.map +1 -1
  398. package/dist/components/ic-tab-panel.js +1 -1
  399. package/dist/components/ic-tab.js +5 -1
  400. package/dist/components/ic-tab.js.map +1 -1
  401. package/dist/components/ic-text-field2.js +4 -5
  402. package/dist/components/ic-text-field2.js.map +1 -1
  403. package/dist/components/ic-theme.js +2 -2
  404. package/dist/components/ic-toast-region.js +1 -1
  405. package/dist/components/ic-toast.js +2 -2
  406. package/dist/components/ic-tooltip2.js +29 -30
  407. package/dist/components/ic-tooltip2.js.map +1 -1
  408. package/dist/components/ic-top-navigation.js +2 -2
  409. package/dist/components/ic-typography2.js +1 -1
  410. package/dist/components/index.d.ts +9 -60
  411. package/dist/components/index.js +1 -58
  412. package/dist/components/index.js.map +1 -1
  413. package/dist/core/core.css +41 -2
  414. package/dist/core/core.esm.js +1 -1
  415. package/dist/core/core.esm.js.map +1 -1
  416. package/dist/core/index.esm.js.map +1 -1
  417. package/dist/core/{p-de45134c.entry.js → p-04d626ee.entry.js} +2 -2
  418. package/dist/core/p-04d626ee.entry.js.map +1 -0
  419. package/dist/core/p-06321d19.js.map +1 -1
  420. package/dist/core/{p-050dbce8.entry.js → p-0d325b4c.entry.js} +2 -2
  421. package/dist/core/p-0d325b4c.entry.js.map +1 -0
  422. package/dist/core/{p-46371c05.entry.js → p-249af8ab.entry.js} +2 -2
  423. package/dist/core/p-249af8ab.entry.js.map +1 -0
  424. package/dist/core/{p-36e0671f.entry.js → p-29d9fea1.entry.js} +2 -2
  425. package/dist/core/p-29d9fea1.entry.js.map +1 -0
  426. package/dist/core/p-2e051e1e.entry.js +2 -0
  427. package/dist/core/p-2e051e1e.entry.js.map +1 -0
  428. package/dist/core/{p-bffa2e1a.entry.js → p-2ec49a7e.entry.js} +2 -2
  429. package/dist/core/p-2ec49a7e.entry.js.map +1 -0
  430. package/dist/core/{p-223a214f.entry.js → p-3114a4b3.entry.js} +2 -2
  431. package/dist/core/p-3114a4b3.entry.js.map +1 -0
  432. package/dist/core/{p-50421f27.entry.js → p-311c38b3.entry.js} +2 -2
  433. package/dist/core/p-311c38b3.entry.js.map +1 -0
  434. package/dist/core/p-31ccdd50.entry.js +2 -0
  435. package/dist/core/p-31ccdd50.entry.js.map +1 -0
  436. package/dist/core/p-31e80ccb.entry.js +2 -0
  437. package/dist/core/p-31e80ccb.entry.js.map +1 -0
  438. package/dist/core/p-323bce82.entry.js +2 -0
  439. package/dist/core/p-323bce82.entry.js.map +1 -0
  440. package/dist/core/{p-a9184841.entry.js → p-3918c27a.entry.js} +2 -2
  441. package/dist/core/p-3918c27a.entry.js.map +1 -0
  442. package/dist/core/p-3ce0aa02.entry.js +2 -0
  443. package/dist/core/p-3ce0aa02.entry.js.map +1 -0
  444. package/dist/core/p-44512ebe.js.map +1 -1
  445. package/dist/core/{p-471820e6.js → p-4a385752.js} +2 -2
  446. package/dist/core/p-4a385752.js.map +1 -0
  447. package/dist/core/{p-312c10b0.entry.js → p-4c4fa082.entry.js} +2 -2
  448. package/dist/core/p-4c4fa082.entry.js.map +1 -0
  449. package/dist/core/{p-fc7dce3d.entry.js → p-4f7b34ed.entry.js} +2 -2
  450. package/dist/core/p-4f7b34ed.entry.js.map +1 -0
  451. package/dist/core/{p-c85476c0.entry.js → p-524557bc.entry.js} +2 -2
  452. package/dist/core/p-524557bc.entry.js.map +1 -0
  453. package/dist/core/p-551986d1.entry.js +2 -0
  454. package/dist/core/p-551986d1.entry.js.map +1 -0
  455. package/dist/core/p-57460fa3.entry.js +2 -0
  456. package/dist/core/p-57460fa3.entry.js.map +1 -0
  457. package/dist/core/p-5fcd965f.entry.js +2 -0
  458. package/dist/core/p-5fcd965f.entry.js.map +1 -0
  459. package/dist/core/{p-68547339.entry.js → p-617950f8.entry.js} +2 -2
  460. package/dist/core/p-617950f8.entry.js.map +1 -0
  461. package/dist/core/{p-af815dfb.entry.js → p-68308ecd.entry.js} +2 -2
  462. package/dist/core/p-68308ecd.entry.js.map +1 -0
  463. package/dist/core/p-6c76c6ba.entry.js +2 -0
  464. package/dist/core/p-6c76c6ba.entry.js.map +1 -0
  465. package/dist/core/p-6f57b13c.js.map +1 -1
  466. package/dist/core/p-79914e0c.entry.js +2 -0
  467. package/dist/core/p-79914e0c.entry.js.map +1 -0
  468. package/dist/core/{p-e6217f40.entry.js → p-820e4c17.entry.js} +2 -2
  469. package/dist/core/p-820e4c17.entry.js.map +1 -0
  470. package/dist/core/{p-1585e5c1.entry.js → p-84c8c4c7.entry.js} +2 -2
  471. package/dist/core/p-84c8c4c7.entry.js.map +1 -0
  472. package/dist/core/{p-29ea6f88.entry.js → p-8911656b.entry.js} +2 -2
  473. package/dist/core/p-8911656b.entry.js.map +1 -0
  474. package/dist/core/p-8c7f4343.js.map +1 -1
  475. package/dist/core/p-8d4f7027.js.map +1 -1
  476. package/dist/core/p-97286148.entry.js +2 -0
  477. package/dist/core/p-97286148.entry.js.map +1 -0
  478. package/dist/core/{p-454b1ecd.entry.js → p-97fd0cc1.entry.js} +2 -2
  479. package/dist/core/p-97fd0cc1.entry.js.map +1 -0
  480. package/dist/core/p-a74b8476.entry.js +2 -0
  481. package/dist/core/p-a74b8476.entry.js.map +1 -0
  482. package/dist/core/{p-4dd0eb6a.entry.js → p-a9de9aba.entry.js} +2 -2
  483. package/dist/core/p-a9de9aba.entry.js.map +1 -0
  484. package/dist/core/p-ad6c4c02.entry.js +2 -0
  485. package/dist/core/p-ad6c4c02.entry.js.map +1 -0
  486. package/dist/core/{p-ca20c9c3.entry.js → p-aeef3c9d.entry.js} +2 -2
  487. package/dist/core/p-aeef3c9d.entry.js.map +1 -0
  488. package/dist/core/p-b03bd9c6.entry.js +2 -0
  489. package/dist/core/p-b03bd9c6.entry.js.map +1 -0
  490. package/dist/core/p-b0685167.entry.js +2 -0
  491. package/dist/core/p-b0685167.entry.js.map +1 -0
  492. package/dist/core/p-b35a9909.entry.js +2 -0
  493. package/dist/core/p-b35a9909.entry.js.map +1 -0
  494. package/dist/core/p-bad10f6c.entry.js +2 -0
  495. package/dist/core/p-bad10f6c.entry.js.map +1 -0
  496. package/dist/core/{p-a18c0672.entry.js → p-bda4414e.entry.js} +2 -2
  497. package/dist/core/p-bda4414e.entry.js.map +1 -0
  498. package/dist/core/p-c0333310.entry.js +2 -0
  499. package/dist/core/p-c0333310.entry.js.map +1 -0
  500. package/dist/core/{p-2e63f202.entry.js → p-c3f9fb1d.entry.js} +2 -2
  501. package/dist/core/p-c3f9fb1d.entry.js.map +1 -0
  502. package/dist/core/{p-fb5861c6.entry.js → p-ca6820dc.entry.js} +2 -2
  503. package/dist/core/p-ca6820dc.entry.js.map +1 -0
  504. package/dist/core/p-d6694b41.entry.js +2 -0
  505. package/dist/core/p-d6694b41.entry.js.map +1 -0
  506. package/dist/core/{p-70124e59.entry.js → p-da4c1409.entry.js} +2 -2
  507. package/dist/core/p-da4c1409.entry.js.map +1 -0
  508. package/dist/core/p-dbe06c3b.entry.js +2 -0
  509. package/dist/core/p-dbe06c3b.entry.js.map +1 -0
  510. package/dist/core/{p-28bc3bf0.entry.js → p-df67b151.entry.js} +2 -2
  511. package/dist/core/p-df67b151.entry.js.map +1 -0
  512. package/dist/core/{p-df1b0f17.entry.js → p-dfd31e28.entry.js} +2 -2
  513. package/dist/core/p-dfd31e28.entry.js.map +1 -0
  514. package/dist/core/{p-5e896163.entry.js → p-e3e6308b.entry.js} +2 -2
  515. package/dist/core/p-e3e6308b.entry.js.map +1 -0
  516. package/dist/core/{p-b7cf6411.entry.js → p-ea233813.entry.js} +2 -2
  517. package/dist/core/p-ea233813.entry.js.map +1 -0
  518. package/dist/core/p-ec26fc38.js.map +1 -1
  519. package/dist/core/{p-d2d5132d.entry.js → p-ecdcae46.entry.js} +2 -2
  520. package/dist/core/p-ecdcae46.entry.js.map +1 -0
  521. package/dist/core/{p-443052a7.entry.js → p-ef91c17e.entry.js} +2 -2
  522. package/dist/core/p-ef91c17e.entry.js.map +1 -0
  523. package/dist/core/{p-cee45622.entry.js → p-f0714432.entry.js} +2 -2
  524. package/dist/core/p-f0714432.entry.js.map +1 -0
  525. package/dist/core/p-f3053872.js +3 -0
  526. package/dist/core/p-f3053872.js.map +1 -0
  527. package/dist/core/{p-a8dc8196.entry.js → p-f381e93f.entry.js} +2 -2
  528. package/dist/core/p-f381e93f.entry.js.map +1 -0
  529. package/dist/core/p-fd482bd7.entry.js +2 -0
  530. package/dist/core/p-fd482bd7.entry.js.map +1 -0
  531. package/dist/core/p-fe2c4009.entry.js +2 -0
  532. package/dist/core/p-fe2c4009.entry.js.map +1 -0
  533. package/dist/esm/core.js +7 -3
  534. package/dist/esm/core.js.map +1 -1
  535. package/dist/esm/{helpers-73666f14.js → helpers-8e57082b.js} +7 -2
  536. package/dist/esm/helpers-8e57082b.js.map +1 -0
  537. package/dist/esm/ic-alert.entry.js +2 -2
  538. package/dist/esm/ic-back-to-top.entry.js +2 -2
  539. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  540. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  541. package/dist/esm/ic-button_3.entry.js +31 -31
  542. package/dist/esm/ic-button_3.entry.js.map +1 -1
  543. package/dist/esm/ic-card.entry.js +4 -3
  544. package/dist/esm/ic-card.entry.js.map +1 -1
  545. package/dist/esm/ic-checkbox-group.entry.js +5 -2
  546. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  547. package/dist/esm/ic-checkbox.entry.js +3 -2
  548. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  549. package/dist/esm/ic-chip.entry.js +5 -2
  550. package/dist/esm/ic-chip.entry.js.map +1 -1
  551. package/dist/esm/ic-classification-banner.entry.js +1 -1
  552. package/dist/esm/ic-data-entity.entry.js +1 -1
  553. package/dist/esm/ic-data-row.entry.js +2 -2
  554. package/dist/esm/ic-dialog.entry.js +292 -0
  555. package/dist/esm/ic-dialog.entry.js.map +1 -0
  556. package/dist/esm/ic-divider.entry.js +2 -2
  557. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  558. package/dist/esm/ic-footer-link.entry.js +2 -2
  559. package/dist/esm/ic-footer.entry.js +3 -3
  560. package/dist/esm/ic-footer.entry.js.map +1 -1
  561. package/dist/esm/ic-hero.entry.js +2 -2
  562. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  563. package/dist/esm/ic-input-component-container_3.entry.js +65 -26
  564. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  565. package/dist/esm/ic-input-label_2.entry.js +3 -3
  566. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  567. package/dist/esm/ic-link.entry.js +2 -2
  568. package/dist/esm/ic-menu-group.entry.js +1 -1
  569. package/dist/esm/ic-menu-item.entry.js +4 -3
  570. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  571. package/dist/esm/ic-navigation-button.entry.js +2 -2
  572. package/dist/esm/ic-navigation-group.entry.js +44 -18
  573. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  574. package/dist/esm/ic-navigation-item.entry.js +2 -2
  575. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  576. package/dist/esm/ic-page-header.entry.js +3 -3
  577. package/dist/esm/ic-page-header.entry.js.map +1 -1
  578. package/dist/esm/ic-pagination-item.entry.js +6 -1
  579. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  580. package/dist/esm/ic-pagination.entry.js +3 -2
  581. package/dist/esm/ic-pagination.entry.js.map +1 -1
  582. package/dist/esm/ic-popover-menu.entry.js +3 -3
  583. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  584. package/dist/esm/ic-radio-group.entry.js +16 -5
  585. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  586. package/dist/esm/ic-radio-option.entry.js +5 -11
  587. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  588. package/dist/esm/ic-search-bar.entry.js +6 -3
  589. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  590. package/dist/esm/ic-section-container.entry.js +1 -1
  591. package/dist/esm/ic-select.entry.js +34 -32
  592. package/dist/esm/ic-select.entry.js.map +1 -1
  593. package/dist/esm/ic-side-navigation.entry.js +51 -42
  594. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  595. package/dist/esm/ic-skeleton.entry.js +1 -1
  596. package/dist/esm/ic-status-tag.entry.js +3 -3
  597. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  598. package/dist/esm/ic-step.entry.js +1 -1
  599. package/dist/esm/ic-stepper.entry.js +2 -2
  600. package/dist/esm/ic-switch.entry.js +4 -3
  601. package/dist/esm/ic-switch.entry.js.map +1 -1
  602. package/dist/esm/ic-tab-context.entry.js +1 -1
  603. package/dist/esm/ic-tab-group.entry.js +3 -3
  604. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  605. package/dist/esm/ic-tab-panel.entry.js +1 -1
  606. package/dist/esm/ic-tab.entry.js +5 -1
  607. package/dist/esm/ic-tab.entry.js.map +1 -1
  608. package/dist/esm/ic-text-field.entry.js +4 -5
  609. package/dist/esm/ic-text-field.entry.js.map +1 -1
  610. package/dist/esm/ic-theme.entry.js +2 -2
  611. package/dist/esm/ic-toast-region.entry.js +1 -1
  612. package/dist/esm/ic-toast.entry.js +2 -2
  613. package/dist/esm/ic-top-navigation.entry.js +2 -2
  614. package/dist/esm/ic-typography.entry.js +2 -2
  615. package/dist/esm/{index-3b144b17.js → index-a77644e1.js} +222 -44
  616. package/dist/esm/index-a77644e1.js.map +1 -0
  617. package/dist/esm/loader.js +4 -3
  618. package/dist/esm/loader.js.map +1 -1
  619. package/dist/esm/polyfills/css-shim.js +1 -1
  620. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.types.d.ts +1 -1
  621. package/dist/types/components/ic-button/ic-button.types.d.ts +4 -4
  622. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +1 -0
  623. package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
  624. package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -2
  625. package/dist/types/components/ic-classification-banner/ic-classification-banner.types.d.ts +1 -1
  626. package/dist/types/components/ic-dialog/ic-dialog.d.ts +123 -0
  627. package/dist/types/components/ic-dialog/ic-dialog.test.a11y.d.ts +1 -0
  628. package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
  629. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
  630. package/dist/types/components/ic-hero/ic-hero.types.d.ts +1 -1
  631. package/dist/types/components/ic-input-validation/ic-input-validation.types.d.ts +1 -1
  632. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +2 -2
  633. package/dist/types/components/ic-menu/ic-menu.d.ts +6 -0
  634. package/dist/types/components/ic-menu-item/ic-menu-item.types.d.ts +1 -1
  635. package/dist/types/components/ic-navigation-button/ic-navigation-button.types.d.ts +1 -1
  636. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +3 -1
  637. package/dist/types/components/ic-pagination/ic-pagination.d.ts +1 -1
  638. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +1 -1
  639. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +2 -1
  640. package/dist/types/components/ic-pagination-item/ic-pagination-item.types.d.ts +1 -1
  641. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +4 -3
  642. package/dist/types/components/ic-radio-group/ic-radio-group.types.d.ts +7 -0
  643. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +1 -3
  644. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +1 -1
  645. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  646. package/dist/types/components/ic-select/ic-select.d.ts +3 -3
  647. package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
  648. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +2 -2
  649. package/dist/types/components/ic-step/ic-step.types.d.ts +3 -3
  650. package/dist/types/components/ic-stepper/ic-stepper.types.d.ts +1 -1
  651. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
  652. package/dist/types/components/ic-text-field/ic-text-field.d.ts +1 -1
  653. package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +3 -3
  654. package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -1
  655. package/dist/types/components/ic-tooltip/ic-tooltip.types.d.ts +1 -1
  656. package/dist/types/components.d.ts +187 -27
  657. package/dist/types/stencil-public-runtime.d.ts +72 -15
  658. package/dist/types/testspec.setup.d.ts +9 -0
  659. package/dist/types/utils/helpers.d.ts +1 -0
  660. package/dist/types/utils/types.d.ts +22 -22
  661. package/hydrate/index.d.ts +17 -16
  662. package/hydrate/index.js +699 -262
  663. package/loader/index.d.ts +9 -0
  664. package/package.json +5 -5
  665. package/dist/cjs/helpers-d6b5880e.js.map +0 -1
  666. package/dist/cjs/index-a62312a7.js.map +0 -1
  667. package/dist/core/p-050dbce8.entry.js.map +0 -1
  668. package/dist/core/p-06962e10.entry.js +0 -2
  669. package/dist/core/p-06962e10.entry.js.map +0 -1
  670. package/dist/core/p-0969a95a.entry.js +0 -2
  671. package/dist/core/p-0969a95a.entry.js.map +0 -1
  672. package/dist/core/p-0a11ec35.entry.js +0 -2
  673. package/dist/core/p-0a11ec35.entry.js.map +0 -1
  674. package/dist/core/p-0f153569.entry.js +0 -2
  675. package/dist/core/p-0f153569.entry.js.map +0 -1
  676. package/dist/core/p-1585e5c1.entry.js.map +0 -1
  677. package/dist/core/p-223a214f.entry.js.map +0 -1
  678. package/dist/core/p-28bc3bf0.entry.js.map +0 -1
  679. package/dist/core/p-29ea6f88.entry.js.map +0 -1
  680. package/dist/core/p-2e63f202.entry.js.map +0 -1
  681. package/dist/core/p-2e6ea6d3.entry.js +0 -2
  682. package/dist/core/p-2e6ea6d3.entry.js.map +0 -1
  683. package/dist/core/p-2fb97a1b.entry.js +0 -2
  684. package/dist/core/p-2fb97a1b.entry.js.map +0 -1
  685. package/dist/core/p-312c10b0.entry.js.map +0 -1
  686. package/dist/core/p-31b4b684.entry.js +0 -2
  687. package/dist/core/p-31b4b684.entry.js.map +0 -1
  688. package/dist/core/p-32cc8827.entry.js +0 -2
  689. package/dist/core/p-32cc8827.entry.js.map +0 -1
  690. package/dist/core/p-3498db0b.entry.js +0 -2
  691. package/dist/core/p-3498db0b.entry.js.map +0 -1
  692. package/dist/core/p-36e0671f.entry.js.map +0 -1
  693. package/dist/core/p-443052a7.entry.js.map +0 -1
  694. package/dist/core/p-454b1ecd.entry.js.map +0 -1
  695. package/dist/core/p-46371c05.entry.js.map +0 -1
  696. package/dist/core/p-471820e6.js.map +0 -1
  697. package/dist/core/p-4dd0eb6a.entry.js.map +0 -1
  698. package/dist/core/p-50421f27.entry.js.map +0 -1
  699. package/dist/core/p-559b3d17.entry.js +0 -2
  700. package/dist/core/p-559b3d17.entry.js.map +0 -1
  701. package/dist/core/p-589f6dd3.js +0 -3
  702. package/dist/core/p-589f6dd3.js.map +0 -1
  703. package/dist/core/p-5a3f3f37.entry.js +0 -2
  704. package/dist/core/p-5a3f3f37.entry.js.map +0 -1
  705. package/dist/core/p-5e896163.entry.js.map +0 -1
  706. package/dist/core/p-68547339.entry.js.map +0 -1
  707. package/dist/core/p-6f2be5bd.entry.js +0 -2
  708. package/dist/core/p-6f2be5bd.entry.js.map +0 -1
  709. package/dist/core/p-70124e59.entry.js.map +0 -1
  710. package/dist/core/p-80164baa.entry.js +0 -2
  711. package/dist/core/p-80164baa.entry.js.map +0 -1
  712. package/dist/core/p-80eff050.entry.js +0 -2
  713. package/dist/core/p-80eff050.entry.js.map +0 -1
  714. package/dist/core/p-8edd3a9b.entry.js +0 -2
  715. package/dist/core/p-8edd3a9b.entry.js.map +0 -1
  716. package/dist/core/p-9715ec62.entry.js +0 -2
  717. package/dist/core/p-9715ec62.entry.js.map +0 -1
  718. package/dist/core/p-983cb33c.entry.js +0 -2
  719. package/dist/core/p-983cb33c.entry.js.map +0 -1
  720. package/dist/core/p-a18c0672.entry.js.map +0 -1
  721. package/dist/core/p-a8dc8196.entry.js.map +0 -1
  722. package/dist/core/p-a9184841.entry.js.map +0 -1
  723. package/dist/core/p-af815dfb.entry.js.map +0 -1
  724. package/dist/core/p-b69226d2.entry.js +0 -2
  725. package/dist/core/p-b69226d2.entry.js.map +0 -1
  726. package/dist/core/p-b7cf6411.entry.js.map +0 -1
  727. package/dist/core/p-bffa2e1a.entry.js.map +0 -1
  728. package/dist/core/p-c85476c0.entry.js.map +0 -1
  729. package/dist/core/p-ca20c9c3.entry.js.map +0 -1
  730. package/dist/core/p-cee45622.entry.js.map +0 -1
  731. package/dist/core/p-d2d5132d.entry.js.map +0 -1
  732. package/dist/core/p-de45134c.entry.js.map +0 -1
  733. package/dist/core/p-df1b0f17.entry.js.map +0 -1
  734. package/dist/core/p-e16e817e.entry.js +0 -2
  735. package/dist/core/p-e16e817e.entry.js.map +0 -1
  736. package/dist/core/p-e6217f40.entry.js.map +0 -1
  737. package/dist/core/p-faeedfd1.entry.js +0 -2
  738. package/dist/core/p-faeedfd1.entry.js.map +0 -1
  739. package/dist/core/p-fb5861c6.entry.js.map +0 -1
  740. package/dist/core/p-fc7dce3d.entry.js.map +0 -1
  741. package/dist/core/p-fd18d7a3.entry.js +0 -2
  742. package/dist/core/p-fd18d7a3.entry.js.map +0 -1
  743. package/dist/esm/helpers-73666f14.js.map +0 -1
  744. package/dist/esm/index-3b144b17.js.map +0 -1
@@ -0,0 +1,1276 @@
1
+ import { h } from "@stencil/core";
2
+ import { newSpecPage } from "@stencil/core/testing";
3
+ import { Menu } from "../ic-menu/ic-menu";
4
+ import { Select } from "./ic-select";
5
+ import * as helpers from "../../utils/helpers";
6
+ import { Button } from "../ic-button/ic-button";
7
+ import { waitForTimeout } from "../../testspec.setup";
8
+ import { InputComponentContainer } from "../ic-input-component-container/ic-input-component-container";
9
+ beforeAll(() => {
10
+ jest.spyOn(console, "warn").mockImplementation(jest.fn());
11
+ });
12
+ const label1 = "Test label 1";
13
+ const value1 = "Test value 1";
14
+ const label2 = "Test label 2";
15
+ const value2 = "Test value 2";
16
+ const label3 = "Test label 3";
17
+ const value3 = "Test value 3";
18
+ const testValue = "Test value";
19
+ const menuUl = "ic-menu ul";
20
+ const noResults = "No results found";
21
+ const clearButtonId = "#clear-button";
22
+ const loadingLabel = "Loading...";
23
+ const loadingErrorLabel = "Loading Error";
24
+ const retryButtonId = "#retry-button";
25
+ const menuOptions = [
26
+ { label: label1, value: value1 },
27
+ { label: label2, value: value2 },
28
+ { label: label3, value: value3 },
29
+ ];
30
+ const menuOptionsWithDescriptions = [
31
+ {
32
+ label: "Cappuccino",
33
+ value: "Cap",
34
+ description: "Coffee frothed up with pressurised steam",
35
+ },
36
+ {
37
+ label: "Latte",
38
+ value: "Lat",
39
+ description: "A milkier coffee than a cappuccino",
40
+ },
41
+ {
42
+ label: "Americano",
43
+ value: "Ame",
44
+ description: "Espresso coffee diluted with hot water",
45
+ },
46
+ ];
47
+ const menuOptionsNoValues = [
48
+ { label: label1 },
49
+ { label: label2 },
50
+ { label: label3 },
51
+ ];
52
+ const menuOptionsWithGroups = [
53
+ {
54
+ label: "Fancy",
55
+ children: [
56
+ { label: "Cappuccino", value: "Cap" },
57
+ { label: "Flat white", value: "Flat" },
58
+ ],
59
+ },
60
+ {
61
+ label: "Boring",
62
+ children: [
63
+ { label: "Filter", value: "Fil" },
64
+ { label: "Latte", value: "Lat" },
65
+ ],
66
+ },
67
+ ];
68
+ const getTestSelect = (props) => `<ic-select label="IC Select Test" ${props}></ic-select>
69
+ <script>
70
+ var select = document.querySelector('ic-select');
71
+ var option = 'Test value 1';
72
+ select.options = ${menuOptions}
73
+ select.addEventListener('icChange', function (event) {
74
+ option = event.detail.value;
75
+ select.value = option;
76
+ });
77
+ </script>`;
78
+ describe("ic-select", () => {
79
+ it("should not render a label when the 'hide-label' prop is supplied", async () => {
80
+ const page = await newSpecPage({
81
+ components: [Select, Menu, InputComponentContainer],
82
+ html: getTestSelect("hide-label"),
83
+ });
84
+ expect(page.root).toMatchSnapshot("hide-label-set");
85
+ });
86
+ it("should render readonly", async () => {
87
+ const page = await newSpecPage({
88
+ components: [Select, Menu, InputComponentContainer],
89
+ html: getTestSelect('readonly="true"'),
90
+ });
91
+ expect(page.root).toMatchSnapshot("readonly");
92
+ });
93
+ it("should have correct validation status", async () => {
94
+ const page = await newSpecPage({
95
+ components: [Select, Menu, InputComponentContainer],
96
+ html: getTestSelect('validation-status="error"'),
97
+ });
98
+ expect(page.root).toMatchSnapshot("with-validation-status-error");
99
+ });
100
+ it("should not have a validation status if disabled", async () => {
101
+ const page = await newSpecPage({
102
+ components: [Select, Menu, InputComponentContainer],
103
+ html: getTestSelect('disabled validation-status="error"'),
104
+ });
105
+ expect(page.root).toMatchSnapshot("no-validation-status-if-disabled");
106
+ });
107
+ it("should render correct validation text", async () => {
108
+ const page = await newSpecPage({
109
+ components: [Select, Menu, InputComponentContainer],
110
+ html: getTestSelect('validation-status="error" validation-text="Test validation text"'),
111
+ });
112
+ expect(page.root).toMatchSnapshot("with-validation-text");
113
+ });
114
+ it("should not render validation text if no validation status has been supplied", async () => {
115
+ const page = await newSpecPage({
116
+ components: [Select, Menu, InputComponentContainer],
117
+ html: getTestSelect('validation-text="Test validation text"'),
118
+ });
119
+ expect(page.root).toMatchSnapshot("no-validation-text-if-no-status");
120
+ });
121
+ it("should test with clear button", async () => {
122
+ const eventSpy = jest.fn();
123
+ const page = await newSpecPage({
124
+ components: [Select, Menu, InputComponentContainer, Button],
125
+ html: `<ic-select label="IC Select Test" show-clear-button="true" value="test-value"></ic-select>`,
126
+ });
127
+ page.root.addEventListener("icClear", eventSpy);
128
+ page.root.options = menuOptions;
129
+ await page.waitForChanges();
130
+ expect(page.root).toMatchSnapshot("with-clear-button");
131
+ page.root.setFocus();
132
+ await page.waitForChanges();
133
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
134
+ clearButton.focus();
135
+ await page.waitForChanges();
136
+ expect(page.rootInstance.clearButtonFocused).toBe(true);
137
+ clearButton.blur();
138
+ await page.waitForChanges();
139
+ expect(page.rootInstance.clearButtonFocused).toBe(false);
140
+ clearButton.click();
141
+ await page.waitForChanges();
142
+ expect(eventSpy).toHaveBeenCalled;
143
+ });
144
+ it("should test menu handleKeyboardOpen method - arrow down (custom select)", async () => {
145
+ const page = await newSpecPage({
146
+ components: [Select, Menu, InputComponentContainer],
147
+ html: `<ic-select label="IC Select Test"></ic-select>`,
148
+ });
149
+ page.root.options = menuOptions;
150
+ await page.waitForChanges();
151
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
152
+ const KeyEvent = {
153
+ key: "ArrowDown",
154
+ preventDefault: () => null,
155
+ };
156
+ await menu.handleKeyboardOpen(KeyEvent);
157
+ await page.waitForChanges();
158
+ expect(page.rootInstance.open).toBeTruthy;
159
+ expect(page.rootInstance.value).toBe(value1);
160
+ await menu.handleKeyboardOpen(KeyEvent);
161
+ await page.waitForChanges();
162
+ await menu.handleKeyboardOpen(KeyEvent);
163
+ await page.waitForChanges();
164
+ await menu.handleKeyboardOpen(KeyEvent);
165
+ await page.waitForChanges();
166
+ expect(page.rootInstance.value).toBe(value1);
167
+ });
168
+ it("should test menu handleKeyboardOpen method - arrow up (custom select)", async () => {
169
+ const page = await newSpecPage({
170
+ components: [Select, Menu, InputComponentContainer],
171
+ html: `<ic-select label="IC Select Test"></ic-select>`,
172
+ });
173
+ page.root.options = menuOptions;
174
+ await page.waitForChanges();
175
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
176
+ const KeyEvent = {
177
+ key: "ArrowUp",
178
+ preventDefault: () => null,
179
+ };
180
+ await menu.handleKeyboardOpen(KeyEvent);
181
+ await page.waitForChanges();
182
+ expect(page.rootInstance.open).toBeTruthy;
183
+ expect(page.rootInstance.value).toBe(value3);
184
+ await menu.handleKeyboardOpen(KeyEvent);
185
+ await page.waitForChanges();
186
+ await menu.handleKeyboardOpen(KeyEvent);
187
+ await page.waitForChanges();
188
+ await menu.handleKeyboardOpen(KeyEvent);
189
+ await page.waitForChanges();
190
+ expect(page.rootInstance.value).toBe(value3);
191
+ });
192
+ it("should test keydown on menu - space key (custom)", async () => {
193
+ const page = await newSpecPage({
194
+ components: [Select, Menu, InputComponentContainer],
195
+ html: `<ic-select label="IC Select Test"></ic-select>`,
196
+ });
197
+ page.root.options = menuOptions;
198
+ page.rootInstance.open = true;
199
+ await page.waitForChanges();
200
+ const list = page.root.shadowRoot.querySelector("ic-menu ul");
201
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
202
+ key: " ",
203
+ bubbles: true,
204
+ cancelable: true,
205
+ }));
206
+ await page.waitForChanges();
207
+ expect(page.rootInstance.open).toBe(false);
208
+ });
209
+ it("should test mousedown handler", async () => {
210
+ const page = await newSpecPage({
211
+ components: [Select, Menu, InputComponentContainer],
212
+ html: `<ic-select label="IC Select Test"></ic-select>`,
213
+ });
214
+ page.root.options = menuOptions;
215
+ const button = page.root.shadowRoot.querySelector("button.select-input");
216
+ const event = new Event("mousedown", {
217
+ bubbles: true,
218
+ cancelable: true,
219
+ });
220
+ button.dispatchEvent(event);
221
+ await page.waitForChanges();
222
+ expect(page.rootInstance.open).toBe(false);
223
+ });
224
+ it("should use option labels if no values", async () => {
225
+ const page = await newSpecPage({
226
+ components: [Select, Menu, InputComponentContainer],
227
+ html: `<ic-select label="IC Select Test"></ic-select>`,
228
+ });
229
+ page.root.options = menuOptionsNoValues;
230
+ await page.waitForChanges();
231
+ expect(page.root.options[0].value).toBe(label1);
232
+ expect(page.root.options[1].value).toBe(label2);
233
+ expect(page.root.options[2].value).toBe(label3);
234
+ });
235
+ it("should select the option that matches the pressed character key", async () => {
236
+ const page = await newSpecPage({
237
+ components: [Select, Menu, InputComponentContainer],
238
+ html: `<ic-select label="IC Select Test"></ic-select>`,
239
+ });
240
+ page.root.options = menuOptionsWithDescriptions;
241
+ await page.waitForChanges();
242
+ const eventSpy = jest.fn();
243
+ page.win.addEventListener("icChange", eventSpy);
244
+ await page.rootInstance.handleKeyDown({
245
+ key: "A",
246
+ preventDefault: () => null,
247
+ });
248
+ await page.waitForChanges();
249
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
250
+ detail: expect.objectContaining({
251
+ value: "Ame",
252
+ }),
253
+ }));
254
+ await waitForTimeout(1000);
255
+ await page.rootInstance.handleKeyDown({
256
+ key: "C",
257
+ preventDefault: () => null,
258
+ });
259
+ await page.waitForChanges();
260
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
261
+ detail: expect.objectContaining({
262
+ value: "Cap",
263
+ }),
264
+ }));
265
+ });
266
+ it("should select the option that matches the pressed character key - grouped options", async () => {
267
+ const page = await newSpecPage({
268
+ components: [Select, Menu, InputComponentContainer],
269
+ html: `<ic-select label="IC Select Test"></ic-select>`,
270
+ });
271
+ page.root.options = menuOptionsWithGroups;
272
+ await page.waitForChanges();
273
+ const eventSpy = jest.fn();
274
+ page.win.addEventListener("icChange", eventSpy);
275
+ await page.rootInstance.handleKeyDown({
276
+ key: "F",
277
+ preventDefault: () => null,
278
+ });
279
+ await page.waitForChanges();
280
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
281
+ detail: expect.objectContaining({
282
+ value: "Flat",
283
+ }),
284
+ }));
285
+ });
286
+ it("should test getFilteredChildMenuOptions for custom select", async () => {
287
+ const page = await newSpecPage({
288
+ components: [Select, Menu, InputComponentContainer],
289
+ html: `<ic-select label="IC Select Test"></ic-select>`,
290
+ });
291
+ page.root.options = menuOptionsWithGroups;
292
+ await page.waitForChanges();
293
+ const result = await page.rootInstance.getFilteredChildMenuOptions(menuOptionsWithGroups[0]);
294
+ await page.waitForChanges();
295
+ expect(result).toEqual(page.root.options[0]);
296
+ });
297
+ it("should select the option that matches the character key pressed when menu is open", async () => {
298
+ const page = await newSpecPage({
299
+ components: [Select, Menu, InputComponentContainer],
300
+ html: `<ic-select label="IC Select Test"></ic-select>`,
301
+ });
302
+ page.root.options = menuOptionsWithDescriptions;
303
+ page.rootInstance.open = true;
304
+ await page.waitForChanges();
305
+ const eventSpy = jest.fn();
306
+ page.win.addEventListener("icChange", eventSpy);
307
+ const list = page.root.shadowRoot.querySelector(menuUl);
308
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
309
+ key: "C",
310
+ bubbles: true,
311
+ cancelable: true,
312
+ }));
313
+ await page.waitForChanges();
314
+ expect(eventSpy).toHaveBeenCalledWith(expect.objectContaining({
315
+ detail: expect.objectContaining({
316
+ value: "Cap",
317
+ }),
318
+ }));
319
+ });
320
+ it("should add to pressedCharacters as characters are pressed and then reset it after 1 second", 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
+ await page.waitForChanges();
327
+ await page.rootInstance.handleKeyDown({
328
+ key: "A",
329
+ preventDefault: () => null,
330
+ });
331
+ await page.waitForChanges();
332
+ expect(page.rootInstance.pressedCharacters).toBe("A");
333
+ await page.rootInstance.handleKeyDown({
334
+ key: "B",
335
+ preventDefault: () => null,
336
+ });
337
+ await page.waitForChanges();
338
+ expect(page.rootInstance.pressedCharacters).toBe("AB");
339
+ await page.rootInstance.handleKeyDown({
340
+ key: "C",
341
+ preventDefault: () => null,
342
+ });
343
+ await page.waitForChanges();
344
+ await waitForTimeout(1000);
345
+ await page.waitForChanges();
346
+ expect(page.rootInstance.pressedCharacters).toBe("");
347
+ });
348
+ it("should not open the menu when space key is used as a character key", async () => {
349
+ const page = await newSpecPage({
350
+ components: [Select, Menu, InputComponentContainer],
351
+ html: `<ic-select label="IC Select Test"></ic-select>`,
352
+ });
353
+ page.root.options = menuOptionsWithDescriptions;
354
+ await page.waitForChanges();
355
+ await page.rootInstance.handleKeyDown({
356
+ key: "A",
357
+ preventDefault: () => null,
358
+ });
359
+ await page.rootInstance.handleKeyDown({
360
+ key: " ",
361
+ preventDefault: () => null,
362
+ });
363
+ await page.waitForChanges();
364
+ expect(page.rootInstance.pressedCharacters).toBe("A ");
365
+ expect(page.rootInstance.open).toBe(false);
366
+ });
367
+ it("should not close the menu when space key is used as a character key", async () => {
368
+ const page = await newSpecPage({
369
+ components: [Select, Menu, InputComponentContainer],
370
+ html: `<ic-select label="IC Select Test"></ic-select>`,
371
+ });
372
+ page.root.options = menuOptionsWithDescriptions;
373
+ page.rootInstance.open = true;
374
+ await page.waitForChanges();
375
+ const eventSpy = jest.fn();
376
+ page.win.addEventListener("icChange", eventSpy);
377
+ const list = page.root.shadowRoot.querySelector(menuUl);
378
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
379
+ key: "C",
380
+ bubbles: true,
381
+ cancelable: true,
382
+ }));
383
+ await page.waitForChanges();
384
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
385
+ key: " ",
386
+ bubbles: true,
387
+ cancelable: true,
388
+ }));
389
+ await page.waitForChanges();
390
+ expect(page.rootInstance.pressedCharacters).toBe("C ");
391
+ expect(page.rootInstance.open).toBe(true);
392
+ });
393
+ it("should test loading state and timeout for custom select", async () => {
394
+ const page = await newSpecPage({
395
+ components: [Select, Menu, InputComponentContainer],
396
+ html: `<ic-select label="IC Select Test" timeout="1000"></ic-select>`,
397
+ });
398
+ const eventSpy = jest.fn();
399
+ page.win.addEventListener("icBlur", eventSpy);
400
+ page.rootInstance.loading = true;
401
+ page.rootInstance.open = true;
402
+ await page.waitForChanges();
403
+ expect(page.rootInstance.options[0].label).toEqual(loadingLabel);
404
+ await waitForTimeout(1000);
405
+ expect(page.rootInstance.options[0].label).toEqual(loadingErrorLabel);
406
+ await page.waitForChanges();
407
+ const retryButton = page.root.shadowRoot
408
+ .querySelector("ic-menu")
409
+ .querySelector(retryButtonId);
410
+ retryButton.blur();
411
+ expect(page.rootInstance.open).toBeFalsy;
412
+ expect(eventSpy).toHaveBeenCalled;
413
+ page.root.options = [];
414
+ await page.waitForChanges();
415
+ expect(page.rootInstance.options[0].label).toEqual(loadingErrorLabel);
416
+ });
417
+ it("should focus the input when escape is pressed whilst the menu is focused", async () => {
418
+ const spy = jest.spyOn(HTMLButtonElement.prototype, "focus");
419
+ const page = await newSpecPage({
420
+ components: [Select, Menu, InputComponentContainer],
421
+ html: `<ic-select label="IC Select Test"></ic-select>`,
422
+ });
423
+ page.root.options = menuOptions;
424
+ page.rootInstance.open = true;
425
+ await page.waitForChanges();
426
+ const list = page.root.shadowRoot.querySelector(menuUl);
427
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
428
+ key: "Escape",
429
+ bubbles: true,
430
+ cancelable: true,
431
+ }));
432
+ await page.waitForChanges();
433
+ expect(page.rootInstance.open).toBeFalsy();
434
+ expect(spy).toHaveBeenCalled();
435
+ });
436
+ });
437
+ describe("ic-select native", () => {
438
+ beforeEach(() => {
439
+ Object.defineProperty(helpers, "isMobileOrTablet", {
440
+ value: jest.fn().mockReturnValue(true),
441
+ });
442
+ });
443
+ afterEach(() => {
444
+ Object.defineProperty(helpers, "isMobileOrTablet", {
445
+ value: jest.fn().mockReturnValue(false),
446
+ });
447
+ });
448
+ it("should test native select", async () => {
449
+ const page = await newSpecPage({
450
+ components: [Select],
451
+ html: `<ic-select label="IC Select Test"></ic-select>`,
452
+ });
453
+ page.root.options = menuOptions;
454
+ page.root.label = "New label";
455
+ await page.waitForChanges();
456
+ page.root.setFocus();
457
+ await page.waitForChanges();
458
+ expect(page.root).toMatchSnapshot("native-select");
459
+ });
460
+ it("should test native select with groups", async () => {
461
+ const page = await newSpecPage({
462
+ components: [Select],
463
+ html: `<ic-select label="IC Select Test"></ic-select>`,
464
+ });
465
+ page.root.options = menuOptionsWithGroups;
466
+ page.root.label = "New label";
467
+ await page.waitForChanges();
468
+ page.root.setFocus();
469
+ await page.waitForChanges();
470
+ expect(page.root).toMatchSnapshot("native-select-with-groups");
471
+ let eventSpy = jest.fn();
472
+ page.win.addEventListener("icBlur", eventSpy);
473
+ const select = page.root.shadowRoot.querySelector("select");
474
+ select.blur();
475
+ await page.waitForChanges();
476
+ expect(eventSpy).toHaveBeenCalled();
477
+ eventSpy = jest.fn();
478
+ page.win.addEventListener("icChange", eventSpy);
479
+ const event = new Event("change", {
480
+ bubbles: true,
481
+ cancelable: true,
482
+ });
483
+ page.rootInstance.nativeSelectElement.selectedIndex = 0;
484
+ select.dispatchEvent(event);
485
+ await page.waitForChanges();
486
+ //delay to wait for aria live update
487
+ await waitForTimeout(900);
488
+ expect(eventSpy).toHaveBeenCalled();
489
+ });
490
+ it("should test native select keydown", async () => {
491
+ const page = await newSpecPage({
492
+ components: [Select],
493
+ html: `<ic-select label="IC Select Test"></ic-select>`,
494
+ });
495
+ page.root.options = menuOptions;
496
+ page.root.setFocus();
497
+ await page.waitForChanges();
498
+ await page.rootInstance.handleNativeSelectKeyDown({
499
+ key: "ArrowDown",
500
+ preventDefault: () => null,
501
+ });
502
+ await page.waitForChanges();
503
+ expect(page.rootInstance.open).toBeFalsy;
504
+ });
505
+ });
506
+ describe("ic-select searchable", () => {
507
+ it("should render as required", async () => {
508
+ const page = await newSpecPage({
509
+ components: [Select, Menu, InputComponentContainer],
510
+ html: getTestSelect('required="true" searchable="true"'),
511
+ });
512
+ expect(page.root).toMatchSnapshot("required-searchable");
513
+ });
514
+ it("should test with clear button with searchable", async () => {
515
+ const page = await newSpecPage({
516
+ components: [Select, Menu, InputComponentContainer, Button],
517
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
518
+ });
519
+ page.root.options = menuOptions;
520
+ page.rootInstance.searchableSelectInputValue = "test value";
521
+ await page.waitForChanges();
522
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
523
+ clearButton.focus();
524
+ await page.waitForChanges();
525
+ expect(page.rootInstance.clearButtonFocused).toBe(true);
526
+ clearButton.blur();
527
+ await page.waitForChanges();
528
+ expect(page.rootInstance.clearButtonFocused).toBe(false);
529
+ clearButton.click();
530
+ await page.waitForChanges();
531
+ expect(page.rootInstance.searchableSelectInputValue).toBeNull;
532
+ });
533
+ it("should test keydown handler searchable", async () => {
534
+ const page = await newSpecPage({
535
+ components: [Select, Menu, InputComponentContainer],
536
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
537
+ });
538
+ jest.spyOn(page.rootInstance, "setFocus").mockImplementation();
539
+ page.root.options = menuOptions;
540
+ await page.waitForChanges();
541
+ await page.root.setFocus();
542
+ await page.waitForChanges();
543
+ await page.rootInstance.handleKeyDown({
544
+ key: "ArrowDown",
545
+ preventDefault: () => null,
546
+ });
547
+ await page.waitForChanges();
548
+ const menu = page.root.shadowRoot.querySelector("ic-menu");
549
+ expect(menu.options).toEqual(menuOptions);
550
+ expect(page.rootInstance.open).toBeTruthy;
551
+ await page.waitForChanges();
552
+ await page.rootInstance.handleKeyDown({
553
+ key: "Enter",
554
+ preventDefault: () => null,
555
+ });
556
+ await page.waitForChanges();
557
+ expect(page.rootInstance.open).toBeFalsy;
558
+ page.rootInstance.open = true;
559
+ page.rootInstance.noOptions = true;
560
+ await page.waitForChanges();
561
+ await page.rootInstance.handleKeyDown({
562
+ key: "Ctrl",
563
+ preventDefault: () => null,
564
+ });
565
+ await page.waitForChanges();
566
+ expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(2);
567
+ page.rootInstance.open = true;
568
+ page.rootInstance.noOptions = true;
569
+ await page.waitForChanges();
570
+ await page.rootInstance.handleKeyDown({
571
+ key: "Backspace",
572
+ preventDefault: () => null,
573
+ });
574
+ await page.waitForChanges();
575
+ expect(page.rootInstance.setFocus).toHaveBeenCalledTimes(3);
576
+ });
577
+ it("should test keydown on menu - arrow up (searchable)", async () => {
578
+ const page = await newSpecPage({
579
+ components: [Select, Menu, InputComponentContainer],
580
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
581
+ });
582
+ page.root.options = menuOptions;
583
+ page.root.value = value2;
584
+ await page.waitForChanges();
585
+ const list = page.root.shadowRoot.querySelector(menuUl);
586
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
587
+ key: "ArrowUp",
588
+ bubbles: true,
589
+ cancelable: true,
590
+ }));
591
+ await page.waitForChanges();
592
+ const input = page.root.shadowRoot.querySelector("input");
593
+ expect(input.value).toBe(label2);
594
+ expect(page.rootInstance.open).toBeTruthy;
595
+ });
596
+ it("should test keydown on menu - arrow up wrap around (searchable)", async () => {
597
+ const page = await newSpecPage({
598
+ components: [Select, Menu, InputComponentContainer],
599
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
600
+ });
601
+ page.root.options = menuOptions;
602
+ page.rootInstance.open = true;
603
+ await page.waitForChanges();
604
+ page.root.value = value1;
605
+ await page.waitForChanges();
606
+ const list = page.root.shadowRoot.querySelector(menuUl);
607
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
608
+ key: "ArrowUp",
609
+ bubbles: true,
610
+ cancelable: true,
611
+ }));
612
+ await page.waitForChanges();
613
+ const input = page.root.shadowRoot.querySelector("input");
614
+ expect(input.value).toBe(label1);
615
+ });
616
+ it("should test keydown on menu - arrow down", async () => {
617
+ const page = await newSpecPage({
618
+ components: [Select, Menu, InputComponentContainer],
619
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
620
+ });
621
+ page.root.options = menuOptions;
622
+ page.rootInstance.open = true;
623
+ await page.waitForChanges();
624
+ page.root.value = value1;
625
+ await page.waitForChanges();
626
+ const list = page.root.shadowRoot.querySelector(menuUl);
627
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
628
+ key: "ArrowDown",
629
+ bubbles: true,
630
+ cancelable: true,
631
+ }));
632
+ await page.waitForChanges();
633
+ const input = page.root.shadowRoot.querySelector("input");
634
+ expect(input.value).toBe(label1);
635
+ });
636
+ it("should test keydown on menu - arrow down wrap around", async () => {
637
+ const page = await newSpecPage({
638
+ components: [Select, Menu, InputComponentContainer],
639
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
640
+ });
641
+ page.root.options = menuOptions;
642
+ page.rootInstance.open = true;
643
+ await page.waitForChanges();
644
+ page.root.value = value3;
645
+ await page.waitForChanges();
646
+ const list = page.root.shadowRoot.querySelector(menuUl);
647
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
648
+ key: "ArrowDown",
649
+ bubbles: true,
650
+ cancelable: true,
651
+ }));
652
+ await page.waitForChanges();
653
+ const input = page.root.shadowRoot.querySelector("input");
654
+ expect(input.value).toBe(label3);
655
+ });
656
+ it("should test keydown on menu - home key", async () => {
657
+ const page = await newSpecPage({
658
+ components: [Select, Menu, InputComponentContainer],
659
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
660
+ });
661
+ page.root.options = menuOptions;
662
+ page.rootInstance.open = true;
663
+ await page.waitForChanges();
664
+ page.root.value = value3;
665
+ await page.waitForChanges();
666
+ const list = page.root.shadowRoot.querySelector(menuUl);
667
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
668
+ key: "Home",
669
+ bubbles: true,
670
+ cancelable: true,
671
+ }));
672
+ expect(page.rootInstance.open).toBeTruthy;
673
+ });
674
+ it("should test keydown on menu - end key", async () => {
675
+ const page = await newSpecPage({
676
+ components: [Select, Menu, InputComponentContainer],
677
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
678
+ });
679
+ page.root.options = menuOptions;
680
+ page.root.value = value1;
681
+ await page.waitForChanges();
682
+ const list = page.root.shadowRoot.querySelector(menuUl);
683
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
684
+ key: "End",
685
+ bubbles: true,
686
+ cancelable: true,
687
+ }));
688
+ await page.waitForChanges();
689
+ const input = page.root.shadowRoot.querySelector("input");
690
+ expect(input.value).toBe(label1);
691
+ expect(page.rootInstance.open).toBeTruthy;
692
+ });
693
+ it("should test keydown on menu - backspace key", async () => {
694
+ const page = await newSpecPage({
695
+ components: [Select, Menu, InputComponentContainer],
696
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
697
+ });
698
+ page.root.options = menuOptions;
699
+ page.rootInstance.open = true;
700
+ await page.waitForChanges();
701
+ page.root.value = value3;
702
+ await page.waitForChanges();
703
+ const list = page.root.shadowRoot.querySelector(menuUl);
704
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
705
+ key: "Backspace",
706
+ bubbles: true,
707
+ cancelable: true,
708
+ }));
709
+ await page.waitForChanges();
710
+ const input = page.root.shadowRoot.querySelector("input");
711
+ expect(input.value).toBe(label3);
712
+ });
713
+ it("should test keydown on menu - enter key", async () => {
714
+ const page = await newSpecPage({
715
+ components: [Select, Menu, InputComponentContainer],
716
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
717
+ });
718
+ page.root.options = menuOptions;
719
+ page.rootInstance.open = true;
720
+ await page.waitForChanges();
721
+ page.root.value = value3;
722
+ await page.waitForChanges();
723
+ const list = page.root.shadowRoot.querySelector(menuUl);
724
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
725
+ key: "ArrowDown",
726
+ bubbles: true,
727
+ cancelable: true,
728
+ }));
729
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
730
+ key: "Enter",
731
+ bubbles: true,
732
+ cancelable: true,
733
+ }));
734
+ await page.waitForChanges();
735
+ const input = page.root.shadowRoot.querySelector("input");
736
+ expect(input.value).toBe(label1);
737
+ input.click();
738
+ await page.waitForChanges();
739
+ expect(page.rootInstance.filteredOptions).toHaveLength(3);
740
+ });
741
+ it("should test keydown on menu - space key", async () => {
742
+ const page = await newSpecPage({
743
+ components: [Select, Menu, InputComponentContainer],
744
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
745
+ });
746
+ page.root.options = menuOptions;
747
+ page.rootInstance.open = true;
748
+ await page.waitForChanges();
749
+ const list = page.root.shadowRoot.querySelector(menuUl);
750
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
751
+ key: " ",
752
+ bubbles: true,
753
+ cancelable: true,
754
+ }));
755
+ await page.waitForChanges();
756
+ expect(page.rootInstance.open).toBe(true);
757
+ });
758
+ it("should test keydown on menu - other key", async () => {
759
+ const page = await newSpecPage({
760
+ components: [Select, Menu, InputComponentContainer],
761
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
762
+ });
763
+ page.root.options = menuOptions;
764
+ page.rootInstance.open = true;
765
+ await page.waitForChanges();
766
+ page.root.value = value2;
767
+ await page.waitForChanges();
768
+ const list = page.root.shadowRoot.querySelector(menuUl);
769
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
770
+ key: "Ctrl",
771
+ bubbles: true,
772
+ cancelable: true,
773
+ }));
774
+ await page.waitForChanges();
775
+ const input = page.root.shadowRoot.querySelector("input");
776
+ expect(input.value).toBe(label2);
777
+ });
778
+ it("should test keyup on menu list", async () => {
779
+ const page = await newSpecPage({
780
+ components: [Select, Menu, InputComponentContainer],
781
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
782
+ });
783
+ page.root.options = menuOptions;
784
+ page.rootInstance.open = true;
785
+ await page.waitForChanges();
786
+ page.root.value = value2;
787
+ await page.waitForChanges();
788
+ const list = page.root.shadowRoot.querySelector(menuUl);
789
+ list.dispatchEvent(new window.window.KeyboardEvent("keyup", {
790
+ key: "Tab",
791
+ shiftKey: true,
792
+ bubbles: true,
793
+ cancelable: true,
794
+ }));
795
+ await page.waitForChanges();
796
+ const input = page.root.shadowRoot.querySelector("input");
797
+ expect(input.value).toBe(label2);
798
+ });
799
+ it("should test click on input", async () => {
800
+ const page = await newSpecPage({
801
+ components: [Select, Menu, InputComponentContainer],
802
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
803
+ });
804
+ page.root.options = menuOptions;
805
+ await page.waitForChanges();
806
+ const input = page.root.shadowRoot.querySelector("input");
807
+ input.click();
808
+ await page.waitForChanges();
809
+ expect(page.rootInstance.open).toBe(true);
810
+ });
811
+ it("should test click on input with external filtering", async () => {
812
+ const page = await newSpecPage({
813
+ components: [Select, Menu, InputComponentContainer],
814
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true"></ic-select>`,
815
+ });
816
+ page.root.options = menuOptions;
817
+ await page.waitForChanges();
818
+ const input = page.root.shadowRoot.querySelector("input");
819
+ input.click();
820
+ await page.waitForChanges();
821
+ expect(page.rootInstance.open).toBe(true);
822
+ });
823
+ it("should test blur on searchable input", async () => {
824
+ const page = await newSpecPage({
825
+ components: [Select, Menu, InputComponentContainer],
826
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
827
+ });
828
+ page.root.options = menuOptions;
829
+ await page.waitForChanges();
830
+ const eventSpy = jest.fn();
831
+ page.win.addEventListener("icBlur", eventSpy);
832
+ const input = page.root.shadowRoot.querySelector("input");
833
+ input.blur();
834
+ await page.waitForChanges();
835
+ expect(eventSpy).toHaveBeenCalled();
836
+ });
837
+ it("should test blur on searchable input where target is an element of the menu but not a menu option", async () => {
838
+ const page = await newSpecPage({
839
+ components: [Select, Menu, InputComponentContainer],
840
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
841
+ });
842
+ page.root.options = menuOptions;
843
+ await page.waitForChanges();
844
+ const target = page.root.shadowRoot.querySelector("ul.menu");
845
+ const event = new FocusEvent("blur", {
846
+ bubbles: true,
847
+ cancelable: true,
848
+ relatedTarget: target,
849
+ });
850
+ const eventSpy = jest.fn();
851
+ page.win.addEventListener("icBlur", eventSpy);
852
+ await page.rootInstance.onBlur(event);
853
+ await page.waitForChanges();
854
+ expect(eventSpy).not.toHaveBeenCalled();
855
+ });
856
+ it("should test searchable input", async () => {
857
+ const page = await newSpecPage({
858
+ components: [Select, Menu, InputComponentContainer],
859
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
860
+ });
861
+ page.root.options = menuOptions;
862
+ await page.waitForChanges();
863
+ const event = new Event("input", {
864
+ bubbles: true,
865
+ cancelable: true,
866
+ });
867
+ const input = page.root.shadowRoot.querySelector("input");
868
+ page.rootInstance.searchableSelectInputValue = testValue;
869
+ input.dispatchEvent(event);
870
+ await page.waitForChanges();
871
+ //delay to wait for aria live update
872
+ await waitForTimeout(900);
873
+ expect(page.rootInstance.open).toBe(true);
874
+ page.rootInstance.searchableSelectInputValue = "";
875
+ await page.waitForChanges();
876
+ input.dispatchEvent(event);
877
+ await page.waitForChanges();
878
+ //delay to wait for aria live update
879
+ await waitForTimeout(900);
880
+ expect(page.rootInstance.open).toBe(true);
881
+ page.root.options = [];
882
+ await page.waitForChanges();
883
+ page.rootInstance.searchableSelectInputValue = "";
884
+ input.dispatchEvent(event);
885
+ await page.waitForChanges();
886
+ //delay to wait for aria live update
887
+ await waitForTimeout(900);
888
+ expect(page.rootInstance.open).toBe(true);
889
+ });
890
+ it("should test searchable input filtering", async () => {
891
+ const page = await newSpecPage({
892
+ components: [Select, Menu, InputComponentContainer],
893
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
894
+ });
895
+ page.root.options = menuOptionsWithDescriptions;
896
+ page.rootInstance.searchableSelectInputValue = "c";
897
+ await page.waitForChanges();
898
+ const input = page.root.shadowRoot.querySelector("input");
899
+ const event = new Event("input", {
900
+ bubbles: true,
901
+ cancelable: true,
902
+ });
903
+ input.dispatchEvent(event);
904
+ await page.waitForChanges();
905
+ //delay to wait for aria live update
906
+ await waitForTimeout(900);
907
+ expect(page.rootInstance.filteredOptions.length).toBe(2);
908
+ });
909
+ it("should test searchable input - with search match position set to start", async () => {
910
+ const page = await newSpecPage({
911
+ components: [Select, Menu, InputComponentContainer],
912
+ html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start"></ic-select>`,
913
+ });
914
+ page.root.options = menuOptionsWithDescriptions;
915
+ page.rootInstance.searchableSelectInputValue = "c";
916
+ await page.waitForChanges();
917
+ const input = page.root.shadowRoot.querySelector("input");
918
+ const event = new Event("input", {
919
+ bubbles: true,
920
+ cancelable: true,
921
+ });
922
+ input.dispatchEvent(event);
923
+ await page.waitForChanges();
924
+ //delay to wait for aria live update
925
+ await waitForTimeout(900);
926
+ expect(page.rootInstance.filteredOptions.length).toBe(1);
927
+ });
928
+ it("should test searchable input - with descriptions and descriptions included in search", async () => {
929
+ const page = await newSpecPage({
930
+ components: [Select, Menu, InputComponentContainer],
931
+ html: `<ic-select label="IC Select Test" searchable="true" include-descriptions-in-search="true"></ic-select>`,
932
+ });
933
+ page.root.options = menuOptionsWithDescriptions;
934
+ page.rootInstance.searchableSelectInputValue = "Test description 2";
935
+ await page.waitForChanges();
936
+ const input = page.root.shadowRoot.querySelector("input");
937
+ const event = new Event("input", {
938
+ bubbles: true,
939
+ cancelable: true,
940
+ });
941
+ input.dispatchEvent(event);
942
+ await page.waitForChanges();
943
+ //delay to wait for aria live update
944
+ await waitForTimeout(900);
945
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
946
+ });
947
+ it("should test searchable input - with search match position set to start and descriptions included in search", async () => {
948
+ const page = await newSpecPage({
949
+ components: [Select, Menu, InputComponentContainer],
950
+ html: `<ic-select label="IC Select Test" searchable="true" search-match-position="start" include-descriptions-in-search="true"></ic-select>`,
951
+ });
952
+ page.root.options = menuOptionsWithDescriptions;
953
+ page.rootInstance.searchableSelectInputValue = "e";
954
+ await page.waitForChanges();
955
+ const input = page.root.shadowRoot.querySelector("input");
956
+ const event = new Event("input", {
957
+ bubbles: true,
958
+ cancelable: true,
959
+ });
960
+ input.dispatchEvent(event);
961
+ await page.waitForChanges();
962
+ //delay to wait for aria live update
963
+ await waitForTimeout(900);
964
+ expect(page.rootInstance.filteredOptions.length).toBe(1);
965
+ });
966
+ it("should test searchable input - with groups", async () => {
967
+ const page = await newSpecPage({
968
+ components: [Select, Menu, InputComponentContainer],
969
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
970
+ });
971
+ page.root.options = menuOptionsWithGroups;
972
+ page.rootInstance.searchableSelectInputValue = "Latte";
973
+ await page.waitForChanges();
974
+ const input = page.root.shadowRoot.querySelector("input");
975
+ const event = new Event("input", {
976
+ bubbles: true,
977
+ cancelable: true,
978
+ });
979
+ input.dispatchEvent(event);
980
+ await page.waitForChanges();
981
+ //delay to wait for aria live update
982
+ await waitForTimeout(900);
983
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
984
+ });
985
+ it("should test searchable input - with groups and group titles included in search", async () => {
986
+ const page = await newSpecPage({
987
+ components: [Select, Menu, InputComponentContainer],
988
+ html: `<ic-select label="IC Select Test" searchable="true" include-group-titles-in-search="true"></ic-select>`,
989
+ });
990
+ page.root.options = menuOptionsWithGroups;
991
+ page.rootInstance.searchableSelectInputValue = "Fancy";
992
+ await page.waitForChanges();
993
+ const input = page.root.shadowRoot.querySelector("input");
994
+ const event = new Event("input", {
995
+ bubbles: true,
996
+ cancelable: true,
997
+ });
998
+ input.dispatchEvent(event);
999
+ await page.waitForChanges();
1000
+ //delay to wait for aria live update
1001
+ await waitForTimeout(900);
1002
+ expect(page.rootInstance.filteredOptions).not.toBeNull;
1003
+ });
1004
+ it("should test selectchange on no result found entry", async () => {
1005
+ const page = await newSpecPage({
1006
+ components: [Select, Menu, InputComponentContainer],
1007
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1008
+ });
1009
+ page.root.options = menuOptions;
1010
+ page.rootInstance.open = true;
1011
+ page.rootInstance.searchableSelectInputValue = testValue;
1012
+ await page.waitForChanges();
1013
+ page.rootInstance.handleCustomSelectChange({
1014
+ detail: {
1015
+ label: noResults,
1016
+ },
1017
+ });
1018
+ await page.waitForChanges();
1019
+ expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1020
+ });
1021
+ it("should test dropdown icon mousedown handler", 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 = menuOptions;
1027
+ page.rootInstance.handleExpandIconMouseDown({
1028
+ detail: "some value",
1029
+ preventDefault: () => null,
1030
+ });
1031
+ await page.waitForChanges();
1032
+ expect(page.rootInstance.open).toBe(true);
1033
+ });
1034
+ it("should test form reset event", async () => {
1035
+ const page = await newSpecPage({
1036
+ components: [Select],
1037
+ html: `<form>
1038
+ <ic-select label="IC Select Test" searchable="true"></ic-select>
1039
+ <button id="resetButton" type="reset">Reset</button>
1040
+ </form>`,
1041
+ });
1042
+ expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1043
+ page.rootInstance.searchableSelectInputValue = testValue;
1044
+ await page.waitForChanges();
1045
+ expect(page.rootInstance.searchableSelectInputValue).toBe(testValue);
1046
+ await page.rootInstance.handleFormReset();
1047
+ await page.waitForChanges();
1048
+ expect(page.rootInstance.searchableSelectInputValue).toBe(null);
1049
+ });
1050
+ it("should test debounce change", async () => {
1051
+ const page = await newSpecPage({
1052
+ components: [Select, Menu, InputComponentContainer],
1053
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1054
+ });
1055
+ await page.waitForChanges();
1056
+ expect(page.rootInstance.currDebounce).toBe(300);
1057
+ page.root.debounce = 500;
1058
+ await page.waitForChanges();
1059
+ expect(page.rootInstance.currDebounce).toBe(500);
1060
+ });
1061
+ it("should test no results state when no options passed and filtering disabled", async () => {
1062
+ const page = await newSpecPage({
1063
+ components: [Select, Menu, InputComponentContainer],
1064
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1065
+ });
1066
+ page.root.options = menuOptions;
1067
+ page.rootInstance.searchableSelectInputValue = "test";
1068
+ await page.waitForChanges();
1069
+ const input = page.root.shadowRoot.querySelector("input");
1070
+ const event = new Event("input", {
1071
+ bubbles: true,
1072
+ cancelable: true,
1073
+ });
1074
+ input.dispatchEvent(event);
1075
+ await page.waitForChanges();
1076
+ page.root.options = [];
1077
+ await page.waitForChanges();
1078
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1079
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1080
+ expect(page.rootInstance.open).toBe(true);
1081
+ input.click();
1082
+ await page.waitForChanges();
1083
+ expect(page.rootInstance.open).toBe(false);
1084
+ page.root.options = menuOptions;
1085
+ await page.waitForChanges();
1086
+ });
1087
+ it("should test menus opens and closes when enter pressed - external filtering", async () => {
1088
+ const page = await newSpecPage({
1089
+ components: [Select, Menu, InputComponentContainer],
1090
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300"></ic-select>`,
1091
+ });
1092
+ page.root.options = [];
1093
+ page.rootInstance.searchableSelectInputValue = "test";
1094
+ await page.waitForChanges();
1095
+ const input = page.root.shadowRoot.querySelector("input");
1096
+ const event = new Event("input", {
1097
+ bubbles: true,
1098
+ cancelable: true,
1099
+ });
1100
+ input.dispatchEvent(event);
1101
+ await page.waitForChanges();
1102
+ //test menu displays when Enter pressed
1103
+ input.focus();
1104
+ await page.waitForChanges();
1105
+ await page.rootInstance.handleKeyDown({
1106
+ key: "Enter",
1107
+ preventDefault: () => null,
1108
+ });
1109
+ await page.waitForChanges();
1110
+ expect(page.rootInstance.open).toBe(false);
1111
+ await page.rootInstance.handleKeyDown({
1112
+ key: "Enter",
1113
+ target: { id: "test-event-id" },
1114
+ preventDefault: () => null,
1115
+ });
1116
+ await page.waitForChanges();
1117
+ expect(page.rootInstance.open).toBe(false);
1118
+ });
1119
+ it("should test adding and removing form reset listener on connect and disconnect", async () => {
1120
+ const page = await newSpecPage({
1121
+ components: [Select],
1122
+ html: `<form>
1123
+ <ic-select label="IC Select Test" searchable="true"></ic-select>
1124
+ <button id="resetButton" type="reset">Reset</button>
1125
+ </form>`,
1126
+ });
1127
+ const addSpy = jest.spyOn(page.root, "addEventListener");
1128
+ const removeSpy = jest.spyOn(page.root, "removeEventListener");
1129
+ expect(addSpy).toHaveBeenCalled;
1130
+ page.setContent("");
1131
+ await page.waitForChanges();
1132
+ expect(removeSpy).toHaveBeenCalled;
1133
+ });
1134
+ it("should set the default value of searchable as custom value when not matching options", async () => {
1135
+ const page = await newSpecPage({
1136
+ components: [Select, Menu, InputComponentContainer],
1137
+ html: `<ic-select label='Select test' searchable='true' value='Test value 01'></ic-select>`,
1138
+ });
1139
+ page.root.options = [];
1140
+ await page.waitForChanges();
1141
+ expect(page.rootInstance.searchableSelectInputValue).toBe("Test value 01");
1142
+ const input = page.root.shadowRoot.querySelector("input");
1143
+ expect(input.value).toBe("Test value 01");
1144
+ });
1145
+ it("should set the default value of searchable as option label if matching label/value exists", async () => {
1146
+ const page = await newSpecPage({
1147
+ components: [Select, Menu, InputComponentContainer],
1148
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: menuOptions, value: value1 })),
1149
+ });
1150
+ expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1151
+ const input = page.root.shadowRoot.querySelector("input");
1152
+ expect(input.value).toBe(label1);
1153
+ });
1154
+ it("should set the default value of searchable as option label when options initially set to [] then populated", async () => {
1155
+ const page = await newSpecPage({
1156
+ components: [Select, Menu, InputComponentContainer],
1157
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1158
+ });
1159
+ page.root.options = menuOptions;
1160
+ await page.waitForChanges();
1161
+ expect(page.rootInstance.searchableSelectInputValue).toBe(label1);
1162
+ const input = page.root.shadowRoot.querySelector("input");
1163
+ expect(input.value).toBe(label1);
1164
+ });
1165
+ it("should set the default value to custom value when options initially set to [] then set to [] again", async () => {
1166
+ const page = await newSpecPage({
1167
+ components: [Select, Menu, InputComponentContainer],
1168
+ template: () => (h("ic-select", { label: "select test", searchable: true, options: [], value: value1 })),
1169
+ });
1170
+ page.root.options = [];
1171
+ await page.waitForChanges();
1172
+ expect(page.rootInstance.searchableSelectInputValue).toBe(value1);
1173
+ const input = page.root.shadowRoot.querySelector("input");
1174
+ expect(input.value).toBe(value1);
1175
+ });
1176
+ it("should test loading state and timeout for searchable select with external filtering", async () => {
1177
+ const page = await newSpecPage({
1178
+ components: [Select, Menu, InputComponentContainer],
1179
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1180
+ });
1181
+ page.rootInstance.searchableSelectInputValue = "test";
1182
+ await page.waitForChanges();
1183
+ const input = page.root.shadowRoot.querySelector("input");
1184
+ const event = new Event("input", {
1185
+ bubbles: true,
1186
+ cancelable: true,
1187
+ });
1188
+ input.dispatchEvent(event);
1189
+ page.rootInstance.loading = true;
1190
+ await page.waitForChanges();
1191
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1192
+ await waitForTimeout(1000);
1193
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingErrorLabel);
1194
+ await page.waitForChanges();
1195
+ const retryButton = page.root.shadowRoot
1196
+ .querySelector("ic-menu")
1197
+ .querySelector(retryButtonId);
1198
+ retryButton.click();
1199
+ page.rootInstance.loading = true;
1200
+ await page.waitForChanges();
1201
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(loadingLabel);
1202
+ page.root.options = [];
1203
+ await page.waitForChanges();
1204
+ expect(page.rootInstance.filteredOptions[0].label).toEqual(noResults);
1205
+ });
1206
+ it("should focus the input when escape is pressed whilst the menu is focused (searchable)", async () => {
1207
+ const spy = jest.spyOn(HTMLInputElement.prototype, "focus");
1208
+ const page = await newSpecPage({
1209
+ components: [Select, Menu, InputComponentContainer],
1210
+ html: `<ic-select label="IC Select Test" searchable="true"></ic-select>`,
1211
+ });
1212
+ page.root.options = menuOptions;
1213
+ page.rootInstance.open = true;
1214
+ await page.waitForChanges();
1215
+ const list = page.root.shadowRoot.querySelector(menuUl);
1216
+ list.dispatchEvent(new window.window.KeyboardEvent("keydown", {
1217
+ key: "Escape",
1218
+ bubbles: true,
1219
+ cancelable: true,
1220
+ }));
1221
+ await page.waitForChanges();
1222
+ expect(page.rootInstance.open).toBeFalsy();
1223
+ expect(spy).toHaveBeenCalled();
1224
+ });
1225
+ it("should test keydown on loading retry button", async () => {
1226
+ const page = await newSpecPage({
1227
+ components: [Select, Menu, InputComponentContainer],
1228
+ html: `<ic-select label="IC Select Test" searchable="true" disable-filter="true" debounce="300" timeout="1000"></ic-select>`,
1229
+ });
1230
+ const input = page.root.shadowRoot.querySelector("input");
1231
+ const spy = jest.spyOn(input, "focus");
1232
+ page.rootInstance.searchableSelectInputValue = "test";
1233
+ await page.waitForChanges();
1234
+ let event = new Event("input", {
1235
+ bubbles: true,
1236
+ cancelable: true,
1237
+ });
1238
+ input.dispatchEvent(event);
1239
+ page.rootInstance.loading = true;
1240
+ await page.waitForChanges();
1241
+ await waitForTimeout(1000);
1242
+ await page.waitForChanges();
1243
+ event = new KeyboardEvent("keyDown", {
1244
+ key: "Enter",
1245
+ });
1246
+ const retryButton = page.root.shadowRoot
1247
+ .querySelector("ic-menu")
1248
+ .querySelector(retryButtonId);
1249
+ retryButton.dispatchEvent(event);
1250
+ expect(spy).toHaveBeenCalled;
1251
+ });
1252
+ it("should stop the timeout if clear button is clicked before timeout", async () => {
1253
+ const page = await newSpecPage({
1254
+ components: [Select, Menu, InputComponentContainer],
1255
+ html: `<ic-select label="IC Select Test" searchable="true" timeout="1000"></ic-select>`,
1256
+ });
1257
+ page.rootInstance.searchableSelectInputValue = "test";
1258
+ await page.waitForChanges();
1259
+ const event = new Event("input", {
1260
+ bubbles: true,
1261
+ cancelable: true,
1262
+ });
1263
+ const input = page.root.shadowRoot.querySelector("input");
1264
+ input.dispatchEvent(event);
1265
+ page.rootInstance.loading = true;
1266
+ await page.waitForChanges();
1267
+ expect(page.rootInstance.filteredOptions).toHaveLength(1);
1268
+ const clearButton = page.root.shadowRoot.querySelector(clearButtonId);
1269
+ clearButton.click();
1270
+ await page.waitForChanges();
1271
+ expect(page.rootInstance.filteredOptions).toHaveLength(0);
1272
+ await waitForTimeout(1000);
1273
+ expect(page.rootInstance.filteredOptions).toHaveLength(0);
1274
+ });
1275
+ });
1276
+ //# sourceMappingURL=ic-select.spec.js.map