@ukic/web-components 2.5.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (715) hide show
  1. package/dist/cjs/core.cjs.js +2 -2
  2. package/dist/cjs/{helpers-d166f875.js → helpers-0d63359f.js} +40 -102
  3. package/dist/cjs/helpers-0d63359f.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +6 -4
  7. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +10 -6
  12. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +6 -4
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -5
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +70 -71
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +4 -4
  20. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js +13 -6
  22. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox.cjs.entry.js +20 -23
  24. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-chip.cjs.entry.js +11 -6
  26. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -5
  29. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-data-row.cjs.entry.js +5 -4
  31. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-dialog.cjs.entry.js +49 -12
  33. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-empty-state.cjs.entry.js +5 -4
  36. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-hero.cjs.entry.js +9 -6
  41. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -4
  43. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +42 -23
  45. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  47. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-link.cjs.entry.js +3 -6
  49. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-menu-group.cjs.entry.js +4 -2
  51. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-menu-item.cjs.entry.js +11 -15
  53. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  59. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-page-header.cjs.entry.js +8 -4
  62. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-pagination.cjs.entry.js +6 -6
  65. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-popover-menu.cjs.entry.js +21 -21
  67. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-radio-group.cjs.entry.js +9 -8
  69. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-radio-option.cjs.entry.js +21 -15
  71. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-search-bar.cjs.entry.js +27 -22
  73. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  75. package/dist/cjs/ic-select.cjs.entry.js +40 -30
  76. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -21
  78. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -3
  80. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-status-tag.cjs.entry.js +14 -6
  82. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-step.cjs.entry.js +7 -5
  84. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  86. package/dist/cjs/ic-switch.cjs.entry.js +13 -6
  87. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-context.cjs.entry.js +4 -4
  89. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -4
  91. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab-panel.cjs.entry.js +5 -4
  93. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-tab.cjs.entry.js +8 -8
  95. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-text-field.cjs.entry.js +5 -6
  97. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-toast-region.cjs.entry.js +21 -9
  100. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-toast.cjs.entry.js +7 -6
  102. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  104. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-typography.cjs.entry.js +12 -4
  106. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  107. package/dist/cjs/{index-afe53465.js → index-4f8c900f.js} +14 -1
  108. package/dist/cjs/index-4f8c900f.js.map +1 -0
  109. package/dist/cjs/loader.cjs.js +2 -2
  110. package/dist/cjs/types-7d67439f.js.map +1 -1
  111. package/dist/collection/collection-manifest.json +3 -3
  112. package/dist/collection/components/ic-accordion/ic-accordion.js +4 -2
  113. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  114. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +0 -1
  115. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  116. package/dist/collection/components/ic-badge/ic-badge.js +41 -15
  117. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  118. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +92 -0
  119. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -1
  120. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -4
  121. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  122. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +4 -2
  123. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  124. package/dist/collection/components/ic-button/ic-button.css +36 -19
  125. package/dist/collection/components/ic-button/ic-button.js +98 -62
  126. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  127. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +30 -2
  128. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  129. package/dist/collection/components/ic-card/ic-card.css +1 -0
  130. package/dist/collection/components/ic-card/ic-card.js +2 -1
  131. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  132. package/dist/collection/components/ic-checkbox/ic-checkbox.js +124 -22
  133. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  134. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +17 -4
  135. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  136. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +7 -0
  137. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  138. package/dist/collection/components/ic-chip/ic-chip.css +10 -5
  139. package/dist/collection/components/ic-chip/ic-chip.js +38 -7
  140. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  141. package/dist/collection/components/ic-data-entity/ic-data-entity.js +38 -7
  142. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  143. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js +3 -3
  144. package/dist/collection/components/ic-data-entity/test/basic/ic-data-entity.spec.js.map +1 -1
  145. package/dist/collection/components/ic-data-row/ic-data-row.js +33 -5
  146. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  147. package/dist/collection/components/ic-dialog/ic-dialog.css +2 -1
  148. package/dist/collection/components/ic-dialog/ic-dialog.js +111 -20
  149. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  150. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +4 -4
  151. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +1 -1
  152. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +74 -0
  153. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +1 -1
  154. package/dist/collection/components/ic-empty-state/ic-empty-state.js +8 -4
  155. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  156. package/dist/collection/components/ic-hero/ic-hero.js +38 -8
  157. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  158. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +24 -2
  159. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  160. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +61 -11
  161. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  162. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +2 -2
  163. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +1 -1
  164. package/dist/collection/components/ic-input-label/ic-input-label.js +26 -4
  165. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  166. package/dist/collection/components/ic-link/ic-link.js +1 -4
  167. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  168. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  169. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  170. package/dist/collection/components/ic-menu/ic-menu.js +62 -18
  171. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  172. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +19 -2
  173. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  174. package/dist/collection/components/ic-menu-group/ic-menu-group.js +2 -1
  175. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  176. package/dist/collection/components/ic-menu-item/ic-menu-item.js +10 -14
  177. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  178. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +3 -2
  179. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  180. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +1 -0
  181. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -0
  182. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -2
  183. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  184. package/dist/collection/components/ic-page-header/ic-page-header.js +35 -4
  185. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  186. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  187. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  188. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +20 -20
  189. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  190. package/dist/collection/components/ic-radio-group/ic-radio-group.js +37 -9
  191. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  192. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +7 -0
  193. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  194. package/dist/collection/components/ic-radio-option/ic-radio-option.js +125 -14
  195. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  196. package/dist/collection/components/ic-search-bar/ic-search-bar.js +54 -22
  197. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  198. package/dist/collection/components/ic-select/ic-select.css +1 -0
  199. package/dist/collection/components/ic-select/ic-select.js +169 -30
  200. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  201. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +24 -0
  202. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
  203. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +17 -2
  204. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  205. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +226 -224
  206. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -19
  207. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  208. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +1 -1
  209. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  210. package/dist/collection/components/ic-skeleton/ic-skeleton.js +26 -4
  211. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  212. package/dist/collection/components/ic-status-tag/ic-status-tag.js +71 -10
  213. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  214. package/dist/collection/components/ic-step/ic-step.js +5 -4
  215. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  216. package/dist/collection/components/ic-switch/ic-switch.js +43 -6
  217. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  218. package/dist/collection/components/ic-tab/ic-tab.js +6 -6
  219. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  220. package/dist/collection/components/ic-tab-context/ic-tab-context.js +3 -3
  221. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  222. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js +35 -0
  223. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.e2e.js.map +1 -1
  224. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -2
  225. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  226. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -3
  227. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  228. package/dist/collection/components/ic-text-field/ic-text-field.js +34 -8
  229. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  230. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +1 -1
  231. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  232. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +17 -17
  233. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  234. package/dist/collection/components/ic-toast/ic-toast.js +10 -6
  235. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  236. package/dist/collection/components/ic-toast-region/ic-toast-region.js +53 -17
  237. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  238. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +23 -1
  239. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +1 -1
  240. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  241. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -29
  242. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  243. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -8
  244. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  245. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +10 -1
  246. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  247. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  248. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  249. package/dist/collection/components/ic-typography/ic-typography.js +10 -2
  250. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  251. package/dist/collection/utils/constants.js +2 -0
  252. package/dist/collection/utils/constants.js.map +1 -1
  253. package/dist/collection/utils/helpers.js +36 -101
  254. package/dist/collection/utils/helpers.js.map +1 -1
  255. package/dist/collection/utils/types.js.map +1 -1
  256. package/dist/components/helpers.js +39 -102
  257. package/dist/components/helpers.js.map +1 -1
  258. package/dist/components/ic-accordion-group.js.map +1 -1
  259. package/dist/components/ic-accordion.js +4 -2
  260. package/dist/components/ic-accordion.js.map +1 -1
  261. package/dist/components/ic-back-to-top.js +1 -1
  262. package/dist/components/ic-badge.js +10 -6
  263. package/dist/components/ic-badge.js.map +1 -1
  264. package/dist/components/ic-breadcrumb-group.js +5 -3
  265. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  266. package/dist/components/ic-breadcrumb2.js +4 -4
  267. package/dist/components/ic-breadcrumb2.js.map +1 -1
  268. package/dist/components/ic-button2.js +62 -42
  269. package/dist/components/ic-button2.js.map +1 -1
  270. package/dist/components/ic-card.js +2 -2
  271. package/dist/components/ic-card.js.map +1 -1
  272. package/dist/components/ic-checkbox-group.js +13 -6
  273. package/dist/components/ic-checkbox-group.js.map +1 -1
  274. package/dist/components/ic-checkbox.js +25 -22
  275. package/dist/components/ic-checkbox.js.map +1 -1
  276. package/dist/components/ic-chip.js +10 -4
  277. package/dist/components/ic-chip.js.map +1 -1
  278. package/dist/components/ic-data-entity.js +6 -4
  279. package/dist/components/ic-data-entity.js.map +1 -1
  280. package/dist/components/ic-data-row.js +5 -3
  281. package/dist/components/ic-data-row.js.map +1 -1
  282. package/dist/components/ic-dialog.js +51 -11
  283. package/dist/components/ic-dialog.js.map +1 -1
  284. package/dist/components/ic-divider2.js +1 -1
  285. package/dist/components/ic-empty-state.js +4 -3
  286. package/dist/components/ic-empty-state.js.map +1 -1
  287. package/dist/components/ic-footer-link-group.js +1 -1
  288. package/dist/components/ic-footer-link.js +1 -1
  289. package/dist/components/ic-footer.js +1 -1
  290. package/dist/components/ic-hero.js +9 -5
  291. package/dist/components/ic-hero.js.map +1 -1
  292. package/dist/components/ic-horizontal-scroll2.js +5 -3
  293. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  294. package/dist/components/ic-input-component-container2.js +11 -7
  295. package/dist/components/ic-input-component-container2.js.map +1 -1
  296. package/dist/components/ic-input-label2.js +5 -3
  297. package/dist/components/ic-input-label2.js.map +1 -1
  298. package/dist/components/ic-input-validation2.js +1 -1
  299. package/dist/components/ic-link2.js +1 -4
  300. package/dist/components/ic-link2.js.map +1 -1
  301. package/dist/components/ic-loading-indicator2.js +6 -5
  302. package/dist/components/ic-loading-indicator2.js.map +1 -1
  303. package/dist/components/ic-menu-group.js +2 -1
  304. package/dist/components/ic-menu-group.js.map +1 -1
  305. package/dist/components/ic-menu-item2.js +10 -14
  306. package/dist/components/ic-menu-item2.js.map +1 -1
  307. package/dist/components/ic-menu2.js +34 -16
  308. package/dist/components/ic-menu2.js.map +1 -1
  309. package/dist/components/ic-navigation-button.js +2 -2
  310. package/dist/components/ic-navigation-button.js.map +1 -1
  311. package/dist/components/ic-navigation-group.js +1 -1
  312. package/dist/components/ic-navigation-group.js.map +1 -1
  313. package/dist/components/ic-navigation-item.js +3 -3
  314. package/dist/components/ic-navigation-item.js.map +1 -1
  315. package/dist/components/ic-navigation-menu2.js +1 -1
  316. package/dist/components/ic-page-header.js +8 -3
  317. package/dist/components/ic-page-header.js.map +1 -1
  318. package/dist/components/ic-pagination.js +4 -4
  319. package/dist/components/ic-pagination.js.map +1 -1
  320. package/dist/components/ic-popover-menu.js +20 -20
  321. package/dist/components/ic-popover-menu.js.map +1 -1
  322. package/dist/components/ic-radio-group.js +9 -7
  323. package/dist/components/ic-radio-group.js.map +1 -1
  324. package/dist/components/ic-radio-option.js +26 -14
  325. package/dist/components/ic-radio-option.js.map +1 -1
  326. package/dist/components/ic-search-bar.js +27 -21
  327. package/dist/components/ic-search-bar.js.map +1 -1
  328. package/dist/components/ic-select.js +46 -29
  329. package/dist/components/ic-select.js.map +1 -1
  330. package/dist/components/ic-side-navigation.js +23 -20
  331. package/dist/components/ic-side-navigation.js.map +1 -1
  332. package/dist/components/ic-skeleton.js +4 -2
  333. package/dist/components/ic-skeleton.js.map +1 -1
  334. package/dist/components/ic-status-tag.js +15 -5
  335. package/dist/components/ic-status-tag.js.map +1 -1
  336. package/dist/components/ic-step.js +5 -4
  337. package/dist/components/ic-step.js.map +1 -1
  338. package/dist/components/ic-stepper.js +1 -1
  339. package/dist/components/ic-switch.js +15 -5
  340. package/dist/components/ic-switch.js.map +1 -1
  341. package/dist/components/ic-tab-context.js +3 -3
  342. package/dist/components/ic-tab-context.js.map +1 -1
  343. package/dist/components/ic-tab-group.js +1 -2
  344. package/dist/components/ic-tab-group.js.map +1 -1
  345. package/dist/components/ic-tab-panel.js +4 -3
  346. package/dist/components/ic-tab-panel.js.map +1 -1
  347. package/dist/components/ic-tab.js +6 -6
  348. package/dist/components/ic-tab.js.map +1 -1
  349. package/dist/components/ic-text-field2.js +6 -6
  350. package/dist/components/ic-text-field2.js.map +1 -1
  351. package/dist/components/ic-theme.js +1 -1
  352. package/dist/components/ic-toast-region.js +24 -9
  353. package/dist/components/ic-toast-region.js.map +1 -1
  354. package/dist/components/ic-toast.js +6 -5
  355. package/dist/components/ic-toast.js.map +1 -1
  356. package/dist/components/ic-tooltip2.js +9 -28
  357. package/dist/components/ic-tooltip2.js.map +1 -1
  358. package/dist/components/ic-top-navigation.js +4 -4
  359. package/dist/components/ic-top-navigation.js.map +1 -1
  360. package/dist/components/ic-typography2.js +10 -2
  361. package/dist/components/ic-typography2.js.map +1 -1
  362. package/dist/components/types.js.map +1 -1
  363. package/dist/core/core.esm.js +1 -1
  364. package/dist/core/core.esm.js.map +1 -1
  365. package/dist/core/{p-1db57a3f.entry.js → p-025f9d2a.entry.js} +2 -2
  366. package/dist/core/p-025f9d2a.entry.js.map +1 -0
  367. package/dist/core/p-03329fd0.entry.js +2 -0
  368. package/dist/core/p-03329fd0.entry.js.map +1 -0
  369. package/dist/core/p-08b59078.entry.js +2 -0
  370. package/dist/core/p-08b59078.entry.js.map +1 -0
  371. package/dist/core/p-0c82048e.entry.js +2 -0
  372. package/dist/core/p-0c82048e.entry.js.map +1 -0
  373. package/dist/core/{p-64999983.entry.js → p-0dc4f225.entry.js} +2 -2
  374. package/dist/core/p-0dc4f225.entry.js.map +1 -0
  375. package/dist/core/p-12124e24.entry.js +2 -0
  376. package/dist/core/p-12124e24.entry.js.map +1 -0
  377. package/dist/core/{p-1ed0a71d.entry.js → p-1cf2a6aa.entry.js} +2 -2
  378. package/dist/core/p-1cf2a6aa.entry.js.map +1 -0
  379. package/dist/core/{p-ca6e5474.entry.js → p-2265e418.entry.js} +2 -2
  380. package/dist/core/p-2265e418.entry.js.map +1 -0
  381. package/dist/core/{p-9ee852d9.entry.js → p-2c30b583.entry.js} +2 -2
  382. package/dist/core/p-345fe84a.entry.js +2 -0
  383. package/dist/core/p-345fe84a.entry.js.map +1 -0
  384. package/dist/core/p-39c8111d.entry.js +2 -0
  385. package/dist/core/p-39c8111d.entry.js.map +1 -0
  386. package/dist/core/p-3a15202f.entry.js +2 -0
  387. package/dist/core/p-3a15202f.entry.js.map +1 -0
  388. package/dist/core/{p-2d21de19.entry.js → p-3a814fc4.entry.js} +2 -2
  389. package/dist/core/p-3a814fc4.entry.js.map +1 -0
  390. package/dist/core/p-3fd897c9.entry.js +2 -0
  391. package/dist/core/p-3fd897c9.entry.js.map +1 -0
  392. package/dist/core/p-41c6eaa1.entry.js +2 -0
  393. package/dist/core/p-41c6eaa1.entry.js.map +1 -0
  394. package/dist/core/p-432f8ff0.entry.js +2 -0
  395. package/dist/core/p-432f8ff0.entry.js.map +1 -0
  396. package/dist/core/p-4559600a.entry.js +2 -0
  397. package/dist/core/p-4559600a.entry.js.map +1 -0
  398. package/dist/core/{p-913da6d0.entry.js → p-475b7bd2.entry.js} +2 -2
  399. package/dist/core/{p-913da6d0.entry.js.map → p-475b7bd2.entry.js.map} +1 -1
  400. package/dist/core/{p-0fdb1e52.entry.js → p-48525498.entry.js} +2 -2
  401. package/dist/core/p-536b3c97.entry.js +2 -0
  402. package/dist/core/p-536b3c97.entry.js.map +1 -0
  403. package/dist/core/p-59bdafff.entry.js +2 -0
  404. package/dist/core/p-59bdafff.entry.js.map +1 -0
  405. package/dist/core/p-5b487daa.entry.js +2 -0
  406. package/dist/core/p-5b487daa.entry.js.map +1 -0
  407. package/dist/core/{p-4f070381.entry.js → p-5bb6c79b.entry.js} +2 -2
  408. package/dist/core/p-5bb6c79b.entry.js.map +1 -0
  409. package/dist/core/p-5ca39ed5.entry.js +2 -0
  410. package/dist/core/p-5ca39ed5.entry.js.map +1 -0
  411. package/dist/core/p-5fcd202e.entry.js +2 -0
  412. package/dist/core/p-5fcd202e.entry.js.map +1 -0
  413. package/dist/core/p-613aa265.js.map +1 -1
  414. package/dist/core/{p-038601a3.entry.js → p-69948c3e.entry.js} +2 -2
  415. package/dist/core/{p-038601a3.entry.js.map → p-69948c3e.entry.js.map} +1 -1
  416. package/dist/core/{p-d9fc7243.entry.js → p-752f0f9a.entry.js} +2 -2
  417. package/dist/core/p-752f0f9a.entry.js.map +1 -0
  418. package/dist/core/p-763d0822.entry.js +2 -0
  419. package/dist/core/p-763d0822.entry.js.map +1 -0
  420. package/dist/core/{p-9bd160bb.entry.js → p-76563540.entry.js} +2 -2
  421. package/dist/core/p-76563540.entry.js.map +1 -0
  422. package/dist/core/{p-cf95dd66.entry.js → p-7bb3c340.entry.js} +2 -2
  423. package/dist/core/p-88ea1e49.entry.js +2 -0
  424. package/dist/core/p-8b18346a.entry.js +2 -0
  425. package/dist/core/p-8b18346a.entry.js.map +1 -0
  426. package/dist/core/p-8fb4f0c0.js +2 -0
  427. package/dist/core/p-8fb4f0c0.js.map +1 -0
  428. package/dist/core/{p-05249867.entry.js → p-932fb4b7.entry.js} +2 -2
  429. package/dist/core/p-9ccfb863.entry.js +2 -0
  430. package/dist/core/p-9ccfb863.entry.js.map +1 -0
  431. package/dist/core/{p-85903a81.js → p-9d124fc7.js} +3 -3
  432. package/dist/core/p-9d124fc7.js.map +1 -0
  433. package/dist/core/{p-e904d985.entry.js → p-a4397df4.entry.js} +2 -2
  434. package/dist/core/{p-4fbe1dc3.entry.js → p-a448d873.entry.js} +2 -2
  435. package/dist/core/p-a448d873.entry.js.map +1 -0
  436. package/dist/core/{p-a388750d.entry.js → p-af9f1caa.entry.js} +2 -2
  437. package/dist/core/p-af9f1caa.entry.js.map +1 -0
  438. package/dist/core/{p-4ef8342f.entry.js → p-b0ce60a0.entry.js} +2 -2
  439. package/dist/core/{p-0e1a4f8d.entry.js → p-b77ab20a.entry.js} +2 -2
  440. package/dist/core/p-b77ab20a.entry.js.map +1 -0
  441. package/dist/core/p-ba495175.entry.js +2 -0
  442. package/dist/core/p-ba495175.entry.js.map +1 -0
  443. package/dist/core/p-c0c62df4.entry.js +2 -0
  444. package/dist/core/p-c0c62df4.entry.js.map +1 -0
  445. package/dist/core/{p-60fef702.entry.js → p-c36cbd8a.entry.js} +2 -2
  446. package/dist/core/p-c36cbd8a.entry.js.map +1 -0
  447. package/dist/core/p-c9ef9f5c.entry.js +2 -0
  448. package/dist/core/p-c9ef9f5c.entry.js.map +1 -0
  449. package/dist/core/{p-e59d2d50.entry.js → p-ccac1730.entry.js} +2 -2
  450. package/dist/core/p-cf4bacee.entry.js +2 -0
  451. package/dist/core/p-cf4bacee.entry.js.map +1 -0
  452. package/dist/core/p-e2903ce9.entry.js +2 -0
  453. package/dist/core/p-e2903ce9.entry.js.map +1 -0
  454. package/dist/core/{p-b42b8ffa.entry.js → p-e2fd542e.entry.js} +2 -2
  455. package/dist/core/p-e2fd542e.entry.js.map +1 -0
  456. package/dist/core/{p-ac82781b.entry.js → p-e3bffcae.entry.js} +2 -2
  457. package/dist/core/p-ea6ad791.entry.js +2 -0
  458. package/dist/core/p-ea6ad791.entry.js.map +1 -0
  459. package/dist/core/{p-1650c1c2.entry.js → p-eb063498.entry.js} +2 -2
  460. package/dist/core/p-eb063498.entry.js.map +1 -0
  461. package/dist/core/p-ec82fa24.entry.js +2 -0
  462. package/dist/core/p-ec82fa24.entry.js.map +1 -0
  463. package/dist/core/{p-c1e8d13e.entry.js → p-ed256f1d.entry.js} +2 -2
  464. package/dist/core/{p-2184a72f.entry.js → p-f00e510b.entry.js} +2 -2
  465. package/dist/core/p-f00e510b.entry.js.map +1 -0
  466. package/dist/core/{p-482397ae.entry.js → p-f019219c.entry.js} +2 -2
  467. package/dist/core/p-f69fb26b.entry.js +2 -0
  468. package/dist/core/p-f69fb26b.entry.js.map +1 -0
  469. package/dist/core/{p-675fe4db.entry.js → p-fbc8a739.entry.js} +2 -2
  470. package/dist/core/p-fbc8a739.entry.js.map +1 -0
  471. package/dist/core/p-fe6e0c0e.entry.js +2 -0
  472. package/dist/core/p-fe6e0c0e.entry.js.map +1 -0
  473. package/dist/esm/core.js +3 -3
  474. package/dist/esm/{helpers-81a88a11.js → helpers-24f6e762.js} +40 -103
  475. package/dist/esm/helpers-24f6e762.js.map +1 -0
  476. package/dist/esm/ic-accordion-group.entry.js +1 -1
  477. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  478. package/dist/esm/ic-accordion.entry.js +6 -4
  479. package/dist/esm/ic-accordion.entry.js.map +1 -1
  480. package/dist/esm/ic-alert.entry.js +2 -2
  481. package/dist/esm/ic-back-to-top.entry.js +2 -2
  482. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  483. package/dist/esm/ic-badge.entry.js +10 -6
  484. package/dist/esm/ic-badge.entry.js.map +1 -1
  485. package/dist/esm/ic-breadcrumb-group.entry.js +6 -4
  486. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  487. package/dist/esm/ic-breadcrumb.entry.js +5 -5
  488. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  489. package/dist/esm/ic-button_3.entry.js +70 -71
  490. package/dist/esm/ic-button_3.entry.js.map +1 -1
  491. package/dist/esm/ic-card.entry.js +4 -4
  492. package/dist/esm/ic-card.entry.js.map +1 -1
  493. package/dist/esm/ic-checkbox-group.entry.js +13 -6
  494. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  495. package/dist/esm/ic-checkbox.entry.js +20 -23
  496. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  497. package/dist/esm/ic-chip.entry.js +11 -6
  498. package/dist/esm/ic-chip.entry.js.map +1 -1
  499. package/dist/esm/ic-classification-banner.entry.js +1 -1
  500. package/dist/esm/ic-data-entity.entry.js +6 -5
  501. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  502. package/dist/esm/ic-data-row.entry.js +5 -4
  503. package/dist/esm/ic-data-row.entry.js.map +1 -1
  504. package/dist/esm/ic-dialog.entry.js +49 -12
  505. package/dist/esm/ic-dialog.entry.js.map +1 -1
  506. package/dist/esm/ic-divider.entry.js +2 -2
  507. package/dist/esm/ic-empty-state.entry.js +5 -4
  508. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  509. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  510. package/dist/esm/ic-footer-link.entry.js +2 -2
  511. package/dist/esm/ic-footer.entry.js +2 -2
  512. package/dist/esm/ic-hero.entry.js +9 -6
  513. package/dist/esm/ic-hero.entry.js.map +1 -1
  514. package/dist/esm/ic-horizontal-scroll.entry.js +5 -4
  515. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  516. package/dist/esm/ic-input-component-container_3.entry.js +42 -23
  517. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  518. package/dist/esm/ic-input-label_2.entry.js +5 -4
  519. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  520. package/dist/esm/ic-link.entry.js +3 -6
  521. package/dist/esm/ic-link.entry.js.map +1 -1
  522. package/dist/esm/ic-menu-group.entry.js +4 -2
  523. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  524. package/dist/esm/ic-menu-item.entry.js +11 -15
  525. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  526. package/dist/esm/ic-navigation-button.entry.js +3 -3
  527. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  528. package/dist/esm/ic-navigation-group.entry.js +2 -2
  529. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  530. package/dist/esm/ic-navigation-item.entry.js +4 -4
  531. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  532. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  533. package/dist/esm/ic-page-header.entry.js +8 -4
  534. package/dist/esm/ic-page-header.entry.js.map +1 -1
  535. package/dist/esm/ic-pagination-item.entry.js +2 -2
  536. package/dist/esm/ic-pagination.entry.js +6 -6
  537. package/dist/esm/ic-pagination.entry.js.map +1 -1
  538. package/dist/esm/ic-popover-menu.entry.js +21 -21
  539. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  540. package/dist/esm/ic-radio-group.entry.js +9 -8
  541. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  542. package/dist/esm/ic-radio-option.entry.js +21 -15
  543. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  544. package/dist/esm/ic-search-bar.entry.js +27 -22
  545. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  546. package/dist/esm/ic-section-container.entry.js +1 -1
  547. package/dist/esm/ic-select.entry.js +40 -30
  548. package/dist/esm/ic-select.entry.js.map +1 -1
  549. package/dist/esm/ic-side-navigation.entry.js +23 -21
  550. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  551. package/dist/esm/ic-skeleton.entry.js +4 -3
  552. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  553. package/dist/esm/ic-status-tag.entry.js +14 -6
  554. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  555. package/dist/esm/ic-step.entry.js +7 -5
  556. package/dist/esm/ic-step.entry.js.map +1 -1
  557. package/dist/esm/ic-stepper.entry.js +2 -2
  558. package/dist/esm/ic-switch.entry.js +13 -6
  559. package/dist/esm/ic-switch.entry.js.map +1 -1
  560. package/dist/esm/ic-tab-context.entry.js +4 -4
  561. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  562. package/dist/esm/ic-tab-group.entry.js +3 -4
  563. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  564. package/dist/esm/ic-tab-panel.entry.js +5 -4
  565. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  566. package/dist/esm/ic-tab.entry.js +8 -8
  567. package/dist/esm/ic-tab.entry.js.map +1 -1
  568. package/dist/esm/ic-text-field.entry.js +5 -6
  569. package/dist/esm/ic-text-field.entry.js.map +1 -1
  570. package/dist/esm/ic-theme.entry.js +2 -2
  571. package/dist/esm/ic-toast-region.entry.js +21 -9
  572. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  573. package/dist/esm/ic-toast.entry.js +7 -6
  574. package/dist/esm/ic-toast.entry.js.map +1 -1
  575. package/dist/esm/ic-top-navigation.entry.js +5 -5
  576. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  577. package/dist/esm/ic-typography.entry.js +12 -4
  578. package/dist/esm/ic-typography.entry.js.map +1 -1
  579. package/dist/esm/{index-b006ae9d.js → index-813020f1.js} +14 -2
  580. package/dist/esm/index-813020f1.js.map +1 -0
  581. package/dist/esm/loader.js +3 -3
  582. package/dist/esm/types-b2398b37.js.map +1 -1
  583. package/dist/types/components/ic-accordion/ic-accordion.d.ts +1 -0
  584. package/dist/types/components/ic-badge/ic-badge.d.ts +10 -3
  585. package/dist/types/components/ic-button/ic-button.d.ts +12 -5
  586. package/dist/types/components/ic-card/ic-card.d.ts +1 -0
  587. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +28 -2
  588. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -1
  589. package/dist/types/components/ic-chip/ic-chip.d.ts +6 -2
  590. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +10 -2
  591. package/dist/types/components/ic-data-row/ic-data-row.d.ts +7 -2
  592. package/dist/types/components/ic-dialog/ic-dialog.d.ts +15 -5
  593. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +4 -1
  594. package/dist/types/components/ic-hero/ic-hero.d.ts +7 -3
  595. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +4 -0
  596. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +13 -5
  597. package/dist/types/components/ic-input-label/ic-input-label.d.ts +5 -1
  598. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +1 -1
  599. package/dist/types/components/ic-menu/ic-menu.d.ts +8 -3
  600. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -0
  601. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +1 -0
  602. package/dist/types/components/ic-page-header/ic-page-header.d.ts +6 -2
  603. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -1
  604. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -4
  605. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +28 -1
  606. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +6 -2
  607. package/dist/types/components/ic-select/ic-select.d.ts +34 -4
  608. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  609. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +5 -1
  610. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +12 -2
  611. package/dist/types/components/ic-switch/ic-switch.d.ts +7 -1
  612. package/dist/types/components/ic-tab/ic-tab.d.ts +1 -1
  613. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +1 -1
  614. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -1
  615. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +1 -1
  616. package/dist/types/components/ic-text-field/ic-text-field.d.ts +7 -3
  617. package/dist/types/components/ic-toast/ic-toast.d.ts +1 -1
  618. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +7 -2
  619. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -3
  620. package/dist/types/components.d.ts +388 -60
  621. package/dist/types/utils/helpers.d.ts +2 -1
  622. package/dist/types/utils/types.d.ts +2 -0
  623. package/hydrate/index.js +581 -450
  624. package/package.json +5 -5
  625. package/dist/cjs/helpers-d166f875.js.map +0 -1
  626. package/dist/cjs/index-afe53465.js.map +0 -1
  627. package/dist/core/p-0353a1d8.entry.js +0 -2
  628. package/dist/core/p-0353a1d8.entry.js.map +0 -1
  629. package/dist/core/p-08c6119a.entry.js +0 -2
  630. package/dist/core/p-08c6119a.entry.js.map +0 -1
  631. package/dist/core/p-09004694.entry.js +0 -2
  632. package/dist/core/p-09004694.entry.js.map +0 -1
  633. package/dist/core/p-0d71a937.entry.js +0 -2
  634. package/dist/core/p-0d71a937.entry.js.map +0 -1
  635. package/dist/core/p-0e1a4f8d.entry.js.map +0 -1
  636. package/dist/core/p-10bfc292.entry.js +0 -2
  637. package/dist/core/p-10bfc292.entry.js.map +0 -1
  638. package/dist/core/p-1650c1c2.entry.js.map +0 -1
  639. package/dist/core/p-1db57a3f.entry.js.map +0 -1
  640. package/dist/core/p-1ed0a71d.entry.js.map +0 -1
  641. package/dist/core/p-2184a72f.entry.js.map +0 -1
  642. package/dist/core/p-293f4c5f.entry.js +0 -2
  643. package/dist/core/p-293f4c5f.entry.js.map +0 -1
  644. package/dist/core/p-2afa6d29.entry.js +0 -2
  645. package/dist/core/p-2afa6d29.entry.js.map +0 -1
  646. package/dist/core/p-2c09f9e0.entry.js +0 -2
  647. package/dist/core/p-2c09f9e0.entry.js.map +0 -1
  648. package/dist/core/p-2d21de19.entry.js.map +0 -1
  649. package/dist/core/p-32510505.entry.js +0 -2
  650. package/dist/core/p-32510505.entry.js.map +0 -1
  651. package/dist/core/p-4f070381.entry.js.map +0 -1
  652. package/dist/core/p-4fbe1dc3.entry.js.map +0 -1
  653. package/dist/core/p-5401863e.entry.js +0 -2
  654. package/dist/core/p-5401863e.entry.js.map +0 -1
  655. package/dist/core/p-59b24198.entry.js +0 -2
  656. package/dist/core/p-59b24198.entry.js.map +0 -1
  657. package/dist/core/p-5cc070c4.entry.js +0 -2
  658. package/dist/core/p-5cc070c4.entry.js.map +0 -1
  659. package/dist/core/p-5f881644.entry.js +0 -2
  660. package/dist/core/p-5f881644.entry.js.map +0 -1
  661. package/dist/core/p-60fef702.entry.js.map +0 -1
  662. package/dist/core/p-64999983.entry.js.map +0 -1
  663. package/dist/core/p-675fe4db.entry.js.map +0 -1
  664. package/dist/core/p-6aec6bce.entry.js +0 -2
  665. package/dist/core/p-6aec6bce.entry.js.map +0 -1
  666. package/dist/core/p-6ec3cd12.entry.js +0 -2
  667. package/dist/core/p-6ec3cd12.entry.js.map +0 -1
  668. package/dist/core/p-76daa5b0.entry.js +0 -2
  669. package/dist/core/p-777e5556.entry.js +0 -2
  670. package/dist/core/p-777e5556.entry.js.map +0 -1
  671. package/dist/core/p-7a61d94a.entry.js +0 -2
  672. package/dist/core/p-7a61d94a.entry.js.map +0 -1
  673. package/dist/core/p-85903a81.js.map +0 -1
  674. package/dist/core/p-932fe2a0.entry.js +0 -2
  675. package/dist/core/p-932fe2a0.entry.js.map +0 -1
  676. package/dist/core/p-9bd160bb.entry.js.map +0 -1
  677. package/dist/core/p-a388750d.entry.js.map +0 -1
  678. package/dist/core/p-a46c1690.entry.js +0 -2
  679. package/dist/core/p-a46c1690.entry.js.map +0 -1
  680. package/dist/core/p-abf60097.entry.js +0 -2
  681. package/dist/core/p-abf60097.entry.js.map +0 -1
  682. package/dist/core/p-ad520f36.entry.js +0 -2
  683. package/dist/core/p-ad520f36.entry.js.map +0 -1
  684. package/dist/core/p-b42b8ffa.entry.js.map +0 -1
  685. package/dist/core/p-b96bd8be.entry.js +0 -2
  686. package/dist/core/p-b96bd8be.entry.js.map +0 -1
  687. package/dist/core/p-c30d9b20.js +0 -2
  688. package/dist/core/p-c30d9b20.js.map +0 -1
  689. package/dist/core/p-ca6e5474.entry.js.map +0 -1
  690. package/dist/core/p-ceed0fee.entry.js +0 -2
  691. package/dist/core/p-ceed0fee.entry.js.map +0 -1
  692. package/dist/core/p-d005a71a.entry.js +0 -2
  693. package/dist/core/p-d005a71a.entry.js.map +0 -1
  694. package/dist/core/p-d5282ede.entry.js +0 -2
  695. package/dist/core/p-d5282ede.entry.js.map +0 -1
  696. package/dist/core/p-d9fc7243.entry.js.map +0 -1
  697. package/dist/core/p-db4a15bd.entry.js +0 -2
  698. package/dist/core/p-db4a15bd.entry.js.map +0 -1
  699. package/dist/core/p-e75b04af.entry.js +0 -2
  700. package/dist/core/p-e75b04af.entry.js.map +0 -1
  701. package/dist/core/p-ea55f25c.entry.js +0 -2
  702. package/dist/core/p-ea55f25c.entry.js.map +0 -1
  703. package/dist/esm/helpers-81a88a11.js.map +0 -1
  704. package/dist/esm/index-b006ae9d.js.map +0 -1
  705. /package/dist/core/{p-9ee852d9.entry.js.map → p-2c30b583.entry.js.map} +0 -0
  706. /package/dist/core/{p-0fdb1e52.entry.js.map → p-48525498.entry.js.map} +0 -0
  707. /package/dist/core/{p-cf95dd66.entry.js.map → p-7bb3c340.entry.js.map} +0 -0
  708. /package/dist/core/{p-76daa5b0.entry.js.map → p-88ea1e49.entry.js.map} +0 -0
  709. /package/dist/core/{p-05249867.entry.js.map → p-932fb4b7.entry.js.map} +0 -0
  710. /package/dist/core/{p-e904d985.entry.js.map → p-a4397df4.entry.js.map} +0 -0
  711. /package/dist/core/{p-4ef8342f.entry.js.map → p-b0ce60a0.entry.js.map} +0 -0
  712. /package/dist/core/{p-e59d2d50.entry.js.map → p-ccac1730.entry.js.map} +0 -0
  713. /package/dist/core/{p-ac82781b.entry.js.map → p-e3bffcae.entry.js.map} +0 -0
  714. /package/dist/core/{p-c1e8d13e.entry.js.map → p-ed256f1d.entry.js.map} +0 -0
  715. /package/dist/core/{p-482397ae.entry.js.map → p-f019219c.entry.js.map} +0 -0
