@ukic/web-components 2.0.0-alpha.125 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (595) hide show
  1. package/README.md +173 -0
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-ea79c7b0.js → helpers-d0eeccf0.js} +26 -20
  4. package/dist/cjs/helpers-d0eeccf0.js.map +1 -0
  5. package/dist/cjs/ic-alert.cjs.entry.js +5 -4
  6. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-back-to-top.cjs.entry.js +3 -2
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  9. package/dist/cjs/{ic-breadcrumbs.cjs.entry.js → ic-breadcrumb-group.cjs.entry.js} +7 -6
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -0
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js +3 -2
  12. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-button_3.cjs.entry.js +26 -30
  14. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-card.cjs.entry.js +2 -1
  16. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -2
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +13 -2
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-data-entity.cjs.entry.js +6 -6
  22. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +6 -5
  24. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-divider.cjs.entry.js +3 -2
  26. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +12 -11
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-footer-link.cjs.entry.js +8 -7
  30. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-footer.cjs.entry.js +16 -15
  32. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-hero.cjs.entry.js +9 -8
  34. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -8
  36. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -4
  38. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-link.cjs.entry.js +11 -10
  40. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +8 -7
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -1
  44. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -2
  46. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-menu.cjs.entry.js +3 -2
  48. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-page-header.cjs.entry.js +6 -5
  50. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-radio-group.cjs.entry.js +3 -2
  52. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +17 -3
  54. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-search-bar.cjs.entry.js +15 -16
  56. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-select.cjs.entry.js +25 -13
  58. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -3
  60. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-skeleton.cjs.entry.js +10 -10
  62. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-status-tag.cjs.entry.js +9 -8
  64. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-step.cjs.entry.js +2 -1
  66. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  68. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-switch.cjs.entry.js +21 -10
  70. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-tab-context.cjs.entry.js +13 -11
  72. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-tab-group.cjs.entry.js +146 -0
  74. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -0
  75. package/dist/cjs/ic-tab-panel.cjs.entry.js +8 -4
  76. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-tab.cjs.entry.js +6 -5
  78. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-text-field.cjs.entry.js +18 -10
  80. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-theme.cjs.entry.js +2 -1
  82. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-top-navigation.cjs.entry.js +7 -6
  84. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-typography.cjs.entry.js +4 -4
  86. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  87. package/dist/cjs/index-3ef30d9d.js +4 -4
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/cjs/types-3eb02246.js +16 -0
  90. package/dist/cjs/types-3eb02246.js.map +1 -0
  91. package/dist/collection/collection-manifest.json +2 -2
  92. package/dist/collection/components/ic-alert/ic-alert.css +1 -6
  93. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  94. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  95. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +1 -1
  96. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  97. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -2
  98. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs-test-examples.js → ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js} +7 -7
  99. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.js.map +1 -0
  100. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.css → ic-breadcrumb-group/ic-breadcrumb-group.css} +1 -0
  101. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.js → ic-breadcrumb-group/ic-breadcrumb-group.js} +5 -5
  102. package/dist/{core/p-42876f02.entry.js.map → collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map} +1 -1
  103. package/dist/collection/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.js → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js} +6 -6
  104. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.js.map +1 -0
  105. package/dist/collection/components/ic-button/ic-button.css +5 -5
  106. package/dist/collection/components/ic-button/ic-button.js +22 -52
  107. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  108. package/dist/collection/components/ic-button/ic-button.types.js.map +1 -1
  109. package/dist/collection/components/ic-checkbox/ic-checkbox.css +7 -1
  110. package/dist/collection/components/ic-checkbox/ic-checkbox.js +17 -2
  111. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  112. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +4 -4
  113. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  114. package/dist/collection/components/ic-data-entity/ic-data-entity.css +2 -2
  115. package/dist/collection/components/ic-data-entity/ic-data-entity.js +8 -8
  116. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  117. package/dist/collection/components/ic-data-row/ic-data-row.css +9 -1
  118. package/dist/collection/components/ic-data-row/ic-data-row.js +6 -6
  119. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  120. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  121. package/dist/collection/components/ic-footer/ic-footer.js +14 -14
  122. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  123. package/dist/collection/components/ic-footer/ic-footer.types.js.map +1 -1
  124. package/dist/collection/components/ic-footer-link/ic-footer-link.css +3 -3
  125. package/dist/collection/components/ic-footer-link/ic-footer-link.js +5 -5
  126. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  127. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +8 -8
  128. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +10 -10
  129. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  130. package/dist/collection/components/ic-hero/ic-hero.css +29 -17
  131. package/dist/collection/components/ic-hero/ic-hero.js +9 -9
  132. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  133. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +2 -2
  134. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +6 -6
  135. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  136. package/dist/collection/components/ic-link/ic-link.css +1 -1
  137. package/dist/collection/components/ic-link/ic-link.js +12 -9
  138. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  139. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +2 -2
  140. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +26 -25
  141. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  142. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  143. package/dist/collection/components/ic-menu/ic-menu.css +2 -2
  144. package/dist/collection/components/ic-menu/ic-menu.js +4 -4
  145. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  146. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +7 -7
  147. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  148. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +1 -1
  149. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  150. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +1 -1
  151. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  152. package/dist/collection/components/ic-page-header/ic-page-header.css +10 -1
  153. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  154. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  155. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  156. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  157. package/dist/collection/components/ic-radio-option/ic-radio-option.css +8 -2
  158. package/dist/collection/components/ic-radio-option/ic-radio-option.js +22 -4
  159. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  160. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  161. package/dist/collection/components/ic-search-bar/ic-search-bar.js +11 -31
  162. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  163. package/dist/collection/components/ic-select/ic-select.css +2 -2
  164. package/dist/collection/components/ic-select/ic-select.js +24 -12
  165. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  166. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +1 -1
  167. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  168. package/dist/collection/components/ic-skeleton/ic-skeleton.css +4 -4
  169. package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -14
  170. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  171. package/dist/collection/components/ic-skeleton/ic-skeleton.types.js.map +1 -1
  172. package/dist/collection/components/ic-status-tag/ic-status-tag.css +9 -9
  173. package/dist/collection/components/ic-status-tag/ic-status-tag.js +14 -14
  174. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  175. package/dist/collection/components/ic-status-tag/ic-status-tag.types.js.map +1 -1
  176. package/dist/collection/components/ic-switch/ic-switch.css +6 -6
  177. package/dist/collection/components/ic-switch/ic-switch.js +27 -16
  178. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  179. package/dist/collection/components/ic-tab/ic-tab.css +1 -1
  180. package/dist/collection/components/ic-tab/ic-tab.js +17 -11
  181. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  182. package/dist/collection/components/ic-tab-context/ic-tab-context.js +26 -19
  183. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  184. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js +2 -2
  185. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js.map +1 -1
  186. package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/left-arrow.svg +0 -0
  187. package/dist/collection/components/{ic-tab-list → ic-tab-group}/assets/right-arrow.svg +0 -0
  188. package/dist/collection/components/{ic-tab-list/ic-tab-list.css → ic-tab-group/ic-tab-group.css} +3 -3
  189. package/dist/collection/components/{ic-tab-list/ic-tab-list.js → ic-tab-group/ic-tab-group.js} +37 -31
  190. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -0
  191. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +4 -0
  192. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +32 -2
  193. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  194. package/dist/collection/components/ic-text-field/ic-text-field.js +17 -27
  195. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  196. package/dist/collection/components/ic-tooltip/ic-tooltip.css +4 -4
  197. package/dist/collection/components/ic-tooltip/ic-tooltip.js +6 -6
  198. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  199. package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js +1 -1
  200. package/dist/collection/components/ic-tooltip/ic-tooltip.test.a11y.js.map +1 -1
  201. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  202. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  203. package/dist/collection/components/ic-typography/ic-typography.css +12 -12
  204. package/dist/collection/components/ic-typography/ic-typography.js +5 -5
  205. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  206. package/dist/collection/utils/helpers.js +15 -0
  207. package/dist/collection/utils/helpers.js.map +1 -1
  208. package/dist/collection/utils/types.js.map +1 -1
  209. package/dist/components/helpers.js +17 -13
  210. package/dist/components/helpers.js.map +1 -1
  211. package/dist/components/ic-alert.js +4 -3
  212. package/dist/components/ic-alert.js.map +1 -1
  213. package/dist/components/ic-back-to-top.js +1 -1
  214. package/dist/components/ic-back-to-top.js.map +1 -1
  215. package/dist/components/{ic-breadcrumbs.d.ts → ic-breadcrumb-group.d.ts} +4 -4
  216. package/dist/components/{ic-breadcrumbs.js → ic-breadcrumb-group.js} +10 -10
  217. package/dist/{cjs/ic-breadcrumbs.cjs.entry.js.map → components/ic-breadcrumb-group.js.map} +1 -1
  218. package/dist/components/ic-breadcrumb2.js +1 -1
  219. package/dist/components/ic-breadcrumb2.js.map +1 -1
  220. package/dist/components/ic-button2.js +19 -25
  221. package/dist/components/ic-button2.js.map +1 -1
  222. package/dist/components/ic-checkbox-group.js +3 -3
  223. package/dist/components/ic-checkbox-group.js.map +1 -1
  224. package/dist/components/ic-checkbox.js +15 -4
  225. package/dist/components/ic-checkbox.js.map +1 -1
  226. package/dist/components/ic-data-entity.js +7 -7
  227. package/dist/components/ic-data-entity.js.map +1 -1
  228. package/dist/components/ic-data-row.js +5 -5
  229. package/dist/components/ic-data-row.js.map +1 -1
  230. package/dist/components/ic-divider2.js +2 -1
  231. package/dist/components/ic-divider2.js.map +1 -1
  232. package/dist/components/ic-footer-link-group.js +12 -12
  233. package/dist/components/ic-footer-link-group.js.map +1 -1
  234. package/dist/components/ic-footer-link.js +7 -7
  235. package/dist/components/ic-footer-link.js.map +1 -1
  236. package/dist/components/ic-footer.js +14 -13
  237. package/dist/components/ic-footer.js.map +1 -1
  238. package/dist/components/ic-hero.js +9 -8
  239. package/dist/components/ic-hero.js.map +1 -1
  240. package/dist/components/ic-input-component-container2.js +7 -6
  241. package/dist/components/ic-input-component-container2.js.map +1 -1
  242. package/dist/components/ic-input-validation2.js +2 -1
  243. package/dist/components/ic-input-validation2.js.map +1 -1
  244. package/dist/components/ic-link2.js +10 -9
  245. package/dist/components/ic-link2.js.map +1 -1
  246. package/dist/components/ic-loading-indicator2.js +8 -7
  247. package/dist/components/ic-loading-indicator2.js.map +1 -1
  248. package/dist/components/ic-menu2.js +3 -3
  249. package/dist/components/ic-menu2.js.map +1 -1
  250. package/dist/components/ic-navigation-button.js +9 -8
  251. package/dist/components/ic-navigation-button.js.map +1 -1
  252. package/dist/components/ic-navigation-group.js +1 -1
  253. package/dist/components/ic-navigation-item.js +2 -2
  254. package/dist/components/ic-navigation-item.js.map +1 -1
  255. package/dist/components/ic-navigation-menu2.js +2 -2
  256. package/dist/components/ic-navigation-menu2.js.map +1 -1
  257. package/dist/components/ic-page-header.js +5 -5
  258. package/dist/components/ic-page-header.js.map +1 -1
  259. package/dist/components/ic-radio-group.js +3 -3
  260. package/dist/components/ic-radio-group.js.map +1 -1
  261. package/dist/components/ic-radio-option.js +20 -6
  262. package/dist/components/ic-radio-option.js.map +1 -1
  263. package/dist/components/ic-search-bar.js +12 -14
  264. package/dist/components/ic-search-bar.js.map +1 -1
  265. package/dist/components/ic-select.js +23 -10
  266. package/dist/components/ic-select.js.map +1 -1
  267. package/dist/components/ic-side-navigation.js +3 -2
  268. package/dist/components/ic-side-navigation.js.map +1 -1
  269. package/dist/components/ic-skeleton.js +11 -11
  270. package/dist/components/ic-skeleton.js.map +1 -1
  271. package/dist/components/ic-status-tag.js +9 -9
  272. package/dist/components/ic-status-tag.js.map +1 -1
  273. package/dist/components/ic-switch.js +23 -12
  274. package/dist/components/ic-switch.js.map +1 -1
  275. package/dist/components/ic-tab-context.js +14 -12
  276. package/dist/components/ic-tab-context.js.map +1 -1
  277. package/dist/components/{ic-tab-list.d.ts → ic-tab-group.d.ts} +4 -4
  278. package/dist/components/{ic-tab-list.js → ic-tab-group.js} +30 -29
  279. package/dist/components/ic-tab-group.js.map +1 -0
  280. package/dist/components/ic-tab-panel.js +9 -4
  281. package/dist/components/ic-tab-panel.js.map +1 -1
  282. package/dist/components/ic-tab.js +6 -5
  283. package/dist/components/ic-tab.js.map +1 -1
  284. package/dist/components/ic-text-field2.js +15 -7
  285. package/dist/components/ic-text-field2.js.map +1 -1
  286. package/dist/components/ic-theme.js +1 -1
  287. package/dist/components/ic-tooltip2.js +5 -5
  288. package/dist/components/ic-tooltip2.js.map +1 -1
  289. package/dist/components/ic-top-navigation.js +6 -5
  290. package/dist/components/ic-top-navigation.js.map +1 -1
  291. package/dist/components/ic-typography2.js +5 -5
  292. package/dist/components/ic-typography2.js.map +1 -1
  293. package/dist/components/index.d.ts +2 -2
  294. package/dist/components/index.js +2 -2
  295. package/dist/components/types.js +16 -0
  296. package/dist/components/types.js.map +1 -0
  297. package/dist/core/core.esm.js +1 -1
  298. package/dist/core/core.esm.js.map +1 -1
  299. package/dist/core/p-037273aa.entry.js +2 -0
  300. package/dist/core/{p-0cf51da5.entry.js.map → p-037273aa.entry.js.map} +1 -1
  301. package/dist/core/{p-b9253509.entry.js → p-0992a2ee.entry.js} +2 -2
  302. package/dist/core/p-0992a2ee.entry.js.map +1 -0
  303. package/dist/core/p-0d63bfe4.entry.js +2 -0
  304. package/dist/core/p-0d63bfe4.entry.js.map +1 -0
  305. package/dist/core/p-0e1ae2a3.entry.js +2 -0
  306. package/dist/core/p-0e1ae2a3.entry.js.map +1 -0
  307. package/dist/core/p-155114db.entry.js +2 -0
  308. package/dist/core/p-155114db.entry.js.map +1 -0
  309. package/dist/core/p-16ab85c2.entry.js +2 -0
  310. package/dist/core/p-16ab85c2.entry.js.map +1 -0
  311. package/dist/core/p-17d0d631.entry.js +2 -0
  312. package/dist/core/p-17d0d631.entry.js.map +1 -0
  313. package/dist/core/p-1b619302.entry.js +2 -0
  314. package/dist/core/p-1b619302.entry.js.map +1 -0
  315. package/dist/core/p-2f29e74d.entry.js +2 -0
  316. package/dist/core/p-2f29e74d.entry.js.map +1 -0
  317. package/dist/core/p-3c6defd7.entry.js +2 -0
  318. package/dist/core/p-3c6defd7.entry.js.map +1 -0
  319. package/dist/core/p-48029498.entry.js +2 -0
  320. package/dist/core/{p-36e9f6ff.entry.js.map → p-48029498.entry.js.map} +1 -1
  321. package/dist/core/p-4b6a55bb.entry.js +2 -0
  322. package/dist/core/{p-01450166.entry.js.map → p-4b6a55bb.entry.js.map} +1 -1
  323. package/dist/core/p-54b77947.entry.js +2 -0
  324. package/dist/core/{p-a334ed34.entry.js.map → p-54b77947.entry.js.map} +1 -1
  325. package/dist/core/p-59041cfc.entry.js +2 -0
  326. package/dist/core/{p-e2304886.entry.js.map → p-59041cfc.entry.js.map} +1 -1
  327. package/dist/core/p-6009c5bc.entry.js +2 -0
  328. package/dist/core/{p-3a7725ed.entry.js.map → p-6009c5bc.entry.js.map} +1 -1
  329. package/dist/core/p-6d0eaaeb.entry.js +2 -0
  330. package/dist/core/p-6d0eaaeb.entry.js.map +1 -0
  331. package/dist/core/p-6f57b13c.js +2 -0
  332. package/dist/core/p-6f57b13c.js.map +1 -0
  333. package/dist/core/p-7577c6a3.entry.js +2 -0
  334. package/dist/core/p-7577c6a3.entry.js.map +1 -0
  335. package/dist/core/p-7612cfb0.entry.js +2 -0
  336. package/dist/core/p-7612cfb0.entry.js.map +1 -0
  337. package/dist/core/p-7dbb637f.entry.js +2 -0
  338. package/dist/core/p-7dbb637f.entry.js.map +1 -0
  339. package/dist/core/p-89d46b9b.entry.js +2 -0
  340. package/dist/core/{p-bbff1667.entry.js.map → p-89d46b9b.entry.js.map} +1 -1
  341. package/dist/core/p-972f4e69.entry.js +2 -0
  342. package/dist/core/p-972f4e69.entry.js.map +1 -0
  343. package/dist/core/p-9a3d6bca.entry.js +2 -0
  344. package/dist/core/p-9a3d6bca.entry.js.map +1 -0
  345. package/dist/core/p-9db8edb7.entry.js +2 -0
  346. package/dist/core/{p-01a17304.entry.js.map → p-9db8edb7.entry.js.map} +1 -1
  347. package/dist/core/p-a183353c.entry.js +2 -0
  348. package/dist/core/{p-49831676.entry.js.map → p-a183353c.entry.js.map} +1 -1
  349. package/dist/core/p-a23e9d8a.entry.js +2 -0
  350. package/dist/core/{p-b70f2538.entry.js.map → p-a23e9d8a.entry.js.map} +1 -1
  351. package/dist/core/p-aad5da60.entry.js +2 -0
  352. package/dist/core/p-aad5da60.entry.js.map +1 -0
  353. package/dist/core/p-aad76be7.entry.js +2 -0
  354. package/dist/core/p-aad76be7.entry.js.map +1 -0
  355. package/dist/core/p-ac76594c.entry.js +2 -0
  356. package/dist/core/p-ac76594c.entry.js.map +1 -0
  357. package/dist/core/p-b596f73d.entry.js +2 -0
  358. package/dist/core/{p-5928296a.entry.js.map → p-b596f73d.entry.js.map} +1 -1
  359. package/dist/core/p-b875ec01.entry.js +2 -0
  360. package/dist/core/p-b875ec01.entry.js.map +1 -0
  361. package/dist/core/p-bf4ddf33.entry.js +2 -0
  362. package/dist/core/p-bf4ddf33.entry.js.map +1 -0
  363. package/dist/core/p-c023c49c.entry.js +2 -0
  364. package/dist/core/p-c023c49c.entry.js.map +1 -0
  365. package/dist/core/p-d4a1734e.entry.js +2 -0
  366. package/dist/core/p-d4a1734e.entry.js.map +1 -0
  367. package/dist/core/p-d61c2983.entry.js +2 -0
  368. package/dist/core/{p-3d95b097.entry.js.map → p-d61c2983.entry.js.map} +1 -1
  369. package/dist/core/p-dd36d23a.entry.js +2 -0
  370. package/dist/core/p-dd36d23a.entry.js.map +1 -0
  371. package/dist/core/p-eb0f09f4.entry.js +2 -0
  372. package/dist/core/{p-92cc098f.entry.js.map → p-eb0f09f4.entry.js.map} +1 -1
  373. package/dist/core/{p-5316e421.entry.js → p-eb33ece2.entry.js} +2 -2
  374. package/dist/core/{p-5316e421.entry.js.map → p-eb33ece2.entry.js.map} +1 -1
  375. package/dist/core/p-ee3a9fd0.entry.js +2 -0
  376. package/dist/core/p-ee3a9fd0.entry.js.map +1 -0
  377. package/dist/core/p-eeff0f89.entry.js +2 -0
  378. package/dist/core/{p-961c9038.entry.js.map → p-eeff0f89.entry.js.map} +1 -1
  379. package/dist/core/p-f228c232.js +2 -0
  380. package/dist/core/p-f228c232.js.map +1 -0
  381. package/dist/core/p-f7e7d4f5.entry.js +2 -0
  382. package/dist/core/p-f7e7d4f5.entry.js.map +1 -0
  383. package/dist/core/p-ffc4cae2.entry.js +2 -0
  384. package/dist/core/p-ffc4cae2.entry.js.map +1 -0
  385. package/dist/esm/core.js +1 -1
  386. package/dist/esm/{helpers-63cb8828.js → helpers-e090fe7e.js} +18 -14
  387. package/dist/esm/helpers-e090fe7e.js.map +1 -0
  388. package/dist/esm/ic-alert.entry.js +4 -3
  389. package/dist/esm/ic-alert.entry.js.map +1 -1
  390. package/dist/esm/ic-back-to-top.entry.js +3 -2
  391. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  392. package/dist/esm/{ic-breadcrumbs.entry.js → ic-breadcrumb-group.entry.js} +7 -6
  393. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -0
  394. package/dist/esm/ic-breadcrumb.entry.js +3 -2
  395. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  396. package/dist/esm/ic-button_3.entry.js +25 -29
  397. package/dist/esm/ic-button_3.entry.js.map +1 -1
  398. package/dist/esm/ic-card.entry.js +2 -1
  399. package/dist/esm/ic-card.entry.js.map +1 -1
  400. package/dist/esm/ic-checkbox-group.entry.js +3 -2
  401. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  402. package/dist/esm/ic-checkbox.entry.js +13 -2
  403. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  404. package/dist/esm/ic-data-entity.entry.js +6 -6
  405. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  406. package/dist/esm/ic-data-row.entry.js +6 -5
  407. package/dist/esm/ic-data-row.entry.js.map +1 -1
  408. package/dist/esm/ic-divider.entry.js +2 -1
  409. package/dist/esm/ic-divider.entry.js.map +1 -1
  410. package/dist/esm/ic-footer-link-group.entry.js +12 -11
  411. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  412. package/dist/esm/ic-footer-link.entry.js +8 -7
  413. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  414. package/dist/esm/ic-footer.entry.js +14 -13
  415. package/dist/esm/ic-footer.entry.js.map +1 -1
  416. package/dist/esm/ic-hero.entry.js +8 -7
  417. package/dist/esm/ic-hero.entry.js.map +1 -1
  418. package/dist/esm/ic-input-component-container_3.entry.js +8 -7
  419. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  420. package/dist/esm/ic-input-label_2.entry.js +2 -1
  421. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  422. package/dist/esm/ic-link.entry.js +9 -8
  423. package/dist/esm/ic-link.entry.js.map +1 -1
  424. package/dist/esm/ic-navigation-button.entry.js +8 -7
  425. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  426. package/dist/esm/ic-navigation-group.entry.js +2 -1
  427. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  428. package/dist/esm/ic-navigation-item.entry.js +3 -2
  429. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  430. package/dist/esm/ic-navigation-menu.entry.js +3 -2
  431. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  432. package/dist/esm/ic-page-header.entry.js +6 -5
  433. package/dist/esm/ic-page-header.entry.js.map +1 -1
  434. package/dist/esm/ic-radio-group.entry.js +3 -2
  435. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  436. package/dist/esm/ic-radio-option.entry.js +17 -3
  437. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  438. package/dist/esm/ic-search-bar.entry.js +11 -12
  439. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  440. package/dist/esm/ic-select.entry.js +20 -8
  441. package/dist/esm/ic-select.entry.js.map +1 -1
  442. package/dist/esm/ic-side-navigation.entry.js +3 -2
  443. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  444. package/dist/esm/ic-skeleton.entry.js +10 -10
  445. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  446. package/dist/esm/ic-status-tag.entry.js +9 -8
  447. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  448. package/dist/esm/ic-step.entry.js +2 -1
  449. package/dist/esm/ic-step.entry.js.map +1 -1
  450. package/dist/esm/ic-stepper.entry.js +2 -1
  451. package/dist/esm/ic-stepper.entry.js.map +1 -1
  452. package/dist/esm/ic-switch.entry.js +21 -10
  453. package/dist/esm/ic-switch.entry.js.map +1 -1
  454. package/dist/esm/ic-tab-context.entry.js +13 -11
  455. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  456. package/dist/esm/ic-tab-group.entry.js +142 -0
  457. package/dist/esm/ic-tab-group.entry.js.map +1 -0
  458. package/dist/esm/ic-tab-panel.entry.js +8 -4
  459. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  460. package/dist/esm/ic-tab.entry.js +6 -5
  461. package/dist/esm/ic-tab.entry.js.map +1 -1
  462. package/dist/esm/ic-text-field.entry.js +13 -5
  463. package/dist/esm/ic-text-field.entry.js.map +1 -1
  464. package/dist/esm/ic-theme.entry.js +2 -1
  465. package/dist/esm/ic-theme.entry.js.map +1 -1
  466. package/dist/esm/ic-top-navigation.entry.js +6 -5
  467. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  468. package/dist/esm/ic-typography.entry.js +4 -4
  469. package/dist/esm/ic-typography.entry.js.map +1 -1
  470. package/dist/esm/index-1500de1f.js +4 -4
  471. package/dist/esm/loader.js +1 -1
  472. package/dist/esm/types-dd515332.js +16 -0
  473. package/dist/esm/types-dd515332.js.map +1 -0
  474. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group-test-examples.d.ts +2 -0
  475. package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.d.ts} +2 -2
  476. package/dist/types/components/{ic-breadcrumbs/ic-breadcrumbs.test.a11y.d.ts → ic-breadcrumb-group/ic-breadcrumb-group.test.a11y.d.ts} +0 -0
  477. package/dist/types/components/ic-button/ic-button.d.ts +5 -11
  478. package/dist/types/components/ic-button/ic-button.types.d.ts +1 -2
  479. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +4 -0
  480. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +2 -2
  481. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +2 -2
  482. package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
  483. package/dist/types/components/ic-footer/ic-footer.d.ts +2 -2
  484. package/dist/types/components/ic-footer/ic-footer.types.d.ts +1 -1
  485. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +1 -1
  486. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +2 -2
  487. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
  488. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +2 -2
  489. package/dist/types/components/ic-link/ic-link.d.ts +5 -2
  490. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +6 -5
  491. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +0 -1
  492. package/dist/types/components/ic-menu/ic-menu.d.ts +2 -2
  493. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
  494. package/dist/types/components/ic-page-header/ic-page-header.d.ts +2 -2
  495. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +2 -2
  496. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +4 -0
  497. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +2 -6
  498. package/dist/types/components/ic-select/ic-select.d.ts +5 -2
  499. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +2 -2
  500. package/dist/types/components/ic-skeleton/ic-skeleton.types.d.ts +1 -1
  501. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +3 -3
  502. package/dist/types/components/ic-status-tag/ic-status-tag.types.d.ts +1 -1
  503. package/dist/types/components/ic-switch/ic-switch.d.ts +8 -4
  504. package/dist/types/components/ic-tab/ic-tab.d.ts +3 -2
  505. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +4 -4
  506. package/dist/types/components/{ic-tab-list/ic-tab-list.d.ts → ic-tab-group/ic-tab-group.d.ts} +6 -5
  507. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +3 -0
  508. package/dist/types/components/ic-text-field/ic-text-field.d.ts +5 -6
  509. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +2 -2
  510. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -1
  511. package/dist/types/components.d.ts +196 -219
  512. package/dist/types/utils/helpers.d.ts +3 -0
  513. package/dist/types/utils/types.d.ts +1 -0
  514. package/hydrate/index.js +320 -252
  515. package/package.json +5 -5
  516. package/dist/cjs/helpers-ea79c7b0.js.map +0 -1
  517. package/dist/cjs/ic-tab-list.cjs.entry.js +0 -145
  518. package/dist/cjs/ic-tab-list.cjs.entry.js.map +0 -1
  519. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.js.map +0 -1
  520. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.js.map +0 -1
  521. package/dist/collection/components/ic-breadcrumbs/ic-breadcrumbs.test.a11y.js.map +0 -1
  522. package/dist/collection/components/ic-tab-list/ic-tab-list.js.map +0 -1
  523. package/dist/components/ic-breadcrumbs.js.map +0 -1
  524. package/dist/components/ic-tab-list.js.map +0 -1
  525. package/dist/core/p-01450166.entry.js +0 -2
  526. package/dist/core/p-01a17304.entry.js +0 -2
  527. package/dist/core/p-08239789.entry.js +0 -2
  528. package/dist/core/p-08239789.entry.js.map +0 -1
  529. package/dist/core/p-09c0cd28.entry.js +0 -2
  530. package/dist/core/p-09c0cd28.entry.js.map +0 -1
  531. package/dist/core/p-0cf51da5.entry.js +0 -2
  532. package/dist/core/p-10531d9a.entry.js +0 -2
  533. package/dist/core/p-10531d9a.entry.js.map +0 -1
  534. package/dist/core/p-14ba2f18.js +0 -2
  535. package/dist/core/p-14ba2f18.js.map +0 -1
  536. package/dist/core/p-211465cf.entry.js +0 -2
  537. package/dist/core/p-211465cf.entry.js.map +0 -1
  538. package/dist/core/p-2c687b76.entry.js +0 -2
  539. package/dist/core/p-2c687b76.entry.js.map +0 -1
  540. package/dist/core/p-2d5824f1.entry.js +0 -2
  541. package/dist/core/p-2d5824f1.entry.js.map +0 -1
  542. package/dist/core/p-34e5ee10.entry.js +0 -2
  543. package/dist/core/p-34e5ee10.entry.js.map +0 -1
  544. package/dist/core/p-35b91376.entry.js +0 -2
  545. package/dist/core/p-35b91376.entry.js.map +0 -1
  546. package/dist/core/p-36e9f6ff.entry.js +0 -2
  547. package/dist/core/p-3a7725ed.entry.js +0 -2
  548. package/dist/core/p-3d95b097.entry.js +0 -2
  549. package/dist/core/p-40a17d61.entry.js +0 -2
  550. package/dist/core/p-40a17d61.entry.js.map +0 -1
  551. package/dist/core/p-41dab885.entry.js +0 -2
  552. package/dist/core/p-41dab885.entry.js.map +0 -1
  553. package/dist/core/p-42876f02.entry.js +0 -2
  554. package/dist/core/p-483ba0f6.entry.js +0 -2
  555. package/dist/core/p-483ba0f6.entry.js.map +0 -1
  556. package/dist/core/p-49831676.entry.js +0 -2
  557. package/dist/core/p-55a8f5b6.entry.js +0 -2
  558. package/dist/core/p-55a8f5b6.entry.js.map +0 -1
  559. package/dist/core/p-5928296a.entry.js +0 -2
  560. package/dist/core/p-66800ec4.entry.js +0 -2
  561. package/dist/core/p-66800ec4.entry.js.map +0 -1
  562. package/dist/core/p-7c207056.entry.js +0 -2
  563. package/dist/core/p-7c207056.entry.js.map +0 -1
  564. package/dist/core/p-7f27efda.entry.js +0 -2
  565. package/dist/core/p-7f27efda.entry.js.map +0 -1
  566. package/dist/core/p-87fc80f1.entry.js +0 -2
  567. package/dist/core/p-87fc80f1.entry.js.map +0 -1
  568. package/dist/core/p-886e7a24.entry.js +0 -2
  569. package/dist/core/p-886e7a24.entry.js.map +0 -1
  570. package/dist/core/p-889744b7.entry.js +0 -2
  571. package/dist/core/p-889744b7.entry.js.map +0 -1
  572. package/dist/core/p-92cc098f.entry.js +0 -2
  573. package/dist/core/p-961c9038.entry.js +0 -2
  574. package/dist/core/p-9753e5f2.entry.js +0 -2
  575. package/dist/core/p-9753e5f2.entry.js.map +0 -1
  576. package/dist/core/p-a334ed34.entry.js +0 -2
  577. package/dist/core/p-b70f2538.entry.js +0 -2
  578. package/dist/core/p-b858dc5a.entry.js +0 -2
  579. package/dist/core/p-b858dc5a.entry.js.map +0 -1
  580. package/dist/core/p-b9253509.entry.js.map +0 -1
  581. package/dist/core/p-bbff1667.entry.js +0 -2
  582. package/dist/core/p-c0bfb272.entry.js +0 -2
  583. package/dist/core/p-c0bfb272.entry.js.map +0 -1
  584. package/dist/core/p-cd14a9dc.entry.js +0 -2
  585. package/dist/core/p-cd14a9dc.entry.js.map +0 -1
  586. package/dist/core/p-d7af7446.entry.js +0 -2
  587. package/dist/core/p-d7af7446.entry.js.map +0 -1
  588. package/dist/core/p-e2304886.entry.js +0 -2
  589. package/dist/core/p-f90ce9ca.entry.js +0 -2
  590. package/dist/core/p-f90ce9ca.entry.js.map +0 -1
  591. package/dist/esm/helpers-63cb8828.js.map +0 -1
  592. package/dist/esm/ic-breadcrumbs.entry.js.map +0 -1
  593. package/dist/esm/ic-tab-list.entry.js +0 -141
  594. package/dist/esm/ic-tab-list.entry.js.map +0 -1
  595. package/dist/types/components/ic-breadcrumbs/ic-breadcrumbs-test-examples.d.ts +0 -2
