@ukic/web-components 2.1.0-beta.0 → 2.1.0-beta.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (826) hide show
  1. package/README.md +8 -0
  2. package/dist/cjs/OpenInNew-f9958725.js +7 -0
  3. package/dist/cjs/OpenInNew-f9958725.js.map +1 -0
  4. package/dist/cjs/{check-icon-999d9877.js → check-icon-b2f60716.js} +2 -2
  5. package/dist/cjs/check-icon-b2f60716.js.map +1 -0
  6. package/dist/cjs/{chevron-icon-d175fe66.js → chevron-icon-2645d6b0.js} +2 -2
  7. package/dist/cjs/chevron-icon-2645d6b0.js.map +1 -0
  8. package/dist/cjs/core.cjs.js +3 -3
  9. package/dist/cjs/core.cjs.js.map +1 -1
  10. package/dist/cjs/{helpers-d0eeccf0.js → helpers-6eb26e7a.js} +158 -40
  11. package/dist/cjs/helpers-6eb26e7a.js.map +1 -0
  12. package/dist/cjs/ic-alert.cjs.entry.js +6 -25
  13. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-back-to-top.cjs.entry.js +24 -12
  15. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-breadcrumb.cjs.entry.js +14 -5
  19. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-button_3.cjs.entry.js +86 -37
  21. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-card.cjs.entry.js +43 -6
  23. package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-checkbox-group.cjs.entry.js +4 -4
  25. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-checkbox.cjs.entry.js +19 -6
  27. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-chip.cjs.entry.js +77 -0
  29. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -0
  30. package/dist/cjs/ic-classification-banner.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-data-entity.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-data-entity.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-data-row.cjs.entry.js +14 -12
  35. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-divider.cjs.entry.js +3 -3
  37. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-footer-link-group.cjs.entry.js +4 -3
  39. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-footer-link.cjs.entry.js +12 -5
  41. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-footer.cjs.entry.js +5 -5
  43. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-hero.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +158 -0
  47. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -0
  48. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +71 -41
  49. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -8
  51. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-link.cjs.entry.js +14 -8
  53. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js +5 -4
  55. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-group.cjs.entry.js +6 -5
  57. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-navigation-item.cjs.entry.js +18 -11
  59. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-navigation-menu.cjs.entry.js +8 -8
  61. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  63. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-radio-group.cjs.entry.js +13 -5
  65. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-radio-option.cjs.entry.js +24 -6
  67. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-search-bar.cjs.entry.js +53 -41
  69. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-select.cjs.entry.js +206 -59
  73. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-side-navigation.cjs.entry.js +24 -12
  75. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  77. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-status-tag.cjs.entry.js +6 -5
  79. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-step.cjs.entry.js +103 -23
  81. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-stepper.cjs.entry.js +166 -42
  83. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-switch.cjs.entry.js +12 -3
  85. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-tab-context.cjs.entry.js +7 -2
  87. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-tab-group.cjs.entry.js +9 -118
  89. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -6
  91. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-tab.cjs.entry.js +10 -6
  93. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-text-field.cjs.entry.js +5 -5
  95. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-theme.cjs.entry.js +21 -13
  97. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-toast-region.cjs.entry.js +48 -0
  99. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -0
  100. package/dist/cjs/ic-toast.cjs.entry.js +165 -0
  101. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -0
  102. package/dist/cjs/ic-top-navigation.cjs.entry.js +15 -10
  103. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  105. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  106. package/dist/cjs/{index-3ef30d9d.js → index-f79a4e53.js} +21 -2
  107. package/dist/cjs/index-f79a4e53.js.map +1 -0
  108. package/dist/cjs/loader.cjs.js +3 -3
  109. package/dist/cjs/loader.cjs.js.map +1 -1
  110. package/dist/cjs/types-3eb02246.js.map +1 -1
  111. package/dist/collection/assets/back-icon.svg +1 -1
  112. package/dist/collection/assets/check-icon.svg +1 -1
  113. package/dist/collection/assets/chevron-icon.svg +1 -1
  114. package/dist/collection/assets/dismiss-icon.svg +3 -0
  115. package/dist/collection/assets/error-icon.svg +3 -3
  116. package/dist/collection/assets/info-icon.svg +3 -3
  117. package/dist/collection/assets/neutral-icon.svg +3 -3
  118. package/dist/collection/assets/success-icon.svg +3 -3
  119. package/dist/collection/assets/warning-icon-outline.svg +3 -0
  120. package/dist/collection/assets/warning-icon.svg +3 -3
  121. package/dist/collection/collection-manifest.json +6 -2
  122. package/dist/collection/components/ic-alert/ic-alert.css +23 -17
  123. package/dist/collection/components/ic-alert/ic-alert.js +32 -24
  124. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  125. package/dist/collection/components/ic-back-to-top/assets/ArrowUpward.svg +2 -2
  126. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +23 -7
  127. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +18 -7
  128. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  129. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +6 -0
  130. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +33 -4
  131. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  132. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  133. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  134. package/dist/collection/components/ic-button/ic-button.css +26 -14
  135. package/dist/collection/components/ic-button/ic-button.js +17 -32
  136. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  137. package/dist/collection/components/ic-card/ic-card.css +66 -17
  138. package/dist/collection/components/ic-card/ic-card.js +123 -15
  139. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  140. package/dist/collection/components/ic-checkbox/ic-checkbox.css +65 -30
  141. package/dist/collection/components/ic-checkbox/ic-checkbox.js +66 -13
  142. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  143. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +18 -2
  144. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +11 -11
  145. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  146. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.test.a11y.js +1 -1
  147. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.test.a11y.js.map +1 -1
  148. package/dist/collection/components/ic-chip/ic-chip.css +596 -0
  149. package/dist/collection/components/ic-chip/ic-chip.js +247 -0
  150. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -0
  151. package/dist/collection/components/ic-chip/ic-chip.test.a11y.js +11 -0
  152. package/dist/collection/components/ic-chip/ic-chip.test.a11y.js.map +1 -0
  153. package/dist/collection/components/ic-chip/ic-chip.types.js +2 -0
  154. package/dist/collection/components/ic-chip/ic-chip.types.js.map +1 -0
  155. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +11 -1
  156. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +6 -6
  157. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  158. package/dist/collection/components/ic-data-entity/ic-data-entity.css +7 -1
  159. package/dist/collection/components/ic-data-entity/ic-data-entity.js +2 -2
  160. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  161. package/dist/collection/components/ic-data-row/ic-data-row.css +26 -8
  162. package/dist/collection/components/ic-data-row/ic-data-row.js +14 -12
  163. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  164. package/dist/collection/components/ic-divider/ic-divider.css +1 -1
  165. package/dist/collection/components/ic-divider/ic-divider.js +1 -1
  166. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  167. package/dist/collection/components/ic-footer/ic-footer.css +10 -4
  168. package/dist/collection/components/ic-footer/ic-footer.js +19 -16
  169. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  170. package/dist/collection/components/ic-footer-link/ic-footer-link.css +35 -3
  171. package/dist/collection/components/ic-footer-link/ic-footer-link.js +101 -4
  172. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  173. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +1 -1
  174. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +4 -3
  175. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  176. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.test.a11y.js +1 -1
  177. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.test.a11y.js.map +1 -1
  178. package/dist/collection/components/ic-hero/ic-hero.css +35 -30
  179. package/dist/collection/components/ic-hero/ic-hero.js +10 -10
  180. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  181. package/dist/collection/components/ic-horizontal-scroll/assets/left-arrow.svg +3 -0
  182. package/dist/collection/components/ic-horizontal-scroll/assets/right-arrow.svg +3 -0
  183. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +539 -0
  184. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +213 -0
  185. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -0
  186. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.js +34 -0
  187. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.js.map +1 -0
  188. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +31 -18
  189. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +8 -8
  190. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  191. package/dist/collection/components/ic-input-container/ic-input-container.css +0 -1
  192. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  193. package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
  194. package/dist/collection/components/ic-input-label/ic-input-label.js +8 -8
  195. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  196. package/dist/collection/components/ic-input-validation/ic-input-validation.css +4 -5
  197. package/dist/collection/components/ic-input-validation/ic-input-validation.js +5 -5
  198. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  199. package/dist/collection/components/ic-link/ic-link.css +0 -9
  200. package/dist/collection/components/ic-link/ic-link.js +38 -11
  201. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  202. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +96 -105
  203. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +96 -16
  204. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  205. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.types.js.map +1 -1
  206. package/dist/collection/components/ic-menu/ic-menu.css +26 -14
  207. package/dist/collection/components/ic-menu/ic-menu.js +135 -68
  208. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  209. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +9 -8
  210. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  211. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +14 -7
  212. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +7 -6
  213. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  214. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +68 -18
  215. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +113 -16
  216. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  217. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +15 -11
  218. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +8 -8
  219. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  220. package/dist/collection/components/ic-page-header/ic-page-header.css +15 -5
  221. package/dist/collection/components/ic-page-header/ic-page-header.js +10 -10
  222. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  223. package/dist/collection/components/ic-radio-group/ic-radio-group.css +32 -0
  224. package/dist/collection/components/ic-radio-group/ic-radio-group.js +44 -13
  225. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  226. package/dist/collection/components/ic-radio-group/ic-radio-group.test.a11y.js +1 -1
  227. package/dist/collection/components/ic-radio-group/ic-radio-group.test.a11y.js.map +1 -1
  228. package/dist/collection/components/ic-radio-option/ic-radio-option.css +58 -49
  229. package/dist/collection/components/ic-radio-option/ic-radio-option.js +65 -19
  230. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  231. package/dist/collection/components/ic-search-bar/ic-search-bar.css +24 -18
  232. package/dist/collection/components/ic-search-bar/ic-search-bar.js +87 -82
  233. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  234. package/dist/collection/components/ic-section-container/ic-section-container.css +1 -0
  235. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  236. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  237. package/dist/collection/components/ic-select/assets/Expand.svg +1 -1
  238. package/dist/collection/components/ic-select/ic-select.css +35 -18
  239. package/dist/collection/components/ic-select/ic-select.js +320 -77
  240. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  241. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +57 -36
  242. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +39 -23
  243. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  244. package/dist/collection/components/ic-skeleton/ic-skeleton.css +8 -0
  245. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  246. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  247. package/dist/collection/components/ic-status-tag/ic-status-tag.css +15 -7
  248. package/dist/collection/components/ic-status-tag/ic-status-tag.js +22 -3
  249. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  250. package/dist/collection/components/ic-status-tag/ic-status-tag.test.a11y.js +1 -1
  251. package/dist/collection/components/ic-status-tag/ic-status-tag.test.a11y.js.map +1 -1
  252. package/dist/collection/components/ic-step/ic-step.css +157 -25
  253. package/dist/collection/components/ic-step/ic-step.js +270 -36
  254. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  255. package/dist/collection/components/ic-step/ic-step.types.js.map +1 -1
  256. package/dist/collection/components/ic-stepper/ic-stepper-test-examples.js +74 -0
  257. package/dist/collection/components/ic-stepper/ic-stepper-test-examples.js.map +1 -0
  258. package/dist/collection/components/ic-stepper/ic-stepper.css +15 -1
  259. package/dist/collection/components/ic-stepper/ic-stepper.js +210 -40
  260. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  261. package/dist/collection/components/ic-stepper/ic-stepper.test.a11y.js +13 -1
  262. package/dist/collection/components/ic-stepper/ic-stepper.test.a11y.js.map +1 -1
  263. package/dist/collection/components/ic-switch/ic-switch.css +48 -18
  264. package/dist/collection/components/ic-switch/ic-switch.js +36 -7
  265. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  266. package/dist/collection/components/ic-tab/ic-tab.css +12 -2
  267. package/dist/collection/components/ic-tab/ic-tab.js +39 -12
  268. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  269. package/dist/collection/components/ic-tab-context/ic-tab-context.js +31 -4
  270. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  271. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js +1 -1
  272. package/dist/collection/components/ic-tab-context/ic-tab-context.test.a11y.js.map +1 -1
  273. package/dist/collection/components/ic-tab-group/ic-tab-group.css +6 -120
  274. package/dist/collection/components/ic-tab-group/ic-tab-group.js +12 -156
  275. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  276. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +4 -0
  277. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +4 -8
  278. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  279. package/dist/collection/components/ic-text-field/ic-text-field.css +18 -7
  280. package/dist/collection/components/ic-text-field/ic-text-field.js +32 -32
  281. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  282. package/dist/collection/components/ic-theme/ic-theme.js +29 -16
  283. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  284. package/dist/collection/components/ic-toast/ic-toast.css +597 -0
  285. package/dist/collection/components/ic-toast/ic-toast.js +382 -0
  286. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -0
  287. package/dist/collection/components/ic-toast/ic-toast.test.a11y.js +16 -0
  288. package/dist/collection/components/ic-toast/ic-toast.test.a11y.js.map +1 -0
  289. package/dist/collection/components/ic-toast/ic-toast.types.js +2 -0
  290. package/dist/collection/components/ic-toast/ic-toast.types.js.map +1 -0
  291. package/dist/collection/components/ic-toast-region/ic-toast-region.js +81 -0
  292. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -0
  293. package/dist/collection/components/ic-tooltip/ic-tooltip.css +13 -9
  294. package/dist/collection/components/ic-tooltip/ic-tooltip.js +25 -2
  295. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  296. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +108 -113
  297. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +21 -15
  298. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  299. package/dist/collection/components/ic-top-navigation/ic-top-navigation.test.a11y.js +1 -1
  300. package/dist/collection/components/ic-top-navigation/ic-top-navigation.test.a11y.js.map +1 -1
  301. package/dist/collection/components/ic-typography/ic-typography.js +1 -1
  302. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  303. package/dist/collection/normalize.css +440 -0
  304. package/dist/collection/testspec.setup.js +8 -0
  305. package/dist/collection/testspec.setup.js.map +1 -1
  306. package/dist/collection/utils/constants.js +37 -0
  307. package/dist/collection/utils/constants.js.map +1 -1
  308. package/dist/collection/utils/helpers.js +80 -38
  309. package/dist/collection/utils/helpers.js.map +1 -1
  310. package/dist/collection/utils/types.js.map +1 -1
  311. package/dist/components/OpenInNew.js +5 -0
  312. package/dist/components/OpenInNew.js.map +1 -0
  313. package/dist/components/check-icon.js +1 -1
  314. package/dist/components/chevron-icon.js +1 -1
  315. package/dist/components/helpers.js +147 -38
  316. package/dist/components/helpers.js.map +1 -1
  317. package/dist/components/ic-alert.js +6 -25
  318. package/dist/components/ic-alert.js.map +1 -1
  319. package/dist/components/ic-back-to-top.js +23 -11
  320. package/dist/components/ic-back-to-top.js.map +1 -1
  321. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  322. package/dist/components/ic-breadcrumb2.js +14 -4
  323. package/dist/components/ic-breadcrumb2.js.map +1 -1
  324. package/dist/components/ic-button2.js +9 -21
  325. package/dist/components/ic-button2.js.map +1 -1
  326. package/dist/components/ic-card.js +68 -7
  327. package/dist/components/ic-card.js.map +1 -1
  328. package/dist/components/ic-checkbox-group.js +4 -4
  329. package/dist/components/ic-checkbox-group.js.map +1 -1
  330. package/dist/components/ic-checkbox.js +21 -7
  331. package/dist/components/ic-checkbox.js.map +1 -1
  332. package/dist/components/ic-chip.d.ts +11 -0
  333. package/dist/components/ic-chip.js +111 -0
  334. package/dist/components/ic-chip.js.map +1 -0
  335. package/dist/components/ic-classification-banner.js +2 -2
  336. package/dist/components/ic-classification-banner.js.map +1 -1
  337. package/dist/components/ic-data-entity.js +1 -1
  338. package/dist/components/ic-data-entity.js.map +1 -1
  339. package/dist/components/ic-data-row.js +12 -10
  340. package/dist/components/ic-data-row.js.map +1 -1
  341. package/dist/components/ic-divider2.js +3 -3
  342. package/dist/components/ic-divider2.js.map +1 -1
  343. package/dist/components/ic-footer-link-group.js +5 -4
  344. package/dist/components/ic-footer-link-group.js.map +1 -1
  345. package/dist/components/ic-footer-link.js +18 -6
  346. package/dist/components/ic-footer-link.js.map +1 -1
  347. package/dist/components/ic-footer.js +5 -5
  348. package/dist/components/ic-footer.js.map +1 -1
  349. package/dist/components/ic-hero.js +3 -3
  350. package/dist/components/ic-hero.js.map +1 -1
  351. package/dist/components/ic-horizontal-scroll.d.ts +11 -0
  352. package/dist/components/ic-horizontal-scroll.js +8 -0
  353. package/dist/components/ic-horizontal-scroll.js.map +1 -0
  354. package/dist/components/ic-horizontal-scroll2.js +199 -0
  355. package/dist/components/ic-horizontal-scroll2.js.map +1 -0
  356. package/dist/components/ic-input-component-container2.js +2 -3
  357. package/dist/components/ic-input-component-container2.js.map +1 -1
  358. package/dist/components/ic-input-container2.js +1 -1
  359. package/dist/components/ic-input-container2.js.map +1 -1
  360. package/dist/components/ic-input-label2.js +1 -1
  361. package/dist/components/ic-input-label2.js.map +1 -1
  362. package/dist/components/ic-input-validation2.js +2 -4
  363. package/dist/components/ic-input-validation2.js.map +1 -1
  364. package/dist/components/ic-link2.js +16 -9
  365. package/dist/components/ic-link2.js.map +1 -1
  366. package/dist/components/ic-loading-indicator2.js +74 -15
  367. package/dist/components/ic-loading-indicator2.js.map +1 -1
  368. package/dist/components/ic-menu2.js +66 -35
  369. package/dist/components/ic-menu2.js.map +1 -1
  370. package/dist/components/ic-navigation-button.js +6 -5
  371. package/dist/components/ic-navigation-button.js.map +1 -1
  372. package/dist/components/ic-navigation-group.js +6 -5
  373. package/dist/components/ic-navigation-group.js.map +1 -1
  374. package/dist/components/ic-navigation-item.js +23 -11
  375. package/dist/components/ic-navigation-item.js.map +1 -1
  376. package/dist/components/ic-navigation-menu2.js +8 -8
  377. package/dist/components/ic-navigation-menu2.js.map +1 -1
  378. package/dist/components/ic-page-header.js +30 -6
  379. package/dist/components/ic-page-header.js.map +1 -1
  380. package/dist/components/ic-radio-group.js +14 -5
  381. package/dist/components/ic-radio-group.js.map +1 -1
  382. package/dist/components/ic-radio-option.js +26 -7
  383. package/dist/components/ic-radio-option.js.map +1 -1
  384. package/dist/components/ic-search-bar.js +56 -43
  385. package/dist/components/ic-search-bar.js.map +1 -1
  386. package/dist/components/ic-section-container2.js +1 -1
  387. package/dist/components/ic-section-container2.js.map +1 -1
  388. package/dist/components/ic-select.js +212 -59
  389. package/dist/components/ic-select.js.map +1 -1
  390. package/dist/components/ic-side-navigation.js +23 -11
  391. package/dist/components/ic-side-navigation.js.map +1 -1
  392. package/dist/components/ic-skeleton.js +1 -1
  393. package/dist/components/ic-skeleton.js.map +1 -1
  394. package/dist/components/ic-status-tag.js +6 -4
  395. package/dist/components/ic-status-tag.js.map +1 -1
  396. package/dist/components/ic-step.js +117 -23
  397. package/dist/components/ic-step.js.map +1 -1
  398. package/dist/components/ic-stepper.js +173 -42
  399. package/dist/components/ic-stepper.js.map +1 -1
  400. package/dist/components/ic-switch.js +14 -4
  401. package/dist/components/ic-switch.js.map +1 -1
  402. package/dist/components/ic-tab-context.js +6 -1
  403. package/dist/components/ic-tab-context.js.map +1 -1
  404. package/dist/components/ic-tab-group.js +30 -125
  405. package/dist/components/ic-tab-group.js.map +1 -1
  406. package/dist/components/ic-tab-panel.js +1 -5
  407. package/dist/components/ic-tab-panel.js.map +1 -1
  408. package/dist/components/ic-tab.js +11 -6
  409. package/dist/components/ic-tab.js.map +1 -1
  410. package/dist/components/ic-text-field2.js +6 -6
  411. package/dist/components/ic-text-field2.js.map +1 -1
  412. package/dist/components/ic-theme.js +20 -12
  413. package/dist/components/ic-theme.js.map +1 -1
  414. package/dist/components/ic-toast-region.d.ts +11 -0
  415. package/dist/components/ic-toast-region.js +63 -0
  416. package/dist/components/ic-toast-region.js.map +1 -0
  417. package/dist/components/ic-toast.d.ts +11 -0
  418. package/dist/components/ic-toast.js +214 -0
  419. package/dist/components/ic-toast.js.map +1 -0
  420. package/dist/components/ic-tooltip2.js +10 -4
  421. package/dist/components/ic-tooltip2.js.map +1 -1
  422. package/dist/components/ic-top-navigation.js +23 -12
  423. package/dist/components/ic-top-navigation.js.map +1 -1
  424. package/dist/components/ic-typography2.js.map +1 -1
  425. package/dist/components/index.d.ts +5 -1
  426. package/dist/components/index.js +4 -0
  427. package/dist/components/index.js.map +1 -1
  428. package/dist/components/types.js.map +1 -1
  429. package/dist/core/core.css +13 -13
  430. package/dist/core/core.esm.js +1 -1
  431. package/dist/core/core.esm.js.map +1 -1
  432. package/dist/core/normalize.css +440 -0
  433. package/dist/core/p-1724000c.js +2 -0
  434. package/dist/core/p-1724000c.js.map +1 -0
  435. package/dist/core/p-18ae4b6d.entry.js +2 -0
  436. package/dist/core/p-18ae4b6d.entry.js.map +1 -0
  437. package/dist/core/p-18bf3cb0.entry.js +2 -0
  438. package/dist/core/p-18bf3cb0.entry.js.map +1 -0
  439. package/dist/core/p-24240e11.js +2 -0
  440. package/dist/core/p-284970bc.entry.js +2 -0
  441. package/dist/core/p-284970bc.entry.js.map +1 -0
  442. package/dist/core/p-31a595c1.entry.js +2 -0
  443. package/dist/core/p-31a595c1.entry.js.map +1 -0
  444. package/dist/core/{p-972f4e69.entry.js → p-35a03442.entry.js} +2 -2
  445. package/dist/core/p-35a03442.entry.js.map +1 -0
  446. package/dist/core/p-360adc51.entry.js +2 -0
  447. package/dist/core/p-360adc51.entry.js.map +1 -0
  448. package/dist/core/p-3dda76db.entry.js +2 -0
  449. package/dist/core/p-3dda76db.entry.js.map +1 -0
  450. package/dist/core/p-41e239cb.entry.js +2 -0
  451. package/dist/core/p-41e239cb.entry.js.map +1 -0
  452. package/dist/core/p-44c9612c.entry.js +2 -0
  453. package/dist/core/p-44c9612c.entry.js.map +1 -0
  454. package/dist/core/p-4a73728b.entry.js +2 -0
  455. package/dist/core/p-4a73728b.entry.js.map +1 -0
  456. package/dist/core/p-521be4e2.entry.js +2 -0
  457. package/dist/core/p-521be4e2.entry.js.map +1 -0
  458. package/dist/core/{p-f9370be6.js → p-5450cebf.js} +3 -3
  459. package/dist/core/p-5450cebf.js.map +1 -0
  460. package/dist/core/p-5b083ce5.entry.js +2 -0
  461. package/dist/core/p-5b083ce5.entry.js.map +1 -0
  462. package/dist/core/p-62b3516e.entry.js +2 -0
  463. package/dist/core/p-62b3516e.entry.js.map +1 -0
  464. package/dist/core/{p-3c6defd7.entry.js → p-691ea0f2.entry.js} +2 -2
  465. package/dist/core/p-691ea0f2.entry.js.map +1 -0
  466. package/dist/core/p-6a397882.entry.js +2 -0
  467. package/dist/core/p-6a397882.entry.js.map +1 -0
  468. package/dist/core/p-6f57b13c.js.map +1 -1
  469. package/dist/core/p-7818d958.entry.js +2 -0
  470. package/dist/core/p-7818d958.entry.js.map +1 -0
  471. package/dist/core/p-7a0bf893.entry.js +2 -0
  472. package/dist/core/p-7a0bf893.entry.js.map +1 -0
  473. package/dist/core/p-7a9bc7f2.entry.js +2 -0
  474. package/dist/core/p-7a9bc7f2.entry.js.map +1 -0
  475. package/dist/core/{p-eb33ece2.entry.js → p-7fd50355.entry.js} +2 -2
  476. package/dist/core/p-7fd50355.entry.js.map +1 -0
  477. package/dist/core/p-897e967a.entry.js +2 -0
  478. package/dist/core/p-897e967a.entry.js.map +1 -0
  479. package/dist/core/p-8c7f4343.js +2 -0
  480. package/dist/core/p-8d4f7027.js +2 -0
  481. package/dist/core/p-8f1176c6.entry.js +2 -0
  482. package/dist/core/p-8f1176c6.entry.js.map +1 -0
  483. package/dist/core/{p-9c1f2861.entry.js → p-8ffa00c9.entry.js} +2 -2
  484. package/dist/core/p-8ffa00c9.entry.js.map +1 -0
  485. package/dist/core/p-91a8db51.entry.js +2 -0
  486. package/dist/core/p-91a8db51.entry.js.map +1 -0
  487. package/dist/core/p-a09d853e.entry.js +2 -0
  488. package/dist/core/p-a09d853e.entry.js.map +1 -0
  489. package/dist/core/p-a10da430.entry.js +2 -0
  490. package/dist/core/p-a10da430.entry.js.map +1 -0
  491. package/dist/core/p-a667e329.entry.js +2 -0
  492. package/dist/core/p-a667e329.entry.js.map +1 -0
  493. package/dist/core/{p-6be5e06b.entry.js → p-ad2477d8.entry.js} +2 -2
  494. package/dist/core/p-ad2477d8.entry.js.map +1 -0
  495. package/dist/core/p-b35ae170.entry.js +2 -0
  496. package/dist/core/p-b35ae170.entry.js.map +1 -0
  497. package/dist/core/p-b40bd77c.entry.js +2 -0
  498. package/dist/core/p-b40bd77c.entry.js.map +1 -0
  499. package/dist/core/p-b4234318.entry.js +2 -0
  500. package/dist/core/p-b4234318.entry.js.map +1 -0
  501. package/dist/core/{p-0d63bfe4.entry.js → p-ba8d6c23.entry.js} +2 -2
  502. package/dist/core/p-ba8d6c23.entry.js.map +1 -0
  503. package/dist/core/p-bd819f68.entry.js +2 -0
  504. package/dist/core/p-bd819f68.entry.js.map +1 -0
  505. package/dist/core/p-c4a7c734.entry.js +2 -0
  506. package/dist/core/p-c4a7c734.entry.js.map +1 -0
  507. package/dist/core/p-c72e4b75.entry.js +2 -0
  508. package/dist/core/p-c72e4b75.entry.js.map +1 -0
  509. package/dist/core/p-c7b86643.entry.js +2 -0
  510. package/dist/core/p-c7b86643.entry.js.map +1 -0
  511. package/dist/core/p-c7c5d2c5.entry.js +2 -0
  512. package/dist/core/p-c7c5d2c5.entry.js.map +1 -0
  513. package/dist/core/p-c8f07be6.entry.js +2 -0
  514. package/dist/core/p-c8f07be6.entry.js.map +1 -0
  515. package/dist/core/{p-6d0eaaeb.entry.js → p-c9068822.entry.js} +2 -2
  516. package/dist/core/{p-6d0eaaeb.entry.js.map → p-c9068822.entry.js.map} +1 -1
  517. package/dist/core/p-cccbf2bf.entry.js +2 -0
  518. package/dist/core/p-cccbf2bf.entry.js.map +1 -0
  519. package/dist/core/{p-0992a2ee.entry.js → p-d2508752.entry.js} +2 -2
  520. package/dist/core/p-d2508752.entry.js.map +1 -0
  521. package/dist/core/p-d37b9695.entry.js +2 -0
  522. package/dist/core/p-d37b9695.entry.js.map +1 -0
  523. package/dist/core/p-d86b0d0e.entry.js +2 -0
  524. package/dist/core/p-d86b0d0e.entry.js.map +1 -0
  525. package/dist/core/p-dea3d5f0.entry.js +2 -0
  526. package/dist/core/p-dea3d5f0.entry.js.map +1 -0
  527. package/dist/core/p-e0d88c31.entry.js +2 -0
  528. package/dist/core/p-e0d88c31.entry.js.map +1 -0
  529. package/dist/core/p-e9202767.entry.js +2 -0
  530. package/dist/core/p-e9202767.entry.js.map +1 -0
  531. package/dist/core/p-eba373bf.entry.js +2 -0
  532. package/dist/core/p-eba373bf.entry.js.map +1 -0
  533. package/dist/core/p-ed6cf9b9.entry.js +2 -0
  534. package/dist/core/p-ed6cf9b9.entry.js.map +1 -0
  535. package/dist/esm/OpenInNew-67a881e0.js +5 -0
  536. package/dist/esm/OpenInNew-67a881e0.js.map +1 -0
  537. package/dist/esm/{check-icon-53f1d9e5.js → check-icon-abb210ec.js} +2 -2
  538. package/dist/esm/check-icon-abb210ec.js.map +1 -0
  539. package/dist/esm/chevron-icon-98c98242.js +8 -0
  540. package/dist/esm/chevron-icon-98c98242.js.map +1 -0
  541. package/dist/esm/core.js +3 -3
  542. package/dist/esm/core.js.map +1 -1
  543. package/dist/esm/{helpers-e090fe7e.js → helpers-c332acf8.js} +148 -39
  544. package/dist/esm/helpers-c332acf8.js.map +1 -0
  545. package/dist/esm/ic-alert.entry.js +6 -25
  546. package/dist/esm/ic-alert.entry.js.map +1 -1
  547. package/dist/esm/ic-back-to-top.entry.js +24 -12
  548. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  549. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  550. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  551. package/dist/esm/ic-breadcrumb.entry.js +14 -5
  552. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  553. package/dist/esm/ic-button_3.entry.js +86 -37
  554. package/dist/esm/ic-button_3.entry.js.map +1 -1
  555. package/dist/esm/ic-card.entry.js +43 -6
  556. package/dist/esm/ic-card.entry.js.map +1 -1
  557. package/dist/esm/ic-checkbox-group.entry.js +4 -4
  558. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  559. package/dist/esm/ic-checkbox.entry.js +19 -6
  560. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  561. package/dist/esm/ic-chip.entry.js +73 -0
  562. package/dist/esm/ic-chip.entry.js.map +1 -0
  563. package/dist/esm/ic-classification-banner.entry.js +3 -3
  564. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  565. package/dist/esm/ic-data-entity.entry.js +2 -2
  566. package/dist/esm/ic-data-entity.entry.js.map +1 -1
  567. package/dist/esm/ic-data-row.entry.js +14 -12
  568. package/dist/esm/ic-data-row.entry.js.map +1 -1
  569. package/dist/esm/ic-divider.entry.js +3 -3
  570. package/dist/esm/ic-divider.entry.js.map +1 -1
  571. package/dist/esm/ic-footer-link-group.entry.js +4 -3
  572. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  573. package/dist/esm/ic-footer-link.entry.js +12 -5
  574. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  575. package/dist/esm/ic-footer.entry.js +5 -5
  576. package/dist/esm/ic-footer.entry.js.map +1 -1
  577. package/dist/esm/ic-hero.entry.js +3 -3
  578. package/dist/esm/ic-hero.entry.js.map +1 -1
  579. package/dist/esm/ic-horizontal-scroll.entry.js +154 -0
  580. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -0
  581. package/dist/esm/ic-input-component-container_3.entry.js +70 -40
  582. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  583. package/dist/esm/ic-input-label_2.entry.js +3 -5
  584. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  585. package/dist/esm/ic-link.entry.js +13 -7
  586. package/dist/esm/ic-link.entry.js.map +1 -1
  587. package/dist/esm/ic-navigation-button.entry.js +5 -4
  588. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  589. package/dist/esm/ic-navigation-group.entry.js +6 -5
  590. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  591. package/dist/esm/ic-navigation-item.entry.js +18 -11
  592. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  593. package/dist/esm/ic-navigation-menu.entry.js +8 -8
  594. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  595. package/dist/esm/ic-page-header.entry.js +5 -5
  596. package/dist/esm/ic-page-header.entry.js.map +1 -1
  597. package/dist/esm/ic-radio-group.entry.js +13 -5
  598. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  599. package/dist/esm/ic-radio-option.entry.js +24 -6
  600. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  601. package/dist/esm/ic-search-bar.entry.js +53 -41
  602. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  603. package/dist/esm/ic-section-container.entry.js +2 -2
  604. package/dist/esm/ic-section-container.entry.js.map +1 -1
  605. package/dist/esm/ic-select.entry.js +206 -59
  606. package/dist/esm/ic-select.entry.js.map +1 -1
  607. package/dist/esm/ic-side-navigation.entry.js +24 -12
  608. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  609. package/dist/esm/ic-skeleton.entry.js +2 -2
  610. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  611. package/dist/esm/ic-status-tag.entry.js +6 -5
  612. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  613. package/dist/esm/ic-step.entry.js +103 -23
  614. package/dist/esm/ic-step.entry.js.map +1 -1
  615. package/dist/esm/ic-stepper.entry.js +166 -42
  616. package/dist/esm/ic-stepper.entry.js.map +1 -1
  617. package/dist/esm/ic-switch.entry.js +12 -3
  618. package/dist/esm/ic-switch.entry.js.map +1 -1
  619. package/dist/esm/ic-tab-context.entry.js +7 -2
  620. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  621. package/dist/esm/ic-tab-group.entry.js +9 -118
  622. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  623. package/dist/esm/ic-tab-panel.entry.js +2 -6
  624. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  625. package/dist/esm/ic-tab.entry.js +10 -6
  626. package/dist/esm/ic-tab.entry.js.map +1 -1
  627. package/dist/esm/ic-text-field.entry.js +5 -5
  628. package/dist/esm/ic-text-field.entry.js.map +1 -1
  629. package/dist/esm/ic-theme.entry.js +21 -13
  630. package/dist/esm/ic-theme.entry.js.map +1 -1
  631. package/dist/esm/ic-toast-region.entry.js +44 -0
  632. package/dist/esm/ic-toast-region.entry.js.map +1 -0
  633. package/dist/esm/ic-toast.entry.js +161 -0
  634. package/dist/esm/ic-toast.entry.js.map +1 -0
  635. package/dist/esm/ic-top-navigation.entry.js +15 -10
  636. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  637. package/dist/esm/ic-typography.entry.js +1 -1
  638. package/dist/esm/ic-typography.entry.js.map +1 -1
  639. package/dist/esm/{index-1500de1f.js → index-90721b3c.js} +21 -2
  640. package/dist/esm/index-90721b3c.js.map +1 -0
  641. package/dist/esm/loader.js +3 -3
  642. package/dist/esm/loader.js.map +1 -1
  643. package/dist/esm/types-dd515332.js.map +1 -1
  644. package/dist/types/components/ic-alert/ic-alert.d.ts +14 -10
  645. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +1 -0
  646. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +9 -5
  647. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +2 -2
  648. package/dist/types/components/ic-button/ic-button.d.ts +11 -14
  649. package/dist/types/components/ic-card/ic-card.d.ts +35 -10
  650. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +18 -10
  651. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +9 -9
  652. package/dist/types/components/ic-chip/ic-chip.d.ts +48 -0
  653. package/dist/types/components/ic-chip/ic-chip.test.a11y.d.ts +1 -0
  654. package/dist/types/components/ic-chip/ic-chip.types.d.ts +2 -0
  655. package/dist/types/components/ic-classification-banner/ic-classification-banner.d.ts +5 -5
  656. package/dist/types/components/ic-data-entity/ic-data-entity.d.ts +2 -2
  657. package/dist/types/components/ic-data-row/ic-data-row.d.ts +3 -3
  658. package/dist/types/components/ic-footer/ic-footer.d.ts +12 -12
  659. package/dist/types/components/ic-footer-link/ic-footer-link.d.ts +20 -0
  660. package/dist/types/components/ic-footer-link-group/ic-footer-link-group.d.ts +1 -1
  661. package/dist/types/components/ic-hero/ic-hero.d.ts +9 -9
  662. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +39 -0
  663. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.test.a11y.d.ts +1 -0
  664. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +8 -8
  665. package/dist/types/components/ic-input-container/ic-input-container.d.ts +2 -2
  666. package/dist/types/components/ic-input-label/ic-input-label.d.ts +8 -8
  667. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +5 -5
  668. package/dist/types/components/ic-link/ic-link.d.ts +10 -7
  669. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +15 -4
  670. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.types.d.ts +5 -0
  671. package/dist/types/components/ic-menu/ic-menu.d.ts +36 -18
  672. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +6 -6
  673. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +3 -3
  674. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +28 -8
  675. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +2 -2
  676. package/dist/types/components/ic-page-header/ic-page-header.d.ts +10 -8
  677. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +15 -11
  678. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +17 -11
  679. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +31 -30
  680. package/dist/types/components/ic-section-container/ic-section-container.d.ts +2 -2
  681. package/dist/types/components/ic-select/ic-select.d.ts +68 -23
  682. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +13 -12
  683. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +2 -2
  684. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +5 -1
  685. package/dist/types/components/ic-step/ic-step.d.ts +37 -9
  686. package/dist/types/components/ic-step/ic-step.types.d.ts +2 -0
  687. package/dist/types/components/ic-stepper/ic-stepper-test-examples.d.ts +4 -0
  688. package/dist/types/components/ic-stepper/ic-stepper.d.ts +23 -6
  689. package/dist/types/components/ic-switch/ic-switch.d.ts +11 -7
  690. package/dist/types/components/ic-tab/ic-tab.d.ts +10 -7
  691. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +8 -4
  692. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +5 -33
  693. package/dist/types/components/ic-tab-panel/ic-tab-panel.d.ts +3 -4
  694. package/dist/types/components/ic-text-field/ic-text-field.d.ts +31 -31
  695. package/dist/types/components/ic-theme/ic-theme.d.ts +5 -4
  696. package/dist/types/components/ic-toast/ic-toast.d.ts +66 -0
  697. package/dist/types/components/ic-toast/ic-toast.test.a11y.d.ts +1 -0
  698. package/dist/types/components/ic-toast/ic-toast.types.d.ts +1 -0
  699. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +12 -0
  700. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +4 -0
  701. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +7 -6
  702. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -1
  703. package/dist/types/components.d.ts +937 -562
  704. package/dist/types/interface.d.ts +0 -1
  705. package/dist/types/testspec.setup.d.ts +1 -0
  706. package/dist/types/utils/constants.d.ts +24 -0
  707. package/dist/types/utils/helpers.d.ts +17 -3
  708. package/dist/types/utils/types.d.ts +6 -0
  709. package/hydrate/index.d.ts +1 -1
  710. package/hydrate/index.js +1768 -667
  711. package/package.json +9 -6
  712. package/dist/cjs/check-icon-999d9877.js.map +0 -1
  713. package/dist/cjs/chevron-icon-d175fe66.js.map +0 -1
  714. package/dist/cjs/error-icon-99504103.js +0 -18
  715. package/dist/cjs/error-icon-99504103.js.map +0 -1
  716. package/dist/cjs/helpers-d0eeccf0.js.map +0 -1
  717. package/dist/cjs/index-3ef30d9d.js.map +0 -1
  718. package/dist/cjs/success-icon-887b2097.js +0 -11
  719. package/dist/cjs/success-icon-887b2097.js.map +0 -1
  720. package/dist/collection/components/ic-alert/ic-alert.types.js +0 -2
  721. package/dist/collection/components/ic-alert/ic-alert.types.js.map +0 -1
  722. package/dist/collection/components/ic-tab-group/assets/left-arrow.svg +0 -3
  723. package/dist/collection/components/ic-tab-group/assets/right-arrow.svg +0 -3
  724. package/dist/components/error-icon.js +0 -15
  725. package/dist/components/error-icon.js.map +0 -1
  726. package/dist/components/success-icon.js +0 -9
  727. package/dist/components/success-icon.js.map +0 -1
  728. package/dist/core/p-037273aa.entry.js +0 -2
  729. package/dist/core/p-037273aa.entry.js.map +0 -1
  730. package/dist/core/p-0992a2ee.entry.js.map +0 -1
  731. package/dist/core/p-0d63bfe4.entry.js.map +0 -1
  732. package/dist/core/p-12e113bf.entry.js +0 -2
  733. package/dist/core/p-12e113bf.entry.js.map +0 -1
  734. package/dist/core/p-155114db.entry.js +0 -2
  735. package/dist/core/p-155114db.entry.js.map +0 -1
  736. package/dist/core/p-17d0d631.entry.js +0 -2
  737. package/dist/core/p-17d0d631.entry.js.map +0 -1
  738. package/dist/core/p-1b619302.entry.js +0 -2
  739. package/dist/core/p-1b619302.entry.js.map +0 -1
  740. package/dist/core/p-1e7b4310.js +0 -2
  741. package/dist/core/p-2177dae2.entry.js +0 -2
  742. package/dist/core/p-2177dae2.entry.js.map +0 -1
  743. package/dist/core/p-378a7270.entry.js +0 -2
  744. package/dist/core/p-378a7270.entry.js.map +0 -1
  745. package/dist/core/p-3c6defd7.entry.js.map +0 -1
  746. package/dist/core/p-40d3fd89.entry.js +0 -2
  747. package/dist/core/p-40d3fd89.entry.js.map +0 -1
  748. package/dist/core/p-48029498.entry.js +0 -2
  749. package/dist/core/p-48029498.entry.js.map +0 -1
  750. package/dist/core/p-50a0f1a0.entry.js +0 -2
  751. package/dist/core/p-50a0f1a0.entry.js.map +0 -1
  752. package/dist/core/p-54b77947.entry.js +0 -2
  753. package/dist/core/p-54b77947.entry.js.map +0 -1
  754. package/dist/core/p-59041cfc.entry.js +0 -2
  755. package/dist/core/p-59041cfc.entry.js.map +0 -1
  756. package/dist/core/p-5977c1e0.entry.js +0 -2
  757. package/dist/core/p-5977c1e0.entry.js.map +0 -1
  758. package/dist/core/p-6009c5bc.entry.js +0 -2
  759. package/dist/core/p-6009c5bc.entry.js.map +0 -1
  760. package/dist/core/p-6be5e06b.entry.js.map +0 -1
  761. package/dist/core/p-7577c6a3.entry.js +0 -2
  762. package/dist/core/p-7577c6a3.entry.js.map +0 -1
  763. package/dist/core/p-8054c2c0.entry.js +0 -2
  764. package/dist/core/p-8054c2c0.entry.js.map +0 -1
  765. package/dist/core/p-89d46b9b.entry.js +0 -2
  766. package/dist/core/p-89d46b9b.entry.js.map +0 -1
  767. package/dist/core/p-972f4e69.entry.js.map +0 -1
  768. package/dist/core/p-9a3d6bca.entry.js +0 -2
  769. package/dist/core/p-9a3d6bca.entry.js.map +0 -1
  770. package/dist/core/p-9c1f2861.entry.js.map +0 -1
  771. package/dist/core/p-9db8edb7.entry.js +0 -2
  772. package/dist/core/p-9db8edb7.entry.js.map +0 -1
  773. package/dist/core/p-9e1f450f.entry.js +0 -2
  774. package/dist/core/p-9e1f450f.entry.js.map +0 -1
  775. package/dist/core/p-a183353c.entry.js +0 -2
  776. package/dist/core/p-a183353c.entry.js.map +0 -1
  777. package/dist/core/p-a6715f61.entry.js +0 -2
  778. package/dist/core/p-a6715f61.entry.js.map +0 -1
  779. package/dist/core/p-a9237c61.entry.js +0 -2
  780. package/dist/core/p-a9237c61.entry.js.map +0 -1
  781. package/dist/core/p-aad5da60.entry.js +0 -2
  782. package/dist/core/p-aad5da60.entry.js.map +0 -1
  783. package/dist/core/p-ae6aa67f.js +0 -2
  784. package/dist/core/p-af6a41bd.entry.js +0 -2
  785. package/dist/core/p-af6a41bd.entry.js.map +0 -1
  786. package/dist/core/p-bf4ddf33.entry.js +0 -2
  787. package/dist/core/p-bf4ddf33.entry.js.map +0 -1
  788. package/dist/core/p-bf5717ca.js +0 -2
  789. package/dist/core/p-bfa9392f.entry.js +0 -2
  790. package/dist/core/p-bfa9392f.entry.js.map +0 -1
  791. package/dist/core/p-c023c49c.entry.js +0 -2
  792. package/dist/core/p-c023c49c.entry.js.map +0 -1
  793. package/dist/core/p-c96adfd7.entry.js +0 -2
  794. package/dist/core/p-c96adfd7.entry.js.map +0 -1
  795. package/dist/core/p-d38168f0.entry.js +0 -2
  796. package/dist/core/p-d38168f0.entry.js.map +0 -1
  797. package/dist/core/p-d61c2983.entry.js +0 -2
  798. package/dist/core/p-d61c2983.entry.js.map +0 -1
  799. package/dist/core/p-db6566c0.entry.js +0 -2
  800. package/dist/core/p-db6566c0.entry.js.map +0 -1
  801. package/dist/core/p-e28af65b.js +0 -2
  802. package/dist/core/p-e28af65b.js.map +0 -1
  803. package/dist/core/p-eb33ece2.entry.js.map +0 -1
  804. package/dist/core/p-ee3a9fd0.entry.js +0 -2
  805. package/dist/core/p-ee3a9fd0.entry.js.map +0 -1
  806. package/dist/core/p-ef59f111.entry.js +0 -2
  807. package/dist/core/p-ef59f111.entry.js.map +0 -1
  808. package/dist/core/p-f228c232.js +0 -2
  809. package/dist/core/p-f228c232.js.map +0 -1
  810. package/dist/core/p-f9370be6.js.map +0 -1
  811. package/dist/core/p-fce4b26b.entry.js +0 -2
  812. package/dist/core/p-fce4b26b.entry.js.map +0 -1
  813. package/dist/esm/check-icon-53f1d9e5.js.map +0 -1
  814. package/dist/esm/chevron-icon-5b38c60a.js +0 -8
  815. package/dist/esm/chevron-icon-5b38c60a.js.map +0 -1
  816. package/dist/esm/error-icon-6046a380.js +0 -15
  817. package/dist/esm/error-icon-6046a380.js.map +0 -1
  818. package/dist/esm/helpers-e090fe7e.js.map +0 -1
  819. package/dist/esm/index-1500de1f.js.map +0 -1
  820. package/dist/esm/success-icon-2f71b115.js +0 -9
  821. package/dist/esm/success-icon-2f71b115.js.map +0 -1
  822. package/dist/types/components/ic-alert/ic-alert.types.d.ts +0 -1
  823. /package/dist/collection/{components/ic-link/assets → assets}/OpenInNew.svg +0 -0
  824. /package/dist/core/{p-1e7b4310.js.map → p-24240e11.js.map} +0 -0
  825. /package/dist/core/{p-ae6aa67f.js.map → p-8c7f4343.js.map} +0 -0
  826. /package/dist/core/{p-bf5717ca.js.map → p-8d4f7027.js.map} +0 -0