@@ -32,9 +32,13 @@ export class Switch {
32
32
  this.label = undefined;
33
33
  this.name = this.inputId;
34
34
  this.showState = false;
35
+ this.size = "default";
35
36
  this.small = false;
36
37
  this.value = "on";
37
38
  }
39
+ checkedChangeHandler() {
40
+ this.checkedState = this.checked;
41
+ }
38
42
  disconnectedCallback() {
39
43
  removeFormResetListener(this.el, this.handleFormReset);
40
44
  }
@@ -55,17 +59,17 @@ export class Switch {
55
59
  }
56
60
  }
57
61
  render() {
58
- const { label, checkedState, small, disabled, name, showState, value, hideLabel, helperText, inputId, } = this;
62
+ const { label, checkedState, small, size, disabled, name, showState, value, hideLabel, helperText, inputId, } = this;
59
63
  renderHiddenInput(true, this.el, name, checkedState ? value : "", disabled);
60
64
  const describedBy = getInputDescribedByText(inputId, helperText !== "", false);
61
65
  return (h(Host, null, h("label", { class: {
62
66
  ["ic-switch-container"]: true,
63
67
  ["ic-switch-disabled"]: disabled,
64
- ["ic-switch-small"]: small,
68
+ ["ic-switch-small"]: small || size === "small",
65
69
  }, htmlFor: inputId }, !hideLabel && (h("ic-input-label", { for: inputId, label: label, helperText: helperText, readonly: true, disabled: disabled, class: {
66
70
  ["ic-switch-label"]: true,
67
- ["ic-switch-label-small"]: small,
68
- } })), !hideLabel && h("span", { class: "ic-switch-line-break" }), h("input", { checked: checkedState, disabled: disabled, "aria-label": label, "aria-checked": checkedState ? "true" : "false", "aria-describedby": describedBy, role: "switch", class: "ic-switch-input", type: "checkbox", name: "toggle", id: inputId, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange }), h("span", { class: "ic-switch-toggle" }, h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("line", { class: "ic-switch-icon-line", x1: "9", y1: small ? "2" : "1", x2: "9", y2: small ? "8" : "9" })), h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("circle", { class: "ic-switch-icon-circle", fill: "none", cx: "5", cy: "5", r: small ? "3.335" : "4.445" }))), h("slot", { name: "right-adornment" }), showState && (h("ic-typography", { "aria-hidden": "true", variant: "label", class: "ic-switch-checked-status" }, checkedState ? "On" : "Off")))));
71
+ ["ic-switch-label-small"]: small || size === "small",
72
+ } })), !hideLabel && h("span", { class: "ic-switch-line-break" }), h("input", { checked: checkedState, disabled: disabled, "aria-label": label, "aria-checked": checkedState ? "true" : "false", "aria-describedby": describedBy, role: "switch", class: "ic-switch-input", type: "checkbox", name: "toggle", id: inputId, onFocus: this.onFocus, onBlur: this.onBlur, onChange: this.handleChange }), h("span", { class: "ic-switch-toggle" }, h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("line", { class: "ic-switch-icon-line", x1: "9", y1: small || size === "small" ? "2" : "1", x2: "9", y2: small || size === "small" ? "8" : "9" })), h("svg", { class: "ic-switch-icon", "aria-hidden": "true", focusable: "false", viewBox: "0 0 10 10", xmlns: "http://www.w3.org/2000/svg" }, h("circle", { class: "ic-switch-icon-circle", fill: "none", cx: "5", cy: "5", r: small || size === "small" ? "3.335" : "4.445" }))), h("slot", { name: "right-adornment" }), showState && (h("ic-typography", { "aria-hidden": "true", variant: "label", class: "ic-switch-checked-status" }, checkedState ? "On" : "Off")))));
69
73
  }
