@ukic/web-components 3.13.0 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-478d1107.js → helpers-15fae358.js} +5 -1
  3. package/dist/cjs/helpers-15fae358.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 +1 -1
  6. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +4 -2
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +6 -5
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +3 -3
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -3
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -4
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-button_3.cjs.entry.js +43 -19
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +32 -9
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +4 -4
  22. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-dialog.cjs.entry.js +5 -4
  24. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-divider.cjs.entry.js +3 -2
  26. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  30. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +13 -7
  32. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +9 -9
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -6
  36. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -2
  41. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  46. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  47. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  49. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  50. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-select.cjs.entry.js +21 -13
  55. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  61. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  62. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  63. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  64. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  68. package/dist/cjs/ic-text-field.cjs.entry.js +13 -8
  69. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  71. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-toast.cjs.entry.js +8 -5
  73. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +8 -4
  75. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-toggle-button.cjs.entry.js +58 -45
  77. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-top-navigation.cjs.entry.js +5 -5
  79. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  80. package/dist/cjs/loader.cjs.js +1 -1
  81. package/dist/collection/collection-manifest.json +1 -1
  82. package/dist/collection/components/ic-alert/ic-alert.css +6 -6
  83. package/dist/collection/components/ic-alert/ic-alert.js +2 -0
  84. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  85. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +1 -1
  86. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +4 -3
  87. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  88. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  89. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +5 -4
  90. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +3 -2
  91. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  92. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  93. package/dist/collection/components/ic-button/ic-button.js +36 -11
  94. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  95. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  96. package/dist/collection/components/ic-checkbox/ic-checkbox.css +9 -2
  97. package/dist/collection/components/ic-checkbox/ic-checkbox.js +31 -7
  98. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  99. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +52 -0
  100. package/dist/collection/components/ic-chip/ic-chip.js +3 -3
  101. package/dist/collection/components/ic-dialog/ic-dialog.css +1 -1
  102. package/dist/collection/components/ic-dialog/ic-dialog.js +3 -2
  103. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  104. package/dist/collection/components/ic-divider/ic-divider.css +89 -89
  105. package/dist/collection/components/ic-divider/ic-divider.js +2 -1
  106. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  107. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  108. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  109. package/dist/collection/components/ic-hero/ic-hero.css +25 -4
  110. package/dist/collection/components/ic-hero/ic-hero.js +37 -5
  111. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  112. package/dist/collection/components/ic-hero/ic-hero.stories.js +15 -0
  113. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  114. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  115. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  116. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  117. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  118. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  119. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  120. package/dist/collection/components/ic-link/ic-link.js +1 -1
  121. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +4 -4
  122. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  123. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  124. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  125. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  126. package/dist/collection/components/ic-menu-item/ic-menu-item.css +6 -6
  127. package/dist/collection/components/ic-menu-item/ic-menu-item.js +1 -0
  128. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  129. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  130. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  131. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -2
  132. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  133. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  134. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  135. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  136. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  137. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  138. package/dist/collection/components/ic-select/ic-select.css +1 -1
  139. package/dist/collection/components/ic-select/ic-select.js +20 -12
  140. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  141. package/dist/collection/components/ic-select/ic-select_(single).stories.js +21 -5
  142. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +2 -0
  143. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  144. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  145. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  146. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  147. package/dist/collection/components/ic-step/ic-step.js +13 -13
  148. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  149. package/dist/collection/components/ic-stepper/ic-stepper.stories.js +16 -6
  150. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  151. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  152. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  153. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  154. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  155. package/dist/collection/components/ic-text-field/ic-text-field.js +18 -12
  156. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  157. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +36 -0
  158. package/dist/collection/components/ic-text-field/ic-text-field.types.js.map +1 -1
  159. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  160. package/dist/collection/components/ic-toast/ic-toast.css +6 -6
  161. package/dist/collection/components/ic-toast/ic-toast.js +6 -3
  162. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  163. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  164. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +57 -44
  165. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  166. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +7 -3
  167. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  168. package/dist/collection/components/ic-tooltip/ic-tooltip.js +3 -3
  169. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  170. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +37 -109
  171. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  172. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  173. package/dist/collection/icds-table-style.css +66 -0
  174. package/dist/collection/utils/helpers.js +3 -0
  175. package/dist/collection/utils/helpers.js.map +1 -1
  176. package/dist/components/helpers.js +4 -1
  177. package/dist/components/helpers.js.map +1 -1
  178. package/dist/components/ic-action-chip.js +1 -1
  179. package/dist/components/ic-alert.js +4 -2
  180. package/dist/components/ic-alert.js.map +1 -1
  181. package/dist/components/ic-back-to-top.js +6 -5
  182. package/dist/components/ic-back-to-top.js.map +1 -1
  183. package/dist/components/ic-badge.js +3 -3
  184. package/dist/components/ic-breadcrumb-group.js +3 -3
  185. package/dist/components/ic-breadcrumb2.js +5 -4
  186. package/dist/components/ic-breadcrumb2.js.map +1 -1
  187. package/dist/components/ic-button2.js +35 -11
  188. package/dist/components/ic-button2.js.map +1 -1
  189. package/dist/components/ic-card-vertical.js +5 -5
  190. package/dist/components/ic-checkbox-group.js +1 -1
  191. package/dist/components/ic-checkbox.js +32 -9
  192. package/dist/components/ic-checkbox.js.map +1 -1
  193. package/dist/components/ic-chip.js +4 -4
  194. package/dist/components/ic-data-row.js +1 -1
  195. package/dist/components/ic-dialog.js +5 -4
  196. package/dist/components/ic-dialog.js.map +1 -1
  197. package/dist/components/ic-divider2.js +3 -2
  198. package/dist/components/ic-divider2.js.map +1 -1
  199. package/dist/components/ic-empty-state.js +3 -3
  200. package/dist/components/ic-footer-link-group.js +1 -1
  201. package/dist/components/ic-footer-link.js +3 -3
  202. package/dist/components/ic-footer.js +1 -1
  203. package/dist/components/ic-hero.js +14 -7
  204. package/dist/components/ic-hero.js.map +1 -1
  205. package/dist/components/ic-horizontal-scroll2.js +6 -6
  206. package/dist/components/ic-input-component-container2.js +4 -4
  207. package/dist/components/ic-input-container2.js +2 -2
  208. package/dist/components/ic-input-label2.js +3 -3
  209. package/dist/components/ic-input-validation2.js +4 -4
  210. package/dist/components/ic-layout-grid-item.js +2 -2
  211. package/dist/components/ic-layout-grid.js +2 -2
  212. package/dist/components/ic-link2.js +1 -1
  213. package/dist/components/ic-loading-indicator2.js +7 -6
  214. package/dist/components/ic-loading-indicator2.js.map +1 -1
  215. package/dist/components/ic-menu-group.js +2 -2
  216. package/dist/components/ic-menu-item2.js +3 -2
  217. package/dist/components/ic-menu-item2.js.map +1 -1
  218. package/dist/components/ic-menu2.js +4 -4
  219. package/dist/components/ic-navigation-button.js +3 -3
  220. package/dist/components/ic-navigation-group.js +2 -2
  221. package/dist/components/ic-navigation-item.js +3 -3
  222. package/dist/components/ic-navigation-menu2.js +5 -5
  223. package/dist/components/ic-page-header.js +7 -7
  224. package/dist/components/ic-pagination-item2.js +2 -2
  225. package/dist/components/ic-pagination.js +4 -4
  226. package/dist/components/ic-popover-menu.js +5 -5
  227. package/dist/components/ic-radio-group.js +1 -1
  228. package/dist/components/ic-radio-option.js +1 -1
  229. package/dist/components/ic-radio-option.js.map +1 -1
  230. package/dist/components/ic-search-bar.js +1 -1
  231. package/dist/components/ic-section-container2.js +2 -2
  232. package/dist/components/ic-select.js +21 -13
  233. package/dist/components/ic-select.js.map +1 -1
  234. package/dist/components/ic-side-navigation.js +6 -6
  235. package/dist/components/ic-side-navigation.js.map +1 -1
  236. package/dist/components/ic-skeleton.js +2 -2
  237. package/dist/components/ic-skeleton.js.map +1 -1
  238. package/dist/components/ic-skip-link.js +2 -2
  239. package/dist/components/ic-status-tag.js +2 -2
  240. package/dist/components/ic-step.js +14 -14
  241. package/dist/components/ic-stepper.js +2 -2
  242. package/dist/components/ic-switch.js +5 -5
  243. package/dist/components/ic-tab-context.js +1 -1
  244. package/dist/components/ic-tab-group.js +2 -2
  245. package/dist/components/ic-tab-panel.js +2 -2
  246. package/dist/components/ic-tab.js +2 -2
  247. package/dist/components/ic-text-field.js +13 -8
  248. package/dist/components/ic-text-field.js.map +1 -1
  249. package/dist/components/ic-theme.js +2 -2
  250. package/dist/components/ic-toast-region.js +1 -1
  251. package/dist/components/ic-toast.js +8 -5
  252. package/dist/components/ic-toast.js.map +1 -1
  253. package/dist/components/ic-toggle-button-group.js +7 -3
  254. package/dist/components/ic-toggle-button-group.js.map +1 -1
  255. package/dist/components/ic-toggle-button.js +58 -45
  256. package/dist/components/ic-toggle-button.js.map +1 -1
  257. package/dist/components/ic-tooltip2.js +3 -3
  258. package/dist/components/ic-tooltip2.js.map +1 -1
  259. package/dist/components/ic-top-navigation.js +5 -5
  260. package/dist/components/ic-typography2.js +2 -2
  261. package/dist/core/core.css +25 -10
  262. package/dist/core/core.esm.js +1 -1
  263. package/dist/core/core.esm.js.map +1 -1
  264. package/dist/core/icds-table-style.css +66 -0
  265. package/dist/core/{p-621b0770.entry.js → p-042cfc35.entry.js} +2 -2
  266. package/dist/core/{p-37d217b5.entry.js → p-04cb17d7.entry.js} +2 -2
  267. package/dist/core/p-06c950a3.entry.js +2 -0
  268. package/dist/core/p-06c950a3.entry.js.map +1 -0
  269. package/dist/core/{p-cc00cbce.entry.js → p-0c4ceed9.entry.js} +2 -2
  270. package/dist/core/{p-a97b8082.entry.js → p-11d8a504.entry.js} +3 -3
  271. package/dist/core/{p-813ad03c.entry.js → p-12c30491.entry.js} +2 -2
  272. package/dist/core/{p-33582352.entry.js → p-14d43f64.entry.js} +2 -2
  273. package/dist/core/{p-99793b64.entry.js → p-199c5ff6.entry.js} +2 -2
  274. package/dist/core/p-1ca4a5ed.entry.js +2 -0
  275. package/dist/core/p-1ca4a5ed.entry.js.map +1 -0
  276. package/dist/core/{p-71c86e71.entry.js → p-1f41818b.entry.js} +2 -2
  277. package/dist/core/{p-6f50d2e0.entry.js → p-2026f4fa.entry.js} +2 -2
  278. package/dist/core/p-30312243.entry.js +2 -0
  279. package/dist/core/p-30312243.entry.js.map +1 -0
  280. package/dist/core/{p-9cf6ccfd.entry.js → p-319e3d5b.entry.js} +2 -2
  281. package/dist/core/{p-675bb3e4.entry.js → p-33e35173.entry.js} +2 -2
  282. package/dist/core/p-34407b13.entry.js +2 -0
  283. package/dist/core/p-34407b13.entry.js.map +1 -0
  284. package/dist/core/p-355d0914.entry.js +2 -0
  285. package/dist/core/p-355d0914.entry.js.map +1 -0
  286. package/dist/core/{p-b0376079.entry.js → p-3680f22c.entry.js} +2 -2
  287. package/dist/core/{p-1423bd4a.entry.js → p-3785c740.entry.js} +2 -2
  288. package/dist/core/{p-8684efeb.entry.js → p-3a94849e.entry.js} +2 -2
  289. package/dist/core/p-3d23ce54.entry.js +2 -0
  290. package/dist/core/p-3d23ce54.entry.js.map +1 -0
  291. package/dist/core/{p-13e093d0.entry.js → p-411527a1.entry.js} +2 -2
  292. package/dist/core/{p-9f12b20c.entry.js → p-42d35fc4.entry.js} +2 -2
  293. package/dist/core/{p-e6dacbe2.entry.js → p-4bdeb62d.entry.js} +2 -2
  294. package/dist/core/{p-01e018cb.entry.js → p-4d3b219c.entry.js} +2 -2
  295. package/dist/core/{p-57721431.entry.js → p-5254a078.entry.js} +2 -2
  296. package/dist/core/{p-37daa8fe.entry.js → p-53740194.entry.js} +2 -2
  297. package/dist/core/p-601d4e3f.entry.js +2 -0
  298. package/dist/core/p-601d4e3f.entry.js.map +1 -0
  299. package/dist/core/p-62b9e7bf.entry.js +2 -0
  300. package/dist/core/p-62b9e7bf.entry.js.map +1 -0
  301. package/dist/core/p-6329ddcb.entry.js +2 -0
  302. package/dist/core/p-6329ddcb.entry.js.map +1 -0
  303. package/dist/core/{p-492fcb51.entry.js → p-67c3985d.entry.js} +2 -2
  304. package/dist/core/{p-19f9d292.entry.js → p-703f3de1.entry.js} +2 -2
  305. package/dist/core/{p-abd88929.entry.js → p-762ea31a.entry.js} +2 -2
  306. package/dist/core/p-762ea31a.entry.js.map +1 -0
  307. package/dist/core/p-77a6c3f7.entry.js +2 -0
  308. package/dist/core/p-77a6c3f7.entry.js.map +1 -0
  309. package/dist/core/{p-228bc12d.entry.js → p-7d0d85c4.entry.js} +2 -2
  310. package/dist/core/p-8abcc114.entry.js +2 -0
  311. package/dist/core/p-8abcc114.entry.js.map +1 -0
  312. package/dist/core/{p-6dbe70f1.entry.js → p-911b4aa4.entry.js} +2 -2
  313. package/dist/core/{p-9a8bcb78.entry.js → p-9674b63f.entry.js} +2 -2
  314. package/dist/core/{p-5fcfcfb6.entry.js → p-9ca147f3.entry.js} +2 -2
  315. package/dist/core/{p-8558b9b7.entry.js → p-a45de09d.entry.js} +2 -2
  316. package/dist/core/{p-c04e1fab.entry.js → p-a5415f6c.entry.js} +2 -2
  317. package/dist/core/{p-b57e59b7.js → p-a5658054.js} +2 -2
  318. package/dist/{cjs/helpers-478d1107.js.map → core/p-a5658054.js.map} +1 -1
  319. package/dist/core/{p-93479c36.entry.js → p-a7583faf.entry.js} +2 -2
  320. package/dist/core/{p-ea06792a.entry.js → p-a7f21494.entry.js} +2 -2
  321. package/dist/core/{p-05036675.entry.js → p-a8e4258f.entry.js} +2 -2
  322. package/dist/core/p-a8e4258f.entry.js.map +1 -0
  323. package/dist/core/{p-4747c39f.entry.js → p-adde6c66.entry.js} +2 -2
  324. package/dist/core/{p-96a6cff2.entry.js → p-ae11583f.entry.js} +2 -2
  325. package/dist/core/p-ae7dcbd5.entry.js +2 -0
  326. package/dist/core/p-ae7dcbd5.entry.js.map +1 -0
  327. package/dist/core/{p-514daffe.entry.js → p-b3cb1e35.entry.js} +2 -2
  328. package/dist/core/{p-27e67d45.entry.js → p-c397b33f.entry.js} +2 -2
  329. package/dist/core/{p-45097448.entry.js → p-c4ffcc64.entry.js} +2 -2
  330. package/dist/core/{p-511aa329.entry.js → p-cce398e1.entry.js} +2 -2
  331. package/dist/core/{p-54803e3b.entry.js → p-d3223b89.entry.js} +2 -2
  332. package/dist/core/{p-80317cd1.entry.js → p-e0423c7e.entry.js} +2 -2
  333. package/dist/core/{p-b9bdd9a9.entry.js → p-e7af1e2d.entry.js} +2 -2
  334. package/dist/core/{p-a06c1e4e.entry.js → p-eca43f7d.entry.js} +2 -2
  335. package/dist/core/{p-0ec76cff.entry.js → p-f247db14.entry.js} +2 -2
  336. package/dist/core/{p-de32a223.entry.js → p-f4e3bb5b.entry.js} +2 -2
  337. package/dist/core/{p-25bef09d.entry.js → p-f51c609d.entry.js} +2 -2
  338. package/dist/core/{p-c975cced.entry.js → p-f57729b8.entry.js} +2 -2
  339. package/dist/core/{p-95d3d1a7.entry.js → p-f6bb691a.entry.js} +2 -2
  340. package/dist/core/{p-2126d37b.entry.js → p-f7105cf9.entry.js} +2 -2
  341. package/dist/core/p-ffd0d9d1.entry.js +2 -0
  342. package/dist/core/p-ffd0d9d1.entry.js.map +1 -0
  343. package/dist/esm/core.js +1 -1
  344. package/dist/esm/{helpers-4ddac6ed.js → helpers-dcedb279.js} +5 -2
  345. package/dist/esm/helpers-dcedb279.js.map +1 -0
  346. package/dist/esm/ic-accordion-group.entry.js +1 -1
  347. package/dist/esm/ic-accordion.entry.js +1 -1
  348. package/dist/esm/ic-action-chip.entry.js +1 -1
  349. package/dist/esm/ic-alert.entry.js +4 -2
  350. package/dist/esm/ic-alert.entry.js.map +1 -1
  351. package/dist/esm/ic-back-to-top.entry.js +6 -5
  352. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  353. package/dist/esm/ic-badge.entry.js +3 -3
  354. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  355. package/dist/esm/ic-breadcrumb.entry.js +5 -4
  356. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  357. package/dist/esm/ic-button_3.entry.js +43 -19
  358. package/dist/esm/ic-button_3.entry.js.map +1 -1
  359. package/dist/esm/ic-card-vertical.entry.js +5 -5
  360. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  361. package/dist/esm/ic-checkbox.entry.js +32 -9
  362. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  363. package/dist/esm/ic-chip.entry.js +4 -4
  364. package/dist/esm/ic-data-row.entry.js +1 -1
  365. package/dist/esm/ic-dialog.entry.js +5 -4
  366. package/dist/esm/ic-dialog.entry.js.map +1 -1
  367. package/dist/esm/ic-divider.entry.js +3 -2
  368. package/dist/esm/ic-divider.entry.js.map +1 -1
  369. package/dist/esm/ic-empty-state.entry.js +3 -3
  370. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  371. package/dist/esm/ic-footer-link.entry.js +3 -3
  372. package/dist/esm/ic-footer.entry.js +1 -1
  373. package/dist/esm/ic-hero.entry.js +13 -7
  374. package/dist/esm/ic-hero.entry.js.map +1 -1
  375. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  376. package/dist/esm/ic-input-component-container_3.entry.js +9 -9
  377. package/dist/esm/ic-input-label_2.entry.js +6 -6
  378. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  379. package/dist/esm/ic-layout-grid.entry.js +2 -2
  380. package/dist/esm/ic-link.entry.js +2 -2
  381. package/dist/esm/ic-menu-group.entry.js +2 -2
  382. package/dist/esm/ic-menu-item.entry.js +3 -2
  383. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  384. package/dist/esm/ic-navigation-button.entry.js +3 -3
  385. package/dist/esm/ic-navigation-group.entry.js +2 -2
  386. package/dist/esm/ic-navigation-item.entry.js +3 -3
  387. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  388. package/dist/esm/ic-page-header.entry.js +7 -7
  389. package/dist/esm/ic-pagination-item.entry.js +2 -2
  390. package/dist/esm/ic-pagination.entry.js +5 -5
  391. package/dist/esm/ic-popover-menu.entry.js +5 -5
  392. package/dist/esm/ic-radio-group.entry.js +1 -1
  393. package/dist/esm/ic-radio-option.entry.js +1 -1
  394. package/dist/esm/ic-search-bar.entry.js +1 -1
  395. package/dist/esm/ic-section-container.entry.js +2 -2
  396. package/dist/esm/ic-select.entry.js +21 -13
  397. package/dist/esm/ic-select.entry.js.map +1 -1
  398. package/dist/esm/ic-side-navigation.entry.js +6 -6
  399. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  400. package/dist/esm/ic-skeleton.entry.js +2 -2
  401. package/dist/esm/ic-skip-link.entry.js +2 -2
  402. package/dist/esm/ic-status-tag.entry.js +3 -3
  403. package/dist/esm/ic-step.entry.js +14 -14
  404. package/dist/esm/ic-stepper.entry.js +3 -3
  405. package/dist/esm/ic-switch.entry.js +5 -5
  406. package/dist/esm/ic-tab-context.entry.js +1 -1
  407. package/dist/esm/ic-tab-group.entry.js +3 -3
  408. package/dist/esm/ic-tab-panel.entry.js +2 -2
  409. package/dist/esm/ic-tab.entry.js +3 -3
  410. package/dist/esm/ic-text-field.entry.js +13 -8
  411. package/dist/esm/ic-text-field.entry.js.map +1 -1
  412. package/dist/esm/ic-theme.entry.js +2 -2
  413. package/dist/esm/ic-toast-region.entry.js +1 -1
  414. package/dist/esm/ic-toast.entry.js +8 -5
  415. package/dist/esm/ic-toast.entry.js.map +1 -1
  416. package/dist/esm/ic-toggle-button-group.entry.js +8 -4
  417. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  418. package/dist/esm/ic-toggle-button.entry.js +58 -45
  419. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  420. package/dist/esm/ic-top-navigation.entry.js +5 -5
  421. package/dist/esm/ic-typography.entry.js +3 -3
  422. package/dist/esm/loader.js +1 -1
  423. package/dist/types/components/ic-button/ic-button.d.ts +8 -2
  424. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +5 -0
  425. package/dist/types/components/ic-hero/ic-hero.d.ts +5 -1
  426. package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -4
  427. package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +5 -0
  428. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +1 -0
  429. package/dist/types/components.d.ts +12 -4
  430. package/dist/types/utils/helpers.d.ts +1 -0
  431. package/hydrate/index.js +324 -226
  432. package/hydrate/index.mjs +324 -226
  433. package/package.json +2 -2
  434. package/vscode-data.json +15 -0
  435. package/dist/core/p-0123dde7.entry.js +0 -2
  436. package/dist/core/p-0123dde7.entry.js.map +0 -1
  437. package/dist/core/p-02af2b59.entry.js +0 -2
  438. package/dist/core/p-02af2b59.entry.js.map +0 -1
  439. package/dist/core/p-05036675.entry.js.map +0 -1
  440. package/dist/core/p-0c36ce84.entry.js +0 -2
  441. package/dist/core/p-0c36ce84.entry.js.map +0 -1
  442. package/dist/core/p-2800fc30.entry.js +0 -2
  443. package/dist/core/p-2800fc30.entry.js.map +0 -1
  444. package/dist/core/p-45f743e4.entry.js +0 -2
  445. package/dist/core/p-45f743e4.entry.js.map +0 -1
  446. package/dist/core/p-6058d4c9.entry.js +0 -2
  447. package/dist/core/p-6058d4c9.entry.js.map +0 -1
  448. package/dist/core/p-6e139e6e.entry.js +0 -2
  449. package/dist/core/p-6e139e6e.entry.js.map +0 -1
  450. package/dist/core/p-8b99a806.entry.js +0 -2
  451. package/dist/core/p-8b99a806.entry.js.map +0 -1
  452. package/dist/core/p-a08c360b.entry.js +0 -2
  453. package/dist/core/p-a08c360b.entry.js.map +0 -1
  454. package/dist/core/p-a1857d24.entry.js +0 -2
  455. package/dist/core/p-a1857d24.entry.js.map +0 -1
  456. package/dist/core/p-abd88929.entry.js.map +0 -1
  457. package/dist/core/p-b57e59b7.js.map +0 -1
  458. package/dist/core/p-eb0e7153.entry.js +0 -2
  459. package/dist/core/p-eb0e7153.entry.js.map +0 -1
  460. package/dist/core/p-f609ca37.entry.js +0 -2
  461. package/dist/core/p-f609ca37.entry.js.map +0 -1
  462. package/dist/core/p-fb734a59.entry.js +0 -2
  463. package/dist/core/p-fb734a59.entry.js.map +0 -1
  464. package/dist/esm/helpers-4ddac6ed.js.map +0 -1
  465. /package/dist/core/{p-621b0770.entry.js.map → p-042cfc35.entry.js.map} +0 -0
  466. /package/dist/core/{p-37d217b5.entry.js.map → p-04cb17d7.entry.js.map} +0 -0
  467. /package/dist/core/{p-cc00cbce.entry.js.map → p-0c4ceed9.entry.js.map} +0 -0
  468. /package/dist/core/{p-a97b8082.entry.js.map → p-11d8a504.entry.js.map} +0 -0
  469. /package/dist/core/{p-813ad03c.entry.js.map → p-12c30491.entry.js.map} +0 -0
  470. /package/dist/core/{p-33582352.entry.js.map → p-14d43f64.entry.js.map} +0 -0
  471. /package/dist/core/{p-99793b64.entry.js.map → p-199c5ff6.entry.js.map} +0 -0
  472. /package/dist/core/{p-71c86e71.entry.js.map → p-1f41818b.entry.js.map} +0 -0
  473. /package/dist/core/{p-6f50d2e0.entry.js.map → p-2026f4fa.entry.js.map} +0 -0
  474. /package/dist/core/{p-9cf6ccfd.entry.js.map → p-319e3d5b.entry.js.map} +0 -0
  475. /package/dist/core/{p-675bb3e4.entry.js.map → p-33e35173.entry.js.map} +0 -0
  476. /package/dist/core/{p-b0376079.entry.js.map → p-3680f22c.entry.js.map} +0 -0
  477. /package/dist/core/{p-1423bd4a.entry.js.map → p-3785c740.entry.js.map} +0 -0
  478. /package/dist/core/{p-8684efeb.entry.js.map → p-3a94849e.entry.js.map} +0 -0
  479. /package/dist/core/{p-13e093d0.entry.js.map → p-411527a1.entry.js.map} +0 -0
  480. /package/dist/core/{p-9f12b20c.entry.js.map → p-42d35fc4.entry.js.map} +0 -0
  481. /package/dist/core/{p-e6dacbe2.entry.js.map → p-4bdeb62d.entry.js.map} +0 -0
  482. /package/dist/core/{p-01e018cb.entry.js.map → p-4d3b219c.entry.js.map} +0 -0
  483. /package/dist/core/{p-57721431.entry.js.map → p-5254a078.entry.js.map} +0 -0
  484. /package/dist/core/{p-37daa8fe.entry.js.map → p-53740194.entry.js.map} +0 -0
  485. /package/dist/core/{p-492fcb51.entry.js.map → p-67c3985d.entry.js.map} +0 -0
  486. /package/dist/core/{p-19f9d292.entry.js.map → p-703f3de1.entry.js.map} +0 -0
  487. /package/dist/core/{p-228bc12d.entry.js.map → p-7d0d85c4.entry.js.map} +0 -0
  488. /package/dist/core/{p-6dbe70f1.entry.js.map → p-911b4aa4.entry.js.map} +0 -0
  489. /package/dist/core/{p-9a8bcb78.entry.js.map → p-9674b63f.entry.js.map} +0 -0
  490. /package/dist/core/{p-5fcfcfb6.entry.js.map → p-9ca147f3.entry.js.map} +0 -0
  491. /package/dist/core/{p-8558b9b7.entry.js.map → p-a45de09d.entry.js.map} +0 -0
  492. /package/dist/core/{p-c04e1fab.entry.js.map → p-a5415f6c.entry.js.map} +0 -0
  493. /package/dist/core/{p-93479c36.entry.js.map → p-a7583faf.entry.js.map} +0 -0
  494. /package/dist/core/{p-ea06792a.entry.js.map → p-a7f21494.entry.js.map} +0 -0
  495. /package/dist/core/{p-4747c39f.entry.js.map → p-adde6c66.entry.js.map} +0 -0
  496. /package/dist/core/{p-96a6cff2.entry.js.map → p-ae11583f.entry.js.map} +0 -0
  497. /package/dist/core/{p-514daffe.entry.js.map → p-b3cb1e35.entry.js.map} +0 -0
  498. /package/dist/core/{p-27e67d45.entry.js.map → p-c397b33f.entry.js.map} +0 -0
  499. /package/dist/core/{p-45097448.entry.js.map → p-c4ffcc64.entry.js.map} +0 -0
  500. /package/dist/core/{p-511aa329.entry.js.map → p-cce398e1.entry.js.map} +0 -0
  501. /package/dist/core/{p-54803e3b.entry.js.map → p-d3223b89.entry.js.map} +0 -0
  502. /package/dist/core/{p-80317cd1.entry.js.map → p-e0423c7e.entry.js.map} +0 -0
  503. /package/dist/core/{p-b9bdd9a9.entry.js.map → p-e7af1e2d.entry.js.map} +0 -0
  504. /package/dist/core/{p-a06c1e4e.entry.js.map → p-eca43f7d.entry.js.map} +0 -0
  505. /package/dist/core/{p-0ec76cff.entry.js.map → p-f247db14.entry.js.map} +0 -0
  506. /package/dist/core/{p-de32a223.entry.js.map → p-f4e3bb5b.entry.js.map} +0 -0
  507. /package/dist/core/{p-25bef09d.entry.js.map → p-f51c609d.entry.js.map} +0 -0
  508. /package/dist/core/{p-c975cced.entry.js.map → p-f57729b8.entry.js.map} +0 -0
  509. /package/dist/core/{p-95d3d1a7.entry.js.map → p-f6bb691a.entry.js.map} +0 -0
  510. /package/dist/core/{p-2126d37b.entry.js.map → p-f7105cf9.entry.js.map} +0 -0
