@ukic/web-components 3.12.0 → 3.14.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 (561) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-478d1107.js → helpers-15fae358.js} +5 -1
  3. package/dist/cjs/helpers-15fae358.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +6 -4
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +6 -5
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +3 -3
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -3
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -4
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-button_3.cjs.entry.js +43 -19
  16. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-card-vertical.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-checkbox-group.cjs.entry.js +9 -5
  19. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -5
  21. package/dist/cjs/ic-chip.cjs.entry.js +4 -4
  22. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-dialog.cjs.entry.js +39 -13
  25. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-divider.cjs.entry.js +3 -2
  27. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  29. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  31. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-hero.cjs.entry.js +8 -7
  33. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  35. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +18 -15
  36. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -6
  38. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  39. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  40. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -2
  43. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  45. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -4
  47. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  49. package/dist/cjs/ic-page-header.cjs.entry.js +8 -8
  50. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  52. package/dist/cjs/ic-pagination.cjs.entry.js +5 -5
  53. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  54. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  55. package/dist/cjs/ic-radio-option.cjs.entry.js +5 -5
  56. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  57. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-select.cjs.entry.js +20 -12
  59. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-side-navigation.cjs.entry.js +6 -6
  61. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-status-tag.cjs.entry.js +4 -4
  65. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-step.cjs.entry.js +15 -14
  67. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-stepper.cjs.entry.js +4 -3
  69. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-switch.cjs.entry.js +5 -5
  71. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  73. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  74. package/dist/cjs/ic-tab.cjs.entry.js +3 -3
  75. package/dist/cjs/ic-text-field.cjs.entry.js +12 -7
  76. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  78. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-toast.cjs.entry.js +8 -5
  80. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +8 -4
  82. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-toggle-button.cjs.entry.js +58 -45
  84. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-top-navigation.cjs.entry.js +6 -6
  86. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  88. package/dist/cjs/loader.cjs.js +1 -1
  89. package/dist/collection/collection-manifest.json +1 -1
  90. package/dist/collection/components/ic-alert/ic-alert.css +19 -29
  91. package/dist/collection/components/ic-alert/ic-alert.js +4 -2
  92. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  93. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +1 -1
  94. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +4 -3
  95. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  96. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  97. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +5 -4
  98. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +3 -2
  99. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  100. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  101. package/dist/collection/components/ic-button/ic-button.js +36 -11
  102. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  103. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  104. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  105. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +34 -4
  106. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  107. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +163 -0
  108. package/dist/collection/components/ic-chip/ic-chip.js +3 -3
  109. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  110. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  111. package/dist/collection/components/ic-dialog/ic-dialog.css +1 -1
  112. package/dist/collection/components/ic-dialog/ic-dialog.js +38 -12
  113. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  114. package/dist/collection/components/ic-divider/ic-divider.css +89 -89
  115. package/dist/collection/components/ic-divider/ic-divider.js +2 -1
  116. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  117. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  118. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  119. package/dist/collection/components/ic-hero/ic-hero.css +4 -4
  120. package/dist/collection/components/ic-hero/ic-hero.js +6 -5
  121. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  122. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  123. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  124. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  125. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  126. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  127. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  128. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  129. package/dist/collection/components/ic-link/ic-link.js +1 -1
  130. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +4 -4
  131. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +6 -5
  132. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  133. package/dist/collection/components/ic-menu/ic-menu.js +12 -9
  134. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  135. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  136. package/dist/collection/components/ic-menu-item/ic-menu-item.css +6 -6
  137. package/dist/collection/components/ic-menu-item/ic-menu-item.js +1 -0
  138. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  139. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  140. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  141. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +9 -0
  142. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -2
  143. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  144. package/dist/collection/components/ic-page-header/ic-page-header.css +4 -0
  145. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  146. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  147. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  148. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  149. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  150. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  151. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  152. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  153. package/dist/collection/components/ic-select/ic-select.js +20 -12
  154. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  155. package/dist/collection/components/ic-select/ic-select_(single).stories.js +74 -1
  156. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +2 -0
  157. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  158. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  159. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  160. package/dist/collection/components/ic-status-tag/ic-status-tag.css +1 -4
  161. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  162. package/dist/collection/components/ic-step/ic-step.js +16 -15
  163. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  164. package/dist/collection/components/ic-step/ic-step.types.js.map +1 -1
  165. package/dist/collection/components/ic-stepper/ic-stepper.js +5 -4
  166. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  167. package/dist/collection/components/ic-stepper/ic-stepper.stories.js +2 -1
  168. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  169. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  170. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  171. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  172. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  173. package/dist/collection/components/ic-text-field/ic-text-field.js +17 -11
  174. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  175. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +22 -0
  176. package/dist/collection/components/ic-text-field/ic-text-field.types.js.map +1 -1
  177. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  178. package/dist/collection/components/ic-toast/ic-toast.css +6 -6
  179. package/dist/collection/components/ic-toast/ic-toast.js +6 -3
  180. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  181. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  182. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +57 -44
  183. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  184. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +7 -3
  185. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  186. package/dist/collection/components/ic-tooltip/ic-tooltip.js +3 -3
  187. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  188. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +37 -109
  189. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +13 -10
  190. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  191. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  192. package/dist/collection/icds-table-style.css +66 -0
  193. package/dist/collection/utils/helpers.js +3 -0
  194. package/dist/collection/utils/helpers.js.map +1 -1
  195. package/dist/collection/utils/types.js.map +1 -1
  196. package/dist/components/helpers.js +4 -1
  197. package/dist/components/helpers.js.map +1 -1
  198. package/dist/components/ic-action-chip.js +1 -1
  199. package/dist/components/ic-alert.js +6 -4
  200. package/dist/components/ic-alert.js.map +1 -1
  201. package/dist/components/ic-back-to-top.js +6 -5
  202. package/dist/components/ic-back-to-top.js.map +1 -1
  203. package/dist/components/ic-badge.js +3 -3
  204. package/dist/components/ic-breadcrumb-group.js +3 -3
  205. package/dist/components/ic-breadcrumb2.js +5 -4
  206. package/dist/components/ic-breadcrumb2.js.map +1 -1
  207. package/dist/components/ic-button2.js +35 -11
  208. package/dist/components/ic-button2.js.map +1 -1
  209. package/dist/components/ic-card-vertical.js +5 -5
  210. package/dist/components/ic-checkbox-group.js +10 -5
  211. package/dist/components/ic-checkbox-group.js.map +1 -1
  212. package/dist/components/ic-checkbox.js +5 -5
  213. package/dist/components/ic-chip.js +4 -4
  214. package/dist/components/ic-data-list.js +2 -2
  215. package/dist/components/ic-data-row.js +3 -3
  216. package/dist/components/ic-dialog.js +39 -13
  217. package/dist/components/ic-dialog.js.map +1 -1
  218. package/dist/components/ic-divider2.js +3 -2
  219. package/dist/components/ic-divider2.js.map +1 -1
  220. package/dist/components/ic-empty-state.js +3 -3
  221. package/dist/components/ic-footer-link-group.js +1 -1
  222. package/dist/components/ic-footer-link.js +3 -3
  223. package/dist/components/ic-footer.js +1 -1
  224. package/dist/components/ic-hero.js +8 -7
  225. package/dist/components/ic-hero.js.map +1 -1
  226. package/dist/components/ic-horizontal-scroll2.js +6 -6
  227. package/dist/components/ic-input-component-container2.js +4 -4
  228. package/dist/components/ic-input-container2.js +2 -2
  229. package/dist/components/ic-input-label2.js +3 -3
  230. package/dist/components/ic-input-validation2.js +4 -4
  231. package/dist/components/ic-layout-grid-item.js +2 -2
  232. package/dist/components/ic-layout-grid.js +2 -2
  233. package/dist/components/ic-link2.js +1 -1
  234. package/dist/components/ic-loading-indicator2.js +7 -6
  235. package/dist/components/ic-loading-indicator2.js.map +1 -1
  236. package/dist/components/ic-menu-group.js +2 -2
  237. package/dist/components/ic-menu-item2.js +3 -2
  238. package/dist/components/ic-menu-item2.js.map +1 -1
  239. package/dist/components/ic-menu2.js +13 -10
  240. package/dist/components/ic-menu2.js.map +1 -1
  241. package/dist/components/ic-navigation-button.js +3 -3
  242. package/dist/components/ic-navigation-group.js +2 -2
  243. package/dist/components/ic-navigation-item.js +4 -4
  244. package/dist/components/ic-navigation-item.js.map +1 -1
  245. package/dist/components/ic-navigation-menu2.js +5 -5
  246. package/dist/components/ic-page-header.js +8 -8
  247. package/dist/components/ic-page-header.js.map +1 -1
  248. package/dist/components/ic-pagination-item2.js +2 -2
  249. package/dist/components/ic-pagination.js +4 -4
  250. package/dist/components/ic-popover-menu.js +5 -5
  251. package/dist/components/ic-radio-group.js +5 -5
  252. package/dist/components/ic-radio-group.js.map +1 -1
  253. package/dist/components/ic-radio-option.js +5 -5
  254. package/dist/components/ic-search-bar.js +10 -10
  255. package/dist/components/ic-section-container2.js +2 -2
  256. package/dist/components/ic-select.js +20 -12
  257. package/dist/components/ic-select.js.map +1 -1
  258. package/dist/components/ic-side-navigation.js +6 -6
  259. package/dist/components/ic-side-navigation.js.map +1 -1
  260. package/dist/components/ic-skeleton.js +2 -2
  261. package/dist/components/ic-skip-link.js +2 -2
  262. package/dist/components/ic-status-tag.js +3 -3
  263. package/dist/components/ic-status-tag.js.map +1 -1
  264. package/dist/components/ic-step.js +15 -14
  265. package/dist/components/ic-step.js.map +1 -1
  266. package/dist/components/ic-stepper.js +3 -2
  267. package/dist/components/ic-stepper.js.map +1 -1
  268. package/dist/components/ic-switch.js +5 -5
  269. package/dist/components/ic-tab-context.js +1 -1
  270. package/dist/components/ic-tab-group.js +2 -2
  271. package/dist/components/ic-tab-panel.js +2 -2
  272. package/dist/components/ic-tab.js +2 -2
  273. package/dist/components/ic-text-field.js +12 -7
  274. package/dist/components/ic-text-field.js.map +1 -1
  275. package/dist/components/ic-theme.js +2 -2
  276. package/dist/components/ic-toast-region.js +1 -1
  277. package/dist/components/ic-toast.js +8 -5
  278. package/dist/components/ic-toast.js.map +1 -1
  279. package/dist/components/ic-toggle-button-group.js +7 -3
  280. package/dist/components/ic-toggle-button-group.js.map +1 -1
  281. package/dist/components/ic-toggle-button.js +58 -45
  282. package/dist/components/ic-toggle-button.js.map +1 -1
  283. package/dist/components/ic-tooltip2.js +3 -3
  284. package/dist/components/ic-tooltip2.js.map +1 -1
  285. package/dist/components/ic-top-navigation.js +6 -6
  286. package/dist/components/ic-top-navigation.js.map +1 -1
  287. package/dist/components/ic-typography2.js +2 -2
  288. package/dist/core/core.css +11 -8
  289. package/dist/core/core.esm.js +1 -1
  290. package/dist/core/core.esm.js.map +1 -1
  291. package/dist/core/icds-table-style.css +66 -0
  292. package/dist/core/p-0257d59e.entry.js +2 -0
  293. package/dist/core/p-0257d59e.entry.js.map +1 -0
  294. package/dist/core/p-042cfc35.entry.js +2 -0
  295. package/dist/core/p-042cfc35.entry.js.map +1 -0
  296. package/dist/core/{p-514daffe.entry.js → p-053ed367.entry.js} +2 -2
  297. package/dist/core/{p-54803e3b.entry.js → p-06b3ae40.entry.js} +2 -2
  298. package/dist/core/{p-95d3d1a7.entry.js → p-091a7fbf.entry.js} +2 -2
  299. package/dist/core/{p-4747c39f.entry.js → p-09c31ac6.entry.js} +2 -2
  300. package/dist/core/{p-01e018cb.entry.js → p-0b1ea961.entry.js} +2 -2
  301. package/dist/core/{p-cf868a24.entry.js → p-0cbd0967.entry.js} +2 -2
  302. package/dist/core/p-0cbd0967.entry.js.map +1 -0
  303. package/dist/core/{p-33582352.entry.js → p-109e7fce.entry.js} +2 -2
  304. package/dist/core/{p-99793b64.entry.js → p-199c5ff6.entry.js} +2 -2
  305. package/dist/core/p-2026f4fa.entry.js +2 -0
  306. package/dist/core/p-2026f4fa.entry.js.map +1 -0
  307. package/dist/core/p-24d46cab.entry.js +2 -0
  308. package/dist/core/p-24d46cab.entry.js.map +1 -0
  309. package/dist/core/{p-228bc12d.entry.js → p-2969b5c9.entry.js} +2 -2
  310. package/dist/core/{p-c975cced.entry.js → p-296a41ce.entry.js} +2 -2
  311. package/dist/core/p-30312243.entry.js +2 -0
  312. package/dist/core/p-30312243.entry.js.map +1 -0
  313. package/dist/core/p-355d0914.entry.js +2 -0
  314. package/dist/core/p-355d0914.entry.js.map +1 -0
  315. package/dist/core/{p-1423bd4a.entry.js → p-3785c740.entry.js} +2 -2
  316. package/dist/core/{p-8684efeb.entry.js → p-3a94849e.entry.js} +2 -2
  317. package/dist/core/{p-a06c1e4e.entry.js → p-3b13d191.entry.js} +2 -2
  318. package/dist/core/{p-13e093d0.entry.js → p-411527a1.entry.js} +2 -2
  319. package/dist/core/{p-de32a223.entry.js → p-44fbe8c2.entry.js} +2 -2
  320. package/dist/core/{p-93479c36.entry.js → p-4637c326.entry.js} +2 -2
  321. package/dist/core/{p-fb734a59.entry.js → p-48eb7299.entry.js} +2 -2
  322. package/dist/core/{p-b0376079.entry.js → p-4a358f09.entry.js} +2 -2
  323. package/dist/core/{p-e6dacbe2.entry.js → p-4bdeb62d.entry.js} +2 -2
  324. package/dist/core/{p-9cf6ccfd.entry.js → p-5cf704e3.entry.js} +2 -2
  325. package/dist/core/p-614953c5.entry.js +2 -0
  326. package/dist/core/p-614953c5.entry.js.map +1 -0
  327. package/dist/core/p-62b9e7bf.entry.js +2 -0
  328. package/dist/core/p-62b9e7bf.entry.js.map +1 -0
  329. package/dist/core/{p-05036675.entry.js → p-6996e94f.entry.js} +2 -2
  330. package/dist/core/p-6996e94f.entry.js.map +1 -0
  331. package/dist/core/{p-cc00cbce.entry.js → p-6e61c48a.entry.js} +2 -2
  332. package/dist/core/{p-33789b23.entry.js → p-6f60262e.entry.js} +3 -3
  333. package/dist/core/p-6f60262e.entry.js.map +1 -0
  334. package/dist/core/{p-d58ad080.entry.js → p-6fb29846.entry.js} +2 -2
  335. package/dist/core/p-6fb29846.entry.js.map +1 -0
  336. package/dist/core/p-77a6c3f7.entry.js +2 -0
  337. package/dist/core/p-77a6c3f7.entry.js.map +1 -0
  338. package/dist/core/p-7970cbed.entry.js +2 -0
  339. package/dist/core/p-7970cbed.entry.js.map +1 -0
  340. package/dist/core/{p-37d217b5.entry.js → p-889bb8db.entry.js} +2 -2
  341. package/dist/core/{p-c04e1fab.entry.js → p-8c7d6a85.entry.js} +2 -2
  342. package/dist/core/{p-6dbe70f1.entry.js → p-911b4aa4.entry.js} +2 -2
  343. package/dist/core/{p-57721431.entry.js → p-93e1ba0a.entry.js} +2 -2
  344. package/dist/core/{p-37daa8fe.entry.js → p-9c2e9189.entry.js} +2 -2
  345. package/dist/core/{p-8558b9b7.entry.js → p-a45de09d.entry.js} +2 -2
  346. package/dist/core/{p-b57e59b7.js → p-a5658054.js} +2 -2
  347. package/dist/core/p-a5658054.js.map +1 -0
  348. package/dist/core/{p-ea06792a.entry.js → p-a7f21494.entry.js} +2 -2
  349. package/dist/core/p-a8dc3162.entry.js +2 -0
  350. package/dist/core/p-a8dc3162.entry.js.map +1 -0
  351. package/dist/core/p-ab26beed.entry.js +2 -0
  352. package/dist/core/p-ab26beed.entry.js.map +1 -0
  353. package/dist/core/{p-2126d37b.entry.js → p-ad6632a9.entry.js} +2 -2
  354. package/dist/core/p-ae7dcbd5.entry.js +2 -0
  355. package/dist/core/p-ae7dcbd5.entry.js.map +1 -0
  356. package/dist/core/{p-9a8bcb78.entry.js → p-b00efb15.entry.js} +2 -2
  357. package/dist/core/p-b29e325f.entry.js +2 -0
  358. package/dist/core/{p-b9bdd9a9.entry.js → p-bba25812.entry.js} +2 -2
  359. package/dist/core/{p-27e67d45.entry.js → p-c397b33f.entry.js} +2 -2
  360. package/dist/core/{p-45097448.entry.js → p-c4ffcc64.entry.js} +2 -2
  361. package/dist/core/{p-675bb3e4.entry.js → p-d1cce122.entry.js} +2 -2
  362. package/dist/core/p-d20a61a7.entry.js +2 -0
  363. package/dist/core/p-d20a61a7.entry.js.map +1 -0
  364. package/dist/core/{p-492fcb51.entry.js → p-d8200098.entry.js} +2 -2
  365. package/dist/core/{p-80317cd1.entry.js → p-e0423c7e.entry.js} +2 -2
  366. package/dist/core/p-eb1823b3.entry.js +2 -0
  367. package/dist/core/p-eb1823b3.entry.js.map +1 -0
  368. package/dist/core/{p-b1838ad8.entry.js → p-ef397b6f.entry.js} +2 -2
  369. package/dist/core/p-ef397b6f.entry.js.map +1 -0
  370. package/dist/core/p-efc97f21.entry.js +2 -0
  371. package/dist/core/p-efc97f21.entry.js.map +1 -0
  372. package/dist/core/{p-b4a2f6fa.entry.js → p-f098e531.entry.js} +2 -2
  373. package/dist/core/{p-0ec76cff.entry.js → p-f247db14.entry.js} +2 -2
  374. package/dist/core/{p-813ad03c.entry.js → p-f4e2e41f.entry.js} +2 -2
  375. package/dist/core/{p-abd88929.entry.js → p-f7706ff7.entry.js} +2 -2
  376. package/dist/core/p-f7706ff7.entry.js.map +1 -0
  377. package/dist/core/{p-5fcfcfb6.entry.js → p-fb43abd6.entry.js} +2 -2
  378. package/dist/esm/core.js +1 -1
  379. package/dist/esm/{helpers-4ddac6ed.js → helpers-dcedb279.js} +5 -2
  380. package/dist/esm/helpers-dcedb279.js.map +1 -0
  381. package/dist/esm/ic-accordion-group.entry.js +1 -1
  382. package/dist/esm/ic-accordion.entry.js +1 -1
  383. package/dist/esm/ic-action-chip.entry.js +1 -1
  384. package/dist/esm/ic-alert.entry.js +6 -4
  385. package/dist/esm/ic-alert.entry.js.map +1 -1
  386. package/dist/esm/ic-back-to-top.entry.js +6 -5
  387. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  388. package/dist/esm/ic-badge.entry.js +3 -3
  389. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  390. package/dist/esm/ic-breadcrumb.entry.js +5 -4
  391. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  392. package/dist/esm/ic-button_3.entry.js +43 -19
  393. package/dist/esm/ic-button_3.entry.js.map +1 -1
  394. package/dist/esm/ic-card-vertical.entry.js +5 -5
  395. package/dist/esm/ic-checkbox-group.entry.js +9 -5
  396. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  397. package/dist/esm/ic-checkbox.entry.js +5 -5
  398. package/dist/esm/ic-chip.entry.js +4 -4
  399. package/dist/esm/ic-data-list.entry.js +2 -2
  400. package/dist/esm/ic-data-row.entry.js +3 -3
  401. package/dist/esm/ic-dialog.entry.js +39 -13
  402. package/dist/esm/ic-dialog.entry.js.map +1 -1
  403. package/dist/esm/ic-divider.entry.js +3 -2
  404. package/dist/esm/ic-divider.entry.js.map +1 -1
  405. package/dist/esm/ic-empty-state.entry.js +3 -3
  406. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  407. package/dist/esm/ic-footer-link.entry.js +3 -3
  408. package/dist/esm/ic-footer.entry.js +1 -1
  409. package/dist/esm/ic-hero.entry.js +8 -7
  410. package/dist/esm/ic-hero.entry.js.map +1 -1
  411. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  412. package/dist/esm/ic-input-component-container_3.entry.js +18 -15
  413. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  414. package/dist/esm/ic-input-label_2.entry.js +6 -6
  415. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  416. package/dist/esm/ic-layout-grid.entry.js +2 -2
  417. package/dist/esm/ic-link.entry.js +2 -2
  418. package/dist/esm/ic-menu-group.entry.js +2 -2
  419. package/dist/esm/ic-menu-item.entry.js +3 -2
  420. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  421. package/dist/esm/ic-navigation-button.entry.js +3 -3
  422. package/dist/esm/ic-navigation-group.entry.js +2 -2
  423. package/dist/esm/ic-navigation-item.entry.js +4 -4
  424. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  425. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  426. package/dist/esm/ic-page-header.entry.js +8 -8
  427. package/dist/esm/ic-page-header.entry.js.map +1 -1
  428. package/dist/esm/ic-pagination-item.entry.js +2 -2
  429. package/dist/esm/ic-pagination.entry.js +5 -5
  430. package/dist/esm/ic-popover-menu.entry.js +5 -5
  431. package/dist/esm/ic-radio-group.entry.js +5 -5
  432. package/dist/esm/ic-radio-option.entry.js +5 -5
  433. package/dist/esm/ic-search-bar.entry.js +10 -10
  434. package/dist/esm/ic-section-container.entry.js +2 -2
  435. package/dist/esm/ic-select.entry.js +20 -12
  436. package/dist/esm/ic-select.entry.js.map +1 -1
  437. package/dist/esm/ic-side-navigation.entry.js +6 -6
  438. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  439. package/dist/esm/ic-skeleton.entry.js +2 -2
  440. package/dist/esm/ic-skip-link.entry.js +2 -2
  441. package/dist/esm/ic-status-tag.entry.js +4 -4
  442. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  443. package/dist/esm/ic-step.entry.js +15 -14
  444. package/dist/esm/ic-step.entry.js.map +1 -1
  445. package/dist/esm/ic-stepper.entry.js +4 -3
  446. package/dist/esm/ic-stepper.entry.js.map +1 -1
  447. package/dist/esm/ic-switch.entry.js +5 -5
  448. package/dist/esm/ic-tab-context.entry.js +1 -1
  449. package/dist/esm/ic-tab-group.entry.js +3 -3
  450. package/dist/esm/ic-tab-panel.entry.js +2 -2
  451. package/dist/esm/ic-tab.entry.js +3 -3
  452. package/dist/esm/ic-text-field.entry.js +12 -7
  453. package/dist/esm/ic-text-field.entry.js.map +1 -1
  454. package/dist/esm/ic-theme.entry.js +2 -2
  455. package/dist/esm/ic-toast-region.entry.js +1 -1
  456. package/dist/esm/ic-toast.entry.js +8 -5
  457. package/dist/esm/ic-toast.entry.js.map +1 -1
  458. package/dist/esm/ic-toggle-button-group.entry.js +8 -4
  459. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  460. package/dist/esm/ic-toggle-button.entry.js +58 -45
  461. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  462. package/dist/esm/ic-top-navigation.entry.js +6 -6
  463. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  464. package/dist/esm/ic-typography.entry.js +3 -3
  465. package/dist/esm/loader.js +1 -1
  466. package/dist/types/components/ic-button/ic-button.d.ts +8 -2
  467. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +5 -1
  468. package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -1
  469. package/dist/types/components/ic-step/ic-step.types.d.ts +1 -0
  470. package/dist/types/components/ic-text-field/ic-text-field.d.ts +2 -4
  471. package/dist/types/components/ic-text-field/ic-text-field.types.d.ts +5 -0
  472. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +1 -0
  473. package/dist/types/components.d.ts +13 -5
  474. package/dist/types/utils/helpers.d.ts +1 -0
  475. package/dist/types/utils/types.d.ts +6 -2
  476. package/hydrate/index.js +369 -266
  477. package/hydrate/index.mjs +369 -266
  478. package/package.json +2 -2
  479. package/vscode-data.json +15 -0
  480. package/dist/cjs/helpers-478d1107.js.map +0 -1
  481. package/dist/core/p-0123dde7.entry.js +0 -2
  482. package/dist/core/p-0123dde7.entry.js.map +0 -1
  483. package/dist/core/p-02af2b59.entry.js +0 -2
  484. package/dist/core/p-02af2b59.entry.js.map +0 -1
  485. package/dist/core/p-05036675.entry.js.map +0 -1
  486. package/dist/core/p-0c36ce84.entry.js +0 -2
  487. package/dist/core/p-0c36ce84.entry.js.map +0 -1
  488. package/dist/core/p-25bef09d.entry.js +0 -2
  489. package/dist/core/p-2800fc30.entry.js +0 -2
  490. package/dist/core/p-2800fc30.entry.js.map +0 -1
  491. package/dist/core/p-33789b23.entry.js.map +0 -1
  492. package/dist/core/p-3e36f281.entry.js +0 -2
  493. package/dist/core/p-3e36f281.entry.js.map +0 -1
  494. package/dist/core/p-6058d4c9.entry.js +0 -2
  495. package/dist/core/p-6058d4c9.entry.js.map +0 -1
  496. package/dist/core/p-6e139e6e.entry.js +0 -2
  497. package/dist/core/p-6e139e6e.entry.js.map +0 -1
  498. package/dist/core/p-80e0f66e.entry.js +0 -2
  499. package/dist/core/p-80e0f66e.entry.js.map +0 -1
  500. package/dist/core/p-8b99a806.entry.js +0 -2
  501. package/dist/core/p-8b99a806.entry.js.map +0 -1
  502. package/dist/core/p-a1857d24.entry.js +0 -2
  503. package/dist/core/p-a1857d24.entry.js.map +0 -1
  504. package/dist/core/p-a1e2e029.entry.js +0 -2
  505. package/dist/core/p-a1e2e029.entry.js.map +0 -1
  506. package/dist/core/p-abd88929.entry.js.map +0 -1
  507. package/dist/core/p-b1838ad8.entry.js.map +0 -1
  508. package/dist/core/p-b57e59b7.js.map +0 -1
  509. package/dist/core/p-c2d5e301.entry.js +0 -2
  510. package/dist/core/p-c2d5e301.entry.js.map +0 -1
  511. package/dist/core/p-cf868a24.entry.js.map +0 -1
  512. package/dist/core/p-d58ad080.entry.js.map +0 -1
  513. package/dist/core/p-e9d28e02.entry.js +0 -2
  514. package/dist/core/p-e9d28e02.entry.js.map +0 -1
  515. package/dist/core/p-eb0e7153.entry.js +0 -2
  516. package/dist/core/p-eb0e7153.entry.js.map +0 -1
  517. package/dist/core/p-f609ca37.entry.js +0 -2
  518. package/dist/core/p-f609ca37.entry.js.map +0 -1
  519. package/dist/core/p-fb69fbc0.entry.js +0 -2
  520. package/dist/core/p-fb69fbc0.entry.js.map +0 -1
  521. package/dist/esm/helpers-4ddac6ed.js.map +0 -1
  522. /package/dist/core/{p-514daffe.entry.js.map → p-053ed367.entry.js.map} +0 -0
  523. /package/dist/core/{p-54803e3b.entry.js.map → p-06b3ae40.entry.js.map} +0 -0
  524. /package/dist/core/{p-95d3d1a7.entry.js.map → p-091a7fbf.entry.js.map} +0 -0
  525. /package/dist/core/{p-4747c39f.entry.js.map → p-09c31ac6.entry.js.map} +0 -0
  526. /package/dist/core/{p-01e018cb.entry.js.map → p-0b1ea961.entry.js.map} +0 -0
  527. /package/dist/core/{p-33582352.entry.js.map → p-109e7fce.entry.js.map} +0 -0
  528. /package/dist/core/{p-99793b64.entry.js.map → p-199c5ff6.entry.js.map} +0 -0
  529. /package/dist/core/{p-228bc12d.entry.js.map → p-2969b5c9.entry.js.map} +0 -0
  530. /package/dist/core/{p-c975cced.entry.js.map → p-296a41ce.entry.js.map} +0 -0
  531. /package/dist/core/{p-1423bd4a.entry.js.map → p-3785c740.entry.js.map} +0 -0
  532. /package/dist/core/{p-8684efeb.entry.js.map → p-3a94849e.entry.js.map} +0 -0
  533. /package/dist/core/{p-a06c1e4e.entry.js.map → p-3b13d191.entry.js.map} +0 -0
  534. /package/dist/core/{p-13e093d0.entry.js.map → p-411527a1.entry.js.map} +0 -0
  535. /package/dist/core/{p-de32a223.entry.js.map → p-44fbe8c2.entry.js.map} +0 -0
  536. /package/dist/core/{p-93479c36.entry.js.map → p-4637c326.entry.js.map} +0 -0
  537. /package/dist/core/{p-fb734a59.entry.js.map → p-48eb7299.entry.js.map} +0 -0
  538. /package/dist/core/{p-b0376079.entry.js.map → p-4a358f09.entry.js.map} +0 -0
  539. /package/dist/core/{p-e6dacbe2.entry.js.map → p-4bdeb62d.entry.js.map} +0 -0
  540. /package/dist/core/{p-9cf6ccfd.entry.js.map → p-5cf704e3.entry.js.map} +0 -0
  541. /package/dist/core/{p-cc00cbce.entry.js.map → p-6e61c48a.entry.js.map} +0 -0
  542. /package/dist/core/{p-37d217b5.entry.js.map → p-889bb8db.entry.js.map} +0 -0
  543. /package/dist/core/{p-c04e1fab.entry.js.map → p-8c7d6a85.entry.js.map} +0 -0
  544. /package/dist/core/{p-6dbe70f1.entry.js.map → p-911b4aa4.entry.js.map} +0 -0
  545. /package/dist/core/{p-57721431.entry.js.map → p-93e1ba0a.entry.js.map} +0 -0
  546. /package/dist/core/{p-37daa8fe.entry.js.map → p-9c2e9189.entry.js.map} +0 -0
  547. /package/dist/core/{p-8558b9b7.entry.js.map → p-a45de09d.entry.js.map} +0 -0
  548. /package/dist/core/{p-ea06792a.entry.js.map → p-a7f21494.entry.js.map} +0 -0
  549. /package/dist/core/{p-2126d37b.entry.js.map → p-ad6632a9.entry.js.map} +0 -0
  550. /package/dist/core/{p-9a8bcb78.entry.js.map → p-b00efb15.entry.js.map} +0 -0
  551. /package/dist/core/{p-25bef09d.entry.js.map → p-b29e325f.entry.js.map} +0 -0
  552. /package/dist/core/{p-b9bdd9a9.entry.js.map → p-bba25812.entry.js.map} +0 -0
  553. /package/dist/core/{p-27e67d45.entry.js.map → p-c397b33f.entry.js.map} +0 -0
  554. /package/dist/core/{p-45097448.entry.js.map → p-c4ffcc64.entry.js.map} +0 -0
  555. /package/dist/core/{p-675bb3e4.entry.js.map → p-d1cce122.entry.js.map} +0 -0
  556. /package/dist/core/{p-492fcb51.entry.js.map → p-d8200098.entry.js.map} +0 -0
  557. /package/dist/core/{p-80317cd1.entry.js.map → p-e0423c7e.entry.js.map} +0 -0
  558. /package/dist/core/{p-b4a2f6fa.entry.js.map → p-f098e531.entry.js.map} +0 -0
  559. /package/dist/core/{p-0ec76cff.entry.js.map → p-f247db14.entry.js.map} +0 -0
  560. /package/dist/core/{p-813ad03c.entry.js.map → p-f4e2e41f.entry.js.map} +0 -0
  561. /package/dist/core/{p-5fcfcfb6.entry.js.map → p-fb43abd6.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
- import { D as DEVICE_SIZES, n as getCurrentDeviceSize, c as checkResizeObserver } from './helpers.js';
2
+ import { D as DEVICE_SIZES, q as getCurrentDeviceSize, c as checkResizeObserver } from './helpers.js';
3
3
  import { d as defineCustomElement$3 } from './ic-breadcrumb2.js';
4
4
  import { d as defineCustomElement$2 } from './ic-link2.js';
5
5
 
@@ -220,11 +220,11 @@ const BreadcrumbGroup = /*@__PURE__*/ proxyCustomElement(class BreadcrumbGroup e
220
220
  }
221
221
  render() {
222
222
  const { backBreadcrumbOnly, collapsed, theme } = this;
223
- return (h(Host, { key: 'e9547e6fce74b57f2a3d7904bdca580c59abf881', class: {
223
+ return (h(Host, { key: 'c2828a2c275ac4341d26054b2de81bd93591a783', class: {
224
224
  "ic-breadcrumb-group-back": backBreadcrumbOnly,
225
225
  "ic-breadcrumb-group-collapsed": collapsed,
226
226
  [`ic-theme-${theme}`]: theme !== "inherit",
227
- } }, h("nav", { key: '56fd90771323680169a7e2ff757c534f499bda48', "aria-label": "breadcrumbs" }, h("ol", { key: '2817e0c715c94937436a41222f86a0e5e6b9cc92' }, h("slot", { key: '137e284689752e6256c39ecc19988aafd3e49942' })))));
227
+ } }, h("nav", { key: '44c0b96801da788bbfa96b138348d05214270b60', "aria-label": "breadcrumbs" }, h("ol", { key: '1f0549af4262e1f3181168dce91b7af6c6820dc3' }, h("slot", { key: '8603a718735d00643bedf8b3b3fed554234d710e' })))));
228
228
  }
229
229
  get el() { return this; }
230
230
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { c as chevronIcon } from './chevron-icon.js';
3
- import { m as getSlotElements, i as isSlotUsed } from './helpers.js';
3
+ import { n as getSlotElements, i as isSlotUsed } from './helpers.js';
4
4
  import { d as defineCustomElement$1 } from './ic-link2.js';
5
5
 
6
6
  const backIcon = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -8,7 +8,7 @@ const backIcon = `<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/
8
8
  </svg>
9
9
  `;
10
10
 
11
- const icBreadcrumbCss = ":host{display:block;margin:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}:host .breadcrumb{display:flex;align-items:center;white-space:nowrap;gap:var(--ic-space-xs);min-height:var(--ic-space-lg)}:host .chevron{width:var(--ic-space-lg);height:var(--ic-space-lg)}:host .chevron svg,:host(.ic-breadcrumb-monochrome) .chevron svg{color:var(--ic-breadcrumb-icon-chevron)}:host(:first-child) .chevron{display:none}.back-icon svg{color:var(--ic-breadcrumb-icon)}:host(.ic-breadcrumb-monochrome) .back-icon svg{color:var(--ic-breadcrumb-icon-monochrome)}:host(.ic-breadcrumb-back){display:flex;align-items:center}:host(.ic-breadcrumb-back) .chevron{display:none}ic-link{--breadcrumb-link-display:inline-flex;--breadcrumb-link-align-items:center;--breadcrumb-link-gap:var(--ic-space-xs)}:host([aria-current=\"page\"]){cursor:text}:host([aria-current=\"page\"]) .current-page-container{display:flex;align-items:center;gap:var(--ic-space-xs);color:var(--ic-breadcrumb-text)}:host([aria-current=\"page\"].ic-breadcrumb-monochrome) .current-page-container{color:var(--ic-breadcrumb-text-monochrome)}:host([aria-current=\"page\"]) slot{pointer-events:none}:host(.collapsed-breadcrumb-wrapper){margin-right:var(--ic-space-xs) !important;display:flex;align-items:center;gap:var(--ic-space-xs)}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb){border:none;background-color:transparent;color:var(--ic-color-hyperlink-default);text-decoration:underline;font-weight:var(--ic-font-weight-bold);cursor:pointer}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){outline:var(--ic-hc-focus-outline);border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none}.hide,:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide){display:none}.slotted-link-container{gap:var(--ic-space-xs);display:flex}.slotted-link-container .back-icon{width:1.5rem;height:1.5rem}.slotted-link-container .link-wrapper{line-height:1.5rem}@media (forced-colors: active){.back-icon svg{color:currentcolor}}@supports (text-underline-offset: 25%){ic-link{--breadcrumb-link-display:flex}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}";
11
+ const icBreadcrumbCss = ":host{display:block;margin:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}:host .breadcrumb{display:flex;align-items:center;white-space:nowrap;gap:var(--ic-space-xs);min-height:var(--ic-space-lg)}:host .chevron{width:var(--ic-space-lg);height:var(--ic-space-lg)}:host .chevron svg,:host(.ic-breadcrumb-monochrome) .chevron svg{color:var(--ic-breadcrumb-icon-chevron)}:host(:first-child) .chevron{display:none}.back-icon svg{color:var(--ic-breadcrumb-icon)}:host(.ic-breadcrumb-monochrome) .back-icon svg{color:var(--ic-breadcrumb-icon-monochrome)}:host(.ic-breadcrumb-back){display:flex;align-items:center}:host(.ic-breadcrumb-back) .chevron{display:none}ic-link{--breadcrumb-link-display:inline-flex;--breadcrumb-link-align-items:center;--breadcrumb-link-gap:var(--ic-space-xs)}:host(.ic-breadcrumb-aria-current-page){cursor:text}:host(.ic-breadcrumb-aria-current-page) .current-page-container{display:flex;align-items:center;gap:var(--ic-space-xs);color:var(--ic-breadcrumb-text)}:host(.ic-breadcrumb-aria-current-page).ic-breadcrumb-monochrome .current-page-container{color:var(--ic-breadcrumb-text-monochrome)}:host(.ic-breadcrumb-aria-current-page) slot{pointer-events:none}:host(.collapsed-breadcrumb-wrapper){margin-right:var(--ic-space-xs) !important;display:flex;align-items:center;gap:var(--ic-space-xs)}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb){border:none;background-color:transparent;color:var(--ic-color-hyperlink-default);text-decoration:underline;font-weight:var(--ic-font-weight-bold);cursor:pointer}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){outline:var(--ic-hc-focus-outline);border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none}.hide,:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide){display:none}.slotted-link-container{gap:var(--ic-space-xs);display:flex}.slotted-link-container .back-icon{width:1.5rem;height:1.5rem}.slotted-link-container .link-wrapper{line-height:1.5rem}@media (forced-colors: active){.back-icon svg{color:currentcolor}}@supports (text-underline-offset: 25%){ic-link{--breadcrumb-link-display:flex}:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus){text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}";
12
12
  const IcBreadcrumbStyle0 = icBreadcrumbCss;
13
13
 
14
14
  const Breadcrumb = /*@__PURE__*/ proxyCustomElement(class Breadcrumb extends HTMLElement {
@@ -97,11 +97,12 @@ const Breadcrumb = /*@__PURE__*/ proxyCustomElement(class Breadcrumb extends HTM
97
97
  render() {
98
98
  const { current, href, monochrome, pageTitle, showBackIcon, theme } = this;
99
99
  const describedById = `${pageTitle === null || pageTitle === void 0 ? void 0 : pageTitle.toLowerCase().replace(" ", "-")}-describedby`;
100
- return (h(Host, { key: '2c1131138a8be3af8ee344e0fbff5594fbcc2d77', class: {
100
+ return (h(Host, { key: '35d95efd65cb713a1b9b614aa7162a328f1fd5bd', class: {
101
101
  "ic-breadcrumb-back": showBackIcon,
102
102
  "ic-breadcrumb-monochrome": monochrome,
103
103
  [`ic-theme-${theme}`]: theme !== "inherit",
104
- }, "aria-current": current && "page", role: "listitem" }, h("div", { key: 'ee77a3aeced7063c4dbab6e1641daf11242d63ca', class: "breadcrumb" }, h("span", { key: '1c2dc66e95e0676a381ab25769aa1b735ee5b9c5', innerHTML: chevronIcon, class: "chevron", "aria-hidden": "true" }), showBackIcon && (h("span", { key: '3857c2967dd82b45a2400107e50d6f03bc65cdde', id: describedById, class: "hide" }, `Back to ${pageTitle}`)), !href ? (h("div", { class: "slotted-link-container" }, showBackIcon && this.renderBackIcon(), h("span", { class: "link-wrapper" }, h("slot", null)))) : current ? (h("span", { class: "current-page-container" }, isSlotUsed(this.el, "icon") && h("slot", { name: "icon" }), pageTitle)) : (h("ic-link", { theme: theme, monochrome: monochrome, href: href, class: "breadcrumb-link", "aria-describedby": showBackIcon && describedById }, showBackIcon && this.renderBackIcon(), isSlotUsed(this.el, "icon") && h("slot", { name: "icon" }), pageTitle)))));
104
+ [`ic-breadcrumb-aria-current-page`]: current,
105
+ }, "aria-current": current && "page", role: "listitem" }, h("div", { key: '126bfcb069004244fc0beb4b3f5e3dab652a4057', class: "breadcrumb" }, h("span", { key: '24c4bd1741b5a65b8d348280bd3c680db15edcfc', innerHTML: chevronIcon, class: "chevron", "aria-hidden": "true" }), showBackIcon && (h("span", { key: '501ae0ebd6ce1b77026ab8c447f59abf00db7c73', id: describedById, class: "hide" }, `Back to ${pageTitle}`)), !href ? (h("div", { class: "slotted-link-container" }, showBackIcon && this.renderBackIcon(), h("span", { class: "link-wrapper" }, h("slot", null)))) : current ? (h("span", { class: "current-page-container" }, isSlotUsed(this.el, "icon") && h("slot", { name: "icon" }), pageTitle)) : (h("ic-link", { theme: theme, monochrome: monochrome, href: href, class: "breadcrumb-link", "aria-describedby": showBackIcon && describedById }, showBackIcon && this.renderBackIcon(), isSlotUsed(this.el, "icon") && h("slot", { name: "icon" }), pageTitle)))));
105
106
  }
106
107
  static get delegatesFocus() { return true; }
107
108
  get el() { return this; }
@@ -1 +1 @@
1
- {"file":"ic-breadcrumb2.js","mappings":"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","names":[],"sources":["src/components/ic-breadcrumb/ic-breadcrumb.css?tag=ic-breadcrumb&encapsulation=shadow","src/components/ic-breadcrumb/ic-breadcrumb.tsx"],"sourcesContent":[":host {\n display: block;\n margin: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n:host .breadcrumb {\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: var(--ic-space-xs);\n min-height: var(--ic-space-lg);\n}\n\n:host .chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host .chevron svg,\n:host(.ic-breadcrumb-monochrome) .chevron svg {\n color: var(--ic-breadcrumb-icon-chevron);\n}\n\n:host(:first-child) .chevron {\n display: none;\n}\n\n.back-icon svg {\n color: var(--ic-breadcrumb-icon);\n}\n\n:host(.ic-breadcrumb-monochrome) .back-icon svg {\n color: var(--ic-breadcrumb-icon-monochrome);\n}\n\n:host(.ic-breadcrumb-back) {\n display: flex;\n align-items: center;\n}\n\n:host(.ic-breadcrumb-back) .chevron {\n display: none;\n}\n\nic-link {\n --breadcrumb-link-display: inline-flex;\n --breadcrumb-link-align-items: center;\n --breadcrumb-link-gap: var(--ic-space-xs);\n}\n\n:host([aria-current=\"page\"]) {\n cursor: text;\n}\n\n:host([aria-current=\"page\"]) .current-page-container {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n color: var(--ic-breadcrumb-text);\n}\n\n:host([aria-current=\"page\"].ic-breadcrumb-monochrome) .current-page-container {\n color: var(--ic-breadcrumb-text-monochrome);\n}\n\n:host([aria-current=\"page\"]) slot {\n pointer-events: none;\n}\n\n:host(.collapsed-breadcrumb-wrapper) {\n margin-right: var(--ic-space-xs) !important;\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb) {\n border: none;\n background-color: transparent;\n color: var(--ic-color-hyperlink-default);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n cursor: pointer;\n}\n\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus) {\n outline: var(--ic-hc-focus-outline);\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.hide,\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide) {\n display: none;\n}\n\n.slotted-link-container {\n gap: var(--ic-space-xs);\n display: flex;\n}\n\n.slotted-link-container .back-icon {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.slotted-link-container .link-wrapper {\n line-height: 1.5rem;\n}\n\n@media (forced-colors: active) {\n .back-icon svg {\n color: currentcolor;\n }\n}\n\n@supports (text-underline-offset: 25%) {\n ic-link {\n --breadcrumb-link-display: flex;\n }\n\n :host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),\n :host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus) {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n","import {\n Component,\n Host,\n Prop,\n h,\n Element,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport backIcon from \"../../assets/back-icon.svg\";\nimport { getSlotElements, isSlotUsed } from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered to the left of the breadcrumb page title.\n */\n@Component({\n tag: \"ic-breadcrumb\",\n styleUrl: \"ic-breadcrumb.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Breadcrumb {\n private HREF_ATTR = \"href\";\n private linkSlotContent: HTMLElement | null = null;\n private slottedLinkEl: HTMLElement | null = null;\n private slottedLinkHref: string | null = null;\n\n @Element() el: HTMLIcBreadcrumbElement;\n\n /**\n * If `true`, aria-current will be set on the breadcrumb.\n */\n @Prop() current = false;\n @Watch(\"current\")\n watchCurrentHandler(): void {\n this.updatedSlottedLinkFocus();\n this.el.ariaCurrent = this.current ? \"page\" : null;\n }\n\n /**\n * The URL that the breadcrumb link points to.\n */\n @Prop() href?: string;\n\n /**\n * @internal If `true`, the breadcrumb will display as black in the light theme, and white in the dark theme.\n */\n @Prop() monochrome = false;\n\n /**\n * The title of the breadcrumb.\n */\n @Prop() pageTitle!: string;\n\n /**\n * @internal If `true`, back icon will be displayed.\n */\n @Prop({ reflect: true }) showBackIcon = false;\n\n /**\n * @internal 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 // Prevent focus on breadcrumb if current page and contains slotted link\n private updatedSlottedLinkFocus = () => {\n // Sets tabindex on wrong element in unit test snapshots\n // - related to known Jest issue: https://github.com/ionic-team/stencil/issues/2830\n if (this.linkSlotContent) {\n this.linkSlotContent.tabIndex = this.current ? -1 : 0; // Prevent focus\n }\n\n if (this.current) {\n this.slottedLinkEl?.removeAttribute(this.HREF_ATTR); // Prevent screen reader announcing breadcrumb as a link\n } else if (this.slottedLinkHref) {\n this.slottedLinkEl?.setAttribute(this.HREF_ATTR, this.slottedLinkHref);\n }\n };\n\n private getSlottedLinkEl = () => {\n if (!this.linkSlotContent) return null;\n\n return this.linkSlotContent.hasAttribute(this.HREF_ATTR)\n ? this.linkSlotContent\n : this.linkSlotContent.querySelector<HTMLElement>(\"[href]\");\n };\n\n componentDidLoad(): void {\n const slottedLinkWrapper =\n this.el.shadowRoot?.querySelector(\".link-wrapper\");\n\n if (slottedLinkWrapper) {\n const slotEls = getSlotElements(slottedLinkWrapper);\n if (slotEls) {\n this.linkSlotContent = slotEls[0] as HTMLElement;\n this.slottedLinkEl = this.getSlottedLinkEl();\n this.slottedLinkHref = this.slottedLinkEl?.getAttribute(\"href\") || null;\n }\n this.updatedSlottedLinkFocus();\n }\n }\n\n componentWillRender(): void {\n const icLink = this.el.querySelector(\"ic-link\");\n if (icLink) {\n const CURRENT_PAGE = \"current-page\";\n icLink.classList.remove(CURRENT_PAGE);\n\n if (this.current && !icLink.classList.contains(CURRENT_PAGE)) {\n icLink.classList.add(\"breadcrumb-link\", CURRENT_PAGE);\n }\n }\n }\n\n /**\n * Sets focus on the breadcrumb.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot?.querySelector(\"ic-link\")?.focus();\n }\n\n private renderBackIcon = () => (\n <div class=\"back-icon\" innerHTML={backIcon}></div>\n );\n\n render() {\n const { current, href, monochrome, pageTitle, showBackIcon, theme } = this;\n const describedById = `${pageTitle\n ?.toLowerCase()\n .replace(\" \", \"-\")}-describedby`;\n\n return (\n <Host\n class={{\n \"ic-breadcrumb-back\": showBackIcon,\n \"ic-breadcrumb-monochrome\": monochrome,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-current={current && \"page\"}\n role=\"listitem\"\n >\n <div class=\"breadcrumb\">\n <span innerHTML={chevronIcon} class=\"chevron\" aria-hidden=\"true\" />\n {showBackIcon && (\n <span\n id={describedById}\n class=\"hide\"\n >{`Back to ${pageTitle}`}</span>\n )}\n {!href ? (\n <div class=\"slotted-link-container\">\n {showBackIcon && this.renderBackIcon()}\n <span class=\"link-wrapper\">\n <slot />\n </span>\n </div>\n ) : current ? (\n <span class=\"current-page-container\">\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </span>\n ) : (\n <ic-link\n theme={theme}\n monochrome={monochrome}\n href={href}\n class=\"breadcrumb-link\"\n aria-describedby={showBackIcon && describedById}\n >\n {showBackIcon && this.renderBackIcon()}\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </ic-link>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-breadcrumb2.js","mappings":"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","names":[],"sources":["src/components/ic-breadcrumb/ic-breadcrumb.css?tag=ic-breadcrumb&encapsulation=shadow","src/components/ic-breadcrumb/ic-breadcrumb.tsx"],"sourcesContent":[":host {\n display: block;\n margin: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n:host .breadcrumb {\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: var(--ic-space-xs);\n min-height: var(--ic-space-lg);\n}\n\n:host .chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host .chevron svg,\n:host(.ic-breadcrumb-monochrome) .chevron svg {\n color: var(--ic-breadcrumb-icon-chevron);\n}\n\n:host(:first-child) .chevron {\n display: none;\n}\n\n.back-icon svg {\n color: var(--ic-breadcrumb-icon);\n}\n\n:host(.ic-breadcrumb-monochrome) .back-icon svg {\n color: var(--ic-breadcrumb-icon-monochrome);\n}\n\n:host(.ic-breadcrumb-back) {\n display: flex;\n align-items: center;\n}\n\n:host(.ic-breadcrumb-back) .chevron {\n display: none;\n}\n\nic-link {\n --breadcrumb-link-display: inline-flex;\n --breadcrumb-link-align-items: center;\n --breadcrumb-link-gap: var(--ic-space-xs);\n}\n\n:host(.ic-breadcrumb-aria-current-page) {\n cursor: text;\n}\n\n:host(.ic-breadcrumb-aria-current-page) .current-page-container {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n color: var(--ic-breadcrumb-text);\n}\n\n:host(.ic-breadcrumb-aria-current-page).ic-breadcrumb-monochrome\n .current-page-container {\n color: var(--ic-breadcrumb-text-monochrome);\n}\n\n:host(.ic-breadcrumb-aria-current-page) slot {\n pointer-events: none;\n}\n\n:host(.collapsed-breadcrumb-wrapper) {\n margin-right: var(--ic-space-xs) !important;\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\n}\n\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb) {\n border: none;\n background-color: transparent;\n color: var(--ic-color-hyperlink-default);\n text-decoration: underline;\n font-weight: var(--ic-font-weight-bold);\n cursor: pointer;\n}\n\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus) {\n outline: var(--ic-hc-focus-outline);\n border-bottom: 0.25rem solid !important;\n margin-bottom: -0.25rem !important;\n text-decoration: none;\n}\n\n.hide,\n:host(.collapsed-breadcrumb-wrapper) ::slotted(.hide) {\n display: none;\n}\n\n.slotted-link-container {\n gap: var(--ic-space-xs);\n display: flex;\n}\n\n.slotted-link-container .back-icon {\n width: 1.5rem;\n height: 1.5rem;\n}\n\n.slotted-link-container .link-wrapper {\n line-height: 1.5rem;\n}\n\n@media (forced-colors: active) {\n .back-icon svg {\n color: currentcolor;\n }\n}\n\n@supports (text-underline-offset: 25%) {\n ic-link {\n --breadcrumb-link-display: flex;\n }\n\n :host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:hover),\n :host(.collapsed-breadcrumb-wrapper) ::slotted(.collapsed-breadcrumb:focus) {\n text-decoration-line: underline;\n text-decoration-thickness: 25%;\n text-underline-offset: 25%;\n border-bottom: 0 !important;\n margin-bottom: 0 !important;\n }\n}\n","import {\n Component,\n Host,\n Prop,\n h,\n Element,\n Method,\n Watch,\n} from \"@stencil/core\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport backIcon from \"../../assets/back-icon.svg\";\nimport { getSlotElements, isSlotUsed } from \"../../utils/helpers\";\nimport { IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot icon - Content will be rendered to the left of the breadcrumb page title.\n */\n@Component({\n tag: \"ic-breadcrumb\",\n styleUrl: \"ic-breadcrumb.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Breadcrumb {\n private HREF_ATTR = \"href\";\n private linkSlotContent: HTMLElement | null = null;\n private slottedLinkEl: HTMLElement | null = null;\n private slottedLinkHref: string | null = null;\n\n @Element() el: HTMLIcBreadcrumbElement;\n\n /**\n * If `true`, aria-current will be set on the breadcrumb.\n */\n @Prop() current = false;\n @Watch(\"current\")\n watchCurrentHandler(): void {\n this.updatedSlottedLinkFocus();\n this.el.ariaCurrent = this.current ? \"page\" : null;\n }\n\n /**\n * The URL that the breadcrumb link points to.\n */\n @Prop() href?: string;\n\n /**\n * @internal If `true`, the breadcrumb will display as black in the light theme, and white in the dark theme.\n */\n @Prop() monochrome = false;\n\n /**\n * The title of the breadcrumb.\n */\n @Prop() pageTitle!: string;\n\n /**\n * @internal If `true`, back icon will be displayed.\n */\n @Prop({ reflect: true }) showBackIcon = false;\n\n /**\n * @internal 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 // Prevent focus on breadcrumb if current page and contains slotted link\n private updatedSlottedLinkFocus = () => {\n // Sets tabindex on wrong element in unit test snapshots\n // - related to known Jest issue: https://github.com/ionic-team/stencil/issues/2830\n if (this.linkSlotContent) {\n this.linkSlotContent.tabIndex = this.current ? -1 : 0; // Prevent focus\n }\n\n if (this.current) {\n this.slottedLinkEl?.removeAttribute(this.HREF_ATTR); // Prevent screen reader announcing breadcrumb as a link\n } else if (this.slottedLinkHref) {\n this.slottedLinkEl?.setAttribute(this.HREF_ATTR, this.slottedLinkHref);\n }\n };\n\n private getSlottedLinkEl = () => {\n if (!this.linkSlotContent) return null;\n\n return this.linkSlotContent.hasAttribute(this.HREF_ATTR)\n ? this.linkSlotContent\n : this.linkSlotContent.querySelector<HTMLElement>(\"[href]\");\n };\n\n componentDidLoad(): void {\n const slottedLinkWrapper =\n this.el.shadowRoot?.querySelector(\".link-wrapper\");\n\n if (slottedLinkWrapper) {\n const slotEls = getSlotElements(slottedLinkWrapper);\n if (slotEls) {\n this.linkSlotContent = slotEls[0] as HTMLElement;\n this.slottedLinkEl = this.getSlottedLinkEl();\n this.slottedLinkHref = this.slottedLinkEl?.getAttribute(\"href\") || null;\n }\n this.updatedSlottedLinkFocus();\n }\n }\n\n componentWillRender(): void {\n const icLink = this.el.querySelector(\"ic-link\");\n if (icLink) {\n const CURRENT_PAGE = \"current-page\";\n icLink.classList.remove(CURRENT_PAGE);\n\n if (this.current && !icLink.classList.contains(CURRENT_PAGE)) {\n icLink.classList.add(\"breadcrumb-link\", CURRENT_PAGE);\n }\n }\n }\n\n /**\n * Sets focus on the breadcrumb.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.el.shadowRoot?.querySelector(\"ic-link\")?.focus();\n }\n\n private renderBackIcon = () => (\n <div class=\"back-icon\" innerHTML={backIcon}></div>\n );\n\n render() {\n const { current, href, monochrome, pageTitle, showBackIcon, theme } = this;\n const describedById = `${pageTitle\n ?.toLowerCase()\n .replace(\" \", \"-\")}-describedby`;\n\n return (\n <Host\n class={{\n \"ic-breadcrumb-back\": showBackIcon,\n \"ic-breadcrumb-monochrome\": monochrome,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n [`ic-breadcrumb-aria-current-page`]: current,\n }}\n aria-current={current && \"page\"}\n role=\"listitem\"\n >\n <div class=\"breadcrumb\">\n <span innerHTML={chevronIcon} class=\"chevron\" aria-hidden=\"true\" />\n {showBackIcon && (\n <span\n id={describedById}\n class=\"hide\"\n >{`Back to ${pageTitle}`}</span>\n )}\n {!href ? (\n <div class=\"slotted-link-container\">\n {showBackIcon && this.renderBackIcon()}\n <span class=\"link-wrapper\">\n <slot />\n </span>\n </div>\n ) : current ? (\n <span class=\"current-page-container\">\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </span>\n ) : (\n <ic-link\n theme={theme}\n monochrome={monochrome}\n href={href}\n class=\"breadcrumb-link\"\n aria-describedby={showBackIcon && describedById}\n >\n {showBackIcon && this.renderBackIcon()}\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </ic-link>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -40,7 +40,6 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
40
40
  this.mutationObserver = null;
41
41
  this.hostMutationObserver = null;
42
42
  this.ariaLabel = "";
43
- this.describedByContent = "";
44
43
  this.title = "";
45
44
  /**
46
45
  * If `fileUpload` is set to `true`, this is the accepted list of file types.
@@ -141,11 +140,31 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
141
140
  this.icBlur.emit();
142
141
  };
143
142
  /**
144
- * Triggered when text content of sibling element in light DOM changes
143
+ * Creates/updates clone of aria-describedby element node tree in shadow dom
144
+ * Required due to ids being scoped to the shadow dom
145
+ */
146
+ this.updateAriaDescribedbyClone = () => {
147
+ var _a, _b;
148
+ if (this.describedbyNode) {
149
+ const wrapper = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("#describedby-wrapper");
150
+ if (!wrapper) {
151
+ (_b = this.el.shadowRoot) === null || _b === void 0 ? void 0 : _b.appendChild(Object.assign(document.createElement("div"), {
152
+ id: "describedby-wrapper",
153
+ className: "ic-button-describedby",
154
+ }));
155
+ }
156
+ while (wrapper === null || wrapper === void 0 ? void 0 : wrapper.firstChild)
157
+ wrapper.firstChild.remove();
158
+ wrapper === null || wrapper === void 0 ? void 0 : wrapper.appendChild(this.describedbyNode);
159
+ }
160
+ };
161
+ /**
162
+ * Triggered when light dom aria-describedby element updates
145
163
  */
146
164
  this.mutationCallback = () => {
147
165
  var _a;
148
- this.describedByContent = (_a = this.describedbyEl) === null || _a === void 0 ? void 0 : _a.innerText;
166
+ if (this.describedbyEl)
167
+ this.describedbyNode = (_a = this.describedbyEl) === null || _a === void 0 ? void 0 : _a.cloneNode(true);
149
168
  };
150
169
  /**
151
170
  * Triggered when attributes of host element change
@@ -234,6 +253,9 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
234
253
  }
235
254
  };
236
255
  }
256
+ watchDescribedbyNodeHandler() {
257
+ this.updateAriaDescribedbyClone();
258
+ }
237
259
  watchDisabledHandler() {
238
260
  removeDisabledFalse(this.disabled, this.el);
239
261
  }
@@ -253,8 +275,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
253
275
  this.setHasTooltip();
254
276
  }
255
277
  componentWillLoad() {
256
- var _a;
257
- const _b = inheritAttributes(this.el, [...IC_INHERITED_ARIA, "title"]), { title, "aria-label": ariaLabel } = _b, restInheritedAttributes = __rest(_b, ["title", "aria-label"]);
278
+ const _a = inheritAttributes(this.el, [...IC_INHERITED_ARIA, "title"]), { title, "aria-label": ariaLabel } = _a, restInheritedAttributes = __rest(_a, ["title", "aria-label"]);
258
279
  this.title = title;
259
280
  this.ariaLabel = ariaLabel;
260
281
  this.inheritedAttributes = restInheritedAttributes;
@@ -266,10 +287,10 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
266
287
  const describedById = this.inheritedAttributes["aria-describedby"];
267
288
  if (describedById) {
268
289
  this.describedById = describedById;
269
- const el = (_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector(`#${describedById}`);
290
+ const el = document.querySelector(`#${describedById}`);
270
291
  if (el) {
271
- this.describedByContent = el.innerText;
272
292
  this.describedbyEl = el;
293
+ this.describedbyNode = el.cloneNode(true);
273
294
  }
274
295
  }
275
296
  }
@@ -295,6 +316,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
295
316
  if (this.hasRouterSlot())
296
317
  this.arrangeRouterItem();
297
318
  }
319
+ this.updateAriaDescribedbyClone();
298
320
  }
299
321
  componentWillRender() {
300
322
  const iconEl = this.getSlottedIcon("left") || this.getSlottedIcon("right");
@@ -350,7 +372,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
350
372
  }
351
373
  }
352
374
  render() {
353
- const { ariaControlsId, ariaLabel, ariaOwnsId, buttonIdNum, describedByContent, describedById, disabled, download, dropdown, dropdownExpanded, form, formaction, formenctype, formmethod, formnovalidate, formtarget, fullWidth, handleClick, handleKeyDown, hasTooltip, href, hreflang, id, inheritedAttributes, isIconVariant, loading, monochrome, onBlur, onFocus, referrerpolicy, rel, size, target, theme, title, tooltipFixedPositioning, tooltipPlacement, transparentBackground, type, variant, } = this;
375
+ const { ariaControlsId, ariaLabel, ariaOwnsId, buttonIdNum, describedById, disabled, download, dropdown, dropdownExpanded, form, formaction, formenctype, formmethod, formnovalidate, formtarget, fullWidth, handleClick, handleKeyDown, hasTooltip, href, hreflang, id, inheritedAttributes, isIconVariant, loading, monochrome, onBlur, onFocus, referrerpolicy, rel, size, target, theme, title, tooltipFixedPositioning, tooltipPlacement, transparentBackground, type, variant, } = this;
354
376
  const TagType = href ? "a" : "button";
355
377
  const buttonAttrs = TagType === "button"
356
378
  ? {
@@ -384,7 +406,7 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
384
406
  variant !== "destructive" && (h("span", { class: dropdownExpanded
385
407
  ? "dropdown-expanded"
386
408
  : "arrow-dropdown", innerHTML: arrowDropdown }))))));
387
- return (h(Host, { key: '1f58739b62e290b1b86fa82c9153e04711196367', class: {
409
+ return (h(Host, { key: '4e15c7ddb5f7d220f52848c36fc9b26932daeb8e', class: {
388
410
  "ic-button-disabled": disabled && !loading,
389
411
  "ic-button-full-width": fullWidth,
390
412
  "ic-button-loading": loading,
@@ -400,11 +422,12 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
400
422
  monochrome,
401
423
  "top-icon": isSlotUsed(this.el, "top-icon"),
402
424
  "with-badge": isSlotUsed(this.el, "badge"),
403
- }, onClick: handleClick, onKeyDown: handleKeyDown, "aria-owns": ariaOwnsId, "aria-controls": ariaControlsId, "aria-expanded": dropdown && `${dropdownExpanded}` }, hasTooltip && (h("ic-tooltip", { key: 'fa067eeedb2f960436c693a0d8978a46eea9cc68', id: describedby, label: title || ariaLabel, target: buttonId, placement: tooltipPlacement, fixedPositioning: tooltipFixedPositioning, silent: isIconVariant() && !!ariaLabel }, h(ButtonContent, { key: 'a3565789687668d376a8c6e6044a0c3b1e864532' }))), isSlotUsed(this.el, "badge") && h("slot", { key: '1bacc47dfc65cce6880600906512a9262b6773cc', name: "badge" }), !hasTooltip && h(ButtonContent, { key: 'd00dc87862ffc939fc5c8341c686dddbc642eb02' }), describedByContent && (h("span", { key: '1d25a9c513d23e6a23e2e1d81ad036d1df47363c', id: describedby, class: "ic-button-describedby" }, describedByContent))));
425
+ }, onClick: handleClick, onKeyDown: handleKeyDown, "aria-owns": ariaOwnsId, "aria-controls": ariaControlsId, "aria-expanded": dropdown && `${dropdownExpanded}` }, hasTooltip && (h("ic-tooltip", { key: 'a6b3305c993a950f41b2cc44812a35239b4ef717', id: describedby, label: title || ariaLabel, target: buttonId, placement: tooltipPlacement, fixedPositioning: tooltipFixedPositioning, silent: isIconVariant() && !!ariaLabel }, h(ButtonContent, { key: '146f8c894991641b88313d8947c5ac4e1d204049' }))), isSlotUsed(this.el, "badge") && h("slot", { key: '4aede0d2f30748690130dfba00612b3adc859c10', name: "badge" }), !hasTooltip && h(ButtonContent, { key: 'bf1fd18f9c47ea1199babace3584855499a2776c' })));
404
426
  }
405
427
  static get delegatesFocus() { return true; }
406
428
  get el() { return this; }
407
429
  static get watchers() { return {
430
+ "describedbyNode": ["watchDescribedbyNodeHandler"],
408
431
  "disabled": ["watchDisabledHandler"],
409
432
  "variant": ["watchVariantHandler"]
410
433
  }; }
@@ -444,10 +467,11 @@ const Button = /*@__PURE__*/ proxyCustomElement(class Button extends HTMLElement
444
467
  "type": [1],
445
468
  "variant": [1025],
446
469
  "ariaLabel": [32],
447
- "describedByContent": [32],
470
+ "describedbyNode": [32],
448
471
  "title": [32],
449
472
  "setFocus": [64]
450
473
  }, [[2, "click", "handleHostClick"], [4, "brandChange", "brandChangeHandler"]], {
474
+ "describedbyNode": ["watchDescribedbyNodeHandler"],
451
475
  "disabled": ["watchDisabledHandler"],
452
476
  "variant": ["watchVariantHandler"]
453
477
  }]);
@@ -1 +1 @@
1
- {"file":"ic-button2.js","mappings":"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","names":[],"sources":["src/components/ic-button/ic-button.css?tag=ic-button&encapsulation=shadow","src/components/ic-button/ic-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n* @prop --min-width: Minimum width of the button.\n* @prop --height: The height of the button.\n*/\n\n:host {\n display: inline-block;\n position: relative;\n\n --icon-width: 100%;\n --icon-height: 100%;\n}\n\n.button,\n::slotted(a) {\n font-family: var(--ic-font-body-family);\n text-decoration: none;\n font-weight: 600;\n font-size: 0.875rem;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n min-width: var(--min-width, 6.25rem);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n:host(.with-badge) .button {\n border-radius: 0.2188rem;\n}\n\n.button:hover,\n::slotted(a:hover) {\n cursor: pointer;\n}\n\n.button:focus,\n::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n.button:focus-visible,\n::slotted(a:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-button-disabled),\n:host(.ic-button-disabled) .button,\n:host(.ic-button-disabled) ::slotted(a),\n:host(.ic-button-loading),\n:host(.ic-button-loading) .button {\n pointer-events: none;\n}\n\n:host(.top-icon) .button {\n flex-direction: column;\n\n --height: fit-content;\n}\n\n:host(.top-icon) .button .icon-container {\n margin-right: 0;\n}\n\n/* Variants */\n\n/* Primary */\n\n:host(.ic-button-variant-primary) .button,\n:host(.ic-button-variant-icon-primary) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background);\n}\n\n:host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a),\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n --ic-typography-color: var(--ic-button-primary-text);\n\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background) !important;\n}\n\n:host(.ic-button-variant-primary) .button:hover,\n:host(.ic-button-variant-icon-primary) .button:hover {\n background-color: var(--ic-button-primary-background-hover);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary) ::slotted(a:hover) {\n background-color: var(--ic-button-primary-background-hover) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading) .button,\n:host(.ic-button-variant-primary) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-primary) .button:active {\n background-color: var(--ic-button-primary-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-primary-background-pressed);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary) ::slotted(a:active) {\n background-color: var(--ic-button-primary-background-pressed) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled) .button {\n background: var(--ic-button-primary-background-disabled);\n color: var(--ic-button-primary-text-disabled);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled) ::slotted(a) {\n background: var(--ic-button-primary-background-disabled) !important;\n\n --ic-typography-color: var(--ic-button-primary-text-disabled) !important;\n\n color: var(--ic-button-primary-text-disabled) !important;\n}\n\n/* Primary - monochrome */\n\n:host(.ic-button-variant-primary.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button {\n color: var(--ic-button-primary-text-monochrome);\n background-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a) {\n background-color: var(--ic-button-primary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-primary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-primary.monochrome) .button:hover {\n background-color: var(--ic-button-primary-background-hover-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-primary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button:active {\n background-color: var(--ic-button-primary-background-pressed-monochrome);\n\n --button-loading-inner-color: var(--ic-button-primary-text-monochrome);\n --button-loading-outer-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-primary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome) .button {\n background-color: var(--ic-button-primary-background-disabled-monochrome);\n color: var(--ic-button-primary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background-color: var(\n --ic-button-primary-background-disabled-monochrome\n ) !important;\n}\n\n/* Secondary */\n\n:host(.ic-button-variant-secondary) .button,\n:host(.ic-button-variant-icon-secondary) .button {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border);\n color: var(--ic-button-secondary-text);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a),\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border) !important;\n color: var(--ic-button-secondary-text) !important;\n\n --ic-typography-color: var(--ic-button-secondary-text) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:hover,\n:host(.ic-button-variant-icon-secondary) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-active);\n border-color: var(--ic-button-secondary-border-hover);\n color: var(--ic-button-secondary-text-hover-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:active,\n:host(.ic-button-variant-icon-secondary) .button:active {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(--ic-button-secondary-background-pressed-active);\n color: var(--ic-button-secondary-text-pressed-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading) .button {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(\n --loading-button-background,\n var(--ic-button-secondary-background-pressed-active)\n ) !important;\n color: var(--ic-button-secondary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-secondary-border-pressed);\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-active\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) .button {\n border-color: var(--ic-button-secondary-border-disabled);\n color: var(--ic-button-secondary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background */\n\n:host(.ic-button-variant-secondary.background) .button,\n:host(.ic-button-variant-icon-secondary.background) .button {\n background-color: var(--ic-button-secondary-background);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a) {\n background-color: var(--ic-button-secondary-background) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:hover,\n:host(.ic-button-variant-icon-secondary.background) .button:hover {\n background-image: var(--ic-button-secondary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:active,\n:host(.ic-button-variant-icon-secondary.background) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n );\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n ) !important;\n}\n\n/* Secondary - monochrome */\n\n:host(.ic-button-variant-secondary.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.monochrome) .button {\n background-color: none;\n border: var(--ic-border-width) solid\n var(--ic-button-secondary-border-monochrome);\n color: var(--ic-button-secondary-text-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a) {\n background-color: none !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-monochrome);\n border-color: var(--ic-button-secondary-border-hover-monochrome);\n color: var(--ic-button-secondary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:active {\n background-color: var(--ic-button-secondary-background-pressed-monochrome);\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading.monochrome) .button {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-secondary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome) .button {\n background: none;\n border-color: var(--ic-button-secondary-border-disabled-monochrome);\n color: var(--ic-button-secondary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-secondary.background.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button {\n background-color: var(--ic-button-secondary-background-monochrome);\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-secondary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Tertiary */\n\n:host(.ic-button-variant-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-tertiary) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n color: var(--ic-button-tertiary-text-active);\n\n --ic-typography-color: var(--ic-button-tertiary-text-active);\n}\n\n:host(.ic-button-variant-tertiary) .button:hover,\n:host(.ic-button-variant-icon-tertiary) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-active);\n color: var(--ic-button-tertiary-text-hover-active);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-tertiary) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading) .button {\n background-color: var(--ic-button-tertiary-background-pressed-active);\n color: var(--ic-button-tertiary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-tertiary-text-pressed-active);\n --button-loading-outer-color: var(--ic-button-tertiary-background-pressed);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) .button {\n color: var(--ic-button-tertiary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background */\n\n:host(.ic-button-variant-tertiary.background) .button,\n:host(.ic-button-variant-icon-tertiary.background) .button {\n background-color: var(--ic-button-tertiary-background);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background) .button:hover {\n background-image: var(--ic-button-tertiary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:active,\n:host(.ic-button-variant-icon-tertiary.background) .button:active {\n background-image: var(--ic-button-tertiary-background-non-transparent-active);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-active\n ) !important;\n}\n\n/* Tertiary - monochrome */\n\n:host(.ic-button-variant-tertiary.monochrome) .button,\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a) {\n color: var(--ic-button-tertiary-text-monochrome);\n\n --ic-typography-color: var(--ic-button-tertiary-text-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-monochrome);\n color: var(--ic-button-tertiary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-pressed-monochrome);\n color: var(--ic-button-tertiary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-tertiary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome) .button {\n color: var(--ic-button-tertiary-text-disabled-monochrome);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Destructive */\n\n:host(.ic-button-variant-destructive) .button,\n:host(.ic-button-variant-icon-destructive) .button {\n color: var(--ic-button-destructive-text);\n background-color: var(--ic-button-destructive-background);\n text-transform: uppercase;\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a),\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n color: var(--ic-button-destructive-text) !important;\n\n --ic-typography-color: var(--ic-button-destructive-text) !important;\n\n background-color: var(--ic-button-destructive-background) !important;\n text-transform: uppercase !important;\n}\n\n:host(.ic-button-variant-destructive) .button:hover,\n:host(.ic-button-variant-icon-destructive) .button:hover {\n background-color: var(--ic-button-destructive-background-hover);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:hover),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:hover) {\n background-color: var(--ic-button-destructive-background-hover) !important;\n}\n\n:host(.ic-button-variant-destructive) .button:active,\n:host(.ic-button-variant-destructive.ic-button-loading) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-loading) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-destructive-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-destructive-background-pressed);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:active),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:active) {\n background-color: var(--ic-button-destructive-background-pressed) !important;\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) .button {\n background-color: var(--ic-button-destructive-background-disabled);\n color: var(--ic-button-destructive-text-disabled);\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) ::slotted(a) {\n background-color: var(--ic-button-destructive-background-disabled) !important;\n}\n\n/***********************\n Icon Variants\n ***********************/\n\n/* Icon */\n\n:host(.ic-button-variant-icon) .button {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a) {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background) !important;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.ic-button-variant-icon) .button:hover {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:hover) {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover) !important;\n}\n\n:host(.ic-button-variant-icon) .button:active:not(:focus),\n:host(.ic-button-variant-icon.ic-button-loading) .button {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:active:not(:focus)) {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active) !important;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) .button {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none !important;\n}\n\n/* Icon-primary */\n\n:host(.ic-button-variant-icon-primary) .button,\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-icon-primary.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome:not(.ic-button-disabled))\n ::slotted(svg) {\n color: var(--ic-button-primary-icon-monochrome);\n}\n\n:host(.ic-button-variant-icon-primary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: var(--ic-button-icon-monochrome);\n}\n\n/* Icon-secondary */\n\n:host(.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-secondary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-tertiary */\n\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-tertiary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-destructive */\n\n:host(.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-destructive) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Sizing */\n\n:host(.ic-button-size-medium) .button {\n height: var(--height, 2.5rem);\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-medium) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n padding: var(--ic-space-xs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-small) .button {\n height: var(--height, var(--ic-space-xl));\n padding: var(--ic-space-xxs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-small) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n padding: var(--ic-space-xxs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-large) .button {\n height: var(--height, var(--ic-space-xxl));\n padding: var(--ic-space-sm) var(--ic-space-md);\n}\n\n:host(.ic-button-size-large) ::slotted(a) {\n height: var(--height, var(--ic-space-xxl)) !important;\n padding: var(--ic-space-sm) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-xl));\n width: var(--ic-space-xl);\n padding: 0.375rem;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n width: var(--ic-space-xl) !important;\n padding: 0.375rem !important;\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-lg));\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxs);\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, var(--ic-space-lg)) !important;\n width: var(--ic-space-lg) !important;\n padding: var(--ic-space-xxs) !important;\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button {\n height: var(--height, 2.5rem);\n width: 2.5rem;\n padding: var(--ic-space-xs);\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n width: 2.5rem !important;\n padding: var(--ic-space-xs) !important;\n}\n\n/* Width */\n:host(.ic-button-full-width),\n:host(.ic-button-full-width) .button {\n width: 100%;\n}\n\n:host(.ic-button-full-width) ::slotted(a) {\n width: 100% !important;\n}\n\n/* Loading */\n\ndiv.loading-container {\n position: relative;\n align-items: center;\n width: 100%;\n}\n\nic-loading-indicator {\n --inner-color: var(--button-loading-inner-color);\n --outer-color: var(--button-loading-outer-color), transparent;\n}\n\n@keyframes loading-animation {\n 0% {\n width: 0%;\n left: 0%;\n }\n\n 25% {\n width: 0%;\n left: 0%;\n opacity: 0;\n }\n\n 50% {\n width: 100%;\n left: 0%;\n opacity: 1;\n }\n\n 75% {\n width: 0%;\n left: 100%;\n }\n\n 100% {\n width: 0%;\n left: 100%;\n opacity: 0;\n }\n}\n\n/* Icons */\n\ndiv.icon-container {\n box-sizing: border-box;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: var(--ic-space-xs);\n}\n\ndiv.right-icon {\n margin-right: auto;\n margin-left: var(--ic-space-xs);\n}\n\n:host(.ic-button-full-width) .right-icon {\n margin-right: var(--ic-space-xs);\n}\n\n::slotted(:not(ic-badge)) {\n width: var(--icon-width) !important;\n height: var(--icon-height) !important;\n fill: currentcolor !important;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon) .button .icon-container {\n margin: 0;\n pointer-events: none;\n}\n\n/** SEARCH **/\n\n:host(.search-submit-button) ::slotted(svg) {\n --icon-height: 1.25rem;\n --icon-width: 1.25rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button-small) ::slotted(svg) {\n --icon-height: 1rem;\n --icon-width: 1rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.search-submit-button) .button:not(:active):focus {\n box-shadow: none;\n background-color: var(--ic-action-default-bg-hover);\n}\n\n:host(.search-submit-button) .button:not(:active):focus ::slotted(svg) {\n color: var(--ic-button-primary-text);\n}\n\n:host(.search-submit-button) {\n display: flex;\n align-items: center;\n margin: 0 var(--ic-space-xxs);\n}\n\n/** CLEAR & DISMISS **/\n\n:host(.ic-button-variant-icon) .button,\n:host(.ic-button-variant-icon) ::slotted(a) {\n background-color: inherit;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .button,\n:host(.button-variant-icon) ::slotted(a) {\n color: var(--button-default);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.button-variant-icon) .button:hover,\n:host(.button-variant-icon) ::slotted(a:hover) {\n background-color: var(--button-default-background-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-icon) .button:active:not(:focus),\n:host(.button-variant-icon) ::slotted(a:active:not(:focus)),\n:host(.button-variant-icon.loading) .button {\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-icon.disabled) .button,\n:host(.button-variant-icon.disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.clear-button) {\n color: var(--ic-atoms-input-clear-button);\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.clear-button) .button:focus,\n:host(.calendar-button) .button:focus,\n:host(.clock-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.clear-button) .button,\n:host(.clear-button) ::slotted(a) {\n background-color: inherit;\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:hover,\n:host(.clear-button) ::slotted(a:hover) {\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n background-color: var(--ic-atoms-input-clear-button-focus-inner);\n color: var(--ic-button-primary-text);\n\n /* border: var(--ic-atoms-input-clear-button-focus-outer); */\n}\n\n:host(.menu-close-button) ::slotted(svg) {\n --icon-height: 0.875rem;\n --icon-width: 0.875rem;\n\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.popout-menu-button) .button {\n height: var(--height);\n justify-content: left;\n border-radius: 0;\n white-space: pre-line;\n text-align: start;\n}\n\n:host(.popout-menu-button) div.icon-container {\n flex: none;\n}\n\n:host(.popout-menu-button) .button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n.ic-button-describedby {\n display: none;\n}\n\n:host .ic-tooltip {\n display: block;\n}\n\n/** Dropdown **/\n\n:host .arrow-dropdown {\n margin-top: auto;\n}\n\n:host .dropdown-expanded {\n transform: rotate(180deg);\n margin-bottom: var(--ic-space-xxxs);\n}\n\n:host(.dropdown-no-icon) .button {\n padding-right: var(--ic-space-xs);\n}\n\n/** Slotted router item **/\n\nslot[name=\"router-item\"]::slotted(a) {\n pointer-events: all;\n}\n\n::slotted(a) {\n font-size: 0.875rem !important;\n border: none !important;\n vertical-align: middle !important;\n}\n\n/** menu button on top navigation\\side navigation \n * uses secondary monochrome tokens which are duplicated here to avoid multiple copies in each component\n */\n\n:host(#menu-button.ic-theme-dark) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-dark-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-dark-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover-dark\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed-dark\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-dark\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-pressed-dark\n );\n}\n\n:host(#menu-button.ic-theme-light) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-light-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-light-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-light\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-default\n );\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .button,\n ::slotted(a) {\n border: 0.125rem solid transparent !important;\n }\n\n .search-submit-button ::slotted(a),\n .ic-button-variant-icon ::slotted(a),\n .clear-button ::slotted(a),\n .search-submit-button ::slotted(svg),\n .ic-button-variant-icon ::slotted(svg),\n .clear-button ::slotted(svg) {\n color: HighlightText;\n }\n\n :host(.ic-button-variant-icon.monochrome) ::slotted(a),\n :host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: white;\n }\n\n :host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n color: white !important;\n background-color: inherit;\n }\n\n :host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: currentcolor !important;\n }\n}\n\n/** Pagination **/\n\n:host(.flip) ::slotted(svg) {\n transform: scaleX(-1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedByContent? = \"\";\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = this.el.parentElement?.querySelector<HTMLElement>(\n `#${describedById}`\n );\n if (el) {\n this.describedByContent = el.innerText;\n this.describedbyEl = el;\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Triggered when text content of sibling element in light DOM changes\n */\n private mutationCallback = () => {\n this.describedByContent = this.describedbyEl?.innerText;\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedByContent,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n {describedByContent && (\n <span id={describedby} class=\"ic-button-describedby\">\n {describedByContent}\n </span>\n )}\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-button2.js","mappings":"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","names":[],"sources":["src/components/ic-button/ic-button.css?tag=ic-button&encapsulation=shadow","src/components/ic-button/ic-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n* @prop --min-width: Minimum width of the button.\n* @prop --height: The height of the button.\n*/\n\n:host {\n display: inline-block;\n position: relative;\n\n --icon-width: 100%;\n --icon-height: 100%;\n}\n\n.button,\n::slotted(a) {\n font-family: var(--ic-font-body-family);\n text-decoration: none;\n font-weight: 600;\n font-size: 0.875rem;\n transition: var(--ic-easing-transition-fast);\n border-radius: var(--ic-border-radius);\n min-width: var(--min-width, 6.25rem);\n display: inline-flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n background: none;\n border: none;\n box-sizing: border-box;\n white-space: nowrap;\n vertical-align: middle;\n}\n\n:host(.with-badge) .button {\n border-radius: 0.2188rem;\n}\n\n.button:hover,\n::slotted(a:hover) {\n cursor: pointer;\n}\n\n.button:focus,\n::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n.button:focus-visible,\n::slotted(a:focus-visible) {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-button-disabled),\n:host(.ic-button-disabled) .button,\n:host(.ic-button-disabled) ::slotted(a),\n:host(.ic-button-loading),\n:host(.ic-button-loading) .button {\n pointer-events: none;\n}\n\n:host(.top-icon) .button {\n flex-direction: column;\n\n --height: fit-content;\n}\n\n:host(.top-icon) .button .icon-container {\n margin-right: 0;\n}\n\n/* Variants */\n\n/* Primary */\n\n:host(.ic-button-variant-primary) .button,\n:host(.ic-button-variant-icon-primary) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background);\n}\n\n:host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a),\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n --ic-typography-color: var(--ic-button-primary-text);\n\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-primary-background) !important;\n}\n\n:host(.ic-button-variant-primary) .button:hover,\n:host(.ic-button-variant-icon-primary) .button:hover {\n background-color: var(--ic-button-primary-background-hover);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary) ::slotted(a:hover) {\n background-color: var(--ic-button-primary-background-hover) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading) .button,\n:host(.ic-button-variant-primary) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-primary) .button:active {\n background-color: var(--ic-button-primary-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-primary-background-pressed);\n}\n\n:host(.ic-button-variant-primary) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary) ::slotted(a:active) {\n background-color: var(--ic-button-primary-background-pressed) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled) .button {\n background: var(--ic-button-primary-background-disabled);\n color: var(--ic-button-primary-text-disabled);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled) ::slotted(a) {\n background: var(--ic-button-primary-background-disabled) !important;\n\n --ic-typography-color: var(--ic-button-primary-text-disabled) !important;\n\n color: var(--ic-button-primary-text-disabled) !important;\n}\n\n/* Primary - monochrome */\n\n:host(.ic-button-variant-primary.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button {\n color: var(--ic-button-primary-text-monochrome);\n background-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a) {\n background-color: var(--ic-button-primary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-primary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-primary.monochrome) .button:hover {\n background-color: var(--ic-button-primary-background-hover-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-primary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome) .button:active,\n:host(.ic-button-variant-icon-primary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-primary.monochrome) .button:active {\n background-color: var(--ic-button-primary-background-pressed-monochrome);\n\n --button-loading-inner-color: var(--ic-button-primary-text-monochrome);\n --button-loading-outer-color: var(--ic-button-primary-background-monochrome);\n}\n\n:host(.ic-button-variant-primary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-primary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-primary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome) .button {\n background-color: var(--ic-button-primary-background-disabled-monochrome);\n color: var(--ic-button-primary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-primary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-primary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background-color: var(\n --ic-button-primary-background-disabled-monochrome\n ) !important;\n}\n\n/* Secondary */\n\n:host(.ic-button-variant-secondary) .button,\n:host(.ic-button-variant-icon-secondary) .button {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border);\n color: var(--ic-button-secondary-text);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a),\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n border: var(--ic-border-width) solid var(--ic-button-secondary-border) !important;\n color: var(--ic-button-secondary-text) !important;\n\n --ic-typography-color: var(--ic-button-secondary-text) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:hover,\n:host(.ic-button-variant-icon-secondary) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-active);\n border-color: var(--ic-button-secondary-border-hover);\n color: var(--ic-button-secondary-text-hover-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary) .button:active,\n:host(.ic-button-variant-icon-secondary) .button:active {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(--ic-button-secondary-background-pressed-active);\n color: var(--ic-button-secondary-text-pressed-active);\n}\n\n:host(.ic-button-variant-secondary) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading) .button {\n border-color: var(--ic-button-secondary-border-pressed);\n background-color: var(\n --loading-button-background,\n var(--ic-button-secondary-background-pressed-active)\n ) !important;\n color: var(--ic-button-secondary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-secondary-border-pressed);\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-active\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) .button {\n border-color: var(--ic-button-secondary-border-disabled);\n color: var(--ic-button-secondary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background */\n\n:host(.ic-button-variant-secondary.background) .button,\n:host(.ic-button-variant-icon-secondary.background) .button {\n background-color: var(--ic-button-secondary-background);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a) {\n background-color: var(--ic-button-secondary-background) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:hover,\n:host(.ic-button-variant-icon-secondary.background) .button:hover {\n background-image: var(--ic-button-secondary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background) .button:active,\n:host(.ic-button-variant-icon-secondary.background) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n );\n}\n\n:host(.ic-button-variant-secondary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-active\n ) !important;\n}\n\n/* Secondary - monochrome */\n\n:host(.ic-button-variant-secondary.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.monochrome) .button {\n background-color: none;\n border: var(--ic-border-width) solid\n var(--ic-button-secondary-border-monochrome);\n color: var(--ic-button-secondary-text-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a) {\n background-color: none !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:hover {\n background-color: var(--ic-button-secondary-background-hover-monochrome);\n border-color: var(--ic-button-secondary-border-hover-monochrome);\n color: var(--ic-button-secondary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-secondary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.monochrome) .button:active {\n background-color: var(--ic-button-secondary-background-pressed-monochrome);\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n}\n\n:host(.ic-button-variant-secondary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-loading.monochrome) .button {\n background-color: var(\n --ic-button-secondary-background-pressed-monochrome\n ) !important;\n border-color: var(--ic-button-secondary-border-pressed-monochrome);\n color: var(--ic-button-secondary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-secondary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-secondary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome) .button {\n background: none;\n border-color: var(--ic-button-secondary-border-disabled-monochrome);\n color: var(--ic-button-secondary-text-disabled-monochrome);\n}\n\n:host(.ic-button-variant-secondary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Secondary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-secondary.background.monochrome) .button,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button {\n background-color: var(--ic-button-secondary-background-monochrome);\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-secondary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-secondary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-secondary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-secondary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-secondary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-secondary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Tertiary */\n\n:host(.ic-button-variant-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-tertiary) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n color: var(--ic-button-tertiary-text-active);\n\n --ic-typography-color: var(--ic-button-tertiary-text-active);\n}\n\n:host(.ic-button-variant-tertiary) .button:hover,\n:host(.ic-button-variant-icon-tertiary) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-active);\n color: var(--ic-button-tertiary-text-hover-active);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading) .button,\n:host(.ic-button-variant-icon-tertiary) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading) .button {\n background-color: var(--ic-button-tertiary-background-pressed-active);\n color: var(--ic-button-tertiary-text-pressed-active);\n\n --button-loading-inner-color: var(--ic-button-tertiary-text-pressed-active);\n --button-loading-outer-color: var(--ic-button-tertiary-background-pressed);\n}\n\n:host(.ic-button-variant-tertiary) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-active\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) .button {\n color: var(--ic-button-tertiary-text-disabled);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled) ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background */\n\n:host(.ic-button-variant-tertiary.background) .button,\n:host(.ic-button-variant-icon-tertiary.background) .button {\n background-color: var(--ic-button-tertiary-background);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background) .button:hover {\n background-image: var(--ic-button-tertiary-background-non-transparent-hover);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background) .button:active,\n:host(.ic-button-variant-icon-tertiary.background) .button:active {\n background-image: var(--ic-button-tertiary-background-non-transparent-active);\n}\n\n:host(.ic-button-variant-tertiary.background) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background) ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-active\n ) !important;\n}\n\n/* Tertiary - monochrome */\n\n:host(.ic-button-variant-tertiary.monochrome) .button,\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a) {\n color: var(--ic-button-tertiary-text-monochrome);\n\n --ic-typography-color: var(--ic-button-tertiary-text-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:hover {\n background-color: var(--ic-button-tertiary-background-hover-monochrome);\n color: var(--ic-button-tertiary-text-hover-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:hover) {\n background-color: var(\n --ic-button-tertiary-background-hover-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-tertiary.ic-button-loading.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.ic-button-loading.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-pressed-monochrome);\n color: var(--ic-button-tertiary-text-pressed-monochrome);\n\n --button-loading-inner-color: var(\n --ic-button-tertiary-text-pressed-monochrome\n );\n --button-loading-outer-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n );\n}\n\n:host(.ic-button-variant-tertiary.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.monochrome) ::slotted(a:active) {\n background-color: var(\n --ic-button-tertiary-background-pressed-monochrome\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome) .button {\n color: var(--ic-button-tertiary-text-disabled-monochrome);\n background: none;\n}\n\n:host(.ic-button-variant-tertiary.ic-button-disabled.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.ic-button-disabled.monochrome)\n ::slotted(a) {\n background: none !important;\n}\n\n/* Tertiary - non-transparent background - monochrome */\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button {\n background-color: var(--ic-button-tertiary-background-monochrome);\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon-tertiary.background.monochrome) ::slotted(a) {\n background-color: var(--ic-button-tertiary-background-monochrome) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:hover,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:hover {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:hover),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:hover) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-hover\n ) !important;\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) .button:active,\n:host(.ic-button-variant-icon-tertiary.background.monochrome) .button:active {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n );\n}\n\n:host(.ic-button-variant-tertiary.background.monochrome) ::slotted(a:active),\n:host(.ic-button-variant-icon-tertiary.background.monochrome)\n ::slotted(a:active) {\n background-image: var(\n --ic-button-tertiary-background-non-transparent-monochrome-active\n ) !important;\n}\n\n/* Destructive */\n\n:host(.ic-button-variant-destructive) .button,\n:host(.ic-button-variant-icon-destructive) .button {\n color: var(--ic-button-destructive-text);\n background-color: var(--ic-button-destructive-background);\n text-transform: uppercase;\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a),\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n color: var(--ic-button-destructive-text) !important;\n\n --ic-typography-color: var(--ic-button-destructive-text) !important;\n\n background-color: var(--ic-button-destructive-background) !important;\n text-transform: uppercase !important;\n}\n\n:host(.ic-button-variant-destructive) .button:hover,\n:host(.ic-button-variant-icon-destructive) .button:hover {\n background-color: var(--ic-button-destructive-background-hover);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:hover),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:hover) {\n background-color: var(--ic-button-destructive-background-hover) !important;\n}\n\n:host(.ic-button-variant-destructive) .button:active,\n:host(.ic-button-variant-destructive.ic-button-loading) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-loading) .button {\n color: var(--ic-button-primary-text);\n background-color: var(--ic-button-destructive-background-pressed);\n\n --button-loading-inner-color: var(--ic-button-primary-text);\n --button-loading-outer-color: var(--ic-button-destructive-background-pressed);\n}\n\n:host(.ic-button-variant-destructive) ::slotted(a:active),\n:host(.ic-button-variant-icon-destructive) ::slotted(a:active) {\n background-color: var(--ic-button-destructive-background-pressed) !important;\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) .button,\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) .button {\n background-color: var(--ic-button-destructive-background-disabled);\n color: var(--ic-button-destructive-text-disabled);\n}\n\n:host(.ic-button-variant-destructive.ic-button-disabled) ::slotted(a),\n:host(.ic-button-variant-icon-destructive.ic-button-disabled) ::slotted(a) {\n background-color: var(--ic-button-destructive-background-disabled) !important;\n}\n\n/***********************\n Icon Variants\n ***********************/\n\n/* Icon */\n\n:host(.ic-button-variant-icon) .button {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a) {\n color: var(--ic-button-icon-color);\n background-color: var(--ic-button-icon-color-background) !important;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.ic-button-variant-icon) .button:hover {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:hover) {\n color: var(--ic-button-icon-color-hover);\n background-color: var(--ic-button-icon-color-background-hover) !important;\n}\n\n:host(.ic-button-variant-icon) .button:active:not(:focus),\n:host(.ic-button-variant-icon.ic-button-loading) .button {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active);\n}\n\n:host(.ic-button-variant-icon) ::slotted(a:active:not(:focus)) {\n color: var(--ic-button-icon-color-active);\n background-color: var(--ic-button-icon-color-background-active) !important;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) .button {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.ic-button-variant-icon.ic-button-disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none !important;\n}\n\n/* Icon-primary */\n\n:host(.ic-button-variant-icon-primary) .button,\n:host(.ic-button-variant-icon-primary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n color: var(--ic-button-primary-icon);\n}\n\n:host(.ic-button-variant-icon-primary.monochrome) .button,\n:host(.ic-button-variant-primary.monochrome:not(.ic-button-disabled))\n ::slotted(svg) {\n color: var(--ic-button-primary-icon-monochrome);\n}\n\n:host(.ic-button-variant-icon-primary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon.monochrome) ::slotted(a),\n:host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: var(--ic-button-icon-monochrome);\n}\n\n/* Icon-secondary */\n\n:host(.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-variant-icon-secondary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-secondary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-tertiary */\n\n:host(.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-variant-icon-tertiary) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-tertiary) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Icon-destructive */\n\n:host(.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-variant-icon-destructive) ::slotted(a) {\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.ic-button-variant-icon-destructive) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n margin: 0;\n pointer-events: none;\n}\n\n/* Sizing */\n\n:host(.ic-button-size-medium) .button {\n height: var(--height, 2.5rem);\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-medium) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n padding: var(--ic-space-xs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-small) .button {\n height: var(--height, var(--ic-space-xl));\n padding: var(--ic-space-xxs) var(--ic-space-md);\n}\n\n:host(.ic-button-size-small) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n padding: var(--ic-space-xxs) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-large) .button {\n height: var(--height, var(--ic-space-xxl));\n padding: var(--ic-space-sm) var(--ic-space-md);\n}\n\n:host(.ic-button-size-large) ::slotted(a) {\n height: var(--height, var(--ic-space-xxl)) !important;\n padding: var(--ic-space-sm) var(--ic-space-md) !important;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-xl));\n width: var(--ic-space-xl);\n padding: 0.375rem;\n}\n\n:host(.ic-button-size-medium.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-medium.ic-button-variant-icon-destructive) ::slotted(a) {\n height: var(--height, var(--ic-space-xl)) !important;\n width: var(--ic-space-xl) !important;\n padding: 0.375rem !important;\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) .button {\n height: var(--height, var(--ic-space-lg));\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxs);\n}\n\n:host(.ic-button-size-small.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-small.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, var(--ic-space-lg)) !important;\n width: var(--ic-space-lg) !important;\n padding: var(--ic-space-xxs) !important;\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button {\n height: var(--height, 2.5rem);\n width: 2.5rem;\n padding: var(--ic-space-xs);\n}\n\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) .button,\n:host(.ic-button-size-large.ic-button-variant-icon-primary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-secondary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-tertiary) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon-destructive) ::slotted(a),\n:host(.ic-button-size-large.ic-button-variant-icon) ::slotted(a) {\n height: var(--height, 2.5rem) !important;\n width: 2.5rem !important;\n padding: var(--ic-space-xs) !important;\n}\n\n/* Width */\n:host(.ic-button-full-width),\n:host(.ic-button-full-width) .button {\n width: 100%;\n}\n\n:host(.ic-button-full-width) ::slotted(a) {\n width: 100% !important;\n}\n\n/* Loading */\n\ndiv.loading-container {\n position: relative;\n align-items: center;\n width: 100%;\n}\n\nic-loading-indicator {\n --inner-color: var(--button-loading-inner-color);\n --outer-color: var(--button-loading-outer-color), transparent;\n}\n\n@keyframes loading-animation {\n 0% {\n width: 0%;\n left: 0%;\n }\n\n 25% {\n width: 0%;\n left: 0%;\n opacity: 0;\n }\n\n 50% {\n width: 100%;\n left: 0%;\n opacity: 1;\n }\n\n 75% {\n width: 0%;\n left: 100%;\n }\n\n 100% {\n width: 0%;\n left: 100%;\n opacity: 0;\n }\n}\n\n/* Icons */\n\ndiv.icon-container {\n box-sizing: border-box;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n display: flex;\n justify-content: center;\n align-items: center;\n margin-right: var(--ic-space-xs);\n}\n\ndiv.right-icon {\n margin-right: auto;\n margin-left: var(--ic-space-xs);\n}\n\n:host(.ic-button-full-width) .right-icon {\n margin-right: var(--ic-space-xs);\n}\n\n::slotted(:not(ic-badge)) {\n width: var(--icon-width) !important;\n height: var(--icon-height) !important;\n fill: currentcolor !important;\n pointer-events: none;\n}\n\n:host(.ic-button-variant-icon) .button .icon-container {\n margin: 0;\n pointer-events: none;\n}\n\n/** SEARCH **/\n\n:host(.search-submit-button) ::slotted(svg) {\n --icon-height: 1.25rem;\n --icon-width: 1.25rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button-small) ::slotted(svg) {\n --icon-height: 1rem;\n --icon-width: 1rem;\n\n color: var(--ic-atoms-input-search-button);\n}\n\n:host(.search-submit-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.search-submit-button) .button:not(:active):focus {\n box-shadow: none;\n background-color: var(--ic-action-default-bg-hover);\n}\n\n:host(.search-submit-button) .button:not(:active):focus ::slotted(svg) {\n color: var(--ic-button-primary-text);\n}\n\n:host(.search-submit-button) {\n display: flex;\n align-items: center;\n margin: 0 var(--ic-space-xxs);\n}\n\n/** CLEAR & DISMISS **/\n\n:host(.ic-button-variant-icon) .button,\n:host(.ic-button-variant-icon) ::slotted(a) {\n background-color: inherit;\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .button,\n:host(.button-variant-icon) ::slotted(a) {\n color: var(--button-default);\n min-width: 0;\n gap: var(--ic-space-xs);\n}\n\n:host(.button-variant-icon) .icon-container {\n width: var(--ic-space-lg) !important;\n height: var(--ic-space-lg) !important;\n}\n\n:host(.button-variant-icon) .button:hover,\n:host(.button-variant-icon) ::slotted(a:hover) {\n background-color: var(--button-default-background-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-icon) .button:active:not(:focus),\n:host(.button-variant-icon) ::slotted(a:active:not(:focus)),\n:host(.button-variant-icon.loading) .button {\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-icon.disabled) .button,\n:host(.button-variant-icon.disabled) ::slotted(a) {\n color: var(--ic-color-icon-disabled-mid);\n background: none;\n}\n\n:host(.clear-button) {\n color: var(--ic-atoms-input-clear-button);\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.clear-button) .button:focus,\n:host(.calendar-button) .button:focus,\n:host(.clock-button) .button:focus {\n box-shadow: none;\n}\n\n:host(.clear-button) .button,\n:host(.clear-button) ::slotted(a) {\n background-color: inherit;\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:hover,\n:host(.clear-button) ::slotted(a:hover) {\n color: var(--ic-atoms-input-clear-button);\n}\n\n:host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n background-color: var(--ic-atoms-input-clear-button-focus-inner);\n color: var(--ic-button-primary-text);\n\n /* border: var(--ic-atoms-input-clear-button-focus-outer); */\n}\n\n:host(.menu-close-button) ::slotted(svg) {\n --icon-height: 0.875rem;\n --icon-width: 0.875rem;\n\n color: var(--ic-top-navigation-icon-active);\n}\n\n:host(.popout-menu-button) .button {\n height: var(--height);\n justify-content: left;\n border-radius: 0;\n white-space: pre-line;\n text-align: start;\n}\n\n:host(.popout-menu-button) div.icon-container {\n flex: none;\n}\n\n:host(.popout-menu-button) .button:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n.ic-button-describedby {\n display: none;\n}\n\n:host .ic-tooltip {\n display: block;\n}\n\n/** Dropdown **/\n\n:host .arrow-dropdown {\n margin-top: auto;\n}\n\n:host .dropdown-expanded {\n transform: rotate(180deg);\n margin-bottom: var(--ic-space-xxxs);\n}\n\n:host(.dropdown-no-icon) .button {\n padding-right: var(--ic-space-xs);\n}\n\n/** Slotted router item **/\n\nslot[name=\"router-item\"]::slotted(a) {\n pointer-events: all;\n}\n\n::slotted(a) {\n font-size: 0.875rem !important;\n border: none !important;\n vertical-align: middle !important;\n}\n\n/** menu button on top navigation\\side navigation \n * uses secondary monochrome tokens which are duplicated here to avoid multiple copies in each component\n */\n\n:host(#menu-button.ic-theme-dark) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-dark-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-dark-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover-dark\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed-dark\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-dark\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-pressed-dark\n );\n}\n\n:host(#menu-button.ic-theme-light) {\n --ic-button-secondary-background-hover-monochrome: var(\n --ic-action-light-bg-hover\n );\n --ic-button-secondary-background-pressed-monochrome: var(\n --ic-action-light-bg-pressed\n );\n --ic-button-secondary-text-hover-monochrome: var(\n --ic-action-monochrome-hover\n );\n --ic-button-secondary-text-pressed-monochrome: var(\n --ic-action-monochrome-pressed\n );\n --ic-button-secondary-border-hover-monochrome: var(\n --ic-color-border-neutral-hover-light\n );\n --ic-button-secondary-border-pressed-monochrome: var(\n --ic-color-border-neutral-default\n );\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .button,\n ::slotted(a) {\n border: 0.125rem solid transparent !important;\n }\n\n .search-submit-button ::slotted(a),\n .ic-button-variant-icon ::slotted(a),\n .clear-button ::slotted(a),\n .search-submit-button ::slotted(svg),\n .ic-button-variant-icon ::slotted(svg),\n .clear-button ::slotted(svg) {\n color: HighlightText;\n }\n\n :host(.ic-button-variant-icon.monochrome) ::slotted(a),\n :host(.ic-button-variant-icon.monochrome) ::slotted(svg) {\n color: white;\n }\n\n :host(.clear-button) .button:not(:active):focus ::slotted(svg) {\n color: white !important;\n background-color: inherit;\n }\n\n :host(.ic-button-variant-primary:not(.ic-button-disabled)) ::slotted(svg) {\n color: currentcolor !important;\n }\n}\n\n/** Pagination **/\n\n:host(.flip) ::slotted(svg) {\n transform: scaleX(-1);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n forceUpdate,\n h,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport {\n getBrandFromContext,\n handleHiddenFormButtonClick,\n inheritAttributes,\n isSlotUsed,\n removeDisabledFalse,\n renderFileHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport { IcButtonTypes, IcButtonVariants } from \"./ic-button.types\";\nimport {\n IcSizes,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n IcThemeMode,\n IcButtonTooltipPlacement,\n IcIconPlacementOptions,\n} from \"../../utils/types\";\nimport arrowDropdown from \"../../assets/arrow-dropdown.svg\";\n\nlet buttonIds = 0;\n\n/**\n * @slot left-icon - Content will be placed to the left of the button label.\n * @slot right-icon - Content will be placed to the right of the button label.\n * @slot top-icon - Content will be placed above the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n * @slot router-item - Handle routing by nesting your routes in this slot. Setting loading to true will have no impact on this slot.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n private buttonEl?: HTMLElement;\n private buttonIdNum = buttonIds++;\n private hasTooltip = false;\n private id: string | null;\n private inheritedAttributes: { [k: string]: string } = {};\n private describedbyEl: HTMLElement | null = null;\n private describedById?: string;\n private mutationObserver: MutationObserver | null = null;\n private hostMutationObserver: MutationObserver | null = null;\n private routerSlot: HTMLElement | null;\n\n @Element() el: HTMLIcButtonElement;\n\n @State() ariaLabel = \"\";\n @State() describedbyNode: Node | null;\n @Watch(\"describedbyNode\")\n watchDescribedbyNodeHandler(): void {\n this.updateAriaDescribedbyClone();\n }\n @State() title = \"\";\n\n /**\n * If `fileUpload` is set to `true`, this is the accepted list of file types.\n */\n @Prop() accept = \"*\";\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaControlsId?: string | boolean;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwnsId?: string | boolean;\n\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the ic-tooltip which is shown for icon variant will be disabled. Title or aria-label must be set if this prop is not applied.\n */\n @Prop() disableTooltip = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download: string | boolean = false;\n\n /**\n * If `true`, the button will show a dropdown icon.\n */\n @Prop() dropdown = false;\n\n /**\n * If `true`, the aria-expanded value will be set to true. This is only applied if the dropdown prop is also true.\n */\n @Prop({ mutable: true, reflect: true }) dropdownExpanded = false;\n\n /**\n * If `true`, when the button is clicked the native file explorer will be launched.\n */\n @Prop() fileUpload = false;\n\n /**\n * The name of the control for the file input, which is submitted with the form data.\n */\n @Prop() fileInputName = `ic-button-file-upload-input-${buttonIds++}`;\n\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\n\n /**\n * The URL that processes the information submitted by the button. It overrides the action attribute of the button's form owner. Does nothing if there is no form owner.\n */\n @Prop() formaction?: string;\n\n /**\n * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\n\n /**\n * The place to display the response from submitting the form. It overrides the target attribute of the button's form owner.\n */\n @Prop() formtarget?: string;\n\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading = false;\n\n /**\n * If `true`, the button will display as monochromatic in either `light` or `dark` theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * If `fileUpload` is set to `true`, this boolean determines whether multiple files are accepted.\n */\n @Prop() multiple = false;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The list of the files that have been selected by a user.\n */\n @Prop() selectedFiles?: FileList;\n\n /**\n * The size of the button to be displayed.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * Setting to `true` can help in situations where tooltip content is clipped by a parent element.\n */\n @Prop() tooltipFixedPositioning: boolean = false;\n\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * If `true`, the secondary & tertiary variants of button will have a transparent background when not hovered, pressed or loading.\n */\n @Prop() transparentBackground = true;\n\n /**\n * The type of the button.\n */\n @Prop() type: IcButtonTypes = \"button\";\n\n /**\n * The variant of the button to be displayed.\n */\n @Prop({ mutable: true }) variant: IcButtonVariants = \"primary\";\n @Watch(\"variant\")\n watchVariantHandler(newVariant: IcButtonVariants): void {\n if (newVariant === \"icon\") this.variant = \"icon-tertiary\";\n }\n\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n /**\n * If `fileUpload` is set to `true`, this will be emitted when a file is selected in the native explorer.\n */\n @Event() icFileSelection!: EventEmitter<FileList>;\n\n /**\n * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n\n disconnectedCallback(): void {\n this.mutationObserver?.disconnect();\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillUpdate(): void {\n if (this.loading) {\n this.el.style.setProperty(\n \"--min-width\",\n `${this.el.getBoundingClientRect().width}px`\n );\n }\n this.setHasTooltip();\n }\n\n componentWillLoad(): void {\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = inheritAttributes(this.el, [...IC_INHERITED_ARIA, \"title\"]);\n\n this.title = title;\n this.ariaLabel = ariaLabel;\n this.inheritedAttributes = restInheritedAttributes;\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n this.id = this.el.id || null;\n this.setHasTooltip();\n\n if (!this.hasTooltip) {\n const describedById = this.inheritedAttributes[\"aria-describedby\"];\n if (describedById) {\n this.describedById = describedById;\n const el = document.querySelector<HTMLElement>(`#${describedById}`);\n if (el) {\n this.describedbyEl = el;\n this.describedbyNode = el.cloneNode(true);\n }\n }\n }\n\n if (this.variant === \"icon\") {\n this.variant = \"icon-tertiary\";\n }\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n\n if (typeof MutationObserver !== \"undefined\") {\n if (this.describedbyEl && this.describedById) {\n this.mutationObserver = new MutationObserver(this.mutationCallback);\n this.mutationObserver.observe(this.describedbyEl, {\n characterData: true,\n childList: true,\n subtree: true,\n });\n }\n\n this.hostMutationObserver = new MutationObserver(\n this.hostMutationCallback\n );\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n\n if (this.hasRouterSlot()) this.arrangeRouterItem();\n }\n\n this.updateAriaDescribedbyClone();\n }\n\n componentWillRender(): void {\n const iconEl = this.getSlottedIcon(\"left\") || this.getSlottedIcon(\"right\");\n iconEl?.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (!this.hasRouterSlot()) {\n if (this.fileUpload) {\n renderFileHiddenInput(\n this.icFileSelection,\n this.el,\n !!this.multiple,\n !!this.disabled,\n this.accept,\n this.fileInputName,\n this.selectedFiles\n );\n }\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n if (this.dropdown) {\n this.dropdownExpanded = !this.dropdownExpanded;\n }\n }\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.updateTheme(detail.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.buttonEl?.focus();\n }\n\n private async closeButtonTooltip(ev: KeyboardEvent) {\n const tooltip = this.el.shadowRoot?.querySelector(\"ic-tooltip\");\n if (tooltip && (await tooltip.isTooltipVisible())) {\n tooltip.displayTooltip(false);\n ev.preventDefault();\n ev.stopImmediatePropagation();\n }\n }\n\n private getSlottedIcon = (position: IcIconPlacementOptions) =>\n this.el.querySelector(`[slot=\"${position}-icon\"]`);\n\n private hasRouterSlot() {\n this.routerSlot = this.el.querySelector('[slot=\"router-item\"]');\n if (this.routerSlot) {\n this.routerSlot.ariaLabel = this.routerSlot.textContent;\n }\n return !!this.routerSlot;\n }\n\n private handleClick = () => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !this.hasRouterSlot() &&\n (this.form || !!this.el.closest(\"FORM\"))\n ) {\n const form = this.form\n ? document.querySelector<HTMLFormElement>(`form[id=${this.form}]`)\n : this.el.closest<HTMLFormElement>(\"FORM\");\n\n handleHiddenFormButtonClick(form, this.el);\n }\n };\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \"Escape\" && this.hasTooltip) {\n this.closeButtonTooltip(ev);\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(mode: IcBrandForeground | null = null) {\n const foregroundColor = getBrandFromContext(this.el, mode);\n if (foregroundColor !== IcBrandForegroundEnum.Default) {\n this.theme =\n foregroundColor === IcBrandForegroundEnum.Light\n ? IcBrandForegroundEnum.Dark\n : IcBrandForegroundEnum.Light;\n this.monochrome = true;\n }\n }\n\n /**\n * Creates/updates clone of aria-describedby element node tree in shadow dom\n * Required due to ids being scoped to the shadow dom\n */\n private updateAriaDescribedbyClone = () => {\n if (this.describedbyNode) {\n const wrapper = this.el.shadowRoot?.querySelector(\"#describedby-wrapper\");\n if (!wrapper) {\n this.el.shadowRoot?.appendChild(\n Object.assign(document.createElement(\"div\"), {\n id: \"describedby-wrapper\",\n className: \"ic-button-describedby\",\n })\n );\n }\n\n while (wrapper?.firstChild) wrapper.firstChild.remove();\n wrapper?.appendChild(this.describedbyNode);\n }\n };\n\n /**\n * Triggered when light dom aria-describedby element updates\n */\n private mutationCallback = () => {\n if (this.describedbyEl)\n this.describedbyNode = this.describedbyEl?.cloneNode(true);\n };\n\n /**\n * Triggered when attributes of host element change\n * @param mutationList the list of changes made to the host element\n */\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute) {\n if (attributeName === \"title\") this.title = attribute;\n else if (attributeName === \"aria-label\") this.ariaLabel = attribute;\n\n if (IC_INHERITED_ARIA.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n }\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private setHasTooltip = () => {\n this.hasTooltip =\n !this.disableTooltip && (!!this.title || !!this.isIconVariant());\n };\n\n private isIconVariant = () => this.variant.startsWith(\"icon\");\n\n private arrangeRouterItem = () => {\n const setStyles = (\n element: HTMLElement | SVGElement,\n styles: { [key: string]: string }\n ) => {\n Object.entries(styles).forEach(([key, value]) => {\n element.style.setProperty(key, value);\n });\n };\n\n if (this.routerSlot) {\n const icTypography = document.createElement(\"ic-typography\");\n\n setStyles(icTypography, {\n \"font-family\": \"var(--ic-font-body-family)\",\n \"font-size\": \"0.875rem\",\n \"font-weight\": \"600\",\n });\n setStyles(this.routerSlot, {\n gap: \"0\",\n });\n\n const icon = this.routerSlot.querySelector(\"svg\");\n const iconSlot = icon?.getAttribute(\"slot\");\n const iconWrapper = document.createElement(\"div\");\n\n if (icon) {\n setStyles(icon, {\n fill: \"currentcolor\",\n });\n\n if (iconSlot === \"top-icon\") {\n setStyles(this.routerSlot, {\n display: \"flex\",\n \"flex-direction\": \"column\",\n \"--height\": \"fit-content\",\n });\n } else if (iconSlot) {\n const marginPlacement = iconSlot === \"left-icon\" ? \"right\" : \"left\";\n setStyles(iconWrapper, {\n [`margin-${marginPlacement}`]: \"var(--ic-space-xs)\",\n });\n }\n\n iconWrapper.append(icon);\n }\n\n const badge = this.routerSlot.querySelector(\"ic-badge\");\n const label = this.routerSlot.textContent?.trim();\n\n if (badge) iconWrapper.append(badge);\n if (label) icTypography.textContent = label;\n\n this.routerSlot.textContent = \"\";\n\n if (iconSlot === \"right-icon\") {\n this.routerSlot.append(icTypography);\n this.routerSlot.append(iconWrapper);\n } else {\n this.routerSlot.append(iconWrapper);\n this.routerSlot.append(icTypography);\n }\n }\n };\n\n render() {\n const {\n ariaControlsId,\n ariaLabel,\n ariaOwnsId,\n buttonIdNum,\n describedById,\n disabled,\n download,\n dropdown,\n dropdownExpanded,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n fullWidth,\n handleClick,\n handleKeyDown,\n hasTooltip,\n href,\n hreflang,\n id,\n inheritedAttributes,\n isIconVariant,\n loading,\n monochrome,\n onBlur,\n onFocus,\n referrerpolicy,\n rel,\n size,\n target,\n theme,\n title,\n tooltipFixedPositioning,\n tooltipPlacement,\n transparentBackground,\n type,\n variant,\n } = this;\n\n const TagType = href ? \"a\" : \"button\";\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type,\n disabled,\n form,\n formaction,\n formenctype,\n formmethod,\n formnovalidate,\n formtarget,\n }\n : {\n download: download !== false ? download : null,\n href,\n rel,\n target,\n referrerpolicy,\n hreflang,\n };\n\n const buttonId = hasTooltip\n ? `ic-button-with-tooltip-${id || buttonIdNum}`\n : undefined;\n\n const describedby = !hasTooltip ? describedById : `ic-tooltip-${buttonId}`;\n\n const hasLeftIcon = !!this.getSlottedIcon(\"left\");\n const hasRightIcon = !!this.getSlottedIcon(\"right\");\n\n const ButtonContent = () =>\n this.hasRouterSlot() ? (\n <slot name=\"router-item\"></slot>\n ) : (\n <TagType\n class=\"button\"\n tabindex={0}\n aria-disabled={loading || disabled ? \"true\" : null}\n aria-label={loading ? \"Loading\" : ariaLabel}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n {...buttonAttrs}\n {...inheritedAttributes}\n onFocus={onFocus}\n onBlur={onBlur}\n ref={(el) => (this.buttonEl = el)}\n aria-describedby={describedby}\n part=\"button\"\n >\n {loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n monochrome={monochrome}\n theme={theme}\n ></ic-loading-indicator>\n </div>\n ) : (\n <Fragment>\n {(hasLeftIcon ||\n (!!this.getSlottedIcon(\"top\") && !hasRightIcon)) && (\n <div class=\"icon-container\">\n <slot name={`${hasLeftIcon ? \"left\" : \"top\"}-icon`} />\n </div>\n )}\n <slot />\n {!dropdown\n ? hasRightIcon && (\n <div class={{ \"icon-container\": true, \"right-icon\": true }}>\n <slot name=\"right-icon\" />\n </div>\n )\n : variant !== \"icon\" &&\n variant !== \"destructive\" && (\n <span\n class={\n dropdownExpanded\n ? \"dropdown-expanded\"\n : \"arrow-dropdown\"\n }\n innerHTML={arrowDropdown}\n />\n )}\n </Fragment>\n )}\n </TagType>\n );\n\n return (\n <Host\n class={{\n \"ic-button-disabled\": disabled && !loading,\n \"ic-button-full-width\": fullWidth,\n \"ic-button-loading\": loading,\n [`ic-button-size-${size}`]: true,\n [`ic-button-variant-${variant}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n background:\n (variant === \"secondary\" || variant === \"tertiary\") &&\n !transparentBackground &&\n !disabled,\n \"dropdown-no-icon\":\n dropdown &&\n !isSlotUsed(this.el, \"icon\") &&\n !isSlotUsed(this.el, \"left-icon\"),\n monochrome,\n \"top-icon\": isSlotUsed(this.el, \"top-icon\"),\n \"with-badge\": isSlotUsed(this.el, \"badge\"),\n }}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n aria-owns={ariaOwnsId}\n aria-controls={ariaControlsId}\n aria-expanded={dropdown && `${dropdownExpanded}`}\n >\n {hasTooltip && (\n <ic-tooltip\n id={describedby}\n label={title || ariaLabel}\n target={buttonId}\n placement={tooltipPlacement}\n fixedPositioning={tooltipFixedPositioning}\n silent={isIconVariant() && !!ariaLabel}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n {!hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n"],"version":3}