@@ -466,19 +466,19 @@ input {
466
466
  }
467
467
 
468
468
  .ic-switch-label-small {
469
- margin-bottom: 10px;
469
+ margin-bottom: 0.625rem;
470
470
  }
471
471
 
472
472
  .ic-switch-toggle {
473
473
  display: flex;
474
474
  align-items: center;
475
475
  justify-content: space-around;
476
- width: 64px;
476
+ width: 4rem;
477
477
  height: var(--ic-space-xl);
478
478
  position: relative;
479
479
  border-radius: 100vw;
480
480
  background-color: var(--ic-architectural-200);
481
- border: 1px solid var(--ic-architectural-700);
481
+ border: 0.063rem solid var(--ic-architectural-700);
482
482
  box-sizing: border-box;
483
483
  transition: var(--ic-transition-duration-fast);
484
484
  }
@@ -493,13 +493,13 @@ input {
493
493
 
494
494
  .ic-switch-toggle::before {
495
495
  content: "";
496
- width: 21.33px;
497
- height: 21.33px;
496
+ width: 1.333rem;
497
+ height: 1.333rem;
498
498
  border-radius: 50%;
499
499
  position: absolute;
500
500
  z-index: 2;
501
501
  top: 50%;
502
- left: 5.33px;
502
+ left: 0.333rem;
503
503
  transform: translate(0, -50%);
504
504
  background-color: var(--ic-architectural-700);
505
505
  transition: var(--ic-transition-duration-slow);
@@ -508,8 +508,8 @@ input {
508
508
  .ic-switch-icon {
509
509
  display: inline-block;
510
510
  vertical-align: middle;
511
- width: 10px;
512
- height: 10px;
511
+ width: 0.625rem;
512
+ height: 0.625rem;
513
513
  }
514
514
 
515
515
  .ic-switch-icon-circle,
@@ -542,26 +542,26 @@ input {
542
542
  }
543
543
 
544
544
  .ic-switch-input:not([disabled]) + .ic-switch-toggle:hover::before {
545
- box-shadow: 0 0 0 12px var(--ic-action-dark-bg-hover);
545
+ box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-hover);
546
546
  }
547
547
 
548
548
  .ic-switch-input:not([disabled]) + .ic-switch-toggle:active::before {
549
- box-shadow: 0 0 0 12px var(--ic-action-dark-bg-active);
549
+ box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-active);
550
550
  }
551
551
 
552
552
  .ic-switch-input:not([disabled]):checked + .ic-switch-toggle:hover::before {
553
- box-shadow: 0 0 0 12px var(--ic-action-default-bg-hover);
553
+ box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-hover);
554
554
  }
