@ukic/web-components 3.5.0 → 3.7.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 (422) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/{helpers-931fd72e.js → helpers-8217daf4.js} +14 -2
  4. package/dist/cjs/helpers-8217daf4.js.map +1 -0
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +8 -8
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +13 -4
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-button_3.cjs.entry.js +32 -30
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-checkbox.cjs.entry.js +9 -8
  20. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  29. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +40 -48
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-navigation-button.cjs.entry.js +16 -8
  42. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js +6 -16
  45. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  48. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  49. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +16 -11
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +4 -4
  55. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-select.cjs.entry.js +4 -4
  57. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js +3 -3
  59. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-text-field.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +16 -5
  72. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-toggle-button.cjs.entry.js +14 -5
  74. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-typography.cjs.entry.js +1 -1
  77. package/dist/cjs/loader.cjs.js +1 -1
  78. package/dist/collection/components/ic-alert/ic-alert.js +7 -7
  79. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  80. package/dist/collection/components/ic-badge/ic-badge.js +12 -3
  81. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  82. package/dist/collection/components/ic-button/ic-button.css +8 -0
  83. package/dist/collection/components/ic-button/ic-button.stories.js +13 -5
  84. package/dist/collection/components/ic-checkbox/ic-checkbox.css +4 -1
  85. package/dist/collection/components/ic-checkbox/ic-checkbox.js +7 -6
  86. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  87. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.css +11 -0
  88. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +5 -3
  89. package/dist/collection/components/ic-dialog/ic-dialog.js +2 -2
  90. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  91. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +39 -30
  92. package/dist/collection/components/ic-divider/ic-divider.stories.js +3 -3
  93. package/dist/collection/components/ic-footer/ic-footer.stories.js +1 -1
  94. package/dist/collection/components/ic-footer-link/ic-footer-link.css +1 -1
  95. package/dist/collection/components/ic-input-label/ic-input-label.css +1 -1
  96. package/dist/collection/components/ic-link/ic-link.css +6 -2
  97. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -0
  98. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +19 -24
  99. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  100. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +4 -4
  101. package/dist/collection/components/ic-menu/ic-menu.js +108 -47
  102. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  103. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +8 -0
  104. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +24 -9
  105. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  106. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +1 -2
  107. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +4 -14
  108. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  109. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +0 -1
  110. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +57 -11
  111. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  112. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +5 -3
  113. package/dist/collection/components/ic-search-bar/ic-search-bar.css +1 -1
  114. package/dist/collection/components/ic-search-bar/ic-search-bar.js +2 -2
  115. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  116. package/dist/collection/components/ic-select/ic-select.css +2 -2
  117. package/dist/collection/components/ic-select/ic-select.js +2 -2
  118. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  119. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +7 -5
  120. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +7 -5
  121. package/dist/collection/components/ic-select/ic-select_(single).stories.js +7 -5
  122. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +2 -2
  123. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  124. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +31 -4
  125. package/dist/collection/components/ic-switch/ic-switch.css +4 -7
  126. package/dist/collection/components/ic-text-field/ic-text-field.css +1 -1
  127. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +5 -10
  128. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +17 -0
  129. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +32 -3
  130. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  131. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +7 -0
  132. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +7 -0
  133. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +36 -3
  134. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  135. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +17 -0
  136. package/dist/collection/components/ic-tooltip/ic-tooltip.js +11 -2
  137. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  138. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +33 -0
  139. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +19 -2
  140. package/dist/collection/patterns/z-index.stories.js +2 -1
  141. package/dist/collection/utils/helpers.js +12 -0
  142. package/dist/collection/utils/helpers.js.map +1 -1
  143. package/dist/components/helpers.js +13 -1
  144. package/dist/components/helpers.js.map +1 -1
  145. package/dist/components/ic-alert.js +7 -7
  146. package/dist/components/ic-alert.js.map +1 -1
  147. package/dist/components/ic-badge.js +12 -3
  148. package/dist/components/ic-badge.js.map +1 -1
  149. package/dist/components/ic-button2.js +1 -1
  150. package/dist/components/ic-button2.js.map +1 -1
  151. package/dist/components/ic-checkbox-group.js +1 -1
  152. package/dist/components/ic-checkbox-group.js.map +1 -1
  153. package/dist/components/ic-checkbox.js +8 -7
  154. package/dist/components/ic-checkbox.js.map +1 -1
  155. package/dist/components/ic-dialog.js +2 -2
  156. package/dist/components/ic-dialog.js.map +1 -1
  157. package/dist/components/ic-footer-link.js +1 -1
  158. package/dist/components/ic-footer-link.js.map +1 -1
  159. package/dist/components/ic-input-label2.js +1 -1
  160. package/dist/components/ic-input-label2.js.map +1 -1
  161. package/dist/components/ic-link2.js +1 -1
  162. package/dist/components/ic-link2.js.map +1 -1
  163. package/dist/components/ic-loading-indicator2.js +23 -28
  164. package/dist/components/ic-loading-indicator2.js.map +1 -1
  165. package/dist/components/ic-menu2.js +42 -47
  166. package/dist/components/ic-menu2.js.map +1 -1
  167. package/dist/components/ic-navigation-button.js +18 -9
  168. package/dist/components/ic-navigation-button.js.map +1 -1
  169. package/dist/components/ic-navigation-item.js +5 -15
  170. package/dist/components/ic-navigation-item.js.map +1 -1
  171. package/dist/components/ic-popover-menu.js +18 -11
  172. package/dist/components/ic-popover-menu.js.map +1 -1
  173. package/dist/components/ic-radio-group.js.map +1 -1
  174. package/dist/components/ic-radio-option.js.map +1 -1
  175. package/dist/components/ic-search-bar.js +3 -3
  176. package/dist/components/ic-search-bar.js.map +1 -1
  177. package/dist/components/ic-select.js +3 -3
  178. package/dist/components/ic-select.js.map +1 -1
  179. package/dist/components/ic-side-navigation.js +2 -2
  180. package/dist/components/ic-side-navigation.js.map +1 -1
  181. package/dist/components/ic-switch.js +1 -1
  182. package/dist/components/ic-switch.js.map +1 -1
  183. package/dist/components/ic-text-field.js +1 -1
  184. package/dist/components/ic-text-field.js.map +1 -1
  185. package/dist/components/ic-toggle-button-group.js +17 -4
  186. package/dist/components/ic-toggle-button-group.js.map +1 -1
  187. package/dist/components/ic-toggle-button.js +14 -4
  188. package/dist/components/ic-toggle-button.js.map +1 -1
  189. package/dist/components/ic-tooltip2.js +12 -4
  190. package/dist/components/ic-tooltip2.js.map +1 -1
  191. package/dist/core/core.css +38 -24
  192. package/dist/core/core.esm.js +1 -1
  193. package/dist/core/core.esm.js.map +1 -1
  194. package/dist/core/{p-a14025cc.entry.js → p-0179fbd3.entry.js} +2 -2
  195. package/dist/core/p-018eaee0.entry.js +2 -0
  196. package/dist/core/p-018eaee0.entry.js.map +1 -0
  197. package/dist/core/p-02132a4c.entry.js +2 -0
  198. package/dist/core/p-02132a4c.entry.js.map +1 -0
  199. package/dist/core/{p-c8555360.entry.js → p-0549305b.entry.js} +2 -2
  200. package/dist/core/p-056be0df.entry.js +2 -0
  201. package/dist/core/p-056be0df.entry.js.map +1 -0
  202. package/dist/core/{p-4dfc41e7.entry.js → p-06b0d0f6.entry.js} +2 -2
  203. package/dist/core/{p-85f735ed.entry.js → p-06e80441.entry.js} +2 -2
  204. package/dist/core/{p-1286b234.entry.js → p-08567369.entry.js} +2 -2
  205. package/dist/core/{p-b811c7a1.entry.js → p-152ddde9.entry.js} +2 -2
  206. package/dist/core/{p-b811c7a1.entry.js.map → p-152ddde9.entry.js.map} +1 -1
  207. package/dist/core/p-182b7037.entry.js +2 -0
  208. package/dist/core/p-182b7037.entry.js.map +1 -0
  209. package/dist/core/{p-49ca3f54.entry.js → p-29468171.entry.js} +2 -2
  210. package/dist/core/{p-d7476f6d.entry.js → p-2ec0d11c.entry.js} +2 -2
  211. package/dist/core/{p-20a6dc40.entry.js → p-3194e46c.entry.js} +2 -2
  212. package/dist/core/{p-a7286727.entry.js → p-421b5f2d.entry.js} +2 -2
  213. package/dist/core/{p-ab4e8b4a.entry.js → p-4301e11e.entry.js} +2 -2
  214. package/dist/core/{p-ad374f0b.entry.js → p-43b98687.entry.js} +2 -2
  215. package/dist/core/{p-ad374f0b.entry.js.map → p-43b98687.entry.js.map} +1 -1
  216. package/dist/core/p-4b8bfb59.entry.js +2 -0
  217. package/dist/core/p-4b8bfb59.entry.js.map +1 -0
  218. package/dist/core/{p-5b2bf9bb.entry.js → p-4cd83bfe.entry.js} +2 -2
  219. package/dist/core/{p-44902a33.entry.js → p-50d13439.entry.js} +2 -2
  220. package/dist/core/p-543b90c5.entry.js +2 -0
  221. package/dist/core/p-543b90c5.entry.js.map +1 -0
  222. package/dist/core/p-554c555f.entry.js +2 -0
  223. package/dist/core/p-554c555f.entry.js.map +1 -0
  224. package/dist/core/{p-13e65198.entry.js → p-5fb58cc8.entry.js} +2 -2
  225. package/dist/core/p-627f7172.entry.js +2 -0
  226. package/dist/core/p-627f7172.entry.js.map +1 -0
  227. package/dist/core/p-6b52e47f.entry.js +2 -0
  228. package/dist/core/p-6b52e47f.entry.js.map +1 -0
  229. package/dist/core/{p-b40ecf16.js → p-70abcb2b.js} +2 -2
  230. package/dist/core/p-70abcb2b.js.map +1 -0
  231. package/dist/core/{p-990c37aa.entry.js → p-773ded36.entry.js} +2 -2
  232. package/dist/core/{p-831e884c.entry.js → p-77750efc.entry.js} +2 -2
  233. package/dist/core/{p-ac73cfb8.entry.js → p-7cada631.entry.js} +2 -2
  234. package/dist/core/p-7cada631.entry.js.map +1 -0
  235. package/dist/core/{p-6cb81f35.entry.js → p-8a5b0fb0.entry.js} +2 -2
  236. package/dist/core/{p-ced2e6ca.entry.js → p-91f6884a.entry.js} +2 -2
  237. package/dist/core/{p-ced2e6ca.entry.js.map → p-91f6884a.entry.js.map} +1 -1
  238. package/dist/core/p-939adcae.entry.js +2 -0
  239. package/dist/core/p-939adcae.entry.js.map +1 -0
  240. package/dist/core/{p-476eac8c.entry.js → p-948086f4.entry.js} +2 -2
  241. package/dist/core/{p-2b342b23.entry.js → p-97f67617.entry.js} +2 -2
  242. package/dist/core/{p-b59007a3.entry.js → p-98869fe7.entry.js} +2 -2
  243. package/dist/core/{p-3d7d2ff4.entry.js → p-9d5e4b62.entry.js} +2 -2
  244. package/dist/core/{p-6c10e1a2.entry.js → p-9ed5f11d.entry.js} +2 -2
  245. package/dist/core/p-9ed5f11d.entry.js.map +1 -0
  246. package/dist/core/{p-ab7a5536.entry.js → p-a2ae5d9e.entry.js} +2 -2
  247. package/dist/core/p-a591ef38.entry.js +2 -0
  248. package/dist/core/p-a591ef38.entry.js.map +1 -0
  249. package/dist/core/{p-7ead8535.entry.js → p-ab1103e1.entry.js} +2 -2
  250. package/dist/core/p-ab1103e1.entry.js.map +1 -0
  251. package/dist/core/{p-1228fd8c.entry.js → p-ae2ea264.entry.js} +2 -2
  252. package/dist/core/{p-3afc2870.entry.js → p-afde0edc.entry.js} +2 -2
  253. package/dist/core/{p-37900547.entry.js → p-b83cca09.entry.js} +2 -2
  254. package/dist/core/{p-5d9b23ce.entry.js → p-ba89fa16.entry.js} +2 -2
  255. package/dist/core/{p-8da025b5.entry.js → p-bb21268f.entry.js} +2 -2
  256. package/dist/core/p-bb21268f.entry.js.map +1 -0
  257. package/dist/core/{p-226406d6.entry.js → p-c100724d.entry.js} +2 -2
  258. package/dist/core/{p-e107d1dd.entry.js → p-cd8dab55.entry.js} +2 -2
  259. package/dist/core/{p-b08bb522.entry.js → p-ce916f35.entry.js} +2 -2
  260. package/dist/core/p-d85b438a.entry.js +2 -0
  261. package/dist/core/p-d85b438a.entry.js.map +1 -0
  262. package/dist/core/{p-24bb2265.entry.js → p-ec1657fc.entry.js} +2 -2
  263. package/dist/core/{p-54ea7120.entry.js → p-f4ee5fbb.entry.js} +2 -2
  264. package/dist/core/p-f9491692.entry.js +2 -0
  265. package/dist/core/p-f9491692.entry.js.map +1 -0
  266. package/dist/core/{p-5026eeaf.entry.js → p-fb6e6ac4.entry.js} +2 -2
  267. package/dist/core/{p-9edc5973.entry.js → p-ff47772c.entry.js} +2 -2
  268. package/dist/esm/core.js +1 -1
  269. package/dist/esm/{helpers-91abc444.js → helpers-f5ff3b42.js} +14 -2
  270. package/dist/esm/helpers-f5ff3b42.js.map +1 -0
  271. package/dist/esm/ic-accordion-group.entry.js +1 -1
  272. package/dist/esm/ic-accordion.entry.js +1 -1
  273. package/dist/esm/ic-alert.entry.js +8 -8
  274. package/dist/esm/ic-alert.entry.js.map +1 -1
  275. package/dist/esm/ic-back-to-top.entry.js +1 -1
  276. package/dist/esm/ic-badge.entry.js +13 -4
  277. package/dist/esm/ic-badge.entry.js.map +1 -1
  278. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  279. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  280. package/dist/esm/ic-button_3.entry.js +32 -30
  281. package/dist/esm/ic-button_3.entry.js.map +1 -1
  282. package/dist/esm/ic-card-vertical.entry.js +1 -1
  283. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  284. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  285. package/dist/esm/ic-checkbox.entry.js +9 -8
  286. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  287. package/dist/esm/ic-chip.entry.js +1 -1
  288. package/dist/esm/ic-data-row.entry.js +1 -1
  289. package/dist/esm/ic-dialog.entry.js +3 -3
  290. package/dist/esm/ic-dialog.entry.js.map +1 -1
  291. package/dist/esm/ic-divider.entry.js +1 -1
  292. package/dist/esm/ic-empty-state.entry.js +1 -1
  293. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  294. package/dist/esm/ic-footer-link.entry.js +2 -2
  295. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  296. package/dist/esm/ic-footer.entry.js +1 -1
  297. package/dist/esm/ic-hero.entry.js +1 -1
  298. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  299. package/dist/esm/ic-input-component-container_3.entry.js +40 -48
  300. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  301. package/dist/esm/ic-input-label_2.entry.js +2 -2
  302. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  303. package/dist/esm/ic-link.entry.js +2 -2
  304. package/dist/esm/ic-link.entry.js.map +1 -1
  305. package/dist/esm/ic-menu-group.entry.js +1 -1
  306. package/dist/esm/ic-menu-item.entry.js +1 -1
  307. package/dist/esm/ic-navigation-button.entry.js +16 -8
  308. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  309. package/dist/esm/ic-navigation-group.entry.js +1 -1
  310. package/dist/esm/ic-navigation-item.entry.js +6 -16
  311. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  312. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  313. package/dist/esm/ic-page-header.entry.js +1 -1
  314. package/dist/esm/ic-pagination-item.entry.js +1 -1
  315. package/dist/esm/ic-pagination.entry.js +1 -1
  316. package/dist/esm/ic-popover-menu.entry.js +16 -11
  317. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  318. package/dist/esm/ic-radio-group.entry.js +1 -1
  319. package/dist/esm/ic-radio-option.entry.js +1 -1
  320. package/dist/esm/ic-search-bar.entry.js +4 -4
  321. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  322. package/dist/esm/ic-select.entry.js +4 -4
  323. package/dist/esm/ic-select.entry.js.map +1 -1
  324. package/dist/esm/ic-side-navigation.entry.js +3 -3
  325. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  326. package/dist/esm/ic-status-tag.entry.js +1 -1
  327. package/dist/esm/ic-step.entry.js +1 -1
  328. package/dist/esm/ic-stepper.entry.js +1 -1
  329. package/dist/esm/ic-switch.entry.js +2 -2
  330. package/dist/esm/ic-switch.entry.js.map +1 -1
  331. package/dist/esm/ic-tab-group.entry.js +1 -1
  332. package/dist/esm/ic-tab.entry.js +1 -1
  333. package/dist/esm/ic-text-field.entry.js +2 -2
  334. package/dist/esm/ic-text-field.entry.js.map +1 -1
  335. package/dist/esm/ic-theme.entry.js +1 -1
  336. package/dist/esm/ic-toast.entry.js +1 -1
  337. package/dist/esm/ic-toggle-button-group.entry.js +16 -5
  338. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  339. package/dist/esm/ic-toggle-button.entry.js +14 -5
  340. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  341. package/dist/esm/ic-top-navigation.entry.js +1 -1
  342. package/dist/esm/ic-typography.entry.js +1 -1
  343. package/dist/esm/loader.js +1 -1
  344. package/dist/types/components/ic-badge/ic-badge.d.ts +1 -0
  345. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -2
  346. package/dist/types/components/ic-menu/ic-menu.d.ts +12 -4
  347. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +5 -0
  348. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +7 -0
  349. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +4 -0
  350. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
  351. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -0
  352. package/dist/types/components.d.ts +23 -0
  353. package/dist/types/utils/helpers.d.ts +2 -1
  354. package/hydrate/index.js +198 -151
  355. package/hydrate/index.mjs +198 -151
  356. package/package.json +2 -2
  357. package/vscode-data.json +8 -0
  358. package/dist/cjs/helpers-931fd72e.js.map +0 -1
  359. package/dist/core/p-0f3a56bb.entry.js +0 -2
  360. package/dist/core/p-0f3a56bb.entry.js.map +0 -1
  361. package/dist/core/p-21ed856c.entry.js +0 -2
  362. package/dist/core/p-21ed856c.entry.js.map +0 -1
  363. package/dist/core/p-334672c1.entry.js +0 -2
  364. package/dist/core/p-334672c1.entry.js.map +0 -1
  365. package/dist/core/p-3abaa877.entry.js +0 -2
  366. package/dist/core/p-3abaa877.entry.js.map +0 -1
  367. package/dist/core/p-41bb4db1.entry.js +0 -2
  368. package/dist/core/p-41bb4db1.entry.js.map +0 -1
  369. package/dist/core/p-5f9d1977.entry.js +0 -2
  370. package/dist/core/p-5f9d1977.entry.js.map +0 -1
  371. package/dist/core/p-6c10e1a2.entry.js.map +0 -1
  372. package/dist/core/p-7ead8535.entry.js.map +0 -1
  373. package/dist/core/p-89f493f3.entry.js +0 -2
  374. package/dist/core/p-89f493f3.entry.js.map +0 -1
  375. package/dist/core/p-8da025b5.entry.js.map +0 -1
  376. package/dist/core/p-9e039aba.entry.js +0 -2
  377. package/dist/core/p-9e039aba.entry.js.map +0 -1
  378. package/dist/core/p-ac73cfb8.entry.js.map +0 -1
  379. package/dist/core/p-b40ecf16.js.map +0 -1
  380. package/dist/core/p-bae2df5e.entry.js +0 -2
  381. package/dist/core/p-bae2df5e.entry.js.map +0 -1
  382. package/dist/core/p-d32c377d.entry.js +0 -2
  383. package/dist/core/p-d32c377d.entry.js.map +0 -1
  384. package/dist/core/p-d4a77f80.entry.js +0 -2
  385. package/dist/core/p-d4a77f80.entry.js.map +0 -1
  386. package/dist/core/p-e506ec91.entry.js +0 -2
  387. package/dist/core/p-e506ec91.entry.js.map +0 -1
  388. package/dist/core/p-fca45edb.entry.js +0 -2
  389. package/dist/core/p-fca45edb.entry.js.map +0 -1
  390. package/dist/esm/helpers-91abc444.js.map +0 -1
  391. /package/dist/core/{p-a14025cc.entry.js.map → p-0179fbd3.entry.js.map} +0 -0
  392. /package/dist/core/{p-c8555360.entry.js.map → p-0549305b.entry.js.map} +0 -0
  393. /package/dist/core/{p-4dfc41e7.entry.js.map → p-06b0d0f6.entry.js.map} +0 -0
  394. /package/dist/core/{p-85f735ed.entry.js.map → p-06e80441.entry.js.map} +0 -0
  395. /package/dist/core/{p-1286b234.entry.js.map → p-08567369.entry.js.map} +0 -0
  396. /package/dist/core/{p-49ca3f54.entry.js.map → p-29468171.entry.js.map} +0 -0
  397. /package/dist/core/{p-d7476f6d.entry.js.map → p-2ec0d11c.entry.js.map} +0 -0
  398. /package/dist/core/{p-20a6dc40.entry.js.map → p-3194e46c.entry.js.map} +0 -0
  399. /package/dist/core/{p-a7286727.entry.js.map → p-421b5f2d.entry.js.map} +0 -0
  400. /package/dist/core/{p-ab4e8b4a.entry.js.map → p-4301e11e.entry.js.map} +0 -0
  401. /package/dist/core/{p-5b2bf9bb.entry.js.map → p-4cd83bfe.entry.js.map} +0 -0
  402. /package/dist/core/{p-44902a33.entry.js.map → p-50d13439.entry.js.map} +0 -0
  403. /package/dist/core/{p-13e65198.entry.js.map → p-5fb58cc8.entry.js.map} +0 -0
  404. /package/dist/core/{p-990c37aa.entry.js.map → p-773ded36.entry.js.map} +0 -0
  405. /package/dist/core/{p-831e884c.entry.js.map → p-77750efc.entry.js.map} +0 -0
  406. /package/dist/core/{p-6cb81f35.entry.js.map → p-8a5b0fb0.entry.js.map} +0 -0
  407. /package/dist/core/{p-476eac8c.entry.js.map → p-948086f4.entry.js.map} +0 -0
  408. /package/dist/core/{p-2b342b23.entry.js.map → p-97f67617.entry.js.map} +0 -0
  409. /package/dist/core/{p-b59007a3.entry.js.map → p-98869fe7.entry.js.map} +0 -0
  410. /package/dist/core/{p-3d7d2ff4.entry.js.map → p-9d5e4b62.entry.js.map} +0 -0
  411. /package/dist/core/{p-ab7a5536.entry.js.map → p-a2ae5d9e.entry.js.map} +0 -0
  412. /package/dist/core/{p-1228fd8c.entry.js.map → p-ae2ea264.entry.js.map} +0 -0
  413. /package/dist/core/{p-3afc2870.entry.js.map → p-afde0edc.entry.js.map} +0 -0
  414. /package/dist/core/{p-37900547.entry.js.map → p-b83cca09.entry.js.map} +0 -0
  415. /package/dist/core/{p-5d9b23ce.entry.js.map → p-ba89fa16.entry.js.map} +0 -0
  416. /package/dist/core/{p-226406d6.entry.js.map → p-c100724d.entry.js.map} +0 -0
  417. /package/dist/core/{p-e107d1dd.entry.js.map → p-cd8dab55.entry.js.map} +0 -0
  418. /package/dist/core/{p-b08bb522.entry.js.map → p-ce916f35.entry.js.map} +0 -0
  419. /package/dist/core/{p-24bb2265.entry.js.map → p-ec1657fc.entry.js.map} +0 -0
  420. /package/dist/core/{p-54ea7120.entry.js.map → p-f4ee5fbb.entry.js.map} +0 -0
  421. /package/dist/core/{p-5026eeaf.entry.js.map → p-fb6e6ac4.entry.js.map} +0 -0
  422. /package/dist/core/{p-9edc5973.entry.js.map → p-ff47772c.entry.js.map} +0 -0