70
74
  static get is() { return "ic-switch"; }
71
75
  static get encapsulation() { return "shadow"; }
@@ -207,6 +211,30 @@ export class Switch {
207
211
  "reflect": false,
208
212
  "defaultValue": "false"
209
213
  },
214
+ "size": {
215
+ "type": "string",
216
+ "mutable": false,
217
+ "complexType": {
218
+ "original": "IcSizesNoLarge",
219
+ "resolved": "\"default\" | \"small\"",
220
+ "references": {
221
+ "IcSizesNoLarge": {
222
+ "location": "import",
223
+ "path": "../../utils/types",
224
+ "id": "src/utils/types.ts::IcSizesNoLarge"
225
+ }
226
+ }
227
+ },
228
+ "required": false,
229
+ "optional": true,
230
+ "docs": {
231
+ "tags": [],
232
+ "text": "The size of the switch component."
233
+ },
234
+ "attribute": "size",
235
+ "reflect": false,
236
+ "defaultValue": "\"default\""
237
+ },
210
238
  "small": {
211
239
  "type": "boolean",
212
240
  "mutable": false,
@@ -218,8 +246,11 @@ export class Switch {
218
246
  "required": false,
219
247
  "optional": true,
220
248
  "docs": {
221
- "tags": [],
222
- "text": "If `true`, the small styling will be applied to the switch."
249
+ "tags": [{
250
+ "name": "deprecated",
251
+ "text": "This prop should not be used anymore. Set prop `size` to \"small\" instead."
252
+ }],
253
+ "text": ""
223
254
  },
224
255
  "attribute": "small",
225
256
  "reflect": false,
@@ -327,5 +358,11 @@ export class Switch {
327
358
  };
328
359
  }
329
360
  static get elementRef() { return "el"; }
361
+ static get watchers() {
362
+ return [{
363
+ "propName": "checked",
364
+ "methodName": "checkedChangeHandler"
365
+ }];
366
+ }
330
367
  }