@@ -32,7 +32,6 @@ export class Button {
32
32
  this.mutationObserver = null;
33
33
  this.hostMutationObserver = null;
34
34
  this.ariaLabel = "";
35
- this.describedByContent = "";
36
35
  this.title = "";
37
36
  /**
38
37
  * If `fileUpload` is set to `true`, this is the accepted list of file types.
@@ -133,11 +132,31 @@ export class Button {
133
132
  this.icBlur.emit();
134
133
  };
135
134
  /**
136
- * Triggered when text content of sibling element in light DOM changes
135
+ * Creates/updates clone of aria-describedby element node tree in shadow dom
136
+ * Required due to ids being scoped to the shadow dom
137
+ */
138
+ this.updateAriaDescribedbyClone = () => {
139
+ var _a, _b;
140
+ if (this.describedbyNode) {
141
+ const wrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("#describedby-wrapper");
142
+ if (!wrapper) {
143
+ (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.appendChild(Object.assign(document.createElement("div"), {
144
+ id: "describedby-wrapper",
145
+ className: "ic-button-describedby",
146
+ }));
147
+ }
148
+ while (wrapper === null || wrapper === void 0 ? void 0 : wrapper.firstChild)
149
+ wrapper.firstChild.remove();
150
+ wrapper === null || wrapper === void 0 ? void 0 : wrapper.appendChild(this.describedbyNode);
151
+ }
152
+ };
153
+ /**
154
+ * Triggered when light dom aria-describedby element updates
137
155
  */
138
156
  this.mutationCallback = () => {
139
157
  var _a;
140
- this.describedByContent = (_a = this.describedbyEl) === null || _a === void 0 ? void 0 : _a.innerText;
158
+ if (this.describedbyEl)
159
+ this.describedbyNode = (_a = this.describedbyEl) === null || _a === void 0 ? void 0 : _a.cloneNode(true);
141
160
  };
142
161
  /**
143
162
  * Triggered when attributes of host element change
@@ -226,6 +245,9 @@ export class Button {
226
245
  }
227
246
  };
228
247
  }
248
+ watchDescribedbyNodeHandler() {
249
+ this.updateAriaDescribedbyClone();
250
+ }
229
251
  watchDisabledHandler() {
230
252
  removeDisabledFalse(this.disabled, this.el);
231
253
  }
@@ -245,8 +267,7 @@ export class Button {
245
267
  this.setHasTooltip();
246
268
  }
247
269
  componentWillLoad() {
248
- var _a;
249
- const _b = inheritAttributes(this.el, [...IC_INHERITED_ARIA, "title"]), { title, "aria-label": ariaLabel } = _b, restInheritedAttributes = __rest(_b, ["title", "aria-label"]);
270
+ const _a = inheritAttributes(this.el, [...IC_INHERITED_ARIA, "title"]), { title, "aria-label": ariaLabel } = _a, restInheritedAttributes = __rest(_a, ["title", "aria-label"]);
250
271
  this.title = title;
251
272
  this.ariaLabel = ariaLabel;
252
273
  this.inheritedAttributes = restInheritedAttributes;
@@ -258,10 +279,10 @@ export class Button {
258
279
  const describedById = this.inheritedAttributes["aria-describedby"];
259
280
  if (describedById) {
260
281
  this.describedById = describedById;
261
- const el = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector(`#${describedById}`);
282
+ const el = document.querySelector(`#${describedById}`);
262
283
  if (el) {
263
- this.describedByContent = el.innerText;
264
284
  this.describedbyEl = el;
285
+ this.describedbyNode = el.cloneNode(true);
265
286
  }
266
287
  }
267
288
  }
@@ -287,6 +308,7 @@ export class Button {
287
308
  if (this.hasRouterSlot())
288
309
  this.arrangeRouterItem();
289
310
  }
311
+ this.updateAriaDescribedbyClone();
290
312
  }
291
313
  componentWillRender() {
292
314
  const iconEl = this.getSlottedIcon("left") || this.getSlottedIcon("right");
@@ -342,7 +364,7 @@ export class Button {
342
364
  }
343
365
  }
344
366
  render() {
345
- const { ariaControlsId, ariaLabel, ariaOwnsId, buttonIdNum, describedByContent, describedById, disabled, download, dropdown, dropdownExpanded, form, formaction, formenctype, formmethod, formnovalidate, formtarget, fullWidth, handleClick, handleKeyDown, hasTooltip, href, hreflang, id, inheritedAttributes, isIconVariant, loading, monochrome, onBlur, onFocus, referrerpolicy, rel, size, target, theme, title, tooltipFixedPositioning, tooltipPlacement, transparentBackground, type, variant, } = this;
367
+ const { ariaControlsId, ariaLabel, ariaOwnsId, buttonIdNum, describedById, disabled, download, dropdown, dropdownExpanded, form, formaction, formenctype, formmethod, formnovalidate, formtarget, fullWidth, handleClick, handleKeyDown, hasTooltip, href, hreflang, id, inheritedAttributes, isIconVariant, loading, monochrome, onBlur, onFocus, referrerpolicy, rel, size, target, theme, title, tooltipFixedPositioning, tooltipPlacement, transparentBackground, type, variant, } = this;
346
368
  const TagType = href ? "a" : "button";
347
369
  const buttonAttrs = TagType === "button"
348
370
  ? {
@@ -376,7 +398,7 @@ export class Button {
376
398
  variant !== "destructive" && (h("span", { class: dropdownExpanded
377
399
  ? "dropdown-expanded"
378
400
  : "arrow-dropdown", innerHTML: arrowDropdown }))))));
379
- return (h(Host, { key: '1f58739b62e290b1b86fa82c9153e04711196367', class: {
401
+ return (h(Host, { key: '4e15c7ddb5f7d220f52848c36fc9b26932daeb8e', class: {
380
402
  "ic-button-disabled": disabled && !loading,
381
403
  "ic-button-full-width": fullWidth,
382
404
  "ic-button-loading": loading,
@@ -392,7 +414,7 @@ export class Button {
392
414
  monochrome,
393
415
  "top-icon": isSlotUsed(this.el, "top-icon"),
394
416
  "with-badge": isSlotUsed(this.el, "badge"),
395
- }, onClick: handleClick, onKeyDown: handleKeyDown, "aria-owns": ariaOwnsId, "aria-controls": ariaControlsId, "aria-expanded": dropdown && `${dropdownExpanded}` }, hasTooltip && (h("ic-tooltip", { key: 'fa067eeedb2f960436c693a0d8978a46eea9cc68', id: describedby, label: title || ariaLabel, target: buttonId, placement: tooltipPlacement, fixedPositioning: tooltipFixedPositioning, silent: isIconVariant() && !!ariaLabel }, h(ButtonContent, { key: 'a3565789687668d376a8c6e6044a0c3b1e864532' }))), isSlotUsed(this.el, "badge") && h("slot", { key: '1bacc47dfc65cce6880600906512a9262b6773cc', name: "badge" }), !hasTooltip && h(ButtonContent, { key: 'd00dc87862ffc939fc5c8341c686dddbc642eb02' }), describedByContent && (h("span", { key: '1d25a9c513d23e6a23e2e1d81ad036d1df47363c', id: describedby, class: "ic-button-describedby" }, describedByContent))));
417
+ }, onClick: handleClick, onKeyDown: handleKeyDown, "aria-owns": ariaOwnsId, "aria-controls": ariaControlsId, "aria-expanded": dropdown && `${dropdownExpanded}` }, hasTooltip && (h("ic-tooltip", { key: 'a6b3305c993a950f41b2cc44812a35239b4ef717', id: describedby, label: title || ariaLabel, target: buttonId, placement: tooltipPlacement, fixedPositioning: tooltipFixedPositioning, silent: isIconVariant() && !!ariaLabel }, h(ButtonContent, { key: '146f8c894991641b88313d8947c5ac4e1d204049' }))), isSlotUsed(this.el, "badge") && h("slot", { key: '4aede0d2f30748690130dfba00612b3adc859c10', name: "badge" }), !hasTooltip && h(ButtonContent, { key: 'bf1fd18f9c47ea1199babace3584855499a2776c' })));
396
418
  }
397
419
  static get is() { return "ic-button"; }
398
420
  static get encapsulation() { return "shadow"; }
@@ -1104,7 +1126,7 @@ export class Button {
1104
1126
  static get states() {
1105
1127
  return {
1106
1128
  "ariaLabel": {},
1107
- "describedByContent": {},
1129
+ "describedbyNode": {},
1108
1130
  "title": {}
1109
1131
  };
1110
1132
  }
@@ -1185,6 +1207,9 @@ export class Button {
1185
1207
  static get elementRef() { return "el"; }
1186
1208
  static get watchers() {
1187
1209
  return [{
1210
+ "propName": "describedbyNode",
1211
+ "methodName": "watchDescribedbyNodeHandler"
1212
+ }, {
1188
1213
  "propName": "disabled",
1189
1214
  "methodName": "watchDisabledHandler"
1190
1215
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-button.js","sourceRoot":"","sources":["../../../src/components/ic-button/ic-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedByContent? = \"\";\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\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({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = this.el.parentElement?.querySelector<HTMLElement>(\n `#${describedById}`\n );\n if (el) {\n this.describedByContent = el.innerText;\n this.describedbyEl = el;\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Triggered when text content of sibling element in light DOM changes\n */\n private mutationCallback = () => {\n this.describedByContent = this.describedbyEl?.innerText;\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedByContent,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n {describedByContent && (\n <span id={describedby} class=\"ic-button-describedby\">\n {describedByContent}\n </span>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-button.js","sourceRoot":"","sources":["../../../src/components/ic-button/ic-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedbyNode: Node | null;\n @Watch(\"describedbyNode\")\n watchDescribedbyNodeHandler(): void {\n this.updateAriaDescribedbyClone();\n }\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\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({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = document.querySelector<HTMLElement>(`#${describedById}`);\n if (el) {\n this.describedbyEl = el;\n this.describedbyNode = el.cloneNode(true);\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n\n this.updateAriaDescribedbyClone();\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Creates/updates clone of aria-describedby element node tree in shadow dom\n * Required due to ids being scoped to the shadow dom\n */\n private updateAriaDescribedbyClone = () => {\n if (this.describedbyNode) {\n const wrapper = this.el.shadowRoot?.querySelector(\"#describedby-wrapper\");\n if (!wrapper) {\n this.el.shadowRoot?.appendChild(\n Object.assign(document.createElement(\"div\"), {\n id: \"describedby-wrapper\",\n className: \"ic-button-describedby\",\n })\n );\n }\n\n while (wrapper?.firstChild) wrapper.firstChild.remove();\n wrapper?.appendChild(this.describedbyNode);\n }\n };\n\n /**\n * Triggered when light dom aria-describedby element updates\n */\n private mutationCallback = () => {\n if (this.describedbyEl)\n this.describedbyNode = this.describedbyEl?.cloneNode(true);\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n"]}
@@ -150,19 +150,19 @@ export class CardVertical {
150
150
  rel: rel,
151
151
  target: target,
152
152
  };
153
- return (h(Host, { key: '2dc8070692fc796401c84c6156d1f66c8053310a', class: {
153
+ return (h(Host, { key: 'aeff3ef22b085acbf30dacb5d3ae0167451044b9', class: {
154
154
  [`ic-theme-${theme}`]: theme !== "inherit",
155
- } }, h(Component, Object.assign({ key: 'a1a8763990ed7e5ac5eecfc69e4b29ab184b9e6e', class: {
155
+ } }, h(Component, Object.assign({ key: 'a451e5f53149283ee77878ccc3e699beae669f24', class: {
156
156
  card: true,
157
157
  clickable: !!clickable && !disabled,
158
158
  disabled: !!disabled,
159
159
  fullwidth: !!fullWidth,
160
160
  focussed: isFocussed,
161
161
  monochrome: monochrome,
162
- }, tabindex: clickable && !parentIsAnchorTag ? 0 : undefined, "aria-disabled": disabled ? "true" : null, disabled: disabled }, attrs), isSlotUsed(this.el, "image-top") && (h("div", { key: '2c12f461a8b8972d8a4de1a6560a2c52ecadc36f', class: "image-top" }, h("slot", { key: '9afec40e5ef6b57a10ca922d7f3da378f962200f', name: "image-top" }))), h("div", { key: 'bb92939da24dbfa2fb2e4bc2606d4f7ef9d2ba37', class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { key: '165af9342325b430548209cf2bcd5b9781b752fd', class: "icon" }, h("slot", { key: '4b2cdd47b1f2abfc16097dee848b630c93c1b835', name: "icon" }))), h("div", { key: '02f1b6357a696bc43b9d5cc7c8030647b52e311c', class: "card-title" }, h("slot", { key: 'b71ca0fa6a4aeb1cf75579920a66f58abe11d5ae', name: "heading" }, h("ic-typography", { key: '63f9c6478987888f41a53d5beadec2b3deaa52ae', variant: "h4" }, h("p", { key: '6d642c20d4656a408cf439c969a1895cb834c15e' }, heading)))), isSlotUsed(this.el, "interaction-button") && (h("div", { key: '7a44d7d2c17cd980fa14da2a65aa68ddd8832f77', class: "interaction-button" }, h("slot", { key: '6a9e0f0ca96125d94d39b31474c82ffe088ea475', name: "interaction-button" })))), (subheading || isSlotUsed(this.el, "subheading")) && (h("div", { key: 'dc19ca8ae488c30aa1fc58e56db23fc0dc2a2c0f', class: "subheading" }, h("slot", { key: 'bae9a057f813ef5c5df04befed60d09ccb106857', name: "subheading" }, h("ic-typography", { key: '13a32e2d9bc3258b65edf8a5c385f181f39a2c8d', variant: "subtitle-small" }, subheading)))), isSlotUsed(this.el, "adornment") && (h("div", { key: 'c359631c9d1ed0643290e1db2a5e521d6702b29d', class: "adornment" }, h("slot", { key: '398a65927df066f96bffc5b59b95fd27ec558c12', name: "adornment" }))), isSlotUsed(this.el, "image-mid") && (h("div", { key: '463a2495779d1faca6efd98a3e1425e3486fc0d1', class: "image-mid" }, h("slot", { key: '049daa3cbf2542b0a47951a8758bb50a1ad699e2', name: "image-mid" }))), (message || isSlotUsed(this.el, "message")) && (h("div", { key: '9f6b4ea8e3a8cfa0e8ad58366f4e2a198cb0f8f6', class: "card-message" }, message && (h("ic-typography", { key: '1a32ff3958de50ea5732a0fb52616d04c6ebedcc', variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { key: '0dabb8f6ed9bd42a0982284fa4976734c0d5e16f', name: "message" }))), (isSlotUsed(this.el, "interaction-controls") || expandable) && (h("div", { key: '2d6292c895df325c53cffc72a330720855644c59', class: "interaction-area" }, h("div", { key: 'a8c4c10d85a5608f49dbccb8cb65443d56d64a3f', class: "interaction-controls" }, h("slot", { key: '5caebe86117ec6ef31d096a284aa035153e02a56', name: "interaction-controls" })), expandable && (h("ic-tooltip", { key: '1d66d84f3181cc1694cdf779befca1610c538f71', id: "ic-tooltip-expand-button", label: "Toggle expandable area", silent: true }, h("button", { key: 'eaa2b9484428dab89fb67677b80a09a6174b011b', class: {
162
+ }, tabindex: clickable && !parentIsAnchorTag ? 0 : undefined, "aria-disabled": disabled ? "true" : null, disabled: disabled }, attrs), isSlotUsed(this.el, "image-top") && (h("div", { key: '2ec35ab8d6e1224c0a393c92a72e403e4c5fc8fc', class: "image-top" }, h("slot", { key: 'c859ae1e242284b586df2ce7627c316021b8ef54', name: "image-top" }))), h("div", { key: '55f21501b3d95e1f5bf3a69542dab57d00379e63', class: "card-header" }, isSlotUsed(this.el, "icon") && (h("div", { key: 'f95e7224d6e8548f33a8861025a1651a3bc953a4', class: "icon" }, h("slot", { key: '1102f6f88e830613365cb0bfe3e5c4481b3a207e', name: "icon" }))), h("div", { key: '3122872ef284640debbf7182d36f9cd4c6032ae4', class: "card-title" }, h("slot", { key: 'f51213257b0ff6e195852ca006e9cba35103f210', name: "heading" }, h("ic-typography", { key: '7d82fce416b7579ac23e2154ef512bd8f3181bc3', variant: "h4" }, h("p", { key: 'ad083279b8f012f16d67c182c37bcc6383710ba5' }, heading)))), isSlotUsed(this.el, "interaction-button") && (h("div", { key: 'bb47af0b373f295cb1bcd1b72df6c325e257c2ed', class: "interaction-button" }, h("slot", { key: 'fd0fc056e51febf6d9abe76d7ffb0773836e52d3', name: "interaction-button" })))), (subheading || isSlotUsed(this.el, "subheading")) && (h("div", { key: '32851c6c59b9ee76aa490210f5888fe410067ca3', class: "subheading" }, h("slot", { key: '5757fd2fd2618f03fee208b855384c29861cadc6', name: "subheading" }, h("ic-typography", { key: '1f206ca1eaf0bcd5693abf3fc3f97303582a5deb', variant: "subtitle-small" }, subheading)))), isSlotUsed(this.el, "adornment") && (h("div", { key: 'ceef939617ce12be984f15673e9ef4e71110234c', class: "adornment" }, h("slot", { key: '127e2dfa77b74a19070e90361d26fe1358539ca2', name: "adornment" }))), isSlotUsed(this.el, "image-mid") && (h("div", { key: '0cbc0b6a9638969db6fabcde40ad46044afc4b88', class: "image-mid" }, h("slot", { key: '3e8ae6e25570ed03e7fea0ae4fdd7a779d3022b1', name: "image-mid" }))), (message || isSlotUsed(this.el, "message")) && (h("div", { key: '9da59f1aeaa1fcf4bc2a0aa1bd50d3f86faa2af7', class: "card-message" }, message && (h("ic-typography", { key: '4620229c479b782ad5ee0c8e3a7acdf6a8a70d7b', variant: "body" }, message)), isSlotUsed(this.el, "message") && h("slot", { key: '959e101cc933319cf297d0f0ebbd46299a24cbd5', name: "message" }))), (isSlotUsed(this.el, "interaction-controls") || expandable) && (h("div", { key: 'c4263a3d5f8e22f31cf0e55a868dbf0f52b00692', class: "interaction-area" }, h("div", { key: 'bd5e1d3ff137004ff5c696f611dae1bfefd26e1a', class: "interaction-controls" }, h("slot", { key: '5985495f8f12c825aafcab517d3add5f9741d460', name: "interaction-controls" })), expandable && (h("ic-tooltip", { key: 'e3b12f780303019b7f95ce5a98d7b7194c242c9a', id: "ic-tooltip-expand-button", label: "Toggle expandable area", silent: true }, h("button", { key: '9857a37a37571bd21f500527149ed8bc3806c4f4', class: {
163
163
  "toggle-button": true,
164
164
  [`toggle-button-${this.areaExpanded ? "expanded" : "closed"}`]: true,
165
- }, "aria-label": "Toggle expandable area", "aria-expanded": `${this.areaExpanded}`, "aria-controls": this.areaExpanded ? "expanded-content-area" : null, onClick: this.toggleExpanded, innerHTML: chevronIcon }))))), isSlotUsed(this.el, "expanded-content") && this.areaExpanded && (h("div", { key: 'd896c331bad9e027c4b56dd1fce75bc530218516', class: "expanded-content", id: "expanded-content-area" }, h("slot", { key: '7fc81de39ef8a949674f22089d413bf946befdd7', name: "expanded-content" }))), isSlotUsed(this.el, "badge") && h("slot", { key: '283bff90fab9be3b640ab7d04384d7ce2873bad8', name: "badge" }))));
165
+ }, "aria-label": "Toggle expandable area", "aria-expanded": `${this.areaExpanded}`, "aria-controls": this.areaExpanded ? "expanded-content-area" : null, onClick: this.toggleExpanded, innerHTML: chevronIcon }))))), isSlotUsed(this.el, "expanded-content") && this.areaExpanded && (h("div", { key: '080d0198d37d939cfc506abc5933caac7eaa383d', class: "expanded-content", id: "expanded-content-area" }, h("slot", { key: '6c9b5dd6bfa46d466034255231047b2682e19f96', name: "expanded-content" }))), isSlotUsed(this.el, "badge") && h("slot", { key: '1f68304dd15e605320258bf8d14d2df3b0caf344', name: "badge" }))));
166
166
  }
167
167
  static get is() { return "ic-card-vertical"; }
168
168
  static get encapsulation() { return "shadow"; }
@@ -565,8 +565,6 @@ video {
565
565
  }
566
566
 
567
567
  .checkbox-label {
568
- color: var(--ic-checkbox-text);
569
-
570
568
  --ic-typography-color: var(--ic-checkbox-text);
571
569
  }
572
570
 
@@ -575,9 +573,18 @@ video {
575
573
  display: inline-block;
576
574
  }
577
575
 
576
+ ::slotted([slot="label"]) {
577
+ padding-left: var(--ic-space-sm) !important;
578
+ color: var(--ic-checkbox-text);
579
+ }
580
+
578
581
  :host(.ic-checkbox-disabled) .checkbox-label {
579
582
  color: var(--ic-checkbox-text-disabled);
583
+ --ic-typography-color: var(--ic-checkbox-text-disabled);
584
+ }
580
585
 
586
+ :host(.ic-checkbox-disabled) ::slotted([slot="label"]) {
587
+ color: var(--ic-checkbox-text-disabled);
581
588
  --ic-typography-color: var(--ic-checkbox-text-disabled);
582
589
  }
583
590
 
@@ -2,6 +2,7 @@ import { Host, h, } from "@stencil/core";
2
2
  import { isSlotUsed, onComponentRequiredPropUndefined, renderHiddenInput, removeHiddenInput, addFormResetListener, removeFormResetListener, removeDisabledFalse, } from "../../utils/helpers";
3
3
  /**
4
4
  * @slot additional-field - Content to be displayed alongside a checkbox.
5
+ * @slot label - Label for the checkbox.
5
6
  */
6
7
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
7
8
  export class Checkbox {
@@ -75,7 +76,12 @@ export class Checkbox {
75
76
  }
76
77
  }
77
78
  componentDidLoad() {
78
- onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Checkbox");
79
+ if (this.hasLabelSlot()) {
80
+ this.arrangeLabel();
81
+ }
82
+ else {
83
+ onComponentRequiredPropUndefined([{ prop: this.label, propName: "label" }], "Checkbox");
84
+ }
79
85
  }
80
86
  componentDidRender() {
81
87
  if (this.additionalFieldDisplay === "static") {
@@ -99,24 +105,42 @@ export class Checkbox {
99
105
  var _a;
100
106
  (_a = this.checkboxEl) === null || _a === void 0 ? void 0 : _a.focus();
101
107
  }
108
+ getCheckboxGroupId() {
109
+ return `ic-checkbox-${this.label}-${this.groupLabel}`.replace(/ /g, "-");
110
+ }
111
+ hasLabelSlot() {
112
+ this.labelSlot = this.el.querySelector('[slot="label"]');
113
+ return !!this.labelSlot;
114
+ }
115
+ arrangeLabel() {
116
+ var _a;
117
+ if (this.labelSlot) {
118
+ this.label = ((_a = this.labelSlot.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || "";
119
+ this.labelSlot.setAttribute("for", this.getCheckboxGroupId());
120
+ if (this.disabled) {
121
+ this.labelSlot.setAttribute("aria-disabled", "true");
122
+ }
123
+ }
124
+ }
102
125
  render() {
103
- const { additionalFieldDisplay, checked, disabled, displayIndeterminate, dynamicText, el, form, groupLabel, handleClick, hideLabel, label, name, size, theme, value, } = this;
104
- const id = `ic-checkbox-${label}-${groupLabel}`.replace(/ /g, "-");
126
+ const { additionalFieldDisplay, checked, disabled, displayIndeterminate, dynamicText, el, form, handleClick, hideLabel, label, name, size, theme, value, } = this;
127
+ const inputId = this.getCheckboxGroupId();
105
128
  const isDynamicAdditionalField = additionalFieldDisplay === "dynamic";
106
129
  checked
107
130
  ? renderHiddenInput(el, value, name, disabled)
108
131
  : removeHiddenInput(el);
109
- return (h(Host, { key: '153b0b333ca1d0755d4e52dd9119d48cd1c246cc', class: {
132
+ const LabelContent = () => this.hasLabelSlot() ? (h("slot", { name: "label" })) : (h("ic-typography", { class: "checkbox-label", variant: "body" }, h("label", { htmlFor: inputId }, label)));
133
+ return (h(Host, { key: 'b9aee197d23b8380b224aaa9f332d24c20406518', class: {
110
134
  "ic-checkbox-disabled": disabled,
111
135
  [`ic-checkbox-${size}`]: !!size,
112
136
  [`ic-theme-${theme}`]: theme !== "inherit",
113
- } }, h("div", { key: 'c0f56ee4fbbdd38fea208d133cdd1fa91a41d6c7', class: "container" }, displayIndeterminate ? (h("div", { class: "indeterminate-symbol" })) : (checked && (h("svg", { class: "checkmark", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "fill-rule": "evenodd", "clip-rule": "evenodd" }, h("title", null, "checkmark icon"), h("path", { d: "M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z" })))), h("input", { key: 'f8335e54b2f765591b3781d76a01632c34065855', role: "checkbox", class: {
137
+ } }, h("div", { key: 'a027b311fa8a9cc5ef753a426fc3f73e8d6f97a4', class: "container" }, displayIndeterminate ? (h("div", { class: "indeterminate-symbol" })) : (checked && (h("svg", { class: "checkmark", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", "fill-rule": "evenodd", "clip-rule": "evenodd" }, h("title", null, "checkmark icon"), h("path", { d: "M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z" })))), h("input", { key: '5f3ce7e559134302640a03d2312782552e9ab018', role: "checkbox", class: {
114
138
  checkbox: true,
115
139
  checked,
116
140
  indeterminate: displayIndeterminate,
117
- }, ref: (el) => (this.checkboxEl = el), type: "checkbox", name: name, id: id, value: value, disabled: disabled, checked: checked, indeterminate: displayIndeterminate, onClick: handleClick, form: form, "aria-label": hideLabel ? label : undefined }), !hideLabel && (h("ic-typography", { key: '2ba4862a349e6b3f34c050c434ce247687f0dfd8', class: "checkbox-label", variant: "body" }, h("label", { key: 'a3f3c733b5dc0a0acdf89d3b7db603e965102618', htmlFor: id }, label)))), h("span", { key: 'e671e1532bdfea4a1c5d85cbb8cde2cc41044757', id: `${id}-additional-field-description`, role: "alert", class: "sr-only" }, isDynamicAdditionalField && checked ? dynamicText : ""), isSlotUsed(el, "additional-field") && (h("div", { key: 'b562e4d2bf3cb6651c6a95aedb8a8e4991d1d1e7', class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h("div", { key: '9c6d8a88882fe32f1f272c3df42eeca896459284', class: "branch-corner" }), h("div", { key: '7a88d8ae6fc193a3b2e08e82eb47a6b0228ce40b', class: "dynamic-field-container" }, isDynamicAdditionalField && (h("ic-typography", { key: '64fdfe413653b6583789de3ee56c91c18522764e', variant: "caption" }, h("p", { key: '0075205b0805a37b362658d70152bb180c290f0c', class: "dynamic-text" }, isDynamicAdditionalField && checked ? dynamicText : ""))), h("div", { key: 'd6494d984bd1de5b08265fe1f8b2deb0a45e7d3a', class: {
141
+ }, ref: (el) => (this.checkboxEl = el), type: "checkbox", name: name, id: inputId, value: value, disabled: disabled, checked: checked, indeterminate: displayIndeterminate, onClick: handleClick, form: form, "aria-label": hideLabel || this.hasLabelSlot() ? label : undefined }), !hideLabel && h(LabelContent, { key: 'e75420d60d9fdc9170a7f54c96575936c8da122d' })), h("span", { key: 'c3fccdab4f27feaeab35df33734723d9f14487cc', id: `${inputId}-additional-field-description`, role: "alert", class: "sr-only" }, isDynamicAdditionalField && checked ? dynamicText : ""), isSlotUsed(el, "additional-field") && (h("div", { key: 'ceb57398c6a3dea8cec4eb4a8e0ba940f6f15c0a', class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h("div", { key: '41f097eb38e5dfd739b7de22cffb03ff3043d3e6', class: "branch-corner" }), h("div", { key: '15b7e382cf7c9bf23a68016f5f2a449ae92dc03b', class: "dynamic-field-container" }, isDynamicAdditionalField && (h("ic-typography", { key: 'd0551674a9d5d6d6d01cf842aff133072ce4d1be', variant: "caption" }, h("p", { key: '81f3345ea6625aa9d8644d5c410c7b24c1365975', class: "dynamic-text" }, isDynamicAdditionalField && checked ? dynamicText : ""))), h("div", { key: '970766071c9e70042e87e243e3415b73c189b51f', class: {
118
142
  "additional-field-wrapper": !isDynamicAdditionalField,
119
- } }, h("slot", { key: '905f210aaf41f4ba5d7c24e92bd19dbb17b81355', name: "additional-field" })))))));
143
+ } }, h("slot", { key: '3ff910a1d7a01312baeb70a965aaaa157ae66e6e', name: "additional-field" })))))));
120
144
  }
121
145
  static get is() { return "ic-checkbox"; }
122
146
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-checkbox.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox/ic-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer?: HTMLDivElement;\n private checkboxEl?: HTMLInputElement;\n\n @Element() el: HTMLIcCheckboxElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\n */\n @Prop({ reflect: true, mutable: true }) checked = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop({ mutable: true }) groupLabel?: 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 = false;\n\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate = false;\n @State() displayIndeterminate = this.indeterminate;\n @Watch(\"indeterminate\")\n watchIndeterminateHandler(): void {\n this.displayIndeterminate =\n this.indeterminate && (this.nativeIndeterminateBehaviour || this.checked);\n }\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop({ mutable: true }) name?: string;\n\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n @Prop() nativeIndeterminateBehaviour = false;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop({ mutable: true }) size?: IcSizes;\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 for the checkbox.\n */\n @Prop() value = \"\";\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n\n const { parentElement } = this.el;\n if (parentElement?.tagName === \"IC-CHECKBOX-GROUP\") {\n const { name, label, size } = parentElement as HTMLIcCheckboxGroupElement;\n\n if (!this.name) this.name = name;\n if (!this.size) this.size = size;\n this.groupLabel = label;\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Checkbox\"\n );\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n this.el\n .querySelectorAll(\"ic-text-field\")\n .forEach((textfield) =>\n textfield.setAttribute(\"disabled\", `${!this.checked}`)\n );\n } else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.checkboxEl?.focus();\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate =\n !this.nativeIndeterminateBehaviour && this.indeterminate && this.checked;\n this.icCheck.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n checked,\n disabled,\n displayIndeterminate,\n dynamicText,\n el,\n form,\n groupLabel,\n handleClick,\n hideLabel,\n label,\n name,\n size,\n theme,\n value,\n } = this;\n\n const id = `ic-checkbox-${label}-${groupLabel}`.replace(/ /g, \"-\");\n\n const isDynamicAdditionalField = additionalFieldDisplay === \"dynamic\";\n\n checked\n ? renderHiddenInput(el, value, name, disabled)\n : removeHiddenInput(el);\n\n return (\n <Host\n class={{\n \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size}`]: !!size,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"container\">\n {displayIndeterminate ? (\n <div class=\"indeterminate-symbol\" />\n ) : (\n checked && (\n <svg\n class=\"checkmark\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )\n )}\n <input\n role=\"checkbox\"\n class={{\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }}\n ref={(el) => (this.checkboxEl = el)}\n type=\"checkbox\"\n name={name}\n id={id}\n value={value}\n disabled={disabled}\n checked={checked}\n indeterminate={displayIndeterminate}\n onClick={handleClick}\n form={form}\n aria-label={hideLabel ? label : undefined}\n ></input>\n {!hideLabel && (\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={id}>{label}</label>\n </ic-typography>\n )}\n </div>\n <span\n id={`${id}-additional-field-description`}\n role=\"alert\"\n class=\"sr-only\"\n >\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </span>\n {isSlotUsed(el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {isDynamicAdditionalField && <div class=\"branch-corner\"></div>}\n <div class=\"dynamic-field-container\">\n {isDynamicAdditionalField && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\": !isDynamicAdditionalField,\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-checkbox.js","sourceRoot":"","sources":["../../../src/components/ic-checkbox/ic-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch,\n} from \"@stencil/core\";\nimport {\n IcAdditionalFieldTypes,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n removeHiddenInput,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\n\n/**\n * @slot additional-field - Content to be displayed alongside a checkbox.\n * @slot label - Label for the checkbox.\n */\n@Component({\n tag: \"ic-checkbox\",\n styleUrl: \"ic-checkbox.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Checkbox {\n private additionalFieldContainer?: HTMLDivElement;\n private checkboxEl?: HTMLInputElement;\n private labelSlot: HTMLElement | null;\n\n @Element() el: HTMLIcCheckboxElement;\n\n /**\n * The style of additionalField that will be displayed if used.\n */\n @Prop({ reflect: true }) additionalFieldDisplay: IcAdditionalFieldTypes =\n \"static\";\n\n /**\n * If `true`, the checkbox will be set to the checked state. This is only the initial state and will be updated to unchecked if the checkbox is clicked.\n */\n @Prop({ reflect: true, mutable: true }) checked = false;\n @State() initiallyChecked = this.checked;\n\n /**\n * If `true`, the checkbox will be set to the disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The text to be displayed when dynamic.\n */\n\n @Prop() dynamicText = \"This selection requires additional answers\";\n\n /**\n * The <form> element to associate the checkbox with.\n */\n @Prop() form?: string;\n\n /**\n * The group label for the checkbox.\n */\n @Prop({ mutable: true }) groupLabel?: 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 = false;\n\n /**\n * If `true`, the indeterminate state will be displayed when checked.\n */\n @Prop() indeterminate = false;\n @State() displayIndeterminate = this.indeterminate;\n @Watch(\"indeterminate\")\n watchIndeterminateHandler(): void {\n this.displayIndeterminate =\n this.indeterminate && (this.nativeIndeterminateBehaviour || this.checked);\n }\n\n /**\n * The label for the checkbox.\n */\n @Prop() label!: string;\n\n /**\n * The name for the checkbox. If not set when used in a checkbox group, the name will be based on the group name.\n */\n @Prop({ mutable: true }) name?: string;\n\n /**\n * If `true`, the checkbox will behave like a native checkbox where the `indeterminate` prop sets the indeterminate visual styling, independent of the `checked` state.\n */\n @Prop() nativeIndeterminateBehaviour = false;\n\n /**\n * The size of the checkbox to be displayed. This does not affect the font size of the label. If a checkbox is contained in a checkbox group, this will override the size set on checkbox group.\n */\n @Prop({ mutable: true }) size?: IcSizes;\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 for the checkbox.\n */\n @Prop() value = \"\";\n\n /**\n * Emitted when a checkbox has been checked.\n */\n @Event() icCheck: EventEmitter<void>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n addFormResetListener(this.el, this.handleFormReset);\n\n const { parentElement } = this.el;\n if (parentElement?.tagName === \"IC-CHECKBOX-GROUP\") {\n const { name, label, size } = parentElement as HTMLIcCheckboxGroupElement;\n\n if (!this.name) this.name = name;\n if (!this.size) this.size = size;\n this.groupLabel = label;\n }\n }\n\n componentDidLoad(): void {\n if (this.hasLabelSlot()) {\n this.arrangeLabel();\n } else {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Checkbox\"\n );\n }\n }\n\n componentDidRender(): void {\n if (this.additionalFieldDisplay === \"static\") {\n this.el\n .querySelectorAll(\"ic-text-field\")\n .forEach((textfield) =>\n textfield.setAttribute(\"disabled\", `${!this.checked}`)\n );\n } else if (this.additionalFieldContainer) {\n this.additionalFieldContainer.style.display = !this.checked\n ? \"none\"\n : \"flex\";\n }\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n /**\n * Sets focus on the checkbox.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.checkboxEl?.focus();\n }\n\n private getCheckboxGroupId() {\n return `ic-checkbox-${this.label}-${this.groupLabel}`.replace(/ /g, \"-\");\n }\n\n private hasLabelSlot() {\n this.labelSlot = this.el.querySelector('[slot=\"label\"]');\n return !!this.labelSlot;\n }\n\n private arrangeLabel() {\n if (this.labelSlot) {\n this.label = this.labelSlot.textContent?.trim() || \"\";\n this.labelSlot.setAttribute(\"for\", this.getCheckboxGroupId());\n if (this.disabled) {\n this.labelSlot.setAttribute(\"aria-disabled\", \"true\");\n }\n }\n }\n\n private handleClick = () => {\n this.checked = !this.checked;\n this.displayIndeterminate =\n !this.nativeIndeterminateBehaviour && this.indeterminate && this.checked;\n this.icCheck.emit();\n };\n\n private handleFormReset = (): void => {\n this.checked = this.initiallyChecked;\n };\n\n render() {\n const {\n additionalFieldDisplay,\n checked,\n disabled,\n displayIndeterminate,\n dynamicText,\n el,\n form,\n handleClick,\n hideLabel,\n label,\n name,\n size,\n theme,\n value,\n } = this;\n\n const inputId = this.getCheckboxGroupId();\n\n const isDynamicAdditionalField = additionalFieldDisplay === \"dynamic\";\n\n checked\n ? renderHiddenInput(el, value, name, disabled)\n : removeHiddenInput(el);\n\n const LabelContent = () =>\n this.hasLabelSlot() ? (\n <slot name=\"label\"></slot>\n ) : (\n <ic-typography class=\"checkbox-label\" variant=\"body\">\n <label htmlFor={inputId}>{label}</label>\n </ic-typography>\n );\n\n return (\n <Host\n class={{\n \"ic-checkbox-disabled\": disabled,\n [`ic-checkbox-${size}`]: !!size,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <div class=\"container\">\n {displayIndeterminate ? (\n <div class=\"indeterminate-symbol\" />\n ) : (\n checked && (\n <svg\n class=\"checkmark\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n >\n <title>checkmark icon</title>\n <path d=\"M21 6.285l-11.16 12.733-6.84-6.018 1.319-1.49 5.341 4.686 9.865-11.196 1.475 1.285z\" />\n </svg>\n )\n )}\n <input\n role=\"checkbox\"\n class={{\n checkbox: true,\n checked,\n indeterminate: displayIndeterminate,\n }}\n ref={(el) => (this.checkboxEl = el)}\n type=\"checkbox\"\n name={name}\n id={inputId}\n value={value}\n disabled={disabled}\n checked={checked}\n indeterminate={displayIndeterminate}\n onClick={handleClick}\n form={form}\n aria-label={hideLabel || this.hasLabelSlot() ? label : undefined}\n ></input>\n {!hideLabel && <LabelContent />}\n </div>\n <span\n id={`${inputId}-additional-field-description`}\n role=\"alert\"\n class=\"sr-only\"\n >\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </span>\n {isSlotUsed(el, \"additional-field\") && (\n <div\n class=\"dynamic-container\"\n ref={(el) => (this.additionalFieldContainer = el)}\n >\n {isDynamicAdditionalField && <div class=\"branch-corner\"></div>}\n <div class=\"dynamic-field-container\">\n {isDynamicAdditionalField && (\n <ic-typography variant=\"caption\">\n <p class=\"dynamic-text\">\n {isDynamicAdditionalField && checked ? dynamicText : \"\"}\n </p>\n </ic-typography>\n )}\n <div\n class={{\n \"additional-field-wrapper\": !isDynamicAdditionalField,\n }}\n >\n <slot name=\"additional-field\"></slot>\n </div>\n </div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
@@ -315,6 +315,29 @@ export const ConditionalStatic = {
315
315
  name: "Conditional static",
316
316
  };
317
317
 
318
+ export const SlottedLabel = {
319
+ render: (args) => html`
320
+ <ic-checkbox-group label="Pick your coffee" name="group1">
321
+ <ic-checkbox value="valueName1" label="Americano"></ic-checkbox>
322
+ <ic-checkbox value="valueName2" checked>
323
+ <span slot="label">
324
+ Coffee <ic-status-tag label="hot" status="warning"></ic-status-tag>
325
+ </span>
326
+ </ic-checkbox>
327
+ <ic-checkbox value="valueName3" checked>
328
+ <span slot="label">
329
+ <b>Slot Coffee</b>
330
+ </span>
331
+ </ic-checkbox>
332
+ <ic-checkbox value="valueName4" disabled>
333
+ <span slot="label"> <b>OUT OF STOCK</b> Big Coffee </span>
334
+ </ic-checkbox>
335
+ </ic-checkbox-group>
336
+ `,
337
+
338
+ name: "Slotted label",
339
+ };
340
+
318
341
  export const HelperText = {
319
342
  render: (args) => html`
320
343
  <ic-checkbox-group
@@ -799,6 +822,35 @@ export const RTL = {
799
822
  name: "RTL",
800
823
  };
801
824
 
825
+ export const Internationalisation = {
826
+ render: (args) => html`
827
+ <p>Each checkbox in this group is set to a different language by being wrapped in a <code>&lt;span lang=""&gt;</code></p>
828
+ <ic-checkbox-group
829
+ label="International Coffee"
830
+ >
831
+ <span lang="fr">
832
+ <ic-checkbox value="valueName1" label="Cafe au lait"></ic-checkbox>
833
+ </span>
834
+ <span lang="it">
835
+ <ic-checkbox value="valueName2" label="Americano" checked></ic-checkbox>
836
+ </span>
837
+ <ic-checkbox value="valueName3" label="Flat White"></ic-checkbox>
838
+ </ic-checkbox-group>
839
+ <p>This whole checkbox group has been wrapped in a <code>&lt;span lang="fr"&gt;</code> and will read in French</p>
840
+ <span lang="fr">
841
+ <ic-checkbox-group
842
+ label="Boissons"
843
+ >
844
+ <ic-checkbox value="valueName1" label="Limonade"></ic-checkbox>
845
+ <ic-checkbox value="valueName2" label="Chocolat Chaud" checked></ic-checkbox>
846
+ <ic-checkbox value="valueName3" label="Jus"></ic-checkbox>
847
+ </ic-checkbox-group>
848
+ </span>
849
+ </>
850
+ `,
851
+ name: "Internationalisation",
852
+ };
853
+
802
854
  const inlineRadioSelector = "inline-radio";
803
855
 
804
856
  export const Playground = {