@@ -1,4 +1,5 @@
1
1
  import { h, } from "@stencil/core";
2
+ import { IcThemeForegroundEnum, } from "../../utils/types";
2
3
  export class TabContext {
3
4
  constructor() {
4
5
  // Sets attributes to link tabs and tabpanels
@@ -16,30 +17,31 @@ export class TabContext {
16
17
  this.tabPanels[index].panelId = shared;
17
18
  this.tabPanels[index].tabPosition = index;
18
19
  this.tabPanels[index].setAttribute("aria-labelledby", tabId);
19
- if (this.dark) {
20
- tab.dark = true;
20
+ if (this.appearance === IcThemeForegroundEnum.Light) {
21
+ tab.appearance = this.appearance;
22
+ this.tabPanels[index].appearance = this.appearance;
21
23
  }
22
24
  });
23
- if (this.dark) {
24
- this.tabList.dark = true;
25
+ if (this.appearance === IcThemeForegroundEnum.Light) {
26
+ this.tabGroup.appearance = this.appearance;
25
27
  }
26
28
  };
27
29
  // Gets tabs and tabpanels with the same context ID
28
30
  this.getChildren = () => {
29
- this.tabList = Array.from(this.host.querySelectorAll("ic-tab-list")).find((tabList) => tabList.contextId === this.contextId);
30
- this.tabs = Array.from(this.tabList.querySelectorAll("ic-tab")).filter((tab) => tab.contextId === this.contextId);
31
+ this.tabGroup = Array.from(this.host.querySelectorAll("ic-tab-group")).find((tabGroup) => tabGroup.contextId === this.contextId);
32
+ this.tabs = Array.from(this.tabGroup.querySelectorAll("ic-tab")).filter((tab) => tab.contextId === this.contextId);
31
33
  this.enabledTabs = this.getEnabledTabs();
32
34
  this.tabPanels = Array.from(this.host.querySelectorAll("ic-tab-panel"));
33
35
  };
34
36
  // Determines how keyboard navigation is to be handled based on the activation type
35
37
  this.attatchEventListeners = () => {
36
38
  if (this.activationType === "automatic") {
37
- this.tabList.addEventListener("keydown", (event) => {
39
+ this.tabGroup.addEventListener("keydown", (event) => {
38
40
  this.handleKeyBoardNavAutomatic(event);
39
41
  });
40
42
  }
41
43
  else {
42
- this.tabList.addEventListener("keydown", (event) => {
44
+ this.tabGroup.addEventListener("keydown", (event) => {
43
45
  this.handleKeyBoardNavManual(event);
44
46
  });
45
47
  }
@@ -171,7 +173,7 @@ export class TabContext {
171
173
  this.contextId = "default";
172
174
  this.activationType = "automatic";
173
175
  this.selectedTabIndex = undefined;
174
- this.dark = false;
176
+ this.appearance = "dark";
175
177
  this.selectedTab = undefined;
176
178
  }
177
179
  updateSelectedTab(newValue) {
@@ -199,10 +201,10 @@ export class TabContext {
199
201
  }
200
202
  disconnectedCallback() {
201
203
  if (this.activationType === "manual") {
202
- this.tabList.removeEventListener("keydown", (event) => this.handleKeyBoardNavManual(event));
204
+ this.tabGroup.removeEventListener("keydown", (event) => this.handleKeyBoardNavManual(event));
203
205
  }
204
206
  else {
205
- this.tabList.removeEventListener("keydown", (event) => this.handleKeyBoardNavAutomatic(event));
207
+ this.tabGroup.removeEventListener("keydown", (event) => this.handleKeyBoardNavAutomatic(event));
206
208
  }
207
209
  }
208
210
  render() {
@@ -269,23 +271,28 @@ export class TabContext {
269
271
  "attribute": "selected-tab-index",
270
272
  "reflect": false
271
273
  },
272
- "dark": {
273
- "type": "boolean",
274
+ "appearance": {
275
+ "type": "string",
274
276
  "mutable": false,
275
277
  "complexType": {
276
- "original": "boolean",
277
- "resolved": "boolean",
278
- "references": {}
278
+ "original": "IcThemeForegroundNoDefault",
279
+ "resolved": "\"dark\" | \"light\"",
280
+ "references": {
281
+ "IcThemeForegroundNoDefault": {
282
+ "location": "import",
283
+ "path": "../../utils/types"
284
+ }
285
+ }
279
286
  },
280
287
  "required": false,
281
288
  "optional": true,
282
289
  "docs": {
283
290
  "tags": [],
284
- "text": "Determines whether the dark variant of the tabs should be displayed."
291
+ "text": "Determines whether the light or dark variant of the tabs should be displayed."
285
292
  },
286
- "attribute": "dark",
293
+ "attribute": "appearance",
287
294
  "reflect": false,
288
- "defaultValue": "false"
295
+ "defaultValue": "\"dark\""
289
296
  }
290
297
  };
291
298
  }
@@ -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} from \"@stencil/core\";\nimport { IcActivationTypes } 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 @Element() host: HTMLIcTabContextElement;\n\n /**\n * Provide a unique context 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 * 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 * Allows the user to control the selected tab. Must be used alongside the tabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n /**\n * Determines whether the dark variant of the tabs should be displayed.\n */\n @Prop() dark?: boolean = false;\n\n @State() selectedTab: number | null;\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() tabSelect: EventEmitter<IcTabSelectEventDetail>;\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.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n }\n\n private controlledMode: boolean;\n private tabs: HTMLIcTabElement[];\n private enabledTabs: HTMLIcTabElement[];\n private tabPanels: HTMLIcTabPanelElement[];\n private tabList: HTMLIcTabListElement;\n private focusedTabIndex: number;\n\n // Sets attributes to link tabs and tabpanels\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 tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(\"context-id\", 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\n if (this.dark) {\n tab.dark = true;\n }\n });\n\n if (this.dark) {\n this.tabList.dark = true;\n }\n };\n\n // Gets tabs and tabpanels with the same context ID\n private getChildren = (): void => {\n this.tabList = Array.from(this.host.querySelectorAll(\"ic-tab-list\")).find(\n (tabList) => tabList.contextId === this.contextId\n );\n this.tabs = Array.from(this.tabList.querySelectorAll(\"ic-tab\")).filter(\n (tab) => tab.contextId === this.contextId\n );\n this.enabledTabs = this.getEnabledTabs();\n this.tabPanels = Array.from(this.host.querySelectorAll(\"ic-tab-panel\"));\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n if (this.activationType === \"automatic\") {\n this.tabList.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavAutomatic(event);\n });\n } else {\n this.tabList.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavManual(event);\n });\n }\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onTabSelect)\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.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 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 if (this.activationType === \"manual\") {\n this.tabList.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavManual(event)\n );\n } else {\n this.tabList.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavAutomatic(event)\n );\n }\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} 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 @Element() host: HTMLIcTabContextElement;\n\n /**\n * Provide a unique context 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 * 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 * Allows the user to control the selected tab. Must be used alongside the tabSelect event to manage tab selection.\n */\n @Prop() selectedTabIndex?: number;\n\n /**\n * Determines whether the light or dark variant of the tabs should be displayed.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() selectedTab: number | null;\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() tabSelect: EventEmitter<IcTabSelectEventDetail>;\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.tabSelect.emit({\n tabIndex: event.detail.position,\n });\n }\n\n private controlledMode: boolean;\n private tabs: HTMLIcTabElement[];\n private enabledTabs: HTMLIcTabElement[];\n private tabPanels: HTMLIcTabPanelElement[];\n private tabGroup: HTMLIcTabGroupElement;\n private focusedTabIndex: number;\n\n // Sets attributes to link tabs and tabpanels\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 tab.setAttribute(\"id\", tabId);\n tab.tabId = shared;\n tab.tabPosition = index;\n tab.setAttribute(\"aria-controls\", tabPanelId);\n tab.setAttribute(\"context-id\", 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\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 private getChildren = (): void => {\n this.tabGroup = Array.from(this.host.querySelectorAll(\"ic-tab-group\")).find(\n (tabGroup) => tabGroup.contextId === this.contextId\n );\n this.tabs = Array.from(this.tabGroup.querySelectorAll(\"ic-tab\")).filter(\n (tab) => tab.contextId === this.contextId\n );\n this.enabledTabs = this.getEnabledTabs();\n this.tabPanels = Array.from(this.host.querySelectorAll(\"ic-tab-panel\"));\n };\n\n // Determines how keyboard navigation is to be handled based on the activation type\n private attatchEventListeners = (): void => {\n if (this.activationType === \"automatic\") {\n this.tabGroup.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavAutomatic(event);\n });\n } else {\n this.tabGroup.addEventListener(\"keydown\", (event) => {\n this.handleKeyBoardNavManual(event);\n });\n }\n };\n\n // Determines whether the selected tab is being controlled within the component\n // or by the user (via selectedTabIndex and onTabSelect)\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.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 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 if (this.activationType === \"manual\") {\n this.tabGroup.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavManual(event)\n );\n } else {\n this.tabGroup.removeEventListener(\"keydown\", (event) =>\n this.handleKeyBoardNavAutomatic(event)\n );\n }\n }\n\n render() {\n return <slot></slot>;\n }\n}\n"]}
@@ -3,11 +3,11 @@ import { axe } from "jest-axe";
3
3
  describe("ic-tab-context", () => {
4
4
  it("passes accessibility", async () => {
5
5
  const el = await fixture(`<ic-tab-context>
6
- <ic-tab-list>
6
+ <ic-tab-group>
7
7
  <ic-tab>One</ic-tab>
8
8
  <ic-tab>Two</ic-tab>
9
9
  <ic-tab>Three</ic-tab>
10
- </ic-tab-list>
10
+ </ic-tab-group>
11
11
  <ic-tab-panel> Tab One </ic-tab-panel>
12
12
  <ic-tab-panel> Tab Two </ic-tab-panel>
13
13
  <ic-tab-panel> Tab Three </ic-tab-panel>
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-context.test.a11y.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;EAC9B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;;;;;;;;oBAST,CAAC,CAAC;IAElB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\n\ndescribe(\"ic-tab-context\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`<ic-tab-context>\n <ic-tab-list>\n <ic-tab>One</ic-tab>\n <ic-tab>Two</ic-tab>\n <ic-tab>Three</ic-tab>\n </ic-tab-list>\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 expect(el.getAttribute(\"context-id\")).toBe(\"default\");\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-tab-context.test.a11y.js","sourceRoot":"","sources":["../../../src/components/ic-tab-context/ic-tab-context.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;EAC9B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;;;;;;;;;oBAST,CAAC,CAAC;IAElB,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\n\ndescribe(\"ic-tab-context\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(`<ic-tab-context>\n <ic-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 expect(el.getAttribute(\"context-id\")).toBe(\"default\");\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
@@ -12,7 +12,7 @@
12
12
  margin-left: calc(-1 * var(--ic-space-xs));
13
13
  }
14
14
 
15
- :host(.dark) {
15
+ :host(.light) {
16
16
  --splitter-color: var(--ic-architectural-white);
17
17
  --tab-scroll-focus: var(--ic-border-focus-dark);
18
18
  --tab-scroll-fill: var(--ic-action-light);
@@ -43,12 +43,12 @@
43
43
  display: none;
44
44
  }
45
45
 
46
- .ic-tab-list-container {
46
+ .ic-tab-group-container {
47
47
  display: flex;
48
48
  align-items: center;
49
49
  }
50
50
 
51
- :host(.dark.ic-tab-list-not-inline) {
51
+ :host(.light.ic-tab-group-not-inline) {
52
52
  --border-bottom-color: var(--ic-architectural-white);
53
53
  }
54
54
 
@@ -2,19 +2,20 @@ import { Host, h, } from "@stencil/core";
2
2
  import LeftArrow from "./assets/left-arrow.svg";
3
3
  import RightArrow from "./assets/right-arrow.svg";
4
4
  import { checkResizeObserver, elementOverflowsX, onComponentRequiredPropUndefined, } from "../../utils/helpers";
5
+ import { IcThemeForegroundEnum, } from "../../utils/types";
5
6
  const SCROLL_DELAY_MS = 200;
6
- export class TabList {
7
+ export class TabGroup {
7
8
  constructor() {
8
9
  this.buttonStateSet = false;
9
10
  this.resizeObserverCallback = () => {
10
- if (this.tabListEl === null || this.tabListEl === undefined) {
11
- this.tabListEl = this.host.shadowRoot.querySelector(".tabs-container");
11
+ if (this.tabGroupEl === null || this.tabGroupEl === undefined) {
12
+ this.tabGroupEl = this.host.shadowRoot.querySelector(".tabs-container");
12
13
  }
13
- this.tabOverflow = elementOverflowsX(this.tabListEl);
14
+ this.tabOverflow = elementOverflowsX(this.tabGroupEl);
14
15
  if (this.tabOverflow) {
15
16
  this.lastTabVisible =
16
- this.tabListEl.offsetWidth + this.tabListEl.scrollLeft >=
17
- this.tabListEl.scrollWidth;
17
+ this.tabGroupEl.offsetWidth + this.tabGroupEl.scrollLeft >=
18
+ this.tabGroupEl.scrollWidth;
18
19
  }
19
20
  };
20
21
  this.runResizeObserver = () => {
@@ -47,7 +48,7 @@ export class TabList {
47
48
  window.clearTimeout(this.scrollDelay);
48
49
  };
49
50
  this.getCurrentLeftTab = () => {
50
- const index = this.tabOffsets.findIndex((el) => el > this.tabListEl.scrollLeft);
51
+ const index = this.tabOffsets.findIndex((el) => el > this.tabGroupEl.scrollLeft);
51
52
  return index < 0 ? 0 : index;
52
53
  };
53
54
  this.scrollHandler = () => {
@@ -59,17 +60,17 @@ export class TabList {
59
60
  // if scrollTabIntoView has been called, the button states will already be set
60
61
  // can't just handle it here as it causes strange jumping behaviour in positioning
61
62
  if (this.buttonStateSet === false) {
62
- this.firstTabVisible = this.tabListEl.scrollLeft === 0;
63
+ this.firstTabVisible = this.tabGroupEl.scrollLeft === 0;
63
64
  this.lastTabVisible =
64
- this.tabListEl.offsetWidth + this.tabListEl.scrollLeft >=
65
- this.tabListEl.scrollWidth;
65
+ this.tabGroupEl.offsetWidth + this.tabGroupEl.scrollLeft >=
66
+ this.tabGroupEl.scrollWidth;
66
67
  }
67
68
  this.buttonStateSet = false;
68
69
  };
69
70
  this.contextId = "default";
70
71
  this.inline = false;
71
72
  this.label = undefined;
72
- this.dark = false;
73
+ this.appearance = "dark";
73
74
  this.firstTabVisible = true;
74
75
  this.lastTabVisible = false;
75
76
  this.tabOverflow = false;
@@ -81,9 +82,9 @@ export class TabList {
81
82
  this.firstTabVisible = tabNumber <= 0;
82
83
  const newScrollPos = tabNumber <= 0 ? 0 : this.tabOffsets[tabNumber - 1];
83
84
  this.lastTabVisible =
84
- this.tabListEl.offsetWidth + newScrollPos >= this.tabListEl.scrollWidth;
85
+ this.tabGroupEl.offsetWidth + newScrollPos >= this.tabGroupEl.scrollWidth;
85
86
  this.buttonStateSet = true;
86
- this.tabListEl.scrollLeft = newScrollPos;
87
+ this.tabGroupEl.scrollLeft = newScrollPos;
87
88
  }
88
89
  tabFocusHandler(event) {
89
90
  if (this.tabOverflow) {
@@ -104,33 +105,33 @@ export class TabList {
104
105
  this.resizeObserver.disconnect();
105
106
  }
106
107
  render() {
107
- const { inline, dark, label, firstTabVisible, lastTabVisible, tabOverflow, } = this;
108
+ const { inline, appearance, label, firstTabVisible, lastTabVisible, tabOverflow, } = this;
108
109
  return (h(Host, { role: "tablist", "aria-label": label, class: {
109
- ["dark"]: dark,
110
- ["ic-tab-list-not-inline"]: !inline,
111
- } }, h("div", { class: "ic-tab-list-container" }, this.tabOverflow && (h("div", { "aria-hidden": "true", id: "scroll-container-left", class: {
110
+ ["light"]: appearance === IcThemeForegroundEnum.Light,
111
+ ["ic-tab-group-not-inline"]: !inline,
112
+ } }, h("div", { class: "ic-tab-group-container" }, this.tabOverflow && (h("div", { "aria-hidden": "true", id: "scroll-container-left", class: {
112
113
  ["scroll-container"]: true,
113
114
  ["hidden"]: !tabOverflow,
114
115
  ["disabled"]: firstTabVisible,
115
- } }, h("ic-tooltip", { placement: "bottom-start", label: "Scroll left", "element-id": "left-arrow" }, h("span", { id: "left-arrow", class: "scroll-arrow", innerHTML: LeftArrow, onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler, onMouseUp: this.arrowMouseUpHandler })), h("span", { class: "scroll-splitter-left" }))), h("div", { class: "tabs-container", ref: (el) => (this.tabListEl = el), onScroll: this.scrollHandler }, h("slot", null)), this.tabOverflow && (h("div", { "aria-hidden": "true", id: "scroll-container-right", class: {
116
+ } }, h("ic-tooltip", { placement: "bottom-start", label: "Scroll left", target: "left-arrow" }, h("span", { id: "left-arrow", class: "scroll-arrow", innerHTML: LeftArrow, onClick: this.scrollLeft, onMouseDown: this.leftArrowMouseDownHandler, onMouseUp: this.arrowMouseUpHandler })), h("span", { class: "scroll-splitter-left" }))), h("div", { class: "tabs-container", ref: (el) => (this.tabGroupEl = el), onScroll: this.scrollHandler }, h("slot", null)), this.tabOverflow && (h("div", { "aria-hidden": "true", id: "scroll-container-right", class: {
116
117
  ["scroll-container"]: true,
117
118
  ["hidden"]: !tabOverflow,
118
119
  ["disabled"]: lastTabVisible,
119
- } }, h("span", { class: "scroll-splitter-right" }), h("ic-tooltip", { placement: "bottom-start", label: "Scroll right", "element-id": "right-arrow" }, h("span", { id: "right-arrow", class: "scroll-arrow", innerHTML: RightArrow, onClick: this.scrollRight, onMouseDown: this.rightArrowMouseDownHandler, onMouseUp: this.arrowMouseUpHandler }))))), h("div", { "aria-hidden": "true", class: {
120
+ } }, h("span", { class: "scroll-splitter-right" }), h("ic-tooltip", { placement: "bottom-start", label: "Scroll right", target: "right-arrow" }, h("span", { id: "right-arrow", class: "scroll-arrow", innerHTML: RightArrow, onClick: this.scrollRight, onMouseDown: this.rightArrowMouseDownHandler, onMouseUp: this.arrowMouseUpHandler }))))), h("div", { "aria-hidden": "true", class: {
120
121
  ["ic-tab-splitter"]: true,
121
122
  ["hidden"]: inline,
122
123
  }, ref: (el) => (this.splitterEl = el) })));
123
124
  }
124
- static get is() { return "ic-tab-list"; }
125
+ static get is() { return "ic-tab-group"; }
125
126
  static get encapsulation() { return "shadow"; }
126
127
  static get originalStyleUrls() {
127
128
  return {
128
- "$": ["ic-tab-list.css"]
129
+ "$": ["ic-tab-group.css"]
129
130
  };
130
131
  }
131
132
  static get styleUrls() {
132
133
  return {
133
- "$": ["ic-tab-list.css"]
134
+ "$": ["ic-tab-group.css"]
134
135
  };
135
136
  }
136
137
  static get properties() {
@@ -188,26 +189,31 @@ export class TabList {
188
189
  "attribute": "label",
189
190
  "reflect": false
190
191
  },
191
- "dark": {
192
- "type": "boolean",
192
+ "appearance": {
193
+ "type": "string",
193
194
  "mutable": false,
194
195
  "complexType": {
195
- "original": "boolean",
196
- "resolved": "boolean",
197
- "references": {}
196
+ "original": "IcThemeForegroundNoDefault",
197
+ "resolved": "\"dark\" | \"light\"",
198
+ "references": {
199
+ "IcThemeForegroundNoDefault": {
200
+ "location": "import",
201
+ "path": "../../utils/types"
202
+ }
203
+ }
198
204
  },
199
205
  "required": false,
200
206
  "optional": true,
201
207
  "docs": {
202
208
  "tags": [{
203
209
  "name": "internal",
204
- "text": "Determines whether the dark variant of the tabs should be displayed."
210
+ "text": "Determines whether the light or dark variant of the tabs should be displayed."
205
211
  }],
206
212
  "text": ""
207
213
  },
208
- "attribute": "dark",
214
+ "attribute": "appearance",
209
215
  "reflect": false,
210
- "defaultValue": "false"
216
+ "defaultValue": "\"dark\""
211
217
  }
212
218
  };
213
219
  }
@@ -255,4 +261,4 @@ export class TabList {
255
261
  }];
256
262
  }
257
263
  }
258
- //# sourceMappingURL=ic-tab-list.js.map
264
+ //# sourceMappingURL=ic-tab-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ic-tab-group.js","sourceRoot":"","sources":["../../../src/components/ic-tab-group/ic-tab-group.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Method,\n Listen,\n} from \"@stencil/core\";\n\nimport LeftArrow from \"./assets/left-arrow.svg\";\nimport RightArrow from \"./assets/right-arrow.svg\";\n\nimport {\n checkResizeObserver,\n elementOverflowsX,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcTabClickEventDetail } from \"../ic-tab/ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nconst SCROLL_DELAY_MS = 200;\n\n@Component({\n tag: \"ic-tab-group\",\n styleUrl: \"ic-tab-group.css\",\n shadow: true,\n})\nexport class TabGroup {\n @Element() host: HTMLIcTabGroupElement;\n\n /**\n * Provide a unique context 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 * Use when tabs and tab panels are to be positioned separately.\n */\n @Prop({ reflect: true }) inline?: boolean = false;\n\n /**\n * Provide a label to describe the purpose of the set of tabs to screen reader users.\n */\n @Prop() label!: string;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() firstTabVisible: boolean = true;\n @State() lastTabVisible: boolean = false;\n @State() tabOverflow: boolean = false;\n\n private tabs: HTMLIcTabElement[];\n private tabOffsets: number[];\n private tabGroupEl: HTMLElement;\n private splitterEl: HTMLElement;\n private resizeObserver: ResizeObserver;\n private isScrolling: number;\n private scrollDelay: number;\n private buttonStateSet: boolean = false;\n\n /**\n * @internal if tab side scrolling enabled, scrolls the specified tab into view\n */\n @Method()\n async scrollTabIntoView(tabNumber: number): Promise<void> {\n this.firstTabVisible = tabNumber <= 0;\n const newScrollPos = tabNumber <= 0 ? 0 : this.tabOffsets[tabNumber - 1];\n this.lastTabVisible =\n this.tabGroupEl.offsetWidth + newScrollPos >= this.tabGroupEl.scrollWidth;\n this.buttonStateSet = true;\n this.tabGroupEl.scrollLeft = newScrollPos;\n }\n\n @Listen(\"tabFocus\")\n tabFocusHandler(event: CustomEvent<IcTabClickEventDetail>): void {\n if (this.tabOverflow) {\n this.scrollTabIntoView(event.detail.position);\n }\n }\n\n private resizeObserverCallback = () => {\n if (this.tabGroupEl === null || this.tabGroupEl === undefined) {\n this.tabGroupEl = this.host.shadowRoot.querySelector(\".tabs-container\");\n }\n this.tabOverflow = elementOverflowsX(this.tabGroupEl);\n if (this.tabOverflow) {\n this.lastTabVisible =\n this.tabGroupEl.offsetWidth + this.tabGroupEl.scrollLeft >=\n this.tabGroupEl.scrollWidth;\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.splitterEl);\n };\n\n private scrollLeft = () => {\n this.scrollTabIntoView(this.getCurrentLeftTab() - 1);\n };\n\n private scrollRight = () => {\n this.scrollTabIntoView(this.getCurrentLeftTab() + 1);\n };\n\n private longScrollRight = () => {\n this.scrollRight();\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private longScrollLeft = () => {\n this.scrollLeft();\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private leftArrowMouseDownHandler = () => {\n this.scrollDelay = window.setTimeout(this.longScrollLeft, SCROLL_DELAY_MS);\n };\n\n private rightArrowMouseDownHandler = () => {\n this.scrollDelay = window.setTimeout(this.longScrollRight, SCROLL_DELAY_MS);\n };\n\n private arrowMouseUpHandler = () => {\n window.clearTimeout(this.scrollDelay);\n };\n\n private getCurrentLeftTab = (): number => {\n const index = this.tabOffsets.findIndex(\n (el) => el > this.tabGroupEl.scrollLeft\n );\n return index < 0 ? 0 : index;\n };\n\n private scrollHandler = () => {\n window.clearTimeout(this.isScrolling);\n // Set a timeout to run after scrolling ends\n this.isScrolling = window.setTimeout(this.scrollStopped, 50);\n };\n\n private scrollStopped = () => {\n // if scrollTabIntoView has been called, the button states will already be set\n // can't just handle it here as it causes strange jumping behaviour in positioning\n if (this.buttonStateSet === false) {\n this.firstTabVisible = this.tabGroupEl.scrollLeft === 0;\n this.lastTabVisible =\n this.tabGroupEl.offsetWidth + this.tabGroupEl.scrollLeft >=\n this.tabGroupEl.scrollWidth;\n }\n this.buttonStateSet = false;\n };\n\n componentDidLoad(): void {\n this.tabs = Array.from(this.host.querySelectorAll(\"ic-tab\"));\n let runningTotal = 0;\n this.tabOffsets = this.tabs.map((tab) => {\n runningTotal += tab.offsetWidth;\n return runningTotal;\n });\n checkResizeObserver(this.runResizeObserver);\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tab List\"\n );\n }\n\n disconnectedCallback(): void {\n this.resizeObserver.disconnect();\n }\n\n render() {\n const {\n inline,\n appearance,\n label,\n firstTabVisible,\n lastTabVisible,\n tabOverflow,\n } = this;\n\n return (\n <Host\n role=\"tablist\"\n aria-label={label}\n class={{\n [\"light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"ic-tab-group-not-inline\"]: !inline,\n }}\n >\n <div class=\"ic-tab-group-container\">\n {this.tabOverflow && (\n <div\n aria-hidden=\"true\"\n id=\"scroll-container-left\"\n class={{\n [\"scroll-container\"]: true,\n [\"hidden\"]: !tabOverflow,\n [\"disabled\"]: firstTabVisible,\n }}\n >\n <ic-tooltip\n placement=\"bottom-start\"\n label=\"Scroll left\"\n target=\"left-arrow\"\n >\n <span\n id=\"left-arrow\"\n class=\"scroll-arrow\"\n innerHTML={LeftArrow}\n onClick={this.scrollLeft}\n onMouseDown={this.leftArrowMouseDownHandler}\n onMouseUp={this.arrowMouseUpHandler}\n ></span>\n </ic-tooltip>\n <span class=\"scroll-splitter-left\"></span>\n </div>\n )}\n <div\n class=\"tabs-container\"\n ref={(el) => (this.tabGroupEl = el)}\n onScroll={this.scrollHandler}\n >\n <slot></slot>\n </div>\n {this.tabOverflow && (\n <div\n aria-hidden=\"true\"\n id=\"scroll-container-right\"\n class={{\n [\"scroll-container\"]: true,\n [\"hidden\"]: !tabOverflow,\n [\"disabled\"]: lastTabVisible,\n }}\n >\n <span class=\"scroll-splitter-right\"></span>\n <ic-tooltip\n placement=\"bottom-start\"\n label=\"Scroll right\"\n target=\"right-arrow\"\n >\n <span\n id=\"right-arrow\"\n class=\"scroll-arrow\"\n innerHTML={RightArrow}\n onClick={this.scrollRight}\n onMouseDown={this.rightArrowMouseDownHandler}\n onMouseUp={this.arrowMouseUpHandler}\n ></span>\n </ic-tooltip>\n </div>\n )}\n </div>\n\n <div\n aria-hidden=\"true\"\n class={{\n [\"ic-tab-splitter\"]: true,\n [\"hidden\"]: inline,\n }}\n ref={(el) => (this.splitterEl = el)}\n ></div>\n </Host>\n );\n }\n}\n"]}
@@ -1,3 +1,7 @@
1
1
  :host {
2
2
  display: block;
3
3
  }
4
+
5
+ :host(.ic-tab-panel-light) {
6
+ color: white;
7
+ }
@@ -1,18 +1,22 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { onComponentRequiredPropUndefined } from "../../utils/helpers";
3
+ import { IcThemeForegroundEnum, } from "../../utils/types";
3
4
  export class TabPanel {
4
5
  constructor() {
5
6
  this.contextId = "default";
6
7
  this.tabPosition = undefined;
7
8
  this.panelId = undefined;
8
9
  this.selectedTab = undefined;
10
+ this.appearance = "dark";
9
11
  }
10
12
  componentDidLoad() {
11
13
  onComponentRequiredPropUndefined([{ prop: this.tabPosition, propName: "tab-position" }], "Tab Panel");
12
14
  }
13
15
  render() {
14
- const { panelId, selectedTab } = this;
15
- return (h(Host, { role: "tabpanel", hidden: panelId !== undefined && selectedTab !== undefined
16
+ const { panelId, selectedTab, appearance } = this;
17
+ return (h(Host, { class: {
18
+ ["ic-tab-panel-light"]: appearance === IcThemeForegroundEnum.Light,
19
+ }, role: "tabpanel", hidden: panelId !== undefined && selectedTab !== undefined
16
20
  ? !(panelId === selectedTab)
17
21
  : true }, h("div", null, h("slot", null))));
18
22
  }
@@ -107,6 +111,32 @@ export class TabPanel {
107
111
  },
108
112
  "attribute": "selected-tab",
109
113
  "reflect": false
114
+ },
115
+ "appearance": {
116
+ "type": "string",
117
+ "mutable": false,
118
+ "complexType": {
119
+ "original": "IcThemeForegroundNoDefault",
120
+ "resolved": "\"dark\" | \"light\"",
121
+ "references": {
122
+ "IcThemeForegroundNoDefault": {
123
+ "location": "import",
124
+ "path": "../../utils/types"
125
+ }
126
+ }
127
+ },
128
+ "required": false,
129
+ "optional": true,
130
+ "docs": {
131
+ "tags": [{
132
+ "name": "internal",
133
+ "text": "Determines whether the light or dark variant of the tabs should be displayed."
134
+ }],
135
+ "text": ""
136
+ },
137
+ "attribute": "appearance",
138
+ "reflect": false,
139
+ "defaultValue": "\"dark\""
110
140
  }
111
141
  };
112
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab-panel.js","sourceRoot":"","sources":["../../../src/components/ic-tab-panel/ic-tab-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAOvE,MAAM,OAAO,QAAQ;;qBAM2B,SAAS;;;;;EAWvD,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EACtD,WAAW,CACZ,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACtC,OAAO,CACL,EAAC,IAAI,IACH,IAAI,EAAC,UAAU,EACf,MAAM,EACJ,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAChD,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC;QAC5B,CAAC,CAAC,IAAI;MAGV;QACE,eAAa,CACT,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-tab-panel\",\n styleUrl: \"ic-tab-panel.css\",\n shadow: true,\n})\nexport class TabPanel {\n @Element() host: HTMLIcTabPanelElement;\n\n /**\n * Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /** @internal The position of the tab panel inside the tabs array in context. */\n @Prop({ reflect: true }) tabPosition!: number;\n\n /** @internal The shared ID that links the panel and tab. */\n @Prop({ reflect: true }) panelId?: string;\n\n /** @internal The shared ID of the currently selected tab. */\n @Prop() selectedTab?: string;\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.tabPosition, propName: \"tab-position\" }],\n \"Tab Panel\"\n );\n }\n\n render() {\n const { panelId, selectedTab } = this;\n return (\n <Host\n role=\"tabpanel\"\n hidden={\n panelId !== undefined && selectedTab !== undefined\n ? !(panelId === selectedTab)\n : true\n }\n >\n <div>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab-panel.js","sourceRoot":"","sources":["../../../src/components/ic-tab-panel/ic-tab-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,qBAAqB,GAEtB,MAAM,mBAAmB,CAAC;AAO3B,MAAM,OAAO,QAAQ;;qBAM2B,SAAS;;;;sBAYL,MAAM;;EAExD,gBAAgB;IACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,EACtD,WAAW,CACZ,CAAC;EACJ,CAAC;EAED,MAAM;IACJ,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,CACL,EAAC,IAAI,IACH,KAAK,EAAE;QACL,CAAC,oBAAoB,CAAC,EAAE,UAAU,KAAK,qBAAqB,CAAC,KAAK;OACnE,EACD,IAAI,EAAC,UAAU,EACf,MAAM,EACJ,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS;QAChD,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,WAAW,CAAC;QAC5B,CAAC,CAAC,IAAI;MAGV;QACE,eAAa,CACT,CACD,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Host, Prop, h } from \"@stencil/core\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-panel\",\n styleUrl: \"ic-tab-panel.css\",\n shadow: true,\n})\nexport class TabPanel {\n @Element() host: HTMLIcTabPanelElement;\n\n /**\n * Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel.\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /** @internal The position of the tab panel inside the tabs array in context. */\n @Prop({ reflect: true }) tabPosition!: number;\n\n /** @internal The shared ID that links the panel and tab. */\n @Prop({ reflect: true }) panelId?: string;\n\n /** @internal The shared ID of the currently selected tab. */\n @Prop() selectedTab?: string;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.tabPosition, propName: \"tab-position\" }],\n \"Tab Panel\"\n );\n }\n\n render() {\n const { panelId, selectedTab, appearance } = this;\n return (\n <Host\n class={{\n [\"ic-tab-panel-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tabpanel\"\n hidden={\n panelId !== undefined && selectedTab !== undefined\n ? !(panelId === selectedTab)\n : true\n }\n >\n <div>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}