555
555
 
556
556
  .ic-switch-input:not([disabled]):checked + .ic-switch-toggle:active::before {
557
- box-shadow: 0 0 0 12px var(--ic-action-default-bg-active);
557
+ box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-active);
558
558
  }
559
559
 
560
560
  .ic-switch-input:focus:not([disabled]) + .ic-switch-toggle,
561
561
  .ic-switch-input:focus-visible:not([disabled]) + .ic-switch-toggle {
562
- box-shadow: 0 0 0 1px var(--ic-architectural-white),
563
- 0 0 0 3px var(--ic-action-default),
564
- 0 0 0 8px var(--ic-action-default-active-alpha);
562
+ box-shadow: 0 0 0 0.063rem var(--ic-architectural-white),
563
+ 0 0 0 0.188rem var(--ic-action-default),
564
+ 0 0 0 0.5rem var(--ic-action-default-active-alpha);
565
565
  }
566
566
 
567
567
  .ic-switch-disabled {
@@ -578,7 +578,7 @@ input {
578
578
 
579
579
  .ic-switch-input:disabled + .ic-switch-toggle {
580
580
  background-color: var(--ic-architectural-80);
581
- border: 1px dashed var(--ic-architectural-300);
581
+ border: 0.063rem dashed var(--ic-architectural-300);
582
582
  }
583
583
 
584
584
  .ic-switch-input:disabled ~ .ic-switch-checked-status {
@@ -591,7 +591,7 @@ input {
591
591
 
592
592
  .ic-switch-input:disabled:checked + .ic-switch-toggle {
593
593
  background-color: var(--ic-status-info-background);
594
- border: 1px dashed #98c9f5;
594
+ border: 0.063rem dashed #98c9f5;
595
595
  }
596
596
 
597
597
  .ic-switch-input:disabled:checked + .ic-switch-toggle::before {
@@ -603,7 +603,7 @@ input {
603
603
  }
604
604
 
605
605
  .ic-switch-small .ic-switch-checked-status {
606
- padding-left: 6px;
606
+ padding-left: 0.375rem;
607
607
  }
608
608
 
609
609
  .ic-switch-small .ic-switch-toggle {
@@ -624,3 +624,33 @@ input {
624
624
  ::slotted(*) {
625
625
  margin-left: var(--ic-space-sm);
626
626
  }
627
+
628
+ ::slotted(svg) {
629
+ fill: currentcolor;
630
+ }
631
+
632
+ @media (forced-colors: active) {
633
+ .ic-switch-toggle::before,
634
+ .ic-switch-input:checked + .ic-switch-toggle {
635
+ border: var(--ic-hc-border);
636
+ }
637
+
638
+ .ic-switch-input:checked + .ic-switch-toggle::before {
639
+ transform: translate(calc(var(--ic-space-xl) - 0.125rem), -50%);
640
+ }
641
+
642
+ .ic-switch-input:disabled + .ic-switch-toggle,
643
+ .ic-switch-input:disabled:checked + .ic-switch-toggle,
644
+ .ic-switch-input:disabled + .ic-switch-toggle::before {
645
+ border-color: GrayText;
646
+ }
647
+
648
+ .ic-switch-input:disabled ~ .ic-switch-checked-status {
649
+ color: GrayText;
650
+ }
651
+
652
+ .ic-switch-disabled .ic-switch-icon-circle,
653
+ .ic-switch-disabled .ic-switch-icon-line {
654
+ stroke: GrayText;
655
+ }
656
+ }
@@ -35,6 +35,14 @@ export class Switch {
35
35
  this.checkedState = false;
36
36
  this.initiallyChecked = this.checked;
37
37
  }
38
+ /**
39
+ * Sets focus on the switch.
40
+ */
41
+ async setFocus() {
42
+ if (this.el.shadowRoot.querySelector("input")) {
43
+ this.el.shadowRoot.querySelector("input").focus();
44
+ }
45
+ }
38
46
  componentWillLoad() {
39
47
  this.checkedState = this.checked;
40
48
  addFormResetListener(this.el, this.handleFormReset);
@@ -60,6 +68,7 @@ export class Switch {
60
68
  }
61
69
  static get is() { return "ic-switch"; }
62
70
  static get encapsulation() { return "shadow"; }
71
+ static get delegatesFocus() { return true; }
63
72
  static get originalStyleUrls() {
64
73
  return {
65
74
  "$": ["ic-switch.css"]
@@ -84,7 +93,7 @@ export class Switch {
84
93
  "optional": false,
85
94
  "docs": {
86
95
  "tags": [],
87
- "text": "Applies an aria-label to the component, for when no visual 'name' is provided."
96
+ "text": "The aria-label applied to the switch when no visual 'name' is provided."
88
97
  },
89
98
  "attribute": "label",
90
99
  "reflect": false
@@ -101,7 +110,7 @@ export class Switch {
101
110
  "optional": true,
102
111
  "docs": {
103
112
  "tags": [],
104
- "text": "Hides the label and applies the required label value as an aria-label."
113
+ "text": "If `true`, the label will be hidden and the required label value will be applied as an aria-label."
105
114
  },
106
115
  "attribute": "hide-label",
107
116
  "reflect": false,
@@ -119,7 +128,7 @@ export class Switch {
119
128
  "optional": true,
120
129
  "docs": {
121
130
  "tags": [],
122
- "text": "Provide helper text to display additional field guidance."
131
+ "text": "The helper text that will be displayed for additional field guidance."
123
132
  },
124
133
  "attribute": "helper-text",
125
134
  "reflect": false,
@@ -137,7 +146,7 @@ export class Switch {
137
146
  "optional": true,
138
147
  "docs": {
139
148
  "tags": [],
140
- "text": "If true, the component is checked."
149
+ "text": "If `true`, the switch will display as checked."
141
150
  },
142
151
  "attribute": "checked",
143
152
  "reflect": false,
@@ -155,7 +164,7 @@ export class Switch {
155
164
  "optional": true,
156
165
  "docs": {
157
166
  "tags": [],
158
- "text": "If true, the component reduces in size to the small state."
167
+ "text": "If `true`, the small styling will be applied to the switch."
159
168
  },
160
169
  "attribute": "small",
161
170
  "reflect": false,
@@ -173,7 +182,7 @@ export class Switch {
173
182
  "optional": true,
174
183
  "docs": {
175
184
  "tags": [],
176
- "text": "If true, the component is not interactive."
185
+ "text": "If `true`, the disabled state will be set."
177
186
  },
178
187
  "attribute": "disabled",
179
188
  "reflect": false,
@@ -209,7 +218,7 @@ export class Switch {
209
218
  "optional": true,
210
219
  "docs": {
211
220
  "tags": [],
212
- "text": "If true, the component will render the On/Off state text."
221
+ "text": "If `true`, the switch will render the On/Off state text."
213
222
  },
214
223
  "attribute": "show-state",
215
224
  "reflect": false,
@@ -294,6 +303,26 @@ export class Switch {
294
303
  }
295
304
  }];
296
305
  }
306
+ static get methods() {
307
+ return {
308
+ "setFocus": {
309
+ "complexType": {
310
+ "signature": "() => Promise<void>",
311
+ "parameters": [],
312
+ "references": {
313
+ "Promise": {
314
+ "location": "global"
315
+ }
316
+ },
317
+ "return": "Promise<void>"
318
+ },
319
+ "docs": {
320
+ "text": "Sets focus on the switch.",
321
+ "tags": []
322
+ }
323
+ }
324
+ };
325
+ }
297
326
  static get elementRef() { return "el"; }
298
327
  }
299
328
  //# 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} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: true,\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n /**\n * Applies an aria-label to the component, for when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * Hides the label and applies the required label value as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n /**\n * Provide helper text to display additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n /**\n * If true, the component is checked.\n */\n @Prop() checked?: boolean = false;\n /**\n * If true, the component reduces in size to the small state.\n */\n @Prop() small?: boolean = false;\n /**\n * If true, the component is not interactive.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n /**\n * If true, the component will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n render() {\n const {\n label,\n checkedState,\n small,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host>\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: small,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: small,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={small ? \"2\" : \"1\"}\n x2=\"9\"\n y2={small ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={small ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n /**\n * If `true`, the small styling will be applied to the switch.\n */\n @Prop() small?: boolean = false;\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n render() {\n const {\n label,\n checkedState,\n small,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host>\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: small,\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: small,\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={small ? \"2\" : \"1\"}\n x2=\"9\"\n y2={small ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={small ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
@@ -453,7 +453,7 @@ video {
453
453
  align-items: center;
454
454
  border-radius: 0;
455
455
  color: var(--label-color);
456
- height: 40px;
456
+ height: 2.5rem;
457
457
  padding: 0 var(--ic-space-md);
458
458
  cursor: pointer;
459
459
  position: relative;
@@ -507,5 +507,15 @@ video {
507
507
  }
508
508
 
509
509
  ::slotted(svg) {
510
- fill: var(--label-color);
510
+ fill: currentcolor;
511
+ }
512
+
513
+ @media (forced-colors: active) {
514
+ :host {
515
+ border-bottom: var(--ic-space-xxs) solid canvas;
516
+ }
517
+
518
+ :host([disabled]) {
519
+ color: GrayText;
520
+ }
511
521
  }
@@ -1,5 +1,4 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- import { onComponentRequiredPropUndefined } from "../../utils/helpers";
3
2
  import { IcThemeForegroundEnum, } from "../../utils/types";
4
3
  /**
5
4
  * @slot icon - Content will be rendered next to the tab label.
@@ -45,12 +44,17 @@ export class Tab {
45
44
  this.tabPosition = undefined;
46
45
  this.appearance = "dark";
47
46
  }
47
+ /**
48
+ * Sets focus on the tab.
49
+ */
50
+ async setFocus() {
51
+ if (this.host) {
52
+ this.host.focus();
53
+ }
54
+ }
48
55
  componentDidUpdate() {
49
56
  this.isInitialRender = false;
50
57
  }
51
- componentDidLoad() {
52
- onComponentRequiredPropUndefined([{ prop: this.tabPosition, propName: "tab-position" }], "Tab");
53
- }
54
58
  render() {
55
59
  const { disabled, selected, appearance } = this;
56
60
  return (h(Host, { class: {
@@ -85,7 +89,7 @@ export class Tab {
85
89
  "docs": {
86
90
  "tags": [{
87
91
  "name": "internal",
88
- "text": "Provide a unique context if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel."
92
+ "text": "The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel."
89
93
  }],
90
94
  "text": ""
91
95
  },
@@ -105,7 +109,7 @@ export class Tab {
105
109
  "optional": true,
106
110
  "docs": {
107
111
  "tags": [],
108
- "text": "Disables the tab."
112
+ "text": "If `true`, the disabled state will be set."
109
113
  },
110
114
  "attribute": "disabled",
111
115
  "reflect": false,
@@ -124,7 +128,7 @@ export class Tab {
124
128
  "docs": {
125
129
  "tags": [{
126
130
  "name": "internal",
127
- "text": "Will display a selected indicator and set tabIndex."
131
+ "text": "If `true`, the tab will display with a selected indicator and tabIndex will be set."
128
132
  }],
129
133
  "text": ""
130
134
  },
@@ -160,8 +164,8 @@ export class Tab {
160
164
  "resolved": "number",
161
165
  "references": {}
162
166
  },
163
- "required": true,
164
- "optional": false,
167
+ "required": false,
168
+ "optional": true,
165
169
  "docs": {
166
170
  "tags": [{
167
171
  "name": "internal",
@@ -208,8 +212,11 @@ export class Tab {
208
212
  "cancelable": true,
209
213
  "composed": true,
210
214
  "docs": {
211
- "tags": [],
212
- "text": "Called when a tab is selected."
215
+ "tags": [{
216
+ "name": "internal",
217
+ "text": "Emitted when a tab is selected."
218
+ }],
219
+ "text": ""
213
220
  },
214
221
  "complexType": {
215
222
  "original": "IcTabClickEventDetail",
@@ -230,7 +237,7 @@ export class Tab {
230
237
  "docs": {
231
238
  "tags": [{
232
239
  "name": "internal",
233
- "text": "Called when a tab is focussed."
240
+ "text": "Emitted when a tab is focussed."
234
241
  }],
235
242
  "text": ""
236
243
  },
@@ -246,6 +253,26 @@ export class Tab {
246
253
  }
247
254
  }];
248
255
  }
256
+ static get methods() {
257
+ return {
258
+ "setFocus": {
259
+ "complexType": {
260
+ "signature": "() => Promise<void>",
261
+ "parameters": [],
262
+ "references": {
263
+ "Promise": {
264
+ "location": "global"
265
+ }
266
+ },
267
+ "return": "Promise<void>"
268
+ },
269
+ "docs": {
270
+ "text": "Sets focus on the tab.",
271
+ "tags": []
272
+ }
273
+ }
274
+ };
275
+ }
249
276
  static get elementRef() { return "host"; }
250
277
  }
251
278
  //# sourceMappingURL=ic-tab.js.map
@@ -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} from \"@stencil/core\";\n\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal Provide a unique context 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 * Disables the tab.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal Will display a selected indicator and set tabIndex. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition!: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * Called when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Called when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\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.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 componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.tabPosition, propName: \"tab-position\" }],\n \"Tab\"\n );\n }\n\n render() {\n const { disabled, selected, appearance } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport {\n IcThemeForegroundNoDefault,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n @Element() host: HTMLIcTabElement;\n\n /** @internal The unique context needed if using multiple tabs inside one another i.e. rendering another tabs inside a tab panel. */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /** @internal If `true`, the tab will display with a selected indicator and tabIndex will be set. */\n @Prop({ reflect: true }) selected?: boolean = false;\n\n /** @internal The shared ID between panel and tab. */\n @Prop({ reflect: true }) tabId?: string;\n\n /** @internal The position of the tab inside the tabs array in context. */\n @Prop() tabPosition?: number;\n\n /** @internal Determines whether the light or dark variant of the tabs should be displayed. */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n private isInitialRender: boolean = true;\n private focusFromClick: boolean = false;\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.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a seperate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.host) {\n this.host.focus();\n }\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n 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 }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.host.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n </Host>\n );\n }\n}\n"]}
@@ -47,7 +47,7 @@ export class TabContext {
47
47
  }
48
48
  };
49
49
  // Determines whether the selected tab is being controlled within the component
50
- // or by the user (via selectedTabIndex and onTabSelect)
50
+ // or by the user (via selectedTabIndex and onIcTabSelect)
51
51
  this.setControlledMode = () => {
52
52
  if (this.selectedTabIndex !== undefined) {
53
53
  this.controlledMode = true;
@@ -89,6 +89,7 @@ export class TabContext {
89
89
  this.selectedTab = newIndex;
90
90
  }
91
91
  else {
92
+ this.icTabSelect.emit({ tabIndex: newIndex });
92
93
  this.tabSelect.emit({ tabIndex: newIndex });
93
94
  }
94
95
  };
@@ -184,6 +185,9 @@ export class TabContext {
184
185
  event.detail.contextId === this.contextId) {
185
186
  this.selectedTab = event.detail.position;
186
187
  }
188
+ this.icTabSelect.emit({
189
+ tabIndex: event.detail.position,
190
+ });
187
191
  this.tabSelect.emit({
188
192
  tabIndex: event.detail.position,
189
193
  });
@@ -225,7 +229,7 @@ export class TabContext {
225
229
  "optional": true,
226
230
  "docs": {
227
231
  "tags": [],
228
- "text": "Provide a unique context if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel."
232
+ "text": "The unique context needed if using multiple tabs inside one another i.e. rendering another set of tabs inside a tab panel."
229
233
  },
230
234
  "attribute": "context-id",
231
235
  "reflect": true,
@@ -266,7 +270,7 @@ export class TabContext {
266
270
  "optional": true,
267
271
  "docs": {
268
272
  "tags": [],
269
- "text": "Allows the user to control the selected tab. Must be used alongside the tabSelect event to manage tab selection."
273
+ "text": "The selected tab to be controlled by the user. Must be used alongside the icTabSelect event to manage tab selection."
270
274
  },
271
275
  "attribute": "selected-tab-index",
272
276
  "reflect": false
@@ -288,7 +292,7 @@ export class TabContext {
288
292
  "optional": true,
289
293
  "docs": {
290
294
  "tags": [],
291
- "text": "Determines whether the light or dark variant of the tabs should be displayed."
295
+ "text": "The appearance of the tab context, e.g dark, or light."
292
296
  },
293
297
  "attribute": "appearance",
294
298
  "reflect": false,
@@ -308,6 +312,29 @@ export class TabContext {
308
312
  "bubbles": true,
309
313
  "cancelable": true,
310
314
  "composed": true,
315
+ "docs": {
316
+ "tags": [{
317
+ "name": "deprecated",
318
+ "text": "This event should not be used anymore. Use icTabSelect instead."
319
+ }],
320
+ "text": ""
321
+ },
322
+ "complexType": {
323
+ "original": "IcTabSelectEventDetail",
324
+ "resolved": "IcTabSelectEventDetail",
325
+ "references": {
326
+ "IcTabSelectEventDetail": {
327
+ "location": "import",
328
+ "path": "../ic-tab/ic-tab.types"
329
+ }
330
+ }
331
+ }
332
+ }, {
333
+ "method": "icTabSelect",
334
+ "name": "icTabSelect",
335
+ "bubbles": true,
336
+ "cancelable": true,
337
+ "composed": true,
311
338
  "docs": {
312
339
  "tags": [],
313
340
  "text": "Emitted when a user selects a tab."
@@ -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 {\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"]}
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 * 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 * 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 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 /**\n * The appearance of the tab context, e.g dark, or light.\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 * @deprecated This event should not be used anymore. Use icTabSelect instead.\n */\n @Event() tabSelect: EventEmitter<IcTabSelectEventDetail>;\n\n /**\n * Emitted when a user selects a tab.\n */\n @Event() icTabSelect: 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.icTabSelect.emit({\n tabIndex: 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 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 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,7 +3,7 @@ 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-group>
6
+ <ic-tab-group label="A11y Tabs">
7
7
  <ic-tab>One</ic-tab>
8
8
  <ic-tab>Two</ic-tab>
9
9
  <ic-tab>Three</ic-tab>