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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) 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 +3 -6
  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 +2 -2
  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 +12 -1
  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.js +1 -4
  76. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  77. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -3
  78. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  79. package/dist/collection/components/ic-footer/ic-footer.css +2 -2
  80. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +1 -1
  81. package/dist/collection/components/ic-menu/ic-menu.js +4 -1
  82. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  83. package/dist/collection/components/ic-menu-item/ic-menu-item.js +2 -1
  84. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  85. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +6 -3
  86. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  87. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +13 -7
  88. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +0 -6
  89. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  90. package/dist/collection/components/ic-page-header/ic-page-header.js +9 -12
  91. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  92. package/dist/collection/components/ic-pagination/ic-pagination.js +52 -1
  93. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  94. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -3
  95. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  96. package/dist/collection/components/ic-select/ic-select.js +11 -12
  97. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  98. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +19 -15
  99. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  100. package/dist/collection/components/ic-step/ic-step.css +5 -5
  101. package/dist/collection/components/ic-step/ic-step.js +1 -1
  102. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  103. package/dist/collection/components/ic-tab/ic-tab.js +3 -1
  104. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  105. package/dist/collection/components/ic-tab-context/ic-tab-context.js +7 -5
  106. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  107. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +3 -1
  108. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  109. package/dist/collection/components/ic-text-field/ic-text-field.js +5 -13
  110. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  111. package/dist/collection/components/ic-typography/ic-typography.css +39 -0
  112. package/dist/collection/components/ic-typography/ic-typography.js +120 -2
  113. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  114. package/dist/collection/utils/helpers.js +18 -24
  115. package/dist/collection/utils/helpers.js.map +1 -1
  116. package/dist/components/helpers.js +18 -24
  117. package/dist/components/helpers.js.map +1 -1
  118. package/dist/components/ic-breadcrumb-group.js +13 -13
  119. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  120. package/dist/components/ic-breadcrumb2.js +4 -3
  121. package/dist/components/ic-breadcrumb2.js.map +1 -1
  122. package/dist/components/ic-button2.js +1 -4
  123. package/dist/components/ic-button2.js.map +1 -1
  124. package/dist/components/ic-checkbox.js +4 -3
  125. package/dist/components/ic-checkbox.js.map +1 -1
  126. package/dist/components/ic-footer.js +1 -1
  127. package/dist/components/ic-footer.js.map +1 -1
  128. package/dist/components/ic-loading-indicator2.js +1 -1
  129. package/dist/components/ic-loading-indicator2.js.map +1 -1
  130. package/dist/components/ic-menu-item2.js +2 -1
  131. package/dist/components/ic-menu-item2.js.map +1 -1
  132. package/dist/components/ic-menu2.js +4 -1
  133. package/dist/components/ic-menu2.js.map +1 -1
  134. package/dist/components/ic-navigation-group.js +6 -3
  135. package/dist/components/ic-navigation-group.js.map +1 -1
  136. package/dist/components/ic-navigation-item.js +1 -1
  137. package/dist/components/ic-navigation-item.js.map +1 -1
  138. package/dist/components/ic-navigation-menu2.js +0 -6
  139. package/dist/components/ic-navigation-menu2.js.map +1 -1
  140. package/dist/components/ic-page-header.js +9 -12
  141. package/dist/components/ic-page-header.js.map +1 -1
  142. package/dist/components/ic-pagination.js +14 -2
  143. package/dist/components/ic-pagination.js.map +1 -1
  144. package/dist/components/ic-popover-menu.js +4 -3
  145. package/dist/components/ic-popover-menu.js.map +1 -1
  146. package/dist/components/ic-select.js +1 -2
  147. package/dist/components/ic-select.js.map +1 -1
  148. package/dist/components/ic-side-navigation.js +19 -15
  149. package/dist/components/ic-side-navigation.js.map +1 -1
  150. package/dist/components/ic-step.js +2 -2
  151. package/dist/components/ic-step.js.map +1 -1
  152. package/dist/components/ic-tab-context.js +7 -5
  153. package/dist/components/ic-tab-context.js.map +1 -1
  154. package/dist/components/ic-tab-panel.js +3 -1
  155. package/dist/components/ic-tab-panel.js.map +1 -1
  156. package/dist/components/ic-tab.js +3 -1
  157. package/dist/components/ic-tab.js.map +1 -1
  158. package/dist/components/ic-text-field2.js +5 -13
  159. package/dist/components/ic-text-field2.js.map +1 -1
  160. package/dist/components/ic-typography2.js +99 -4
  161. package/dist/components/ic-typography2.js.map +1 -1
  162. package/dist/core/core.esm.js +1 -1
  163. package/dist/core/core.esm.js.map +1 -1
  164. package/dist/core/{p-0575a77f.entry.js → p-050dbce8.entry.js} +2 -2
  165. package/dist/core/p-06962e10.entry.js +2 -0
  166. package/dist/core/p-06962e10.entry.js.map +1 -0
  167. package/dist/core/{p-0a41c3cb.entry.js → p-0969a95a.entry.js} +2 -2
  168. package/dist/core/{p-56fe91ad.entry.js → p-0a11ec35.entry.js} +2 -2
  169. package/dist/core/p-0a11ec35.entry.js.map +1 -0
  170. package/dist/core/{p-b61e76e2.entry.js → p-0f153569.entry.js} +2 -2
  171. package/dist/core/{p-3fb307e6.entry.js → p-1585e5c1.entry.js} +2 -2
  172. package/dist/core/p-29ea6f88.entry.js +2 -0
  173. package/dist/core/p-29ea6f88.entry.js.map +1 -0
  174. package/dist/core/p-2e63f202.entry.js +2 -0
  175. package/dist/core/p-2e63f202.entry.js.map +1 -0
  176. package/dist/core/p-2e6ea6d3.entry.js +2 -0
  177. package/dist/core/p-2e6ea6d3.entry.js.map +1 -0
  178. package/dist/core/{p-e0f24ccd.entry.js → p-2fb97a1b.entry.js} +2 -2
  179. package/dist/core/p-2fb97a1b.entry.js.map +1 -0
  180. package/dist/core/{p-100dbcec.entry.js → p-31b4b684.entry.js} +2 -2
  181. package/dist/core/{p-e839e5dc.entry.js → p-32cc8827.entry.js} +2 -2
  182. package/dist/core/{p-3845b769.entry.js → p-3498db0b.entry.js} +2 -2
  183. package/dist/core/p-3498db0b.entry.js.map +1 -0
  184. package/dist/core/{p-d5d9923a.entry.js → p-36e0671f.entry.js} +2 -2
  185. package/dist/core/p-443052a7.entry.js +2 -0
  186. package/dist/core/p-443052a7.entry.js.map +1 -0
  187. package/dist/core/{p-6a77992e.entry.js → p-46371c05.entry.js} +2 -2
  188. package/dist/core/p-471820e6.js +2 -0
  189. package/dist/core/p-471820e6.js.map +1 -0
  190. package/dist/core/{p-9413d639.entry.js → p-4dd0eb6a.entry.js} +2 -2
  191. package/dist/core/p-50421f27.entry.js +2 -0
  192. package/dist/core/p-50421f27.entry.js.map +1 -0
  193. package/dist/core/p-559b3d17.entry.js +2 -0
  194. package/dist/core/p-559b3d17.entry.js.map +1 -0
  195. package/dist/core/{p-895bda21.entry.js → p-5a3f3f37.entry.js} +2 -2
  196. package/dist/core/p-5a3f3f37.entry.js.map +1 -0
  197. package/dist/core/{p-dc0b9e80.entry.js → p-5e896163.entry.js} +2 -2
  198. package/dist/core/{p-e41e701a.entry.js → p-68547339.entry.js} +2 -2
  199. package/dist/core/p-6f2be5bd.entry.js +2 -0
  200. package/dist/core/p-6f2be5bd.entry.js.map +1 -0
  201. package/dist/core/{p-1eb0992b.entry.js → p-70124e59.entry.js} +2 -2
  202. package/dist/core/{p-2e949135.entry.js → p-80164baa.entry.js} +2 -2
  203. package/dist/core/p-80164baa.entry.js.map +1 -0
  204. package/dist/core/{p-6b39f8b4.entry.js → p-8edd3a9b.entry.js} +2 -2
  205. package/dist/core/{p-c0813424.entry.js → p-9715ec62.entry.js} +2 -2
  206. package/dist/core/{p-cb437317.entry.js → p-983cb33c.entry.js} +2 -2
  207. package/dist/core/{p-002a63e9.entry.js → p-a18c0672.entry.js} +2 -2
  208. package/dist/core/{p-47b0ed42.entry.js → p-a8dc8196.entry.js} +2 -2
  209. package/dist/core/{p-52fd3533.entry.js → p-a9184841.entry.js} +2 -2
  210. package/dist/core/p-a9184841.entry.js.map +1 -0
  211. package/dist/core/{p-e384aaee.entry.js → p-af815dfb.entry.js} +2 -2
  212. package/dist/core/{p-8780890e.entry.js → p-b69226d2.entry.js} +2 -2
  213. package/dist/core/p-b7cf6411.entry.js +2 -0
  214. package/dist/core/p-b7cf6411.entry.js.map +1 -0
  215. package/dist/core/{p-3a67718c.entry.js → p-bffa2e1a.entry.js} +2 -2
  216. package/dist/core/p-c85476c0.entry.js +2 -0
  217. package/dist/core/p-c85476c0.entry.js.map +1 -0
  218. package/dist/core/{p-a0f4e641.entry.js → p-ca20c9c3.entry.js} +2 -2
  219. package/dist/core/{p-a33a04b2.entry.js → p-cee45622.entry.js} +2 -2
  220. package/dist/core/p-cee45622.entry.js.map +1 -0
  221. package/dist/core/{p-f3e10149.entry.js → p-d2d5132d.entry.js} +2 -2
  222. package/dist/core/{p-f3e10149.entry.js.map → p-d2d5132d.entry.js.map} +1 -1
  223. package/dist/core/{p-546b620e.entry.js → p-df1b0f17.entry.js} +2 -2
  224. package/dist/core/{p-92c4fa7f.entry.js → p-e16e817e.entry.js} +2 -2
  225. package/dist/core/p-e16e817e.entry.js.map +1 -0
  226. package/dist/core/p-e6217f40.entry.js +2 -0
  227. package/dist/core/p-e6217f40.entry.js.map +1 -0
  228. package/dist/core/{p-3dc2ff7b.entry.js → p-faeedfd1.entry.js} +2 -2
  229. package/dist/core/p-faeedfd1.entry.js.map +1 -0
  230. package/dist/core/{p-5d077cf7.entry.js → p-fb5861c6.entry.js} +2 -2
  231. package/dist/core/{p-3e5eb873.entry.js → p-fd18d7a3.entry.js} +2 -2
  232. package/dist/esm/core.js +1 -1
  233. package/dist/esm/{helpers-b2b47a7d.js → helpers-73666f14.js} +19 -25
  234. package/dist/esm/helpers-73666f14.js.map +1 -0
  235. package/dist/esm/ic-alert.entry.js +1 -1
  236. package/dist/esm/ic-back-to-top.entry.js +1 -1
  237. package/dist/esm/ic-breadcrumb-group.entry.js +14 -14
  238. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  239. package/dist/esm/ic-breadcrumb.entry.js +5 -4
  240. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  241. package/dist/esm/ic-button_3.entry.js +3 -6
  242. package/dist/esm/ic-button_3.entry.js.map +1 -1
  243. package/dist/esm/ic-card.entry.js +1 -1
  244. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  245. package/dist/esm/ic-checkbox.entry.js +5 -4
  246. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  247. package/dist/esm/ic-chip.entry.js +1 -1
  248. package/dist/esm/ic-data-row.entry.js +1 -1
  249. package/dist/esm/ic-divider.entry.js +1 -1
  250. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  251. package/dist/esm/ic-footer-link.entry.js +1 -1
  252. package/dist/esm/ic-footer.entry.js +2 -2
  253. package/dist/esm/ic-footer.entry.js.map +1 -1
  254. package/dist/esm/ic-hero.entry.js +1 -1
  255. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  256. package/dist/esm/ic-input-component-container_3.entry.js +5 -2
  257. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  258. package/dist/esm/ic-input-label_2.entry.js +1 -1
  259. package/dist/esm/ic-link.entry.js +1 -1
  260. package/dist/esm/ic-menu-item.entry.js +3 -2
  261. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  262. package/dist/esm/ic-navigation-button.entry.js +1 -1
  263. package/dist/esm/ic-navigation-group.entry.js +7 -4
  264. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  265. package/dist/esm/ic-navigation-item.entry.js +2 -2
  266. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  267. package/dist/esm/ic-navigation-menu.entry.js +1 -7
  268. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  269. package/dist/esm/ic-page-header.entry.js +10 -13
  270. package/dist/esm/ic-page-header.entry.js.map +1 -1
  271. package/dist/esm/ic-pagination.entry.js +12 -1
  272. package/dist/esm/ic-pagination.entry.js.map +1 -1
  273. package/dist/esm/ic-popover-menu.entry.js +5 -4
  274. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  275. package/dist/esm/ic-radio-group.entry.js +1 -1
  276. package/dist/esm/ic-radio-option.entry.js +1 -1
  277. package/dist/esm/ic-search-bar.entry.js +1 -1
  278. package/dist/esm/ic-select.entry.js +2 -3
  279. package/dist/esm/ic-select.entry.js.map +1 -1
  280. package/dist/esm/ic-side-navigation.entry.js +20 -16
  281. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  282. package/dist/esm/ic-status-tag.entry.js +1 -1
  283. package/dist/esm/ic-step.entry.js +2 -2
  284. package/dist/esm/ic-step.entry.js.map +1 -1
  285. package/dist/esm/ic-stepper.entry.js +1 -1
  286. package/dist/esm/ic-switch.entry.js +1 -1
  287. package/dist/esm/ic-tab-context.entry.js +7 -5
  288. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  289. package/dist/esm/ic-tab-group.entry.js +1 -1
  290. package/dist/esm/ic-tab-panel.entry.js +3 -1
  291. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  292. package/dist/esm/ic-tab.entry.js +3 -1
  293. package/dist/esm/ic-tab.entry.js.map +1 -1
  294. package/dist/esm/ic-text-field.entry.js +6 -14
  295. package/dist/esm/ic-text-field.entry.js.map +1 -1
  296. package/dist/esm/ic-theme.entry.js +1 -1
  297. package/dist/esm/ic-toast.entry.js +1 -1
  298. package/dist/esm/ic-top-navigation.entry.js +1 -1
  299. package/dist/esm/ic-typography.entry.js +95 -3
  300. package/dist/esm/ic-typography.entry.js.map +1 -1
  301. package/dist/esm/loader.js +1 -1
  302. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +3 -0
  303. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +1 -0
  304. package/dist/types/components/ic-menu/ic-menu.d.ts +1 -0
  305. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +1 -0
  306. package/dist/types/components/ic-pagination/ic-pagination.d.ts +7 -0
  307. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +1 -0
  308. package/dist/types/components/ic-select/ic-select.d.ts +11 -11
  309. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +1 -0
  310. package/dist/types/components/ic-typography/ic-typography.d.ts +27 -0
  311. package/dist/types/components.d.ts +35 -15
  312. package/hydrate/index.js +221 -122
  313. package/package.json +3 -3
  314. package/dist/cjs/helpers-2021e212.js.map +0 -1
  315. package/dist/core/p-14835d6f.entry.js +0 -2
  316. package/dist/core/p-14835d6f.entry.js.map +0 -1
  317. package/dist/core/p-276f7ecb.entry.js +0 -2
  318. package/dist/core/p-276f7ecb.entry.js.map +0 -1
  319. package/dist/core/p-2e949135.entry.js.map +0 -1
  320. package/dist/core/p-3845b769.entry.js.map +0 -1
  321. package/dist/core/p-3c23f963.entry.js +0 -2
  322. package/dist/core/p-3c23f963.entry.js.map +0 -1
  323. package/dist/core/p-3dc2ff7b.entry.js.map +0 -1
  324. package/dist/core/p-3dea2867.js +0 -2
  325. package/dist/core/p-3dea2867.js.map +0 -1
  326. package/dist/core/p-4595f48f.entry.js +0 -2
  327. package/dist/core/p-4595f48f.entry.js.map +0 -1
  328. package/dist/core/p-4b87445b.entry.js +0 -2
  329. package/dist/core/p-4b87445b.entry.js.map +0 -1
  330. package/dist/core/p-4c8fcfe6.entry.js +0 -2
  331. package/dist/core/p-4c8fcfe6.entry.js.map +0 -1
  332. package/dist/core/p-52fd3533.entry.js.map +0 -1
  333. package/dist/core/p-56fe91ad.entry.js.map +0 -1
  334. package/dist/core/p-895bda21.entry.js.map +0 -1
  335. package/dist/core/p-92c4fa7f.entry.js.map +0 -1
  336. package/dist/core/p-a33a04b2.entry.js.map +0 -1
  337. package/dist/core/p-a5bee11f.entry.js +0 -2
  338. package/dist/core/p-a5bee11f.entry.js.map +0 -1
  339. package/dist/core/p-a7fdb9a8.entry.js +0 -2
  340. package/dist/core/p-a7fdb9a8.entry.js.map +0 -1
  341. package/dist/core/p-de891d3d.entry.js +0 -2
  342. package/dist/core/p-de891d3d.entry.js.map +0 -1
  343. package/dist/core/p-e0f24ccd.entry.js.map +0 -1
  344. package/dist/core/p-ea526b54.entry.js +0 -2
  345. package/dist/core/p-ea526b54.entry.js.map +0 -1
  346. package/dist/core/p-ec8b228c.entry.js +0 -2
  347. package/dist/core/p-ec8b228c.entry.js.map +0 -1
  348. package/dist/esm/helpers-b2b47a7d.js.map +0 -1
  349. /package/dist/core/{p-0575a77f.entry.js.map → p-050dbce8.entry.js.map} +0 -0
  350. /package/dist/core/{p-0a41c3cb.entry.js.map → p-0969a95a.entry.js.map} +0 -0
  351. /package/dist/core/{p-b61e76e2.entry.js.map → p-0f153569.entry.js.map} +0 -0
  352. /package/dist/core/{p-3fb307e6.entry.js.map → p-1585e5c1.entry.js.map} +0 -0
  353. /package/dist/core/{p-100dbcec.entry.js.map → p-31b4b684.entry.js.map} +0 -0
  354. /package/dist/core/{p-e839e5dc.entry.js.map → p-32cc8827.entry.js.map} +0 -0
  355. /package/dist/core/{p-d5d9923a.entry.js.map → p-36e0671f.entry.js.map} +0 -0
  356. /package/dist/core/{p-6a77992e.entry.js.map → p-46371c05.entry.js.map} +0 -0
  357. /package/dist/core/{p-9413d639.entry.js.map → p-4dd0eb6a.entry.js.map} +0 -0
  358. /package/dist/core/{p-dc0b9e80.entry.js.map → p-5e896163.entry.js.map} +0 -0
  359. /package/dist/core/{p-e41e701a.entry.js.map → p-68547339.entry.js.map} +0 -0
  360. /package/dist/core/{p-1eb0992b.entry.js.map → p-70124e59.entry.js.map} +0 -0
  361. /package/dist/core/{p-6b39f8b4.entry.js.map → p-8edd3a9b.entry.js.map} +0 -0
  362. /package/dist/core/{p-c0813424.entry.js.map → p-9715ec62.entry.js.map} +0 -0
  363. /package/dist/core/{p-cb437317.entry.js.map → p-983cb33c.entry.js.map} +0 -0
  364. /package/dist/core/{p-002a63e9.entry.js.map → p-a18c0672.entry.js.map} +0 -0
  365. /package/dist/core/{p-47b0ed42.entry.js.map → p-a8dc8196.entry.js.map} +0 -0
  366. /package/dist/core/{p-e384aaee.entry.js.map → p-af815dfb.entry.js.map} +0 -0
  367. /package/dist/core/{p-8780890e.entry.js.map → p-b69226d2.entry.js.map} +0 -0
  368. /package/dist/core/{p-3a67718c.entry.js.map → p-bffa2e1a.entry.js.map} +0 -0
  369. /package/dist/core/{p-a0f4e641.entry.js.map → p-ca20c9c3.entry.js.map} +0 -0
  370. /package/dist/core/{p-546b620e.entry.js.map → p-df1b0f17.entry.js.map} +0 -0
  371. /package/dist/core/{p-5d077cf7.entry.js.map → p-fb5861c6.entry.js.map} +0 -0
  372. /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-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