@@ -1170,6 +1170,8 @@ video {
1170
1170
  :host(.ic-button-variant-icon-primary) .icon-container {
1171
1171
  width: var(--ic-space-lg) !important;
1172
1172
  height: var(--ic-space-lg) !important;
1173
+ margin: 0;
1174
+ pointer-events: none;
1173
1175
  }
1174
1176
 
1175
1177
  :host(.ic-button-variant-icon.monochrome) ::slotted(a),
@@ -1188,6 +1190,8 @@ video {
1188
1190
  :host(.ic-button-variant-icon-secondary) .icon-container {
1189
1191
  width: var(--ic-space-lg) !important;
1190
1192
  height: var(--ic-space-lg) !important;
1193
+ margin: 0;
1194
+ pointer-events: none;
1191
1195
  }
1192
1196
 
1193
1197
  /* Icon-tertiary */
@@ -1201,6 +1205,8 @@ video {
1201
1205
  :host(.ic-button-variant-icon-tertiary) .icon-container {
1202
1206
  width: var(--ic-space-lg) !important;
1203
1207
  height: var(--ic-space-lg) !important;
1208
+ margin: 0;
1209
+ pointer-events: none;
1204
1210
  }
1205
1211
 
1206
1212
  /* Icon-destructive */
@@ -1214,6 +1220,8 @@ video {
1214
1220
  :host(.ic-button-variant-icon-destructive) .icon-container {
1215
1221
  width: var(--ic-space-lg) !important;
1216
1222
  height: var(--ic-space-lg) !important;
1223
+ margin: 0;
1224
+ pointer-events: none;
1217
1225
  }
1218
1226
 
1219
1227
  /* Sizing */
@@ -1384,7 +1384,7 @@ export const Dropdown = {
1384
1384
  >
1385
1385
  </div>
1386
1386
  <div
1387
- style="background-color:#17191C; padding:6px 10px; width:fit-content;"
1387
+ style="background-color:var(--ic-color-page-background-dark); padding:6px 10px; width:fit-content;"
1388
1388
  >
1389
1389
  <ic-button dropdown="true" variant="primary" theme="light"
1390
1390
  >Button</ic-button
@@ -1954,7 +1954,9 @@ export const FullWidth = {
1954
1954
  />
1955
1955
  </svg>
1956
1956
  </ic-button>
1957
- <div style="background-color:#17191C; padding:6px 10px,">
1957
+ <div
1958
+ style="background-color:var(--ic-color-page-background-dark); padding:6px 10px,"
1959
+ >
1958
1960
  <ic-button variant="primary" theme="light" full-width="true">
1959
1961
  Button
1960
1962
  <svg
@@ -2248,7 +2250,9 @@ export const Loading = {
2248
2250
  <div style="padding: 6px">
2249
2251
  <ic-button variant="primary" loading theme="dark">Button</ic-button>
2250
2252
  </div>
2251
- <div style="background-color:#17191C; padding:6px 10px; width:fit-content">
2253
+ <div
2254
+ style="background-color:var(--ic-color-page-background-dark); padding:6px 10px; width:fit-content"
2255
+ >
2252
2256
  <ic-button variant="primary" loading theme="light">Button</ic-button>
2253
2257
  </div>
2254
2258
  <div style="padding: 6px">
@@ -2257,7 +2261,9 @@ export const Loading = {
2257
2261
  <div style="padding: 6px">
2258
2262
  <ic-button variant="secondary" loading theme="dark">Button</ic-button>
2259
2263
  </div>
2260
- <div style="background-color:#17191C; padding:6px 10px; width:fit-content">
2264
+ <div
2265
+ style="background-color:var(--ic-color-page-background-dark); padding:6px 10px; width:fit-content"
2266
+ >
2261
2267
  <ic-button variant="secondary" loading theme="light">Button</ic-button>
2262
2268
  </div>
2263
2269
  <div style="padding: 6px">
@@ -2266,7 +2272,9 @@ export const Loading = {
2266
2272
  <div style="padding: 6px">
2267
2273
  <ic-button variant="tertiary" loading theme="dark">Button</ic-button>
2268
2274
  </div>
2269
- <div style="background-color:#17191C; padding:6px 10px; width:fit-content">
2275
+ <div
2276
+ style="background-color:var(--ic-color-page-background-dark); padding:6px 10px; width:fit-content"
2277
+ >
2270
2278
  <ic-button variant="tertiary" loading theme="light">Button</ic-button>
2271
2279
  </div>
2272
2280
  <ic-button variant="destructive" loading>Button</ic-button>
@@ -565,12 +565,15 @@ video {
565
565
  }
566
566
 
567
567
  .checkbox-label {
568
- padding-left: var(--ic-space-sm);
569
568
  color: var(--ic-checkbox-text);
570
569
 
571
570
  --ic-typography-color: var(--ic-checkbox-text);
572
571
  }
573
572
 
573
+ .checkbox-label > label {
574
+ padding-left: var(--ic-space-sm);
575
+ }
576
+
574
577
  :host(.ic-checkbox-disabled) .checkbox-label {
575
578
  color: var(--ic-checkbox-text-disabled);
576
579
 
@@ -79,8 +79,9 @@ export class Checkbox {
79
79
  }
80
80
  componentDidRender() {
81
81
  if (this.additionalFieldDisplay === "static") {
82
- const textfieldElements = this.el.querySelectorAll("ic-text-field");
83
- textfieldElements.forEach((textfield) => textfield.setAttribute("disabled", this.checked ? "false" : "true"));
82
+ this.el
83
+ .querySelectorAll("ic-text-field")
84
+ .forEach((textfield) => textfield.setAttribute("disabled", `${!this.checked}`));
84
85
  }
85
86
  else if (this.additionalFieldContainer) {
86
87
  this.additionalFieldContainer.style.display = !this.checked
@@ -105,17 +106,17 @@ export class Checkbox {
105
106
  checked
106
107
  ? renderHiddenInput(el, value, name, disabled)
107
108
  : removeHiddenInput(el);
108
- return (h(Host, { key: '4e59ebe231623d859cfda67200bc46a77a16e2a0', class: {
109
+ return (h(Host, { key: 'eda047a45e6d0dc558095d7d23b16422633fe633', class: {
109
110
  "ic-checkbox-disabled": disabled,
110
111
  [`ic-checkbox-${size}`]: !!size,
111
112
  [`ic-theme-${theme}`]: theme !== "inherit",
112
- } }, h("div", { key: '846fa84372c3c5ef0e30428348bc400f8f9d5dd6', 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: '5873bccb9f38a7a1c1a6e4b256cc1380c866f899', role: "checkbox", class: {
113
+ } }, h("div", { key: '20623bca4b576eb2da3050ce19c99ad5288a6957', 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: '37fcfb382fc5aac6c9d07e9ce9e7929e21528c15', role: "checkbox", class: {
113
114
  checkbox: true,
114
115
  checked,
115
116
  indeterminate: displayIndeterminate,
116
- }, 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: '5fc250523f1657dabc16280863cdff1d5fbe04bf', class: "checkbox-label", variant: "body" }, h("label", { key: '6521127be76536bb18268aaf5bd1f06ef65bb0b0', htmlFor: id }, label)))), isSlotUsed(el, "additional-field") && (h("div", { key: '3cf0dce0b43227f59990d6c4812cf3957f3ed519', class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h("div", { key: '371ee59d1e341ef533e14316d4bddea2f05daac4', class: "branch-corner" }), h("div", { key: 'da4b74e9f04ba113e150c42b36e8ae5f33daf6e0', class: "dynamic-field-container" }, isDynamicAdditionalField && (h("ic-typography", { key: '5258d47e88c8db9d617f66db38ac9bbde87e7dd3', variant: "caption" }, h("p", { key: '495ab440643663635f8b6af1599cebe325b58857', class: "dynamic-text", "aria-live": "polite" }, dynamicText))), h("div", { key: '4c19f7b3c0ad841042693d516f973c4e5881f71a', class: {
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: '0d8d605e8aa6dcb86362bb561a024a8c03a66854', class: "checkbox-label", variant: "body" }, h("label", { key: '3f2c395f32f47684475a7b6a1cefdb7d67c8beac', htmlFor: id }, label)))), isSlotUsed(el, "additional-field") && (h("div", { key: 'a6701087045999eb177a3a743770dad9aa47c79f', class: "dynamic-container", ref: (el) => (this.additionalFieldContainer = el) }, isDynamicAdditionalField && h("div", { key: '18719e04d6854a600f87fe777fd475b424204875', class: "branch-corner" }), h("div", { key: 'a73508e06dea3c65f731db0050ca365bd31998c9', class: "dynamic-field-container" }, isDynamicAdditionalField && (h("ic-typography", { key: 'd4f422ba5eb1815418871081efc8c5cd55821775', variant: "caption" }, h("p", { key: 'd43c97bdcd3b22acc1ef3664544ca9783606ea15', class: "dynamic-text", "aria-live": "polite" }, dynamicText))), h("div", { key: '66fb65fdd27f2db8550ef58c5601391c7b88357d', class: {
117
118
  "additional-field-wrapper": !isDynamicAdditionalField,
118
- } }, h("slot", { key: '7bbef0fdd54fc3aed87c13fadd65f8036257a57c', name: "additional-field" })))))));
119
+ } }, h("slot", { key: '02493cc3d3c3aae17cfb61bf1e7e12e9f41fabba', name: "additional-field" })))))));
119
120
  }
120
121
  static get is() { return "ic-checkbox"; }
121
122
  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":"AAAA,OAAO,EACL,SAAS,EACT,IAAI,EACJ,CAAC,EACD,IAAI,EACJ,OAAO,EACP,KAAK,EAEL,KAAK,EACL,MAAM,EACN,KAAK,GACN,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,UAAU,EACV,gCAAgC,EAChC,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AAQH,6DAA6D;AAC7D,MAAM,OAAO,QAAQ;IARrB;QAcE;;WAEG;QACsB,2BAAsB,GAC7C,QAAQ,CAAC;QAEX;;WAEG;QACqC,YAAO,GAAG,KAAK,CAAC;QAC/C,qBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzC;;WAEG;QACK,aAAQ,GAAG,KAAK,CAAC;QAMzB;;WAEG;QAEK,gBAAW,GAAG,4CAA4C,CAAC;QAYnE;;WAEG;QACK,cAAS,GAAG,KAAK,CAAC;QAE1B;;WAEG;QACK,kBAAa,GAAG,KAAK,CAAC;QACrB,yBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;QAkBnD;;WAEG;QACK,iCAA4B,GAAG,KAAK,CAAC;QAO7C;;WAEG;QACK,UAAK,GAAgB,SAAS,CAAC;QAEvC;;WAEG;QACK,UAAK,GAAG,EAAE,CAAC;QAsDX,gBAAW,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,oBAAoB;gBACvB,CAAC,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC,CAAC;QAEM,oBAAe,GAAG,GAAS,EAAE;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvC,CAAC,CAAC;KA0GH;IA1OC,oBAAoB;QAClB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IA8BD,yBAAyB;QACvB,IAAI,CAAC,oBAAoB;YACvB,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,4BAA4B,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAqCD,iBAAiB;QACf,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5C,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEpD,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAClC,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,MAAK,mBAAmB,EAAE,CAAC;YACnD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAA2C,CAAC;YAE1E,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,gBAAgB;QACd,gCAAgC,CAC9B,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACzC,UAAU,CACX,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,sBAAsB,KAAK,QAAQ,EAAE,CAAC;YAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACpE,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACtC,SAAS,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CACpE,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;gBACzD,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC;QACb,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,QAAQ;;QACZ,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAaD,MAAM;QACJ,MAAM,EACJ,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX,EAAE,EACF,IAAI,EACJ,UAAU,EACV,WAAW,EACX,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,GACN,GAAG,IAAI,CAAC;QAET,MAAM,EAAE,GAAG,eAAe,KAAK,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAEnE,MAAM,wBAAwB,GAAG,sBAAsB,KAAK,SAAS,CAAC;QAEtE,OAAO;YACL,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC;YAC9C,CAAC,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE1B,OAAO,CACL,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,sBAAsB,EAAE,QAAQ;gBAChC,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI;gBAC/B,CAAC,YAAY,KAAK,EAAE,CAAC,EAAE,KAAK,KAAK,SAAS;aAC3C;YAED,4DAAK,KAAK,EAAC,WAAW;gBACnB,oBAAoB,CAAC,CAAC,CAAC,CACtB,WAAK,KAAK,EAAC,sBAAsB,GAAG,CACrC,CAAC,CAAC,CAAC,CACF,OAAO,IAAI,CACT,WACE,KAAK,EAAC,WAAW,EACjB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,eACxB,SAAS,eACT,SAAS;oBAEnB,kCAA6B;oBAC7B,YAAM,CAAC,EAAC,qFAAqF,GAAG,CAC5F,CACP,CACF;gBACD,8DACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE;wBACL,QAAQ,EAAE,IAAI;wBACd,OAAO;wBACP,aAAa,EAAE,oBAAoB;qBACpC,EACD,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EACnC,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,oBAAoB,EACnC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,IAAI,gBACE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GAClC;gBACR,CAAC,SAAS,IAAI,CACb,sEAAe,KAAK,EAAC,gBAAgB,EAAC,OAAO,EAAC,MAAM;oBAClD,8DAAO,OAAO,EAAE,EAAE,IAAG,KAAK,CAAS,CACrB,CACjB,CACG;YACL,UAAU,CAAC,EAAE,EAAE,kBAAkB,CAAC,IAAI,CACrC,4DACE,KAAK,EAAC,mBAAmB,EACzB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;gBAEhD,wBAAwB,IAAI,4DAAK,KAAK,EAAC,eAAe,GAAO;gBAC9D,4DAAK,KAAK,EAAC,yBAAyB;oBACjC,wBAAwB,IAAI,CAC3B,sEAAe,OAAO,EAAC,SAAS;wBAC9B,0DAAG,KAAK,EAAC,cAAc,eAAW,QAAQ,IACvC,WAAW,CACV,CACU,CACjB;oBACD,4DACE,KAAK,EAAE;4BACL,0BAA0B,EAAE,CAAC,wBAAwB;yBACtD;wBAED,6DAAM,IAAI,EAAC,kBAAkB,GAAQ,CACjC,CACF,CACF,CACP,CACI,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","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\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 const textfieldElements = this.el.querySelectorAll(\"ic-text-field\");\n textfieldElements.forEach((textfield) =>\n textfield.setAttribute(\"disabled\", this.checked ? \"false\" : \"true\")\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 {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\" aria-live=\"polite\">\n {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 */\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 {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\" aria-live=\"polite\">\n {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"]}
@@ -476,6 +476,13 @@ ic-input-label .helpertext {
476
476
  margin-bottom: calc(var(--ic-space-sm) / 2);
477
477
  }
478
478
 
479
+ :host(.ic-checkbox-group-large)
480
+ ic-input-label:not(.with-helper)
481
+ .ic-typography-label,
482
+ :host(.ic-checkbox-group-large) ic-input-label .helpertext {
483
+ margin-bottom: calc(var(--ic-space-sm) * 1.5);
484
+ }
485
+
479
486
  ic-input-label .helpertext {
480
487
  display: block;
481
488
  }
@@ -488,6 +495,10 @@ ic-input-validation {
488
495
  margin-top: calc(var(--ic-space-sm) / 2);
489
496
  }
490
497
 
498
+ :host(.ic-checkbox-group-large) ic-input-validation {
499
+ margin-top: calc(var(--ic-space-sm) * 1.5);
500
+ }
501
+
491
502
  .checkboxes-container {
492
503
  margin-bottom: calc(-1 * var(--ic-space-xxs));
493
504
  }
@@ -16,7 +16,7 @@ const defaultArgs = {
16
16
  nativeIndeterminateBehaviour: false,
17
17
  required: false,
18
18
  size: "medium",
19
- validationStatus: "",
19
+ validationStatus: "no status",
20
20
  validationText: "",
21
21
  value: "checkbox-value",
22
22
  theme: "inherit",
@@ -675,7 +675,9 @@ export const Playground = {
675
675
  helper-text=${args.helperText}
676
676
  hide-label=${args.hideGroupLabel}
677
677
  required=${args.required}
678
- validation-status=${args.validationStatus}
678
+ validation-status=${args.validationStatus === "no status"
679
+ ? ""
680
+ : args.validationStatus}
679
681
  validation-text=${args.validationText}
680
682
  theme=${args.theme}
681
683
  >
@@ -728,7 +730,7 @@ export const Playground = {
728
730
  },
729
731
 
730
732
  validationStatus: {
731
- options: ["warning", "error", "success", ""],
733
+ options: ["no status", "warning", "error", "success"],
732
734
 
733
735
  control: {
734
736
  type: "select",
@@ -196,7 +196,7 @@ export class Dialog {
196
196
  return (isHidden ||
197
197
  (element.getAttribute("type") === "radio" &&
198
198
  !!radioEl &&
199
- !radioEl.hasAttribute("selected")));
199
+ !(radioEl.hasAttribute("selected") || element.tabIndex === 0)));
200
200
  };
201
201
  this.focusElement = (element, shiftKey = false) => {
202
202
  let nextFocusEl = element;
@@ -334,7 +334,7 @@ export class Dialog {
334
334
  }
335
335
  render() {
336
336
  const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;
337
- return (h(Host, { key: 'e8517bd103f365705b664f80c494df70972dd9c4', class: {
337
+ return (h(Host, { key: 'f970a5b8d2c69eae29f0877f078a9a4c0ead56ba', class: {
338
338
  "ic-dialog-hidden": !dialogRendered,
339
339
  "ic-dialog-fade-in": fadeIn,
340
340
  "disable-height-constraint": !!disableHeightConstraint,
@@ -1 +1 @@
1
- {"version":3,"file":"ic-dialog.js","sourceRoot":"","sources":["../../../src/components/ic-dialog/ic-dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Method,\n Listen,\n Watch,\n h,\n Fragment,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n checkResizeObserver,\n onComponentRequiredPropUndefined,\n getSlotElements,\n} from \"../../utils/helpers\";\nimport { IcFocusableComponents, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\n@Component({\n tag: \"ic-dialog\",\n styleUrl: \"ic-dialog.css\",\n shadow: true,\n})\nexport class Dialog {\n private backdropEl?: HTMLDivElement;\n private contentArea: HTMLSlotElement | null;\n private contentAreaMutationObserver: MutationObserver | null = null;\n private DATA_GETS_FOCUS: string = \"data-gets-focus\";\n private DIALOG_CONTROLS: string = \"dialog-controls\";\n private dialogEl?: HTMLDialogElement;\n private dialogHeight: number = 0;\n private focusedElementIndex = 0;\n private IC_TEXT_FIELD: string = \"IC-TEXT-FIELD\";\n private IC_ACCORDION: string = \"IC-ACCORDION\";\n private IC_ACCORDION_GROUP: string = \"IC-ACCORDION-GROUP\";\n private IC_CHECKBOX = \"IC-CHECKBOX\";\n private IC_SEARCH_BAR: string = \"IC-SEARCH-BAR\";\n private interactiveElementList: HTMLElement[];\n private resizeObserver: ResizeObserver | null = null;\n private resizeTimeout: number;\n private sourceElement: HTMLElement;\n\n @Element() el: HTMLIcDialogElement;\n\n @State() dialogRendered: boolean = false;\n @State() fadeIn: boolean = false;\n\n /**\n * If set to `false`, the dialog will not close when the backdrop is clicked.\n */\n @Prop() closeOnBackdropClick?: boolean = true;\n\n /**\n * If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\n */\n @Prop() destructive?: boolean = false;\n\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n @Prop() dismissLabel?: string = \"Dismiss\";\n\n /**\n * If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\n * This prop also prevents popover elements from being cut off within the content area.\n */\n @Prop() disableHeightConstraint?: boolean = false;\n\n /**\n * If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\n */\n @Prop() disableWidthConstraint?: boolean = false;\n\n /**\n * If `true`, the close button will not be displayed.\n */\n @Prop() hideCloseButton?: boolean = false;\n\n /**\n * If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\n */\n @Prop() hideDefaultControls: boolean = false;\n\n /**\n * Sets the heading for the dialog.\n */\n @Prop() heading?: string;\n\n /**\n * Sets the optional label for the dialog which appears above the heading.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the dialog will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n this.dialogOpened();\n } else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl?.close();\n this.sourceElement?.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\" = \"small\";\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 * Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\n */\n @Event() icDialogCancelled: EventEmitter<void>;\n\n /**\n * Emitted when dialog has closed.\n */\n @Event() icDialogClosed: EventEmitter<void>;\n\n /**\n * Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\n */\n @Event() icDialogConfirmed: EventEmitter<void>;\n\n /**\n * Emitted when dialog has opened.\n */\n @Event() icDialogOpened: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.removeSlotChangeListener();\n }\n\n componentDidLoad(): void {\n this.getInteractiveElements();\n\n this.refreshInteractiveElementsOnSlotChange();\n\n if (this.open) {\n this.dialogOpened();\n }\n\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Dialog\"\n );\n }\n\n componentDidRender(): void {\n document.body.style.overflow =\n getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint\n ? \"hidden\"\n : \"auto\";\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.onTabKeyPress(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"click\", {})\n handleClick(ev: MouseEvent): void {\n if (\n this.dialogEl &&\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(this.dialogEl) <= 0\n ) {\n const { top, height, left, width } =\n this.dialogEl.getBoundingClientRect();\n const isInDialog =\n top <= ev.clientY &&\n ev.clientY <= top + height &&\n left <= ev.clientX &&\n ev.clientX <= left + width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n @Method()\n async cancelDialog(): Promise<void> {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n @Method()\n async confirmDialog(): Promise<void> {\n this.icDialogConfirmed.emit();\n }\n\n private dialogOpened = () => {\n this.dialogRendered = true;\n\n if (this.disableHeightConstraint) {\n this.dialogEl?.show();\n } else {\n this.dialogEl?.showModal();\n }\n\n setTimeout(() => {\n this.fadeIn = true;\n\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (\n this.backdropEl &&\n this.disableHeightConstraint &&\n this.backdropEl.scrollTop !== 0\n ) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n\n setTimeout(() => {\n this.icDialogOpened.emit();\n }, 80);\n };\n\n private runResizeObserver = () => {\n if (this.dialogEl) {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n }\n };\n\n private resizeObserverCallback = () => {\n if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n\n private refreshInteractiveElementsOnSlotChange = () => {\n const contentWrapper = this.el.shadowRoot?.querySelector(\"#dialog-content\");\n\n if (contentWrapper) {\n this.contentArea = contentWrapper.querySelector(\"slot\");\n\n // Detect changes to slotted elements\n this.contentArea?.addEventListener(\n \"slotchange\",\n this.getInteractiveElements\n );\n\n this.contentAreaMutationObserver = new MutationObserver(() => {\n this.getInteractiveElements();\n });\n\n // Detect changes to children of slotted elements\n getSlotElements(contentWrapper)?.forEach((el) => {\n this.contentAreaMutationObserver?.observe(el, {\n childList: true,\n subtree: true,\n });\n });\n }\n };\n\n private removeSlotChangeListener = () => {\n if (this.contentArea) {\n this.contentArea.removeEventListener(\n \"slotchange\",\n this.getInteractiveElements\n );\n\n this.contentAreaMutationObserver?.disconnect();\n }\n };\n\n private setInitialFocus = () => {\n this.sourceElement = document.activeElement as HTMLElement;\n this.focusedElementIndex = this.interactiveElementList\n ? this.interactiveElementList.findIndex((element) =>\n element.hasAttribute(this.DATA_GETS_FOCUS)\n )\n : 0;\n this.focusElement(this.interactiveElementList[this.focusedElementIndex]);\n };\n\n private getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (\n (this.interactiveElementList[i] as HTMLElement) ===\n (this.el.shadowRoot?.activeElement || document.activeElement)\n ) {\n this.focusedElementIndex = i;\n }\n }\n };\n\n private closeIconClick = () => {\n this.open = false;\n };\n\n private getInteractiveElements = () => {\n this.interactiveElementList = Array.from(\n this.el.shadowRoot?.querySelectorAll(\"ic-button\") || []\n );\n const slottedInteractiveElements = Array.from(\n this.el.querySelectorAll(\n `a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]),\n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button,\n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker`\n )\n );\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n } else if (!this.destructive) {\n slottedInteractiveElements[\n slottedInteractiveElements.length - 1\n ].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(\n 1 + i,\n 0,\n slottedInteractiveElements[i] as HTMLElement\n );\n }\n };\n\n private getNextFocusEl = (focusedElementIndex: number) =>\n this.interactiveElementList[focusedElementIndex];\n\n private onTabKeyPress = (shiftKey: boolean): boolean => {\n this.getFocusedElementIndex();\n\n if (\n this.interactiveElementList[this.focusedElementIndex].tagName ===\n this.IC_SEARCH_BAR\n ) {\n return false;\n }\n\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);\n return true;\n };\n\n private shouldSkipElement = (element: HTMLElement): boolean => {\n const isHidden =\n getComputedStyle(element).visibility === \"hidden\" ||\n element.offsetHeight === 0 ||\n element.hasAttribute(\"disabled\") ||\n (element.tagName === this.IC_ACCORDION_GROUP &&\n element.hasAttribute(\"single-expansion\"));\n\n const radioEl = element.closest(\"ic-radio-option\");\n\n return (\n isHidden ||\n (element.getAttribute(\"type\") === \"radio\" &&\n !!radioEl &&\n !radioEl.hasAttribute(\"selected\"))\n );\n };\n\n private focusElement = (element: HTMLElement, shiftKey = false) => {\n let nextFocusEl = element;\n\n if (this.shouldSkipElement(element)) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n this.focusElement(nextFocusEl, shiftKey);\n } else {\n switch (element.tagName) {\n case this.IC_ACCORDION_GROUP:\n case this.IC_ACCORDION:\n case this.IC_SEARCH_BAR:\n case this.IC_TEXT_FIELD:\n case this.IC_CHECKBOX:\n (element as IcFocusableComponents).setFocus();\n break;\n default:\n (element as HTMLElement).focus();\n }\n }\n };\n\n private loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n\n private setFocusIndexBasedOnShiftKey(shiftKey: boolean) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n } else {\n this.focusedElementIndex += 1;\n }\n }\n\n private renderDialog = () => {\n const {\n hideDefaultControls,\n size,\n heading,\n label,\n destructive,\n dismissLabel,\n hideCloseButton,\n disableHeightConstraint,\n disableWidthConstraint,\n closeIconClick,\n DIALOG_CONTROLS,\n } = this;\n\n const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);\n\n return (\n <dialog\n class={{\n dialog: true,\n [`${size}`]: true,\n \"disable-height-constraint\": !!disableHeightConstraint,\n \"disable-width-constraint\": !!disableWidthConstraint,\n }}\n aria-labelledby=\"dialog-label dialog-heading\"\n aria-describedby=\"dialog-alert dialog-content\"\n ref={(el) => (this.dialogEl = el)}\n >\n <div class=\"heading-area\">\n <div class=\"heading-content\">\n <div class=\"label\">\n <slot name=\"label\">\n <ic-typography variant=\"label\" id=\"dialog-label\">\n {label}\n </ic-typography>\n </slot>\n </div>\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\" id=\"dialog-heading\">\n {heading}\n </ic-typography>\n </slot>\n </div>\n </div>\n {!hideCloseButton && (\n <ic-button\n class=\"close-icon\"\n variant=\"icon\"\n innerHTML={closeIcon}\n aria-label={dismissLabel}\n onClick={closeIconClick}\n data-gets-focus={\n destructive || (hideDefaultControls && !controlsSlotUsed)\n ? \"\"\n : null\n }\n ></ic-button>\n )}\n </div>\n <div class=\"content-area\">\n {isSlotUsed(this.el, \"alert\") && <slot name=\"alert\" />}\n <div id=\"dialog-content\">\n <slot />\n </div>\n </div>\n {(controlsSlotUsed || !hideDefaultControls) && (\n <div\n class={{\n [DIALOG_CONTROLS]: true,\n }}\n >\n {controlsSlotUsed ? (\n <slot name={DIALOG_CONTROLS} />\n ) : (\n <Fragment>\n <ic-button\n variant=\"tertiary\"\n onClick={() => this.cancelDialog()}\n class=\"dialog-control-button\"\n data-gets-focus={null}\n >\n Cancel\n </ic-button>\n <ic-button\n variant={destructive ? \"destructive\" : \"primary\"}\n onClick={() => this.confirmDialog()}\n class=\"dialog-control-button\"\n data-gets-focus=\"\"\n >\n Confirm\n </ic-button>\n </Fragment>\n )}\n </div>\n )}\n </dialog>\n );\n };\n\n render() {\n const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;\n\n return (\n <Host\n class={{\n \"ic-dialog-hidden\": !dialogRendered,\n \"ic-dialog-fade-in\": fadeIn,\n \"disable-height-constraint\": !!disableHeightConstraint,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {disableHeightConstraint ? (\n <div class=\"backdrop\" ref={(el) => (this.backdropEl = el)}>\n {this.renderDialog()}\n </div>\n ) : (\n this.renderDialog()\n )}\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-dialog.js","sourceRoot":"","sources":["../../../src/components/ic-dialog/ic-dialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n Method,\n Listen,\n Watch,\n h,\n Fragment,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport {\n isSlotUsed,\n checkResizeObserver,\n onComponentRequiredPropUndefined,\n getSlotElements,\n} from \"../../utils/helpers\";\nimport { IcFocusableComponents, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot dialog-controls - Content will be place at the bottom of the dialog.\n * @slot heading - Content will be placed at the top of the dialog.\n * @slot label - Content will be placed above the dialog heading.\n * @slot alert - Content will be placed at the top of the content area of the dialog.\n */\n@Component({\n tag: \"ic-dialog\",\n styleUrl: \"ic-dialog.css\",\n shadow: true,\n})\nexport class Dialog {\n private backdropEl?: HTMLDivElement;\n private contentArea: HTMLSlotElement | null;\n private contentAreaMutationObserver: MutationObserver | null = null;\n private DATA_GETS_FOCUS: string = \"data-gets-focus\";\n private DIALOG_CONTROLS: string = \"dialog-controls\";\n private dialogEl?: HTMLDialogElement;\n private dialogHeight: number = 0;\n private focusedElementIndex = 0;\n private IC_TEXT_FIELD: string = \"IC-TEXT-FIELD\";\n private IC_ACCORDION: string = \"IC-ACCORDION\";\n private IC_ACCORDION_GROUP: string = \"IC-ACCORDION-GROUP\";\n private IC_CHECKBOX = \"IC-CHECKBOX\";\n private IC_SEARCH_BAR: string = \"IC-SEARCH-BAR\";\n private interactiveElementList: HTMLElement[];\n private resizeObserver: ResizeObserver | null = null;\n private resizeTimeout: number;\n private sourceElement: HTMLElement;\n\n @Element() el: HTMLIcDialogElement;\n\n @State() dialogRendered: boolean = false;\n @State() fadeIn: boolean = false;\n\n /**\n * If set to `false`, the dialog will not close when the backdrop is clicked.\n */\n @Prop() closeOnBackdropClick?: boolean = true;\n\n /**\n * If 'true', sets the 'primary' or rightmost button to the destructive variant. Stops initial focus being set on the 'primary' or rightmost default or slotted button.\n */\n @Prop() destructive?: boolean = false;\n\n /**\n * Sets the dismiss label tooltip and aria label.\n */\n @Prop() dismissLabel?: string = \"Dismiss\";\n\n /**\n * If set to `true`, the content area max height and overflow properties are removed allowing the dialog to stretch below the fold.\n * This prop also prevents popover elements from being cut off within the content area.\n */\n @Prop() disableHeightConstraint?: boolean = false;\n\n /**\n * If set to `true`, the content area width property is removed, allowing content to take the full width of the dialog when using the large variant.\n */\n @Prop() disableWidthConstraint?: boolean = false;\n\n /**\n * If `true`, the close button will not be displayed.\n */\n @Prop() hideCloseButton?: boolean = false;\n\n /**\n * If set to `true`, default button controls will not be shown, but slotted dialog controls will still be displayed.\n */\n @Prop() hideDefaultControls: boolean = false;\n\n /**\n * Sets the heading for the dialog.\n */\n @Prop() heading?: string;\n\n /**\n * Sets the optional label for the dialog which appears above the heading.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the dialog will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open?: boolean = false;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n this.dialogOpened();\n } else {\n this.fadeIn = false;\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n setTimeout(() => {\n this.dialogRendered = false;\n this.dialogEl?.close();\n this.sourceElement?.focus();\n this.dialogHeight = 0;\n this.icDialogClosed.emit();\n }, 80);\n }\n }\n\n /**\n * Sets the maximum and minimum height and width for the dialog.\n */\n @Prop() size?: \"small\" | \"medium\" | \"large\" = \"small\";\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 * Cancelation event emitted when default 'Cancel' button clicked or 'cancelDialog' method is called.\n */\n @Event() icDialogCancelled: EventEmitter<void>;\n\n /**\n * Emitted when dialog has closed.\n */\n @Event() icDialogClosed: EventEmitter<void>;\n\n /**\n * Confirmation event emitted when default 'Confirm' primary button clicked or 'confirmDialog' method is called.\n */\n @Event() icDialogConfirmed: EventEmitter<void>;\n\n /**\n * Emitted when dialog has opened.\n */\n @Event() icDialogOpened: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.removeSlotChangeListener();\n }\n\n componentDidLoad(): void {\n this.getInteractiveElements();\n\n this.refreshInteractiveElementsOnSlotChange();\n\n if (this.open) {\n this.dialogOpened();\n }\n\n !isSlotUsed(this.el, \"heading\") &&\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Dialog\"\n );\n }\n\n componentDidRender(): void {\n document.body.style.overflow =\n getComputedStyle(this.el).display !== \"none\" &&\n this.disableHeightConstraint\n ? \"hidden\"\n : \"auto\";\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.dialogRendered) {\n switch (ev.key) {\n case \"Tab\":\n if (this.onTabKeyPress(ev.shiftKey)) {\n ev.preventDefault();\n }\n break;\n case \"Escape\":\n if (!ev.repeat) {\n this.open = false;\n }\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"click\", {})\n handleClick(ev: MouseEvent): void {\n if (\n this.dialogEl &&\n this.closeOnBackdropClick &&\n ev.composedPath().indexOf(this.dialogEl) <= 0\n ) {\n const { top, height, left, width } =\n this.dialogEl.getBoundingClientRect();\n const isInDialog =\n top <= ev.clientY &&\n ev.clientY <= top + height &&\n left <= ev.clientX &&\n ev.clientX <= left + width;\n if (!isInDialog) {\n this.open = false;\n }\n }\n }\n\n /**\n * Cancels the dialog. Used by the default 'Cancel' button or can be called manually to trigger cancelling of dialog.\n */\n @Method()\n async cancelDialog(): Promise<void> {\n this.icDialogCancelled.emit();\n this.open = false;\n }\n\n /**\n * Confirms the dialog. Used by the default 'Confirm' button or can be called manually to trigger confirming of dialog.\n */\n @Method()\n async confirmDialog(): Promise<void> {\n this.icDialogConfirmed.emit();\n }\n\n private dialogOpened = () => {\n this.dialogRendered = true;\n\n if (this.disableHeightConstraint) {\n this.dialogEl?.show();\n } else {\n this.dialogEl?.showModal();\n }\n\n setTimeout(() => {\n this.fadeIn = true;\n\n /**\n * This is required to set scroll back to top if:\n * - dialog content goes below the fold\n * - is closed using cancel or confirm and reopened.\n *\n * Without this, the scroll bar will start from the dialog's last scroll-x coordinate.\n */\n if (\n this.backdropEl &&\n this.disableHeightConstraint &&\n this.backdropEl.scrollTop !== 0\n ) {\n this.backdropEl.scrollTop = 0;\n }\n }, 10);\n\n setTimeout(() => {\n this.setInitialFocus();\n checkResizeObserver(this.runResizeObserver);\n }, 75);\n\n setTimeout(() => {\n this.icDialogOpened.emit();\n }, 80);\n };\n\n private runResizeObserver = () => {\n if (this.dialogEl) {\n this.resizeObserver = new ResizeObserver(() => {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = window.setTimeout(this.resizeObserverCallback, 80);\n });\n this.resizeObserver.observe(this.dialogEl);\n }\n };\n\n private resizeObserverCallback = () => {\n if (this.dialogEl && this.dialogEl.clientHeight !== this.dialogHeight) {\n this.dialogHeight = this.dialogEl.clientHeight;\n }\n };\n\n private refreshInteractiveElementsOnSlotChange = () => {\n const contentWrapper = this.el.shadowRoot?.querySelector(\"#dialog-content\");\n\n if (contentWrapper) {\n this.contentArea = contentWrapper.querySelector(\"slot\");\n\n // Detect changes to slotted elements\n this.contentArea?.addEventListener(\n \"slotchange\",\n this.getInteractiveElements\n );\n\n this.contentAreaMutationObserver = new MutationObserver(() => {\n this.getInteractiveElements();\n });\n\n // Detect changes to children of slotted elements\n getSlotElements(contentWrapper)?.forEach((el) => {\n this.contentAreaMutationObserver?.observe(el, {\n childList: true,\n subtree: true,\n });\n });\n }\n };\n\n private removeSlotChangeListener = () => {\n if (this.contentArea) {\n this.contentArea.removeEventListener(\n \"slotchange\",\n this.getInteractiveElements\n );\n\n this.contentAreaMutationObserver?.disconnect();\n }\n };\n\n private setInitialFocus = () => {\n this.sourceElement = document.activeElement as HTMLElement;\n this.focusedElementIndex = this.interactiveElementList\n ? this.interactiveElementList.findIndex((element) =>\n element.hasAttribute(this.DATA_GETS_FOCUS)\n )\n : 0;\n this.focusElement(this.interactiveElementList[this.focusedElementIndex]);\n };\n\n private getFocusedElementIndex = () => {\n for (let i = 0; i < this.interactiveElementList.length; i++) {\n if (\n (this.interactiveElementList[i] as HTMLElement) ===\n (this.el.shadowRoot?.activeElement || document.activeElement)\n ) {\n this.focusedElementIndex = i;\n }\n }\n };\n\n private closeIconClick = () => {\n this.open = false;\n };\n\n private getInteractiveElements = () => {\n this.interactiveElementList = Array.from(\n this.el.shadowRoot?.querySelectorAll(\"ic-button\") || []\n );\n const slottedInteractiveElements = Array.from(\n this.el.querySelectorAll(\n `a[href], button, input:not(.ic-input), textarea, select, details, [tabindex]:not([tabindex=\"-1\"]),\n ic-button, ic-checkbox, ic-select, ic-search-bar, ic-tab-group, \n ic-back-to-top, ic-breadcrumb, ic-chip[dismissible=\"true\"], ic-footer-link, ic-link, ic-navigation-button,\n ic-navigation-item, ic-switch, ic-text-field, ic-accordion-group, ic-accordion, ic-date-input, ic-date-picker`\n )\n );\n if (slottedInteractiveElements.length > 0) {\n if (slottedInteractiveElements[0].slot !== this.DIALOG_CONTROLS) {\n slottedInteractiveElements[0].setAttribute(this.DATA_GETS_FOCUS, \"\");\n } else if (!this.destructive) {\n slottedInteractiveElements[\n slottedInteractiveElements.length - 1\n ].setAttribute(this.DATA_GETS_FOCUS, \"\");\n }\n }\n for (let i = 0; i < slottedInteractiveElements.length; i++) {\n this.interactiveElementList.splice(\n 1 + i,\n 0,\n slottedInteractiveElements[i] as HTMLElement\n );\n }\n };\n\n private getNextFocusEl = (focusedElementIndex: number) =>\n this.interactiveElementList[focusedElementIndex];\n\n private onTabKeyPress = (shiftKey: boolean): boolean => {\n this.getFocusedElementIndex();\n\n if (\n this.interactiveElementList[this.focusedElementIndex].tagName ===\n this.IC_SEARCH_BAR\n ) {\n return false;\n }\n\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n this.focusElement(this.getNextFocusEl(this.focusedElementIndex), shiftKey);\n return true;\n };\n\n private shouldSkipElement = (element: HTMLElement): boolean => {\n const isHidden =\n getComputedStyle(element).visibility === \"hidden\" ||\n element.offsetHeight === 0 ||\n element.hasAttribute(\"disabled\") ||\n (element.tagName === this.IC_ACCORDION_GROUP &&\n element.hasAttribute(\"single-expansion\"));\n\n const radioEl = element.closest(\"ic-radio-option\");\n\n return (\n isHidden ||\n (element.getAttribute(\"type\") === \"radio\" &&\n !!radioEl &&\n !(radioEl.hasAttribute(\"selected\") || element.tabIndex === 0))\n );\n };\n\n private focusElement = (element: HTMLElement, shiftKey = false) => {\n let nextFocusEl = element;\n\n if (this.shouldSkipElement(element)) {\n this.setFocusIndexBasedOnShiftKey(shiftKey);\n this.loopNextFocusIndexIfLastElement();\n\n nextFocusEl = this.getNextFocusEl(this.focusedElementIndex);\n this.focusElement(nextFocusEl, shiftKey);\n } else {\n switch (element.tagName) {\n case this.IC_ACCORDION_GROUP:\n case this.IC_ACCORDION:\n case this.IC_SEARCH_BAR:\n case this.IC_TEXT_FIELD:\n case this.IC_CHECKBOX:\n (element as IcFocusableComponents).setFocus();\n break;\n default:\n (element as HTMLElement).focus();\n }\n }\n };\n\n private loopNextFocusIndexIfLastElement() {\n if (this.focusedElementIndex > this.interactiveElementList.length - 1)\n this.focusedElementIndex = 0;\n else if (this.focusedElementIndex < 0) {\n this.focusedElementIndex = this.interactiveElementList.length - 1;\n }\n }\n\n private setFocusIndexBasedOnShiftKey(shiftKey: boolean) {\n if (shiftKey) {\n this.focusedElementIndex -= 1;\n } else {\n this.focusedElementIndex += 1;\n }\n }\n\n private renderDialog = () => {\n const {\n hideDefaultControls,\n size,\n heading,\n label,\n destructive,\n dismissLabel,\n hideCloseButton,\n disableHeightConstraint,\n disableWidthConstraint,\n closeIconClick,\n DIALOG_CONTROLS,\n } = this;\n\n const controlsSlotUsed = isSlotUsed(this.el, DIALOG_CONTROLS);\n\n return (\n <dialog\n class={{\n dialog: true,\n [`${size}`]: true,\n \"disable-height-constraint\": !!disableHeightConstraint,\n \"disable-width-constraint\": !!disableWidthConstraint,\n }}\n aria-labelledby=\"dialog-label dialog-heading\"\n aria-describedby=\"dialog-alert dialog-content\"\n ref={(el) => (this.dialogEl = el)}\n >\n <div class=\"heading-area\">\n <div class=\"heading-content\">\n <div class=\"label\">\n <slot name=\"label\">\n <ic-typography variant=\"label\" id=\"dialog-label\">\n {label}\n </ic-typography>\n </slot>\n </div>\n <div class=\"heading\">\n <slot name=\"heading\">\n <ic-typography variant=\"h4\" id=\"dialog-heading\">\n {heading}\n </ic-typography>\n </slot>\n </div>\n </div>\n {!hideCloseButton && (\n <ic-button\n class=\"close-icon\"\n variant=\"icon\"\n innerHTML={closeIcon}\n aria-label={dismissLabel}\n onClick={closeIconClick}\n data-gets-focus={\n destructive || (hideDefaultControls && !controlsSlotUsed)\n ? \"\"\n : null\n }\n ></ic-button>\n )}\n </div>\n <div class=\"content-area\">\n {isSlotUsed(this.el, \"alert\") && <slot name=\"alert\" />}\n <div id=\"dialog-content\">\n <slot />\n </div>\n </div>\n {(controlsSlotUsed || !hideDefaultControls) && (\n <div\n class={{\n [DIALOG_CONTROLS]: true,\n }}\n >\n {controlsSlotUsed ? (\n <slot name={DIALOG_CONTROLS} />\n ) : (\n <Fragment>\n <ic-button\n variant=\"tertiary\"\n onClick={() => this.cancelDialog()}\n class=\"dialog-control-button\"\n data-gets-focus={null}\n >\n Cancel\n </ic-button>\n <ic-button\n variant={destructive ? \"destructive\" : \"primary\"}\n onClick={() => this.confirmDialog()}\n class=\"dialog-control-button\"\n data-gets-focus=\"\"\n >\n Confirm\n </ic-button>\n </Fragment>\n )}\n </div>\n )}\n </dialog>\n );\n };\n\n render() {\n const { dialogRendered, disableHeightConstraint, fadeIn, theme } = this;\n\n return (\n <Host\n class={{\n \"ic-dialog-hidden\": !dialogRendered,\n \"ic-dialog-fade-in\": fadeIn,\n \"disable-height-constraint\": !!disableHeightConstraint,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n {disableHeightConstraint ? (\n <div class=\"backdrop\" ref={(el) => (this.backdropEl = el)}>\n {this.renderDialog()}\n </div>\n ) : (\n this.renderDialog()\n )}\n </Host>\n );\n }\n}\n"]}
@@ -138,38 +138,47 @@ export const SlottedContent = {
138
138
  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
139
139
  tempor incididunt ut labore et dolore magna aliqua.
140
140
  </ic-typography>
141
- <ic-radio-group label="This is a label" name="1">
142
- <ic-radio-option
143
- value="valueName1"
144
- label="Unselected / Default"
145
- additional-field-display="dynamic"
146
- >
147
- <ic-text-field
148
- slot="additional-field"
149
- placeholder="Placeholder"
150
- label="What's your favourite type of coffee?"
141
+ <ic-accordion heading="This is an accordion">
142
+ <ic-checkbox label="Agree" value="confirm" additional-field-display="static">
143
+ <ic-text-field
144
+ slot="additional-field"
145
+ placeholder="Placeholder"
146
+ label="What's your favourite type of coffee?"
147
+ />
148
+ </ic-checkbox>
149
+ <ic-radio-group label="This is a label" name="1">
150
+ <ic-radio-option
151
+ value="valueName1"
152
+ label="Unselected / Default"
153
+ additional-field-display="dynamic"
151
154
  >
152
- </ic-text-field>
153
- </ic-radio-option>
154
- <ic-radio-option
155
- value="valueName2"
156
- label="Selected / Default"
157
- additional-field-display="static"
158
- selected
159
- >
160
- <ic-text-field
161
- slot="additional-field"
162
- placeholder="Placeholder"
163
- label="What's your favourite type of coffee?"
155
+ <ic-text-field
156
+ slot="additional-field"
157
+ placeholder="Placeholder"
158
+ label="What's your favourite type of coffee?"
159
+ >
160
+ </ic-text-field>
161
+ </ic-radio-option>
162
+ <ic-radio-option
163
+ value="valueName2"
164
+ label="Selected / Default"
165
+ additional-field-display="static"
166
+ selected
164
167
  >
165
- </ic-text-field>
166
- </ic-radio-option>
167
- <ic-radio-option
168
- value="valueName3"
169
- label="Unselected / Disabled"
170
- disabled
171
- ></ic-radio-option>
172
- </ic-radio-group>
168
+ <ic-text-field
169
+ slot="additional-field"
170
+ placeholder="Placeholder"
171
+ label="What's your favourite type of coffee?"
172
+ >
173
+ </ic-text-field>
174
+ </ic-radio-option>
175
+ <ic-radio-option
176
+ value="valueName3"
177
+ label="Unselected / Disabled"
178
+ disabled
179
+ ></ic-radio-option>
180
+ </ic-radio-group>
181
+ </ic-accordion>
173
182
  <ic-search-bar label="What is your favourite coffee?"></ic-search-bar>
174
183
  <ic-text-field label="What is your favourite coffee?"></ic-text-field>
175
184
  <ic-select
@@ -41,7 +41,7 @@ export const Theme = {
41
41
  label-placement="left"
42
42
  ></ic-divider>
43
43
  <div
44
- style="display:flex; flex-direction: column; align-items: center; background-color: #fff; width: 100%; padding: var(--ic-space-xs) 0; gap: var(--ic-space-md)"
44
+ style="display:flex; flex-direction: column; align-items: center; background-color: var(--ic-color-page-background-light); width: 100%; padding: var(--ic-space-xs) 0; gap: var(--ic-space-md)"
45
45
  >
46
46
  <ic-divider
47
47
  theme="light"
@@ -58,7 +58,7 @@ export const Theme = {
58
58
  ></ic-divider>
59
59
  </div>
60
60
  <div
61
- style="display:flex; flex-direction: column; align-items: center; background-color: #17191c; width: 100%; padding: var(--ic-space-xs) 0; gap: var(--ic-space-md)"
61
+ style="display:flex; flex-direction: column; align-items: center; background-color: var(--ic-color-page-background-dark); width: 100%; padding: var(--ic-space-xs) 0; gap: var(--ic-space-md)"
62
62
  >
63
63
  <ic-divider
64
64
  theme="dark"
@@ -270,7 +270,7 @@ export const Playground = {
270
270
  render: (args) => {
271
271
  const backgroundColor =
272
272
  args.theme === "dark"
273
- ? "#17191c"
273
+ ? "var(--ic-color-page-background-dark)"
274
274
  : args.theme === "light"
275
275
  ? "var(--ic-color-background-primary-light)"
276
276
  : "transparent";
@@ -151,7 +151,7 @@ export const Brand = {
151
151
  <ic-footer-link href="/">Get Started</ic-footer-link>
152
152
  <ic-footer-link href="/">Accessibility</ic-footer-link>
153
153
  <ic-footer-link href="/">Styles</ic-footer-link>
154
- <ic-footer-link href="/">Components</ic-footer-link>
154
+ <ic-footer-link href="/" target="_blank">Components</ic-footer-link>
155
155
  <ic-footer-link href="/">Patterns</ic-footer-link>
156
156
  <ic-footer-link href="/">Design toolkit</ic-footer-link>
157
157
  </ic-footer-link-group>
@@ -531,7 +531,7 @@ video {
531
531
 
532
532
  :host(.footer-link-light) ::slotted(svg),
533
533
  :host(.footer-link-dark) ::slotted(svg) {
534
- fill: var(--ic-footer-icon);
534
+ fill: var(--ic-footer-logo);
535
535
  }
536
536
 
537
537
  :host(.footer-logo-link) {
@@ -8,7 +8,7 @@ ic-input-label {
8
8
  }
9
9
 
10
10
  ic-input-label.with-helper {
11
- margin-bottom: var(--ic-space-xxxs);
11
+ margin-bottom: 0;
12
12
  }
13
13
 
14
14
  ic-input-label.ic-input-label-readonly {
@@ -591,9 +591,13 @@ video {
591
591
  color: var(--ic-footer-link) !important;
592
592
  }
593
593
 
594
+ :host(.footer-link) .ic-link-open-in-new-icon > svg {
595
+ fill: var(--ic-footer-icon) !important;
596
+ }
597
+
594
598
  /** High Contrast **/
595
599
  @media (forced-colors: active) {
596
- .ic-link-open-in-new-icon > svg {
597
- fill: currentcolor;
600
+ :host(.ic-link) .ic-link-open-in-new-icon > svg {
601
+ fill: currentcolor !important;
598
602
  }
599
603
  }
@@ -528,6 +528,11 @@ video {
528
528
  overflow: hidden;
529
529
  }
530
530
 
531
+ .ic-loading-circular-outer[aria-valuenow="0"] .ic-loading-circular-inner,
532
+ .ic-loading-linear-outer[aria-valuenow="0"] .ic-loading-linear-inner {
533
+ --inner-color: var(--outer-color);
534
+ }
535
+
531
536
  .ic-loading-linear-inner {
532
537
  position: relative;
533
538
  height: 100%;