331
368
  //# sourceMappingURL=ic-switch.js.map
@@ -1 +1 @@
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 @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: 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 /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * If `true`, the small styling will be applied to the switch.\n */\n @Prop() small?: 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 toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\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 disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\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 /**\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 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 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 Watch,\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\";\nimport { IcSizesNoLarge } from \"../../utils/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 @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: 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 /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: 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 toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\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 disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\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 /**\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 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 render() {\n const {\n label,\n checkedState,\n small,\n size,\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 || size === \"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 || size === \"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 || size === \"small\" ? \"2\" : \"1\"}\n x2=\"9\"\n y2={small || size === \"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 || size === \"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"]}
@@ -51,7 +51,7 @@ export class Tab {
51
51
  this.tabEnabled.emit();
52
52
  }
53
53
  connectedCallback() {
54
- this.tabCreated.emit(this.host);
54
+ this.tabCreated.emit(this.el);
55
55
  }
56
56
  disconnectedCallback() {
57
57
  const tabContext = document.querySelector(`ic-tab-context[context-id=${this.contextId}]`);
@@ -60,7 +60,7 @@ export class Tab {
60
60
  }
61
61
  }
62
62
  componentWillLoad() {
63
- removeDisabledFalse(this.disabled, this.host);
63
+ removeDisabledFalse(this.disabled, this.el);
64
64
  }
65
65
  componentDidUpdate() {
66
66
  this.isInitialRender = false;
@@ -69,8 +69,8 @@ export class Tab {
69
69
  * Sets focus on the tab.
70
70
  */