@@ -1 +0,0 @@
1
- {"version":3,"sources":["src/components/ic-popover-menu/ic-popover-menu.css?tag=ic-popover-menu&encapsulation=shadow","src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":["icPopoverMenuCss","PopoverMenu","this","setButtonFocus","_a","popoverMenuEls","currentFocus","focus","findAnchorEl","anchor","anchorElement","undefined","submenuId","console","error","document","querySelector","indexOf","isNotPopoverMenuEl","ev","target","id","tagName","closeMenu","open","anchorEl","getNextItemToSelect","currentItem","movingDown","numButtons","length","nextItem","addMenuItems","elements","i","el","push","groupSlotWrapper","shadowRoot","menuGroupElements","getSlotElements","getMenuAriaLabel","ariaLabel","host","getAttribute","submenuLevel","parentLabel","handleBackButtonClick","parentPopover","openFromChild","[object Object]","detail","hasSubMenu","label","childEl","submenuTriggerFor","openFromParent","some","menuItem","unshift","backButton","setTimeout","preventDefault","openingFromChild","openingFromParent","key","blur","createPopper","placement","modifiers","name","options","offset","slotWrapper","popoverMenuElements","h","Host","class","menu","tabindex","opening-from-parent","opening-from-child","ref","onClick","slot","viewBox","fill","xmlns","d","variant","aria-label","role","aria-owns","aria-controls"],"mappings":"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","sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n* @prop --ic-z-index-popover: z-index of popover menu. \n* @prop --max-height: Maximum height of the popover menu.\n* @prop --popover-width: Default width of the popover menu.\n*/\n\n@media (prefers-reduced-motion: no-preference) {\n :host .opening-from-parent {\n animation: slide-in var(--ic-transition-duration-slow) ease-in-out;\n }\n\n :host .opening-from-child {\n animation: slide-out var(--ic-transition-duration-slow) ease-in-out;\n }\n}\n\n:host {\n border-radius: var(--ic-border-radius);\n color: var(--ic-color-primary-text);\n background-color: var(--ic-architectural-white);\n position: relative;\n z-index: var(--ic-z-index-popover);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n display: none;\n}\n\n.menu {\n border: 0.063rem solid var(--ic-architectural-400);\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n visibility: hidden;\n height: 0;\n}\n\n.button {\n text-decoration: none;\n list-style-type: none;\n}\n\n:host(:focus-within) {\n box-shadow: var(--ic-border-focus);\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.open) {\n display: block;\n min-width: calc(20rem - var(--ic-space-xl));\n width: var(--popover-width, 20rem);\n max-width: calc(100vw - var(--ic-space-xl));\n}\n\n:host(.open) .menu {\n visibility: visible;\n height: fit-content;\n max-height: var(--max-height, fit-content);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.parent-label {\n color: var(--ic-color-tertiary-text);\n margin: var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n@keyframes slide-in {\n from {\n opacity: 0;\n transform: translateX(10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n\n@keyframes slide-out {\n from {\n opacity: 0;\n transform: translateX(-10rem);\n }\n\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n} from \"@stencil/core\";\nimport { getSlotElements } from \"../../utils/helpers\";\nimport { createPopper } from \"@popperjs/core\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n @Element() host: HTMLIcPopoverMenuElement;\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor: string;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel: number = 1;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n @State() openingFromChild: boolean = false;\n\n @State() openingFromParent: boolean = false;\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent): void {\n if (!ev.detail.hasSubMenu && ev.detail.label !== \"Back\") {\n this.closeMenu();\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.host;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.host.getAttribute(\"aria-label\");\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = this.submenuId !== undefined ? 1 : 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n }\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private anchorEl: HTMLElement;\n private currentFocus: number;\n private backButton: HTMLIcMenuItemElement;\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string): HTMLElement => {\n let anchorElement: HTMLElement = null;\n if (anchor === null || anchor === undefined) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n ev.preventDefault();\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const target = ev.target as HTMLElement;\n return (\n target.id !== this.anchor &&\n target.tagName !== \"IC-MENU-ITEM\" &&\n target.tagName !== \"IC-MENU-GROUP\" &&\n target.tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n private closeMenu = () => {\n this.open = false;\n this.anchorEl?.focus();\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, true);\n this.setButtonFocus();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, false);\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n if (this.open) {\n this.closeMenu();\n this.host.blur();\n }\n break;\n }\n }\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot.querySelector(\"ul\");\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n\n this.addMenuItems(menuGroupElements);\n }\n }\n };\n\n private getMenuAriaLabel = (): string => {\n const ariaLabel = this.host.getAttribute(\"aria-label\");\n\n if (this.submenuId !== undefined) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover.openFromChild();\n this.open = false;\n };\n\n componentDidRender(): void {\n if (this.open) {\n createPopper(this.anchorEl, this.host, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n ],\n });\n }\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.host.shadowRoot.querySelector(\"ul.button\");\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n\n if (\n this.submenuId === undefined &&\n this.host.getAttribute(\"aria-label\") === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n }\n\n render() {\n return (\n <Host class={{ open: this.open }}>\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n tabindex={open ? \"0\" : \"-1\"}\n >\n <div\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {this.submenuId !== undefined && (\n <div>\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </div>\n )}\n <ul\n class=\"button\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n aria-owns={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n aria-controls={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n >\n <slot></slot>\n </ul>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"file":"helpers-b2b47a7d.js","mappings":"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","names":[],"sources":["./src/utils/constants.ts","./src/utils/helpers.ts"],"sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\n\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\n\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\n\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\n\nexport interface IcColorExceptions {\n [details: string]: string[];\n}\n\nexport const IC_BLOCK_COLOR_EXCEPTIONS: IcColorExceptions = {\n \"ic-alert\": [\"ic-link\"],\n};\n\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n","import { EventEmitter } from \"@stencil/core\";\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n} from \"./types\";\n\nimport {\n IcMenuOption,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../utils/types\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: unknown } => {\n const attributeObject: { [key: string]: unknown } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = element.getAttribute(attr);\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined) {\n if (always || hasShadowDom(container)) {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(\"ic-input\");\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n input.value = value || \"\";\n }\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean => {\n return !!el.shadowRoot && !!el.attachShadow;\n};\n\nexport const getInputHelperTextID = (id: string): string => {\n return id + \"-helper-text\";\n};\n\nexport const getInputValidationTextID = (id: string): string => {\n return id + \"-validation-text\";\n};\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string => {\n return `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n};\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (\n el: Element,\n themeFromEvent: IcThemeForeground = null\n): IcThemeForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n } else if (\n themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return themeFromEvent;\n } else if (\n blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)\n ) {\n return IcThemeForegroundEnum.Dark;\n }\n\n return IcThemeForegroundEnum.Light;\n }\n\n return IcThemeForegroundEnum.Default;\n};\n\nexport const isMobileOrTablet = (): boolean => {\n let isMobileOrTablet = false;\n if (\"maxTouchPoints\" in navigator) {\n isMobileOrTablet = navigator.maxTouchPoints > 0;\n }\n return isMobileOrTablet;\n};\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean => {\n if (!value) {\n return true;\n }\n\n return value.trim().length === 0;\n};\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[]\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n return ungroupedOptions.find((option) => option.value === value)?.label;\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions\n): IcMenuOption[] => {\n let rawFilteredOptions;\n\n if (position === \"anywhere\") {\n rawFilteredOptions = options.filter((option) => {\n if (includeDescriptions) {\n return (\n option.label.toLowerCase().includes(searchString.toLowerCase()) ||\n option.description?.toLowerCase().includes(searchString.toLowerCase())\n );\n } else {\n return option.label.toLowerCase().includes(searchString.toLowerCase());\n }\n });\n } else {\n rawFilteredOptions = options.filter((option) => {\n if (includeDescriptions) {\n return (\n option.label.toLowerCase().startsWith(searchString.toLowerCase()) ||\n option.description\n ?.toLowerCase()\n .startsWith(searchString.toLowerCase())\n );\n } else {\n return option.label\n .toLowerCase()\n .startsWith(searchString.toLowerCase());\n }\n });\n }\n\n return rawFilteredOptions;\n};\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string => {\n return getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n};\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n const themeColorBrightness =\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000;\n return themeColorBrightness;\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = (): IcThemeForeground => {\n return getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n};\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (slot: Element) => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = (\n el: HTMLElement\n): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => {\n return status !== \"\" && !disabled;\n};\n\nexport const isSlotUsed = (element: HTMLElement, slotName: string): boolean => {\n return Array.from(element.children).some(\n (child) => child.getAttribute(\"slot\") === slotName\n );\n};\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n }\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords: string[] = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nconst hex2dec = function (v: string) {\n return parseInt(v, 16);\n};\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n } else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA: IcColorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n } else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n\n return colorRGBA;\n};\n\nexport const elementOverflowsX = (element: HTMLElement): boolean => {\n return element.scrollWidth > element.clientWidth;\n};\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child: HTMLElement): string =>\n child.parentElement.tagName;\n\nexport const getParentElement = (child: HTMLElement): HTMLElement =>\n child.parentElement;\n\nexport const hasClassificationBanner = (): boolean => {\n if (document.querySelector(\"ic-classification-banner:not([inline='true'])\")) {\n return true;\n } else {\n return false;\n }\n};\n\nexport const getForm = (el: HTMLElement): HTMLFormElement | null => {\n return el.closest(\"FORM\");\n};\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const pxToRem = (px: string, base = 16) => {\n const tempPx = parseInt(px);\n return `${(1 / base) * tempPx}rem`;\n};\n"],"version":3}