@ukic/web-components 2.1.0-beta.13 → 2.1.0-beta.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (377) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-2021e212.js → helpers-d6b5880e.js} +19 -25
  3. package/dist/cjs/helpers-d6b5880e.js.map +1 -0
  4. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +14 -14
  7. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-breadcrumb.cjs.entry.js +5 -4
  9. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-button_3.cjs.entry.js +4 -7
  11. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  13. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -4
  15. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-footer.cjs.entry.js +5 -3
  22. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  25. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +5 -2
  26. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -2
  30. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-navigation-group.cjs.entry.js +7 -4
  33. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -7
  37. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-page-header.cjs.entry.js +10 -13
  39. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-pagination.cjs.entry.js +13 -2
  41. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -4
  43. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-select.cjs.entry.js +2 -3
  48. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-side-navigation.cjs.entry.js +20 -16
  50. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-step.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-tab-context.cjs.entry.js +7 -5
  57. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-tab-panel.cjs.entry.js +3 -1
  60. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-tab.cjs.entry.js +3 -1
  62. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-text-field.cjs.entry.js +6 -14
  64. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-typography.cjs.entry.js +95 -3
  69. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  70. package/dist/cjs/loader.cjs.js +1 -1
  71. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +4 -3
  72. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  73. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +13 -13
  74. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  75. package/dist/collection/components/ic-button/ic-button.css +6 -0
  76. package/dist/collection/components/ic-button/ic-button.js +1 -4
  77. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  78. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -3
  79. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  80. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  81. package/dist/collection/components/ic-footer/ic-footer.js +4 -2
  82. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  83. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -1
  84. package/dist/collection/components/ic-menu/ic-menu.js +4 -1
  85. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  86. package/dist/collection/components/ic-menu-item/ic-menu-item.js +2 -1
  87. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  88. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +6 -3
  89. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  90. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +13 -7
  91. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +0 -6
  92. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  93. package/dist/collection/components/ic-page-header/ic-page-header.js +9 -12
  94. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  95. package/dist/collection/components/ic-pagination/ic-pagination.css +0 -4
  96. package/dist/collection/components/ic-pagination/ic-pagination.js +52 -1
  97. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  98. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -3
  99. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  100. package/dist/collection/components/ic-select/ic-select.js +11 -12
  101. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  102. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +19 -15
  103. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  104. package/dist/collection/components/ic-step/ic-step.css +5 -5
  105. package/dist/collection/components/ic-step/ic-step.js +1 -1
  106. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  107. package/dist/collection/components/ic-tab/ic-tab.js +3 -1
  108. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  109. package/dist/collection/components/ic-tab-context/ic-tab-context.js +7 -5
  110. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  111. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +3 -1
  112. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  113. package/dist/collection/components/ic-text-field/ic-text-field.js +5 -13
  114. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  115. package/dist/collection/components/ic-typography/ic-typography.css +39 -0
  116. package/dist/collection/components/ic-typography/ic-typography.js +120 -2
  117. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  118. package/dist/collection/utils/helpers.js +18 -24
  119. package/dist/collection/utils/helpers.js.map +1 -1
  120. package/dist/components/helpers.js +18 -24
  121. package/dist/components/helpers.js.map +1 -1
  122. package/dist/components/ic-breadcrumb-group.js +13 -13
  123. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  124. package/dist/components/ic-breadcrumb2.js +4 -3
  125. package/dist/components/ic-breadcrumb2.js.map +1 -1
  126. package/dist/components/ic-button2.js +2 -5
  127. package/dist/components/ic-button2.js.map +1 -1
  128. package/dist/components/ic-checkbox.js +4 -3
  129. package/dist/components/ic-checkbox.js.map +1 -1
  130. package/dist/components/ic-footer.js +5 -3
  131. package/dist/components/ic-footer.js.map +1 -1
  132. package/dist/components/ic-loading-indicator2.js +1 -1
  133. package/dist/components/ic-loading-indicator2.js.map +1 -1
  134. package/dist/components/ic-menu-item2.js +2 -1
  135. package/dist/components/ic-menu-item2.js.map +1 -1
  136. package/dist/components/ic-menu2.js +4 -1
  137. package/dist/components/ic-menu2.js.map +1 -1
  138. package/dist/components/ic-navigation-group.js +6 -3
  139. package/dist/components/ic-navigation-group.js.map +1 -1
  140. package/dist/components/ic-navigation-item.js +1 -1
  141. package/dist/components/ic-navigation-item.js.map +1 -1
  142. package/dist/components/ic-navigation-menu2.js +0 -6
  143. package/dist/components/ic-navigation-menu2.js.map +1 -1
  144. package/dist/components/ic-page-header.js +9 -12
  145. package/dist/components/ic-page-header.js.map +1 -1
  146. package/dist/components/ic-pagination.js +15 -3
  147. package/dist/components/ic-pagination.js.map +1 -1
  148. package/dist/components/ic-popover-menu.js +4 -3
  149. package/dist/components/ic-popover-menu.js.map +1 -1
  150. package/dist/components/ic-select.js +1 -2
  151. package/dist/components/ic-select.js.map +1 -1
  152. package/dist/components/ic-side-navigation.js +19 -15
  153. package/dist/components/ic-side-navigation.js.map +1 -1
  154. package/dist/components/ic-step.js +2 -2
  155. package/dist/components/ic-step.js.map +1 -1
  156. package/dist/components/ic-tab-context.js +7 -5
  157. package/dist/components/ic-tab-context.js.map +1 -1
  158. package/dist/components/ic-tab-panel.js +3 -1
  159. package/dist/components/ic-tab-panel.js.map +1 -1
  160. package/dist/components/ic-tab.js +3 -1
  161. package/dist/components/ic-tab.js.map +1 -1
  162. package/dist/components/ic-text-field2.js +5 -13
  163. package/dist/components/ic-text-field2.js.map +1 -1
  164. package/dist/components/ic-typography2.js +99 -4
  165. package/dist/components/ic-typography2.js.map +1 -1
  166. package/dist/core/core.esm.js +1 -1
  167. package/dist/core/core.esm.js.map +1 -1
  168. package/dist/core/{p-0575a77f.entry.js → p-050dbce8.entry.js} +2 -2
  169. package/dist/core/p-06962e10.entry.js +2 -0
  170. package/dist/core/p-06962e10.entry.js.map +1 -0
  171. package/dist/core/{p-0a41c3cb.entry.js → p-0969a95a.entry.js} +2 -2
  172. package/dist/core/{p-56fe91ad.entry.js → p-0a11ec35.entry.js} +2 -2
  173. package/dist/core/p-0a11ec35.entry.js.map +1 -0
  174. package/dist/core/{p-b61e76e2.entry.js → p-0f153569.entry.js} +2 -2
  175. package/dist/core/{p-3fb307e6.entry.js → p-1585e5c1.entry.js} +2 -2
  176. package/dist/core/p-29ea6f88.entry.js +2 -0
  177. package/dist/core/p-29ea6f88.entry.js.map +1 -0
  178. package/dist/core/p-2e63f202.entry.js +2 -0
  179. package/dist/core/p-2e63f202.entry.js.map +1 -0
  180. package/dist/core/p-2e6ea6d3.entry.js +2 -0
  181. package/dist/core/p-2e6ea6d3.entry.js.map +1 -0
  182. package/dist/core/{p-e0f24ccd.entry.js → p-2fb97a1b.entry.js} +2 -2
  183. package/dist/core/p-2fb97a1b.entry.js.map +1 -0
  184. package/dist/core/{p-100dbcec.entry.js → p-31b4b684.entry.js} +2 -2
  185. package/dist/core/{p-e839e5dc.entry.js → p-32cc8827.entry.js} +2 -2
  186. package/dist/core/{p-3845b769.entry.js → p-3498db0b.entry.js} +2 -2
  187. package/dist/core/p-3498db0b.entry.js.map +1 -0
  188. package/dist/core/{p-d5d9923a.entry.js → p-36e0671f.entry.js} +2 -2
  189. package/dist/core/p-443052a7.entry.js +2 -0
  190. package/dist/core/p-443052a7.entry.js.map +1 -0
  191. package/dist/core/{p-6a77992e.entry.js → p-46371c05.entry.js} +2 -2
  192. package/dist/core/p-471820e6.js +2 -0
  193. package/dist/core/p-471820e6.js.map +1 -0
  194. package/dist/core/{p-9413d639.entry.js → p-4dd0eb6a.entry.js} +2 -2
  195. package/dist/core/p-50421f27.entry.js +2 -0
  196. package/dist/core/p-50421f27.entry.js.map +1 -0
  197. package/dist/core/p-559b3d17.entry.js +2 -0
  198. package/dist/core/p-559b3d17.entry.js.map +1 -0
  199. package/dist/core/{p-895bda21.entry.js → p-5a3f3f37.entry.js} +2 -2
  200. package/dist/core/p-5a3f3f37.entry.js.map +1 -0
  201. package/dist/core/{p-dc0b9e80.entry.js → p-5e896163.entry.js} +2 -2
  202. package/dist/core/{p-e41e701a.entry.js → p-68547339.entry.js} +2 -2
  203. package/dist/core/p-6f2be5bd.entry.js +2 -0
  204. package/dist/core/p-6f2be5bd.entry.js.map +1 -0
  205. package/dist/core/{p-1eb0992b.entry.js → p-70124e59.entry.js} +2 -2
  206. package/dist/core/p-80164baa.entry.js +2 -0
  207. package/dist/core/p-80164baa.entry.js.map +1 -0
  208. package/dist/core/{p-6b39f8b4.entry.js → p-8edd3a9b.entry.js} +2 -2
  209. package/dist/core/{p-c0813424.entry.js → p-9715ec62.entry.js} +2 -2
  210. package/dist/core/{p-cb437317.entry.js → p-983cb33c.entry.js} +2 -2
  211. package/dist/core/{p-002a63e9.entry.js → p-a18c0672.entry.js} +2 -2
  212. package/dist/core/{p-47b0ed42.entry.js → p-a8dc8196.entry.js} +2 -2
  213. package/dist/core/{p-52fd3533.entry.js → p-a9184841.entry.js} +2 -2
  214. package/dist/core/p-a9184841.entry.js.map +1 -0
  215. package/dist/core/{p-e384aaee.entry.js → p-af815dfb.entry.js} +2 -2
  216. package/dist/core/{p-8780890e.entry.js → p-b69226d2.entry.js} +2 -2
  217. package/dist/core/p-b7cf6411.entry.js +2 -0
  218. package/dist/core/p-b7cf6411.entry.js.map +1 -0
  219. package/dist/core/{p-3a67718c.entry.js → p-bffa2e1a.entry.js} +2 -2
  220. package/dist/core/p-c85476c0.entry.js +2 -0
  221. package/dist/core/p-c85476c0.entry.js.map +1 -0
  222. package/dist/core/{p-a0f4e641.entry.js → p-ca20c9c3.entry.js} +2 -2
  223. package/dist/core/{p-a33a04b2.entry.js → p-cee45622.entry.js} +2 -2
  224. package/dist/core/p-cee45622.entry.js.map +1 -0
  225. package/dist/core/{p-f3e10149.entry.js → p-d2d5132d.entry.js} +2 -2
  226. package/dist/core/{p-f3e10149.entry.js.map → p-d2d5132d.entry.js.map} +1 -1
  227. package/dist/core/{p-546b620e.entry.js → p-df1b0f17.entry.js} +2 -2
  228. package/dist/core/{p-92c4fa7f.entry.js → p-e16e817e.entry.js} +2 -2
  229. package/dist/core/p-e16e817e.entry.js.map +1 -0
  230. package/dist/core/p-e6217f40.entry.js +2 -0
  231. package/dist/core/p-e6217f40.entry.js.map +1 -0
  232. package/dist/core/{p-3dc2ff7b.entry.js → p-faeedfd1.entry.js} +2 -2
  233. package/dist/core/p-faeedfd1.entry.js.map +1 -0
  234. package/dist/core/{p-5d077cf7.entry.js → p-fb5861c6.entry.js} +2 -2
  235. package/dist/core/{p-3e5eb873.entry.js → p-fd18d7a3.entry.js} +2 -2
  236. package/dist/esm/core.js +1 -1
  237. package/dist/esm/{helpers-b2b47a7d.js → helpers-73666f14.js} +19 -25
  238. package/dist/esm/helpers-73666f14.js.map +1 -0
  239. package/dist/esm/ic-alert.entry.js +1 -1
  240. package/dist/esm/ic-back-to-top.entry.js +1 -1
  241. package/dist/esm/ic-breadcrumb-group.entry.js +14 -14
  242. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  243. package/dist/esm/ic-breadcrumb.entry.js +5 -4
  244. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  245. package/dist/esm/ic-button_3.entry.js +4 -7
  246. package/dist/esm/ic-button_3.entry.js.map +1 -1
  247. package/dist/esm/ic-card.entry.js +1 -1
  248. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  249. package/dist/esm/ic-checkbox.entry.js +5 -4
  250. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  251. package/dist/esm/ic-chip.entry.js +1 -1
  252. package/dist/esm/ic-data-row.entry.js +1 -1
  253. package/dist/esm/ic-divider.entry.js +1 -1
  254. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  255. package/dist/esm/ic-footer-link.entry.js +1 -1
  256. package/dist/esm/ic-footer.entry.js +5 -3
  257. package/dist/esm/ic-footer.entry.js.map +1 -1
  258. package/dist/esm/ic-hero.entry.js +1 -1
  259. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  260. package/dist/esm/ic-input-component-container_3.entry.js +5 -2
  261. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  262. package/dist/esm/ic-input-label_2.entry.js +1 -1
  263. package/dist/esm/ic-link.entry.js +1 -1
  264. package/dist/esm/ic-menu-item.entry.js +3 -2
  265. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  266. package/dist/esm/ic-navigation-button.entry.js +1 -1
  267. package/dist/esm/ic-navigation-group.entry.js +7 -4
  268. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  269. package/dist/esm/ic-navigation-item.entry.js +2 -2
  270. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  271. package/dist/esm/ic-navigation-menu.entry.js +1 -7
  272. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  273. package/dist/esm/ic-page-header.entry.js +10 -13
  274. package/dist/esm/ic-page-header.entry.js.map +1 -1
  275. package/dist/esm/ic-pagination.entry.js +13 -2
  276. package/dist/esm/ic-pagination.entry.js.map +1 -1
  277. package/dist/esm/ic-popover-menu.entry.js +5 -4
  278. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  279. package/dist/esm/ic-radio-group.entry.js +1 -1
  280. package/dist/esm/ic-radio-option.entry.js +1 -1
  281. package/dist/esm/ic-search-bar.entry.js +1 -1
  282. package/dist/esm/ic-select.entry.js +2 -3
  283. package/dist/esm/ic-select.entry.js.map +1 -1
  284. package/dist/esm/ic-side-navigation.entry.js +20 -16
  285. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  286. package/dist/esm/ic-status-tag.entry.js +1 -1
  287. package/dist/esm/ic-step.entry.js +2 -2
  288. package/dist/esm/ic-step.entry.js.map +1 -1
  289. package/dist/esm/ic-stepper.entry.js +1 -1
  290. package/dist/esm/ic-switch.entry.js +1 -1
  291. package/dist/esm/ic-tab-context.entry.js +7 -5
  292. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  293. package/dist/esm/ic-tab-group.entry.js +1 -1
  294. package/dist/esm/ic-tab-panel.entry.js +3 -1
  295. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  296. package/dist/esm/ic-tab.entry.js +3 -1
  297. package/dist/esm/ic-tab.entry.js.map +1 -1
  298. package/dist/esm/ic-text-field.entry.js +6 -14
  299. package/dist/esm/ic-text-field.entry.js.map +1 -1
  300. package/dist/esm/ic-theme.entry.js +1 -1
  301. package/dist/esm/ic-toast.entry.js +1 -1
  302. package/dist/esm/ic-top-navigation.entry.js +1 -1
  303. package/dist/esm/ic-typography.entry.js +95 -3
  304. package/dist/esm/ic-typography.entry.js.map +1 -1
  305. package/dist/esm/loader.js +1 -1
  306. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +3 -0
  307. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -0
  308. package/dist/types/components/ic-menu/ic-menu.d.ts +1 -0
  309. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +1 -0
  310. package/dist/types/components/ic-pagination/ic-pagination.d.ts +7 -0
  311. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -0
  312. package/dist/types/components/ic-select/ic-select.d.ts +11 -11
  313. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -0
  314. package/dist/types/components/ic-typography/ic-typography.d.ts +27 -0
  315. package/dist/types/components.d.ts +35 -15
  316. package/hydrate/index.js +226 -125
  317. package/package.json +3 -3
  318. package/dist/cjs/helpers-2021e212.js.map +0 -1
  319. package/dist/core/p-14835d6f.entry.js +0 -2
  320. package/dist/core/p-14835d6f.entry.js.map +0 -1
  321. package/dist/core/p-276f7ecb.entry.js +0 -2
  322. package/dist/core/p-276f7ecb.entry.js.map +0 -1
  323. package/dist/core/p-3845b769.entry.js.map +0 -1
  324. package/dist/core/p-3c23f963.entry.js +0 -2
  325. package/dist/core/p-3c23f963.entry.js.map +0 -1
  326. package/dist/core/p-3dc2ff7b.entry.js.map +0 -1
  327. package/dist/core/p-3dea2867.js +0 -2
  328. package/dist/core/p-3dea2867.js.map +0 -1
  329. package/dist/core/p-4b87445b.entry.js +0 -2
  330. package/dist/core/p-4b87445b.entry.js.map +0 -1
  331. package/dist/core/p-4c8fcfe6.entry.js +0 -2
  332. package/dist/core/p-4c8fcfe6.entry.js.map +0 -1
  333. package/dist/core/p-52fd3533.entry.js.map +0 -1
  334. package/dist/core/p-56fe91ad.entry.js.map +0 -1
  335. package/dist/core/p-864b46bf.entry.js +0 -2
  336. package/dist/core/p-864b46bf.entry.js.map +0 -1
  337. package/dist/core/p-895bda21.entry.js.map +0 -1
  338. package/dist/core/p-92c4fa7f.entry.js.map +0 -1
  339. package/dist/core/p-a33a04b2.entry.js.map +0 -1
  340. package/dist/core/p-a5bee11f.entry.js +0 -2
  341. package/dist/core/p-a5bee11f.entry.js.map +0 -1
  342. package/dist/core/p-db7131b6.entry.js +0 -2
  343. package/dist/core/p-db7131b6.entry.js.map +0 -1
  344. package/dist/core/p-de891d3d.entry.js +0 -2
  345. package/dist/core/p-de891d3d.entry.js.map +0 -1
  346. package/dist/core/p-e0f24ccd.entry.js.map +0 -1
  347. package/dist/core/p-ea526b54.entry.js +0 -2
  348. package/dist/core/p-ea526b54.entry.js.map +0 -1
  349. package/dist/core/p-ec8b228c.entry.js +0 -2
  350. package/dist/core/p-ec8b228c.entry.js.map +0 -1
  351. package/dist/core/p-ff6583e6.entry.js +0 -2
  352. package/dist/core/p-ff6583e6.entry.js.map +0 -1
  353. package/dist/esm/helpers-b2b47a7d.js.map +0 -1
  354. /package/dist/core/{p-0575a77f.entry.js.map → p-050dbce8.entry.js.map} +0 -0
  355. /package/dist/core/{p-0a41c3cb.entry.js.map → p-0969a95a.entry.js.map} +0 -0
  356. /package/dist/core/{p-b61e76e2.entry.js.map → p-0f153569.entry.js.map} +0 -0
  357. /package/dist/core/{p-3fb307e6.entry.js.map → p-1585e5c1.entry.js.map} +0 -0
  358. /package/dist/core/{p-100dbcec.entry.js.map → p-31b4b684.entry.js.map} +0 -0
  359. /package/dist/core/{p-e839e5dc.entry.js.map → p-32cc8827.entry.js.map} +0 -0
  360. /package/dist/core/{p-d5d9923a.entry.js.map → p-36e0671f.entry.js.map} +0 -0
  361. /package/dist/core/{p-6a77992e.entry.js.map → p-46371c05.entry.js.map} +0 -0
  362. /package/dist/core/{p-9413d639.entry.js.map → p-4dd0eb6a.entry.js.map} +0 -0
  363. /package/dist/core/{p-dc0b9e80.entry.js.map → p-5e896163.entry.js.map} +0 -0
  364. /package/dist/core/{p-e41e701a.entry.js.map → p-68547339.entry.js.map} +0 -0
  365. /package/dist/core/{p-1eb0992b.entry.js.map → p-70124e59.entry.js.map} +0 -0
  366. /package/dist/core/{p-6b39f8b4.entry.js.map → p-8edd3a9b.entry.js.map} +0 -0
  367. /package/dist/core/{p-c0813424.entry.js.map → p-9715ec62.entry.js.map} +0 -0
  368. /package/dist/core/{p-cb437317.entry.js.map → p-983cb33c.entry.js.map} +0 -0
  369. /package/dist/core/{p-002a63e9.entry.js.map → p-a18c0672.entry.js.map} +0 -0
  370. /package/dist/core/{p-47b0ed42.entry.js.map → p-a8dc8196.entry.js.map} +0 -0
  371. /package/dist/core/{p-e384aaee.entry.js.map → p-af815dfb.entry.js.map} +0 -0
  372. /package/dist/core/{p-8780890e.entry.js.map → p-b69226d2.entry.js.map} +0 -0
  373. /package/dist/core/{p-3a67718c.entry.js.map → p-bffa2e1a.entry.js.map} +0 -0
  374. /package/dist/core/{p-a0f4e641.entry.js.map → p-ca20c9c3.entry.js.map} +0 -0
  375. /package/dist/core/{p-546b620e.entry.js.map → p-df1b0f17.entry.js.map} +0 -0
  376. /package/dist/core/{p-5d077cf7.entry.js.map → p-fb5861c6.entry.js.map} +0 -0
  377. /package/dist/core/{p-3e5eb873.entry.js.map → p-fd18d7a3.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-button/ic-button.css?tag=ic-button&encapsulation=shadow","src/components/ic-button/ic-button.tsx","src/components/ic-loading-indicator/ic-loading-indicator.css?tag=ic-loading-indicator&encapsulation=shadow","src/components/ic-loading-indicator/ic-loading-indicator.tsx","src/components/ic-tooltip/ic-tooltip.css?tag=ic-tooltip&encapsulation=shadow","src/components/ic-tooltip/ic-tooltip.tsx"],"names":["icButtonCss","buttonIds","Button","this","inheritedAttributes","hasTooltip","buttonIdNum","handleClick","el","type","closest","handleHiddenFormButtonClick","onFocus","icFocus","emit","onBlur","icBlur","[object Object]","event","disabled","loading","stopImmediatePropagation","ev","theme","detail","updateTheme","mode","buttonEl","focus","newValue","tooltipEl","label","setAttribute","iconEl","querySelector","form","hiddenFormButton","document","createElement","style","display","appendChild","click","remove","newTheme","foregroundColor","getThemeFromContext","IcThemeForegroundEnum","Default","appearance","inheritAttributes","IC_INHERITED_ARIA","id","undefined","variant","TagType","href","_a","title","aria-label","ariaLabel","restInheritedAttributes","__rest","buttonAttrs","formaction","formenctype","formmethod","formnovalidate","formtarget","download","rel","target","referrerpolicy","hreflang","newTitle","titleAttr","tooltipText","describedBy","buttonId","ButtonContent","h","Object","assign","class","aria-disabled","ref","aria-describedby","part","hasIconSlot","name","Dark","Light","Host","size","fullWidth","onClick","disableTooltip","placement","tooltipPlacement","icLoadingIndicatorCss","LoadingIndicator","updateCircularProgressMeter","indeterminate","circularMeter","setProperty","String","progress","getLabel","labelIndex","setLabel","Promise","interval","setInterval","labelList","length","labelDuration","getLabelVariant","width","outerElement","offsetWidth","setCircleLineWidth","compactStepCircularLineWidth","host","classList","contains","toastDismissTimerCircularLineWidth","circularLineWidth","circularDiameter","setLinearDeterminateWidth","innerElement","Math","min","max","proportion","showSecond","add","calcOuterClass","cls","updateLabel","split","indicatorLabel","setCircleXY","r","x","y","nextRadius","setDashSteps","radius","dashArray","PI","shadowRoot","Number","clearInterval","description","innerLabel","role","aria-labelledby","aria-valuenow","aria-valuemin","aria-valuemax","viewBox","cx","cy","icTooltipCss","Tooltip","mouseOverTool","showEvents","disableHover","instantHideEvents","delayedHideEvents","persistTooltip","show","popper","toolTip","setOptions","options","modifiers","enabled","update","hide","removeAttribute","checkCloseTooltip","setTimeout","mouseEnterTooltip","mouseLeaveTooltip","handleKeyDown","key","popperInstance","manageEventListeners","action","method","forEach","screenReaderOnlyStyles","position","left","top","height","overflow","describedBySpan","previousElementSibling","innerText","createPopper","offset","element","arrow","onComponentRequiredPropUndefined","prop","propName","ariaDescribedBy","insertAdjacentElement","ic-tooltip","data-popper-arrow"],"mappings":"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","sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n* @prop --min-width: Minimum width of the button.\n*/\n\n:host {\n display: inline-block;\n\n --button-default: var(--ic-action-default);\n --button-default-hover: var(--ic-action-default-hover);\n --button-default-active: var(--ic-action-default-active);\n --button-default-background-hover: var(--ic-action-default-bg-hover);\n --button-default-background-active: var(--ic-action-default-bg-active);\n --icon-width: 100%;\n --icon-height: 100%;\n}\n\n.button {\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 gap: var(--ic-space-xs);\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.button:hover {\n cursor: pointer;\n}\n\n.button:focus,\n:host .button:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n:host(.light) .button:focus {\n box-shadow: var(--ic-border-focus);\n}\n\n.button:focus-visible {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.dark) .button {\n --button-default: var(--ic-action-dark);\n --button-default-hover: var(--ic-action-dark);\n --button-default-active: var(--ic-action-dark);\n --button-default-background-hover: var(--ic-action-dark-bg-hover);\n --button-default-background-active: var(--ic-action-dark-bg-active);\n}\n\n:host(.light) .button {\n --button-default: var(--ic-action-light);\n --button-default-hover: var(--ic-action-light);\n --button-default-active: var(--ic-action-light);\n --button-default-background-hover: var(--ic-action-light-bg-hover);\n --button-default-background-active: var(--ic-action-light-bg-active);\n}\n\n:host(.button-variant-primary.light) .button {\n color: var(--ic-color-primary-text);\n\n --button-default-hover: var(--ic-action-light-hover);\n --button-default-active: var(--ic-action-light-active);\n}\n\n:host(.button-variant-primary.dark) .button {\n --button-default-hover: var(--ic-action-dark-hover);\n --button-default-active: var(--ic-action-dark-active);\n}\n\n:host(.disabled),\n:host(.disabled) .button,\n:host(.loading),\n:host(.loading) .button {\n pointer-events: none;\n}\n\n/* Variants */\n\n/* Primary */\n\n:host(.button-variant-primary) .button {\n color: var(--ic-architectural-white);\n background-color: var(--button-default);\n}\n\n:host(.button-variant-primary) .button:hover:not(:focus) {\n background-color: var(--button-default-hover);\n}\n\n:host(.button-variant-primary) .button:active:not(:focus),\n:host(.button-variant-primary.loading) .button {\n background-color: var(--button-default-active);\n}\n\n:host(.button-variant-primary.disabled) .button {\n background: var(--ic-architectural-200);\n color: var(--ic-architectural-300);\n}\n\n:host(.button-variant-primary.light.disabled) .button {\n background: var(--ic-architectural-600);\n color: var(--ic-architectural-500);\n}\n\n/* Secondary */\n\n:host(.button-variant-secondary) .button {\n border: var(--ic-space-1px) solid var(--button-default);\n color: var(--button-default);\n}\n\n:host(.button-variant-secondary) .button:hover:not(:focus) {\n background-color: var(--button-default-background-hover);\n border-color: var(--button-default-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-secondary) .button:active:not(:focus) {\n border-color: var(--button-default-active);\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-secondary.loading) .button {\n border-color: var(--button-default-active);\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-secondary.disabled) .button,\n:host(.button-variant-secondary.disabled) .button:hover,\n:host(.button-variant-secondary.disabled) .button:active {\n border-color: var(--ic-architectural-300);\n color: var(--ic-architectural-300);\n background: none;\n}\n\n:host(.button-variant-secondary.light.disabled) .button,\n:host(.button-variant-secondary.light.disabled) .button:hover,\n:host(.button-variant-secondary.light.disabled) .button:active {\n border-color: var(--ic-architectural-500);\n color: var(--ic-architectural-500);\n background: none;\n}\n\n/* Tertiary */\n\n:host(.button-variant-tertiary) .button {\n color: var(--button-default);\n}\n\n:host(.button-variant-tertiary) .button:hover:not(:focus) {\n background-color: var(--button-default-background-hover);\n color: var(--button-default-hover);\n}\n\n:host(.button-variant-tertiary) .button:active:not(:focus),\n:host(.button-variant-tertiary.loading) .button {\n background-color: var(--button-default-background-active);\n color: var(--button-default-active);\n}\n\n:host(.button-variant-tertiary.disabled) .button,\n:host(.button-variant-tertiary.disabled) .button:hover,\n:host(.button-variant-tertiary.disabled) .button:active {\n border-color: var(--ic-architectural-300);\n color: var(--ic-architectural-300);\n background: none;\n}\n\n:host(.button-variant-tertiary.light.disabled) .button,\n:host(.button-variant-tertiary.light.disabled) .button:hover,\n:host(.button-variant-tertiary.light.disabled) .button:active {\n border-color: var(--ic-architectural-500);\n color: var(--ic-architectural-500);\n background: none;\n}\n\n/* Icon */\n\n:host(.button-variant-icon) .button {\n color: var(--button-default);\n min-width: 0;\n}\n\n:host(.button-variant-icon) .button:hover:not(:focus) {\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.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) .button:hover,\n:host(.button-variant-icon.disabled) .button:active {\n color: var(--ic-architectural-300);\n background: none;\n}\n\n/* Destructive */\n\n:host(.button-variant-destructive) .button {\n color: var(--ic-architectural-white);\n background-color: var(--ic-action-destructive);\n text-transform: uppercase;\n}\n\n:host(.button-variant-destructive) .button:hover:not(:focus) {\n background-color: var(--ic-action-destructive-hover);\n}\n\n:host(.button-variant-destructive) .button:active:not(:focus),\n:host(.button-variant-destructive.loading) .button {\n background-color: var(--ic-action-destructive-active);\n}\n\n:host(.button-variant-destructive.disabled) .button {\n background: var(--ic-architectural-200);\n color: var(--ic-architectural-300);\n}\n\n/* Sizing */\n\n:host(.button-size-default) .button {\n height: 2.5rem;\n padding: var(--ic-space-xs) var(--ic-space-md);\n}\n\n:host(.button-size-small) .button {\n height: var(--ic-space-xl);\n padding: var(--ic-space-xxs) var(--ic-space-md);\n}\n\n:host(.button-size-large) .button {\n height: var(--ic-space-xxl);\n padding: var(--ic-space-sm) var(--ic-space-md);\n}\n\n:host(.button-size-default.button-variant-icon) .button {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n padding: 0.375rem;\n}\n\n:host(.button-size-small.button-variant-icon) .button {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n padding: var(--ic-space-xxs);\n}\n\n:host(.button-size-large.button-variant-icon) .button {\n height: 2.5rem;\n width: 2.5rem;\n padding: var(--ic-space-xs);\n}\n\n/* Width */\n:host(.full-width),\n:host(.full-width) .button {\n width: 100%;\n}\n\n/* Loading */\n\ndiv.loading-container {\n position: relative;\n align-items: center;\n width: 100%;\n}\n\nic-loading-indicator {\n --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}\n\n::slotted(*) {\n width: var(--icon-width) !important;\n height: var(--icon-height) !important;\n fill: currentcolor !important;\n pointer-events: none;\n}\n\n:host(.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\n:host(.search-submit-button-small) ::slotted(svg) {\n --icon-height: 1rem;\n --icon-width: 1rem;\n}\n\n:host(.clear-button) {\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.clear-button) .button:focus {\n box-shadow: none;\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) {\n display: flex;\n align-items: center;\n margin: 0 var(--ic-space-xxs);\n}\n\n:host(.menu-close-button) ::slotted(svg) {\n --icon-height: 0.875rem;\n --icon-width: 0.875rem;\n}\n\n:host(.popout-menu-button) .button {\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/** High Contrast **/\n@media (forced-colors: active) {\n .button {\n border: 0.125rem solid transparent;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n h,\n} from \"@stencil/core\";\n\nimport { getThemeFromContext, inheritAttributes } from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcButtonSizes,\n IcButtonTypes,\n IcButtonVariants,\n IcButtonTooltipPlacement,\n} from \"./ic-button.types\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\n\nlet buttonIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n */\n@Component({\n tag: \"ic-button\",\n styleUrl: \"ic-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Button {\n @Element() el: HTMLIcButtonElement;\n /**\n * If `true`, the button will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n /**\n * If `true`, the button will be in loading state.\n */\n @Prop() loading?: boolean = false;\n /**\n * The type of the button.\n */\n @Prop() type?: IcButtonTypes = \"button\";\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 * 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 * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\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 * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n /**\n * The variant of the button to be displayed.\n */\n @Prop() variant?: IcButtonVariants = \"primary\";\n /**\n * The size of the button to be displayed.\n */\n @Prop() size?: IcButtonSizes = \"default\";\n /**\n * If `true`, the button will fill the width of the container.\n */\n @Prop() fullWidth?: boolean = false;\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?: boolean = false;\n /**\n * The position of the tooltip in relation to the button.\n */\n @Prop() tooltipPlacement?: IcButtonTooltipPlacement = \"bottom\";\n /**\n * The appearance of the button, e.g. dark, light, or the default.\n */\n @Prop({ mutable: true }) appearance?: IcThemeForeground = \"default\";\n /**\n * The <form> element to associate the button with.\n */\n @Prop() form?: string;\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 * The way the submitted form data is encoded.\n */\n @Prop() formenctype?: string;\n /**\n * The HTTP method used to submit the form.\n */\n @Prop() formmethod?: string;\n /**\n * If `true`, the form will not be validated when submitted.\n */\n @Prop() formnovalidate?: boolean;\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 * Emitted when button has focus\n */\n @Event() icFocus!: EventEmitter<void>;\n /**\n * Emitted when button has blur\n */\n @Event() icBlur!: EventEmitter<void>;\n\n private inheritedAttributes: { [k: string]: unknown } = {};\n private buttonEl: HTMLElement;\n private hasTooltip: boolean = false;\n private buttonIdNum = buttonIds++;\n private tooltipEl: HTMLIcTooltipElement;\n private id: string;\n\n @Listen(\"click\", { capture: true })\n handleHostClick(event: Event): void {\n if (this.disabled || this.loading) {\n event.stopImmediatePropagation();\n }\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.updateTheme(theme.mode);\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n /**\n * @internal Updates tooltip/aria-label text - needed as can't watch an ARIA attribute change.\n */\n @Method()\n async updateAriaLabel(newValue: string): Promise<void> {\n if (this.hasTooltip) {\n this.tooltipEl.label = newValue;\n this.buttonEl.setAttribute(\"aria-label\", newValue);\n }\n }\n\n private hasIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n if (iconEl != null) {\n return true;\n }\n return false;\n }\n\n private handleHiddenFormButtonClick(form: HTMLFormElement): void {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", this.el.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n }\n\n private handleClick = (): void => {\n if (\n (this.el.type === \"submit\" || this.el.type === \"reset\") &&\n !!this.el.closest(\"FORM\")\n ) {\n this.handleHiddenFormButtonClick(this.el.closest(\"FORM\"));\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = () => {\n this.icBlur.emit();\n };\n\n private updateTheme(newTheme: IcThemeForeground = null): void {\n const foregroundColor = getThemeFromContext(this.el, newTheme || null);\n\n if (foregroundColor !== IcThemeForegroundEnum.Default) {\n this.appearance = foregroundColor;\n }\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"aria-expanded\",\n \"title\",\n ]);\n\n this.el.setAttribute(\"exportparts\", \"button\");\n\n const id = this.el.id;\n this.id = id !== undefined ? id : null;\n this.hasTooltip = this.variant === \"icon\";\n }\n\n componentDidLoad(): void {\n this.updateTheme();\n }\n\n render() {\n const TagType = (this.href && \"a\") || \"button\";\n const {\n title,\n \"aria-label\": ariaLabel,\n ...restInheritedAttributes\n } = this.inheritedAttributes;\n const buttonAttrs =\n TagType === \"button\"\n ? {\n type: this.type,\n disabled: this.disabled,\n form: this.form,\n formaction: this.formaction,\n formenctype: this.formenctype,\n formmethod: this.formmethod,\n formnovalidate: this.formnovalidate,\n formtarget: this.formtarget,\n }\n : {\n download: this.download !== false ? this.download : null,\n href: this.href,\n rel: this.rel,\n target: this.target,\n referrerpolicy: this.referrerpolicy,\n hreflang: this.hreflang,\n };\n const newTitle = title && (title as string);\n const titleAttr = this.hasTooltip ? {} : { title: newTitle };\n let tooltipText = \"\";\n if (this.hasTooltip) {\n if (newTitle !== undefined) {\n tooltipText = newTitle;\n } else if (ariaLabel !== null) {\n tooltipText = ariaLabel as string;\n }\n }\n\n let describedBy: string = null;\n let buttonId: string = null;\n if (this.hasTooltip) {\n buttonId =\n this.id !== null\n ? `ic-button-with-tooltip-${this.id}`\n : `ic-button-with-tooltip-${this.buttonIdNum}`;\n describedBy = `ic-tooltip-${buttonId}`;\n }\n\n const ButtonContent = () => {\n return (\n <TagType\n class=\"button\"\n aria-disabled={this.loading || this.disabled ? \"true\" : null}\n aria-label={this.loading ? \"Loading\" : ariaLabel}\n {...buttonAttrs}\n {...restInheritedAttributes}\n {...titleAttr}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n ref={(el) => (this.buttonEl = el)}\n id={buttonId}\n aria-describedby={describedBy}\n part=\"button\"\n >\n {this.hasIconSlot() && !this.loading && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n {this.loading ? (\n <div class=\"loading-container\">\n <ic-loading-indicator\n type=\"linear\"\n appearance={\n this.variant === \"primary\" ||\n this.variant === \"destructive\" ||\n this.appearance === IcThemeForegroundEnum.Dark ||\n this.appearance === IcThemeForegroundEnum.Light\n ? \"light\"\n : \"dark\"\n }\n ></ic-loading-indicator>\n </div>\n ) : (\n <slot />\n )}\n </TagType>\n );\n };\n\n return (\n <Host\n class={{\n [\"disabled\"]: this.disabled && !this.loading,\n [`button-variant-${this.variant}`]: true,\n [`button-size-${this.size}`]: true,\n [\"loading\"]: this.loading,\n [\"dark\"]: this.appearance === IcThemeForegroundEnum.Dark,\n [\"light\"]: this.appearance === IcThemeForegroundEnum.Light,\n [\"full-width\"]: this.fullWidth,\n }}\n onClick={this.handleClick}\n >\n {this.hasTooltip && (\n <ic-tooltip\n class={{ [\"tooltip-disabled\"]: this.disableTooltip }}\n ref={(el) => (this.tooltipEl = el)}\n label={tooltipText}\n target={buttonId}\n placement={this.tooltipPlacement}\n >\n <ButtonContent />\n </ic-tooltip>\n )}\n\n {!this.hasTooltip && <ButtonContent />}\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --circular-diameter: Diameter of the circular-indicator\n */\n\n display: block;\n\n --linear-border-radius: 0.25rem;\n --inner-color: var(--ic-action-default);\n --outer-color: var(--ic-architectural-100);\n --label-color: var(--ic-color-primary-text);\n --margin: none;\n --linear-line-height: var(--ic-space-xs);\n}\n\n:host(.light) {\n --inner-color: var(--ic-architectural-white);\n --outer-color: var(--ic-architectural-800);\n --label-color: var(--ic-architectural-white);\n}\n\n.ic-loading-container {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n:host([size=\"small\"]) {\n --circular-diameter: 2.5rem;\n --linear-line-height: var(--ic-space-xxs);\n}\n\n:host([size=\"default\"]) {\n --circular-diameter: 5rem;\n}\n\n:host([size=\"large\"]) {\n --circular-diameter: 7.5rem;\n}\n\n:host([size=\"icon\"]) {\n display: inline-block;\n\n --margin: var(--ic-space-xxxs);\n --circular-diameter: 1.25rem;\n}\n\n:host(.label) {\n --margin: 0 0 var(--ic-space-xs) 0;\n}\n\n.ic-loading-label {\n white-space: nowrap;\n color: var(--label-color);\n margin-left: var(--label-margin-left);\n}\n\n.ic-loading-circular-outer {\n height: var(--circular-diameter);\n width: var(--circular-diameter);\n}\n\n.ic-loading-circular-outer.indeterminate {\n animation: circular-animation 1s linear;\n animation-iteration-count: infinite;\n}\n\n@keyframes circular-animation {\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.ic-loading-circular-outer,\n.ic-loading-linear-outer {\n margin: var(--margin);\n}\n\n.ic-loading-linear-outer {\n background-color: var(--outer-color);\n height: var(--linear-line-height);\n width: 100%;\n border-radius: var(--linear-border-radius);\n overflow: hidden;\n}\n\n.ic-loading-linear-inner {\n position: relative;\n height: 100%;\n background-color: var(--inner-color);\n border-radius: var(--linear-border-radius);\n}\n\n.indeterminate > .ic-loading-linear-inner {\n animation: linear-animation 2s infinite;\n}\n\n.determinate > .ic-loading-linear-inner {\n transition: width 0.5s;\n width: var(--linear-width);\n}\n\n:host(.full-width) {\n --linear-border-radius: none;\n}\n\n@keyframes linear-animation {\n 0% {\n width: 0%;\n left: -1%;\n }\n\n 25% {\n width: 0%;\n left: -1%;\n }\n\n 50% {\n width: 101%;\n left: -1%;\n }\n\n 75% {\n width: 0%;\n left: 101%;\n }\n\n 100% {\n width: 0%;\n left: 101%;\n }\n}\n\n.ic-loading-circular-svg {\n position: relative;\n width: 100%;\n height: 100%;\n transform: rotate(-90deg);\n}\n\n.ic-loading-circular-svg circle {\n width: 100%;\n height: 100%;\n fill: none;\n stroke: var(--outer-color);\n stroke-width: var(--circular-line-width);\n stroke-linecap: round;\n}\n\n/* --stroke-dash-array calculated via dashArray method */\n.ic-loading-circular-svg circle:nth-child(2) {\n --circular-indeterminate: calc(\n (0.25 * var(--stroke-dasharray)) - var(--stroke-dasharray)\n );\n\n stroke-dasharray: var(--stroke-dasharray), var(--stroke-dasharray);\n stroke-dashoffset: var(--stroke-dashoffset, var(--circular-indeterminate));\n stroke: var(--compact-step-inner-color, var(--inner-color));\n}\n\n:host(.inner-label) .ic-loading-circular-inner {\n display: grid;\n}\n\n:host(.inner-label) .ic-loading-circular-svg,\n.inner-text {\n grid-column: 1;\n grid-row: 1;\n}\n\n:host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: var(--ic-architectural-300);\n}\n\n.inner-text {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--ic-space-lg);\n height: inherit;\n overflow: hidden;\n margin: auto;\n color: var(--ic-theme-primary);\n}\n\n:host(.not-required.compact-step-progress-indicator) .inner-text {\n color: var(--ic-color-tertiary-text);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n .indeterminate > .ic-loading-circular-inner {\n forced-color-adjust: none;\n }\n\n .ic-loading-linear-outer {\n border: var(--ic-hc-border);\n }\n\n .ic-loading-linear-inner {\n background-color: canvastext;\n }\n\n .ic-loading-circular-svg circle {\n stroke: Background;\n }\n\n .ic-loading-circular-svg circle:nth-child(2) {\n stroke: canvastext;\n }\n\n :host(.not-required.compact-step-progress-indicator)\n .ic-loading-circular-svg\n circle:nth-child(2) {\n stroke: GrayText;\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\nimport {\n IcLoadingCircleXYR,\n IcLoadingSizes,\n IcLoadingTypes,\n} from \"./ic-loading-indicator.types\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-loading-indicator\",\n styleUrl: \"ic-loading-indicator.css\",\n shadow: true,\n})\nexport class LoadingIndicator {\n @Element() host: HTMLIcLoadingIndicatorElement;\n\n /**\n * The current amount of progress made.\n * If not provided, component acts as an indeterminate loading indicator.\n */\n @Prop() progress?: number;\n\n /**\n * The minimum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() min?: number = 0;\n\n /**\n * The maximum value that the progress value can take.\n * Used to calculate the proportional width of the progress bar.\n */\n @Prop() max?: number = 100;\n\n /**\n * The label to be displayed beneath the loading indicator.\n * Display a changing label by separating multiple messages with forward slashes.\n */\n @Prop() label?: string;\n\n /**\n * The description that will be set as the aria-label of the loading indicator when not using a visible label.\n */\n @Prop() description?: string = \"Loading\";\n\n /**\n * @internal The step number of a compact step, managed by ic-step.\n */\n @Prop() innerLabel?: number;\n\n /**\n * The time in milliseconds before the label changes.\n */\n @Prop() labelDuration?: number = 8000;\n\n /**\n * The size of the loading indicator.\n */\n @Prop({ reflect: true }) size?: IcLoadingSizes = \"default\";\n\n /**\n * The type of indicator, either linear or circular.\n */\n @Prop({ reflect: true }) type?: IcLoadingTypes = \"circular\";\n\n /**\n * If `true`, when linear, the full-width variant (i.e. without a border radius) will be displayed.\n */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /**\n * The appearance of the loading indicator, e.g. dark or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n @State() indicatorLabel: string;\n @State() indeterminate: boolean;\n @State() showSecond: boolean = false;\n @State() circularLineWidth: number;\n @State() circularDiameter: number;\n\n @Watch(\"label\")\n watchPropHandler(): void {\n this.updateLabel();\n }\n\n @Watch(\"progress\")\n watchProgressHandler(): void {\n if (this.type === \"circular\") {\n this.updateCircularProgressMeter();\n }\n }\n\n private outerElement?: HTMLDivElement;\n private innerElement?: HTMLDivElement;\n private labelList: string[];\n private circularMeter: SVGCircleElement;\n private interval: ReturnType<typeof setInterval>;\n\n private updateCircularProgressMeter = () => {\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--progress-value\",\n String(this.progress)\n );\n }\n };\n\n private getLabel = (\n labelIndex: number,\n setLabel: (label: string) => void\n ) => {\n return new Promise(() => {\n this.interval = setInterval(() => {\n if (labelIndex < this.labelList.length - 1) {\n labelIndex++;\n } else {\n labelIndex = 0;\n }\n setLabel(this.labelList[labelIndex]);\n }, this.labelDuration);\n });\n };\n\n private getLabelVariant = () => {\n let variant: \"label\" | \"h4\" | \"h2\" = \"h4\";\n const width = this.outerElement?.offsetWidth;\n if (this.size === \"small\" || (this.type === \"circular\" && width < 60)) {\n variant = \"label\";\n } else if (\n this.size === \"large\" ||\n (this.type === \"circular\" && width >= 120)\n ) {\n variant = \"h2\";\n }\n return variant;\n };\n\n // Sets the circular indicator line width - accounting for the circle size being altered using the CSS custom property\n private setCircleLineWidth = () => {\n const { offsetWidth: width } = this.outerElement;\n\n const compactStepCircularLineWidth = this.host.classList.contains(\n \"compact-step-progress-indicator\"\n )\n ? 40\n : 0;\n const toastDismissTimerCircularLineWidth = this.host.classList.contains(\n \"toast-dismiss-timer\"\n )\n ? 20\n : 0;\n\n if (\n width ||\n compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth\n ) {\n this.circularLineWidth =\n (compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth ||\n width) * 0.1;\n this.circularDiameter =\n compactStepCircularLineWidth ||\n toastDismissTimerCircularLineWidth ||\n width;\n this.outerElement.style.setProperty(\n \"--circular-line-width\",\n `${this.circularLineWidth}px`\n );\n }\n };\n\n private setLinearDeterminateWidth = () => {\n if (!this.innerElement) return;\n // Ensure progress cannot be out of bounds\n\n const progress = Math.min(this.max, Math.max(this.min, this.progress));\n const proportion = (progress - this.min) / (this.max - this.min);\n this.showSecond = proportion > 0.5;\n if (this.showSecond) {\n this.innerElement.classList.remove(\"clip\");\n } else {\n this.innerElement.classList.add(\"clip\");\n }\n this.innerElement.style.setProperty(\n \"--linear-width\",\n `${proportion * 100}%`\n );\n };\n\n private calcOuterClass = (): string => {\n let cls = `ic-loading-${this.type}-outer`;\n cls += this.indeterminate ? \" indeterminate\" : \" determinate\";\n return cls;\n };\n\n private updateLabel = (): void => {\n if (this.label !== undefined) {\n this.labelList = this.label.split(\"/\");\n const labelIndex = 0;\n this.indicatorLabel = this.labelList[labelIndex];\n if (this.labelList.length > 1) {\n this.getLabel(labelIndex, (label) => {\n this.indicatorLabel = label;\n });\n }\n }\n };\n\n private setCircleXY = (): IcLoadingCircleXYR => {\n if (this.circularDiameter > 0) {\n const r = this.circularDiameter / 2;\n const x = r;\n const y = r;\n const nextRadius = r - this.circularLineWidth / 2;\n this.setDashSteps(nextRadius);\n\n return { x, y, r: nextRadius };\n }\n return { x: 0, y: 0, r: 0 };\n };\n\n private setDashSteps = (radius: number) => {\n const dashArray = 2 * Math.PI * radius;\n const progress = Math.min(Math.max(this.progress, this.min), this.max);\n const proportion = -1 - (progress - this.min) / (this.max - this.min);\n\n this.circularMeter.style.setProperty(\n \"--stroke-dasharray\",\n `${dashArray}px`\n );\n\n if (!this.indeterminate) {\n this.circularMeter.style.setProperty(\n \"--circular-steps-max\",\n String(this.max)\n );\n this.circularMeter.style.setProperty(\n \"--stroke-dashoffset\",\n `${proportion * dashArray}px`\n );\n }\n };\n\n componentWillLoad(): void {\n this.indeterminate = this.progress === undefined;\n this.updateLabel();\n }\n\n componentDidLoad(): void {\n if (this.type === \"circular\") {\n this.setCircleLineWidth();\n this.circularMeter = this.host.shadowRoot.querySelector(\n \".ic-loading-circular-svg circle:nth-child(2)\"\n );\n this.updateCircularProgressMeter();\n }\n\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n componentWillUpdate(): void {\n this.indeterminate = this.progress === undefined;\n }\n\n componentDidUpdate(): void {\n if (Number(this.progress) >= 0 && this.type === \"linear\") {\n this.setLinearDeterminateWidth();\n }\n }\n\n disconnectedCallback(): void {\n clearInterval(this.interval);\n }\n render() {\n const { appearance, label, description, size, fullWidth, innerLabel } =\n this;\n const { x, y, r } = this.setCircleXY();\n\n return (\n <Host\n class={{\n [\"light\"]: appearance === IcThemeForegroundEnum.Light,\n [\"label\"]: !!label,\n [\"full-width\"]: fullWidth,\n [\"inner-label\"]: !!innerLabel,\n }}\n >\n <div class=\"ic-loading-container\">\n <div\n ref={(el) => (this.outerElement = el as HTMLDivElement)}\n class={this.calcOuterClass()}\n role=\"progressbar\"\n aria-labelledby={\n this.label && this.size !== \"icon\" && \"ic-loading-label\"\n }\n aria-label={description}\n aria-valuenow={this.progress}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n >\n <div\n ref={(el) => (this.innerElement = el as HTMLDivElement)}\n class={`ic-loading-${this.type}-inner`}\n >\n {this.innerLabel &&\n this.innerLabel !== undefined &&\n this.size === \"small\" && (\n <ic-typography variant=\"subtitle-small\" class=\"inner-text\">\n {this.innerLabel}\n </ic-typography>\n )}\n {this.type === \"circular\" && (\n <svg\n class=\"ic-loading-circular-svg\"\n viewBox={`0 0 ${this.circularDiameter || 0} ${\n this.circularDiameter || 0\n }`}\n >\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n <circle cx={`${x}`} cy={`${y}`} r={`${r}`}></circle>\n </svg>\n )}\n </div>\n </div>\n {label && size !== \"icon\" && (\n <ic-typography\n id=\"ic-loading-label\"\n class=\"ic-loading-label\"\n role=\"status\"\n variant={this.getLabelVariant()}\n >\n <p>{this.indicatorLabel}</p>\n </ic-typography>\n )}\n </div>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-tooltip: z-index of tooltip\n */\n\n:host(.ic-tooltip) .ic-tooltip-container {\n background-color: var(--ic-architectural-800);\n color: #ffff;\n text-align: center;\n padding: var(--ic-space-xxxs) 0.625rem;\n border-radius: var(--ic-border-radius);\n position: absolute;\n max-width: 20rem;\n display: none;\n z-index: var(--ic-z-index-tooltip);\n box-shadow: var(--ic-elevation-overlay);\n}\n\n:host(.tooltip-navigation-item:not(.tooltip-navigation-item-side-nav-collapsed))\n .ic-tooltip-container,\n:host(.tooltip-disabled) .ic-tooltip-container {\n display: none !important;\n}\n\n:host(.tooltip-long-label-navigation-item-side-nav-expanded)\n .ic-tooltip-container[data-show] {\n display: block !important;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow,\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n position: absolute;\n background: inherit;\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow {\n visibility: hidden;\n}\n\n:host(.ic-tooltip) .ic-tooltip-arrow::before {\n visibility: visible;\n content: \"\";\n}\n\n:host(.ic-tooltip) .ic-tooltip-container[data-show] {\n display: block;\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow {\n bottom: calc(-1 * var(--ic-space-md));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"top\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 0 var(--ic-border-radius) var(--ic-border-radius);\n left: 0;\n height: var(--ic-space-xxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow {\n top: calc(-1 * var(--ic-space-xxs));\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"bottom\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) var(--ic-border-radius) 0 0;\n left: 0;\n height: var(--ic-space-xxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow {\n right: var(--ic-space-xxxs);\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"left\"]\n > .ic-tooltip-arrow::before {\n border-radius: 0 var(--ic-border-radius) var(--ic-border-radius) 0;\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow {\n left: -0.875rem;\n}\n\n:host(.ic-tooltip)\n .ic-tooltip-container[data-popper-placement^=\"right\"]\n > .ic-tooltip-arrow::before {\n border-radius: var(--ic-border-radius) 0 0 var(--ic-border-radius);\n}\n\n@media (forced-colors: active) {\n :host(.ic-tooltip) .ic-tooltip-container {\n border: var(--ic-hc-border);\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { Instance, createPopper } from \"@popperjs/core\";\nimport { IcTooltipPlacements } from \"./ic-tooltip.types\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-tooltip\",\n styleUrl: \"ic-tooltip.css\",\n shadow: true,\n})\nexport class Tooltip {\n @Element() el: HTMLIcTooltipElement;\n\n /**\n * The ID of the element the tooltip is describing - for when aria-labelledby or aria-describedby is used.\n */\n @Prop({ reflect: true }) target?: string;\n\n /**\n * The position of the tool-tip in relation to the parent element.\n */\n @Prop() placement?: IcTooltipPlacements = \"bottom\";\n\n /**\n * The text to display on the tooltip.\n */\n @Prop() label!: string;\n\n /**\n * If `true`, the tooltip will not be displayed on hover, it will require a click.\n */\n @Prop() disableHover?: boolean = false;\n\n @Watch(\"label\")\n updateLabel(newValue: string): void {\n const describedBySpan = this.el.previousElementSibling as HTMLElement;\n if (describedBySpan !== null) {\n describedBySpan.innerText = newValue;\n }\n }\n\n /**\n * Method to programmatically show/hide the tooltip without needing to interact with an anchor element\n * @param show Whether to show or hide the tooltip\n * @param persistTooltip Whether the tooltip should stay on the screen when actions are performed that would previously dismiss the tooltip, such as on hover\n */\n @Method()\n async displayTooltip(show: boolean, persistTooltip?: boolean): Promise<void> {\n this.persistTooltip = persistTooltip;\n show ? this.show(this.popperInstance) : this.hide(this.popperInstance);\n }\n\n private toolTip: HTMLDivElement;\n private arrow: HTMLDivElement;\n private mouseOverTool: boolean = false;\n private showEvents = this.disableHover\n ? [\"click\"]\n : [\"mouseenter\", \"focusin\"];\n private instantHideEvents = [\"focusout\"];\n private delayedHideEvents = [\"mouseleave\"];\n private popperInstance: Instance;\n private persistTooltip = false;\n\n private show = (popper: Instance) => {\n this.toolTip.setAttribute(\"data-show\", \"\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: true },\n ],\n }));\n popper.update();\n };\n\n private hide = (popper: Instance) => {\n this.toolTip.removeAttribute(\"data-show\");\n popper.setOptions((options) => ({\n ...options,\n modifiers: [\n ...options.modifiers,\n { name: \"eventListeners\", enabled: false },\n ],\n }));\n this.persistTooltip = false;\n };\n\n private checkCloseTooltip = (popper: Instance) => {\n setTimeout(() => {\n if (!this.mouseOverTool && !this.persistTooltip) {\n this.hide(popper);\n }\n }, 100);\n };\n\n private mouseEnterTooltip = () => {\n this.mouseOverTool = true;\n };\n\n private mouseLeaveTooltip = (popper: Instance) => {\n this.mouseOverTool = false;\n this.checkCloseTooltip(popper);\n };\n\n private handleKeyDown = (key: string) => {\n if (key === \"Escape\" && !this.persistTooltip) {\n this.hide(this.popperInstance);\n }\n };\n\n private manageEventListeners = (action: \"add\" | \"remove\") => {\n const method =\n action === \"add\" ? \"addEventListener\" : \"removeEventListener\";\n\n this.showEvents.forEach((event) => {\n this.el[method](event, () => this.show(this.popperInstance));\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, () => this.mouseEnterTooltip());\n }\n });\n\n this.instantHideEvents.forEach((event) => {\n this.el[method](\n event,\n () => !this.persistTooltip && this.hide(this.popperInstance)\n );\n });\n\n this.delayedHideEvents.forEach((event) => {\n this.el[method](event, () => this.checkCloseTooltip(this.popperInstance));\n if (this.toolTip !== undefined) {\n this.toolTip[method](event, () =>\n this.mouseLeaveTooltip(this.popperInstance)\n );\n }\n });\n\n document[method](\"keydown\", (event: KeyboardEvent) =>\n this.handleKeyDown(event.key)\n );\n };\n\n private screenReaderOnlyStyles = {\n position: \"absolute\",\n left: \"-10000px\",\n top: \"auto\",\n width: \"1px\",\n height: \"1px\",\n overflow: \"hidden\",\n };\n\n componentDidLoad(): void {\n this.popperInstance = createPopper(this.el, this.toolTip, {\n placement: this.placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 10],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: this.arrow,\n },\n },\n ],\n });\n\n this.manageEventListeners(\"add\");\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Tooltip\"\n );\n\n if (this.target !== undefined) {\n const ariaDescribedBy = document.createElement(\"span\");\n ariaDescribedBy.id = `ic-tooltip-${this.target}`;\n ariaDescribedBy.innerText = this.label;\n ariaDescribedBy.classList.add(\"ic-tooltip-label\");\n Object.assign(ariaDescribedBy.style, this.screenReaderOnlyStyles);\n\n this.el.insertAdjacentElement(\"beforebegin\", ariaDescribedBy);\n }\n }\n\n disconnectedCallback(): void {\n this.manageEventListeners(\"remove\");\n }\n\n render() {\n const { label } = this;\n return (\n <Host class={{ \"ic-tooltip\": true }}>\n <div\n ref={(el) => (this.toolTip = el as HTMLDivElement)}\n role=\"tooltip\"\n class=\"ic-tooltip-container\"\n >\n <ic-typography variant=\"caption\">{label}</ic-typography>\n <div\n ref={(el) => (this.arrow = el as HTMLDivElement)}\n class=\"ic-tooltip-arrow\"\n data-popper-arrow\n ></div>\n </div>\n <slot></slot>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"names":["icNavigationGroupCss","NavigationGroup","this","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","sideNavExpandHandler","setTimeout","setInitialGroupedLinksWrapperHeight","topNavResizedHandler","ev","newSize","detail","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","el","querySelectorAll","forEach","navigationItem","navItem","shadowRoot","querySelector","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","expanded","getNavigationChildItemsHeight","toggleExpanded","linkWrapper","handleClick","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","blur","handleKeydown","preventDefault","handleMouseLeave","dropdown","document","activeElement","triggerShowDropdown","showDropdown","renderDropdownGroupedLinks","h","class","[object Object]","dropdownOpen","onMouseLeave","ref","renderGroupedLinks","navigationItemLength","length","parseInt","getComputedStyle","height","renderNavigationItems","expandable","XL","getThemeForegroundColor","theme","focusStyle","mode","groupEl","focus","getCurrentDeviceSize","navParentDetails","getNavItemParentDetails","navType","parentEl","parent","addEventListener","removeEventListener","label","NavigationGroupElement","Host","collapsed","role","tabindex","onMouseOver","onBlur","onClick","onKeyDown","aria-expanded","aria-haspopup","variant","chevron-toggle-icon-wrapper","chevron-toggle-icon-closed","innerHTML","chevronIcon"],"mappings":"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","sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-200);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:active,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-architectural-20);\n color: var(--ic-action-default);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-architectural-20);\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-300);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto);\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.collapsed) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, 0);\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:hover,\n:host(.navigation-group-side-nav) .navigation-group:active,\n:host(.navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n\n.menu-visibility-visible {\n visibility: visible;\n}\n\n.menu-visibility-hidden {\n visibility: hidden;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n @Element() el: HTMLIcNavigationGroupElement;\n\n /**\n * The label to display on the group.\n */\n @Prop() label: string;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable: boolean = false;\n\n @State() dropdownOpen: boolean = false;\n\n @State() inTopNavSideMenu: boolean = false;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n\n @State() focusStyle = getThemeForegroundColor();\n\n @State() navigationType: IcNavType | \"\";\n\n @State() parentEl: HTMLElement;\n\n @State() expanded: boolean = true;\n\n private groupEl: HTMLElement;\n private dropdown: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 50;\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (): void => {\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n };\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\n const newSize = ev.detail.size;\n if (newSize !== this.deviceSize) {\n this.deviceSize = newSize;\n this.inTopNavSideMenu = newSize <= DEVICE_SIZES.L;\n }\n };\n\n private toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el.querySelectorAll(\"ic-navigation-item\").forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (wrapper) {\n if (expanded) {\n wrapper.setAttribute(\n \"style\",\n `--navigation-child-items-height: ${this.getNavigationChildItemsHeight()}`\n );\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.setAttribute(\"style\", `--navigation-child-items-height: 0`);\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n \".grouped-links-wrapper\"\n ) as HTMLElement;\n\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n this.el.blur();\n } else if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \"Space\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (\n !this.el.contains(target) &&\n target !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement)\n ) {\n this.hideDropdown();\n }\n };\n\n private triggerShowDropdown = () => {\n this.showDropdown();\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : null}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n const navigationItemLength =\n this.el.querySelectorAll(\"ic-navigation-item\").length || 0;\n const navigationItem = this.el.querySelector(\"ic-navigation-item\") || null;\n\n if (\n this.navigationType === \"side\" &&\n !!navigationItemLength &&\n navigationItem\n ) {\n return `${\n parseInt(getComputedStyle(navigationItem).height) * navigationItemLength\n }px`;\n }\n\n return \"auto\";\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(\n \".grouped-links-wrapper\"\n ) as HTMLElement;\n\n if (linkWrapper && this.expanded) {\n linkWrapper.setAttribute(\n \"style\",\n `--navigation-child-items-height: ${this.getNavigationChildItemsHeight()}`\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentDidLoad(): void {\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n\n const NavigationGroupElement =\n !inTopNavSideMenu || expandable ? \"button\" : \"div\";\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n expanded: this.expanded,\n collapsed: !this.expanded,\n [\"navigation-group-side-nav\"]: this.navigationType === \"side\",\n }}\n role=\"listitem\"\n >\n <NavigationGroupElement\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onMouseOver={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? this.triggerShowDropdown\n : null\n }\n onMouseLeave={this.navigationType === \"top\" && this.handleMouseLeave}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : null}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={dropdownOpen || this.expanded ? \"true\" : \"false\"}\n aria-haspopup={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? \"true\"\n : \"false\"\n }\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </NavigationGroupElement>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-page-header/ic-page-header.css?tag=ic-page-header&encapsulation=shadow","src/components/ic-page-header/ic-page-header.tsx"],"names":["icPageHeaderCss","PageHeader","this","resizeObserver","resizeObserverCallback","reverseOrder","isSlotUsed","el","applyReverseOrder","runResizeObserver","ResizeObserver","observe","currSize","getCurrentDeviceSize","deviceSize","actionArea","shadowRoot","querySelector","actionHeights","i","actionContent","length","action","actionHeight","offsetHeight","undefined","push","max","Math","actionAreaHeight","DEVICE_SIZES","S","areButtonsReversed","reverse","forEach","btn","append","XL","[object Object]","Array","from","querySelectorAll","checkResizeObserver","disconnect","small","border","heading","subheading","aligned","sticky","stickyDesktopOnly","h","Host","class","fullHeight","name","variant","aria-label"],"mappings":"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","sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-page-header: z-index of page-header\n */\n\n:host {\n display: block;\n z-index: var(--ic-z-index-page-header);\n}\n\n:host(.sticky) {\n position: sticky;\n top: 0;\n box-shadow: var(--ic-elevation-overlay);\n}\n\nheader {\n background-color: var(--ic-architectural-40);\n}\n\nheader.border-bottom {\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-300);\n}\n\nheader.tabs {\n padding-top: var(--ic-space-md);\n}\n\n.breadcrumb-area {\n margin-bottom: var(--ic-space-md);\n}\n\n.main-content {\n display: grid;\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"title-area action-area\"\n \"input-area action-area\";\n column-gap: var(--ic-space-md);\n justify-content: space-between;\n width: 100%;\n}\n\n.title-area {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 19rem;\n grid-area: title-area;\n}\n\n.header-content {\n display: flex;\n align-items: center;\n width: 100%;\n flex-wrap: wrap;\n row-gap: var(--ic-space-xs);\n column-gap: var(--ic-space-md);\n}\n\n.heading {\n display: inline-block;\n overflow-wrap: break-word;\n hyphens: auto;\n}\n\n.subheading.small {\n margin-top: var(--ic-space-xs);\n}\n\n.action-area {\n display: flex;\n gap: var(--ic-space-md);\n flex-flow: row wrap;\n justify-self: end;\n justify-content: flex-end;\n height: fit-content;\n grid-area: action-area;\n}\n\n.input-area,\n.navigation-area {\n margin-top: var(--ic-space-md);\n width: 100%;\n}\n\n.tabs-slot {\n display: flex;\n overflow-x: auto;\n padding: 0.5rem;\n margin: -0.5rem;\n}\n\n.tabs-slot::-webkit-scrollbar {\n display: none;\n}\n\n.input-area {\n grid-area: input-area;\n}\n\n@media screen and (max-width: 576px) {\n ::slotted(ic-text-field) {\n --input-width: 100%;\n\n max-width: 20rem;\n }\n\n .main-content {\n grid-template-areas:\n \"title-area\"\n \"action-area\"\n \"input-area\";\n justify-content: flex-start;\n }\n\n .title-area {\n min-width: 0;\n }\n\n .action-area {\n min-width: 100%;\n margin-top: var(--ic-space-md);\n justify-content: start;\n }\n}\n\n@media screen and (min-width: 992px) {\n :host(.sticky-desktop) {\n position: sticky;\n top: 0;\n box-shadow: var(--ic-elevation-overlay);\n }\n}\n","import { Component, Host, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { IcAlignment } from \"../../utils/types\";\n\nimport {\n isSlotUsed,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n checkResizeObserver,\n} from \"../../utils/helpers\";\n\n/**\n * @slot breadcrumbs - Content will be rendered in the breadcrumb area, above the title and action areas.\n * @slot heading - Content will be rendered in the title area, in place of the heading.\n * @slot subheading - Content will be rendered in the title area, in place of the subheading.\n * @slot heading-adornment - Content will be rendered in the title area, adjacent to the heading.\n * @slot actions - Content will be rendered in the action area, adjacent to the title area.\n * @slot input - Content will be rendered in the input area, below the title area and adjacent to the action area.\n * @slot stepper - Content will be rendered in the navigation area, below the title and action areas. Note: stepper slot cannot be used when the tabs slot is being used.\n * @slot tabs - Content will be rendered in the navigation area, below the title and action areas. Note: the stepper slot cannot be used when the tabs slot is being used.\n */\n\n@Component({\n tag: \"ic-page-header\",\n styleUrl: \"ic-page-header.css\",\n shadow: true,\n})\nexport class PageHeader {\n @Element() el: HTMLIcPageHeaderElement;\n /**\n * The title to render on the page header.\n */\n @Prop() heading?: string;\n /**\n * The subtitle to render on the page header.\n */\n @Prop() subheading?: string;\n /**\n * The alignment of the page header.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n /**\n * If `true`, the small styling will be applied to the page header.\n */\n @Prop() small?: boolean = false;\n /**\n * If `true`, a border will be displayed along the bottom of the page header.\n */\n @Prop() border?: boolean = true;\n /**\n * If `true`, the page header will be sticky at all breakpoints.\n */\n @Prop() sticky?: boolean = false;\n /**\n * If `true`, the page header will only be sticky for viewport widths of 992px and above.\n */\n @Prop() stickyDesktopOnly?: boolean = false;\n /**\n * If `true`, the reading pattern and tab order will change in the action area for viewport widths of above 576px and when actions have not wrapped.\n */\n @Prop() reverseOrder?: boolean = false;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n\n @State() areButtonsReversed: boolean = false;\n\n @State() actionContent: Node[];\n\n private resizeObserver: ResizeObserver = null;\n\n private resizeObserverCallback = () => {\n if (this.reverseOrder && isSlotUsed(this.el, \"actions\")) {\n this.applyReverseOrder();\n }\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeObserverCallback();\n });\n this.resizeObserver.observe(this.el);\n };\n\n private applyReverseOrder = (): void => {\n const currSize = getCurrentDeviceSize();\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n\n const actionArea = this.el.shadowRoot.querySelector(\n \"div.action-area\"\n ) as HTMLElement;\n const actionHeights: number[] = [];\n\n /* For each button in the actions slot, check the height of the button and push this number into the actionHeights array and then find the greatest number in this array (i.e. find the height of the tallest button) */\n for (let i = 0; i < this.actionContent.length; i++) {\n const action = this.actionContent[i] as HTMLElement;\n let actionHeight = action.offsetHeight;\n if (actionHeight === undefined) {\n actionHeight = 0;\n }\n actionHeights.push(actionHeight);\n }\n\n const max = Math.max(...actionHeights);\n\n /* The smallest breakpoint displays buttons in the same order the user has slotted them in. When the device size is larger than the small breakpoiint then the order of the button reverses due to best practice for reading patterns. If the device size is larger than the small breakpoint and the buttons have started to wrap then they follow the order the user has slotted them in. This logic is programmed based on the height of the action-area div that wraps the actions slot. If the height of the action-area div is taller than the height of the tallest button, then it is assumed that the taller height is caused by the buttons wrapping */\n let actionAreaHeight = actionArea.offsetHeight;\n\n if (actionAreaHeight === undefined) {\n actionAreaHeight = 0;\n }\n\n if (\n this.deviceSize > DEVICE_SIZES.S &&\n actionAreaHeight <= max &&\n !this.areButtonsReversed\n ) {\n this.actionContent = this.actionContent.reverse();\n this.actionContent.forEach((btn: string | Node) => {\n this.el.append(btn);\n });\n this.areButtonsReversed = !this.areButtonsReversed;\n } else if (\n ((this.deviceSize > DEVICE_SIZES.S && actionAreaHeight > max) ||\n this.deviceSize <= DEVICE_SIZES.S) &&\n this.areButtonsReversed\n ) {\n this.actionContent = this.actionContent.reverse();\n this.actionContent.forEach((btn: string | Node) => {\n this.el.append(btn);\n });\n this.areButtonsReversed = !this.areButtonsReversed;\n }\n };\n\n componentWillLoad(): void {\n this.actionContent = Array.from(\n this.el.querySelectorAll(`[slot=\"actions\"]`)\n );\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n }\n\n render() {\n const {\n small,\n border,\n heading,\n subheading,\n aligned,\n sticky,\n stickyDesktopOnly,\n } = this;\n\n return (\n <Host\n class={{\n [\"sticky\"]: sticky,\n [\"sticky-desktop\"]: !sticky && stickyDesktopOnly,\n }}\n >\n <header\n class={{\n [\"border-bottom\"]: border,\n [\"tabs\"]: isSlotUsed(this.el, \"tabs\"),\n }}\n >\n <ic-section-container\n aligned={aligned}\n fullHeight={isSlotUsed(this.el, \"tabs\")}\n >\n {isSlotUsed(this.el, \"breadcrumbs\") && (\n <div class=\"breadcrumb-area\">\n <slot name=\"breadcrumbs\" />\n </div>\n )}\n <div class=\"main-content\">\n <div class=\"title-area\">\n <div class=\"header-content\">\n <slot name=\"heading\">\n <ic-typography\n variant={small ? \"h4\" : \"h2\"}\n class=\"heading\"\n >\n <h2>{heading}</h2>\n </ic-typography>\n </slot>\n <slot name=\"heading-adornment\" />\n </div>\n <div>\n <slot name=\"subheading\">\n {subheading && (\n <ic-typography\n variant=\"body\"\n class={{ [\"subheading\"]: true, [\"small\"]: small }}\n >\n {subheading}\n </ic-typography>\n )}\n </slot>\n </div>\n </div>\n {isSlotUsed(this.el, \"actions\") && (\n <div class=\"action-area\">\n <slot name=\"actions\" />\n </div>\n )}\n {isSlotUsed(this.el, \"input\") && (\n <div class=\"input-area\">\n <slot name=\"input\" />\n </div>\n )}\n </div>\n\n {(isSlotUsed(this.el, \"stepper\") ||\n isSlotUsed(this.el, \"tabs\")) && (\n <div class=\"navigation-area\">\n {isSlotUsed(this.el, \"stepper\") &&\n !isSlotUsed(this.el, \"tabs\") && <slot name=\"stepper\" />}\n {isSlotUsed(this.el, \"tabs\") && (\n <nav aria-label=\"navigation-landmark-page-header\">\n <ic-horizontal-scroll>\n <ul class=\"tabs-slot\">\n <slot name=\"tabs\" />\n </ul>\n </ic-horizontal-scroll>\n </nav>\n )}\n </div>\n )}\n </ic-section-container>\n </header>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-breadcrumb/ic-breadcrumb.css?tag=ic-breadcrumb&encapsulation=shadow","src/components/ic-breadcrumb/ic-breadcrumb.tsx"],"names":["icBreadcrumbCss","Breadcrumb","this","renderDefaultBreadcrumb","current","pageTitle","describedById","href","hasPageTitle","undefined","h","class","current-page-container","isSlotUsed","el","name","aria-describedby","showBackIcon","innerHTML","backIcon","setSlottedCurrentPageClass","icLink","querySelector","classList","remove","hasCurrentPageClass","contains","add","[object Object]","shadowRoot","focus","toLowerCase","replace","hasHref","Host","back","aria-current","role","chevronIcon","aria-hidden","id"],"mappings":"yVAAA,MAAMA,EAAkB,u1DCcXC,EAAU,+BAkCbC,KAAAC,wBAA0B,CAChCC,EACAC,EACAC,EACAC,KAEA,MAAMC,EACJH,IAAc,MAAQA,IAAcI,WAAaJ,IAAc,GAEjE,GAAID,GAAWI,EAAc,CAC3B,OACEE,EAAA,OAAA,CACEC,MAAO,CACLC,yBAA0BR,IAG3BS,EAAWX,KAAKY,GAAI,SAAWJ,EAAA,OAAA,CAAMK,KAAK,SAC1CV,GAKP,OACEK,EAAA,UAAA,CACEH,KAAMA,EACNI,MAAM,kBAAiBK,mBACLd,KAAKe,cAAgBX,GAAiBA,GAEvDJ,KAAKe,cACJP,EAAA,MAAA,CAAKC,MAAM,YAAYO,UAAWC,IAEnCN,EAAWX,KAAKY,GAAI,SAAWJ,EAAA,OAAA,CAAMK,KAAK,SAC1CV,IAKCH,KAAAkB,2BAA6B,KACnC,MAAMC,EAASnB,KAAKY,GAAGQ,cAAc,WACrC,GAAID,EAAQ,CACVA,EAAOE,UAAUC,OAAO,gBACxB,GAAItB,KAAKE,QAAS,CAChB,MAAMqB,EAAsBJ,EAAOE,UAAUG,SAAS,gBACtD,IAAKD,EAAqB,CACxBJ,EAAOE,UAAUI,IAAI,kBAAmB,8EA7DpB,wBAKqB,MAMjDC,iBACE,GAAI1B,KAAKY,GAAGe,WAAWP,cAAc,WAAY,CAC/CpB,KAAKY,GAAGe,WAAWP,cAAc,WAAWQ,SAsDhDF,sBACE1B,KAAKkB,6BAGPQ,SACE,MAAMxB,QAAEA,EAAOG,KAAEA,EAAIF,UAAEA,GAAcH,KACrC,MAAMI,EAAgB,GACpBD,GAAaA,EAAU0B,cAAcC,QAAQ,IAAK,mBAGpD,MAAMxB,EACJH,IAAc,MAAQA,IAAcI,WAAaJ,IAAc,GACjE,MAAM4B,EAAU1B,IAAS,MAAQA,IAASE,WAAaF,IAAS,GAEhE,OACEG,EAACwB,EAAI,CACHvB,MAAO,CACLwB,KAAMjC,KAAKe,cACZmB,eACahC,GAAW,OACzBiC,KAAK,YAEL3B,EAAA,MAAA,CAAKC,MAAM,cACTD,EAAA,OAAA,CAAMQ,UAAWoB,EAAa3B,MAAM,UAAS4B,cAAa,SACzDrC,KAAKe,cAAgBX,GACpBI,EAAA,OAAA,CACE8B,GAAIlC,EACJK,MAAM,QACN,WAAWN,KAEdG,GAAgByB,EACf/B,KAAKC,wBACHC,EACAC,EACAC,EACAC,GAGFG,EAAA,OAAA","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 color: var(--ic-architectural-400);\n}\n\n:host(:first-child) .chevron {\n display: none;\n}\n\n.back-icon svg {\n color: var(--ic-hyperlink);\n}\n\n:host(.back) {\n display: flex;\n align-items: center;\n}\n\n:host(.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\"]) .current-page-container {\n display: flex;\n align-items: center;\n gap: var(--ic-space-xs);\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-hyperlink);\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@media (forced-colors: active) {\n .back-icon svg {\n color: currentcolor;\n }\n}\n\n@supports (text-decoration-thickness: 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 { Component, Host, Prop, h, Element, Method } from \"@stencil/core\";\nimport { IcBreadcrumbDefault } from \"./ic-breadcrumb.types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport backIcon from \"../../assets/back-icon.svg\";\nimport { isSlotUsed } from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-breadcrumb\",\n styleUrl: \"ic-breadcrumb.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Breadcrumb {\n /**\n * @slot icon - Content will be rendered to the left of the breadcrumb page title.\n */\n\n @Element() el: HTMLIcBreadcrumbElement;\n /**\n * The title of the breadcrumb.\n */\n @Prop() pageTitle!: string;\n /**\n * The URL that the breadcrumb link points to.\n */\n @Prop() href?: string;\n /**\n * If `true`, aria-current will be set on the breadcrumb.\n */\n @Prop() current?: boolean = false;\n\n /**\n * @internal If `true`, back icon will be displayed.\n */\n @Prop({ reflect: true }) showBackIcon: boolean = false;\n\n /**\n * Sets focus on the breadcrumb.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.el.shadowRoot.querySelector(\"ic-link\")) {\n this.el.shadowRoot.querySelector(\"ic-link\").focus();\n }\n }\n\n private renderDefaultBreadcrumb = (\n current: boolean,\n pageTitle: string,\n describedById: string,\n href: string\n ): IcBreadcrumbDefault => {\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n\n if (current && hasPageTitle) {\n return (\n <span\n class={{\n \"current-page-container\": current,\n }}\n >\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </span>\n );\n }\n\n return (\n <ic-link\n href={href}\n class=\"breadcrumb-link\"\n aria-describedby={this.showBackIcon && describedById && describedById}\n >\n {this.showBackIcon && (\n <div class=\"back-icon\" innerHTML={backIcon}></div>\n )}\n {isSlotUsed(this.el, \"icon\") && <slot name=\"icon\"></slot>}\n {pageTitle}\n </ic-link>\n );\n };\n\n private setSlottedCurrentPageClass = () => {\n const icLink = this.el.querySelector(\"ic-link\");\n if (icLink) {\n icLink.classList.remove(\"current-page\");\n if (this.current) {\n const hasCurrentPageClass = icLink.classList.contains(\"current-page\");\n if (!hasCurrentPageClass) {\n icLink.classList.add(\"breadcrumb-link\", \"current-page\");\n }\n }\n }\n };\n\n componentWillRender(): void {\n this.setSlottedCurrentPageClass();\n }\n\n render() {\n const { current, href, pageTitle } = this;\n const describedById = `${\n pageTitle && pageTitle.toLowerCase().replace(\" \", \"-\")\n }-describedby`;\n\n const hasPageTitle =\n pageTitle !== null && pageTitle !== undefined && pageTitle !== \"\";\n const hasHref = href !== null && href !== undefined && href !== \"\";\n\n return (\n <Host\n class={{\n back: this.showBackIcon,\n }}\n aria-current={current && \"page\"}\n role=\"listitem\"\n >\n <div class=\"breadcrumb\">\n <span innerHTML={chevronIcon} class=\"chevron\" aria-hidden=\"true\" />\n {this.showBackIcon && describedById && (\n <span\n id={describedById}\n class=\"hide\"\n >{`Back to ${pageTitle}`}</span>\n )}\n {hasPageTitle && hasHref ? (\n this.renderDefaultBreadcrumb(\n current,\n pageTitle,\n describedById,\n href\n )\n ) : (\n <slot />\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as a,H as s,g as e}from"./p-589f6dd3.js";import{u as o,G as n,i as r}from"./p-3dea2867.js";import"./p-6f57b13c.js";const c=":host{display:block;position:fixed;top:0;left:0;width:100%;min-height:100% !important;background:rgb(0 0 0 / 60%);z-index:var(--ic-z-index-navigation-menu)}.popout-modal{position:absolute;top:0;right:0;bottom:0;left:0}.popout-menu{position:fixed;top:0;right:0;width:16rem;bottom:0;background-color:var(--ic-architectural-20);color:var(--ic-color-primary-text);box-shadow:var(--ic-elevation-overlay);overflow-y:auto;overflow-x:hidden}:host(.inline) .popout-menu{position:absolute}.menu-close-button-container{position:relative;left:11.875rem;padding:var(--ic-space-md) 0}.nav-group-first{padding-bottom:0}.menu-buttons-container{padding:var(--ic-space-sm) 0;border-bottom:var(--ic-space-1px) solid var(--ic-architectural-200)}.menu-buttons-container-nav-item-above{margin-top:var(--ic-space-md);border-top:var(--ic-space-1px) solid var(--ic-architectural-200)}.menu-status-version-container{display:flex;flex-wrap:wrap;gap:var(--ic-space-xs);margin:var(--ic-space-md) var(--ic-space-md) var(--ic-space-xl)}.menu-status{background-color:var(--ic-architectural-500);color:var(--ic-color-white-text);border-radius:var(--ic-space-md);width:-moz-fit-content;width:fit-content;padding:var(--ic-space-xxs) var(--ic-space-sm)}.menu-version{border-radius:var(--ic-space-md);background-color:var(--ic-architectural-100);padding:var(--ic-space-xxs) var(--ic-space-sm)}.menu-status-text,.menu-version-text{overflow-wrap:break-word}.navigation-landmark-text{position:absolute;width:var(--ic-space-1px);height:var(--ic-space-1px);padding:0;margin:calc(-1 * var(--ic-space-1px));overflow:hidden}";const l=class{constructor(a){t(this,a);this.icNavigationMenuClose=i(this,"icNavigationMenuClose",7);this.hasButtons=false;this.hasNavigation=false;this.navItemAboveButtons=false;this.navGroupFirst=false;this.lastTabStop=null;this.closeButton=null;this.closeMenu=()=>{this.icNavigationMenuClose.emit()};this.focusCloseButton=()=>{if(this.closeButton.focus){this.closeButton.focus()}};this.focusLastTabStop=()=>{let t;if(this.lastTabStop!==null){switch(this.lastTabStop.tagName){case"IC-NAVIGATION-BUTTON":t=this.lastTabStop;t.focus();break;case"IC-NAVIGATION-ITEM":t=this.lastTabStop;t.focus();break;case"IC-NAVIGATION-GROUP":t=this.lastTabStop;t.focus();break;case"A":this.lastTabStop.focus();break}}};this.version="";this.status=""}navItemClickHandler(){this.closeMenu()}handleKeyDown(t){if(t.key==="Tab"){if(t.shiftKey){if(document.activeElement===this.navBarEl){t.preventDefault();this.focusLastTabStop()}}else if(document.activeElement===this.lastTabStop||this.lastTabStop===null){t.preventDefault();this.focusCloseButton()}}else if(t.key==="Escape"){this.closeMenu()}}componentWillLoad(){this.navBarEl=document.querySelector("ic-top-navigation");const t=o(this.el,"navigation");if(t){this.hasNavigation=true;const i=t[t.length-1];if(i.tagName==="IC-NAVIGATION-ITEM"){this.navItemAboveButtons=true}const a=t[0];if(a.tagName==="IC-NAVIGATION-GROUP"){this.navGroupFirst=true}}const i=o(this.el,"buttons");if(i!==null){this.hasButtons=true;this.lastTabStop=i[i.length-1]}else{if(this.hasNavigation){const i=t[t.length-1];const a=n(i,"navigation-item");if(a!==null){this.lastTabStop=a}else{this.lastTabStop=i}}}}componentDidLoad(){this.focusCloseButton()}componentWillRender(){this.hasNavigation=r(this.el,"navigation");this.hasButtons=r(this.el,"buttons")}render(){return a(s,null,a("div",{class:"popout-modal",onClick:this.closeMenu}),a("div",{class:"popout-menu",role:"dialog","aria-modal":"true","aria-label":`${this.hasNavigation?"Navigation":"App"} menu`},a("span",{"aria-hidden":"true",id:"navigation-landmark-text",class:"navigation-landmark-text"},"Main navigation"),a("nav",{"aria-labelledby":"navigation-landmark-text","aria-hidden":this.hasNavigation?"false":"true"},a("div",{class:{["menu-close-button-container"]:true,["nav-group-first"]:this.navGroupFirst}},a("ic-button",{ref:t=>this.closeButton=t,id:"menu-close-button",class:"menu-close-button",variant:"icon",size:"large","aria-label":`Close ${this.hasNavigation?"navigation":"app"} menu`,onClick:this.closeMenu},a("svg",{slot:"icon",width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg"},a("path",{d:"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z",fill:"#1759BC"})))),this.hasNavigation&&a("slot",{name:"navigation"})),this.hasButtons&&a("div",{class:{["menu-buttons-container"]:true,["menu-buttons-container-nav-item-above"]:this.navItemAboveButtons}},a("slot",{name:"buttons"})),(this.status!==""||this.version!=="")&&a("div",{class:"menu-status-version-container"},this.status!==""&&a("div",{class:"menu-status"},a("ic-typography",{variant:"label-uppercase","aria-label":"app tag",class:"menu-status-text"},this.status)),this.version!==""&&a("div",{class:"menu-version"},a("ic-typography",{variant:"label",class:"menu-version-text","aria-label":"app version"},this.version)))))}get el(){return e(this)}};l.style=c;export{l as ic_navigation_menu};
