@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 @@
1
+ {"version":3,"file":"ic-stepper.spec.js","sourceRoot":"","sources":["../../../src/components/ic-stepper/ic-stepper.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { resizeTo } from \"../../testspec.setup\";\nimport { Step } from \"../ic-step/ic-step\";\nimport { Stepper } from \"./ic-stepper\";\n\ndescribe(\"default variant of ic-stepper component\", () => {\n it(\"should render a full-width stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"aligned-full-width\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a left-aligned stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `<ic-stepper aligned=\"left\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n expect(page.rootInstance.aligned).toMatch(\"left\");\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper with hidden step info\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n\n expect(stepTitleArea.classList.contains(\"visually-hidden\")).toBeTruthy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n jest.spyOn(console, \"error\").mockImplementation(jest.fn());\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n expect(step[\"stepTitle\"]).toBeUndefined();\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n\n const stepTitleArea = step.shadowRoot.querySelector(\n \".step > .step-title-area\"\n );\n expect(stepTitleArea).toBeNull();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n });\n\n it(\"should render a stepper with a custom connector width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper aligned=\"left\" connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeTruthy();\n });\n\n it(\"should ignore the connectorWidth prop if the stepper is set to be aligned full-width\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper connector-width=\"150\">\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.root.classList.contains(\"aligned-left\")).toBeFalsy();\n });\n\n it(\"should add 'disabled step' to the aria labels of all disabled steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-type=\"disabled\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const disabledSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n disabledSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should add the className 'last-step' to the last step in the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step last-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const lastStep = await page.root.querySelector(\"ic-step[last-step='']\");\n\n expect(lastStep.classList.contains(\"last-step\")).toBeTruthy();\n });\n});\n\ndescribe(\"resizeObserver for ic-stepper\", () => {\n it(\"shouldn't call the resizeObserver if the resizeObserver is null\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.rootInstance.runResizeObserver();\n\n page.setContent(\"\");\n });\n\n it(\"should call the functions in the resizeObserver\", async () => {\n const page = await newSpecPage({\n components: [Stepper],\n html: `\n <ic-stepper>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step>\n </ic-stepper>\n `,\n });\n\n await page.waitForChanges();\n\n await page.rootInstance.runResizeObserver();\n\n await page.rootInstance.getChildren();\n\n await page.rootInstance.checkStepTitles();\n\n await page.rootInstance.overrideVariant();\n\n await page.rootInstance.setStepperWidth();\n\n await page.rootInstance.initialiseStepStates();\n });\n});\n\ndescribe(\"compact variant of ic-stepper component\", () => {\n it(\"should render a compact step with no step status\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n expect(page.rootInstance[\"variantOverride\"]).toBeFalsy();\n\n expect(page.rootInstance.hideStepInfo).toBeFalsy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should render a stepper with hidden step information\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper hide-step-info>\n <ic-step step-title=\"Create\" step-type=\"completed\"></ic-step>\n <ic-step step-title=\"Read\" step-type=\"current\"></ic-step>\n <ic-step step-title=\"Update\"></ic-step>\n <ic-step step-title=\"Delete\"></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance.hideStepInfo).toBeTruthy();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n const stepTitle = step.shadowRoot.querySelector(\n \".step > .step-title-area > .step-title\"\n );\n\n expect(stepTitle).not.toBeNull();\n expect(stepTitle.classList.contains(\"visually-hidden\")).toBeFalsy();\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a stepper without step titles\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-type=\"completed\"></ic-step>\n <ic-step step-type=\"current\"></ic-step>\n <ic-step step-type=\"disabled\"></ic-step>\n <ic-step step-type=\"active\" ></ic-step></ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.root).toMatchSnapshot();\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n\n expect(page.rootInstance[\"stepsWithStepTitles\"].length).toBeLessThan(\n page.rootInstance[\"steps\"].length\n );\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(0);\n\n steps.forEach((step) => {\n const stepTitle = \"Step \" + step[\"stepNum\"];\n expect(step[\"stepTitle\"]).toMatch(stepTitle);\n expect(step[\"stepSubtitle\"]).toBeUndefined();\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance[\"noOfResizes\"]).toBe(1);\n });\n\n it(\"should only show the current step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentStep = page.root.querySelector('ic-step:not([current=\"\"])');\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n\n notCurrentStep.classList.add(\"show\");\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(notCurrentStep.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentStep.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"shouldn't add the 'show' and 'hide' classes to default steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step.classList.contains(\"show\")).toBeFalsy();\n expect(step.classList.contains(\"hide\")).toBeFalsy();\n });\n });\n\n it(\"should only add the 'show' and 'hide' classes to compact steps\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n step-type=\"completed\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const currentStep = page.root.querySelector('ic-step[current=\"\"]');\n\n expect(\n currentStep.shadowRoot\n .querySelector(\".step\")\n .classList.contains(\"current\")\n );\n\n expect(currentStep.classList.contains(\"show\")).toBeTruthy;\n\n expect(currentStep.classList.contains(\"hide\")).toBeFalsy;\n\n const notCurrentSteps = page.root.querySelector(\n 'ic-step:not([current=\"\"])'\n );\n\n expect(notCurrentSteps.classList.contains(\"show\")).toBeFalsy;\n\n expect(notCurrentSteps.classList.contains(\"hide\")).toBeTruthy;\n });\n\n it(\"should render status icons next to all steps with a disabled stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-type=\"disabled\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const notRequiredSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"disabled\"]'\n );\n\n notRequiredSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Not required\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > .step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"warning-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Non-required step/i);\n });\n });\n\n it(\"should render status icons next to all steps with a completed stepType\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const completeSteps = page.root.querySelectorAll(\n 'ic-step[step-type=\"completed\"]'\n );\n\n completeSteps.forEach((step) => {\n const textContent = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > ic-typography\"\n ).textContent;\n\n expect(textContent).toBe(\"Completed\");\n\n const statusIcon = step.shadowRoot.querySelector(\n \".step > .step-title-area > .info-line > .step-status > span.step-icon\"\n );\n\n expect(statusIcon).toEqualHtml(\n `<span class=\"check-icon step-icon\" aria-hidden=\"true\">svg</span>`\n );\n\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Completed step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'optional'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"optional\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const optionalSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"optional\"]'\n );\n\n optionalSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Optional step/i);\n });\n });\n\n it(\"should update the aria label of a step if its stepStatus is set to 'required'\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step variant=\"compact\" step-title=\"First\"></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Third\"\n step-status=\"required\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n variant=\"compact\"\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n const requiredSteps = page.root.querySelectorAll(\n 'ic-step[step-status=\"required\"]'\n );\n\n requiredSteps.forEach((step) => {\n expect(step.getAttribute(\"aria-label\")).toMatch(/. Required step/i);\n });\n });\n\n it(\"should only show the title of the next step if it isn't the last step\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper variant=\"compact\" id=\"custom-stepper\">\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n const steps = page.root.querySelectorAll(\"ic-step\");\n\n steps.forEach((step) => {\n expect(step[\"variant\"]).toMatch(\"compact\");\n });\n\n for (let i = 0; i < steps.length; i++) {\n if (steps[i] !== steps[steps.length - 1]) {\n expect(steps[i][\"nextStepTitle\"]).toBe(steps[i + 1][\"stepTitle\"]);\n } else {\n expect(steps[i][\"nextStepTitle\"]).toBeUndefined();\n }\n }\n });\n});\n\ndescribe(\"switch between the compact and default stepper depending on whether the stepper has a scroll\", () => {\n it(\"should change from the default variant to the compact variant if there's a scroll on the stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper >\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n page.rootInstance.el.clientWidth = 50;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n\n it(\"should change from the compact variant to the stepper variant if the stepper is greater than the min width for the default stepper\", async () => {\n const page = await newSpecPage({\n components: [Stepper, Step],\n html: `<ic-stepper>\n <ic-step step-title=\"First\"></ic-step>\n <ic-step\n step-title=\"Second With a Very Long Title\"\n step-subtitle=\"Optional subtitle that is long and should wrap\"\n current\n step-type=\"current\"\n ></ic-step>\n <ic-step\n step-title=\"Third\"\n step-type=\"disabled\"\n ></ic-step>\n <ic-step\n step-title=\"Fourth title that is long and should wrap\"\n step-subtitle=\"Optional Subtitle\"\n step-type=\"completed\"\n ></ic-step>\n <ic-step\n step-title=\"Fifth and final step\"\n step-subtitle=\"Optional Subtitle\"\n step-status=\"optional\"\n ></ic-step>\n </ic-stepper>`,\n });\n\n page.rootInstance.el.clientWidth = 50;\n\n resizeTo(window, 375, 812);\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"compact\");\n\n resizeTo(window, 1920, 1080);\n\n page.rootInstance.el.clientWidth = 1000;\n\n page.rootInstance.resizeObserverCallback();\n\n await page.waitForChanges();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n\n expect(page.rootInstance[\"variantOverride\"]).toBeTruthy();\n });\n});\n"]}
@@ -578,7 +578,7 @@ input {
578
578
 
579
579
  .ic-switch-input:disabled + .ic-switch-toggle {
580
580
  background-color: var(--ic-architectural-80);
581
- border: var(--ic-space-1px) dashed var(--ic-architectural-300);
581
+ border: var(--ic-border-disabled);
582
582
  }
583
583
 
584
584
  .ic-switch-input:disabled ~ .ic-switch-checked-status {
@@ -1,5 +1,5 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { getInputDescribedByText, onComponentRequiredPropUndefined, renderHiddenInput, addFormResetListener, removeFormResetListener, } from "../../utils/helpers";
2
+ import { getInputDescribedByText, onComponentRequiredPropUndefined, renderHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from "../../utils/helpers";
3
3
  let inputIds = 0;
4
4
  /**
5
5
  * @slot right-adornment - Content is placed to the right of switch before state label.
@@ -46,6 +46,7 @@ export class Switch {
46
46
  componentWillLoad() {
47
47
  this.checkedState = this.checked;
48
48
  addFormResetListener(this.el, this.handleFormReset);
49
+ removeDisabledFalse(this.disabled, this.el);
49
50
  }
50
51
  componentDidLoad() {
51
52
  onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Switch");
@@ -1 +1 @@
1
- {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EAEL,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAG7B,IAAI,QAAQ,GAAG,CAAC,CAAC;AAEjB;;GAEG;AAQH,MAAM,OAAO,MAAM;;IACT,YAAO,GAAG,mBAAmB,QAAQ,EAAE,EAAE,CAAC;IAiE1C,iBAAY,GAAG,GAAG,EAAE;MAC1B,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;MACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjB,OAAO,EAAE,IAAI,CAAC,YAAY;QAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;OAClB,CAAC,CAAC;IACL,CAAC,CAAC;IAEM,YAAO,GAAG,GAAG,EAAE;MACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC;IAEM,WAAM,GAAG,GAAG,EAAE;MACpB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAS,EAAE;MACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAC5C,CAAC,CAAC;;qBAvE4B,KAAK;sBAIL,EAAE;mBAIJ,KAAK;iBAIP,KAAK;oBAIF,KAAK;gBAIV,IAAI,CAAC,OAAO;qBAIN,KAAK;iBASH,IAAI;wBAiBH,KAAK;4BACV,IAAI,CAAC,OAAO;;EAsBxC;;KAEG;EAEH,KAAK,CAAC,QAAQ;IACZ,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;MAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;KACnD;EACH,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;IACjC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;EACtD,CAAC;EAED,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,QAAQ,CACT,CAAC;EACJ,CAAC;EAED,oBAAoB;IAClB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;EACzD,CAAC;EAED,MAAM;IACJ,MAAM,EACJ,KAAK,EACL,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,OAAO,GACR,GAAG,IAAI,CAAC;IAET,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAE5E,MAAM,WAAW,GAAG,uBAAuB,CACzC,OAAO,EACP,UAAU,KAAK,EAAE,EACjB,KAAK,CACN,CAAC;IAEF,OAAO,CACL,EAAC,IAAI;MACH,aACE,KAAK,EAAE;UACL,CAAC,qBAAqB,CAAC,EAAE,IAAI;UAC7B,CAAC,oBAAoB,CAAC,EAAE,QAAQ;UAChC,CAAC,iBAAiB,CAAC,EAAE,KAAK;SAC3B,EACD,OAAO,EAAE,OAAO;QAEf,CAAC,SAAS,IAAI,CACb,sBACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACzB,CAAC,uBAAuB,CAAC,EAAE,KAAK;WACjC,GACe,CACnB;QACA,CAAC,SAAS,IAAI,YAAM,KAAK,EAAC,sBAAsB,GAAQ;QACzD,aACE,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,QAAQ,gBACN,KAAK,kBACH,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,sBAC3B,WAAW,EAC7B,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,iBAAiB,EACvB,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,QAAQ,EACb,EAAE,EAAE,OAAO,EACX,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B;QACF,YAAM,KAAK,EAAC,kBAAkB;UAC5B,WACE,KAAK,EAAC,gBAAgB,iBACV,MAAM,EAClB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B;YAElC,YACE,KAAK,EAAC,qBAAqB,EAC3B,EAAE,EAAC,GAAG,EACN,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EACrB,EAAE,EAAC,GAAG,EACN,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GACrB,CACE;UACN,WACE,KAAK,EAAC,gBAAgB,iBACV,MAAM,EAClB,SAAS,EAAC,OAAO,EACjB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B;YAElC,cACE,KAAK,EAAC,uBAAuB,EAC7B,IAAI,EAAC,MAAM,EACX,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAC5B,CACE,CACD;QACP,YAAM,IAAI,EAAC,iBAAiB,GAAQ;QACnC,SAAS,IAAI,CACZ,oCACc,MAAM,EAClB,OAAO,EAAC,OAAO,EACf,KAAK,EAAC,0BAA0B,IAE/B,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CACd,CACjB,CACK,CACH,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n /**\n * If `true`, the small styling will be applied to the switch.\n */\n @Prop() small?: boolean = false;\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n render() {\n const {\n label,\n checkedState,\n small,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host>\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: small,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: small,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={small ? \"2\" : \"1\"}\n x2=\"9\"\n y2={small ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={small ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n /**\n * If `true`, the small styling will be applied to the switch.\n */\n @Prop() small?: boolean = false;\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n render() {\n const {\n label,\n checkedState,\n small,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host>\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: small,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: small,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={small ? \"2\" : \"1\"}\n x2=\"9\"\n y2={small ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={small ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,104 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Switch } from "./ic-switch";
3
+ describe("ic-switch component", () => {
4
+ it("should render an aria-label", async () => {
5
+ const page = await newSpecPage({
6
+ components: [Switch],
7
+ html: `<ic-switch label="Custom title"></ic-switch>`,
8
+ });
9
+ expect(page.root).toMatchSnapshot("renders-with-aria");
10
+ });
11
+ it("should render disabled", async () => {
12
+ const page = await newSpecPage({
13
+ components: [Switch],
14
+ html: `<ic-switch label="Custom title" disabled=true></ic-switch>`,
15
+ });
16
+ expect(page.root).toMatchSnapshot("renders-disabled");
17
+ });
18
+ it("should render checked", async () => {
19
+ const page = await newSpecPage({
20
+ components: [Switch],
21
+ html: `<ic-switch label="Custom title" checked=true></ic-switch>`,
22
+ });
23
+ expect(page.root).toMatchSnapshot("renders-checked");
24
+ });
25
+ it("should render small", async () => {
26
+ const page = await newSpecPage({
27
+ components: [Switch],
28
+ html: `<ic-switch label="Custom title" checked=true small></ic-switch>`,
29
+ });
30
+ expect(page.root).toMatchSnapshot("renders-small");
31
+ });
32
+ it("should render with state text", async () => {
33
+ const page = await newSpecPage({
34
+ components: [Switch],
35
+ html: `<ic-switch label="Custom title" checked=true show-state></ic-switch>`,
36
+ });
37
+ expect(page.root).toMatchSnapshot("renders-with-state-text");
38
+ });
39
+ it("should render with state text and unchecked", async () => {
40
+ const page = await newSpecPage({
41
+ components: [Switch],
42
+ html: `<ic-switch label="Custom title" checked="false" show-state="true"></ic-switch>`,
43
+ });
44
+ expect(page.root).toMatchSnapshot("renders-with-state-text-unchecked");
45
+ });
46
+ it("should focus", async () => {
47
+ const page = await newSpecPage({
48
+ components: [Switch],
49
+ html: `<ic-switch label="Custom title" checked=true></ic-switch>`,
50
+ });
51
+ const callbackFn = jest.fn();
52
+ page.doc.addEventListener("icFocus", callbackFn);
53
+ const input = page.root.shadowRoot.querySelector("input");
54
+ input.focus();
55
+ await page.waitForChanges();
56
+ expect(callbackFn).toHaveBeenCalled();
57
+ });
58
+ it("should blur", async () => {
59
+ const page = await newSpecPage({
60
+ components: [Switch],
61
+ html: `<ic-switch label="Custom title" checked=true></ic-switch>`,
62
+ });
63
+ const callbackFn = jest.fn();
64
+ page.doc.addEventListener("icBlur", callbackFn);
65
+ const input = page.root.shadowRoot.querySelector("input");
66
+ input.blur();
67
+ await page.waitForChanges();
68
+ expect(callbackFn).toHaveBeenCalled();
69
+ });
70
+ it("should toggle checkedState", async () => {
71
+ const page = await newSpecPage({
72
+ components: [Switch],
73
+ html: `<ic-switch label="Custom title" checked=true></ic-switch>`,
74
+ });
75
+ expect(page.rootInstance.checkedState).toBe(true);
76
+ page.rootInstance.handleChange();
77
+ await page.waitForChanges();
78
+ expect(page.rootInstance.checkedState).toBe(false);
79
+ });
80
+ it("should call 'setFocus' when switch is focused", async () => {
81
+ const page = await newSpecPage({
82
+ components: [Switch],
83
+ html: `<ic-switch label="Custom title"></ic-switch>`,
84
+ });
85
+ //Can't expect anything in this test - this is to increase code coverage only
86
+ await page.rootInstance.setFocus().toHaveBeenCalled;
87
+ });
88
+ it("should reset to initial state on form reset", async () => {
89
+ const page = await newSpecPage({
90
+ components: [Switch],
91
+ html: `<form><ic-switch label="Custom title" checked=true></ic-switch><button id="resetButton" type="reset">Reset</button></form>`,
92
+ });
93
+ expect(page.rootInstance.checkedState).toBe(true);
94
+ page.rootInstance.handleChange();
95
+ await page.waitForChanges();
96
+ expect(page.rootInstance.checkedState).toBe(false);
97
+ await page.rootInstance.handleFormReset();
98
+ await page.waitForChanges();
99
+ expect(page.rootInstance.checkedState).toBe(true);
100
+ //test disconnected callback
101
+ page.setContent("");
102
+ });
103
+ });
104
+ //# sourceMappingURL=ic-switch.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-switch.spec.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Switch } from \"./ic-switch\";\n\ndescribe(\"ic-switch component\", () => {\n it(\"should render an aria-label\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-aria\");\n });\n\n it(\"should render disabled\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" disabled=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-disabled\");\n });\n\n it(\"should render checked\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-checked\");\n });\n\n it(\"should render small\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true small></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-small\");\n });\n\n it(\"should render with state text\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true show-state></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-state-text\");\n });\n\n it(\"should render with state text and unchecked\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=\"false\" show-state=\"true\"></ic-switch>`,\n });\n\n expect(page.root).toMatchSnapshot(\"renders-with-state-text-unchecked\");\n });\n\n it(\"should focus\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icFocus\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.focus();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should blur\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"icBlur\", callbackFn);\n const input = page.root.shadowRoot.querySelector(\"input\");\n input.blur();\n await page.waitForChanges();\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should toggle checkedState\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\" checked=true></ic-switch>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n });\n\n it(\"should call 'setFocus' when switch is focused\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<ic-switch label=\"Custom title\"></ic-switch>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should reset to initial state on form reset\", async () => {\n const page = await newSpecPage({\n components: [Switch],\n html: `<form><ic-switch label=\"Custom title\" checked=true></ic-switch><button id=\"resetButton\" type=\"reset\">Reset</button></form>`,\n });\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n page.rootInstance.handleChange();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(false);\n\n await page.rootInstance.handleFormReset();\n await page.waitForChanges();\n\n expect(page.rootInstance.checkedState).toBe(true);\n\n //test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
@@ -0,0 +1,32 @@
1
+ import { newE2EPage } from "@stencil/core/testing";
2
+ describe("ic-tab component", () => {
3
+ it("should call tabClick event when clicked", async () => {
4
+ const page = await newE2EPage();
5
+ await page.setContent(`<ic-tab tab-id="test-id" tab-position="1">IC Tab Test</ic-tab>`);
6
+ await page.waitForChanges();
7
+ const tab = await page.find("ic-tab");
8
+ const tabClick = await page.spyOnEvent("tabClick");
9
+ await tab.click();
10
+ await page.waitForChanges();
11
+ expect(tabClick).toHaveReceivedEventDetail({
12
+ tabId: "test-id",
13
+ contextId: "default",
14
+ position: 1,
15
+ });
16
+ });
17
+ it("should call tabFocus event when focussed", async () => {
18
+ const page = await newE2EPage();
19
+ await page.setContent(`<ic-tab tab-id="test-id" tab-position="1">IC Tab Test</ic-tab>`);
20
+ await page.waitForChanges();
21
+ const tab = await page.find("ic-tab");
22
+ const tabFocus = await page.spyOnEvent("tabFocus");
23
+ await tab.focus();
24
+ await page.waitForChanges();
25
+ expect(tabFocus).toHaveReceivedEventDetail({
26
+ tabId: "test-id",
27
+ contextId: "default",
28
+ position: 1,
29
+ });
30
+ });
31
+ });
32
+ //# sourceMappingURL=ic-tab.e2e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-tab.e2e.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;EAChC,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;IACvD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB,gEAAgE,CACjE,CAAC;IACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;MACzC,KAAK,EAAE,SAAS;MAChB,SAAS,EAAE,SAAS;MACpB,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;IACxD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CACnB,gEAAgE,CACjE,CAAC;IACF,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACnD,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAElB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,QAAQ,CAAC,CAAC,yBAAyB,CAAC;MACzC,KAAK,EAAE,SAAS;MAChB,SAAS,EAAE,SAAS;MACpB,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\ndescribe(\"ic-tab component\", () => {\n it(\"should call tabClick event when clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-tab tab-id=\"test-id\" tab-position=\"1\">IC Tab Test</ic-tab>`\n );\n await page.waitForChanges();\n\n const tab = await page.find(\"ic-tab\");\n const tabClick = await page.spyOnEvent(\"tabClick\");\n await tab.click();\n\n await page.waitForChanges();\n\n expect(tabClick).toHaveReceivedEventDetail({\n tabId: \"test-id\",\n contextId: \"default\",\n position: 1,\n });\n });\n\n it(\"should call tabFocus event when focussed\", async () => {\n const page = await newE2EPage();\n await page.setContent(\n `<ic-tab tab-id=\"test-id\" tab-position=\"1\">IC Tab Test</ic-tab>`\n );\n await page.waitForChanges();\n\n const tab = await page.find(\"ic-tab\");\n const tabFocus = await page.spyOnEvent(\"tabFocus\");\n await tab.focus();\n\n await page.waitForChanges();\n\n expect(tabFocus).toHaveReceivedEventDetail({\n tabId: \"test-id\",\n contextId: \"default\",\n position: 1,\n });\n });\n});\n"]}
@@ -1,5 +1,6 @@
1
1
  import { Host, h, } from "@stencil/core";
2
2
  import { IcThemeForegroundEnum, } from "../../utils/types";
3
+ import { removeDisabledFalse } from "../../utils/helpers";
3
4
  /**
4
5
  * @slot icon - Content will be rendered next to the tab label.
5
6
  */
@@ -53,6 +54,9 @@ export class Tab {
53
54
  this.host.focus();
54
55
  }
55
56
  }
57
+ componentWillLoad() {
58
+ removeDisabledFalse(this.disabled, this.host);
59
+ }
56
60
  componentDidUpdate() {
57
61
  this.isInitialRender = false;
58
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal If `true`, the tab will display with a selected indicator and tabIndex will be set. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition?: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\n private focusTabId: string;\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a seperate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.host) {\n this.host.focus();\n }\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n connectedCallback(): void {\n this.tabCreated.emit(this.host);\n }\n\n disconnectedCallback(): void {\n const tabContext = document.querySelector(\n `ic-tab-context[context-id=${this.contextId}]`\n ) as HTMLIcTabContextElement;\n if (tabContext) {\n tabContext.tabRemovedHandler(!!this.focusTabId);\n }\n }\n\n render() {\n const { disabled, selected, appearance } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"selected\"]: selected,\n [\"disabled\"]: disabled,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal If `true`, the tab will display with a selected indicator and tabIndex will be set. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition?: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\n private focusTabId: string;\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a seperate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.host) {\n this.host.focus();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.host);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n connectedCallback(): void {\n this.tabCreated.emit(this.host);\n }\n\n disconnectedCallback(): void {\n const tabContext = document.querySelector(\n `ic-tab-context[context-id=${this.contextId}]`\n ) as HTMLIcTabContextElement;\n if (tabContext) {\n tabContext.tabRemovedHandler(!!this.focusTabId);\n }\n }\n\n render() {\n const { disabled, selected, appearance } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"selected\"]: selected,\n [\"disabled\"]: disabled,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
@@ -0,0 +1,159 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { Button } from "../ic-button/ic-button";
3
+ import { Tab } from "./ic-tab";
4
+ import { Typography } from "../ic-typography/ic-typography";
5
+ describe("ic-tab component", () => {
6
+ it("should render with correct label", async () => {
7
+ const page = await newSpecPage({
8
+ components: [Button, Tab, Typography],
9
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
10
+ });
11
+ expect(page.root)
12
+ .toEqualHtml(`<ic-tab aria-disabled="false" aria-selected="false" context-id="default" role="tab" tabindex="-1" tab-position="1">
13
+ <mock:shadow-root>
14
+ <ic-typography class="ic-tab-label ic-typography-label">
15
+ <mock:shadow-root>
16
+ <slot></slot>
17
+ </mock:shadow-root>
18
+ <span>
19
+ <slot></slot>
20
+ </span>
21
+ </ic-typography>
22
+ </mock:shadow-root>
23
+ IC Tab Test
24
+ </ic-tab>`);
25
+ });
26
+ it("should set the correct attributes when selected", async () => {
27
+ const page = await newSpecPage({
28
+ components: [Button, Tab, Typography],
29
+ html: `<ic-tab selected tab-position=1>IC Tab Test</ic-tab>`,
30
+ supportsShadowDom: true,
31
+ });
32
+ expect(page.root)
33
+ .toEqualHtml(`<ic-tab aria-disabled="false" aria-selected="true" class="selected" context-id="default" role="tab" selected="" tabindex="0" tab-position="1">
34
+ <mock:shadow-root>
35
+ <ic-typography class="ic-tab-label ic-typography-label">
36
+ <mock:shadow-root>
37
+ <slot></slot>
38
+ </mock:shadow-root>
39
+ <span>
40
+ <slot></slot>
41
+ </span>
42
+ </ic-typography>
43
+ </mock:shadow-root>
44
+ IC Tab Test
45
+ </ic-tab>`);
46
+ });
47
+ it("should set the disabled attribute on the button", async () => {
48
+ const page = await newSpecPage({
49
+ components: [Button, Tab, Typography],
50
+ html: `<ic-tab disabled tab-position=1>IC Tab Test</ic-tab>`,
51
+ supportsShadowDom: true,
52
+ });
53
+ expect(page.root)
54
+ .toEqualHtml(`<ic-tab aria-disabled="true" aria-selected="false" class="disabled" context-id="default" disabled="" role="tab" tabindex="-1" tab-position="1">
55
+ <mock:shadow-root>
56
+ <ic-typography class="ic-tab-label ic-typography-label">
57
+ <mock:shadow-root>
58
+ <slot></slot>
59
+ </mock:shadow-root>
60
+ <span>
61
+ <slot></slot>
62
+ </span>
63
+ </ic-typography>
64
+ </mock:shadow-root>
65
+ IC Tab Test
66
+ </ic-tab>`);
67
+ });
68
+ it("should display an icon", async () => {
69
+ const page = await newSpecPage({
70
+ components: [Button, Tab, Typography],
71
+ html: `<ic-tab tab-position=1>IC Tab Test<svg slot="icon"></svg></ic-tab>`,
72
+ supportsShadowDom: true,
73
+ });
74
+ expect(page.root)
75
+ .toEqualHtml(`<ic-tab aria-disabled="false" aria-selected="false" context-id="default" role="tab" tabindex="-1" tab-position="1">
76
+ <mock:shadow-root>
77
+ <slot name="icon"></slot>
78
+ <ic-typography class="ic-tab-label ic-typography-label">
79
+ <mock:shadow-root>
80
+ <slot></slot>
81
+ </mock:shadow-root>
82
+ <span>
83
+ <slot></slot>
84
+ </span>
85
+ </ic-typography>
86
+ </mock:shadow-root>
87
+ IC Tab Test
88
+ <svg slot="icon"></svg>
89
+ </ic-tab>`);
90
+ });
91
+ it("should set focus to true on mouse down", async () => {
92
+ const page = await newSpecPage({
93
+ components: [Button, Tab, Typography],
94
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
95
+ supportsShadowDom: true,
96
+ });
97
+ page.rootInstance.handleMouseDown();
98
+ page.waitForChanges();
99
+ expect(page.rootInstance.focusFromClick).toBe(true);
100
+ });
101
+ it("should set isInitialRender to false on component update", async () => {
102
+ const page = await newSpecPage({
103
+ components: [Button, Tab, Typography],
104
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
105
+ supportsShadowDom: true,
106
+ });
107
+ page.rootInstance.componentDidUpdate();
108
+ page.waitForChanges();
109
+ expect(page.rootInstance.isInitialRender).toBe(false);
110
+ });
111
+ it("should emit tabFocus on handleFocus", async () => {
112
+ const page = await newSpecPage({
113
+ components: [Button, Tab, Typography],
114
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
115
+ supportsShadowDom: true,
116
+ });
117
+ const callbackFn = jest.fn();
118
+ page.doc.addEventListener("tabFocus", callbackFn);
119
+ page.rootInstance.handleFocus();
120
+ page.waitForChanges();
121
+ expect(callbackFn).toHaveBeenCalled();
122
+ });
123
+ it("should emit tabClick on handleClick", async () => {
124
+ const page = await newSpecPage({
125
+ components: [Button, Tab, Typography],
126
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
127
+ supportsShadowDom: true,
128
+ });
129
+ const callbackFn = jest.fn();
130
+ page.doc.addEventListener("tabClick", callbackFn);
131
+ page.rootInstance.handleClick();
132
+ page.waitForChanges();
133
+ expect(callbackFn).toHaveBeenCalled();
134
+ });
135
+ it("should call 'setFocus' when tab is focused", async () => {
136
+ const page = await newSpecPage({
137
+ components: [Tab],
138
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
139
+ });
140
+ //Can't expect anything in this test - this is to increase code coverage only
141
+ await page.rootInstance.setFocus().toHaveBeenCalled;
142
+ });
143
+ it("should emit tabFocus on handleClick when focusFromClick is true", async () => {
144
+ const page = await newSpecPage({
145
+ components: [Button, Tab, Typography],
146
+ html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,
147
+ supportsShadowDom: true,
148
+ });
149
+ page.rootInstance.focusFromClick = true;
150
+ page.waitForChanges();
151
+ const callbackFn = jest.fn();
152
+ page.doc.addEventListener("tabFocus", callbackFn);
153
+ page.rootInstance.handleClick();
154
+ page.waitForChanges();
155
+ expect(callbackFn).toHaveBeenCalled();
156
+ expect(page.rootInstance.focusFromClick).toBe(false);
157
+ });
158
+ });
159
+ //# sourceMappingURL=ic-tab.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-tab.spec.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Button } from \"../ic-button/ic-button\";\nimport { Tab } from \"./ic-tab\";\nimport { Typography } from \"../ic-typography/ic-typography\";\n\ndescribe(\"ic-tab component\", () => {\n it(\"should render with correct label\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-tab aria-disabled=\"false\" aria-selected=\"false\" context-id=\"default\" role=\"tab\" tabindex=\"-1\" tab-position=\"1\">\n <mock:shadow-root>\n <ic-typography class=\"ic-tab-label ic-typography-label\">\n <mock:shadow-root>\n <slot></slot>\n </mock:shadow-root>\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </mock:shadow-root>\n IC Tab Test\n </ic-tab>`);\n });\n\n it(\"should set the correct attributes when selected\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab selected tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-tab aria-disabled=\"false\" aria-selected=\"true\" class=\"selected\" context-id=\"default\" role=\"tab\" selected=\"\" tabindex=\"0\" tab-position=\"1\">\n <mock:shadow-root>\n <ic-typography class=\"ic-tab-label ic-typography-label\">\n <mock:shadow-root>\n <slot></slot>\n </mock:shadow-root>\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </mock:shadow-root>\n IC Tab Test\n </ic-tab>`);\n });\n\n it(\"should set the disabled attribute on the button\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab disabled tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-tab aria-disabled=\"true\" aria-selected=\"false\" class=\"disabled\" context-id=\"default\" disabled=\"\" role=\"tab\" tabindex=\"-1\" tab-position=\"1\">\n <mock:shadow-root>\n <ic-typography class=\"ic-tab-label ic-typography-label\">\n <mock:shadow-root>\n <slot></slot>\n </mock:shadow-root>\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </mock:shadow-root>\n IC Tab Test\n </ic-tab>`);\n });\n\n it(\"should display an icon\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test<svg slot=\"icon\"></svg></ic-tab>`,\n supportsShadowDom: true,\n });\n\n expect(page.root)\n .toEqualHtml(`<ic-tab aria-disabled=\"false\" aria-selected=\"false\" context-id=\"default\" role=\"tab\" tabindex=\"-1\" tab-position=\"1\">\n <mock:shadow-root>\n <slot name=\"icon\"></slot>\n <ic-typography class=\"ic-tab-label ic-typography-label\">\n <mock:shadow-root>\n <slot></slot>\n </mock:shadow-root>\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </mock:shadow-root>\n IC Tab Test\n <svg slot=\"icon\"></svg>\n </ic-tab>`);\n });\n\n it(\"should set focus to true on mouse down\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n page.rootInstance.handleMouseDown();\n page.waitForChanges();\n\n expect(page.rootInstance.focusFromClick).toBe(true);\n });\n\n it(\"should set isInitialRender to false on component update\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n page.rootInstance.componentDidUpdate();\n page.waitForChanges();\n\n expect(page.rootInstance.isInitialRender).toBe(false);\n });\n\n it(\"should emit tabFocus on handleFocus\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"tabFocus\", callbackFn);\n page.rootInstance.handleFocus();\n page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should emit tabClick on handleClick\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"tabClick\", callbackFn);\n page.rootInstance.handleClick();\n page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n });\n\n it(\"should call 'setFocus' when tab is focused\", async () => {\n const page = await newSpecPage({\n components: [Tab],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should emit tabFocus on handleClick when focusFromClick is true\", async () => {\n const page = await newSpecPage({\n components: [Button, Tab, Typography],\n html: `<ic-tab tab-position=1>IC Tab Test</ic-tab>`,\n supportsShadowDom: true,\n });\n\n page.rootInstance.focusFromClick = true;\n page.waitForChanges();\n\n const callbackFn = jest.fn();\n page.doc.addEventListener(\"tabFocus\", callbackFn);\n page.rootInstance.handleClick();\n page.waitForChanges();\n\n expect(callbackFn).toHaveBeenCalled();\n expect(page.rootInstance.focusFromClick).toBe(false);\n });\n});\n"]}