@ukic/web-components 3.0.0-alpha.1 → 3.0.0-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (632) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-f1cf5156.js → helpers-69219f14.js} +24 -1
  3. package/dist/cjs/helpers-69219f14.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  6. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-button_3.cjs.entry.js +17 -16
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
  22. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-chip.cjs.entry.js +21 -14
  24. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  30. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +447 -165
  42. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-input-label_2.cjs.entry.js +9 -7
  44. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  59. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-popover-menu.cjs.entry.js +27 -21
  64. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-radio-group.cjs.entry.js +20 -10
  66. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-radio-option.cjs.entry.js +27 -22
  68. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-search-bar.cjs.entry.js +12 -25
  70. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-select.cjs.entry.js +148 -38
  72. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  74. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -4
  76. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-step.cjs.entry.js +4 -5
  80. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-stepper.cjs.entry.js +12 -2
  82. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  84. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-tab-context.cjs.entry.js +58 -122
  86. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  88. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  89. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-tab.cjs.entry.js +6 -7
  91. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-text-field.cjs.entry.js +3 -3
  93. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  95. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  96. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  98. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  100. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-typography.cjs.entry.js +5 -3
  102. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  103. package/dist/cjs/loader.cjs.js +1 -1
  104. package/dist/collection/components/ic-accordion/ic-accordion.css +3 -3
  105. package/dist/collection/components/ic-alert/ic-alert.css +19 -12
  106. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  107. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  108. package/dist/collection/components/ic-badge/ic-badge.css +2 -2
  109. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +1 -1
  110. package/dist/collection/components/ic-button/ic-button.css +30 -33
  111. package/dist/collection/components/ic-button/ic-button.js +5 -6
  112. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  113. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +9 -9
  114. package/dist/collection/components/ic-checkbox/ic-checkbox.css +9 -4
  115. package/dist/collection/components/ic-checkbox/ic-checkbox.js +1 -1
  116. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  117. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +2 -2
  118. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +1 -1
  119. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  120. package/dist/collection/components/ic-chip/ic-chip.css +64 -49
  121. package/dist/collection/components/ic-chip/ic-chip.js +41 -15
  122. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  123. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +16 -0
  124. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +1 -1
  125. package/dist/collection/components/ic-classification-banner/ic-classification-banner.css +25 -9
  126. package/dist/collection/components/ic-divider/ic-divider.css +2 -2
  127. package/dist/collection/components/ic-footer/ic-footer.css +3 -3
  128. package/dist/collection/components/ic-footer-link/ic-footer-link.css +4 -4
  129. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +4 -4
  130. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +3 -3
  131. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -9
  132. package/dist/collection/components/ic-input-label/ic-input-label.css +6 -5
  133. package/dist/collection/components/ic-input-label/ic-input-label.js +45 -4
  134. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  135. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +35 -49
  136. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +1 -1
  137. package/dist/collection/components/ic-input-validation/ic-input-validation.css +3 -3
  138. package/dist/collection/components/ic-link/ic-link.css +1 -1
  139. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +15 -10
  140. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +50 -31
  141. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  142. package/dist/collection/components/ic-menu/ic-menu.css +79 -19
  143. package/dist/collection/components/ic-menu/ic-menu.js +485 -192
  144. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  145. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +381 -33
  146. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +1 -1
  147. package/dist/collection/components/ic-menu-group/ic-menu-group.css +2 -2
  148. package/dist/collection/components/ic-menu-item/ic-menu-item.css +32 -28
  149. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +3 -3
  150. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +8 -8
  151. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +2 -2
  152. package/dist/collection/components/ic-page-header/ic-page-header.css +5 -2
  153. package/dist/collection/components/ic-page-header/ic-page-header.js +3 -3
  154. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  155. package/dist/collection/components/ic-pagination-item/ic-pagination-item.css +5 -5
  156. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +5 -5
  157. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +76 -19
  158. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  159. package/dist/collection/components/ic-radio-group/ic-radio-group.css +1 -1
  160. package/dist/collection/components/ic-radio-group/ic-radio-group.js +18 -8
  161. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  162. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +2 -2
  163. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
  164. package/dist/collection/components/ic-radio-option/ic-radio-option.css +4 -3
  165. package/dist/collection/components/ic-radio-option/ic-radio-option.js +26 -21
  166. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  167. package/dist/collection/components/ic-search-bar/ic-search-bar.css +6 -5
  168. package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -23
  169. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  170. package/dist/collection/components/ic-select/ic-select.css +45 -25
  171. package/dist/collection/components/ic-select/ic-select.js +192 -44
  172. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  173. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +160 -1
  174. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +1 -1
  175. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +8 -8
  176. package/dist/collection/components/ic-skeleton/ic-skeleton.css +4 -27
  177. package/dist/collection/components/ic-skeleton/ic-skeleton.js +16 -10
  178. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  179. package/dist/collection/components/ic-status-tag/ic-status-tag.css +1 -1
  180. package/dist/collection/components/ic-step/ic-step.css +65 -98
  181. package/dist/collection/components/ic-step/ic-step.js +29 -3
  182. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  183. package/dist/collection/components/ic-stepper/ic-stepper.js +37 -19
  184. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  185. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +4 -4
  186. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  187. package/dist/collection/components/ic-switch/ic-switch.css +28 -31
  188. package/dist/collection/components/ic-switch/ic-switch.js +29 -2
  189. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  190. package/dist/collection/components/ic-tab/ic-tab.js +5 -6
  191. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  192. package/dist/collection/components/ic-tab-context/ic-tab-context.js +58 -122
  193. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  194. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +2 -2
  195. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +1 -1
  196. package/dist/collection/components/ic-tab-panel/ic-tab-panel.css +1 -1
  197. package/dist/collection/components/ic-text-field/ic-text-field.css +7 -6
  198. package/dist/collection/components/ic-text-field/ic-text-field.js +1 -1
  199. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  200. package/dist/collection/components/ic-toast/ic-toast.css +9 -4
  201. package/dist/collection/components/ic-toast/ic-toast.js +1 -1
  202. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  203. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +1 -1
  204. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +1 -1
  205. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +8 -8
  206. package/dist/collection/components/ic-tooltip/ic-tooltip.css +7 -1
  207. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +6 -6
  208. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  209. package/dist/collection/components/ic-typography/ic-typography.css +3 -3
  210. package/dist/collection/components/ic-typography/ic-typography.js +3 -1
  211. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  212. package/dist/collection/utils/helpers.js +20 -0
  213. package/dist/collection/utils/helpers.js.map +1 -1
  214. package/dist/collection/utils/types.js.map +1 -1
  215. package/dist/components/helpers.js +22 -1
  216. package/dist/components/helpers.js.map +1 -1
  217. package/dist/components/ic-accordion.js +1 -1
  218. package/dist/components/ic-accordion.js.map +1 -1
  219. package/dist/components/ic-alert.js +1 -1
  220. package/dist/components/ic-alert.js.map +1 -1
  221. package/dist/components/ic-badge.js +1 -1
  222. package/dist/components/ic-badge.js.map +1 -1
  223. package/dist/components/ic-breadcrumb2.js +1 -1
  224. package/dist/components/ic-breadcrumb2.js.map +1 -1
  225. package/dist/components/ic-button2.js +6 -7
  226. package/dist/components/ic-button2.js.map +1 -1
  227. package/dist/components/ic-card-vertical.js +1 -1
  228. package/dist/components/ic-card-vertical.js.map +1 -1
  229. package/dist/components/ic-checkbox-group.js +2 -2
  230. package/dist/components/ic-checkbox-group.js.map +1 -1
  231. package/dist/components/ic-checkbox.js +2 -2
  232. package/dist/components/ic-checkbox.js.map +1 -1
  233. package/dist/components/ic-chip.js +23 -14
  234. package/dist/components/ic-chip.js.map +1 -1
  235. package/dist/components/ic-classification-banner.js +1 -1
  236. package/dist/components/ic-classification-banner.js.map +1 -1
  237. package/dist/components/ic-divider2.js +1 -1
  238. package/dist/components/ic-divider2.js.map +1 -1
  239. package/dist/components/ic-footer-link-group.js +1 -1
  240. package/dist/components/ic-footer-link-group.js.map +1 -1
  241. package/dist/components/ic-footer-link.js +1 -1
  242. package/dist/components/ic-footer-link.js.map +1 -1
  243. package/dist/components/ic-footer.js +1 -1
  244. package/dist/components/ic-footer.js.map +1 -1
  245. package/dist/components/ic-horizontal-scroll2.js +1 -1
  246. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  247. package/dist/components/ic-input-component-container2.js +1 -1
  248. package/dist/components/ic-input-component-container2.js.map +1 -1
  249. package/dist/components/ic-input-label2.js +10 -6
  250. package/dist/components/ic-input-label2.js.map +1 -1
  251. package/dist/components/ic-input-validation2.js +1 -1
  252. package/dist/components/ic-input-validation2.js.map +1 -1
  253. package/dist/components/ic-link2.js +1 -1
  254. package/dist/components/ic-link2.js.map +1 -1
  255. package/dist/components/ic-loading-indicator2.js +11 -9
  256. package/dist/components/ic-loading-indicator2.js.map +1 -1
  257. package/dist/components/ic-menu-group.js +1 -1
  258. package/dist/components/ic-menu-group.js.map +1 -1
  259. package/dist/components/ic-menu-item2.js +1 -1
  260. package/dist/components/ic-menu-item2.js.map +1 -1
  261. package/dist/components/ic-menu2.js +450 -167
  262. package/dist/components/ic-menu2.js.map +1 -1
  263. package/dist/components/ic-navigation-group.js +2 -2
  264. package/dist/components/ic-navigation-group.js.map +1 -1
  265. package/dist/components/ic-navigation-item.js +2 -2
  266. package/dist/components/ic-navigation-item.js.map +1 -1
  267. package/dist/components/ic-navigation-menu2.js +2 -2
  268. package/dist/components/ic-navigation-menu2.js.map +1 -1
  269. package/dist/components/ic-page-header.js +4 -4
  270. package/dist/components/ic-page-header.js.map +1 -1
  271. package/dist/components/ic-pagination-item2.js +2 -2
  272. package/dist/components/ic-pagination-item2.js.map +1 -1
  273. package/dist/components/ic-popover-menu.js +29 -21
  274. package/dist/components/ic-popover-menu.js.map +1 -1
  275. package/dist/components/ic-radio-group.js +19 -9
  276. package/dist/components/ic-radio-group.js.map +1 -1
  277. package/dist/components/ic-radio-option.js +27 -22
  278. package/dist/components/ic-radio-option.js.map +1 -1
  279. package/dist/components/ic-search-bar.js +12 -25
  280. package/dist/components/ic-search-bar.js.map +1 -1
  281. package/dist/components/ic-select.js +149 -38
  282. package/dist/components/ic-select.js.map +1 -1
  283. package/dist/components/ic-side-navigation.js +2 -2
  284. package/dist/components/ic-side-navigation.js.map +1 -1
  285. package/dist/components/ic-skeleton.js +5 -5
  286. package/dist/components/ic-skeleton.js.map +1 -1
  287. package/dist/components/ic-status-tag.js +1 -1
  288. package/dist/components/ic-status-tag.js.map +1 -1
  289. package/dist/components/ic-step.js +4 -4
  290. package/dist/components/ic-step.js.map +1 -1
  291. package/dist/components/ic-stepper.js +14 -3
  292. package/dist/components/ic-stepper.js.map +1 -1
  293. package/dist/components/ic-switch.js +7 -3
  294. package/dist/components/ic-switch.js.map +1 -1
  295. package/dist/components/ic-tab-context.js +58 -122
  296. package/dist/components/ic-tab-context.js.map +1 -1
  297. package/dist/components/ic-tab-panel.js +1 -1
  298. package/dist/components/ic-tab-panel.js.map +1 -1
  299. package/dist/components/ic-tab.js +5 -6
  300. package/dist/components/ic-tab.js.map +1 -1
  301. package/dist/components/ic-text-field2.js +3 -3
  302. package/dist/components/ic-text-field2.js.map +1 -1
  303. package/dist/components/ic-theme.js +1 -1
  304. package/dist/components/ic-toast.js +3 -3
  305. package/dist/components/ic-toast.js.map +1 -1
  306. package/dist/components/ic-toggle-button.js +1 -1
  307. package/dist/components/ic-toggle-button.js.map +1 -1
  308. package/dist/components/ic-tooltip2.js +1 -1
  309. package/dist/components/ic-tooltip2.js.map +1 -1
  310. package/dist/components/ic-top-navigation.js +2 -2
  311. package/dist/components/ic-top-navigation.js.map +1 -1
  312. package/dist/components/ic-typography2.js +4 -2
  313. package/dist/components/ic-typography2.js.map +1 -1
  314. package/dist/core/core.css +661 -37
  315. package/dist/core/core.esm.js +1 -1
  316. package/dist/core/core.esm.js.map +1 -1
  317. package/dist/core/{p-d2f89cb5.entry.js → p-0395442c.entry.js} +2 -2
  318. package/dist/core/p-0d233b0c.entry.js +2 -0
  319. package/dist/core/p-0d233b0c.entry.js.map +1 -0
  320. package/dist/core/p-134def81.entry.js +2 -0
  321. package/dist/core/p-134def81.entry.js.map +1 -0
  322. package/dist/core/p-14dfd8db.entry.js +2 -0
  323. package/dist/core/p-14dfd8db.entry.js.map +1 -0
  324. package/dist/core/p-1b116dd1.entry.js +2 -0
  325. package/dist/core/p-1b116dd1.entry.js.map +1 -0
  326. package/dist/core/p-21cc87c0.entry.js +2 -0
  327. package/dist/core/p-21cc87c0.entry.js.map +1 -0
  328. package/dist/core/{p-54238d16.entry.js → p-27274ca8.entry.js} +2 -2
  329. package/dist/core/p-27274ca8.entry.js.map +1 -0
  330. package/dist/core/p-2eae9b27.entry.js +2 -0
  331. package/dist/core/p-2eae9b27.entry.js.map +1 -0
  332. package/dist/core/p-3618ac34.entry.js +2 -0
  333. package/dist/core/p-3618ac34.entry.js.map +1 -0
  334. package/dist/core/{p-355acffa.entry.js → p-37dea10d.entry.js} +2 -2
  335. package/dist/core/p-384d454d.entry.js +2 -0
  336. package/dist/core/p-384d454d.entry.js.map +1 -0
  337. package/dist/core/p-3d417eff.entry.js +2 -0
  338. package/dist/core/p-3d417eff.entry.js.map +1 -0
  339. package/dist/core/p-3d9726a3.entry.js +2 -0
  340. package/dist/core/p-3d9726a3.entry.js.map +1 -0
  341. package/dist/core/p-43256b7c.entry.js +2 -0
  342. package/dist/core/p-43256b7c.entry.js.map +1 -0
  343. package/dist/core/{p-46ee459b.entry.js → p-4a3b1f06.entry.js} +2 -2
  344. package/dist/core/{p-46ee459b.entry.js.map → p-4a3b1f06.entry.js.map} +1 -1
  345. package/dist/core/p-50ead56c.entry.js +2 -0
  346. package/dist/core/p-50ead56c.entry.js.map +1 -0
  347. package/dist/core/{p-5a2630fb.entry.js → p-5cd016e1.entry.js} +2 -2
  348. package/dist/core/{p-5a2630fb.entry.js.map → p-5cd016e1.entry.js.map} +1 -1
  349. package/dist/core/{p-78ce4920.entry.js → p-5ef8e106.entry.js} +2 -2
  350. package/dist/core/{p-78ce4920.entry.js.map → p-5ef8e106.entry.js.map} +1 -1
  351. package/dist/core/{p-c81109da.entry.js → p-690c5e80.entry.js} +2 -2
  352. package/dist/core/p-690c5e80.entry.js.map +1 -0
  353. package/dist/core/{p-43f9a711.entry.js → p-6d3e4bb1.entry.js} +2 -2
  354. package/dist/core/{p-1e802eeb.entry.js → p-726673ee.entry.js} +2 -2
  355. package/dist/core/p-726673ee.entry.js.map +1 -0
  356. package/dist/core/p-72d30c8a.entry.js +2 -0
  357. package/dist/core/p-72d30c8a.entry.js.map +1 -0
  358. package/dist/core/{p-f30f3a3e.entry.js → p-76263187.entry.js} +2 -2
  359. package/dist/core/p-7827b5cb.entry.js +2 -0
  360. package/dist/core/p-7827b5cb.entry.js.map +1 -0
  361. package/dist/core/p-79d0be03.entry.js +2 -0
  362. package/dist/core/p-79d0be03.entry.js.map +1 -0
  363. package/dist/core/{p-bf4c61cb.entry.js → p-7b35de65.entry.js} +2 -2
  364. package/dist/core/{p-bf4c61cb.entry.js.map → p-7b35de65.entry.js.map} +1 -1
  365. package/dist/core/p-7fbf2d3e.entry.js +2 -0
  366. package/dist/core/p-7fbf2d3e.entry.js.map +1 -0
  367. package/dist/core/p-91cf9b2b.entry.js +2 -0
  368. package/dist/core/p-91cf9b2b.entry.js.map +1 -0
  369. package/dist/core/p-922984cb.entry.js +2 -0
  370. package/dist/core/p-922984cb.entry.js.map +1 -0
  371. package/dist/core/{p-e861a2b3.entry.js → p-95f603dd.entry.js} +2 -2
  372. package/dist/core/p-95f603dd.entry.js.map +1 -0
  373. package/dist/core/{p-e4b276b5.entry.js → p-97fb2bdf.entry.js} +2 -2
  374. package/dist/core/p-ac4b7329.entry.js +2 -0
  375. package/dist/core/p-ac4b7329.entry.js.map +1 -0
  376. package/dist/core/p-acbd15ab.entry.js +2 -0
  377. package/dist/core/p-acbd15ab.entry.js.map +1 -0
  378. package/dist/core/{p-e597da0e.entry.js → p-b01ffa55.entry.js} +2 -2
  379. package/dist/core/p-b01ffa55.entry.js.map +1 -0
  380. package/dist/core/p-b17c94b7.entry.js +2 -0
  381. package/dist/core/p-b17c94b7.entry.js.map +1 -0
  382. package/dist/core/p-b78f8b8c.entry.js +2 -0
  383. package/dist/core/p-b78f8b8c.entry.js.map +1 -0
  384. package/dist/core/{p-312cacae.js → p-b7eb8ef9.js} +2 -2
  385. package/dist/core/p-b7eb8ef9.js.map +1 -0
  386. package/dist/core/{p-363d6e88.entry.js → p-b95a72a3.entry.js} +2 -2
  387. package/dist/core/{p-21e5dd29.entry.js → p-b997064c.entry.js} +2 -2
  388. package/dist/core/{p-56d1828c.entry.js → p-ba6ecc15.entry.js} +2 -2
  389. package/dist/core/{p-56d1828c.entry.js.map → p-ba6ecc15.entry.js.map} +1 -1
  390. package/dist/core/p-c0fc3d02.entry.js +2 -0
  391. package/dist/core/p-c0fc3d02.entry.js.map +1 -0
  392. package/dist/core/p-c396bd4d.entry.js +2 -0
  393. package/dist/core/p-c396bd4d.entry.js.map +1 -0
  394. package/dist/core/{p-a3b6a02d.entry.js → p-c9cf932c.entry.js} +2 -2
  395. package/dist/core/{p-a3b6a02d.entry.js.map → p-c9cf932c.entry.js.map} +1 -1
  396. package/dist/core/p-cf7db84a.entry.js +2 -0
  397. package/dist/core/p-cf7db84a.entry.js.map +1 -0
  398. package/dist/core/{p-a765ad17.entry.js → p-dd36bf1b.entry.js} +2 -2
  399. package/dist/core/p-dd36bf1b.entry.js.map +1 -0
  400. package/dist/core/p-e488de54.entry.js +2 -0
  401. package/dist/core/p-e488de54.entry.js.map +1 -0
  402. package/dist/core/p-e4d1839e.entry.js +2 -0
  403. package/dist/core/p-e4d1839e.entry.js.map +1 -0
  404. package/dist/core/p-eb3b4935.entry.js +2 -0
  405. package/dist/core/p-eb3b4935.entry.js.map +1 -0
  406. package/dist/core/{p-60efd7fa.entry.js → p-ebafab37.entry.js} +2 -2
  407. package/dist/core/{p-82375dca.entry.js → p-ee6dd94c.entry.js} +2 -2
  408. package/dist/core/p-f0fc1bf0.entry.js +2 -0
  409. package/dist/core/p-f0fc1bf0.entry.js.map +1 -0
  410. package/dist/core/p-f24984c5.entry.js +2 -0
  411. package/dist/core/p-f24984c5.entry.js.map +1 -0
  412. package/dist/core/{p-d8870804.entry.js → p-f5b2b26d.entry.js} +2 -2
  413. package/dist/core/p-f60dbd0e.entry.js +2 -0
  414. package/dist/core/p-f60dbd0e.entry.js.map +1 -0
  415. package/dist/core/{p-40e9e76a.entry.js → p-f71c00ce.entry.js} +2 -2
  416. package/dist/core/{p-69f3ce5a.entry.js → p-ff4298b1.entry.js} +2 -2
  417. package/dist/core/p-ff4298b1.entry.js.map +1 -0
  418. package/dist/esm/core.js +1 -1
  419. package/dist/esm/{helpers-1c9151ef.js → helpers-e8797e8d.js} +23 -2
  420. package/dist/esm/helpers-e8797e8d.js.map +1 -0
  421. package/dist/esm/ic-accordion-group.entry.js +1 -1
  422. package/dist/esm/ic-accordion.entry.js +2 -2
  423. package/dist/esm/ic-accordion.entry.js.map +1 -1
  424. package/dist/esm/ic-alert.entry.js +2 -2
  425. package/dist/esm/ic-alert.entry.js.map +1 -1
  426. package/dist/esm/ic-back-to-top.entry.js +1 -1
  427. package/dist/esm/ic-badge.entry.js +2 -2
  428. package/dist/esm/ic-badge.entry.js.map +1 -1
  429. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  430. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  431. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  432. package/dist/esm/ic-button_3.entry.js +17 -16
  433. package/dist/esm/ic-button_3.entry.js.map +1 -1
  434. package/dist/esm/ic-card-vertical.entry.js +2 -2
  435. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  436. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  437. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  438. package/dist/esm/ic-checkbox.entry.js +3 -3
  439. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  440. package/dist/esm/ic-chip.entry.js +22 -15
  441. package/dist/esm/ic-chip.entry.js.map +1 -1
  442. package/dist/esm/ic-classification-banner.entry.js +1 -1
  443. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  444. package/dist/esm/ic-data-row.entry.js +1 -1
  445. package/dist/esm/ic-dialog.entry.js +1 -1
  446. package/dist/esm/ic-divider.entry.js +2 -2
  447. package/dist/esm/ic-divider.entry.js.map +1 -1
  448. package/dist/esm/ic-empty-state.entry.js +1 -1
  449. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  450. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  451. package/dist/esm/ic-footer-link.entry.js +2 -2
  452. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  453. package/dist/esm/ic-footer.entry.js +2 -2
  454. package/dist/esm/ic-footer.entry.js.map +1 -1
  455. package/dist/esm/ic-hero.entry.js +1 -1
  456. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  457. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  458. package/dist/esm/ic-input-component-container_3.entry.js +447 -165
  459. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  460. package/dist/esm/ic-input-label_2.entry.js +9 -7
  461. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  462. package/dist/esm/ic-link.entry.js +2 -2
  463. package/dist/esm/ic-link.entry.js.map +1 -1
  464. package/dist/esm/ic-menu-group.entry.js +2 -2
  465. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  466. package/dist/esm/ic-menu-item.entry.js +2 -2
  467. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  468. package/dist/esm/ic-navigation-button.entry.js +1 -1
  469. package/dist/esm/ic-navigation-group.entry.js +2 -2
  470. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  471. package/dist/esm/ic-navigation-item.entry.js +2 -2
  472. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  473. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  474. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  475. package/dist/esm/ic-page-header.entry.js +5 -5
  476. package/dist/esm/ic-page-header.entry.js.map +1 -1
  477. package/dist/esm/ic-pagination-item.entry.js +2 -2
  478. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  479. package/dist/esm/ic-pagination.entry.js +1 -1
  480. package/dist/esm/ic-popover-menu.entry.js +27 -21
  481. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  482. package/dist/esm/ic-radio-group.entry.js +20 -10
  483. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  484. package/dist/esm/ic-radio-option.entry.js +27 -22
  485. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  486. package/dist/esm/ic-search-bar.entry.js +12 -25
  487. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  488. package/dist/esm/ic-select.entry.js +148 -38
  489. package/dist/esm/ic-select.entry.js.map +1 -1
  490. package/dist/esm/ic-side-navigation.entry.js +2 -2
  491. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  492. package/dist/esm/ic-skeleton.entry.js +4 -4
  493. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  494. package/dist/esm/ic-status-tag.entry.js +2 -2
  495. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  496. package/dist/esm/ic-step.entry.js +4 -5
  497. package/dist/esm/ic-step.entry.js.map +1 -1
  498. package/dist/esm/ic-stepper.entry.js +12 -2
  499. package/dist/esm/ic-stepper.entry.js.map +1 -1
  500. package/dist/esm/ic-switch.entry.js +7 -4
  501. package/dist/esm/ic-switch.entry.js.map +1 -1
  502. package/dist/esm/ic-tab-context.entry.js +58 -122
  503. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  504. package/dist/esm/ic-tab-group.entry.js +1 -1
  505. package/dist/esm/ic-tab-panel.entry.js +2 -2
  506. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  507. package/dist/esm/ic-tab.entry.js +6 -7
  508. package/dist/esm/ic-tab.entry.js.map +1 -1
  509. package/dist/esm/ic-text-field.entry.js +3 -3
  510. package/dist/esm/ic-text-field.entry.js.map +1 -1
  511. package/dist/esm/ic-theme.entry.js +1 -1
  512. package/dist/esm/ic-toast.entry.js +3 -3
  513. package/dist/esm/ic-toast.entry.js.map +1 -1
  514. package/dist/esm/ic-toggle-button.entry.js +2 -2
  515. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  516. package/dist/esm/ic-top-navigation.entry.js +2 -2
  517. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  518. package/dist/esm/ic-typography.entry.js +5 -3
  519. package/dist/esm/ic-typography.entry.js.map +1 -1
  520. package/dist/esm/loader.js +1 -1
  521. package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
  522. package/dist/types/components/ic-chip/ic-chip.d.ts +8 -2
  523. package/dist/types/components/ic-input-label/ic-input-label.d.ts +8 -0
  524. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +9 -5
  525. package/dist/types/components/ic-menu/ic-menu.d.ts +43 -15
  526. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +7 -2
  527. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +3 -2
  528. package/dist/types/components/ic-select/ic-select.d.ts +24 -10
  529. package/dist/types/components/ic-skeleton/ic-skeleton.d.ts +3 -2
  530. package/dist/types/components/ic-step/ic-step.d.ts +5 -0
  531. package/dist/types/components/ic-stepper/ic-stepper.d.ts +6 -4
  532. package/dist/types/components/ic-switch/ic-switch.d.ts +5 -1
  533. package/dist/types/components/ic-tab-context/ic-tab-context.d.ts +8 -6
  534. package/dist/types/components.d.ts +113 -46
  535. package/dist/types/utils/helpers.d.ts +7 -0
  536. package/dist/types/utils/types.d.ts +1 -1
  537. package/hydrate/index.js +886 -494
  538. package/package.json +2 -2
  539. package/vscode-data.json +105 -35
  540. package/dist/cjs/helpers-f1cf5156.js.map +0 -1
  541. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js +0 -339
  542. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.e2e.js.map +0 -1
  543. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +0 -1106
  544. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +0 -1
  545. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js +0 -49
  546. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.e2e.js.map +0 -1
  547. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +0 -109
  548. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +0 -1
  549. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +0 -39
  550. package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +0 -1
  551. package/dist/core/p-09104e40.entry.js +0 -2
  552. package/dist/core/p-09104e40.entry.js.map +0 -1
  553. package/dist/core/p-0c0b1c74.entry.js +0 -2
  554. package/dist/core/p-0c0b1c74.entry.js.map +0 -1
  555. package/dist/core/p-0c3a0d85.entry.js +0 -2
  556. package/dist/core/p-0c3a0d85.entry.js.map +0 -1
  557. package/dist/core/p-1083a708.entry.js +0 -2
  558. package/dist/core/p-1083a708.entry.js.map +0 -1
  559. package/dist/core/p-130dd440.entry.js +0 -2
  560. package/dist/core/p-130dd440.entry.js.map +0 -1
  561. package/dist/core/p-1e802eeb.entry.js.map +0 -1
  562. package/dist/core/p-21312898.entry.js +0 -2
  563. package/dist/core/p-21312898.entry.js.map +0 -1
  564. package/dist/core/p-2ab86057.entry.js +0 -2
  565. package/dist/core/p-2ab86057.entry.js.map +0 -1
  566. package/dist/core/p-312cacae.js.map +0 -1
  567. package/dist/core/p-35b8b480.entry.js +0 -2
  568. package/dist/core/p-35b8b480.entry.js.map +0 -1
  569. package/dist/core/p-54238d16.entry.js.map +0 -1
  570. package/dist/core/p-550d7356.entry.js +0 -2
  571. package/dist/core/p-550d7356.entry.js.map +0 -1
  572. package/dist/core/p-5a52614c.entry.js +0 -2
  573. package/dist/core/p-5a52614c.entry.js.map +0 -1
  574. package/dist/core/p-69f3ce5a.entry.js.map +0 -1
  575. package/dist/core/p-79d2a33b.entry.js +0 -2
  576. package/dist/core/p-79d2a33b.entry.js.map +0 -1
  577. package/dist/core/p-80237a20.entry.js +0 -2
  578. package/dist/core/p-80237a20.entry.js.map +0 -1
  579. package/dist/core/p-804513ad.entry.js +0 -2
  580. package/dist/core/p-804513ad.entry.js.map +0 -1
  581. package/dist/core/p-8e1e25a7.entry.js +0 -2
  582. package/dist/core/p-8e1e25a7.entry.js.map +0 -1
  583. package/dist/core/p-a1a1000d.entry.js +0 -2
  584. package/dist/core/p-a1a1000d.entry.js.map +0 -1
  585. package/dist/core/p-a1b1a0ab.entry.js +0 -2
  586. package/dist/core/p-a1b1a0ab.entry.js.map +0 -1
  587. package/dist/core/p-a37bcdbe.entry.js +0 -2
  588. package/dist/core/p-a37bcdbe.entry.js.map +0 -1
  589. package/dist/core/p-a765ad17.entry.js.map +0 -1
  590. package/dist/core/p-aa2be24c.entry.js +0 -2
  591. package/dist/core/p-aa2be24c.entry.js.map +0 -1
  592. package/dist/core/p-b12a5283.entry.js +0 -2
  593. package/dist/core/p-b12a5283.entry.js.map +0 -1
  594. package/dist/core/p-b1b05979.entry.js +0 -2
  595. package/dist/core/p-b1b05979.entry.js.map +0 -1
  596. package/dist/core/p-c6795377.entry.js +0 -2
  597. package/dist/core/p-c6795377.entry.js.map +0 -1
  598. package/dist/core/p-c81109da.entry.js.map +0 -1
  599. package/dist/core/p-cb4d104e.entry.js +0 -2
  600. package/dist/core/p-cb4d104e.entry.js.map +0 -1
  601. package/dist/core/p-d43d1ec0.entry.js +0 -2
  602. package/dist/core/p-d43d1ec0.entry.js.map +0 -1
  603. package/dist/core/p-d5829a35.entry.js +0 -2
  604. package/dist/core/p-d5829a35.entry.js.map +0 -1
  605. package/dist/core/p-ddb8d280.entry.js +0 -2
  606. package/dist/core/p-ddb8d280.entry.js.map +0 -1
  607. package/dist/core/p-e0e34fa7.entry.js +0 -2
  608. package/dist/core/p-e0e34fa7.entry.js.map +0 -1
  609. package/dist/core/p-e597da0e.entry.js.map +0 -1
  610. package/dist/core/p-e861a2b3.entry.js.map +0 -1
  611. package/dist/core/p-ea277b05.entry.js +0 -2
  612. package/dist/core/p-ea277b05.entry.js.map +0 -1
  613. package/dist/core/p-ef871b8f.entry.js +0 -2
  614. package/dist/core/p-ef871b8f.entry.js.map +0 -1
  615. package/dist/core/p-f229d19e.entry.js +0 -2
  616. package/dist/core/p-f229d19e.entry.js.map +0 -1
  617. package/dist/core/p-fa587e6d.entry.js +0 -2
  618. package/dist/core/p-fa587e6d.entry.js.map +0 -1
  619. package/dist/core/p-fb6ac08d.entry.js +0 -2
  620. package/dist/core/p-fb6ac08d.entry.js.map +0 -1
  621. package/dist/esm/helpers-1c9151ef.js.map +0 -1
  622. /package/dist/core/{p-d2f89cb5.entry.js.map → p-0395442c.entry.js.map} +0 -0
  623. /package/dist/core/{p-355acffa.entry.js.map → p-37dea10d.entry.js.map} +0 -0
  624. /package/dist/core/{p-43f9a711.entry.js.map → p-6d3e4bb1.entry.js.map} +0 -0
  625. /package/dist/core/{p-f30f3a3e.entry.js.map → p-76263187.entry.js.map} +0 -0
  626. /package/dist/core/{p-e4b276b5.entry.js.map → p-97fb2bdf.entry.js.map} +0 -0
  627. /package/dist/core/{p-363d6e88.entry.js.map → p-b95a72a3.entry.js.map} +0 -0
  628. /package/dist/core/{p-21e5dd29.entry.js.map → p-b997064c.entry.js.map} +0 -0
  629. /package/dist/core/{p-60efd7fa.entry.js.map → p-ebafab37.entry.js.map} +0 -0
  630. /package/dist/core/{p-82375dca.entry.js.map → p-ee6dd94c.entry.js.map} +0 -0
  631. /package/dist/core/{p-d8870804.entry.js.map → p-f5b2b26d.entry.js.map} +0 -0
  632. /package/dist/core/{p-40e9e76a.entry.js.map → p-f71c00ce.entry.js.map} +0 -0