2
- //# sourceMappingURL=p-a5bee11f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-navigation-menu/ic-navigation-menu.css?tag=ic-navigation-menu&encapsulation=shadow","src/components/ic-navigation-menu/ic-navigation-menu.tsx"],"names":["icNavigationMenuCss","NavigationMenu","this","hasButtons","hasNavigation","navItemAboveButtons","navGroupFirst","lastTabStop","closeButton","closeMenu","icNavigationMenuClose","emit","focusCloseButton","focus","focusLastTabStop","focusEl","tagName","[object Object]","ev","key","shiftKey","document","activeElement","navBarEl","preventDefault","querySelector","navigationEls","getSlotContent","el","lastEl","length","firstEl","buttonContent","slotContent","getSlot","isSlotUsed","h","Host","class","onClick","role","aria-modal","aria-label","aria-hidden","id","aria-labelledby","ref","variant","size","slot","width","height","viewBox","fill","xmlns","d","name","status","version"],"mappings":"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","sourcesContent":["/**\n * @prop --ic-z-index-navigation-menu: z-index of navigation menu\n */\n\n:host {\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n min-height: 100% !important;\n background: rgb(0 0 0 / 60%);\n z-index: var(--ic-z-index-navigation-menu);\n}\n\n.popout-modal {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.popout-menu {\n position: fixed;\n top: 0;\n right: 0;\n width: 16rem;\n bottom: 0;\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n box-shadow: var(--ic-elevation-overlay);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n:host(.inline) .popout-menu {\n position: absolute;\n}\n\n.menu-close-button-container {\n position: relative;\n left: 11.875rem;\n padding: var(--ic-space-md) 0;\n}\n\n.nav-group-first {\n padding-bottom: 0;\n}\n\n.menu-buttons-container {\n padding: var(--ic-space-sm) 0;\n border-bottom: var(--ic-space-1px) solid var(--ic-architectural-200);\n}\n\n.menu-buttons-container-nav-item-above {\n margin-top: var(--ic-space-md);\n border-top: var(--ic-space-1px) solid var(--ic-architectural-200);\n}\n\n.menu-status-version-container {\n display: flex;\n flex-wrap: wrap;\n gap: var(--ic-space-xs);\n margin: var(--ic-space-md) var(--ic-space-md) var(--ic-space-xl);\n}\n\n.menu-status {\n background-color: var(--ic-architectural-500);\n color: var(--ic-color-white-text);\n border-radius: var(--ic-space-md);\n width: fit-content;\n padding: var(--ic-space-xxs) var(--ic-space-sm);\n}\n\n.menu-version {\n border-radius: var(--ic-space-md);\n background-color: var(--ic-architectural-100);\n padding: var(--ic-space-xxs) var(--ic-space-sm);\n}\n\n.menu-status-text,\n.menu-version-text {\n overflow-wrap: break-word;\n}\n\n.navigation-landmark-text {\n position: absolute;\n width: var(--ic-space-1px);\n height: var(--ic-space-1px);\n padding: 0;\n margin: calc(-1 * var(--ic-space-1px));\n overflow: hidden;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\n\nimport { getSlot, getSlotContent, isSlotUsed } from \"../../utils/helpers\";\n\n/**\n * @slot navigation - Content will be rendered at top of panel.\n * @slot buttons - Content will be rendered above version info and below navigation.\n */\n@Component({\n tag: \"ic-navigation-menu\",\n styleUrl: \"ic-navigation-menu.css\",\n shadow: true,\n})\nexport class NavigationMenu {\n @Element() el: HTMLIcNavigationMenuElement;\n\n /**\n * The version info to display.\n */\n @Prop() version: string = \"\";\n\n /**\n * The status info to display.\n */\n @Prop() status: string = \"\";\n\n /**\n * @internal - Emitted when the menu is closed.\n */\n @Event() icNavigationMenuClose: EventEmitter<void>;\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.closeMenu();\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n if (ev.key === \"Tab\") {\n if (ev.shiftKey) {\n if (document.activeElement === this.navBarEl) {\n ev.preventDefault();\n this.focusLastTabStop();\n }\n } else if (\n document.activeElement === this.lastTabStop ||\n this.lastTabStop === null\n ) {\n ev.preventDefault();\n this.focusCloseButton();\n }\n } else if (ev.key === \"Escape\") {\n this.closeMenu();\n }\n }\n\n private hasButtons: boolean = false;\n private hasNavigation: boolean = false;\n private navItemAboveButtons: boolean = false;\n private navGroupFirst: boolean = false;\n private lastTabStop: HTMLElement = null;\n private closeButton: HTMLIcButtonElement = null;\n private navBarEl: HTMLIcTopNavigationElement;\n\n private closeMenu = () => {\n this.icNavigationMenuClose.emit();\n };\n\n private focusCloseButton = () => {\n if (this.closeButton.focus) {\n this.closeButton.focus();\n }\n };\n\n private focusLastTabStop = () => {\n let focusEl;\n if (this.lastTabStop !== null) {\n switch (this.lastTabStop.tagName) {\n case \"IC-NAVIGATION-BUTTON\":\n focusEl = this.lastTabStop as HTMLElement;\n focusEl.focus();\n break;\n case \"IC-NAVIGATION-ITEM\":\n focusEl = this.lastTabStop as HTMLElement;\n focusEl.focus();\n break;\n case \"IC-NAVIGATION-GROUP\":\n focusEl = this.lastTabStop as HTMLElement;\n focusEl.focus();\n break;\n case \"A\":\n this.lastTabStop.focus();\n break;\n }\n }\n };\n\n componentWillLoad(): void {\n this.navBarEl = document.querySelector(\"ic-top-navigation\");\n const navigationEls = getSlotContent(this.el, \"navigation\");\n if (navigationEls) {\n this.hasNavigation = true;\n const lastEl = navigationEls[navigationEls.length - 1] as HTMLElement;\n if (lastEl.tagName === \"IC-NAVIGATION-ITEM\") {\n this.navItemAboveButtons = true;\n }\n const firstEl = navigationEls[0] as HTMLElement;\n if (firstEl.tagName === \"IC-NAVIGATION-GROUP\") {\n this.navGroupFirst = true;\n }\n }\n const buttonContent = getSlotContent(this.el, \"buttons\");\n\n if (buttonContent !== null) {\n this.hasButtons = true;\n this.lastTabStop = buttonContent[buttonContent.length - 1] as HTMLElement;\n } else {\n if (this.hasNavigation) {\n const lastEl = navigationEls[navigationEls.length - 1] as HTMLElement;\n //check for slotted content i.e. react router link\n const slotContent = getSlot(lastEl, \"navigation-item\");\n if (slotContent !== null) {\n this.lastTabStop = slotContent as HTMLElement;\n } else {\n this.lastTabStop = lastEl;\n }\n }\n }\n }\n\n componentDidLoad(): void {\n this.focusCloseButton();\n }\n\n componentWillRender(): void {\n this.hasNavigation = isSlotUsed(this.el, \"navigation\");\n this.hasButtons = isSlotUsed(this.el, \"buttons\");\n }\n\n render() {\n return (\n <Host>\n <div class=\"popout-modal\" onClick={this.closeMenu}></div>\n <div\n class=\"popout-menu\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={`${this.hasNavigation ? \"Navigation\" : \"App\"} menu`}\n >\n <span\n aria-hidden=\"true\"\n id=\"navigation-landmark-text\"\n class=\"navigation-landmark-text\"\n >\n Main navigation\n </span>\n <nav\n aria-labelledby=\"navigation-landmark-text\"\n aria-hidden={this.hasNavigation ? \"false\" : \"true\"}\n >\n <div\n class={{\n [\"menu-close-button-container\"]: true,\n [\"nav-group-first\"]: this.navGroupFirst,\n }}\n >\n <ic-button\n ref={(el) => (this.closeButton = el)}\n id=\"menu-close-button\"\n class=\"menu-close-button\"\n variant=\"icon\"\n size=\"large\"\n aria-label={`Close ${\n this.hasNavigation ? \"navigation\" : \"app\"\n } menu`}\n onClick={this.closeMenu}\n >\n <svg\n slot=\"icon\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14 1.41L12.59 0L7 5.59L1.41 0L0 1.41L5.59 7L0 12.59L1.41 14L7 8.41L12.59 14L14 12.59L8.41 7L14 1.41Z\"\n fill=\"#1759BC\"\n />\n </svg>\n </ic-button>\n </div>\n {this.hasNavigation && <slot name=\"navigation\"></slot>}\n </nav>\n {this.hasButtons && (\n <div\n class={{\n [\"menu-buttons-container\"]: true,\n [\"menu-buttons-container-nav-item-above\"]:\n this.navItemAboveButtons,\n }}\n >\n <slot name=\"buttons\"></slot>\n </div>\n )}\n {(this.status !== \"\" || this.version !== \"\") && (\n <div class=\"menu-status-version-container\">\n {this.status !== \"\" && (\n <div class=\"menu-status\">\n <ic-typography\n variant=\"label-uppercase\"\n aria-label=\"app tag\"\n class=\"menu-status-text\"\n >\n {this.status}\n </ic-typography>\n </div>\n )}\n {this.version !== \"\" && (\n <div class=\"menu-version\">\n <ic-typography\n variant=\"label\"\n class=\"menu-version-text\"\n aria-label=\"app version\"\n >\n {this.version}\n </ic-typography>\n </div>\n )}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as o,H as i,g as r}from"./p-589f6dd3.js";import{g as n,I as a,k as s,c as l,l as c}from"./p-3dea2867.js";import{I as d}from"./p-6f57b13c.js";const p='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host(.footer-sparse){--footer-links-padding:1.5rem 0;--footer-compliance-padding:1.5rem 0 0.5rem 0;--footer-logo-margin-bottom:var(--ic-space-lg);--footer-link-inner-flex-direction:row}:host(.footer-small){--footer-links-padding:0 0;--footer-compliance-padding:1rem 0 0.5rem;--footer-logo-margin-bottom:var(--ic-space-md);--footer-link-inner-flex-direction:column}:host(.footer-light){--footer-theme-secondary:var(--ic-theme-secondary);--footer-theme-tertiary:var(--ic-theme-tertiary);--footer-keyline:var(--ic-keyline-lighten)}:host(.footer-dark){--footer-theme-secondary:var(--ic-theme-secondary-light);--footer-theme-tertiary:var(--ic-theme-tertiary-light);--footer-keyline:var(--ic-keyline-darken)}:host(.footer-small.footer-ungrouped){--footer-links-padding:var(--ic-space-md) 0 0 0}footer{display:flex;flex-direction:column;width:100%}.footer-description{background-color:var(--footer-theme-secondary);color:var(--ic-theme-text);border-bottom:var(--footer-keyline)}.footer-description-inner{padding:1rem 0}.footer-links{padding:var(--footer-links-padding);background-color:var(--footer-theme-secondary);color:var(--ic-theme-text)}.footer-links-inner{display:flex;flex-direction:var(--footer-link-inner-flex-direction)}.footer-compliance{background-color:var(--footer-theme-tertiary);color:var(--ic-theme-text)}.footer-compliance-inner{padding:var(--footer-compliance-padding)}.footer-logo{margin-bottom:var(--footer-logo-margin-bottom);display:flex;gap:var(--ic-space-xxl)}.footer-logo>::slotted(){margin-right:var(--ic-space-md)}.footer-caption{margin-bottom:var(--ic-space-md)}.classification-spacing{margin-bottom:var(--ic-space-lg)}@media (forced-colors: active){footer{border-top:var(--ic-hc-border)}}';const m=class{constructor(o){e(this,o);this.footerResized=t(this,"footerResized",7);this.resizeObserverCallback=e=>{if(e!==this.deviceSize){this.deviceSize=e}this.footerResized.emit()};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{const e=n();this.resizeObserverCallback(e)}));this.resizeObserver.observe(this.footerEl)};this.description=undefined;this.aligned="left";this.breakpoint="medium";this.groupLinks=false;this.caption=undefined;this.copyright=true;this.deviceSize=a.XL;this.foregroundColor=s()}isSmall(){const e=this.breakpoint;return e==="extra small"?this.deviceSize<a.XS:e==="small"?this.deviceSize<a.S:e==="medium"?this.deviceSize<a.M:e==="large"?this.deviceSize<a.L:e==="extra large"?this.deviceSize<a.XL:false}themeChangeHandler(e){const t=e.detail;this.foregroundColor=t.mode}componentWillLoad(){this.deviceSize=n()}componentDidLoad(){l(this.runResizeObserver)}disconnectedCallback(){this.resizeObserver.disconnect()}render(){const{aligned:e,caption:t,copyright:r,description:n,groupLinks:s,foregroundColor:l}=this;const p=this.isSmall();return o(i,{class:{footer:true,[`footer-${p?"small":"sparse"}`]:true,[`footer-${s?"grouped":"ungrouped"}`]:true,[`footer-${l}`]:true,[d.Dark]:l===d.Dark,[d.Light]:l===d.Light}},o("footer",{ref:e=>this.footerEl=e},o("div",{class:"footer-description"},o("ic-section-container",{aligned:e,fullHeight:true},o("div",{class:"footer-description-inner"},o("ic-typography",{variant:"body"},o("slot",{name:"description"},n))))),o("div",{class:"footer-links"},s&&p?o("div",{class:"footer-links-inner"},o("slot",{name:"link"})):o("ic-section-container",{fullHeight:true,aligned:e},o("div",{class:"footer-links-inner"},o("slot",{name:"link"})))),o("div",{class:"footer-compliance"},o("ic-section-container",{aligned:e,fullHeight:true},o("div",{class:"footer-compliance-inner"},o("div",{class:"footer-logo"},o("slot",{name:"logo"})),o("div",{class:"footer-caption"},o("ic-typography",{variant:this.deviceSize<=a.M?"caption":"body"},o("slot",{name:"caption"},t))),r&&o("div",{class:{["footer-copyright"]:true,["classification-spacing"]:c()}},o("ic-typography",{variant:this.deviceSize<=a.M?"caption-uppercase":"label-uppercase"},"© Crown Copyright")))))))}get el(){return r(this)}};m.style=p;export{m as ic_footer};
2
- //# sourceMappingURL=p-db7131b6.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-footer/ic-footer.css?tag=ic-footer&encapsulation=shadow","src/components/ic-footer/ic-footer.tsx"],"names":["icFooterCss","Footer","this","resizeObserverCallback","currSize","deviceSize","footerResized","emit","runResizeObserver","resizeObserver","ResizeObserver","getCurrentDeviceSize","observe","footerEl","IC_DEVICE_SIZES","XL","getThemeForegroundColor","[object Object]","bp","breakpoint","XS","S","M","L","ev","theme","detail","foregroundColor","mode","checkResizeObserver","disconnect","aligned","caption","copyright","description","groupLinks","small","isSmall","h","Host","class","footer","IcThemeForegroundEnum","Dark","Light","ref","fullHeight","variant","name","hasClassificationBanner"],"mappings":"oKAAA,MAAMA,EAAc,+iICsCPC,EAAM,4EAmETC,KAAAC,uBAA0BC,IAChC,GAAIA,IAAaF,KAAKG,WAAY,CAChCH,KAAKG,WAAaD,EAEpBF,KAAKI,cAAcC,QAGbL,KAAAM,kBAAoB,KAC1BN,KAAKO,eAAiB,IAAIC,gBAAe,KACvC,MAAMN,EAAWO,IACjBT,KAAKC,uBAAuBC,MAG9BF,KAAKO,eAAeG,QAAQV,KAAKW,mDAhEH,uBAKW,yBAKZ,4CAUF,qBAECC,EAAgBC,wBAEAC,IAEtCC,UACN,MAAMC,EAAKhB,KAAKiB,WAEhB,OAAOD,IAAO,cACVhB,KAAKG,WAAaS,EAAgBM,GAClCF,IAAO,QACPhB,KAAKG,WAAaS,EAAgBO,EAClCH,IAAO,SACPhB,KAAKG,WAAaS,EAAgBQ,EAClCJ,IAAO,QACPhB,KAAKG,WAAaS,EAAgBS,EAClCL,IAAO,cACPhB,KAAKG,WAAaS,EAAgBC,GAClC,MAINE,mBAAmBO,GACjB,MAAMC,EAAiBD,EAAGE,OAC1BxB,KAAKyB,gBAAkBF,EAAMG,KAsB/BX,oBACEf,KAAKG,WAAaM,IAGpBM,mBACEY,EAAoB3B,KAAKM,mBAG3BS,uBACEf,KAAKO,eAAeqB,aAGtBb,SACE,MAAMc,QACJA,EAAOC,QACPA,EAAOC,UACPA,EAASC,YACTA,EAAWC,WACXA,EAAUR,gBACVA,GACEzB,KACJ,MAAMkC,EAAQlC,KAAKmC,UAEnB,OACEC,EAACC,EAAI,CACHC,MAAO,CACLC,OAAQ,KACRxB,CAAC,UAAUmB,EAAQ,QAAU,YAAa,KAC1CnB,CAAC,UAAUkB,EAAa,UAAY,eAAgB,KACpDlB,CAAC,UAAUU,KAAoB,KAE/BV,CAACyB,EAAsBC,MACrBhB,IAAoBe,EAAsBC,KAC5C1B,CAACyB,EAAsBE,OACrBjB,IAAoBe,EAAsBE,QAG9CN,EAAA,SAAA,CAAQO,IAAMhC,GAAcX,KAAKW,SAAWA,GAE1CyB,EAAA,MAAA,CAAKE,MAAM,sBACTF,EAAA,uBAAA,CAAsBP,QAASA,EAASe,WAAY,MAClDR,EAAA,MAAA,CAAKE,MAAM,4BACTF,EAAA,gBAAA,CAAeS,QAAQ,QACrBT,EAAA,OAAA,CAAMU,KAAK,eAAed,OAOlCI,EAAA,MAAA,CAAKE,MAAM,gBACRL,GAAcC,EACbE,EAAA,MAAA,CAAKE,MAAM,sBACTF,EAAA,OAAA,CAAMU,KAAK,UAGbV,EAAA,uBAAA,CAAsBQ,WAAU,KAACf,QAASA,GACxCO,EAAA,MAAA,CAAKE,MAAM,sBACTF,EAAA,OAAA,CAAMU,KAAK,YAOnBV,EAAA,MAAA,CAAKE,MAAM,qBACTF,EAAA,uBAAA,CAAsBP,QAASA,EAASe,WAAY,MAClDR,EAAA,MAAA,CAAKE,MAAM,2BACTF,EAAA,MAAA,CAAKE,MAAM,eAETF,EAAA,OAAA,CAAMU,KAAK,UAEbV,EAAA,MAAA,CAAKE,MAAM,kBACTF,EAAA,gBAAA,CACES,QACE7C,KAAKG,YAAcS,EAAgBQ,EAAI,UAAY,QAGrDgB,EAAA,OAAA,CAAMU,KAAK,WAAWhB,KAGzBC,GACCK,EAAA,MAAA,CACEE,MAAO,CACLvB,CAAC,oBAAqB,KACtBA,CAAC,0BAA2BgC,MAG9BX,EAAA,gBAAA,CACES,QACE7C,KAAKG,YAAcS,EAAgBQ,EAC/B,oBACA,mBAAiB","sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n}\n\n:host(.footer-sparse) {\n --footer-links-padding: 1.5rem 0;\n --footer-compliance-padding: 1.5rem 0 0.5rem 0;\n --footer-logo-margin-bottom: var(--ic-space-lg);\n --footer-link-inner-flex-direction: row;\n}\n\n:host(.footer-small) {\n --footer-links-padding: 0 0;\n --footer-compliance-padding: 1rem 0 0.5rem;\n --footer-logo-margin-bottom: var(--ic-space-md);\n --footer-link-inner-flex-direction: column;\n}\n\n:host(.footer-light) {\n --footer-theme-secondary: var(--ic-theme-secondary);\n --footer-theme-tertiary: var(--ic-theme-tertiary);\n --footer-keyline: var(--ic-keyline-lighten);\n}\n\n:host(.footer-dark) {\n --footer-theme-secondary: var(--ic-theme-secondary-light);\n --footer-theme-tertiary: var(--ic-theme-tertiary-light);\n --footer-keyline: var(--ic-keyline-darken);\n}\n\n:host(.footer-small.footer-ungrouped) {\n --footer-links-padding: var(--ic-space-md) 0 0 0;\n}\n\n/* Main inner footer element */\nfooter {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Description */\n\n.footer-description {\n background-color: var(--footer-theme-secondary);\n color: var(--ic-theme-text);\n border-bottom: var(--footer-keyline);\n}\n\n.footer-description-inner {\n padding: 1rem 0;\n}\n\n/* Links */\n\n.footer-links {\n padding: var(--footer-links-padding);\n background-color: var(--footer-theme-secondary);\n color: var(--ic-theme-text);\n}\n\n.footer-links-inner {\n display: flex;\n flex-direction: var(--footer-link-inner-flex-direction);\n}\n\n/* Compliance */\n\n.footer-compliance {\n background-color: var(--footer-theme-tertiary);\n color: var(--ic-theme-text);\n}\n\n.footer-compliance-inner {\n padding: var(--footer-compliance-padding);\n}\n\n.footer-logo {\n margin-bottom: var(--footer-logo-margin-bottom);\n display: flex;\n gap: var(--ic-space-xxl);\n}\n\n.footer-logo > ::slotted() {\n margin-right: var(--ic-space-md);\n}\n\n.footer-caption {\n margin-bottom: var(--ic-space-md);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n@media (forced-colors: active) {\n footer {\n border-top: var(--ic-hc-border);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Prop,\n State,\n h,\n Host,\n Listen,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getThemeForegroundColor,\n checkResizeObserver,\n hasClassificationBanner,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n @Element() el: HTMLIcFooterElement;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description: string;\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright: boolean = true;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n\n @State() foregroundColor: IcThemeForeground = getThemeForegroundColor();\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.foregroundColor = theme.mode;\n }\n\n private resizeObserver: ResizeObserver;\n private footerEl: HTMLElement;\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n };\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n }\n\n disconnectedCallback(): void {\n this.resizeObserver.disconnect();\n }\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n groupLinks,\n foregroundColor,\n } = this;\n const small = this.isSmall();\n\n return (\n <Host\n class={{\n footer: true,\n [`footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`footer-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [IcThemeForegroundEnum.Dark]:\n foregroundColor === IcThemeForegroundEnum.Dark,\n [IcThemeForegroundEnum.Light]:\n foregroundColor === IcThemeForegroundEnum.Light,\n }}\n >\n <footer ref={(footerEl) => (this.footerEl = footerEl)}>\n {/* Description */}\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n\n {/* Links */}\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n\n {/* Compliance (logo, caption, copyright) */}\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n <div class=\"footer-logo\">\n {/* Logo */}\n <slot name=\"logo\" />\n </div>\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M ? \"caption\" : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n this.deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n &copy; Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n </footer>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,H as s,g as i}from"./p-589f6dd3.js";import{C as a}from"./p-8c7f4343.js";const c=`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M7.99935 4.32666L13.0193 13H2.97935L7.99935 4.32666ZM7.99935 1.66666L0.666016 14.3333H15.3327L7.99935 1.66666ZM8.66602 11H7.33268V12.3333H8.66602V11ZM8.66602 6.99999H7.33268V9.66666H8.66602V6.99999Z" fill="currentColor"/>\n</svg>`;const r=":host{display:flex;flex:auto}.step{display:flex;flex:1 1 0}.step-icon{display:flex;justify-content:center}.step-title,.step-subtitle,.step-status,.next-step{white-space:pre-line}.visually-hidden{position:absolute;left:-625rem;top:auto;width:1px;height:1px;overflow:hidden}:host(.compact){-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm);--compact-step-inner-color:var(--ic-theme-primary);--compact-step-circular-line-width:var(--ic-space-xxs)}:host(.compact) .step{-moz-column-gap:var(--ic-space-sm);column-gap:var(--ic-space-sm)}:host(.compact) .step:not(.current){display:none;opacity:0;visibility:hidden}.compact-step-progress-indicator{margin:var(--ic-space-xs) 0 0}:host(.compact) .step-title-area{display:flex;flex-direction:column;width:14.25rem}.info-line{display:flex;-moz-column-gap:var(--ic-space-xs);column-gap:var(--ic-space-xs)}.step-status{display:flex;color:var(--ic-color-secondary-text);-moz-column-gap:var(--ic-space-xxxs);column-gap:var(--ic-space-xxxs)}.compact-step-completed .step-status{color:var(--ic-status-success)}.compact-step-disabled :is(.step-title,.step-status){color:var(--ic-color-tertiary-text)}.step-num{color:var(--ic-color-secondary-text);white-space:nowrap}:host(.compact) .step-icon{margin:var(--ic-space-xxxs)}:host(.compact) .step-icon svg{width:var(--ic-space-md);height:var(--ic-space-md)}:host(.default) .step{flex-direction:column}:host(.default.last-step){flex-grow:initial}.step-top{display:flex;width:100%;align-items:center;align-self:flex-start;height:2.5rem}:host(.default) .step-icon{border-radius:50%}.step-icon-inner{width:var(--ic-space-xl);height:var(--ic-space-xl);display:flex;justify-content:center;align-items:center;border-radius:50%}:host(.default) .current{color:var(--ic-theme-primary)}:host(.default) .step-title-area{margin:var(--ic-space-xs) 0;padding-right:var(--ic-space-xs);width:100%}:host(.default) .step-title,.step-subtitle{width:-moz-fit-content;width:fit-content}.step-subtitle{color:var(--ic-color-tertiary-text)}.current .step-subtitle{color:var(--ic-color-primary-text)}:host(.default) .completed{color:var(--ic-status-success)}.active .step-icon-inner{box-shadow:inset var(--ic-architectural-200) 0 0 0 0.125rem}.current .step-icon-inner{background-color:var(--ic-theme-primary);color:white}.disabled{color:var(--ic-architectural-200)}.disabled .step-icon-inner{border:var(--ic-space-1px) dashed var(--ic-architectural-200);width:calc(var(--ic-space-xl) - var(--ic-space-xxxs));height:calc(var(--ic-space-xl) - var(--ic-space-xxxs))}.disabled .step-title-area{color:var(--ic-color-tertiary-text)}.completed .step-icon-inner{background:var(--ic-status-success);box-shadow:inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);border-radius:100%}:host(.default) .current .step-icon{border:var(--ic-space-xxxs) solid var(--ic-theme-primary);padding:var(--ic-space-xxxs);margin:0 calc(-1 * var(--ic-space-xxxs));}.step-connect{height:var(--ic-space-xxxs);background-color:var(--ic-architectural-200);margin:0 var(--ic-space-xs);border-radius:var(--ic-space-xxs);width:100%}.aligned-full-width.step-connect{min-width:6.25rem;width:100%}.disabled .step-connect{height:0;background-color:rgb(0 0 0 / 0%);border-top:0.125rem dashed var(--ic-architectural-200);border-radius:0}.completed .step-connect{background-color:var(--ic-status-success)}.step-connect-inner{width:70%;display:flex;flex:auto;height:var(--ic-space-xxxs);border-radius:var(--ic-space-xxs);background-color:var(--ic-theme-primary)}.step-icon-inner .check-icon{padding-top:var(--ic-space-xxs)}.step-icon-inner .check-icon svg{width:var(--ic-space-md);height:auto}.step-icon-inner .check-icon>svg>path{fill:var(--ic-color-white-text)}@media (forced-colors: active){.compact-step-disabled :is(.step-title,.step-status){color:GrayText}.step-connect:not(.disabled .step-connect){border:var(--ic-hc-border)}.active .step-icon-inner,.completed .step-icon-inner,.current .step-icon-inner{forced-color-adjust:none;box-shadow:inset canvastext 0 0 0 0.125rem;background-color:transparent;color:canvastext}:host(.default) .current .step-icon{padding:0;border:none}.disabled,.disabled .step-title-area{color:GrayText}.step-connect-inner,.completed .step-connect{background-color:canvastext}.step-icon-inner .check-icon>svg>path{fill:canvastext}}";const n=class{constructor(e){t(this,e);this.variant=undefined;this.stepTitle=undefined;this.stepSubtitle=undefined;this.stepStatus=undefined;this.stepType="active";this.current=false;this.compactStepStyling=undefined;this.stepNum=undefined;this.lastStep=undefined;this.lastStepNum=undefined;this.nextStepTitle=undefined;this.progress=undefined}stepTypeChangeHandler(){if(this.variant==="compact"&&this.stepType==="current"){this.current=true}else{this.current=false}}render(){let t="";if(this.stepType==="completed"){t=". Completed step"}else if(this.stepType==="disabled"){t=". Non-required step"}else if(this.stepStatus==="required"){t=". Required step"}else if(this.stepStatus==="optional"){t=". Optional step"}let i;if(this.stepStatus){i=this.stepStatus[0].toUpperCase()+this.stepStatus.slice(1)}let r;if(this.stepType==="disabled"||this.compactStepStyling==="disabled"){r="Not required"}else if(this.compactStepStyling==="completed"){r="Completed"}let n;if(this.stepType==="completed"||this.compactStepStyling==="completed"){n=e("span",{class:"check-icon step-icon","aria-hidden":"true",innerHTML:a})}else if(this.stepType==="disabled"||this.compactStepStyling==="disabled"){n=e("span",{class:"warning-icon step-icon","aria-hidden":"true",innerHTML:c})}const o=e("div",{class:{["step"]:true,["current"]:this.current,[`compact-step-${this.compactStepStyling}`]:!!this.compactStepStyling}},e("ic-loading-indicator",{class:{"compact-step-progress-indicator":true,"not-required":this.stepType==="disabled"||this.compactStepStyling==="disabled"},"aria-hidden":"true",size:"small","inner-label":this.stepNum,progress:this.progress}),e("div",{class:"step-title-area"},e("ic-typography",{variant:"h4",class:"step-title"},this.stepTitle),e("div",{class:"info-line"},e("ic-typography",{variant:"caption",class:"step-num"},`${this.stepNum} of ${this.lastStepNum}`,e("span",{class:"visually-hidden"}," steps")),(this.stepSubtitle||this.stepType==="completed"||this.stepType==="disabled"||this.variant==="compact"&&!!this.compactStepStyling&&this.compactStepStyling!=="active"||!!this.stepStatus)&&e("div",{class:"step-status"},n&&n,(this.stepSubtitle||r)&&e("ic-typography",{variant:"caption"},this.stepSubtitle!==null&&this.stepSubtitle!==undefined?this.stepSubtitle:this.stepType==="disabled"||this.variant==="compact"&&this.compactStepStyling==="disabled"||this.stepType==="completed"||this.variant==="compact"&&this.compactStepStyling==="completed"?r:this.stepStatus&&i))),this.lastStep?e("ic-typography",{variant:"subtitle-small",class:"next-step"},"Last step"):this.nextStepTitle!==undefined&&e("ic-typography",{variant:"subtitle-small",class:"next-step"},"Next",e("span",{class:"visually-hidden"}," step is"),":"," ",this.nextStepTitle)));let l;if(this.stepType!=="completed"){l=e("ic-typography",{variant:"subtitle-small"},e("span",{class:"step-icon-inner","aria-hidden":"true"},this.stepNum))}else{l=e("div",{class:"step-icon-inner","aria-hidden":"true"},e("span",{class:"check-icon",innerHTML:a}))}const p=this.stepType==="current"&&e("div",{class:"step-connect-inner"});const d=!this.lastStep&&e("div",{class:{["step-connect"]:true,["aligned-full-width"]:this.el.parentElement.classList.contains("default")&&!this.el.parentElement.classList.contains("aligned-left")}},p);const h=e("div",{class:{["step"]:true,[`${this.stepType}`]:true}},e("div",{class:"step-top"},e("div",{class:"step-icon"},l),d),(this.stepTitle||this.stepSubtitle||this.stepStatus)&&e("div",{class:"step-title-area"},this.stepTitle&&e("ic-typography",{variant:"subtitle-large",class:"step-title"},this.stepTitle),this.stepTitle&&(this.stepSubtitle||this.stepStatus)&&e("ic-typography",{variant:"caption",class:"step-subtitle"},this.stepSubtitle!==null&&this.stepSubtitle!==undefined?this.stepSubtitle:i)));return e(s,{role:"listitem","aria-label":`Step ${this.stepNum}${t}`,"aria-current":(this.current||this.stepType==="current")&&"step",class:{["aligned-full-width"]:this.el.parentElement.classList.contains("default")&&!this.el.parentElement.classList.contains("aligned-left"),[`${this.variant}`]:true}},this.variant==="compact"?o:h)}get el(){return i(this)}static get watchers(){return{stepType:["stepTypeChangeHandler"]}}};n.style=r;export{n as ic_step};
2
- //# sourceMappingURL=p-de891d3d.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-step/ic-step.css?tag=ic-step&encapsulation=shadow","src/components/ic-step/ic-step.tsx"],"names":["icStepCss","Step","[object Object]","this","variant","stepType","current","ariaLabel","stepStatus","toUpperCase","slice","compactStepStyling","statusIcon","h","class","aria-hidden","innerHTML","checkIcon","warningIcon","compactStep","compact-step-progress-indicator","not-required","size","inner-label","stepNum","progress","stepTitle","lastStepNum","stepSubtitle","undefined","lastStep","nextStepTitle","icon","partialBar","finalStep","el","parentElement","classList","contains","defaultStep","Host","role","aria-label","aria-current"],"mappings":"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","sourcesContent":["/* SHARED STYLING */\n:host {\n display: flex;\n flex: auto;\n}\n\n.step {\n display: flex;\n flex: 1 1 0;\n}\n\n.step-icon {\n display: flex;\n justify-content: center;\n}\n\n.step-title,\n.step-subtitle,\n.step-status,\n.next-step {\n white-space: pre-line;\n}\n\n.visually-hidden {\n position: absolute;\n left: -625rem;\n top: auto;\n width: 1px;\n height: 1px;\n overflow: hidden;\n}\n\n/* COMPACT STEP STYLING */\n:host(.compact) {\n column-gap: var(--ic-space-sm);\n\n --compact-step-inner-color: var(--ic-theme-primary);\n --compact-step-circular-line-width: var(--ic-space-xxs);\n}\n\n:host(.compact) .step {\n column-gap: var(--ic-space-sm);\n}\n\n:host(.compact) .step:not(.current) {\n display: none;\n opacity: 0;\n visibility: hidden;\n}\n\n.compact-step-progress-indicator {\n margin: var(--ic-space-xs) 0 0;\n}\n\n:host(.compact) .step-title-area {\n display: flex;\n flex-direction: column;\n width: 14.25rem;\n}\n\n.info-line {\n display: flex;\n column-gap: var(--ic-space-xs);\n}\n\n.step-status {\n display: flex;\n color: var(--ic-color-secondary-text);\n column-gap: var(--ic-space-xxxs);\n}\n\n.compact-step-completed .step-status {\n color: var(--ic-status-success);\n}\n\n.compact-step-disabled :is(.step-title, .step-status) {\n color: var(--ic-color-tertiary-text);\n}\n\n.step-num {\n color: var(--ic-color-secondary-text);\n white-space: nowrap;\n}\n\n:host(.compact) .step-icon {\n margin: var(--ic-space-xxxs);\n}\n\n:host(.compact) .step-icon svg {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n/* DEFAULT STEP STYLING */\n:host(.default) .step {\n flex-direction: column;\n}\n\n:host(.default.last-step) {\n flex-grow: initial;\n}\n\n.step-top {\n display: flex;\n width: 100%;\n align-items: center;\n align-self: flex-start;\n height: 2.5rem;\n}\n\n:host(.default) .step-icon {\n border-radius: 50%;\n}\n\n.step-icon-inner {\n width: var(--ic-space-xl);\n height: var(--ic-space-xl);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n}\n\n:host(.default) .current {\n color: var(--ic-theme-primary);\n}\n\n:host(.default) .step-title-area {\n margin: var(--ic-space-xs) 0;\n padding-right: var(--ic-space-xs);\n width: 100%;\n}\n\n:host(.default) .step-title,\n.step-subtitle {\n width: fit-content;\n}\n\n.step-subtitle {\n color: var(--ic-color-tertiary-text);\n}\n\n.current .step-subtitle {\n color: var(--ic-color-primary-text);\n}\n\n:host(.default) .completed {\n color: var(--ic-status-success);\n}\n\n.active .step-icon-inner {\n box-shadow: inset var(--ic-architectural-200) 0 0 0 0.125rem;\n}\n\n.current .step-icon-inner {\n background-color: var(--ic-theme-primary);\n color: white;\n}\n\n.disabled {\n color: var(--ic-architectural-200);\n}\n\n.disabled .step-icon-inner {\n border: var(--ic-space-1px) dashed var(--ic-architectural-200);\n width: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n height: calc(var(--ic-space-xl) - var(--ic-space-xxxs));\n}\n\n.disabled .step-title-area {\n color: var(--ic-color-tertiary-text);\n}\n\n.completed .step-icon-inner {\n background: var(--ic-status-success);\n box-shadow: inset var(--ic-status-success) 0 0 0 var(--ic-space-xxxs);\n border-radius: 100%;\n}\n\n:host(.default) .current .step-icon {\n border: var(--ic-space-xxxs) solid var(--ic-theme-primary);\n padding: var(--ic-space-xxxs);\n margin: 0 calc(-1 * var(--ic-space-xxxs));\n\n /* compensating for the circle being bigger than other steps */\n}\n\n.step-connect {\n height: var(--ic-space-xxxs);\n background-color: var(--ic-architectural-200);\n margin: 0 var(--ic-space-xs);\n border-radius: var(--ic-space-xxs);\n width: 100%;\n}\n\n.aligned-full-width.step-connect {\n min-width: 6.25rem;\n width: 100%;\n}\n\n.disabled .step-connect {\n height: 0;\n background-color: rgb(0 0 0 / 0%);\n border-top: 0.125rem dashed var(--ic-architectural-200);\n border-radius: 0;\n}\n\n.completed .step-connect {\n background-color: var(--ic-status-success);\n}\n\n.step-connect-inner {\n width: 70%;\n display: flex;\n flex: auto;\n height: var(--ic-space-xxxs);\n border-radius: var(--ic-space-xxs);\n background-color: var(--ic-theme-primary);\n}\n\n.step-icon-inner .check-icon {\n padding-top: var(--ic-space-xxs);\n}\n\n.step-icon-inner .check-icon svg {\n width: var(--ic-space-md);\n height: auto;\n}\n\n.step-icon-inner .check-icon > svg > path {\n fill: var(--ic-color-white-text);\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n /* COMPACT STEP */\n .compact-step-disabled :is(.step-title, .step-status) {\n color: GrayText;\n }\n\n /* DEFAULT STEP */\n .step-connect:not(.disabled .step-connect) {\n border: var(--ic-hc-border);\n }\n\n .active .step-icon-inner,\n .completed .step-icon-inner,\n .current .step-icon-inner {\n forced-color-adjust: none;\n box-shadow: inset canvastext 0 0 0 0.125rem;\n background-color: transparent;\n color: canvastext;\n }\n\n :host(.default) .current .step-icon {\n padding: 0;\n border: none;\n }\n\n .disabled,\n .disabled .step-title-area {\n color: GrayText;\n }\n\n .step-connect-inner,\n .completed .step-connect {\n background-color: canvastext;\n }\n\n .step-icon-inner .check-icon > svg > path {\n fill: canvastext;\n }\n}\n","import { Component, Host, h, Prop, Element, Watch } from \"@stencil/core\";\nimport checkIcon from \"../../assets/check-icon.svg\";\nimport warningIcon from \"../../assets/warning-icon-outline.svg\";\nimport { IcStepVariants, IcStepStatuses, IcStepTypes } from \"./ic-step.types\";\n\n@Component({\n tag: \"ic-step\",\n styleUrl: \"ic-step.css\",\n shadow: true,\n})\nexport class Step {\n @Element() el: HTMLIcStepElement;\n /**\n * @internal The variant of the step. This is managed by ic-stepper.\n */\n @Prop() variant!: IcStepVariants;\n\n /**\n * The title of the step within the stepper.\n */\n @Prop() stepTitle?: string;\n\n /**\n * Additional information about the step. Use this prop to override the default step status messaging displayed when selecting a step type or step status.\n */\n @Prop() stepSubtitle?: string;\n\n /**\n * The status of the step. Use this prop to display a status message on the step if it is required or optional.\n */\n @Prop() stepStatus?: IcStepStatuses;\n\n /**\n * The state of the step within the stepper.\n */\n @Prop() stepType?: IcStepTypes = \"active\";\n\n /**\n * @internal If `true`, and a compact stepper is being used, the current step will be the only step in view.\n */\n @Prop({ mutable: true }) current?: boolean = false;\n\n /**\n * @internal If a compact stepper is being used, this sets the styling of the step.\n */\n @Prop() compactStepStyling?: IcStepTypes;\n\n /**\n * @internal The step number, managed by ic-stepper.\n */\n @Prop() stepNum?: number;\n\n /**\n * @internal If `true`, the step will be marked as being the last one in the series. This is managed by ic-stepper.\n */\n @Prop() lastStep!: boolean;\n\n /**\n * @internal The step number of the final step. This is managed by ic-stepper.\n */\n @Prop() lastStepNum?: number;\n\n /**\n * @internal The name of the next step. This is managed by ic-stepper.\n */\n @Prop() nextStepTitle?: string;\n\n /**\n * @internal The progress of the next step, calculated by dividing the current step number by the total number of steps. This is managed by ic-stepper.\n */\n @Prop() progress?: number;\n\n @Watch(\"stepType\")\n stepTypeChangeHandler(): void {\n if (this.variant === \"compact\" && this.stepType === \"current\") {\n this.current = true;\n } else {\n this.current = false;\n }\n }\n\n render() {\n // ARIA LABEL\n let ariaLabel = \"\";\n\n if (this.stepType === \"completed\") {\n ariaLabel = \". Completed step\";\n } else if (this.stepType === \"disabled\") {\n ariaLabel = \". Non-required step\";\n } else if (this.stepStatus === \"required\") {\n ariaLabel = \". Required step\";\n } else if (this.stepStatus === \"optional\") {\n ariaLabel = \". Optional step\";\n }\n\n // STEP STATUS\n let stepStatus;\n if (this.stepStatus) {\n stepStatus = this.stepStatus[0].toUpperCase() + this.stepStatus.slice(1);\n }\n\n // STEP TYPE\n let stepType;\n if (\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\"\n ) {\n stepType = \"Not required\";\n } else if (this.compactStepStyling === \"completed\") {\n stepType = \"Completed\";\n }\n\n // STATUS ICON FOR COMPACT STEP\n let statusIcon;\n if (\n this.stepType === \"completed\" ||\n this.compactStepStyling === \"completed\"\n ) {\n statusIcon = (\n <span\n class=\"check-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={checkIcon}\n ></span>\n );\n } else if (\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\"\n ) {\n statusIcon = (\n <span\n class=\"warning-icon step-icon\"\n aria-hidden=\"true\"\n innerHTML={warningIcon}\n ></span>\n );\n }\n\n // COMPACT STEP COMPONENT\n const compactStep = (\n <div\n class={{\n [\"step\"]: true,\n [\"current\"]: this.current,\n [`compact-step-${this.compactStepStyling}`]:\n !!this.compactStepStyling,\n }}\n >\n <ic-loading-indicator\n class={{\n \"compact-step-progress-indicator\": true,\n \"not-required\":\n this.stepType === \"disabled\" ||\n this.compactStepStyling === \"disabled\",\n }}\n aria-hidden=\"true\"\n size=\"small\"\n inner-label={this.stepNum}\n progress={this.progress}\n ></ic-loading-indicator>\n <div class=\"step-title-area\">\n <ic-typography variant=\"h4\" class=\"step-title\">\n {this.stepTitle}\n </ic-typography>\n <div class=\"info-line\">\n <ic-typography variant=\"caption\" class=\"step-num\">\n {`${this.stepNum} of ${this.lastStepNum}`}\n <span class=\"visually-hidden\"> steps</span>\n </ic-typography>\n {(this.stepSubtitle ||\n this.stepType === \"completed\" ||\n this.stepType === \"disabled\" ||\n (this.variant === \"compact\" &&\n !!this.compactStepStyling &&\n this.compactStepStyling !== \"active\") ||\n !!this.stepStatus) && (\n <div class=\"step-status\">\n {statusIcon && statusIcon}\n {(this.stepSubtitle || stepType) && (\n <ic-typography variant=\"caption\">\n {this.stepSubtitle !== null &&\n this.stepSubtitle !== undefined\n ? this.stepSubtitle\n : this.stepType === \"disabled\" ||\n (this.variant === \"compact\" &&\n this.compactStepStyling === \"disabled\") ||\n this.stepType === \"completed\" ||\n (this.variant === \"compact\" &&\n this.compactStepStyling === \"completed\")\n ? stepType\n : this.stepStatus && stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n {this.lastStep ? (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n Last step\n </ic-typography>\n ) : (\n this.nextStepTitle !== undefined && (\n <ic-typography variant=\"subtitle-small\" class=\"next-step\">\n Next<span class=\"visually-hidden\"> step is</span>:{\" \"}\n {this.nextStepTitle}\n </ic-typography>\n )\n )}\n </div>\n </div>\n );\n\n // ICON FOR DEFAULT STEP\n let icon;\n if (this.stepType !== \"completed\") {\n icon = (\n <ic-typography variant=\"subtitle-small\">\n <span class=\"step-icon-inner\" aria-hidden=\"true\">\n {this.stepNum}\n </span>\n </ic-typography>\n );\n } else {\n icon = (\n <div class=\"step-icon-inner\" aria-hidden=\"true\">\n <span class=\"check-icon\" innerHTML={checkIcon}></span>\n </div>\n );\n }\n\n // STEP CONNECT FOR DEFAULT STEP\n const partialBar = this.stepType === \"current\" && (\n <div class=\"step-connect-inner\"></div>\n );\n\n const finalStep = !this.lastStep && (\n <div\n class={{\n [\"step-connect\"]: true,\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"default\") &&\n !this.el.parentElement.classList.contains(\"aligned-left\"),\n }}\n >\n {partialBar}\n </div>\n );\n\n // DEFAULT STEP COMPONENT\n const defaultStep = (\n <div\n class={{\n [\"step\"]: true,\n [`${this.stepType}`]: true,\n }}\n >\n <div class=\"step-top\">\n <div class=\"step-icon\">{icon}</div>\n {finalStep}\n </div>\n {(this.stepTitle || this.stepSubtitle || this.stepStatus) && (\n <div class=\"step-title-area\">\n {this.stepTitle && (\n <ic-typography variant=\"subtitle-large\" class=\"step-title\">\n {this.stepTitle}\n </ic-typography>\n )}\n {this.stepTitle && (this.stepSubtitle || this.stepStatus) && (\n <ic-typography variant=\"caption\" class=\"step-subtitle\">\n {this.stepSubtitle !== null && this.stepSubtitle !== undefined\n ? this.stepSubtitle\n : stepStatus}\n </ic-typography>\n )}\n </div>\n )}\n </div>\n );\n\n return (\n <Host\n role=\"listitem\"\n aria-label={`Step ${this.stepNum}${ariaLabel}`}\n aria-current={(this.current || this.stepType === \"current\") && \"step\"}\n class={{\n [\"aligned-full-width\"]:\n this.el.parentElement.classList.contains(\"default\") &&\n !this.el.parentElement.classList.contains(\"aligned-left\"),\n [`${this.variant}`]: true,\n }}\n >\n {this.variant === \"compact\" ? compactStep : defaultStep}\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-menu-item/ic-menu-item.css?tag=ic-menu-item&encapsulation=shadow","src/components/ic-menu-item/ic-menu-item.tsx"],"names":["icMenuItemCss","MenuItem","this","handleClick","e","preventDefault","submenuTriggerFor","undefined","triggerPopoverMenuInstance","emit","variant","toggleChecked","handleMenuItemClick","label","hasSubMenu","el","getMenuItemAriaLabel","ariaLabel","description","keyboardShortcut","classList","contains","parentEl","getParentElement","tagName","[object Object]","disabled","stopImmediatePropagation","onComponentRequiredPropUndefined","prop","propName","isPropDefined","MenuItemInformation","h","class","Host","role","aria-disabled","aria-checked","disableTooltip","fullWidth","onClick","href","hreflang","target","rel","referrerpolicy","aria-label","aria-controls","aria-haspopup","aria-owns","isSlotUsed","name","aria-hidden","innerHTML","Check","Chevron"],"mappings":"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","sourcesContent":["@import \"../../global/normalize.css\";\n\nli {\n list-style: none;\n padding: 0;\n}\n\n:host::part(button) {\n color: var(--ic-color-primary-text);\n padding: calc(var(--ic-space-xxxs) / 2);\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: 0;\n min-height: 2.5rem;\n height: auto;\n}\n\n.focus-border {\n display: flex;\n align-items: flex-start;\n gap: var(--ic-space-xs);\n border-radius: var(--ic-border-radius);\n margin: calc(var(--ic-space-xxxs) / 2);\n padding: var(--ic-space-xxs);\n border: var(--ic-space-xxxs) dashed transparent;\n\n --icon-height: auto;\n}\n\n:host(.disabled)::part(button) {\n color: var(--ic-architectural-200) !important;\n pointer-events: none;\n}\n\n:host(.disabled) .menu-item-label,\n:host(.disabled) .shortcut,\n:host(.disabled) .menu-item-description {\n color: var(--ic-architectural-200) !important;\n}\n\n:host([variant=\"destructive\"])::part(button) {\n color: var(--ic-action-destructive);\n}\n\n:host::part(button):hover {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n:host::part(button):focus-visible,\n:host::part(button):focus {\n color: var(--ic-color-white-text);\n background-color: var(--ic-focus-blue);\n box-shadow: none;\n}\n\n:host(.disabled)::part(button):focus-visible,\n:host(.disabled)::part(button):focus {\n color: var(--ic-theme-lighten-40) !important;\n}\n\n:host([variant=\"destructive\"])::part(button):focus-visible,\n:host([variant=\"destructive\"])::part(button):focus {\n background-color: var(--ic-action-destructive);\n}\n\nic-button:focus-within .menu-item-label,\nic-button:focus-within .shortcut,\nic-button:focus-within .menu-item-description {\n color: var(--ic-color-white-text);\n}\n\n:host(.disabled) ic-button:focus-within .focus-border {\n border-color: var(--ic-architectural-white);\n}\n\n:host(.disabled) ic-button:focus-within .menu-item-label,\n:host(.disabled) ic-button:focus-within .shortcut,\n:host(.disabled) ic-button:focus-within .menu-item-description {\n color: var(--ic-theme-lighten-40) !important;\n}\n\n:host::part(button):active {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-color-primary-text) !important;\n}\n\n:host([variant=\"destructive\"])::part(button):active {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-destructive) !important;\n}\n\n.menu-item-info {\n display: flex;\n flex-direction: column;\n flex: 1;\n align-items: baseline;\n white-space: pre-line;\n text-align: left;\n}\n\n.menu-labels {\n display: flex;\n align-items: baseline;\n gap: var(--ic-space-xs);\n}\n\n.menu-item-description {\n color: var(--ic-color-secondary-text);\n}\n\n.shortcut {\n color: var(--ic-color-tertiary-text);\n display: flex;\n flex: min-content;\n}\n\n:host([variant=\"destructive\"]) .menu-item-label {\n text-transform: uppercase;\n font-weight: 600;\n letter-spacing: 0.025em;\n}\n\nic-button:active .menu-item-label {\n color: var(--ic-color-primary-text);\n}\n\nic-button:active .menu-item-description {\n color: var(--ic-color-secondary-text);\n}\n\nic-button:active .shortcut {\n color: var(--ic-color-tertiary-text);\n}\n\n:host([variant=\"destructive\"]) ic-button:active .menu-item-label {\n color: var(--ic-action-destructive) !important;\n}\n\n.icon,\n.check-icon,\n.submenu-icon,\n.icon ::slotted(svg),\n.check-icon svg,\n.submenu-icon svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.check-icon.hide {\n visibility: hidden;\n}\n\n/** High Contrast **/\n@media (forced-colors: active) {\n :host::part(button) {\n border: Canvas;\n }\n\n :host::part(button):focus-visible {\n outline: var(--ic-space-xxxs) solid transparent;\n }\n\n .focus-border {\n border-color: Canvas;\n }\n\n :host(.disabled) ic-button:focus-within .focus-border {\n border-color: GrayText;\n }\n\n :host(.disabled) .menu-item-info,\n :host(.disabled) .menu-item-label,\n :host(.disabled) .shortcut,\n :host(.disabled) .menu-item-description,\n :host(.disabled) ic-button:focus-within .menu-item-info,\n :host(.disabled) ic-button:focus-within .menu-item-label,\n :host(.disabled) ic-button:focus-within .shortcut,\n :host(.disabled) ic-button:focus-within .menu-item-description {\n color: GrayText !important;\n }\n\n :host(.disabled)::part(button):focus-visible,\n :host(.disabled)::part(button):focus {\n outline-color: GrayText !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\nimport {\n getParentElement,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport { IcMenuItemVariants } from \"./ic-menu-item.types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Chevron from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot icon - Content will be placed to the left of the menu item label.\n */\n\n@Component({\n tag: \"ic-menu-item\",\n styleUrl: \"ic-menu-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class MenuItem {\n @Element() el: HTMLIcMenuItemElement;\n\n /**\n * The variant of the menu item.\n */\n @Prop({ mutable: true, reflect: true }) variant: IcMenuItemVariants =\n \"default\";\n /**\n * The label to display in the menu item.\n */\n @Prop() label!: string;\n /**\n * The description displayed in the menu item, below the label.\n */\n @Prop() description?: string;\n /**\n * If `true`, the menu item will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n /**\n * The URL that the link points to. This will render the menu item as an \"a\" tag.\n */\n @Prop() href?: string;\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 * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n /**\n * The label describing the keyboard shortcut for a menu item's action.\n */\n @Prop() keyboardShortcut?: string;\n /**\n * This references the popover menu instance that the menu item is a trigger for. If this prop is set, then the variant will always be default.\n */\n @Prop() submenuTriggerFor?: string;\n /**\n * @internal Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n /**\n * @internal Emitted when the user clicks a menu item that triggers a popover menu instance.\n */\n @Event() triggerPopoverMenuInstance: EventEmitter<void>;\n /**\n * @internal Emitted when the user clicks a menu item.\n */\n @Event() handleMenuItemClick: EventEmitter<{\n label: string;\n hasSubMenu: boolean;\n }>;\n\n @State() toggleChecked: boolean = false;\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n }\n\n private handleClick = (e: Event): void => {\n e.preventDefault();\n if (this.submenuTriggerFor !== undefined) {\n this.triggerPopoverMenuInstance.emit();\n } else if (this.variant === \"toggle\") {\n this.toggleChecked\n ? (this.toggleChecked = false)\n : (this.toggleChecked = true);\n }\n this.handleMenuItemClick.emit({\n label: this.label,\n hasSubMenu: !!this.el.submenuTriggerFor,\n });\n };\n\n componentWillLoad(): void {\n // This ensures that trigger menu items are always set to the default variant\n if (this.submenuTriggerFor !== undefined && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Menu Item\"\n );\n }\n\n private getMenuItemAriaLabel = (): string => {\n let ariaLabel = this.label;\n\n if (this.description !== undefined) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n\n if (this.keyboardShortcut !== undefined) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcut}`;\n }\n\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n\n if (this.submenuTriggerFor !== undefined) {\n ariaLabel = `${ariaLabel}, triggers submenu`;\n }\n\n if (this.el.classList.contains(\"ic-popover-submenu-back-button\")) {\n ariaLabel = \"Go back to parent menu\";\n }\n const parentEl = getParentElement(this.el);\n\n if (parentEl.tagName === \"IC-MENU-GROUP\") {\n return `${ariaLabel}, ${\n (parentEl as HTMLIcMenuGroupElement).label\n } menu group`;\n } else {\n return ariaLabel;\n }\n };\n\n render() {\n // A helper function that checks if a prop has been defined\n const isPropDefined = (prop: string) => {\n return prop !== undefined ? prop : null;\n };\n\n // A sub-component to layout the menu information correctly in ic-button\n const MenuItemInformation = () => {\n return (\n <div class=\"menu-item-info\">\n <div class=\"menu-labels\">\n <ic-typography class=\"menu-item-label\">{this.label}</ic-typography>\n {this.keyboardShortcut && (\n <ic-typography variant=\"caption\" class=\"shortcut\">\n {this.keyboardShortcut}\n </ic-typography>\n )}\n </div>\n {this.description && (\n <ic-typography class=\"menu-item-description\" variant=\"caption\">\n {this.description}\n </ic-typography>\n )}\n </div>\n );\n };\n\n return (\n <Host\n class={{\n [\"disabled\"]: this.disabled,\n }}\n >\n <li\n role={this.variant === \"toggle\" ? \"menuitemcheckbox\" : \"menuitem\"}\n aria-disabled={`${this.disabled}`}\n aria-checked={\n this.variant === \"toggle\" && this.toggleChecked === true\n ? true\n : this.variant === \"toggle\" && this.toggleChecked === false\n ? false\n : undefined\n }\n >\n <ic-button\n disableTooltip\n fullWidth\n variant=\"tertiary\"\n onClick={this.handleClick}\n href={isPropDefined(this.href)}\n hreflang={isPropDefined(this.hreflang)}\n target={isPropDefined(this.target)}\n rel={isPropDefined(this.rel)}\n referrerpolicy={\n this.referrerpolicy !== undefined ? this.referrerpolicy : null\n }\n aria-disabled={`${this.disabled}`}\n aria-label={this.getMenuItemAriaLabel()}\n aria-controls={\n this.submenuTriggerFor !== undefined\n ? `ic-popover-submenu-${this.submenuTriggerFor}`\n : false\n }\n aria-haspopup={\n this.submenuTriggerFor !== undefined ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\n : false\n }\n aria-owns={\n this.submenuTriggerFor !== undefined\n ? `ic-popover-submenu-${this.submenuTriggerFor}`\n : false\n }\n >\n <div class=\"focus-border\">\n {isSlotUsed(this.el, \"icon\") && (\n <span class=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n )}\n <MenuItemInformation />\n {this.variant === \"toggle\" && (\n <span\n class={{\n [\"check-icon\"]: true,\n [\"hide\"]: !this.toggleChecked,\n }}\n aria-hidden=\"true\"\n innerHTML={Check}\n />\n )}\n {this.submenuTriggerFor !== undefined && (\n <span\n class={{ [\"submenu-icon\"]: true }}\n aria-hidden=\"true\"\n innerHTML={Chevron}\n />\n )}\n </div>\n </ic-button>\n </li>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as s,H as n,g as a}from"./p-589f6dd3.js";import{I as i}from"./p-6f57b13c.js";const d=":host{display:block}:host(.ic-tab-panel-light){color:white}";const c=class{constructor(s){t(this,s);this.tabPanelCreated=e(this,"tabPanelCreated",7);this.tabPanelRemoved=e(this,"tabPanelRemoved",7);this.contextId="default";this.tabPosition=undefined;this.panelId=undefined;this.selectedTab=undefined;this.appearance="dark"}connectedCallback(){this.tabPanelCreated.emit(this.host)}disconnectedCallback(){const t=document.querySelector(`ic-tab-context[context-id=${this.contextId}]`);t.tabRemovedHandler()}render(){const{panelId:t,selectedTab:e,appearance:a}=this;return s(n,{class:{["ic-tab-panel-light"]:a===i.Light},role:"tabpanel",hidden:t!==undefined&&e!==undefined?!(t===e):true},s("div",null,s("slot",null)))}get host(){return a(this)}};c.style=d;export{c as ic_tab_panel};
2
- //# sourceMappingURL=p-ea526b54.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-tab-panel/ic-tab-panel.css?tag=ic-tab-panel&encapsulation=shadow","src/components/ic-tab-panel/ic-tab-panel.tsx"],"names":["icTabPanelCss","TabPanel","[object Object]","this","tabPanelCreated","emit","host","tabContext","document","querySelector","contextId","tabRemovedHandler","panelId","selectedTab","appearance","h","Host","class","IcThemeForegroundEnum","Light","role","hidden","undefined"],"mappings":"oGAAA,MAAMA,EAAgB,oECmBTC,EAAQ,gJAO2B,uGAoBI,OAYlDC,oBACEC,KAAKC,gBAAgBC,KAAKF,KAAKG,MAGjCJ,uBACE,MAAMK,EAAaC,SAASC,cAC1B,6BAA6BN,KAAKO,cAEpCH,EAAWI,oBAGbT,SACE,MAAMU,QAAEA,EAAOC,YAAEA,EAAWC,WAAEA,GAAeX,KAC7C,OACEY,EAACC,EAAI,CACHC,MAAO,CACLf,CAAC,sBAAuBY,IAAeI,EAAsBC,OAE/DC,KAAK,WACLC,OACET,IAAYU,WAAaT,IAAgBS,YACnCV,IAAYC,GACd,MAGNE,EAAA,MAAA,KACEA,EAAA,OAAA","sourcesContent":[":host {\n display: block;\n}\n\n:host(.ic-tab-panel-light) {\n color: white;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n} from \"@stencil/core\";\nimport {\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\n\n@Component({\n tag: \"ic-tab-panel\",\n styleUrl: \"ic-tab-panel.css\",\n shadow: true,\n})\nexport class TabPanel {\n @Element() host: HTMLIcTabPanelElement;\n\n /**\n * @deprecated This is no longer required.\n * The context id is passed down from `ic-tab-context`\n */\n @Prop({ reflect: true }) contextId?: string = \"default\";\n\n /**\n * @internal The position of the tab panel inside the tabs array in context.\n */\n @Prop({ reflect: true }) tabPosition?: number;\n\n /**\n * @internal The shared ID that links the panel and tab.\n */\n @Prop({ reflect: true }) panelId?: string;\n\n /**\n * @internal The shared ID of the currently selected tab.\n */\n @Prop() selectedTab?: string;\n\n /**\n * @internal The appearance of the tabs, e.g dark, or light.\n */\n @Prop() appearance?: IcThemeForegroundNoDefault = \"dark\";\n\n /**\n * @internal Emitted when a tab panel is dynamically created.\n */\n @Event() tabPanelCreated: EventEmitter<HTMLIcTabPanelElement>;\n\n /**\n * @internal Emitted when a tab panel is unmounted.\n */\n @Event() tabPanelRemoved: EventEmitter<void>;\n\n connectedCallback(): void {\n this.tabPanelCreated.emit(this.host);\n }\n\n disconnectedCallback(): void {\n const tabContext = document.querySelector(\n `ic-tab-context[context-id=${this.contextId}]`\n ) as HTMLIcTabContextElement;\n tabContext.tabRemovedHandler();\n }\n\n render() {\n const { panelId, selectedTab, appearance } = this;\n return (\n <Host\n class={{\n [\"ic-tab-panel-light\"]: appearance === IcThemeForegroundEnum.Light,\n }}\n role=\"tabpanel\"\n hidden={\n panelId !== undefined && selectedTab !== undefined\n ? !(panelId === selectedTab)\n : true\n }\n >\n <div>\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{r as e,h as t,H as i,g as o}from"./p-589f6dd3.js";import{t as n}from"./p-3dea2867.js";import{c as s}from"./p-ec26fc38.js";import"./p-6f57b13c.js";const a='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host .opening-from-parent{animation:slide-in var(--ic-transition-duration-slow) ease-in-out}:host .opening-from-child{animation:slide-out var(--ic-transition-duration-slow) ease-in-out}}:host{border-radius:var(--ic-border-radius);color:var(--ic-color-primary-text);background-color:var(--ic-architectural-white);position:relative;z-index:var(--ic-z-index-popover);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);display:none}.menu{border:0.063rem solid var(--ic-architectural-400);border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);visibility:hidden;height:0}.button{text-decoration:none;list-style-type:none}:host(:focus-within){box-shadow:var(--ic-border-focus)}.menu:focus-visible{outline:none}:host(.open){display:block;min-width:calc(20rem - var(--ic-space-xl));width:var(--popover-width, 20rem);max-width:calc(100vw - var(--ic-space-xl))}:host(.open) .menu{visibility:visible;height:-moz-fit-content;height:fit-content;max-height:var(--max-height, -moz-fit-content);max-height:var(--max-height, fit-content);overflow-y:auto;overflow-x:hidden}.parent-label{color:var(--ic-color-tertiary-text);margin:var(--ic-space-xs) var(--ic-space-xs) 0}@keyframes slide-in{from{opacity:0;transform:translateX(10rem)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out{from{opacity:0;transform:translateX(-10rem)}to{opacity:1;transform:translateX(0)}}';const r=class{constructor(t){e(this,t);this.setButtonFocus=()=>{var e;(e=this.popoverMenuEls[this.currentFocus])===null||e===void 0?void 0:e.focus()};this.popoverMenuEls=[];this.findAnchorEl=e=>{let t=null;if(e===null||e===undefined){this.submenuId===undefined&&console.error("No anchor specified for popover component")}else{t=document.querySelector(e.indexOf("#")===0?e:"#"+e);if(t===null){console.error(`Popover anchor element '${e}' not found`)}}return t};this.isNotPopoverMenuEl=e=>{const t=e.target;return t.id!==this.anchor&&t.tagName!=="IC-MENU-ITEM"&&t.tagName!=="IC-MENU-GROUP"&&t.tagName!=="IC-POPOVER-MENU"};this.closeMenu=()=>{var e;this.open=false;(e=this.anchorEl)===null||e===void 0?void 0:e.focus()};this.getNextItemToSelect=(e,t)=>{const i=this.popoverMenuEls.length-1;if(e<1){e=0}let o=t?e+1:e-1;if(o<0){o=i}else if(o>i){o=0}return o};this.addMenuItems=e=>{for(let t=0;t<e.length;t++){const i=e[t];if(i.tagName==="IC-MENU-ITEM"){this.popoverMenuEls.push(i)}else if(i.tagName==="IC-MENU-GROUP"){const e=i.shadowRoot.querySelector("ul");const t=n(e);this.addMenuItems(t)}}};this.getMenuAriaLabel=()=>{const e=this.host.getAttribute("aria-label");if(this.submenuId!==undefined){return`${e}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`}else{return e}};this.handleBackButtonClick=()=>{this.parentPopover.openFromChild();this.open=false};this.anchor=undefined;this.submenuId=undefined;this.open=undefined;this.parentPopover=undefined;this.submenuLevel=1;this.parentLabel=undefined;this.openingFromChild=false;this.openingFromParent=false}handleMenuItemClick(e){if(!e.detail.hasSubMenu&&e.detail.label!=="Back"){this.closeMenu()}}handleSubmenuChange(e){const t=e.target;this.open=false;const i=document.querySelector(`ic-popover-menu[submenu-id=${t.submenuTriggerFor}]`);i.parentPopover=this.host;i.anchor=this.anchor;i.ariaLabel=this.host.getAttribute("aria-label");i.openFromParent();i.submenuLevel=this.submenuLevel+1;i.parentLabel=t.label}watchOpenHandler(){if(this.open){if(this.parentPopover!==undefined&&!this.popoverMenuEls.some((e=>e.id))){this.popoverMenuEls.unshift(this.backButton)}this.currentFocus=this.submenuId!==undefined?1:0;setTimeout(this.setButtonFocus,50)}}handleClick(e){e.preventDefault();if(this.open&&this.isNotPopoverMenuEl(e)){this.closeMenu()}}async openFromChild(){this.open=true;this.openingFromChild=true;setTimeout((()=>this.openingFromChild=false),1e3)}async openFromParent(){this.open=true;this.openingFromParent=true;setTimeout((()=>this.openingFromParent=false),1e3)}handleKeyDown(e){switch(e.key){case"ArrowDown":e.preventDefault();this.currentFocus=this.getNextItemToSelect(this.currentFocus,true);this.setButtonFocus();break;case"ArrowUp":e.preventDefault();this.currentFocus=this.getNextItemToSelect(this.currentFocus,false);this.setButtonFocus();break;case"Home":this.currentFocus=0;this.setButtonFocus();break;case"End":this.currentFocus=this.popoverMenuEls.length-1;this.setButtonFocus();break;case"Escape":case"Tab":if(this.open){this.closeMenu();this.host.blur()}break}}componentDidRender(){if(this.open){s(this.anchorEl,this.host,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,4]}}]})}}componentWillRender(){this.anchorEl=this.findAnchorEl(this.anchor)}componentDidLoad(){const e=this.host.shadowRoot.querySelector("ul.button");const t=n(e);if(t!==null){this.addMenuItems(t)}if(this.submenuId===undefined&&this.host.getAttribute("aria-label")===null){console.error(`No aria-label specified for popover menu component - aria-label required`)}}render(){return t(i,{class:{open:this.open}},t("div",{id:this.parentPopover===undefined?`ic-popover-submenu-${this.submenuId}`:"",class:{menu:true},tabindex:open?"0":"-1"},t("div",{class:{"opening-from-parent":this.openingFromParent,"opening-from-child":this.openingFromChild}},this.submenuId!==undefined&&t("div",null,t("ic-menu-item",{class:"ic-popover-submenu-back-button",ref:e=>this.backButton=e,label:"Back",onClick:this.handleBackButtonClick,id:`ic-popover-submenu-back-button-${this.submenuLevel}`},t("svg",{slot:"icon",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",class:"submenu-back-icon"},t("path",{d:"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z",fill:"currentColor"}))),t("ic-typography",{variant:"subtitle-small",class:"parent-label"},this.parentLabel)),t("ul",{class:"button","aria-label":this.getMenuAriaLabel(),role:"menu","aria-owns":this.submenuId!==undefined?`ic-popover-submenu-back-button-${this.submenuLevel}`:false,"aria-controls":this.submenuId!==undefined?`ic-popover-submenu-back-button-${this.submenuLevel}`:false},t("slot",null)))))}static get delegatesFocus(){return true}get host(){return o(this)}static get watchers(){return{open:["watchOpenHandler"]}}};r.style=a;export{r as ic_popover_menu};
2
- //# sourceMappingURL=p-ec8b228c.entry.js.map