71
71
  async setFocus() {
72
- if (this.host) {
73
- this.host.focus();
72
+ if (this.el) {
73
+ this.el.focus();
74
74
  }
75
75
  }
76
76
  render() {
@@ -80,7 +80,7 @@ export class Tab {
80
80
  ["ic-tab-light"]: appearance === IcThemeForegroundEnum.Light,
81
81
  ["selected"]: selected,
82
82
  ["disabled"]: disabled,
83
- }, role: "tab", "aria-selected": selected ? "true" : "false", onClick: this.handleClick, onFocus: this.handleFocus, onMouseDown: this.handleMouseDown, "aria-disabled": disabled ? "true" : "false", tabindex: this.selected ? 0 : -1 }, this.host.querySelector('[slot="icon"]') && h("slot", { name: "icon" }), h("ic-typography", { class: "ic-tab-label", variant: "label" }, h("span", null, h("slot", null))), isSlotUsed(this.host, "badge") && h("slot", { name: "badge" })));
83
+ }, role: "tab", "aria-selected": selected ? "true" : "false", onClick: this.handleClick, onFocus: this.handleFocus, onMouseDown: this.handleMouseDown, "aria-disabled": disabled ? "true" : "false", tabindex: this.selected ? 0 : -1 }, this.el.querySelector('[slot="icon"]') && h("slot", { name: "icon" }), h("ic-typography", { class: "ic-tab-label", variant: "label" }, h("span", null, h("slot", null))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" })));
84
84
  }
85
85
  static get is() { return "ic-tab"; }
86
86
  static get encapsulation() { return "shadow"; }
@@ -356,7 +356,7 @@ export class Tab {
356
356
  }
357
357
  };
358
358
  }