@@ -477,8 +477,8 @@ input {
477
477
  height: var(--ic-space-xl);
478
478
  position: relative;
479
479
  border-radius: 100vw;
480
- background-color: var(--ic-architectural-200);
481
- border: var(--ic-border-width) solid var(--ic-architectural-700);
480
+ background-color: var(--ic-switch-unchecked-bg);
481
+ border: var(--ic-border-width) solid var(--ic-switch-unchecked);
482
482
  box-sizing: border-box;
483
483
  transition: var(--ic-transition-duration-fast);
484
484
  }
@@ -490,6 +490,7 @@ input {
490
490
  .ic-switch-checked-status {
491
491
  padding-left: var(--ic-space-xxs);
492
492
  width: var(--ic-space-lg);
493
+ color: var(--ic-switch-help-text);
493
494
  }
494
495
 
495
496
  .ic-switch-toggle::before {
@@ -502,7 +503,7 @@ input {
502
503
  top: 50%;
503
504
  left: 0.333rem;
504
505
  transform: translate(0, -50%);
505
- background-color: var(--ic-architectural-700);
506
+ background-color: var(--ic-switch-unchecked);
506
507
  transition: var(--ic-transition-duration-slow);
507
508
  }
508
509
 
@@ -519,11 +520,11 @@ input {
519
520
  }
520
521
 
521
522
  .ic-switch-icon-circle {
522
- stroke: var(--ic-architectural-700);
523
+ stroke: var(--ic-switch-indicator-off);
523
524
  }
524
525
 
525
526
  .ic-switch-icon-line {
526
- stroke: var(--ic-architectural-white);
527
+ stroke: var(--ic-switch-indicator-on);
527
528
  }
528
529
 
529
530
  @media (prefers-reduced-motion: reduce) {
@@ -533,29 +534,29 @@ input {
533
534
  }
534
535
 
535
536
  .ic-switch-input:checked + .ic-switch-toggle {
536
- background-color: var(--ic-action-default);
537
+ background-color: var(--ic-switch-checked-bg);
537
538
  border: none;
538
539
  }
539
540
 
540
541
  .ic-switch-input:checked + .ic-switch-toggle::before {
541
542
  transform: translate(var(--ic-space-xl), -50%);
542
- background-color: var(--ic-architectural-white);
543
+ background-color: var(--ic-switch-checked);
543
544
  }
544
545
 
545
546
  .ic-switch-input:not([disabled]) + .ic-switch-toggle:hover::before {
546
- box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-hover);
547
+ box-shadow: 0 0 0 0.75rem var(--ic-switch-unchecked-bg-hover);
547
548
  }
548
549
 
549
550
  .ic-switch-input:not([disabled]) + .ic-switch-toggle:active::before {
550
- box-shadow: 0 0 0 0.75rem var(--ic-action-dark-bg-active);
551
+ box-shadow: 0 0 0 0.75rem var(--ic-switch-unchecked-bg-pressed);
551
552
  }
552
553
 
553
554
  .ic-switch-input:not([disabled]):checked + .ic-switch-toggle:hover::before {
554
- box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-hover);
555
+ box-shadow: 0 0 0 0.75rem var(--ic-switch-checked-bg-hover);
555
556
  }
556
557
 
557
558
  .ic-switch-input:not([disabled]):checked + .ic-switch-toggle:active::before {
558
- box-shadow: 0 0 0 0.75rem var(--ic-action-default-bg-active);
559
+ box-shadow: 0 0 0 0.75rem var(--ic-switch-checked-bg-pressed);
559
560
  }
560
561
 
561
562
  .ic-switch-input:focus:not([disabled]) + .ic-switch-toggle,
@@ -568,16 +569,16 @@ input {
568
569
  }
569
570
 
570
571
  .ic-switch-disabled .ic-switch-icon-circle {
571
- stroke: var(--ic-architectural-300);
572
+ stroke: var(--ic-switch-indicator-off-disabled);
572
573
  }
573
574
 
574
575
  .ic-switch-disabled .ic-switch-icon-line {
575
- stroke: var(--ic-action-default-bg-active);
576
+ stroke: var(--ic-switch-indicator-on-disabled);
576
577
  }
577
578
 
578
579
  .ic-switch-input:disabled + .ic-switch-toggle {
579
- background-color: var(--ic-architectural-80);
580
- border: var(--ic-border-disabled);
580
+ background-color: var(--ic-switch-unchecked-bg-disabled);
581
+ border: var(--ic-space-1px) dashed var(--ic-switch-unchecked-outline-disabled);
581
582
  }
582
583
 
583
584
  .ic-switch-input:disabled ~ .ic-switch-checked-status {
@@ -585,16 +586,17 @@ input {
585
586
  }
586
587
 
587
588
  .ic-switch-input:disabled + .ic-switch-toggle::before {
588
- background-color: var(--ic-architectural-300);
589
+ background-color: var(--ic-switch-unchecked-disabled);
589
590
  }
590
591
 
591
592
  .ic-switch-input:disabled:checked + .ic-switch-toggle {
592
- background-color: var(--ic-status-info-light);
593
- border: var(--ic-border-width) dashed #98c9f5;
593
+ background-color: var(--ic-switch-checked-bg-disabled);
594
+ border: var(--ic-border-width) dashed
595
+ var(--ic-switch-checked-outline-disabled);
594
596
  }
595
597
 
596
598
  .ic-switch-input:disabled:checked + .ic-switch-toggle::before {
597
- background-color: var(--ic-architectural-white);
599
+ background-color: var(--ic-switch-checked);
598
600
  }
599
601
 
600
602
  .ic-switch-small {
@@ -625,13 +627,18 @@ input {
625
627
  }
626
628
 
627
629
  ::slotted(svg) {
628
- fill: currentcolor;
630
+ fill: var(--ic-switch-icon);
629
631
  }
630
632
 
631
633
  @media (forced-colors: active) {
632
634
  .ic-switch-toggle::before,
633
635
  .ic-switch-input:checked + .ic-switch-toggle {
634
- border: var(--ic-hc-border);
636
+ border: var(--ic-border-hc);
637
+ }
638
+
639
+ .ic-switch-input:focus + .ic-switch-toggle {
640
+ border-color: highlight;
641
+ outline: var(--ic-space-xxxs) solid highlight;
635
642
  }
636
643
 
637
644
  .ic-switch-input:checked + .ic-switch-toggle::before {
@@ -653,13 +660,3 @@ input {
653
660
  stroke: GrayText;
654
661
  }
655
662
  }
656
-
657
- /* Add back in after storybook has the `color-scheme: light dark` code */
658
-
659
- /* @media (prefers-color-scheme: dark) and (not (forced-colors: active)) {
660
- .ic-switch-label .ic-typography-label,
661
- ic-input-label .helpertext,
662
- .ic-switch-checked-status {
663
- color: var(--ic-architectural-white);
664
- }
665
- } */
@@ -33,6 +33,7 @@ export class Switch {
33
33
  this.name = this.inputId;
34
34
  this.showState = false;
35
35
  this.size = "medium";
36
+ this.theme = "inherit";
36
37
  this.value = "on";
37
38
  }
38
39
  checkedChangeHandler() {
@@ -58,10 +59,12 @@ export class Switch {
58
59
  }
59
60
  }
60
61
  render() {
61
- const { label, checkedState, size, disabled, name, showState, value, hideLabel, helperText, inputId, } = this;
62
+ const { label, checkedState, size, disabled, name, showState, value, hideLabel, helperText, inputId, theme, } = this;
62
63
  renderHiddenInput(true, this.el, name, checkedState ? value : "", disabled);
63
64
  const describedBy = getInputDescribedByText(inputId, helperText !== "", false);
64
- return (h(Host, null, h("label", { class: {
65
+ return (h(Host, { class: {
66
+ [`ic-theme-${theme}`]: theme !== "inherit",
67
+ } }, h("label", { class: {
65
68
  ["ic-switch-container"]: true,
66
69
  ["ic-switch-disabled"]: disabled,
67
70
  ["ic-switch-small"]: size === "small",
@@ -234,6 +237,30 @@ export class Switch {
234
237
  "reflect": false,
235
238
  "defaultValue": "\"medium\""
236
239
  },
240
+ "theme": {
241
+ "type": "string",
242
+ "mutable": false,
243
+ "complexType": {
244
+ "original": "IcThemeMode",
245
+ "resolved": "\"dark\" | \"inherit\" | \"light\"",
246
+ "references": {
247
+ "IcThemeMode": {
248
+ "location": "import",
249
+ "path": "../../utils/types",
250
+ "id": "src/utils/types.ts::IcThemeMode"
251
+ }
252
+ }
253
+ },
254
+ "required": false,
255
+ "optional": true,
256
+ "docs": {
257
+ "tags": [],
258
+ "text": "Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component."
259
+ },
260
+ "attribute": "theme",
261
+ "reflect": false,
262
+ "defaultValue": "\"inherit\""
263
+ },
237
264
  "value": {
238
265
  "type": "string",
239
266
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\nimport { IcSizesNoLarge } from \"../../utils/types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n render() {\n const {\n label,\n checkedState,\n size,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n } = this;\n\n renderHiddenInput(true, this.el, name, checkedState ? value : \"\", disabled);\n\n const describedBy = getInputDescribedByText(\n inputId,\n helperText !== \"\",\n false\n );\n\n return (\n <Host>\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: size === \"small\",\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: size === \"small\",\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={size === \"small\" ? \"2\" : \"1\"}\n x2=\"9\"\n y2={size === \"small\" ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={size === \"small\" ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-switch.js","sourceRoot":"","sources":["../../../src/components/ic-switch/ic-switch.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n getInputDescribedByText,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IcSwitchChangeEventDetail } from \"./ic-switch.types\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\nlet inputIds = 0;\n\n/**\n * @slot right-adornment - Content is placed to the right of switch before state label.\n */\n@Component({\n tag: \"ic-switch\",\n styleUrl: \"ic-switch.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Switch {\n private inputId = `ic-switch-input-${inputIds++}`;\n\n @Element() el: HTMLIcSwitchElement;\n\n @State() checkedState: boolean = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the switch will display as checked.\n */\n @Prop() checked?: boolean = false;\n\n @Watch(\"checked\")\n checkedChangeHandler(): void {\n this.checkedState = this.checked;\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The aria-label applied to the switch when no visual 'name' is provided.\n */\n @Prop() label!: string;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * If `true`, the switch will render the On/Off state text.\n */\n @Prop() showState?: boolean = false;\n\n /**\n * The size of the switch component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the toggle does not mean if it's checked or not, use the `checked`\n * property for that.\n *\n * The value of a toggle is analogous to the value of a `<input type=\"checkbox\">`,\n * it's only used when the toggle participates in a native `<form>`.\n */\n @Prop() value?: string | null = \"on\";\n\n /**\n * Emitted when the toggle loses focus.\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * Emitted when the value property has changed.\n */\n @Event() icChange!: EventEmitter<IcSwitchChangeEventDetail>;\n\n /**\n * Emitted when the toggle has focus.\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n this.checkedState = this.checked;\n addFormResetListener(this.el, this.handleFormReset);\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Switch\"\n );\n }\n\n /**\n * Sets focus on the switch.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"input\")) {\n this.el.shadowRoot.querySelector(\"input\").focus();\n }\n }\n\n private handleChange = () => {\n this.checkedState = !this.checkedState;\n this.icChange.emit({\n checked: this.checkedState,\n value: this.value,\n });\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private handleFormReset = (): void => {\n this.checkedState = this.initiallyChecked;\n };\n\n render() {\n const {\n label,\n checkedState,\n size,\n disabled,\n name,\n showState,\n value,\n hideLabel,\n helperText,\n inputId,\n theme,\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 class={{\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <label\n class={{\n [\"ic-switch-container\"]: true,\n [\"ic-switch-disabled\"]: disabled,\n [\"ic-switch-small\"]: size === \"small\",\n }}\n htmlFor={inputId}\n >\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n readonly={true}\n disabled={disabled}\n class={{\n [\"ic-switch-label\"]: true,\n [\"ic-switch-label-small\"]: size === \"small\",\n }}\n ></ic-input-label>\n )}\n {!hideLabel && <span class=\"ic-switch-line-break\"></span>}\n <input\n checked={checkedState}\n disabled={disabled}\n aria-label={label}\n aria-checked={checkedState ? \"true\" : \"false\"}\n aria-describedby={describedBy}\n role=\"switch\"\n class=\"ic-switch-input\"\n type=\"checkbox\"\n name=\"toggle\"\n id={inputId}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onChange={this.handleChange}\n />\n <span class=\"ic-switch-toggle\">\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <line\n class=\"ic-switch-icon-line\"\n x1=\"9\"\n y1={size === \"small\" ? \"2\" : \"1\"}\n x2=\"9\"\n y2={size === \"small\" ? \"8\" : \"9\"}\n />\n </svg>\n <svg\n class=\"ic-switch-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 10 10\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n class=\"ic-switch-icon-circle\"\n fill=\"none\"\n cx=\"5\"\n cy=\"5\"\n r={size === \"small\" ? \"3.335\" : \"4.445\"}\n />\n </svg>\n </span>\n <slot name=\"right-adornment\"></slot>\n {showState && (\n <ic-typography\n aria-hidden=\"true\"\n variant=\"label\"\n class=\"ic-switch-checked-status\"\n >\n {checkedState ? \"On\" : \"Off\"}\n </ic-typography>\n )}\n </label>\n </Host>\n );\n }\n}\n"]}
@@ -54,10 +54,9 @@ export class Tab {
54
54
  this.tabCreated.emit(this.el);
55
55
  }
56
56
  disconnectedCallback() {
57
- const tabContext = document.querySelector(`ic-tab-context[context-id=${this.contextId}]`);
58
- if (tabContext) {
59
- tabContext.tabRemovedHandler(!!this.focusTabId);
60
- }
57
+ var _a;
58
+ (_a = document
59
+ .querySelector(`ic-tab-context[context-id=${this.contextId}]`)) === null || _a === void 0 ? void 0 : _a.tabRemovedHandler(!!this.focusTabId);
61
60
  }
62
61
  componentWillLoad() {
63
62
  removeDisabledFalse(this.disabled, this.el);
@@ -74,14 +73,14 @@ export class Tab {
74
73
  }
75
74
  }
76
75
  render() {
77
- const { disabled, selected, theme, monochrome } = this;
76
+ const { disabled, selected, theme, monochrome, handleClick, handleFocus, handleMouseDown, } = this;
78
77
  return (h(Host, { class: {
79
78
  ["with-transition"]: !this.isInitialRender,
80
79
  ["ic-tab-selected"]: selected,
81
80
  ["ic-tab-disabled"]: disabled,
82
81
  [`ic-theme-${theme}`]: theme !== "inherit",
83
82
  ["ic-tab-monochrome"]: monochrome,
84
- }, role: "tab", "aria-selected": selected ? "true" : "false", onClick: this.handleClick, onFocus: this.handleFocus, onMouseDown: this.handleMouseDown, "aria-disabled": disabled ? "true" : "false", tabindex: this.selected ? 0 : -1 }, this.el.querySelector('[slot="icon"]') && h("slot", { name: "icon" }), h("ic-typography", { class: "ic-tab-label", variant: "label" }, h("span", null, h("slot", null))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" })));
83
+ }, role: "tab", "aria-selected": `${selected}`, onClick: handleClick, onFocus: handleFocus, onMouseDown: handleMouseDown, "aria-disabled": `${disabled}`, tabindex: selected ? 0 : -1 }, isSlotUsed(this.el, "icon") && h("slot", { name: "icon" }), h("ic-typography", { class: "ic-tab-label", variant: "label" }, h("span", null, h("slot", null))), isSlotUsed(this.el, "badge") && h("slot", { name: "badge" })));
85
84
  }
86
85
  static get is() { return "ic-tab"; }
87
86
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() el: HTMLIcTabElement;\n\n /** @internal 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 Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: 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() theme?: IcThemeMode = \"inherit\";\n\n @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabCreated.emit(this.el);\n }\n\n disconnectedCallback(): void {\n const tabContext = document.querySelector(\n `ic-tab-context[context-id=${this.contextId}]`\n ) as HTMLIcTabContextElement;\n if (tabContext) {\n tabContext.tabRemovedHandler(!!this.focusTabId);\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el) {\n this.el.focus();\n }\n }\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a separate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n render() {\n const { disabled, selected, theme, monochrome } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-selected\"]: selected,\n [\"ic-tab-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-tab-monochrome\"]: monochrome,\n }}\n role=\"tab\"\n aria-selected={selected ? \"true\" : \"false\"}\n onClick={this.handleClick}\n onFocus={this.handleFocus}\n onMouseDown={this.handleMouseDown}\n aria-disabled={disabled ? \"true\" : \"false\"}\n tabindex={this.selected ? 0 : -1}\n >\n {this.el.querySelector('[slot=\"icon\"]') && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-tab.js","sourceRoot":"","sources":["../../../src/components/ic-tab/ic-tab.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport { IcTabClickEventDetail } from \"./ic-tab.types\";\nimport { IcThemeMode } from \"../../utils/types\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\n\n/**\n * @slot icon - Content will be rendered next to the tab label.\n * @slot badge - Badge component displayed inline with the tab.\n */\n@Component({\n tag: \"ic-tab\",\n styleUrl: \"ic-tab.css\",\n shadow: true,\n})\nexport class Tab {\n private focusFromClick: boolean = false;\n private focusTabId: string;\n private isInitialRender: boolean = true;\n\n @Element() el: HTMLIcTabElement;\n\n /** @internal 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 Determines whether black variant of the tabs should be displayed. */\n @Prop() monochrome?: 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() theme?: IcThemeMode = \"inherit\";\n\n @Watch(\"disabled\")\n disabledWatchHandler(): void {\n this.tabEnabled.emit();\n }\n\n /**\n * @internal Emitted when a tab is selected.\n */\n @Event() tabClick: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is dynamically created.\n */\n @Event() tabCreated: EventEmitter<HTMLIcTabElement>;\n\n /**\n * @internal Emitted when a tab's disabled prop changes\n */\n @Event() tabEnabled: EventEmitter<void>;\n\n /**\n * @internal Emitted when a tab is focussed.\n */\n @Event() tabFocus: EventEmitter<IcTabClickEventDetail>;\n\n /**\n * @internal Emitted when a tab is unmounted.\n */\n @Event() tabRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabCreated.emit(this.el);\n }\n\n disconnectedCallback(): void {\n document\n .querySelector<HTMLIcTabContextElement>(\n `ic-tab-context[context-id=${this.contextId}]`\n )\n ?.tabRemovedHandler(!!this.focusTabId);\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n /**\n * Sets focus on the tab.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el) {\n this.el.focus();\n }\n }\n\n private handleClick = () => {\n this.tabClick.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n if (this.focusFromClick) {\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n this.focusFromClick = false;\n }\n };\n\n private handleFocus = () => {\n if (!this.focusFromClick) {\n this.focusTabId = this.tabId;\n\n this.tabFocus.emit({\n tabId: this.tabId,\n contextId: this.contextId,\n position: this.tabPosition,\n });\n }\n };\n\n private handleMouseDown = () => {\n //set flag so that focus gets handled after click\n //there is a timing issue where a long click only causes focus to happen & not the click\n //the focus does need to be a separate event though to handle focus from keyboard\n this.focusFromClick = true;\n };\n\n render() {\n const {\n disabled,\n selected,\n theme,\n monochrome,\n handleClick,\n handleFocus,\n handleMouseDown,\n } = this;\n return (\n <Host\n class={{\n [\"with-transition\"]: !this.isInitialRender,\n [\"ic-tab-selected\"]: selected,\n [\"ic-tab-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [\"ic-tab-monochrome\"]: monochrome,\n }}\n role=\"tab\"\n aria-selected={`${selected}`}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseDown={handleMouseDown}\n aria-disabled={`${disabled}`}\n tabindex={selected ? 0 : -1}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n <ic-typography class=\"ic-tab-label\" variant=\"label\">\n <span>\n <slot></slot>\n </span>\n </ic-typography>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </Host>\n );\n }\n}\n"]}
@@ -1,33 +1,31 @@
1
1
  import { h, } from "@stencil/core";
2
+ const CONTEXT_ID_ATTR = "context-id";
2
3
  export class TabContext {
3
4
  constructor() {
4
5
  this.newTabPanels = [];
5
6
  this.newTabs = [];
6
- // Sets attributes to link tab-group, tabs and tab-panels
7
+ /** Sets attributes to link tab-group, tabs and tab-panels */
7
8
  this.linkTabs = () => {
8
9
  this.tabs.forEach((tab, index) => {
9
10
  const tabId = `ic-tab-${index}-context-${this.contextId}`;
10
11
  const tabPanelId = `ic-tab-panel-${index}-context-${this.contextId}`;
11
- const shared = `ic-tab--${index}-context-${this.contextId}`;
12
- const contextIdAttr = "context-id";
13
12
  tab.setAttribute("id", tabId);
14
- tab.tabId = shared;
13
+ tab.tabId = `ic-tab--${index}-context-${this.contextId}`;
15
14
  tab.tabPosition = index;
16
15
  tab.setAttribute("aria-controls", tabPanelId);
17
- tab.setAttribute(contextIdAttr, this.contextId);
18
- this.tabGroup.setAttribute(contextIdAttr, this.contextId);
16
+ tab.setAttribute(CONTEXT_ID_ATTR, this.contextId);
17
+ this.tabGroup.setAttribute(CONTEXT_ID_ATTR, this.contextId);
19
18
  this.tabPanels[index].setAttribute("id", tabPanelId);
20
- this.tabPanels[index].panelId = shared;
21
- this.tabPanels[index].tabPosition = index;
22
19
  this.tabPanels[index].setAttribute("aria-labelledby", tabId);
23
- this.tabPanels[index].setAttribute(contextIdAttr, this.contextId);
20
+ this.tabPanels[index].setAttribute(CONTEXT_ID_ATTR, this.contextId);
24
21
  tab.theme = this.theme;
25
22
  this.tabPanels[index].theme = this.theme;
26
23
  this.tabGroup.theme = this.theme;
27
24
  });
28
25
  };
29
- // Gets tabs and tabpanels with the same context ID
30
- // Using querySelector to selector the children in relation to the host
26
+ /**
27
+ * Gets tabs and tabpanels with the same context ID using querySelector to selector the children in relation to the host
28
+ */
31
29
  this.getChildren = () => {
32
30
  this.tabGroup = this.el.querySelector("ic-tab-group");
33
31
  this.tabs = Array.from(this.tabGroup.querySelectorAll("ic-tab"));
@@ -35,28 +33,42 @@ export class TabContext {
35
33
  this.enabledTabs = this.getEnabledTabs();
36
34
  };
37
35
  this.keydownHandler = (event) => {
38
- if (this.activationType === "automatic") {
39
- this.handleKeyBoardNavAutomatic(event);
40
- }
41
- else {
42
- this.handleKeyBoardNavManual(event);
43
- }
44
- };
45
- // Determines how keyboard navigation is to be handled based on the activation type
46
- this.attachEventListeners = () => {
47
- this.tabGroup.addEventListener("keydown", this.keydownHandler);
48
- };
49
- // Determines whether the selected tab is being controlled within the component
50
- // or by the user (via selectedTabIndex and onIcTabSelect)
51
- this.setControlledMode = () => {
52
- if (this.selectedTabIndex !== undefined) {
53
- this.controlledMode = true;
54
- this.selectedTab = this.selectedTabIndex;
36
+ const isManual = this.activationType === "manual";
37
+ const enabledTabIndex = this.enabledTabs.findIndex((tab) => tab.tabId ===
38
+ this.tabs[isManual ? this.focusedTabIndex : this.selectedTab].tabId);
39
+ const keyboardFunction = isManual
40
+ ? this.keyboardFocusTab
41
+ : this.keyboardSelectTab;
42
+ let preventDefault = true;
43
+ switch (event.key) {
44
+ case "Home":
45
+ keyboardFunction(0);
46
+ break;
47
+ case "End":
48
+ keyboardFunction(this.enabledTabs.length - 1);
49
+ break;
50
+ case "ArrowRight":
51
+ keyboardFunction(enabledTabIndex < this.enabledTabs.length - 1
52
+ ? enabledTabIndex + 1
53
+ : 0);
54
+ break;
55
+ case "ArrowLeft":
56
+ keyboardFunction((enabledTabIndex > 0 ? enabledTabIndex : this.enabledTabs.length) - 1);
57
+ break;
58
+ default:
59
+ if (isManual && (event.key === "Enter" || event.key === " ")) {
60
+ this.keyboardSelectTab(this.focusedTabIndex);
61
+ }
62
+ else {
63
+ preventDefault = false;
64
+ }
55
65
  }
66
+ if (preventDefault)
67
+ event.preventDefault();
56
68
  };
57
- // Sets the tab that is selected on initial render
69
+ /** Sets the tab that is selected on initial render */
58
70
  this.setInitialTab = () => {
59
- if (this.controlledMode) {
71
+ if (this.selectedTabIndex !== undefined) {
60
72
  this.selectedTab = this.selectedTabIndex;
61
73
  this.focusedTabIndex = this.selectedTabIndex;
62
74
  }
@@ -66,26 +78,21 @@ export class TabContext {
66
78
  this.focusedTabIndex = firstEnabledTabIndex;
67
79
  }
68
80
  };
69
- // Passes the selected tab to the tab and tab panel components
81
+ /** Passes the selected tab to the tab and tab panel components */
70
82
  this.configureTabs = () => {
71
83
  this.enabledTabs.forEach((tab) => {
72
84
  tab.selected = tab.tabPosition === this.selectedTab;
73
85
  });
74
- this.tabPanels.forEach((tabPanel) => {
75
- tabPanel.selectedTab = this.tabs[this.selectedTab].tabId;
86
+ this.tabPanels.forEach((tabPanel, index) => {
87
+ tabPanel.hidden = index !== this.selectedTab;
76
88
  });
77
89
  };
78
- this.getEnabledTabs = () => {
79
- return Array.from(this.tabs).filter((child) => !child.disabled);
80
- };
81
- this.getIndexOfEnabledTab = (allTabsIndex) => {
82
- return this.enabledTabs.findIndex((tab) => tab.tabId === this.tabs[allTabsIndex].tabId);
83
- };
84
- // Sets focus on tab and selects it
90
+ this.getEnabledTabs = () => Array.from(this.tabs).filter((child) => !child.disabled);
91
+ /** Sets focus on tab and selects it */
85
92
  this.keyboardSelectTab = (enabledTabIndex) => {
86
93
  const newIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId);
87
94
  this.enabledTabs[enabledTabIndex].focus();
88
- if (!this.controlledMode) {
95
+ if (this.selectedTabIndex === undefined) {
89
96
  this.selectedTab = newIndex;
90
97
  }
91
98
  else {
@@ -96,85 +103,11 @@ export class TabContext {
96
103
  .querySelectorAll("ic-tab")[newIndex].textContent.trim(),
97
104
  });
98
105
  }
99
- /* eslint-enable no-unexpected-multiline */
100
106
  };
101
- // Sets focus on tab without selecting it (for manual activation)
107
+ /** Sets focus on tab without selecting it (for manual activation) */
102
108
  this.keyboardFocusTab = (enabledTabIndex) => {
103
- const newIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId);
104
109
  this.enabledTabs[enabledTabIndex].focus();
105
- this.focusedTabIndex = newIndex;
106
- };
107
- this.handleKeyBoardNavAutomatic = (event) => {
108
- const key = event.key;
109
- const enabledTabIndex = this.getIndexOfEnabledTab(this.selectedTab);
110
- let preventDefault = true;
111
- switch (key) {
112
- case "Home":
113
- this.keyboardSelectTab(0);
114
- break;
115
- case "End":
116
- this.keyboardSelectTab(this.enabledTabs.length - 1);
117
- break;
118
- case "ArrowRight":
119
- if (enabledTabIndex < this.enabledTabs.length - 1) {
120
- this.keyboardSelectTab(enabledTabIndex + 1);
121
- }
122
- else {
123
- this.keyboardSelectTab(0);
124
- }
125
- break;
126
- case "ArrowLeft":
127
- if (enabledTabIndex > 0) {
128
- this.keyboardSelectTab(enabledTabIndex - 1);
129
- }
130
- else {
131
- this.keyboardSelectTab(this.enabledTabs.length - 1);
132
- }
133
- break;
134
- default:
135
- preventDefault = false;
136
- }
137
- if (preventDefault)
138
- event.preventDefault();
139
- };
140
- this.handleKeyBoardNavManual = (event) => {
141
- const key = event.key;
142
- const enabledTabIndex = this.getIndexOfEnabledTab(this.focusedTabIndex);
143
- let preventDefault = true;
144
- switch (key) {
145
- case "Home":
146
- this.keyboardFocusTab(0);
147
- break;
148
- case "End":
149
- this.keyboardFocusTab(this.enabledTabs.length - 1);
150
- break;
151
- case "ArrowRight":
152
- if (enabledTabIndex < this.enabledTabs.length - 1) {
153
- this.keyboardFocusTab(enabledTabIndex + 1);
154
- }
155
- else {
156
- this.keyboardFocusTab(0);
157
- }
158
- break;
159
- case "ArrowLeft":
160
- if (enabledTabIndex > 0) {
161
- this.keyboardFocusTab(enabledTabIndex - 1);
162
- }
163
- else {
164
- this.keyboardFocusTab(this.enabledTabs.length - 1);
165
- }
166
- break;
167
- case "Enter":
168
- this.keyboardSelectTab(this.focusedTabIndex);
169
- break;
170
- case " ":
171
- this.keyboardSelectTab(this.focusedTabIndex);
172
- break;
173
- default:
174
- preventDefault = false;
175
- }
176
- if (preventDefault)
177
- event.preventDefault();
110
+ this.focusedTabIndex = this.tabs.findIndex((tab) => tab.tabId === this.enabledTabs[enabledTabIndex].tabId);
178
111
  };
179
112
  this.selectedTab = undefined;
180
113
  this.activationType = "automatic";
@@ -201,10 +134,12 @@ export class TabContext {
201
134
  this.tabGroup.theme = this.theme;
202
135
  }
203
136
  componentDidLoad() {
204
- this.setControlledMode();
137
+ if (this.selectedTabIndex !== undefined) {
138
+ this.selectedTab = this.selectedTabIndex;
139
+ }
205
140
  this.getChildren();
206
141
  this.linkTabs();
207
- this.attachEventListeners();
142
+ this.tabGroup.addEventListener("keydown", this.keydownHandler);
208
143
  this.setInitialTab();
209
144
  this.configureTabs();
210
145
  }
@@ -236,6 +171,9 @@ export class TabContext {
236
171
  this.tabPanels.push(...this.newTabPanels);
237
172
  this.enabledTabs = this.getEnabledTabs();
238
173
  this.linkTabs();
174
+ if (!this.tabs[this.selectedTab] || !this.tabPanels[this.selectedTab])
175
+ this.setInitialTab();
176
+ this.configureTabs();
239
177
  this.newTabs = [];
240
178
  this.newTabPanels = [];
241
179
  }
@@ -249,12 +187,10 @@ export class TabContext {
249
187
  */
250
188
  async tabRemovedHandler(hadFocus) {
251
189
  this.getChildren();
252
- this.enabledTabs = this.getEnabledTabs();
253
190
  this.linkTabs();
254
191
  if (this.tabs[this.selectedTab] && this.tabPanels[this.selectedTab]) {
255
192
  this.tabs[this.selectedTab].selected = true;
256
- this.tabPanels[this.selectedTab].selectedTab =
257
- this.tabs[this.selectedTab].tabId;
193
+ this.tabPanels[this.selectedTab].hidden = false;
258
194
  }
259
195
  else {
260
196
  this.setInitialTab();