359
- static get elementRef() { return "host"; }
359
+ static get elementRef() { return "el"; }
360
360
  static get watchers() {
361
361
  return [{
362
362
  "propName": "disabled",
@@ -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 Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() host: HTMLIcTabElement;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\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 @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\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 dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\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 componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.host);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\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 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 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 {isSlotUsed(this.host, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,OAAO,EACP,KAAK,EAEL,IAAI,EACJ,IAAI,EACJ,CAAC,EACD,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AAGvB,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEtE;;;GAGG;AAMH,MAAM,OAAO,GAAG;;IACN,mBAAc,GAAY,KAAK,CAAC;IAEhC,oBAAe,GAAY,IAAI,CAAC;IAqFhC,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;OAC3B,CAAC,CAAC;MACH,IAAI,IAAI,CAAC,cAAc,EAAE;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;UACjB,KAAK,EAAE,IAAI,CAAC,KAAK;UACjB,SAAS,EAAE,IAAI,CAAC,SAAS;UACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;OAC7B;IACH,CAAC,CAAC;IAEM,gBAAW,GAAG,GAAG,EAAE;MACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAE7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;UACjB,KAAK,EAAE,IAAI,CAAC,KAAK;UACjB,SAAS,EAAE,IAAI,CAAC,SAAS;UACzB,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B,CAAC,CAAC;OACJ;IACH,CAAC,CAAC;IAEM,oBAAe,GAAG,GAAG,EAAE;MAC7B,iDAAiD;MACjD,wFAAwF;MACxF,iFAAiF;MACjF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC,CAAC;sBAjHgD,MAAM;qBAGV,SAAS;oBAK1B,KAAK;oBAGY,KAAK;;;;EASnD,oBAAoB;IAClB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;EACzB,CAAC;EA2BD,iBAAiB;IACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EAChC,CAAC;EAED,oBAAoB;IAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CACvC,6BAA6B,IAAI,CAAC,SAAS,GAAG,CACpB,CAAC;IAC7B,IAAI,UAAU,EAAE;MACd,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACjD;EACH,CAAC;EAED,iBAAiB;IACf,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;EAC9C,CAAC;EAED,kBAAkB;IAChB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;EAC/B,CAAC;EAED;;KAEG;EAEH,KAAK,CAAC,QAAQ;IACZ,IAAI,IAAI,CAAC,EAAE,EAAE;MACX,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;KACjB;EACH,CAAC;EAqCD,MAAM;IACJ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe;QAC1C,CAAC,cAAc,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;QAC5D,CAAC,UAAU,CAAC,EAAE,QAAQ;QACtB,CAAC,UAAU,CAAC,EAAE,QAAQ;OACvB,EACD,IAAI,EAAC,KAAK,mBACK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,WAAW,EAAE,IAAI,CAAC,eAAe,mBAClB,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MAE/B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,YAAM,IAAI,EAAC,MAAM,GAAQ;MACpE,qBAAe,KAAK,EAAC,cAAc,EAAC,OAAO,EAAC,OAAO;QACjD;UACE,eAAa,CACR,CACO;MACf,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,YAAM,IAAI,EAAC,OAAO,GAAQ,CACtD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() el: HTMLIcTabElement;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\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 @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\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 dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabCreated.emit(this.el);\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 componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el) {\n this.el.focus();\n }\n }\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 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.el.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 {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"]}
@@ -34,9 +34,9 @@ export class TabContext {
34
34
  // Gets tabs and tabpanels with the same context ID
35
35
  // Using querySelector to selector the children in relation to the host
36
36
  this.getChildren = () => {
37
- this.tabGroup = this.host.querySelector("ic-tab-group");
37
+ this.tabGroup = this.el.querySelector("ic-tab-group");
38
38
  this.tabs = Array.from(this.tabGroup.querySelectorAll("ic-tab"));
39
- this.tabPanels = Array.from(this.host.children).filter((child) => child.tagName === "IC-TAB-PANEL");
39
+ this.tabPanels = Array.from(this.el.children).filter((child) => child.tagName === "IC-TAB-PANEL");
40
40
  this.enabledTabs = this.getEnabledTabs();
41
41
  };
42
42
  this.keydownHandler = (event) => {
@@ -418,7 +418,7 @@ export class TabContext {
418
418
  }
419
419
  };
420
420
  }
421
- static get elementRef() { return "host"; }
421
+ static get elementRef() { return "el"; }
422
422
  static get watchers() {
423
423
  return [{
424
424
  "propName": "selectedTabIndex",
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-context.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n private controlledMode: boolean;\n private enabledTabs: HTMLIcTabElement[];\n private focusedTabIndex: number;\n private newTabPanels: HTMLIcTabPanelElement[] = [];\n private newTabs: HTMLIcTabElement[] = [];\n private tabs: HTMLIcTabElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private tabPanels: HTMLIcTabPanelElement[];\n\n @Element() host: HTMLIcTabContextElement;\n\n @State() selectedTab: number | null;\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event({ bubbles: false }) icTabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event({ bubbles: false }) tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n event.stopImmediatePropagation();\n }\n\n @Listen(\"tabCreated\")\n @Listen(\"tabPanelCreated\")\n tabCreatedHandler(ev: CustomEvent): void {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n\n @Listen(\"tabEnabled\")\n tabEnabledHandler(): void {\n this.enabledTabs = this.getEnabledTabs();\n }\n\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n @Method()\n async tabRemovedHandler(hadFocus?: boolean): Promise<void> {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n } else {\n this.setInitialTab();\n }\n\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n\n // Sets attributes to link tab-group, tabs and tab-panels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n private getChildren = (): void => {\n this.tabGroup = this.host.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.host.children).filter(\n (child) => child.tagName === \"IC-TAB-PANEL\"\n ) as HTMLIcTabPanelElement[];\n this.enabledTabs = this.getEnabledTabs();\n };\n\n private keydownHandler = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n } else {\n this.handleKeyBoardNavManual(event);\n }\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n this.icTabSelect.emit({ tabIndex: newIndex });\n this.tabSelect.emit({ tabIndex: newIndex });\n }\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab-context.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Prop,\n State,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport {\n IcActivationTypes,\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nimport {\n IcTabClickEventDetail,\n IcTabSelectEventDetail,\n} from \"../ic-tab/ic-tab.types\";\n\n@Component({\n tag: \"ic-tab-context\",\n})\nexport class TabContext {\n private controlledMode: boolean;\n private enabledTabs: HTMLIcTabElement[];\n private focusedTabIndex: number;\n private newTabPanels: HTMLIcTabPanelElement[] = [];\n private newTabs: HTMLIcTabElement[] = [];\n private tabs: HTMLIcTabElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private tabPanels: HTMLIcTabPanelElement[];\n\n @Element() el: HTMLIcTabContextElement;\n\n @State() selectedTab: number | null;\n\n /**\n * Determines whether tabs have to be manually activated (by pressing 'Enter' or 'Space') when they receive focus using keyboard navigation.\n */\n @Prop() activationType?: IcActivationTypes = \"automatic\";\n\n /**\n * The appearance of the tab context, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n @Watch(\"selectedTabIndex\")\n updateSelectedTab(newValue: number): void {\n this.selectedTab = newValue;\n }\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event({ bubbles: false }) icTabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event({ bubbles: false }) tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n componentDidLoad(): void {\n this.setControlledMode();\n this.getChildren();\n this.linkTabs();\n this.attatchEventListeners();\n this.setInitialTab();\n this.configureTabs();\n }\n\n componentWillUpdate(): void {\n this.configureTabs();\n }\n\n disconnectedCallback(): void {\n this.tabGroup.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n @Listen(\"tabClick\")\n tabClickHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (\n this.selectedTabIndex === undefined &&\n event.detail.contextId === this.contextId\n ) {\n this.selectedTab = event.detail.position;\n }\n this.icTabSelect.emit({\n tabIndex: event.detail.position,\n });\n this.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n event.stopImmediatePropagation();\n }\n\n @Listen(\"tabCreated\")\n @Listen(\"tabPanelCreated\")\n tabCreatedHandler(ev: CustomEvent): void {\n if (this.tabs && this.tabPanels) {\n (ev.detail.setFocus ? this.newTabs : this.newTabPanels).push(ev.detail);\n if (this.newTabs.length === this.newTabPanels.length) {\n this.tabs.push(...this.newTabs);\n this.tabPanels.push(...this.newTabPanels);\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n this.newTabs = [];\n this.newTabPanels = [];\n }\n }\n }\n\n @Listen(\"tabEnabled\")\n tabEnabledHandler(): void {\n this.enabledTabs = this.getEnabledTabs();\n }\n\n /**\n * @internal Used to set tab/tab panel IDs when a tab/tab panel has been removed\n */\n @Method()\n async tabRemovedHandler(hadFocus?: boolean): Promise<void> {\n this.getChildren();\n this.enabledTabs = this.getEnabledTabs();\n this.linkTabs();\n if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {\n this.tabs[this.selectedTab].selected = true;\n this.tabPanels[this.selectedTab].selectedTab =\n this.tabs[this.selectedTab].tabId;\n } else {\n this.setInitialTab();\n }\n\n if (hadFocus) {\n this.tabs[this.selectedTab].setFocus();\n }\n }\n\n // Sets attributes to link tab-group, tabs and tab-panels\n private linkTabs = () => {\n this.tabs.forEach((tab, index) => {\n const tabId = `ic-tab-${index}-context-${this.contextId}`;\n const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;\n const shared = `ic-tab--${index}-context-${this.contextId}`;\n const contextIdAttr = \"context-id\";\n tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(contextIdAttr, this.contextId);\n this.tabGroup.setAttribute(contextIdAttr, this.contextId);\n this.tabPanels[index].setAttribute(\"id\", tabPanelId);\n this.tabPanels[index].panelId = shared;\n this.tabPanels[index].tabPosition = index;\n this.tabPanels[index].setAttribute(\"aria-labelledby\", tabId);\n this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n tab.appearance = this.appearance;\n this.tabPanels[index].appearance = this.appearance;\n }\n });\n\n if (this.appearance === IcThemeForegroundEnum.Light) {\n this.tabGroup.appearance = this.appearance;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n // Using querySelector to selector the children in relation to the host\n private getChildren = (): void => {\n this.tabGroup = this.el.querySelector(\"ic-tab-group\");\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\"));\n this.tabPanels = Array.from(this.el.children).filter(\n (child) => child.tagName === \"IC-TAB-PANEL\"\n ) as HTMLIcTabPanelElement[];\n this.enabledTabs = this.getEnabledTabs();\n };\n\n private keydownHandler = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.handleKeyBoardNavAutomatic(event);\n } else {\n this.handleKeyBoardNavManual(event);\n }\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n this.tabGroup.addEventListener(\"keydown\", this.keydownHandler);\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onIcTabSelect)\n private setControlledMode = (): void => {\n if (this.selectedTabIndex !== undefined) {\n this.controlledMode = true;\n this.selectedTab = this.selectedTabIndex;\n }\n };\n\n // Sets the tab that is selected on initial render\n private setInitialTab = (): void => {\n if (this.controlledMode) {\n this.selectedTab = this.selectedTabIndex;\n this.focusedTabIndex = this.selectedTabIndex;\n } else {\n const firstEnabledTabIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[0].tabId\n );\n this.selectedTab = firstEnabledTabIndex;\n this.focusedTabIndex = firstEnabledTabIndex;\n }\n };\n\n // Passes the selected tab to the tab and tab panel components\n private configureTabs = () => {\n this.enabledTabs.forEach((tab) => {\n tab.selected = tab.tabPosition === this.selectedTab;\n });\n this.tabPanels.forEach((tabPanel) => {\n tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;\n });\n };\n\n private getEnabledTabs = () => {\n return Array.from(this.tabs).filter((child) => !child.disabled);\n };\n\n private getIndexOfEnabledTab = (allTabsIndex: number) => {\n return this.enabledTabs.findIndex(\n (tab) => tab.tabId === this.tabs[allTabsIndex].tabId\n );\n };\n\n // Sets focus on tab and selects it\n private keyboardSelectTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n if (!this.controlledMode) {\n this.selectedTab = newIndex;\n } else {\n this.icTabSelect.emit({ tabIndex: newIndex });\n this.tabSelect.emit({ tabIndex: newIndex });\n }\n };\n\n // Sets focus on tab without selecting it (for manual activation)\n private keyboardFocusTab = (enabledTabIndex: number) => {\n const newIndex = this.tabs.findIndex(\n (tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId\n );\n this.enabledTabs[enabledTabIndex].focus();\n this.focusedTabIndex = newIndex;\n };\n\n private handleKeyBoardNavAutomatic = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardSelectTab(0);\n break;\n case \"End\":\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardSelectTab(enabledTabIndex + 1);\n } else {\n this.keyboardSelectTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardSelectTab(enabledTabIndex - 1);\n } else {\n this.keyboardSelectTab(this.enabledTabs.length - 1);\n }\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n private handleKeyBoardNavManual = (event: KeyboardEvent) => {\n const key = event.key;\n const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);\n let preventDefault = true;\n switch (key) {\n case \"Home\":\n this.keyboardFocusTab(0);\n break;\n case \"End\":\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n break;\n case \"ArrowRight\":\n if (enabledTabIndex < this.enabledTabs.length - 1) {\n this.keyboardFocusTab(enabledTabIndex + 1);\n } else {\n this.keyboardFocusTab(0);\n }\n break;\n case \"ArrowLeft\":\n if (enabledTabIndex > 0) {\n this.keyboardFocusTab(enabledTabIndex - 1);\n } else {\n this.keyboardFocusTab(this.enabledTabs.length - 1);\n }\n break;\n case \"Enter\":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n case \" \":\n this.keyboardSelectTab(this.focusedTabIndex);\n break;\n default:\n preventDefault = false;\n }\n if (preventDefault) event.preventDefault();\n };\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
@@ -15,6 +15,33 @@ const testTabs = `
15
15
  <ic-tab-panel>Tab panel 3</ic-tab-panel>
16
16
  </ic-tab-context>
17
17
  `;
18
+ const testTabsResponsive = `
19
+ <style>
20
+ #container{
21
+ width: 300px;
22
+ }
23
+ </style>
24
+ <div id="container">
25
+ <ic-tab-context>
26
+ <ic-tab-group label="Example tab group">
27
+ <ic-tab>One</ic-tab>
28
+ <ic-tab>Two</ic-tab>
29
+ <ic-tab id="tab3">Three</ic-tab>
30
+ <ic-tab>Four</ic-tab>
31
+ <ic-tab>Five</ic-tab>
32
+ <ic-tab>Six</ic-tab>
33
+ <ic-tab>Seven</ic-tab>
34
+ </ic-tab-group>
35
+ <ic-tab-panel>Tab One</ic-tab-panel>
36
+ <ic-tab-panel>Tab Two</ic-tab-panel>
37
+ <ic-tab-panel>Tab Three</ic-tab-panel>
38
+ <ic-tab-panel>Tab Four</ic-tab-panel>
39
+ <ic-tab-panel>Tab Five</ic-tab-panel>
40
+ <ic-tab-panel>Tab Six</ic-tab-panel>
41
+ <ic-tab-panel>Tab Seven</ic-tab-panel>
42
+ </ic-tab-context>
43
+ </div>
44
+ `;
18
45
  describe("ic-tab-context component", () => {
19
46
  it("should display a tab panel when its corresponding tab is clicked", async () => {
20
47
  const page = await newE2EPage({ html: testTabs });
@@ -313,5 +340,13 @@ describe("ic-tab-context component", () => {
313
340
  tabIndex: 1,
314
341
  });
315
342
  });
343
+ it("should select tab and load content when clicked - responsive tabs", async () => {
344
+ const page = await newE2EPage({ html: testTabsResponsive });
345
+ await page.waitForChanges();
346
+ const tab3 = await page.find('ic-tab[tab-id="ic-tab--2-context-default"]');
347
+ await tab3.click();
348
+ await page.waitForChanges();
349
+ expect(tab3).toHaveClass("selected");
350
+ });
316
351
  });
317
352
  //# sourceMappingURL=ic-tab-context.e2e.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-context.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-tab-context/test/basic/ic-tab-context.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst testTabs = `\n<ic-tab-context>\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n</ic-tab-context>\n`;\n\ndescribe(\"ic-tab-context component\", () => {\n it(\"should display a tab panel when its corresponding tab is clicked\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should hide the other tab panels when a tab is clicked\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should move focus to the next tab when the right arrow key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-1-context-default\");\n });\n\n it(\"should move focus to the previous tab when the left arrow key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the first tab when the right arrow key is pressed if currently on the last tab\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab2 = await page.find('ic-tab[tab-id=\"ic-tab--2-context-default\"]');\n await tab2.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the last tab when the left arrow key is pressed if currently on the first tab\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should move focus to the first tab when the Home key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab2 = await page.find('ic-tab[tab-id=\"ic-tab--2-context-default\"]');\n await tab2.click();\n await page.waitForChanges();\n await page.keyboard.press(\"Home\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the last tab when the End key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"End\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should not allow a disabled tab to be selected\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context>\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab disabled>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should display the tab panels automatically using the arrow keys when using automatic activation\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).toHaveAttribute(\"hidden\");\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should not display the tab panels automatically using the arrow keys when using manual activation\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context activation-type=\"manual\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).not.toHaveAttribute(\"hidden\");\n expect(tabPanel1).toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should set the selected tab in controlled mode to be the value that is passed in\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context selected-tab-index=\"1\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should call icTabSelect event in controlled mode when clicked\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context selected-tab-index=\"1\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tabs = await page.find(\"ic-tab-context\");\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n const tabSelect = await tabs.spyOnEvent(\"icTabSelect\");\n await tab1.click();\n await page.waitForChanges();\n expect(tabSelect).toHaveReceivedEventDetail({\n tabIndex: 1,\n });\n });\n\n it(\"should move focus to next tab if focused tab is removed\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n\n let focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-1-context-default\");\n\n await page.evaluate(() => {\n const tabGroup = document.querySelector(\"ic-tab-group\");\n const allTabs = tabGroup.querySelectorAll(\"ic-tab\");\n\n const tabContext = document.querySelector(\"ic-tab-context\");\n const allTabPanels = tabContext.querySelectorAll(\"ic-tab-panel\");\n\n allTabs[allTabs.length - 2].remove();\n allTabPanels[allTabPanels.length - 2].remove();\n });\n\n await waitForTimeout(250);\n\n focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-1-context-default\");\n\n const focusedTab = await page.find('ic-tab[id=\"ic-tab-1-context-default\"]');\n const tabPanel = await page.find(\n 'ic-tab-panel[id*=\"ic-tab-panel-1-context-default\"]'\n );\n\n expect(focusedTab.textContent).toBe(\"Three\");\n expect(tabPanel).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should move focus to first tab if last tab is focused and removed\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n\n let focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-2-context-default\");\n\n await page.evaluate(() => {\n const tabGroup = document.querySelector(\"ic-tab-group\");\n const allTabs = tabGroup.querySelectorAll(\"ic-tab\");\n\n const tabContext = document.querySelector(\"ic-tab-context\");\n const allTabPanels = tabContext.querySelectorAll(\"ic-tab-panel\");\n\n allTabs[allTabs.length - 1].remove();\n allTabPanels[allTabPanels.length - 1].remove();\n });\n\n await waitForTimeout(250);\n\n focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-0-context-default\");\n\n const focusedTab = await page.find('ic-tab[id=\"ic-tab-0-context-default\"]');\n const tabPanel = await page.find(\n 'ic-tab-panel[id*=\"ic-tab-panel-0-context-default\"]'\n );\n\n expect(focusedTab.textContent).toBe(\"One\");\n expect(tabPanel).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should not trigger icTabSelect event in parent tab\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context id='parent'>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>\n <ic-tab-context context-id='child' id='nested'>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n </ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const mainTabs = await page.find('ic-tab-context[context-id=\"default\"]');\n const nestedTabs = await page.find('ic-tab-context[context-id=\"child\"]');\n\n const parentTabSelect = await mainTabs.spyOnEvent(\"icTabSelect\");\n const nestedTabSelect = await nestedTabs.spyOnEvent(\"icTabSelect\");\n\n const nestedTab1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"] ic-tab[tab-id=\"ic-tab--1-context-child\"]'\n );\n\n await nestedTab1.click();\n await page.waitForChanges();\n\n expect(parentTabSelect).not.toHaveReceivedEvent();\n expect(nestedTabSelect).toHaveReceivedEventDetail({\n tabIndex: 1,\n });\n });\n});\n"]}
1
+ {"version":3,"file":"ic-tab-context.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-tab-context/test/basic/ic-tab-context.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,SAAS,CAAC,GAAG,EAAE;EACb,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG;;;;;;;;;;;CAWhB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC;AAEF,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;EACxC,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;IAChF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EAClD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;IACtE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;IACrF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;IACxF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;IACnH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;IAClH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;;KAWP;KACA,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;EAC5D,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;IAChH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mGAAmG,EAAE,KAAK,IAAI,EAAE;IACjH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;;KAWP;KACA,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;IAChG,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;;KAWP;KACA,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EAClD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;IAC7E,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;;KAWP;KACA,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,SAAS,CAAC,CAAC,yBAAyB,CAAC;MAC1C,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;IACvE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;OAUL;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;MACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;MAEpD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;MAC5D,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;MAEjE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;MACrC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,oDAAoD,CACrD,CAAC;IAEF,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACjF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;OAUL;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,IAAI,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAExE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;MACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;MACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;MAEpD,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;MAC5D,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;MAEjE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;MACrC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAEpE,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEtD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,oDAAoD,CACrD,CAAC;IAEF,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;MAC5B,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;OAqBL;KACF,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IAEzE,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAChC,6FAA6F,CAC9F,CAAC;IAEF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IAClD,MAAM,CAAC,eAAe,CAAC,CAAC,yBAAyB,CAAC;MAChD,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;IACjF,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC5D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;EACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nbeforeAll(() => {\n jest.spyOn(console, \"warn\").mockImplementation(jest.fn());\n});\n\nconst testTabs = `\n<ic-tab-context>\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n</ic-tab-context>\n`;\n\nconst testTabsResponsive = `\n<style>\n #container{\n width: 300px;\n }\n</style>\n<div id=\"container\">\n <ic-tab-context>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab id=\"tab3\">Three</ic-tab>\n <ic-tab>Four</ic-tab>\n <ic-tab>Five</ic-tab>\n <ic-tab>Six</ic-tab>\n <ic-tab>Seven</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n <ic-tab-panel>Tab Four</ic-tab-panel>\n <ic-tab-panel>Tab Five</ic-tab-panel>\n <ic-tab-panel>Tab Six</ic-tab-panel>\n <ic-tab-panel>Tab Seven</ic-tab-panel>\n </ic-tab-context>\n</div>\n`;\n\ndescribe(\"ic-tab-context component\", () => {\n it(\"should display a tab panel when its corresponding tab is clicked\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should hide the other tab panels when a tab is clicked\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should move focus to the next tab when the right arrow key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-1-context-default\");\n });\n\n it(\"should move focus to the previous tab when the left arrow key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n await tab1.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the first tab when the right arrow key is pressed if currently on the last tab\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab2 = await page.find('ic-tab[tab-id=\"ic-tab--2-context-default\"]');\n await tab2.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the last tab when the left arrow key is pressed if currently on the first tab\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should move focus to the first tab when the Home key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab2 = await page.find('ic-tab[tab-id=\"ic-tab--2-context-default\"]');\n await tab2.click();\n await page.waitForChanges();\n await page.keyboard.press(\"Home\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-0-context-default\");\n });\n\n it(\"should move focus to the last tab when the End key is pressed\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"End\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should not allow a disabled tab to be selected\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context>\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab disabled>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const activeElement = await page.evaluate(() => document.activeElement.id);\n expect(activeElement).toEqual(\"ic-tab-2-context-default\");\n });\n\n it(\"should display the tab panels automatically using the arrow keys when using automatic activation\", async () => {\n const page = await newE2EPage({ html: testTabs });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).toHaveAttribute(\"hidden\");\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should not display the tab panels automatically using the arrow keys when using manual activation\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context activation-type=\"manual\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowLeft\");\n await page.waitForChanges();\n const tabPanel0 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"]'\n );\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n const tabPanel2 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--2-context-default\"]'\n );\n expect(tabPanel0).not.toHaveAttribute(\"hidden\");\n expect(tabPanel1).toHaveAttribute(\"hidden\");\n expect(tabPanel2).toHaveAttribute(\"hidden\");\n });\n\n it(\"should set the selected tab in controlled mode to be the value that is passed in\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context selected-tab-index=\"1\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tabPanel1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--1-context-default\"]'\n );\n expect(tabPanel1).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should call icTabSelect event in controlled mode when clicked\", async () => {\n const page = await newE2EPage({\n html: `\n <ic-tab-context selected-tab-index=\"1\">\n <ic-tab-group label=\"Tabs e2e label\">\n <ic-tab>Tab 1</ic-tab>\n <ic-tab>Tab 2</ic-tab>\n <ic-tab>Tab 3</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab panel 1</ic-tab-panel>\n <ic-tab-panel>Tab panel 2</ic-tab-panel>\n <ic-tab-panel>Tab panel 3</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n const tabs = await page.find(\"ic-tab-context\");\n const tab1 = await page.find('ic-tab[tab-id=\"ic-tab--1-context-default\"]');\n const tabSelect = await tabs.spyOnEvent(\"icTabSelect\");\n await tab1.click();\n await page.waitForChanges();\n expect(tabSelect).toHaveReceivedEventDetail({\n tabIndex: 1,\n });\n });\n\n it(\"should move focus to next tab if focused tab is removed\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n\n let focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-1-context-default\");\n\n await page.evaluate(() => {\n const tabGroup = document.querySelector(\"ic-tab-group\");\n const allTabs = tabGroup.querySelectorAll(\"ic-tab\");\n\n const tabContext = document.querySelector(\"ic-tab-context\");\n const allTabPanels = tabContext.querySelectorAll(\"ic-tab-panel\");\n\n allTabs[allTabs.length - 2].remove();\n allTabPanels[allTabPanels.length - 2].remove();\n });\n\n await waitForTimeout(250);\n\n focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-1-context-default\");\n\n const focusedTab = await page.find('ic-tab[id=\"ic-tab-1-context-default\"]');\n const tabPanel = await page.find(\n 'ic-tab-panel[id*=\"ic-tab-panel-1-context-default\"]'\n );\n\n expect(focusedTab.textContent).toBe(\"Three\");\n expect(tabPanel).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should move focus to first tab if last tab is focused and removed\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const tab0 = await page.find('ic-tab[tab-id=\"ic-tab--0-context-default\"]');\n await tab0.click();\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n await page.keyboard.press(\"ArrowRight\");\n await page.waitForChanges();\n\n let focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-2-context-default\");\n\n await page.evaluate(() => {\n const tabGroup = document.querySelector(\"ic-tab-group\");\n const allTabs = tabGroup.querySelectorAll(\"ic-tab\");\n\n const tabContext = document.querySelector(\"ic-tab-context\");\n const allTabPanels = tabContext.querySelectorAll(\"ic-tab-panel\");\n\n allTabs[allTabs.length - 1].remove();\n allTabPanels[allTabPanels.length - 1].remove();\n });\n\n await waitForTimeout(250);\n\n focusedTabId = await page.evaluate(() => document.activeElement.id);\n\n expect(focusedTabId).toBe(\"ic-tab-0-context-default\");\n\n const focusedTab = await page.find('ic-tab[id=\"ic-tab-0-context-default\"]');\n const tabPanel = await page.find(\n 'ic-tab-panel[id*=\"ic-tab-panel-0-context-default\"]'\n );\n\n expect(focusedTab.textContent).toBe(\"One\");\n expect(tabPanel).not.toHaveAttribute(\"hidden\");\n });\n\n it(\"should not trigger icTabSelect event in parent tab\", async () => {\n const page = await newE2EPage({\n html: `<ic-tab-context id='parent'>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>\n <ic-tab-context context-id='child' id='nested'>\n <ic-tab-group label=\"Example tab group\">\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-group>\n <ic-tab-panel>Tab One</ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n </ic-tab-panel>\n <ic-tab-panel>Tab Two</ic-tab-panel>\n <ic-tab-panel>Tab Three</ic-tab-panel>\n </ic-tab-context>\n `,\n });\n\n const mainTabs = await page.find('ic-tab-context[context-id=\"default\"]');\n const nestedTabs = await page.find('ic-tab-context[context-id=\"child\"]');\n\n const parentTabSelect = await mainTabs.spyOnEvent(\"icTabSelect\");\n const nestedTabSelect = await nestedTabs.spyOnEvent(\"icTabSelect\");\n\n const nestedTab1 = await page.find(\n 'ic-tab-panel[panel-id=\"ic-tab--0-context-default\"] ic-tab[tab-id=\"ic-tab--1-context-child\"]'\n );\n\n await nestedTab1.click();\n await page.waitForChanges();\n\n expect(parentTabSelect).not.toHaveReceivedEvent();\n expect(nestedTabSelect).toHaveReceivedEventDetail({\n tabIndex: 1,\n });\n });\n\n it(\"should select tab and load content when clicked - responsive tabs\", async () => {\n const page = await newE2EPage({ html: testTabsResponsive });\n await page.waitForChanges();\n\n const tab3 = await page.find('ic-tab[tab-id=\"ic-tab--2-context-default\"]');\n await tab3.click();\n await page.waitForChanges();\n expect(tab3).toHaveClass(\"selected\");\n });\n});\n"]}
@@ -18,7 +18,7 @@ export class TabGroup {
18
18
  ["inline"]: this.inline,
19
19
  } }, h("ic-horizontal-scroll", { appearance: appearance === IcThemeForegroundEnum.Dark
20
20
  ? IcThemeForegroundEnum.Default
21
- : appearance }, h("div", { class: "tabs-container" }, h("slot", null)))));
21
+ : appearance, "focus-trigger": "tabFocus" }, h("div", { class: "tabs-container" }, h("slot", null)))));
22
22
  }
23
23
  static get is() { return "ic-tab-group"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -120,6 +120,5 @@ export class TabGroup {
120
120
  }
121
121
  };
122
122
  }
123
- static get elementRef() { return "host"; }
124
123
  }
125
124
  //# sourceMappingURL=ic-tab-group.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-group.js","sourceRoot":"","sources":["../../../src/components/ic-tab-group/ic-tab-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAS3B,MAAM,OAAO,QAAQ;;sBAM+B,MAAM;qBAMV,SAAS;kBAKX,KAAK;;;EAOjD,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,WAAW,CACZ,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEnC,OAAO,CACL,EAAC,IAAI,IACH,IAAI,EAAC,SAAS,gBACF,KAAK,EACjB,KAAK,EAAE;QACL,CAAC,OAAO,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;QACrD,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM;OACxB;MAED,4BACE,UAAU,EACR,UAAU,KAAK,qBAAqB,CAAC,IAAI;UACvC,CAAC,CAAC,qBAAqB,CAAC,OAAO;UAC/B,CAAC,CAAC,UAAU;QAGhB,WAAK,KAAK,EAAC,gBAAgB;UACzB,eAAa,CACT,CACe,CAClB,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\n\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-group\",\n styleUrl: \"ic-tab-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TabGroup {\n @Element() host: HTMLIcTabGroupElement;\n\n /**\n * @internal The appearance of the tab group, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @deprecated This is no longer required.\n * The context id is passed down from `ic-tab-context`\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the tabs and tab panels will be positioned separately.\n */\n @Prop({ reflect: true }) inline?: boolean = false;\n\n /**\n * The label to describe the purpose of the set of tabs to screen reader users.\n */\n @Prop() label!: string;\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tab Group\"\n );\n }\n\n render() {\n const { appearance, label } = this;\n\n return (\n <Host\n role=\"tablist\"\n aria-label={label}\n class={{\n [\"light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"inline\"]: this.inline,\n }}\n >\n <ic-horizontal-scroll\n appearance={\n appearance === IcThemeForegroundEnum.Dark\n ? IcThemeForegroundEnum.Default\n : appearance\n }\n >\n <div class=\"tabs-container\">\n <slot></slot>\n </div>\n </ic-horizontal-scroll>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab-group.js","sourceRoot":"","sources":["../../../src/components/ic-tab-group/ic-tab-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAEL,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAS3B,MAAM,OAAO,QAAQ;;sBAI+B,MAAM;qBAMV,SAAS;kBAKX,KAAK;;;EAOjD,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,WAAW,CACZ,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEnC,OAAO,CACL,EAAC,IAAI,IACH,IAAI,EAAC,SAAS,gBACF,KAAK,EACjB,KAAK,EAAE;QACL,CAAC,OAAO,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;QACrD,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM;OACxB;MAED,4BACE,UAAU,EACR,UAAU,KAAK,qBAAqB,CAAC,IAAI;UACvC,CAAC,CAAC,qBAAqB,CAAC,OAAO;UAC/B,CAAC,CAAC,UAAU,mBAEF,UAAU;QAExB,WAAK,KAAK,EAAC,gBAAgB;UACzB,eAAa,CACT,CACe,CAClB,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Host, Prop, h } from \"@stencil/core\";\n\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-group\",\n styleUrl: \"ic-tab-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class TabGroup {\n /**\n * @internal The appearance of the tab group, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @deprecated This is no longer required.\n * The context id is passed down from `ic-tab-context`\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the tabs and tab panels will be positioned separately.\n */\n @Prop({ reflect: true }) inline?: boolean = false;\n\n /**\n * The label to describe the purpose of the set of tabs to screen reader users.\n */\n @Prop() label!: string;\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tab Group\"\n );\n }\n\n render() {\n const { appearance, label } = this;\n\n return (\n <Host\n role=\"tablist\"\n aria-label={label}\n class={{\n [\"light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"inline\"]: this.inline,\n }}\n >\n <ic-horizontal-scroll\n appearance={\n appearance === IcThemeForegroundEnum.Dark\n ? IcThemeForegroundEnum.Default\n : appearance\n }\n focus-trigger=\"tabFocus\"\n >\n <div class=\"tabs-container\">\n <slot></slot>\n </div>\n </ic-horizontal-scroll>\n </Host>\n );\n }\n}\n"]}