@ukic/web-components 3.0.0-alpha.12 → 3.0.0-alpha.14

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 (983) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  3. package/dist/cjs/core.cjs.js +13 -11
  4. package/dist/cjs/core.cjs.js.map +1 -1
  5. package/dist/cjs/{helpers-eca4c27e.js → helpers-08a9ec1c.js} +31 -26
  6. package/dist/cjs/helpers-08a9ec1c.js.map +1 -0
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -14
  8. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-accordion.cjs.entry.js +65 -42
  10. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-alert.cjs.entry.js +37 -16
  12. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-back-to-top.cjs.entry.js +27 -15
  14. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-badge.cjs.entry.js +41 -22
  16. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +31 -16
  18. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-breadcrumb.cjs.entry.js +35 -21
  20. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-button_3.cjs.entry.js +304 -144
  22. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-card-vertical.cjs.entry.js +53 -32
  24. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-checkbox-group.cjs.entry.js +32 -9
  26. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-checkbox.cjs.entry.js +48 -29
  28. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-chip.cjs.entry.js +44 -23
  30. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-classification-banner.cjs.entry.js +20 -4
  32. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-data-list.cjs.entry.js +11 -5
  34. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-data-row.cjs.entry.js +28 -18
  36. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  37. package/dist/cjs/ic-dialog.cjs.entry.js +141 -98
  38. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-divider.cjs.entry.js +35 -15
  40. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-empty-state.cjs.entry.js +15 -9
  42. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-footer-link-group.cjs.entry.js +8 -8
  44. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer-link.cjs.entry.js +9 -10
  46. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-footer.cjs.entry.js +32 -19
  48. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-hero.cjs.entry.js +29 -17
  50. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +32 -20
  52. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +126 -68
  54. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-input-label_2.cjs.entry.js +45 -17
  56. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-link.cjs.entry.js +28 -21
  58. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-menu-group.cjs.entry.js +5 -5
  60. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-menu-item.cjs.entry.js +21 -19
  62. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-navigation-button.cjs.entry.js +25 -19
  64. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-navigation-group.cjs.entry.js +48 -27
  66. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-navigation-item.cjs.entry.js +69 -48
  68. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-navigation-menu.cjs.entry.js +54 -32
  70. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-page-header.cjs.entry.js +45 -25
  72. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination-item.cjs.entry.js +27 -14
  74. package/dist/cjs/ic-pagination-item.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-pagination.cjs.entry.js +60 -27
  76. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-popover-menu.cjs.entry.js +58 -42
  78. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-radio-group.cjs.entry.js +53 -28
  80. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-radio-option.cjs.entry.js +35 -23
  82. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-search-bar.cjs.entry.js +153 -63
  84. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-section-container.cjs.entry.js +12 -5
  86. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-select.cjs.entry.js +234 -137
  88. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-side-navigation.cjs.entry.js +107 -71
  90. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-skeleton.cjs.entry.js +11 -4
  92. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-skip-link.cjs.entry.js +55 -0
  94. package/dist/cjs/ic-skip-link.cjs.entry.js.map +1 -0
  95. package/dist/cjs/ic-status-tag.cjs.entry.js +26 -7
  96. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-step.cjs.entry.js +35 -33
  98. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  99. package/dist/cjs/ic-stepper.cjs.entry.js +50 -35
  100. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  101. package/dist/cjs/ic-switch.cjs.entry.js +50 -22
  102. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  103. package/dist/cjs/ic-tab-context.cjs.entry.js +44 -24
  104. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-tab-group.cjs.entry.js +14 -9
  106. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-tab-panel.cjs.entry.js +12 -7
  108. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-tab.cjs.entry.js +21 -15
  110. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-text-field.cjs.entry.js +175 -69
  112. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-theme.cjs.entry.js +13 -7
  114. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  115. package/dist/cjs/ic-toast-region.cjs.entry.js +2 -3
  116. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  117. package/dist/cjs/ic-toast.cjs.entry.js +29 -21
  118. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  119. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +61 -29
  120. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  121. package/dist/cjs/ic-toggle-button.cjs.entry.js +81 -48
  122. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  123. package/dist/cjs/ic-top-navigation.cjs.entry.js +60 -31
  124. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  125. package/dist/cjs/ic-typography.cjs.entry.js +53 -27
  126. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  127. package/dist/cjs/index-d337cd8a.js +2611 -0
  128. package/dist/cjs/index-d337cd8a.js.map +1 -0
  129. package/dist/cjs/loader.cjs.js +5 -3
  130. package/dist/cjs/loader.cjs.js.map +1 -1
  131. package/dist/collection/collection-manifest.json +5 -4
  132. package/dist/collection/components/ic-accordion/ic-accordion.js +80 -46
  133. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  134. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +49 -21
  135. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  136. package/dist/collection/components/ic-alert/ic-alert.js +58 -22
  137. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  138. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +35 -16
  139. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  140. package/dist/collection/components/ic-badge/ic-badge.js +69 -32
  141. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  142. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +49 -24
  143. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  144. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +41 -19
  145. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  146. package/dist/collection/components/ic-button/ic-button.css +6 -8
  147. package/dist/collection/components/ic-button/ic-button.js +269 -98
  148. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  149. package/dist/collection/components/ic-button/ic-button.stories.js +179 -0
  150. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +88 -42
  151. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
  152. package/dist/collection/components/ic-checkbox/ic-checkbox.js +91 -45
  153. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  154. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +62 -20
  155. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  156. package/dist/collection/components/ic-chip/ic-chip.js +67 -30
  157. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  158. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +32 -7
  159. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js.map +1 -1
  160. package/dist/collection/components/ic-data-list/ic-data-list.js +18 -7
  161. package/dist/collection/components/ic-data-list/ic-data-list.js.map +1 -1
  162. package/dist/collection/components/ic-data-row/ic-data-row.js +38 -21
  163. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  164. package/dist/collection/components/ic-dialog/ic-dialog.js +176 -110
  165. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  166. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +100 -49
  167. package/dist/collection/components/ic-divider/ic-divider.js +55 -22
  168. package/dist/collection/components/ic-divider/ic-divider.js.map +1 -1
  169. package/dist/collection/components/ic-divider/ic-divider.stories.js +2 -2
  170. package/dist/collection/components/ic-empty-state/ic-empty-state.js +32 -13
  171. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -1
  172. package/dist/collection/components/ic-footer/ic-footer.js +49 -25
  173. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  174. package/dist/collection/components/ic-footer-link/ic-footer-link.js +24 -15
  175. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  176. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +6 -5
  177. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  178. package/dist/collection/components/ic-hero/ic-hero.css +1 -1
  179. package/dist/collection/components/ic-hero/ic-hero.js +54 -25
  180. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  181. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +40 -21
  182. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  183. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
  184. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +55 -20
  185. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  186. package/dist/collection/components/ic-input-container/ic-input-container.js +16 -6
  187. package/dist/collection/components/ic-input-container/ic-input-container.js.map +1 -1
  188. package/dist/collection/components/ic-input-label/ic-input-label.js +48 -11
  189. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  190. package/dist/collection/components/ic-input-validation/ic-input-validation.js +31 -14
  191. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  192. package/dist/collection/components/ic-link/ic-link.js +49 -28
  193. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  194. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +124 -66
  195. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  196. package/dist/collection/components/ic-menu/ic-menu.js +136 -74
  197. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  198. package/dist/collection/components/ic-menu/ic-menu.types.js.map +1 -1
  199. package/dist/collection/components/ic-menu-group/ic-menu-group.js +4 -5
  200. package/dist/collection/components/ic-menu-group/ic-menu-group.js.map +1 -1
  201. package/dist/collection/components/ic-menu-item/ic-menu-item.css +1 -0
  202. package/dist/collection/components/ic-menu-item/ic-menu-item.js +53 -28
  203. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  204. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +44 -23
  205. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  206. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +109 -28
  207. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  208. package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js +2 -0
  209. package/dist/collection/components/ic-navigation-group/ic-navigation-group.types.js.map +1 -0
  210. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +107 -63
  211. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  212. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +61 -34
  213. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  214. package/dist/collection/components/ic-page-header/ic-page-header.js +68 -31
  215. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  216. package/dist/collection/components/ic-pagination/ic-pagination.js +100 -44
  217. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  218. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +48 -22
  219. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js.map +1 -1
  220. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +81 -52
  221. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  222. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +70 -1
  223. package/dist/collection/components/ic-radio-group/ic-radio-group.js +87 -41
  224. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  225. package/dist/collection/components/ic-radio-option/ic-radio-option.js +64 -33
  226. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  227. package/dist/collection/components/ic-search-bar/ic-search-bar.js +252 -101
  228. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  229. package/dist/collection/components/ic-search-bar/ic-search-bar.types.js.map +1 -1
  230. package/dist/collection/components/ic-section-container/ic-section-container.js +15 -5
  231. package/dist/collection/components/ic-section-container/ic-section-container.js.map +1 -1
  232. package/dist/collection/components/ic-select/ic-select.css +1 -0
  233. package/dist/collection/components/ic-select/ic-select.js +333 -177
  234. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  235. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +1 -2
  236. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +146 -89
  237. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  238. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +12 -0
  239. package/dist/collection/components/ic-skeleton/ic-skeleton.js +14 -4
  240. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  241. package/dist/collection/components/ic-skip-link/ic-skip-link.css +46 -0
  242. package/dist/collection/components/ic-skip-link/ic-skip-link.js +203 -0
  243. package/dist/collection/components/ic-skip-link/ic-skip-link.js.map +1 -0
  244. package/dist/collection/components/ic-skip-link/ic-skip-link.stories.js +504 -0
  245. package/dist/collection/components/ic-status-tag/ic-status-tag.css +1 -1
  246. package/dist/collection/components/ic-status-tag/ic-status-tag.js +41 -9
  247. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  248. package/dist/collection/components/ic-step/ic-step.css +2 -2
  249. package/dist/collection/components/ic-step/ic-step.js +67 -40
  250. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  251. package/dist/collection/components/ic-stepper/ic-stepper.js +61 -37
  252. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  253. package/dist/collection/components/ic-stepper/ic-stepper.stories.js +5 -1
  254. package/dist/collection/components/ic-switch/ic-switch.js +72 -27
  255. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  256. package/dist/collection/components/ic-tab/ic-tab.js +40 -21
  257. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  258. package/dist/collection/components/ic-tab-context/ic-tab-context.js +59 -29
  259. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  260. package/dist/collection/components/ic-tab-group/ic-tab-group.js +21 -9
  261. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  262. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +26 -10
  263. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  264. package/dist/collection/components/ic-text-field/ic-text-field.js +321 -140
  265. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  266. package/dist/collection/components/ic-theme/ic-theme.js +19 -9
  267. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  268. package/dist/collection/components/ic-toast/ic-toast.js +49 -28
  269. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  270. package/dist/collection/components/ic-toast-region/ic-toast-region.js +6 -5
  271. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  272. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +116 -60
  273. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  274. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +90 -35
  275. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  276. package/dist/collection/components/ic-tooltip/ic-tooltip.js +65 -33
  277. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  278. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +91 -45
  279. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  280. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +8 -19
  281. package/dist/collection/components/ic-typography/ic-typography.js +73 -32
  282. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  283. package/dist/collection/utils/helpers.js +29 -24
  284. package/dist/collection/utils/helpers.js.map +1 -1
  285. package/dist/collection/utils/testa11y.helpers.js +2 -1
  286. package/dist/collection/utils/testa11y.helpers.js.map +1 -1
  287. package/dist/collection/utils/types.js.map +1 -1
  288. package/dist/components/helpers.js +30 -25
  289. package/dist/components/helpers.js.map +1 -1
  290. package/dist/components/ic-accordion-group.js +29 -12
  291. package/dist/components/ic-accordion-group.js.map +1 -1
  292. package/dist/components/ic-accordion.js +63 -40
  293. package/dist/components/ic-accordion.js.map +1 -1
  294. package/dist/components/ic-alert.js +35 -14
  295. package/dist/components/ic-alert.js.map +1 -1
  296. package/dist/components/ic-back-to-top.js +25 -13
  297. package/dist/components/ic-back-to-top.js.map +1 -1
  298. package/dist/components/ic-badge.js +39 -20
  299. package/dist/components/ic-badge.js.map +1 -1
  300. package/dist/components/ic-breadcrumb-group.js +29 -14
  301. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  302. package/dist/components/ic-breadcrumb2.js +33 -19
  303. package/dist/components/ic-breadcrumb2.js.map +1 -1
  304. package/dist/components/ic-button2.js +171 -63
  305. package/dist/components/ic-button2.js.map +1 -1
  306. package/dist/components/ic-card-vertical.js +51 -30
  307. package/dist/components/ic-card-vertical.js.map +1 -1
  308. package/dist/components/ic-checkbox-group.js +30 -7
  309. package/dist/components/ic-checkbox-group.js.map +1 -1
  310. package/dist/components/ic-checkbox.js +46 -27
  311. package/dist/components/ic-checkbox.js.map +1 -1
  312. package/dist/components/ic-chip.js +42 -21
  313. package/dist/components/ic-chip.js.map +1 -1
  314. package/dist/components/ic-classification-banner.js +19 -3
  315. package/dist/components/ic-classification-banner.js.map +1 -1
  316. package/dist/components/ic-data-list.js +10 -4
  317. package/dist/components/ic-data-list.js.map +1 -1
  318. package/dist/components/ic-data-row.js +27 -17
  319. package/dist/components/ic-data-row.js.map +1 -1
  320. package/dist/components/ic-dialog.js +139 -96
  321. package/dist/components/ic-dialog.js.map +1 -1
  322. package/dist/components/ic-divider2.js +33 -13
  323. package/dist/components/ic-divider2.js.map +1 -1
  324. package/dist/components/ic-empty-state.js +13 -7
  325. package/dist/components/ic-empty-state.js.map +1 -1
  326. package/dist/components/ic-footer-link-group.js +6 -6
  327. package/dist/components/ic-footer-link-group.js.map +1 -1
  328. package/dist/components/ic-footer-link.js +7 -8
  329. package/dist/components/ic-footer-link.js.map +1 -1
  330. package/dist/components/ic-footer.js +31 -18
  331. package/dist/components/ic-footer.js.map +1 -1
  332. package/dist/components/ic-hero.js +27 -15
  333. package/dist/components/ic-hero.js.map +1 -1
  334. package/dist/components/ic-horizontal-scroll2.js +30 -18
  335. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  336. package/dist/components/ic-input-component-container2.js +31 -9
  337. package/dist/components/ic-input-component-container2.js.map +1 -1
  338. package/dist/components/ic-input-container2.js +12 -5
  339. package/dist/components/ic-input-container2.js.map +1 -1
  340. package/dist/components/ic-input-label2.js +28 -8
  341. package/dist/components/ic-input-label2.js.map +1 -1
  342. package/dist/components/ic-input-validation2.js +15 -7
  343. package/dist/components/ic-input-validation2.js.map +1 -1
  344. package/dist/components/ic-link2.js +26 -19
  345. package/dist/components/ic-link2.js.map +1 -1
  346. package/dist/components/ic-loading-indicator2.js +89 -54
  347. package/dist/components/ic-loading-indicator2.js.map +1 -1
  348. package/dist/components/ic-menu-group.js +3 -3
  349. package/dist/components/ic-menu-group.js.map +1 -1
  350. package/dist/components/ic-menu-item2.js +19 -17
  351. package/dist/components/ic-menu-item2.js.map +1 -1
  352. package/dist/components/ic-menu2.js +81 -52
  353. package/dist/components/ic-menu2.js.map +1 -1
  354. package/dist/components/ic-navigation-button.js +23 -17
  355. package/dist/components/ic-navigation-button.js.map +1 -1
  356. package/dist/components/ic-navigation-group.js +48 -27
  357. package/dist/components/ic-navigation-group.js.map +1 -1
  358. package/dist/components/ic-navigation-item.js +68 -47
  359. package/dist/components/ic-navigation-item.js.map +1 -1
  360. package/dist/components/ic-navigation-menu2.js +53 -31
  361. package/dist/components/ic-navigation-menu2.js.map +1 -1
  362. package/dist/components/ic-page-header.js +44 -24
  363. package/dist/components/ic-page-header.js.map +1 -1
  364. package/dist/components/ic-pagination-item2.js +25 -12
  365. package/dist/components/ic-pagination-item2.js.map +1 -1
  366. package/dist/components/ic-pagination.js +58 -25
  367. package/dist/components/ic-pagination.js.map +1 -1
  368. package/dist/components/ic-popover-menu.js +56 -40
  369. package/dist/components/ic-popover-menu.js.map +1 -1
  370. package/dist/components/ic-radio-group.js +51 -26
  371. package/dist/components/ic-radio-group.js.map +1 -1
  372. package/dist/components/ic-radio-option.js +33 -21
  373. package/dist/components/ic-radio-option.js.map +1 -1
  374. package/dist/components/ic-search-bar.js +151 -61
  375. package/dist/components/ic-search-bar.js.map +1 -1
  376. package/dist/components/ic-section-container2.js +11 -4
  377. package/dist/components/ic-section-container2.js.map +1 -1
  378. package/dist/components/ic-select.js +232 -135
  379. package/dist/components/ic-select.js.map +1 -1
  380. package/dist/components/ic-side-navigation.js +106 -70
  381. package/dist/components/ic-side-navigation.js.map +1 -1
  382. package/dist/components/ic-skeleton.js +10 -3
  383. package/dist/components/ic-skeleton.js.map +1 -1
  384. package/dist/components/ic-skip-link.d.ts +11 -0
  385. package/dist/components/ic-skip-link.js +83 -0
  386. package/dist/components/ic-skip-link.js.map +1 -0
  387. package/dist/components/ic-status-tag.js +24 -5
  388. package/dist/components/ic-status-tag.js.map +1 -1
  389. package/dist/components/ic-step.js +33 -31
  390. package/dist/components/ic-step.js.map +1 -1
  391. package/dist/components/ic-stepper.js +48 -33
  392. package/dist/components/ic-stepper.js.map +1 -1
  393. package/dist/components/ic-switch.js +48 -20
  394. package/dist/components/ic-switch.js.map +1 -1
  395. package/dist/components/ic-tab-context.js +43 -23
  396. package/dist/components/ic-tab-context.js.map +1 -1
  397. package/dist/components/ic-tab-group.js +12 -7
  398. package/dist/components/ic-tab-group.js.map +1 -1
  399. package/dist/components/ic-tab-panel.js +11 -6
  400. package/dist/components/ic-tab-panel.js.map +1 -1
  401. package/dist/components/ic-tab.js +19 -13
  402. package/dist/components/ic-tab.js.map +1 -1
  403. package/dist/components/ic-text-field.js +173 -67
  404. package/dist/components/ic-text-field.js.map +1 -1
  405. package/dist/components/ic-theme.js +11 -5
  406. package/dist/components/ic-theme.js.map +1 -1
  407. package/dist/components/ic-toast-region.js +1 -2
  408. package/dist/components/ic-toast-region.js.map +1 -1
  409. package/dist/components/ic-toast.js +28 -20
  410. package/dist/components/ic-toast.js.map +1 -1
  411. package/dist/components/ic-toggle-button-group.js +59 -27
  412. package/dist/components/ic-toggle-button-group.js.map +1 -1
  413. package/dist/components/ic-toggle-button.js +79 -46
  414. package/dist/components/ic-toggle-button.js.map +1 -1
  415. package/dist/components/ic-tooltip2.js +42 -25
  416. package/dist/components/ic-tooltip2.js.map +1 -1
  417. package/dist/components/ic-top-navigation.js +59 -30
  418. package/dist/components/ic-top-navigation.js.map +1 -1
  419. package/dist/components/ic-typography2.js +51 -25
  420. package/dist/components/ic-typography2.js.map +1 -1
  421. package/dist/core/core.css +66 -49
  422. package/dist/core/core.esm.js +1 -1
  423. package/dist/core/core.esm.js.map +1 -1
  424. package/dist/core/index.esm.js.map +1 -1
  425. package/dist/core/p-08fbea60.entry.js +2 -0
  426. package/dist/core/p-08fbea60.entry.js.map +1 -0
  427. package/dist/core/{p-73a208c7.entry.js → p-0f34465d.entry.js} +2 -2
  428. package/dist/core/p-0f34465d.entry.js.map +1 -0
  429. package/dist/core/p-111b3186.entry.js +2 -0
  430. package/dist/core/p-111b3186.entry.js.map +1 -0
  431. package/dist/core/p-144a31ec.entry.js +2 -0
  432. package/dist/core/p-144a31ec.entry.js.map +1 -0
  433. package/dist/core/{p-ca11666f.entry.js → p-180ea8ac.entry.js} +2 -2
  434. package/dist/core/p-180ea8ac.entry.js.map +1 -0
  435. package/dist/core/{p-39ab6387.entry.js → p-196e3d33.entry.js} +2 -2
  436. package/dist/core/p-196e3d33.entry.js.map +1 -0
  437. package/dist/core/{p-96b4ca6e.entry.js → p-1d6638c8.entry.js} +2 -2
  438. package/dist/core/p-1d6638c8.entry.js.map +1 -0
  439. package/dist/core/p-1d9a929b.entry.js +2 -0
  440. package/dist/core/p-1d9a929b.entry.js.map +1 -0
  441. package/dist/core/p-1dc0c174.entry.js +2 -0
  442. package/dist/core/p-1dc0c174.entry.js.map +1 -0
  443. package/dist/core/{p-27274ca8.entry.js → p-1fccec19.entry.js} +2 -2
  444. package/dist/core/p-1fccec19.entry.js.map +1 -0
  445. package/dist/core/{p-c1db155d.entry.js → p-22d88d2f.entry.js} +2 -2
  446. package/dist/core/p-22d88d2f.entry.js.map +1 -0
  447. package/dist/core/p-269f841d.js +2 -0
  448. package/dist/core/p-269f841d.js.map +1 -0
  449. package/dist/core/{p-094f51b6.entry.js → p-27de359f.entry.js} +2 -2
  450. package/dist/core/p-27de359f.entry.js.map +1 -0
  451. package/dist/core/p-2cb55e86.entry.js +2 -0
  452. package/dist/core/p-2cb55e86.entry.js.map +1 -0
  453. package/dist/core/p-30a262d2.entry.js +2 -0
  454. package/dist/core/p-30a262d2.entry.js.map +1 -0
  455. package/dist/core/p-39bf060d.entry.js +2 -0
  456. package/dist/core/p-39bf060d.entry.js.map +1 -0
  457. package/dist/core/p-3b185c32.js.map +1 -1
  458. package/dist/core/{p-a178d53c.entry.js → p-40bc1f3e.entry.js} +2 -2
  459. package/dist/core/p-40bc1f3e.entry.js.map +1 -0
  460. package/dist/core/p-426ec638.js.map +1 -1
  461. package/dist/core/p-47b46637.entry.js +2 -0
  462. package/dist/core/p-47b46637.entry.js.map +1 -0
  463. package/dist/core/p-4a5ab31e.entry.js +2 -0
  464. package/dist/core/p-4a5ab31e.entry.js.map +1 -0
  465. package/dist/core/p-4e4014cd.entry.js +2 -0
  466. package/dist/core/p-4e4014cd.entry.js.map +1 -0
  467. package/dist/core/{p-25d3c3a6.entry.js → p-55eb89cc.entry.js} +2 -2
  468. package/dist/core/p-55eb89cc.entry.js.map +1 -0
  469. package/dist/core/p-59fc58e1.entry.js +2 -0
  470. package/dist/core/p-59fc58e1.entry.js.map +1 -0
  471. package/dist/core/p-5b7d8ee9.entry.js +2 -0
  472. package/dist/core/p-5b7d8ee9.entry.js.map +1 -0
  473. package/dist/core/{p-b404b307.entry.js → p-5fa5ba50.entry.js} +2 -2
  474. package/dist/core/p-5fa5ba50.entry.js.map +1 -0
  475. package/dist/core/p-625f914e.entry.js +2 -0
  476. package/dist/core/p-625f914e.entry.js.map +1 -0
  477. package/dist/core/p-67d47db4.entry.js +2 -0
  478. package/dist/core/p-67d47db4.entry.js.map +1 -0
  479. package/dist/core/p-68a5aaff.js.map +1 -1
  480. package/dist/core/{p-146b2788.entry.js → p-72140621.entry.js} +2 -2
  481. package/dist/core/p-72140621.entry.js.map +1 -0
  482. package/dist/core/{p-4cfe1dd8.entry.js → p-78c3ca49.entry.js} +2 -2
  483. package/dist/core/p-78c3ca49.entry.js.map +1 -0
  484. package/dist/core/p-78c51cba.entry.js +2 -0
  485. package/dist/core/p-78c51cba.entry.js.map +1 -0
  486. package/dist/core/{p-3d565739.entry.js → p-7ea79205.entry.js} +2 -2
  487. package/dist/core/p-7ea79205.entry.js.map +1 -0
  488. package/dist/core/{p-26bc7c62.entry.js → p-8856dff4.entry.js} +2 -2
  489. package/dist/core/p-8856dff4.entry.js.map +1 -0
  490. package/dist/core/p-8870d5d8.entry.js +2 -0
  491. package/dist/core/p-8870d5d8.entry.js.map +1 -0
  492. package/dist/core/{p-00587c99.entry.js → p-8b928cc9.entry.js} +2 -2
  493. package/dist/core/p-8b928cc9.entry.js.map +1 -0
  494. package/dist/core/p-8d1bee7a.entry.js +2 -0
  495. package/dist/core/p-8d1bee7a.entry.js.map +1 -0
  496. package/dist/core/p-8e4e97b4.js +3 -0
  497. package/dist/core/p-8e4e97b4.js.map +1 -0
  498. package/dist/core/p-8f319e1e.entry.js +2 -0
  499. package/dist/core/p-8f319e1e.entry.js.map +1 -0
  500. package/dist/core/p-90de3f5d.entry.js +2 -0
  501. package/dist/core/p-90de3f5d.entry.js.map +1 -0
  502. package/dist/core/p-912c8594.entry.js +2 -0
  503. package/dist/core/p-912c8594.entry.js.map +1 -0
  504. package/dist/core/{p-67b3cd55.entry.js → p-9206379d.entry.js} +2 -2
  505. package/dist/core/p-9206379d.entry.js.map +1 -0
  506. package/dist/core/p-94748b96.entry.js +2 -0
  507. package/dist/core/p-94748b96.entry.js.map +1 -0
  508. package/dist/core/{p-d7ccd00f.entry.js → p-98f906ba.entry.js} +2 -2
  509. package/dist/core/p-98f906ba.entry.js.map +1 -0
  510. package/dist/core/{p-5b836707.entry.js → p-999102ee.entry.js} +2 -2
  511. package/dist/core/p-999102ee.entry.js.map +1 -0
  512. package/dist/core/p-9b741f96.entry.js +2 -0
  513. package/dist/core/p-9b741f96.entry.js.map +1 -0
  514. package/dist/core/p-9dbe3f3e.entry.js +2 -0
  515. package/dist/core/p-9dbe3f3e.entry.js.map +1 -0
  516. package/dist/core/p-9ee2fe04.entry.js +2 -0
  517. package/dist/core/p-9ee2fe04.entry.js.map +1 -0
  518. package/dist/core/{p-e2cf6e7e.entry.js → p-a56ec6d8.entry.js} +2 -2
  519. package/dist/core/p-a56ec6d8.entry.js.map +1 -0
  520. package/dist/core/p-a9fd6dcf.entry.js +2 -0
  521. package/dist/core/p-a9fd6dcf.entry.js.map +1 -0
  522. package/dist/core/p-b594bf26.entry.js +2 -0
  523. package/dist/core/p-b594bf26.entry.js.map +1 -0
  524. package/dist/core/{p-6e94c79c.entry.js → p-bd802c2f.entry.js} +2 -2
  525. package/dist/core/p-bd802c2f.entry.js.map +1 -0
  526. package/dist/core/p-bfee1e84.entry.js +2 -0
  527. package/dist/core/p-bfee1e84.entry.js.map +1 -0
  528. package/dist/core/{p-7f984e25.entry.js → p-c19cdc86.entry.js} +2 -2
  529. package/dist/core/p-c19cdc86.entry.js.map +1 -0
  530. package/dist/core/p-c2e091d7.js.map +1 -1
  531. package/dist/core/{p-73d6092d.entry.js → p-c3785d57.entry.js} +2 -2
  532. package/dist/core/p-c3785d57.entry.js.map +1 -0
  533. package/dist/core/p-c7be6679.entry.js +2 -0
  534. package/dist/core/p-c7be6679.entry.js.map +1 -0
  535. package/dist/core/{p-7b26ef60.entry.js → p-caa46d81.entry.js} +2 -2
  536. package/dist/core/p-caa46d81.entry.js.map +1 -0
  537. package/dist/core/{p-720428a3.entry.js → p-ce0fb53a.entry.js} +2 -2
  538. package/dist/core/p-ce0fb53a.entry.js.map +1 -0
  539. package/dist/core/p-d80f3ec1.entry.js +2 -0
  540. package/dist/core/p-d80f3ec1.entry.js.map +1 -0
  541. package/dist/core/p-dce2c5e8.entry.js +2 -0
  542. package/dist/core/p-dce2c5e8.entry.js.map +1 -0
  543. package/dist/core/{p-07aaf9c4.entry.js → p-df56bc50.entry.js} +2 -2
  544. package/dist/core/p-df56bc50.entry.js.map +1 -0
  545. package/dist/core/p-e1255160.js +2 -0
  546. package/dist/core/p-e1255160.js.map +1 -0
  547. package/dist/core/p-e25feba1.entry.js +2 -0
  548. package/dist/core/p-e25feba1.entry.js.map +1 -0
  549. package/dist/core/p-e3be3502.entry.js +2 -0
  550. package/dist/core/p-e3be3502.entry.js.map +1 -0
  551. package/dist/core/p-f074ef5b.js.map +1 -1
  552. package/dist/core/{p-abdc2912.entry.js → p-f486d4f4.entry.js} +2 -2
  553. package/dist/core/p-f486d4f4.entry.js.map +1 -0
  554. package/dist/core/{p-a87d13b3.entry.js → p-fbce5f9a.entry.js} +2 -2
  555. package/dist/core/p-fbce5f9a.entry.js.map +1 -0
  556. package/dist/esm/app-globals-0f993ce5.js +5 -0
  557. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  558. package/dist/esm/core.js +14 -12
  559. package/dist/esm/core.js.map +1 -1
  560. package/dist/esm/{helpers-a72a277b.js → helpers-de6293bf.js} +31 -26
  561. package/dist/esm/helpers-de6293bf.js.map +1 -0
  562. package/dist/esm/ic-accordion-group.entry.js +31 -14
  563. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  564. package/dist/esm/ic-accordion.entry.js +65 -42
  565. package/dist/esm/ic-accordion.entry.js.map +1 -1
  566. package/dist/esm/ic-alert.entry.js +37 -16
  567. package/dist/esm/ic-alert.entry.js.map +1 -1
  568. package/dist/esm/ic-back-to-top.entry.js +27 -15
  569. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  570. package/dist/esm/ic-badge.entry.js +41 -22
  571. package/dist/esm/ic-badge.entry.js.map +1 -1
  572. package/dist/esm/ic-breadcrumb-group.entry.js +31 -16
  573. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  574. package/dist/esm/ic-breadcrumb.entry.js +35 -21
  575. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  576. package/dist/esm/ic-button_3.entry.js +304 -144
  577. package/dist/esm/ic-button_3.entry.js.map +1 -1
  578. package/dist/esm/ic-card-vertical.entry.js +53 -32
  579. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  580. package/dist/esm/ic-checkbox-group.entry.js +32 -9
  581. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  582. package/dist/esm/ic-checkbox.entry.js +48 -29
  583. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  584. package/dist/esm/ic-chip.entry.js +44 -23
  585. package/dist/esm/ic-chip.entry.js.map +1 -1
  586. package/dist/esm/ic-classification-banner.entry.js +20 -4
  587. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  588. package/dist/esm/ic-data-list.entry.js +11 -5
  589. package/dist/esm/ic-data-list.entry.js.map +1 -1
  590. package/dist/esm/ic-data-row.entry.js +28 -18
  591. package/dist/esm/ic-data-row.entry.js.map +1 -1
  592. package/dist/esm/ic-dialog.entry.js +141 -98
  593. package/dist/esm/ic-dialog.entry.js.map +1 -1
  594. package/dist/esm/ic-divider.entry.js +35 -15
  595. package/dist/esm/ic-divider.entry.js.map +1 -1
  596. package/dist/esm/ic-empty-state.entry.js +15 -9
  597. package/dist/esm/ic-empty-state.entry.js.map +1 -1
  598. package/dist/esm/ic-footer-link-group.entry.js +8 -8
  599. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  600. package/dist/esm/ic-footer-link.entry.js +9 -10
  601. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  602. package/dist/esm/ic-footer.entry.js +32 -19
  603. package/dist/esm/ic-footer.entry.js.map +1 -1
  604. package/dist/esm/ic-hero.entry.js +29 -17
  605. package/dist/esm/ic-hero.entry.js.map +1 -1
  606. package/dist/esm/ic-horizontal-scroll.entry.js +32 -20
  607. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  608. package/dist/esm/ic-input-component-container_3.entry.js +126 -68
  609. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  610. package/dist/esm/ic-input-label_2.entry.js +45 -17
  611. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  612. package/dist/esm/ic-link.entry.js +28 -21
  613. package/dist/esm/ic-link.entry.js.map +1 -1
  614. package/dist/esm/ic-menu-group.entry.js +5 -5
  615. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  616. package/dist/esm/ic-menu-item.entry.js +21 -19
  617. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  618. package/dist/esm/ic-navigation-button.entry.js +25 -19
  619. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  620. package/dist/esm/ic-navigation-group.entry.js +48 -27
  621. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  622. package/dist/esm/ic-navigation-item.entry.js +69 -48
  623. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  624. package/dist/esm/ic-navigation-menu.entry.js +54 -32
  625. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  626. package/dist/esm/ic-page-header.entry.js +45 -25
  627. package/dist/esm/ic-page-header.entry.js.map +1 -1
  628. package/dist/esm/ic-pagination-item.entry.js +27 -14
  629. package/dist/esm/ic-pagination-item.entry.js.map +1 -1
  630. package/dist/esm/ic-pagination.entry.js +60 -27
  631. package/dist/esm/ic-pagination.entry.js.map +1 -1
  632. package/dist/esm/ic-popover-menu.entry.js +58 -42
  633. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  634. package/dist/esm/ic-radio-group.entry.js +53 -28
  635. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  636. package/dist/esm/ic-radio-option.entry.js +35 -23
  637. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  638. package/dist/esm/ic-search-bar.entry.js +153 -63
  639. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  640. package/dist/esm/ic-section-container.entry.js +12 -5
  641. package/dist/esm/ic-section-container.entry.js.map +1 -1
  642. package/dist/esm/ic-select.entry.js +234 -137
  643. package/dist/esm/ic-select.entry.js.map +1 -1
  644. package/dist/esm/ic-side-navigation.entry.js +107 -71
  645. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  646. package/dist/esm/ic-skeleton.entry.js +11 -4
  647. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  648. package/dist/esm/ic-skip-link.entry.js +51 -0
  649. package/dist/esm/ic-skip-link.entry.js.map +1 -0
  650. package/dist/esm/ic-status-tag.entry.js +26 -7
  651. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  652. package/dist/esm/ic-step.entry.js +35 -33
  653. package/dist/esm/ic-step.entry.js.map +1 -1
  654. package/dist/esm/ic-stepper.entry.js +50 -35
  655. package/dist/esm/ic-stepper.entry.js.map +1 -1
  656. package/dist/esm/ic-switch.entry.js +50 -22
  657. package/dist/esm/ic-switch.entry.js.map +1 -1
  658. package/dist/esm/ic-tab-context.entry.js +44 -24
  659. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  660. package/dist/esm/ic-tab-group.entry.js +14 -9
  661. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  662. package/dist/esm/ic-tab-panel.entry.js +12 -7
  663. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  664. package/dist/esm/ic-tab.entry.js +21 -15
  665. package/dist/esm/ic-tab.entry.js.map +1 -1
  666. package/dist/esm/ic-text-field.entry.js +175 -69
  667. package/dist/esm/ic-text-field.entry.js.map +1 -1
  668. package/dist/esm/ic-theme.entry.js +13 -7
  669. package/dist/esm/ic-theme.entry.js.map +1 -1
  670. package/dist/esm/ic-toast-region.entry.js +2 -3
  671. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  672. package/dist/esm/ic-toast.entry.js +29 -21
  673. package/dist/esm/ic-toast.entry.js.map +1 -1
  674. package/dist/esm/ic-toggle-button-group.entry.js +61 -29
  675. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  676. package/dist/esm/ic-toggle-button.entry.js +81 -48
  677. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  678. package/dist/esm/ic-top-navigation.entry.js +60 -31
  679. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  680. package/dist/esm/ic-typography.entry.js +53 -27
  681. package/dist/esm/ic-typography.entry.js.map +1 -1
  682. package/dist/esm/index-a7a720e7.js +2580 -0
  683. package/dist/esm/index-a7a720e7.js.map +1 -0
  684. package/dist/esm/loader.js +6 -4
  685. package/dist/esm/loader.js.map +1 -1
  686. package/dist/types/components/ic-accordion/ic-accordion.d.ts +3 -3
  687. package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +5 -5
  688. package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
  689. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +1 -1
  690. package/dist/types/components/ic-badge/ic-badge.d.ts +1 -1
  691. package/dist/types/components/ic-breadcrumb/ic-breadcrumb.d.ts +1 -1
  692. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +2 -2
  693. package/dist/types/components/ic-button/ic-button.d.ts +7 -6
  694. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +10 -10
  695. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +6 -6
  696. package/dist/types/components/ic-data-list/ic-data-list.d.ts +1 -1
  697. package/dist/types/components/ic-data-row/ic-data-row.d.ts +2 -2
  698. package/dist/types/components/ic-dialog/ic-dialog.d.ts +9 -6
  699. package/dist/types/components/ic-divider/ic-divider.d.ts +3 -3
  700. package/dist/types/components/ic-footer/ic-footer.d.ts +4 -4
  701. package/dist/types/components/ic-hero/ic-hero.d.ts +3 -3
  702. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +6 -6
  703. package/dist/types/components/ic-input-label/ic-input-label.d.ts +2 -2
  704. package/dist/types/components/ic-input-validation/ic-input-validation.d.ts +4 -4
  705. package/dist/types/components/ic-loading-indicator/ic-loading-indicator.d.ts +2 -2
  706. package/dist/types/components/ic-menu/ic-menu.d.ts +10 -10
  707. package/dist/types/components/ic-menu/ic-menu.types.d.ts +1 -1
  708. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +2 -2
  709. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +1 -1
  710. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +15 -4
  711. package/dist/types/components/ic-navigation-group/ic-navigation-group.types.d.ts +6 -0
  712. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +8 -8
  713. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +5 -3
  714. package/dist/types/components/ic-pagination/ic-pagination.d.ts +9 -9
  715. package/dist/types/components/ic-pagination-item/ic-pagination-item.d.ts +4 -4
  716. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -4
  717. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -8
  718. package/dist/types/components/ic-radio-option/ic-radio-option.d.ts +6 -6
  719. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +12 -12
  720. package/dist/types/components/ic-search-bar/ic-search-bar.types.d.ts +1 -1
  721. package/dist/types/components/ic-select/ic-select.d.ts +20 -20
  722. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +12 -12
  723. package/dist/types/components/ic-skip-link/ic-skip-link.d.ts +33 -0
  724. package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -1
  725. package/dist/types/components/ic-switch/ic-switch.d.ts +1 -1
  726. package/dist/types/components/ic-tab/ic-tab.d.ts +2 -2
  727. package/dist/types/components/ic-text-field/ic-text-field.d.ts +34 -33
  728. package/dist/types/components/ic-theme/ic-theme.d.ts +2 -2
  729. package/dist/types/components/ic-toast/ic-toast.d.ts +3 -3
  730. package/dist/types/components/ic-toast-region/ic-toast-region.d.ts +1 -1
  731. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +3 -3
  732. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +9 -9
  733. package/dist/types/components/ic-typography/ic-typography.d.ts +1 -1
  734. package/dist/types/components.d.ts +282 -195
  735. package/dist/types/stencil-public-runtime.d.ts +9 -10
  736. package/dist/types/utils/helpers.d.ts +10 -10
  737. package/dist/types/utils/types.d.ts +8 -4
  738. package/hydrate/index.d.ts +53 -12
  739. package/hydrate/index.js +32646 -20647
  740. package/hydrate/index.mjs +34349 -0
  741. package/hydrate/package.json +7 -1
  742. package/loader/cdn.js +1 -3
  743. package/loader/index.cjs.js +1 -3
  744. package/loader/index.d.ts +3 -0
  745. package/loader/index.es2017.js +1 -3
  746. package/loader/index.js +1 -3
  747. package/package.json +3 -3
  748. package/vscode-data.json +50 -330
  749. package/dist/cjs/helpers-eca4c27e.js.map +0 -1
  750. package/dist/cjs/index-f982899d.js +0 -3047
  751. package/dist/cjs/index-f982899d.js.map +0 -1
  752. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +0 -349
  753. package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +0 -1
  754. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +0 -129
  755. package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +0 -1
  756. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +0 -329
  757. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +0 -1
  758. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +0 -159
  759. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +0 -1
  760. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +0 -450
  761. package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +0 -1
  762. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js +0 -162
  763. package/dist/collection/components/ic-breadcrumb/test/basic/ic-breadcrumb.spec.js.map +0 -1
  764. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js +0 -234
  765. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.spec.js.map +0 -1
  766. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +0 -332
  767. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +0 -1
  768. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js +0 -214
  769. package/dist/collection/components/ic-card-vertical/test/basic/ic-card-vertical.spec.js.map +0 -1
  770. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +0 -284
  771. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +0 -1
  772. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js +0 -188
  773. package/dist/collection/components/ic-chip/test/basic/ic-chip.spec.js.map +0 -1
  774. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js +0 -188
  775. package/dist/collection/components/ic-classification-banner/test/basic/ic-classification-banner.spec.js.map +0 -1
  776. package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js +0 -161
  777. package/dist/collection/components/ic-data-list/test/basic/ic-data-list.spec.js.map +0 -1
  778. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js +0 -74
  779. package/dist/collection/components/ic-data-row/test/basic/ic-data-row.spec.js.map +0 -1
  780. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js +0 -448
  781. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.spec.js.map +0 -1
  782. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js +0 -109
  783. package/dist/collection/components/ic-divider/test/basic/ic-divider.spec.js.map +0 -1
  784. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +0 -101
  785. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +0 -1
  786. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js +0 -181
  787. package/dist/collection/components/ic-footer/test/basic/ic-footer.spec.js.map +0 -1
  788. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js +0 -46
  789. package/dist/collection/components/ic-footer-link/test/basic/ic-footer-link.spec.js.map +0 -1
  790. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js +0 -66
  791. package/dist/collection/components/ic-footer-link-group/test/basic/ic-footer-link-group.spec.js.map +0 -1
  792. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js +0 -109
  793. package/dist/collection/components/ic-hero/test/basic/ic-hero.spec.js.map +0 -1
  794. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +0 -223
  795. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +0 -1
  796. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js +0 -172
  797. package/dist/collection/components/ic-input-component-container/test/basic/ic-input-component-container.spec.js.map +0 -1
  798. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js +0 -38
  799. package/dist/collection/components/ic-input-container/test/basic/ic-input-container.spec.js.map +0 -1
  800. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js +0 -84
  801. package/dist/collection/components/ic-input-label/test/basic/ic-input-label.spec.js.map +0 -1
  802. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js +0 -89
  803. package/dist/collection/components/ic-input-validation/test/basic/ic-input-validation.spec.js.map +0 -1
  804. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +0 -120
  805. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +0 -1
  806. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js +0 -149
  807. package/dist/collection/components/ic-loading-indicator/test/basic/ic-loading-indicator.spec.js.map +0 -1
  808. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js +0 -1108
  809. package/dist/collection/components/ic-menu/test/basic/ic-menu.spec.js.map +0 -1
  810. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js +0 -94
  811. package/dist/collection/components/ic-menu-group/test/basic/ic-menu-group.spec.js.map +0 -1
  812. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +0 -121
  813. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +0 -1
  814. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +0 -95
  815. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +0 -1
  816. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +0 -309
  817. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +0 -1
  818. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js +0 -130
  819. package/dist/collection/components/ic-navigation-item/test/basic/ic-navigation-item.spec.js.map +0 -1
  820. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js +0 -176
  821. package/dist/collection/components/ic-navigation-menu/test/basic/ic-navigation-menu.spec.js.map +0 -1
  822. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js +0 -291
  823. package/dist/collection/components/ic-page-header/test/basic/ic-page-header.spec.js.map +0 -1
  824. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js +0 -390
  825. package/dist/collection/components/ic-pagination/test/basic/ic-pagination.spec.js.map +0 -1
  826. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js +0 -79
  827. package/dist/collection/components/ic-pagination-item/test/basic/ic-pagination-item.spec.js.map +0 -1
  828. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +0 -398
  829. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +0 -1
  830. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +0 -389
  831. package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +0 -1
  832. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js +0 -553
  833. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.spec.js.map +0 -1
  834. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js +0 -69
  835. package/dist/collection/components/ic-section-container/test/basic/ic-section-container.spec.js.map +0 -1
  836. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js +0 -1672
  837. package/dist/collection/components/ic-select/test/basic/ic-select.spec.js.map +0 -1
  838. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +0 -503
  839. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +0 -1
  840. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js +0 -89
  841. package/dist/collection/components/ic-skeleton/test/basic/ic-skeleton.spec.js.map +0 -1
  842. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +0 -26
  843. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +0 -1
  844. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js +0 -176
  845. package/dist/collection/components/ic-step/test/basic/ic-step.spec.js.map +0 -1
  846. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +0 -752
  847. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +0 -1
  848. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js +0 -93
  849. package/dist/collection/components/ic-switch/test/basic/ic-switch.spec.js.map +0 -1
  850. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js +0 -175
  851. package/dist/collection/components/ic-tab/test/basic/ic-tab.spec.js.map +0 -1
  852. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js +0 -390
  853. package/dist/collection/components/ic-tab-context/test/basic/ic-tab-context.spec.js.map +0 -1
  854. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js +0 -19
  855. package/dist/collection/components/ic-tab-panel/test/basic/ic-tab-panel.spec.js.map +0 -1
  856. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +0 -312
  857. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +0 -1
  858. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +0 -341
  859. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +0 -1
  860. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js +0 -72
  861. package/dist/collection/components/ic-theme/test/basic/ic-theme.e2e.js.map +0 -1
  862. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js +0 -79
  863. package/dist/collection/components/ic-theme/test/basic/ic-theme.spec.js.map +0 -1
  864. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js +0 -314
  865. package/dist/collection/components/ic-toast/test/basic/ic-toast.spec.js.map +0 -1
  866. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js +0 -64
  867. package/dist/collection/components/ic-toast-region/test/basic/ic-toast-region.spec.js.map +0 -1
  868. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +0 -126
  869. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +0 -1
  870. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +0 -337
  871. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +0 -1
  872. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +0 -321
  873. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +0 -1
  874. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js +0 -314
  875. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.spec.js.map +0 -1
  876. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +0 -407
  877. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +0 -1
  878. package/dist/collection/testspec.setup.js +0 -77
  879. package/dist/collection/testspec.setup.js.map +0 -1
  880. package/dist/core/p-00587c99.entry.js.map +0 -1
  881. package/dist/core/p-07aaf9c4.entry.js.map +0 -1
  882. package/dist/core/p-094f51b6.entry.js.map +0 -1
  883. package/dist/core/p-116875ae.entry.js +0 -2
  884. package/dist/core/p-116875ae.entry.js.map +0 -1
  885. package/dist/core/p-146b2788.entry.js.map +0 -1
  886. package/dist/core/p-15082ea5.entry.js +0 -2
  887. package/dist/core/p-15082ea5.entry.js.map +0 -1
  888. package/dist/core/p-174de9d7.entry.js +0 -2
  889. package/dist/core/p-174de9d7.entry.js.map +0 -1
  890. package/dist/core/p-17f9921d.entry.js +0 -2
  891. package/dist/core/p-17f9921d.entry.js.map +0 -1
  892. package/dist/core/p-246ea059.entry.js +0 -2
  893. package/dist/core/p-246ea059.entry.js.map +0 -1
  894. package/dist/core/p-25d3c3a6.entry.js.map +0 -1
  895. package/dist/core/p-26bc7c62.entry.js.map +0 -1
  896. package/dist/core/p-27274ca8.entry.js.map +0 -1
  897. package/dist/core/p-31d4bfc3.entry.js +0 -2
  898. package/dist/core/p-31d4bfc3.entry.js.map +0 -1
  899. package/dist/core/p-39ab6387.entry.js.map +0 -1
  900. package/dist/core/p-3d565739.entry.js.map +0 -1
  901. package/dist/core/p-3ea4a005.entry.js +0 -2
  902. package/dist/core/p-3ea4a005.entry.js.map +0 -1
  903. package/dist/core/p-41b7c67c.entry.js +0 -2
  904. package/dist/core/p-41b7c67c.entry.js.map +0 -1
  905. package/dist/core/p-4cfe1dd8.entry.js.map +0 -1
  906. package/dist/core/p-5b836707.entry.js.map +0 -1
  907. package/dist/core/p-67b3cd55.entry.js.map +0 -1
  908. package/dist/core/p-67b8a829.entry.js +0 -2
  909. package/dist/core/p-67b8a829.entry.js.map +0 -1
  910. package/dist/core/p-6b5e91e2.js +0 -3
  911. package/dist/core/p-6b5e91e2.js.map +0 -1
  912. package/dist/core/p-6b9db71a.entry.js +0 -2
  913. package/dist/core/p-6b9db71a.entry.js.map +0 -1
  914. package/dist/core/p-6dfa5a4b.entry.js +0 -2
  915. package/dist/core/p-6dfa5a4b.entry.js.map +0 -1
  916. package/dist/core/p-6e94c79c.entry.js.map +0 -1
  917. package/dist/core/p-720428a3.entry.js.map +0 -1
  918. package/dist/core/p-73a208c7.entry.js.map +0 -1
  919. package/dist/core/p-73d6092d.entry.js.map +0 -1
  920. package/dist/core/p-770c52a7.entry.js +0 -2
  921. package/dist/core/p-770c52a7.entry.js.map +0 -1
  922. package/dist/core/p-7b26ef60.entry.js.map +0 -1
  923. package/dist/core/p-7f984e25.entry.js.map +0 -1
  924. package/dist/core/p-86caada0.entry.js +0 -2
  925. package/dist/core/p-86caada0.entry.js.map +0 -1
  926. package/dist/core/p-8c03b8b5.entry.js +0 -2
  927. package/dist/core/p-8c03b8b5.entry.js.map +0 -1
  928. package/dist/core/p-8fdb9b16.entry.js +0 -2
  929. package/dist/core/p-8fdb9b16.entry.js.map +0 -1
  930. package/dist/core/p-91a221b5.entry.js +0 -2
  931. package/dist/core/p-91a221b5.entry.js.map +0 -1
  932. package/dist/core/p-96b4ca6e.entry.js.map +0 -1
  933. package/dist/core/p-9e0c2c19.entry.js +0 -2
  934. package/dist/core/p-9e0c2c19.entry.js.map +0 -1
  935. package/dist/core/p-9f569f90.entry.js +0 -2
  936. package/dist/core/p-9f569f90.entry.js.map +0 -1
  937. package/dist/core/p-a178d53c.entry.js.map +0 -1
  938. package/dist/core/p-a3b7a147.entry.js +0 -2
  939. package/dist/core/p-a3b7a147.entry.js.map +0 -1
  940. package/dist/core/p-a72685f6.entry.js +0 -2
  941. package/dist/core/p-a72685f6.entry.js.map +0 -1
  942. package/dist/core/p-a87d13b3.entry.js.map +0 -1
  943. package/dist/core/p-abdc2912.entry.js.map +0 -1
  944. package/dist/core/p-b404b307.entry.js.map +0 -1
  945. package/dist/core/p-b6ce9ca3.entry.js +0 -2
  946. package/dist/core/p-b6ce9ca3.entry.js.map +0 -1
  947. package/dist/core/p-b6e010f3.entry.js +0 -2
  948. package/dist/core/p-b6e010f3.entry.js.map +0 -1
  949. package/dist/core/p-bbd4f487.entry.js +0 -2
  950. package/dist/core/p-bbd4f487.entry.js.map +0 -1
  951. package/dist/core/p-bd9f3961.entry.js +0 -2
  952. package/dist/core/p-bd9f3961.entry.js.map +0 -1
  953. package/dist/core/p-c1db155d.entry.js.map +0 -1
  954. package/dist/core/p-c7bcdb8e.entry.js +0 -2
  955. package/dist/core/p-c7bcdb8e.entry.js.map +0 -1
  956. package/dist/core/p-ca11666f.entry.js.map +0 -1
  957. package/dist/core/p-cda4aca9.js +0 -2
  958. package/dist/core/p-cda4aca9.js.map +0 -1
  959. package/dist/core/p-d7ccd00f.entry.js.map +0 -1
  960. package/dist/core/p-dededae6.entry.js +0 -2
  961. package/dist/core/p-dededae6.entry.js.map +0 -1
  962. package/dist/core/p-e2cf6e7e.entry.js.map +0 -1
  963. package/dist/core/p-e6dc3cd1.entry.js +0 -2
  964. package/dist/core/p-e6dc3cd1.entry.js.map +0 -1
  965. package/dist/core/p-e831277e.entry.js +0 -2
  966. package/dist/core/p-e831277e.entry.js.map +0 -1
  967. package/dist/core/p-eb7c589b.entry.js +0 -2
  968. package/dist/core/p-eb7c589b.entry.js.map +0 -1
  969. package/dist/core/p-f65179fe.entry.js +0 -2
  970. package/dist/core/p-f65179fe.entry.js.map +0 -1
  971. package/dist/core/p-fd60eef7.entry.js +0 -2
  972. package/dist/core/p-fd60eef7.entry.js.map +0 -1
  973. package/dist/core/p-fd9f3fd0.entry.js +0 -2
  974. package/dist/core/p-fd9f3fd0.entry.js.map +0 -1
  975. package/dist/esm/helpers-a72a277b.js.map +0 -1
  976. package/dist/esm/index-d1d2c456.js +0 -3016
  977. package/dist/esm/index-d1d2c456.js.map +0 -1
  978. package/dist/esm/polyfills/core-js.js +0 -11
  979. package/dist/esm/polyfills/dom.js +0 -79
  980. package/dist/esm/polyfills/es5-html-element.js +0 -1
  981. package/dist/esm/polyfills/index.js +0 -34
  982. package/dist/esm/polyfills/system.js +0 -6
  983. package/dist/types/testspec.setup.d.ts +0 -24
@@ -1 +0,0 @@
1
- {"version":3,"names":["icFooterCss","Footer","this","resizeObserver","hostMutationObserver","resizeObserverCallback","currSize","deviceSize","footerResized","emit","runResizeObserver","ResizeObserver","getCurrentDeviceSize","observe","footerEl","IC_DEVICE_SIZES","XL","getBrandForegroundAppearance","disconnectedCallback","disconnect","_a","componentWillLoad","componentDidLoad","checkResizeObserver","MutationObserver","mutationList","renderDynamicChildSlots","el","childList","brandChangeHandler","ev","foregroundColor","detail","mode","isSmall","bp","breakpoint","XS","S","M","L","render","aligned","caption","copyright","description","groupLinks","small","showComplianceSection","isSlotUsed","h","Host","class","IcBrandForegroundEnum","Dark","Light","ref","fullHeight","variant","name","role","hasClassificationBanner"],"sources":["src/components/ic-footer/ic-footer.css?tag=ic-footer&encapsulation=shadow","src/components/ic-footer/ic-footer.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --footer-compliance-padding: 1rem 0;\n}\n\n:host(.ic-footer-sparse) {\n --footer-links-padding: 1.5rem 0;\n --footer-logo-margin-bottom: calc(var(--ic-space-md) + var(--ic-space-xxs));\n --footer-link-inner-flex-direction: row;\n}\n\n:host(.ic-footer-small) {\n --footer-links-padding: 0 0;\n --footer-logo-margin-bottom: var(--ic-space-md);\n --footer-link-inner-flex-direction: column;\n}\n\n:host(.ic-footer-foreground-dark) {\n --ic-footer-background: var(--ic-brand-color-secondary-light);\n --ic-footer-bottom-background: var(--ic-brand-color-tertiary-light);\n --ic-footer-keyline: var(--ic-state-layer-darken-20);\n --ic-footer-text: var(--ic-color-text-primary-light);\n --ic-footer-link: var(--ic-color-text-primary-light);\n --ic-footer-icon: var(--ic-color-icon-neutral);\n --ic-footer-chevron-icon: var(--ic-color-icon-neutral);\n --ic-footer-logo: var(--ic-color-icon-neutral);\n --ic-footer-hover: var(--ic-architectural-700-state-layer-10);\n --ic-footer-pressed: var(--ic-architectural-700-state-layer-20);\n}\n\n:host(.ic-footer-small.ic-footer-ungrouped) {\n --footer-links-padding: var(--ic-space-md) 0 0 0;\n}\n\n/* Main inner footer element */\nfooter {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n/* Description */\n\n.footer-description {\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n\n border-bottom: var(--ic-space-1px) solid var(--ic-footer-keyline);\n}\n\n.footer-description-inner {\n padding: 1rem 0;\n}\n\n/* Links */\n\n.footer-links {\n padding: var(--footer-links-padding);\n background-color: var(--ic-footer-background);\n color: var(--ic-footer-link);\n\n --ic-typography-color: var(--ic-footer-link);\n}\n\n.footer-links-inner {\n display: flex;\n flex-direction: var(--footer-link-inner-flex-direction);\n}\n\n/* Compliance */\n\n.footer-compliance {\n background-color: var(--ic-footer-bottom-background);\n color: var(--ic-footer-text);\n\n --ic-typography-color: var(--ic-footer-text);\n}\n\n.footer-compliance-inner {\n padding: var(--footer-compliance-padding);\n}\n\n.footer-logo {\n margin-bottom: var(--footer-logo-margin-bottom);\n display: flex;\n gap: var(--ic-space-xxl);\n}\n\n.footer-logo > ::slotted() {\n margin-right: var(--ic-space-md);\n}\n\n.footer-caption {\n margin-bottom: var(--ic-space-md);\n}\n\n.classification-spacing {\n margin-bottom: var(--ic-space-lg);\n}\n\n@media (forced-colors: active) {\n footer {\n border-top: var(--ic-border-hc);\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n State,\n} from \"@stencil/core\";\nimport { IC_DEVICE_SIZES } from \"../../utils/constants\";\nimport {\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n checkResizeObserver,\n hasClassificationBanner,\n isSlotUsed,\n renderDynamicChildSlots,\n} from \"../../utils/helpers\";\nimport {\n IcAlignment,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundEnum,\n} from \"../../utils/types\";\nimport { IcFooterBreakpoints } from \"./ic-footer.types\";\n\n/**\n * @slot description - Content will be rendered at the top of the footer.\n * @slot link - Content will be rendered between description and logos.\n * @slot logo - Content will be rendered underneath footer links.\n * @slot caption - Content will be rendered above Crown Copyright.\n */\n\n@Component({\n tag: \"ic-footer\",\n styleUrl: \"ic-footer.css\",\n shadow: true,\n})\nexport class Footer {\n private footerEl: HTMLElement;\n private resizeObserver: ResizeObserver = null;\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcFooterElement;\n\n @State() deviceSize: number = IC_DEVICE_SIZES.XL;\n @State() foregroundColor: IcBrandForeground = getBrandForegroundAppearance();\n\n /**\n * The alignment of the section containers used within the footer.\n */\n @Prop() aligned?: IcAlignment = \"left\";\n\n /**\n * The screen size breakpoint at which to switch to the small layout.\n */\n @Prop() breakpoint?: IcFooterBreakpoints = \"medium\";\n\n /**\n * The caption displayed at the bottom of the footer.\n */\n @Prop() caption: string;\n\n /**\n * If `true`, the footer will display the crown copyright at the bottom.\n */\n @Prop() copyright: boolean = true;\n\n /**\n * The description displayed at the top of the footer.\n */\n @Prop() description: string;\n\n /**\n * If `true`, the footer will be set up to handle link groups instead of standalone links.\n */\n @Prop() groupLinks?: boolean = false;\n\n /**\n * @internal Triggers on page resize and triggers style changes in footer links and link groups\n */\n @Event() footerResized: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.resizeObserver !== null) {\n this.resizeObserver.disconnect();\n }\n\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n\n this.hostMutationObserver = new MutationObserver((mutationList) => {\n return renderDynamicChildSlots(mutationList, \"link\", this);\n });\n\n this.hostMutationObserver.observe(this.el, {\n childList: true,\n });\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler(ev: CustomEvent<IcBrand>): void {\n this.foregroundColor = ev.detail.mode;\n }\n\n private isSmall() {\n const bp = this.breakpoint;\n\n return bp === \"extra small\"\n ? this.deviceSize < IC_DEVICE_SIZES.XS\n : bp === \"small\"\n ? this.deviceSize < IC_DEVICE_SIZES.S\n : bp === \"medium\"\n ? this.deviceSize < IC_DEVICE_SIZES.M\n : bp === \"large\"\n ? this.deviceSize < IC_DEVICE_SIZES.L\n : bp === \"extra large\"\n ? this.deviceSize < IC_DEVICE_SIZES.XL\n : false;\n }\n\n private resizeObserverCallback = (currSize: number) => {\n if (currSize !== this.deviceSize) {\n this.deviceSize = currSize;\n }\n this.footerResized.emit();\n };\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n const currSize = getCurrentDeviceSize();\n this.resizeObserverCallback(currSize);\n });\n\n this.resizeObserver.observe(this.footerEl);\n };\n\n render() {\n const {\n aligned,\n caption,\n copyright,\n description,\n deviceSize,\n el,\n foregroundColor,\n groupLinks,\n } = this;\n const small = this.isSmall();\n\n const showComplianceSection =\n isSlotUsed(el, \"logo\") ||\n isSlotUsed(el, \"caption\") ||\n caption ||\n copyright;\n\n return (\n <Host\n class={{\n [\"ic-footer\"]: true,\n [`ic-footer-${small ? \"small\" : \"sparse\"}`]: true,\n [`ic-footer-${groupLinks ? \"grouped\" : \"ungrouped\"}`]: true,\n [`ic-footer-foreground-${foregroundColor}`]: true,\n // Slots will be able to infer their own color\n [`ic-footer-${IcBrandForegroundEnum.Dark}`]:\n foregroundColor === IcBrandForegroundEnum.Dark,\n [`ic-footer-${IcBrandForegroundEnum.Light}`]:\n foregroundColor === IcBrandForegroundEnum.Light,\n }}\n >\n <footer ref={(footerEl) => (this.footerEl = footerEl)}>\n {/* Description */}\n {(isSlotUsed(el, \"description\") || description) && (\n <div class=\"footer-description\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-description-inner\">\n <ic-typography variant=\"body\">\n <slot name=\"description\">{description}</slot>\n </ic-typography>\n </div>\n </ic-section-container>\n </div>\n )}\n\n {/* Links */}\n {isSlotUsed(el, \"link\") && (\n <div class=\"footer-links\">\n {groupLinks && small ? (\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n ) : (\n <ic-section-container fullHeight aligned={aligned}>\n <div class=\"footer-links-inner\" role=\"list\">\n <slot name=\"link\" />\n </div>\n </ic-section-container>\n )}\n </div>\n )}\n\n {/* Compliance (logo, caption, copyright) */}\n {showComplianceSection && (\n <div class=\"footer-compliance\">\n <ic-section-container aligned={aligned} fullHeight={true}>\n <div class=\"footer-compliance-inner\">\n {isSlotUsed(el, \"logo\") && (\n <div class=\"footer-logo\">\n <slot name=\"logo\" />\n </div>\n )}\n {(isSlotUsed(el, \"caption\") || caption) && (\n <div class=\"footer-caption\">\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M ? \"caption\" : \"body\"\n }\n >\n <slot name=\"caption\">{caption}</slot>\n </ic-typography>\n </div>\n )}\n {copyright && (\n <div\n class={{\n [\"footer-copyright\"]: true,\n [\"classification-spacing\"]: hasClassificationBanner(),\n }}\n >\n <ic-typography\n variant={\n deviceSize <= IC_DEVICE_SIZES.M\n ? \"caption-uppercase\"\n : \"label-uppercase\"\n }\n >\n &copy; Crown Copyright\n </ic-typography>\n </div>\n )}\n </div>\n </ic-section-container>\n </div>\n )}\n </footer>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationItemCss","NavigationItem","this","isInitialRender","hostMutationObserver","ANIMATION_DURATION","parseInt","getCssProperty","ARIA_LABEL_STRING","displayDefaultNavigationItem","href","hreflang","target","rel","referrerpolicy","download","label","variant","isTopNavChild","inTopNavSideMenu","ChevronIconComponent","expandable","h","class","svg","innerHTML","chevronIcon","IconComponent","el","querySelector","name","isSlotUsed","referrerPolicy","ref","itemEl","part","ariaLabel","OpenInNew","tabindex","topNavResizedHandler","detail","size","deviceSize","_a","parentEl","customMobileBreakpoint","DEVICE_SIZES","L","sideNavExpandHandler","sideNavExpanded","sideNavMobile","isSideNavMobile","sideNavToggleTooltip","handleBlur","relatedTarget","tagName","childBlur","emit","handleClick","navItemClicked","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","getAttribute","forceUpdate","generateTooltipLabel","navigationSlot","textContent","children","renderNavigationItemContent","showTooltip","tooltip","shadowRoot","collapsedClass","timer","displayTooltip","setTimeout","classList","add","clearTimeout","remove","XL","getBrandForegroundAppearance","disconnectedCallback","navigationType","removeEventListener","disconnect","componentWillLoad","navType","parent","getNavItemParentDetails","getCurrentDeviceSize","contains","_b","addEventListener","parentElement","trim","hasAttribute","componentDidLoad","MutationObserver","observe","attributes","componentDidUpdate","brandChangeHandler","focusStyle","mode","setFocus","focus","render","selected","Host","displayNavigationTooltip","collapsedIconLabel","theme","onBlur","onClick","role","placement"],"sources":["src/components/ic-navigation-item/ic-navigation-item.css?tag=ic-navigation-item&encapsulation=shadow","src/components/ic-navigation-item/ic-navigation-item.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation item\n */\n\n:host {\n display: block;\n\n --navigation-link-colour: var(--ic-brand-text-color);\n}\n\n:host(:focus-within) {\n z-index: var(--ic-z-index-navigation-item);\n}\n\n/* chevron */\nsvg {\n width: var(--ic-space-xl);\n fill: var(--ic-brand-text-color);\n}\n\n.svg {\n margin-left: auto;\n}\n\n.chevron-container svg,\n.chevron-container .svg {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n.chevron-container {\n flex-grow: 1;\n}\n\n:host(.expandable.navigation-item) .link,\n:host(.expandable.navigation-item) ::slotted(a) {\n padding-right: 0;\n}\n\n:host(.navigation-item) .link,\n:host(.navigation-item) ::slotted(a) {\n height: calc(100% - var(--ic-space-xxs));\n width: fit-content;\n color: var(--navigation-link-colour);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md) var(--ic-space-xxs);\n text-decoration: none;\n transition: var(--ic-easing-transition-fast);\n position: relative;\n white-space: nowrap;\n}\n\n:host(.navigation-item) ::slotted(a) {\n height: 100%;\n font: var(--ic-font-label) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt025) !important;\n padding: 0 var(--ic-space-md) !important;\n}\n\n:host(.navigation-item-selected) .link::after,\n:host(.navigation-item-selected) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav) ::slotted(a.active)::after {\n content: \"\";\n height: 0.25rem;\n width: 100%;\n position: absolute;\n bottom: 0;\n background-color: var(--ic-top-navigation-theme);\n}\n\n:host(.navigation-item-selected.navigation-item-page-header)\n ::slotted(a.active)::after,\n:host(.navigation-item-selected.navigation-item-page-header) .link::after,\n:host(.navigation-item.navigation-item-page-header) ::slotted(a.active)::after,\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::after {\n content: none;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n box-shadow: none;\n}\n\n:host(.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover);\n cursor: pointer;\n}\n\n:host(.navigation-item:not(.navigation-item-page-header, .navigation-item-side-menu))\n ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-brand-hover) !important;\n}\n\n:host(.navigation-item:not(.navigation-item-top-nav-child, .navigation-item-side-menu, .navigation-item-top-nav-child-selected\n .navigation-item-side-menu-selected))\n .focus-indicator:focus-within {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item) .link:focus,\n:host(.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.navigation-item-selected) .link:focus,\n:host(.navigation-item) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.navigation-item) .link:active:not(:focus),\n:host(.navigation-item) ::slotted(a:active:not(:focus)) {\n background-color: var(--ic-brand-active);\n}\n\n:host(.navigation-item-side-menu) .link,\n:host(.navigation-item-side-menu) ::slotted(a) {\n min-height: 2.5rem;\n height: auto;\n width: 100%;\n box-sizing: border-box;\n color: var(--ic-top-navigation-nav-item);\n\n --ic-typography-color: var(--ic-top-navigation-nav-item);\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n text-wrap: wrap;\n white-space: normal;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n transition: box-shadow var(--ic-easing-transition-fast),\n background-color var(--ic-easing-transition-fast);\n}\n\n:host(.navigation-item-side-menu) .link:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-hover);\n}\n\n:host(.navigation-item-side-menu) ::slotted(a:hover:not(:focus)) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-side-menu) .focus-indicator:focus-within {\n box-shadow: none;\n}\n\n:host(.navigation-item-side-menu) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset) !important;\n width: auto;\n border-radius: var(--ic-border-radius-inset) !important;\n}\n\n:host(.navigation-item-side-menu-selected) .link,\n:host(.navigation-item-side-menu-selected) ::slotted(a) {\n transition: box-shadow var(--ic-easing-transition-slow),\n background-color var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n margin-left: var(--ic-space-xs) !important;\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link,\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n height: 2.5rem;\n width: fit-content;\n min-width: 9.063rem;\n color: var(--ic-top-navigation-nav-item);\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) !important;\n text-decoration: none;\n position: relative;\n transition: box-shadow var(--ic-transition-duration-fast),\n border-radius var(--ic-transition-duration-slow);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a) {\n font: var(--ic-font-body) !important;\n letter-spacing: var(--ic-font-letter-spacing-0pt005) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:hover:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:hover):not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-hover) !important;\n}\n\n:host(.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-top-nav-child) ::slotted(a:focus) {\n z-index: 1;\n outline: var(--ic-hc-focus-outline);\n border-radius: var(--ic-border-radius-inset);\n box-shadow: var(--ic-border-focus-inset);\n transition: border-radius 0s, box-shadow var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n}\n\n:host(.navigation-item-side-menu) .link:active:not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) .link:active:not(:focus),\n:host(.navigation-item-top-nav-child) ::slotted(a:active):not(:focus) {\n outline: var(--ic-hc-focus-outline);\n background-color: var(--ic-top-navigation-nav-item-pressed);\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a:active):not(:focus),\n:host(.navigation-item-side-menu) ::slotted(a:active):not(:focus) {\n background-color: var(--ic-top-navigation-nav-item-pressed) !important;\n}\n\n:host(.navigation-item-side-menu-selected) *,\n:host(.navigation-item-top-nav-child-selected) *,\n:host(.navigation-item-side-menu) ::slotted(a.active),\n:host(.navigation-item-top-nav-child) ::slotted(a.active) {\n font-weight: 700 !important;\n}\n\n:host(.navigation-item-top-nav-child) ::slotted(a.active)::before,\n:host(.navigation-item-top-nav-child-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n content: \"\";\n position: absolute;\n left: 0;\n width: var(--ic-space-xs);\n height: inherit;\n min-height: 2.5rem;\n background-color: var(--ic-top-navigation-nav-item-banner);\n transition: left 0s;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before {\n margin-top: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus {\n margin-left: var(--ic-space-xs);\n margin-right: calc(-1 * var(--ic-space-xs));\n padding-left: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-top-nav-child-selected) .link:focus::before {\n left: calc(-1 * var(--ic-space-xs));\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link::before,\n:host(.navigation-item-side-menu) ::slotted(a.active)::before,\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before {\n z-index: 1;\n}\n\n:host(.navigation-item-side-menu-selected) .link:focus::before,\n:host(.navigation-item-side-menu) ::slotted(a.active:focus)::before,\n:host(.navigation-item-top-nav-child) ::slotted(a.active:focus)::before {\n left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-side-menu-selected) .link::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .link {\n height: 100%;\n}\n\n:host(.navigation-item-side-nav-collapsed) ::slotted(svg),\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(svg) {\n margin: auto;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) .icon,\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n align-items: center;\n padding: 0;\n margin: auto 0;\n width: fit-content;\n pointer-events: none;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) ic-typography {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100%;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav-collapsed-with-label) .link,\n:host(.navigation-item-side-nav-collapsed-with-label) ::slotted(a) {\n display: flex;\n flex-direction: column;\n height: fit-content;\n padding: var(--ic-space-xs) !important;\n gap: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n height: auto !important;\n gap: 0;\n width: auto;\n padding: var(--ic-space-xs) !important;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n text-align: center;\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link\n ic-typography {\n opacity: 1;\n min-width: min-content;\n}\n\n:host(.navigation-item-side-nav-collapsed) svg,\n:host(.navigation-item-side-nav-collapsed-with-label) svg {\n display: none;\n}\n\n::slotted(svg) {\n fill: var(--ic-brand-text-color);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n.icon {\n height: 1.5rem;\n width: var(--ic-space-xxl);\n margin-left: calc(-1 * var(--ic-space-md));\n flex: 0 1 0%;\n position: relative;\n}\n\n.icon > ::slotted(*) {\n margin-left: var(--ic-space-md) !important;\n}\n\n:host(.navigation-item-side-nav-collapsed) .icon > ::slotted(*) {\n margin: auto !important;\n}\n\n:host(.navigation-item-side-nav) .link,\n:host(.navigation-item-side-nav) ::slotted(a) {\n height: var(--navigation-item-height, 4rem);\n min-height: var(--navigation-item-min-height);\n width: var(--navigation-item-width, auto);\n justify-content: var(--navigation-item-justify-content);\n display: flex;\n gap: var(--ic-space-xs);\n box-sizing: border-box;\n color: var(--navigation-item-child-color) !important;\n text-decoration: none !important;\n white-space: nowrap;\n padding: 0 var(--ic-space-md);\n text-wrap: wrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) ::slotted(a) {\n height: var(--navigation-item-child-height);\n width: var(--navigation-group-width);\n color: var(--navigation-item-child-color) !important;\n display: flex;\n gap: 0.625rem;\n box-sizing: border-box;\n min-width: 0;\n transition: box-shadow var(--ic-easing-transition-fast);\n text-decoration: none !important;\n white-space: nowrap;\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:focus,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-dark);\n}\n\n:host(.navigation-item-side-nav.navigation-item-side-menu) .link:active {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav.navigation-item-top-nav-child) .link:active,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n ::slotted(a:active) {\n background-color: var(--navigation-item-child-active);\n}\n\n:host(.navigation-item-side-nav) a.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n a.link\n ic-typography,\n:host(.navigation-item-side-nav) div.link ic-typography,\n:host(.navigation-item-side-nav.navigation-item-top-nav-child)\n div.link\n ic-typography,\n.navigation-item-side-nav-slotted-text {\n opacity: var(--navigation-item-label-opacity);\n transition: opacity var(--ic-easing-transition-slow);\n white-space: wrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a.active) {\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::before,\n:host(.navigation-item-side-nav) ::slotted(a.active)::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0 0 0 0.313rem;\n border-radius: 0.688rem !important;\n transition: var(--ic-easing-transition-slow);\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus::before,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus)::before {\n box-shadow: var(--ic-border-focus-inset);\n}\n\n:host(:not(.navigation-item-side-nav-collapsed).navigation-item-side-nav.navigation-item-side-nav-collapsed-with-label)\n .link {\n opacity: var(--navigation-item-label-opacity);\n height: auto;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n .link,\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n min-width: var(--navigation-group-item-min-width);\n padding: var(--ic-space-xs) !important;\n height: auto;\n gap: 0;\n}\n\n:host(.navigation-item-top-nav-child.navigation-item-side-nav-collapsed-with-label)\n ::slotted(a) {\n display: block;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link::after,\n:host(.navigation-item-side-nav) ::slotted(a.active)::after {\n display: none;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:focus,\n:host(.navigation-item-side-nav.navigation-item) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background-color: transparent;\n}\n\n:host(.navigation-item-side-nav.navigation-item-selected) .link:focus,\n:host(.navigation-item-side-nav) ::slotted(a.active:focus) {\n margin: 0 auto;\n box-shadow: inset 0.313rem 0 0 var(--ic-brand-text-color);\n border-radius: 0;\n}\n\n:host(.navigation-item-side-nav.navigation-item) .link:hover:not(:focus) {\n background-color: var(--ic-brand-hover) !important;\n}\n\n:host(.navigation-item-page-header).link,\n:host(.navigation-item-page-header) a,\n:host(.navigation-item-page-header) ::slotted(a) {\n height: 2.5rem !important;\n color: var(--ic-color-text-primary) !important;\n transition: all var(--ic-easing-transition-fast) !important;\n box-shadow: rgba(23 89 188 / 0%) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link::after,\n:host(.navigation-item-page-header) ::slotted(a.active)::after {\n content: \" \" !important;\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n height: var(--ic-space-xxs);\n background-color: var(--ic-action-default) !important;\n}\n\n:host(.navigation-item-page-header) .link:hover,\n:host(.navigation-item-page-header) ::slotted(.link:hover),\n:host(.navigation-item-page-header) ::slotted(a:hover),\n:host(.navigation-item-page-header) .link:hover:not(:focus) {\n background-color: var(--ic-action-default-bg-hover) !important;\n cursor: pointer;\n}\n\n:host(.navigation-item-page-header) .link:focus,\n:host(.navigation-item-page-header) ::slotted(a:focus) {\n box-shadow: var(--ic-border-focus);\n}\n\n:host(.navigation-item-page-header) .link:active,\n:host(.navigation-item-page-header) ::slotted(a:active) {\n background-color: var(--ic-action-default-bg-pressed) !important;\n}\n\n:host(.navigation-item-page-header.navigation-item-selected) .link:focus::after,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::after {\n border-bottom-left-radius: var(--ic-border-radius);\n border-bottom-right-radius: var(--ic-border-radius);\n}\n\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n .link,\n:host(.navigation-item-page-header.navigation-item-selected.with-transition)\n ::slotted(a.active) {\n transition: all var(--ic-easing-transition-fast),\n border-color var(--ic-transition-duration-fast);\n}\n\n:host(.navigation-item-page-header) ::slotted(a.active)::before,\n:host(.navigation-item-page-header) ::slotted(a.active:focus)::before,\n:host(.navigation-item-page-header.navigation-item-selected)\n .link:focus::before {\n display: none;\n}\n\n.open-in-new-icon {\n flex: 1;\n}\n\n.open-in-new-icon svg {\n margin-top: var(--ic-space-xxs);\n padding-left: var(--ic-space-xxs);\n}\n\n:host(.navigation-item-side-nav) .open-in-new-icon {\n margin-left: calc(-1 * var(--ic-space-xs));\n}\n\n:host(.navigation-item-top-nav) .open-in-new-icon svg,\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-side-nav) .open-in-new-icon svg {\n height: 0.875rem;\n width: 0.875rem;\n}\n\n:host(.navigation-item-side-menu) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n}\n\n:host(.navigation-item-page-header) .open-in-new-icon svg,\n:host(.navigation-item-top-nav-child) .open-in-new-icon svg,\n:host(.navigation-item-side-menu) .open-in-new-icon svg {\n fill: var(--ic-color-text-primary);\n}\n\n@media (forced-colors: active) {\n .open-in-new-icon svg {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n forceUpdate,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCssProperty,\n getCurrentDeviceSize,\n getBrandForegroundAppearance,\n getNavItemParentDetails,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport {\n IcNavType,\n IcBrand,\n IcBrandForeground,\n IcBrandForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\nimport { IcExpandedDetail } from \"../ic-side-navigation/ic-side-navigation.types\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n * @slot badge - Badge component overlaying the top right of the icon.\n * @slot icon - Content will be displayed to the left of the label for expanded navigation items, and in replacement of the label for collapsed navigation items.\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationItem {\n private navigationSlot: HTMLElement;\n private isInitialRender: boolean = true;\n private itemEl: HTMLElement;\n private hostMutationObserver: MutationObserver = null;\n private ANIMATION_DURATION =\n parseInt(getCssProperty(\"--ic-transition-duration-slow\")) || 0;\n private ARIA_LABEL_STRING = \"aria-label\";\n\n @Element() el: HTMLIcNavigationItemElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle: IcBrandForegroundNoDefault | IcBrandForeground =\n getBrandForegroundAppearance();\n @State() inTopNavSideMenu: boolean = false;\n @State() isSideNavMobile: boolean = false;\n @State() isTopNavChild: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n @State() sideNavExpanded: boolean = false;\n @State() ariaLabel: string = \"\";\n\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel: boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip: boolean = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href: string = \"\";\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label: string;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected: boolean = false;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() navItemClicked: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler\n );\n }\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const { navType, parent } = getNavItemParentDetails(this.el);\n this.navigationType = navType;\n this.parentEl = parent;\n this.deviceSize = getCurrentDeviceSize();\n\n this.sideNavExpanded =\n this.parentEl?.classList.contains(\"sm-expanded\") ||\n this.parentEl?.classList.contains(\"xs-menu-open\");\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"icSideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"icTopNavResized\",\n this.topNavResizedHandler\n );\n if (this.el.parentElement.tagName === \"IC-NAVIGATION-GROUP\")\n this.isTopNavChild = true;\n if (\n this.deviceSize <=\n (this.parentEl as HTMLIcTopNavigationElement).customMobileBreakpoint\n )\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel = this.navigationSlot.textContent.trim();\n }\n\n if (this.el.hasAttribute(this.ARIA_LABEL_STRING)) {\n this.ariaLabel = this.el.getAttribute(this.ARIA_LABEL_STRING);\n }\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n @Listen(\"brandChange\", { target: \"document\" })\n brandChangeHandler({ detail }: CustomEvent<IcBrand>): void {\n this.focusStyle = detail.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.itemEl ? this.itemEl.focus() : this.el.querySelector(\"a\")?.focus();\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n hreflang: string,\n target: string,\n rel: string,\n referrerpolicy: ReferrerPolicy,\n download: string | boolean,\n label: string\n ): HTMLElement => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n <slot name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && <slot name=\"badge\"></slot>}\n </div>\n );\n\n if (href !== \"\") {\n return (\n <a\n href={href}\n target={target}\n rel={rel}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n download={download !== false ? download : null}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n aria-label={this.ariaLabel ? this.ariaLabel : null}\n >\n {IconComponent}\n\n <ic-typography variant={variant}>{label}</ic-typography>\n <div class=\"chevron-container\">{ChevronIconComponent}</div>\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n );\n }\n\n return (\n <div tabindex=\"0\" class=\"link\" ref={(el) => (this.itemEl = el)}>\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n </div>\n );\n };\n\n private topNavResizedHandler = ({\n detail,\n }: CustomEvent<{ size: number }>): void => {\n const { size } = detail;\n if (size !== this.deviceSize) {\n this.deviceSize = size;\n this.inTopNavSideMenu =\n size <=\n ((this.parentEl as HTMLIcTopNavigationElement)\n ?.customMobileBreakpoint || DEVICE_SIZES.L);\n }\n };\n\n private sideNavExpandHandler = ({\n detail,\n }: CustomEvent<IcExpandedDetail>): void => {\n const { sideNavExpanded, sideNavMobile } = detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n this.sideNavToggleTooltip(!(sideNavExpanded || sideNavMobile));\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n if (\n relatedTarget === null ||\n (relatedTarget as HTMLElement).tagName !== \"IC-NAVIGATION-ITEM\"\n ) {\n this.childBlur.emit();\n }\n };\n\n private handleClick = () => {\n this.navItemClicked.emit();\n };\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (attributeName === this.ARIA_LABEL_STRING) {\n this.ariaLabel = this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private generateTooltipLabel = () => {\n if (this.label) {\n return this.label;\n }\n\n if (this.navigationSlot) {\n return this.navigationSlot.textContent;\n }\n\n if (this.el.children[0]) {\n return this.el.children[0].textContent;\n }\n\n return \"\";\n };\n\n private renderNavigationItemContent = () => {\n if (this.label) {\n return this.displayDefaultNavigationItem(\n this.href,\n this.hreflang,\n this.target,\n this.rel,\n this.referrerpolicy,\n this.download,\n this.label\n );\n }\n\n if (this.navigationSlot) {\n return <slot name=\"navigation-item\"></slot>;\n }\n return <slot></slot>;\n };\n\n // Displays tooltip only once the collapsing animation is finished\n private sideNavToggleTooltip = (showTooltip: boolean) => {\n const tooltip = this.el.shadowRoot.querySelector(\"ic-tooltip\");\n const collapsedClass = \"tooltip-navigation-item-side-nav-collapsed\";\n let timer;\n\n if (tooltip) {\n if (showTooltip) {\n tooltip.displayTooltip(false); // Hides tooltip for when mouse is hovering over icon\n timer = setTimeout(() => {\n tooltip.classList.add(collapsedClass);\n }, this.ANIMATION_DURATION);\n } else {\n clearTimeout(timer);\n tooltip.classList.remove(collapsedClass);\n }\n }\n };\n\n render() {\n const { inTopNavSideMenu, isTopNavChild, selected } = this;\n\n return (\n <Host\n class={{\n [\"navigation-item\"]: true,\n [\"navigation-item-top-nav\"]:\n !inTopNavSideMenu && this.navigationType === \"top\",\n [\"navigation-item-top-nav-child-selected\"]:\n isTopNavChild && !inTopNavSideMenu && selected,\n [this.focusStyle]:\n (!inTopNavSideMenu && !isTopNavChild) ||\n (this.navigationType === \"side\" && isTopNavChild),\n [\"navigation-item-selected\"]: !isTopNavChild && selected,\n [\"navigation-item-side-menu\"]: inTopNavSideMenu,\n [\"navigation-item-side-menu-selected\"]: inTopNavSideMenu && selected,\n [\"navigation-item-top-nav-child\"]: isTopNavChild && !inTopNavSideMenu,\n [\"navigation-item-page-header\"]:\n this.navigationType === \"page-header\",\n [\"with-transition\"]: !this.isInitialRender,\n [\"navigation-item-side-nav\"]: this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed-with-label\"]:\n !this.sideNavExpanded &&\n this.navigationType === \"side\" &&\n this.collapsedIconLabel &&\n !this.isSideNavMobile,\n [\"expandable\"]: this.expandable,\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n onBlur={isTopNavChild && !inTopNavSideMenu ? this.handleBlur : null}\n onClick={this.handleClick}\n aria-current={selected ? \"page\" : null}\n role=\"listitem\"\n >\n {/* Tooltip enabled by applying navigation-item-side-nav-collapsed class to host */}\n <ic-tooltip\n label={this.generateTooltipLabel()}\n target=\"navigation-item\"\n placement=\"right\"\n class={{\n [\"tooltip-navigation-item\"]: true,\n [\"tooltip-navigation-item-side-nav-collapsed\"]:\n this.displayNavigationTooltip && this.navigationType === \"side\",\n [\"tooltip-long-label-navigation-item-side-nav-expanded\"]:\n this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n }}\n >\n {this.renderNavigationItemContent()}\n </ic-tooltip>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,c as t,f as e,h as s,H as l,g as o}from"./p-6b5e91e2.js";import{F as a,E as h,A as n,G as r,r as c,k as d,w as u,j as p,b,l as f,n as v,p as m,H as g,x,J as w}from"./p-cda4aca9.js";const y=`<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">\n<path d="M7 9.5L12 14.5L17 9.5H7Z" fill="currentColor" />\n</svg>\n`;const k=`<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.6666 4.27334L11.7266 3.33334L7.99998 7.06001L4.27331 3.33334L3.33331 4.27334L7.05998 8.00001L3.33331 11.7267L4.27331 12.6667L7.99998 8.94001L11.7266 12.6667L12.6666 11.7267L8.93998 8.00001L12.6666 4.27334Z" fill="currentColor" />\n</svg>\n`;const L='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;position:relative;--ic-input-label-helpertext-padding:var(--ic-space-xxs);--menu-max-height:100px;--border-color:var(--ic-select-field-border);--border-color-hover:var(--ic-select-field-border-hover);--border-color-pressed:var(--ic-select-field-border-pressed);--border-color-disabled:var(--ic-select-field-border-disabled);--border-color-error:var(--ic-select-field-border-error);--border-color-error-hover:var(--ic-select-field-border-error-hover);--border-color-error-pressed:var(--ic-select-field-border-error-pressed);--border-color-success:var(--ic-select-field-border-success);--border-color-success-hover:var(--ic-select-field-border-success-hover);--border-color-success-pressed:var(--ic-select-field-border-success-pressed);--border-color-warning:var(--ic-select-field-border-warning);--border-color-warning-hover:var(--ic-select-field-border-warning-hover);--border-color-warning-pressed:var(--ic-select-field-border-warning-pressed);--ic-input-label-text-color:var(--ic-select-field-labe);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle\n );--ic-input-validation-status-text-color:var(--ic-select-state-text);--ic-input-validation-error:var(--ic-select-state-icon-error);--ic-input-validation-warning-icon-color:var(--ic-select-state-icon-warning);--ic-input-validation-success-icon-color:var(--ic-select-state-icon-success);--menu-item-text-color:var(--ic-select-list-option-text);--menu-bg-color:var(--ic-select-list-option-background);--menu-border-color:var(--ic-select-dropdown-list-border)}:host(.ic-select-disabled){--ic-input-label-text-color:var(--ic-select-field-label-disabled);--ic-input-label-helper-text-color:var(\n --ic-select-input-field-label-subtitle-disabled\n )}:host(.ic-select-full-width){width:100%}ic-input-component-container.menu-open{--border-color:var(--ic-select-field-border-pressed)}ic-input-validation .status-icon,ic-input-validation .statustext{visibility:visible}ic-input-validation.menu-open .status-icon,ic-input-validation.menu-open .statustext{visibility:hidden;transition:visibility 0s}ic-input-label{margin-bottom:var(--ic-space-xs) !important}select{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-select-field-background);color:var(--ic-select-content-text);line-height:1.5rem;letter-spacing:0.005rem;width:100%;height:100%;padding-left:0.375rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 0.375rem center;background-image:var(--ic-select-mobile-dropdown-icon);caret-color:var(--ic-select-input-field-text-cursor)}select option,.select-option-selected{color:var(--ic-select-list-option-text)}select:disabled{color:var(--ic-select-content-text-disabled);background-image:var(--ic-select-mobile-dropdown-icon-disabled)}select:focus{border:0;outline:0}select:not([disabled]){cursor:pointer}.select-container{width:100%;display:flex;align-items:center;position:relative}.select-input{width:100%;height:100%;padding:0 0.375rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;background:none;border:none;background-color:var(--ic-select-field-background);color:var(--ic-select-content-text)}.select-input:focus{outline:none}.select-input[disabled]{pointer-events:none}:host(.ic-select-searchable) .select-input{cursor:auto}.select-input.with-clear-button{padding-right:0}.value-text{max-width:calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:0 !important}.value-text.with-clear-button{padding-right:calc(var(--ic-space-xl) + var(--ic-space-xs))}.searchable-select-container{align-items:center;display:flex;width:100%;position:relative}.expand-icon{height:var(--ic-space-lg);padding-left:var(--ic-space-xxs);color:var(--ic-select-expand-icon-color)}.expand-icon>svg{display:inline-block;width:var(--ic-space-lg);height:var(--ic-space-lg)}:host(.ic-select-disabled) .expand-icon,:host(.ic-select-disabled) .expand-icon>svg>path{color:var(--ic-select-disabled-expand-icon-color)}:host(.ic-select-searchable) .expand-icon{padding-left:0;height:2.25rem}:host(.ic-select-searchable) .expand-icon>svg{height:2.25rem;padding:0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs)}:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon>svg{cursor:pointer}.expand-icon-open{color:var(--ic-select-expand-icon-color)}.expand-icon-open,:host(.ic-select-searchable) .expand-icon-open{transform:rotateX(180deg)}:host(.ic-select-disabled) .value-text,.placeholder{color:var(--ic-select-content-placeholder-text)}.select-input-end{display:flex;align-items:center}.clear-button-container{display:flex;align-items:center}.divider{width:var(--ic-space-1px);background-color:var(--ic-select-content-divider);margin:var(--ic-space-xxs) 0;border-radius:var(--ic-space-1px);height:var(--ic-space-lg)}:host(.ic-select-small) .divider{height:var(--ic-space-md)}:host(.ic-select-large) .divider{height:var(--ic-space-xl)}.clear-button{color:var(--ic-select-clear-button);position:absolute;right:calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus,.clear-button:active{background-color:var(--ic-color-focus-inner);box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer);border-radius:0.25rem}.clear-button:focus,.clear-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button.searchable{position:static}.searchable-select-results-status,.multi-select-selected-count{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}::slotted([slot="icon"]){fill:var(--ic-select-content-placeholder-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-select-content-text)}.readonly ::slotted([slot="icon"]){padding:0.375rem;margin-bottom:0.75rem}@media (forced-colors: active){.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let z=0;const C=[...x,"tabindex","title"];const $=class{constructor(s){i(this,s);this.icBlur=t(this,"icBlur",7);this.icChange=t(this,"icChange",7);this.icClear=t(this,"icClear",7);this.icClose=t(this,"icClose",7);this.icFocus=t(this,"icFocus",7);this.icInput=t(this,"icInput",7);this.icOpen=t(this,"icOpen",7);this.icOptionSelect=t(this,"icOptionSelect",7);this.icOptionDeselect=t(this,"icOptionDeselect",7);this.icRetryLoad=t(this,"icRetryLoad",7);this.hasSetDefaultValue=false;this.inheritedAttributes={};this.initialOptionsEmpty=false;this.inputId=`ic-select-input-${z++}`;this.menuId=`${this.inputId}-menu`;this.searchableMenuItemSelected=false;this.ungroupedOptions=[];this.hostMutationObserver=null;this.hostMutationCallback=i=>{let t=false;i.forEach((({attributeName:i,type:e,addedNodes:s,removedNodes:l})=>{if(C.includes(i)){this.inheritedAttributes[i]=this.el.getAttribute(i);t=true}else if(e==="childList"){t=a(s,l,"icon")}}));if(t){e(this)}};this.handleRetry=i=>{var t;if(i.detail.keyPressed)(t=this.searchableSelectElement)===null||t===void 0?void 0:t.focus();this.blurredBecauseButtonPressed=true;this.retryButtonClick=true;this.hasSetDefaultValue=true;this.icRetryLoad.emit({value:this.searchable?this.searchableSelectInputValue:this.hiddenInputValue})};this.emitIcChange=i=>{if(this.multiple&&!Array.isArray(i)&&i!==null){this.handleMultipleSelectChange(String(i))}else{this.value=i}const t=this.multiple?this.value:i;this.icChange.emit({value:t})};this.emitIcInput=i=>{clearTimeout(this.debounceIcInput);this.debounceIcInput=window.setTimeout((()=>this.icInput.emit({value:i})),this.currDebounce)};this.deduplicateOptions=i=>{const t=[];const e=[];let s;i.forEach((i=>{if(i.children){s=[];i.children.forEach((i=>{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);s.push(i)}}));const l=Object.assign(Object.assign({},i),{children:s});e.push(l)}else{if(t.includes(i.value)){console.warn(`ic-select with label ${this.label} was populated with duplicate option (value: ${i.value}) which has been removed.`)}else{t.push(i.value);e.push(i)}}}));return e};this.setOptionsValuesFromLabels=()=>{var i;if(((i=this.options)===null||i===void 0?void 0:i.length)>0&&this.options.map){this.options.map((i=>{if(!i.value){i.value=i.label}}))}};this.setUngroupedOptions=i=>{this.ungroupedOptions=i.detail.options};this.setTextColor=()=>{if(this.nativeSelectElement.selectedIndex===0){this.nativeSelectElement.className="placeholder"}else{this.nativeSelectElement.className="select-option-selected"}};this.setMenuChange=i=>{if(this.open!==i){this.open=i}};this.getLabelFromValue=i=>h(i,this.uniqueOptions);this.getMultipleOptionsString=i=>{const t=i===null||i===void 0?void 0:i.map((i=>this.getLabelFromValue(i)));return t===null||t===void 0?void 0:t.join(", ")};this.getFilteredChildMenuOptions=i=>{let t=i.children;if(this.searchable){t=n(i.children,this.includeDescriptionsInSearch,this.searchableSelectInputValue,this.searchMatchPosition)}else{t=n(i.children,false,this.pressedCharacters,"start")}const e=Object.assign({},i);e.children=t;return e};this.getValueSortedByOptions=i=>{const t=i;const e=this.ungroupedOptions.map((i=>i.value));t.sort(((i,t)=>e.indexOf(i)-e.indexOf(t)));return t};this.handleNativeSelectChange=()=>{this.icOptionSelect.emit({value:this.nativeSelectElement.value});this.emitIcChange(this.nativeSelectElement.value);this.setTextColor()};this.handleCustomSelectChange=i=>{var t;const e=i.detail.value;if(i.detail.label===this.emptyOptionListText){if(this.searchable){this.searchableSelectElement.focus()}return}if(this.searchable){this.value=e;this.searchableMenuItemSelected=true;if(this.value===this.currValue){this.searchableSelectInputValue=this.getLabelFromValue(this.value)}this.inputValueToFilter=null;this.hiddenInputValue=this.getValueFromLabel(this.searchableSelectInputValue)}if(this.multiple&&((t=this.value)===null||t===void 0?void 0:t.includes(e))){this.icOptionDeselect.emit({value:e})}else{this.icOptionSelect.emit({value:e})}this.ariaActiveDescendant=i.detail.optionId;this.emitIcChange(e)};this.handleMultipleSelectChange=i=>{if(this.value){let t=this.value.slice();if(this.value.includes(i)){const e=t.indexOf(i);t.splice(e,1)}else{t.push(i);t=this.getValueSortedByOptions(t)}this.value=t.length===0?null:t}else{const t=[];t.push(i);this.value=t}};this.handleSelectAllChange=i=>{const t=i.detail.select;const e=this.ungroupedOptions.filter((i=>!i.disabled));const s=e.map((i=>i.value));let l;if(t){let i;if(this.value){i=s.filter((i=>this.value&&!this.value.includes(i)))}else{i=s}i.forEach((i=>this.icOptionSelect.emit({value:i})));l=s}else{this.value.forEach((i=>this.icOptionDeselect.emit({value:i})));l=null}this.emitIcChange(l)};this.handleMenuChange=i=>{this.open=i.detail.open;this.pressedCharacters="";this.searchable&&this.handleFocusIndicatorDisplay()};this.handleMenuKeyPress=i=>{i.cancelBubble=true;if(!this.multiple){this.handleCharacterKeyDown(i.detail.key)}};this.handleFocusIndicatorDisplay=()=>{const i=this.el.shadowRoot.querySelector(".focus-indicator");if(this.open){i.classList.add("focus-indicator-enabled")}else{i.classList.remove("focus-indicator-enabled")}};this.handleMouseDown=i=>{if(!this.open){i.preventDefault()}};this.isExternalFiltering=()=>this.searchable&&this.disableAutoFiltering;this.handleClick=i=>{var t;if(!this.open){if(this.isExternalFiltering()){this.menu.options=this.filteredOptions}else if(!this.hasTimedOut&&!this.loading&&!((t=this.noOptions)===null||t===void 0?void 0:t.length)&&(!this.searchable||this.searchableMenuItemSelected)){this.noOptions=null;this.menu.options=this.uniqueOptions}}if(i.detail!==0){this.menu.handleClickOpen()}};this.handleExpandIconMouseDown=i=>{if(!this.disabled){i.preventDefault();this.searchableSelectElement.focus();this.handleClick(i)}};this.handleClear=i=>{i.stopPropagation();this.hasTimedOut=false;clearTimeout(this.timeoutTimer);this.clearInput();this.emitIcChange(null);this.icClear.emit();if(this.searchable){this.hiddenInputValue=null;this.searchableSelectElement.focus()}else{this.customSelectElement.focus()}};this.handleCharacterKeyDown=i=>{if(this.open&&i===" "&&this.pressedCharacters.length===0&&!this.hasTimedOut&&!this.loading){this.setMenuChange(false)}if(i.length===1&&!this.searchable){window.clearTimeout(this.characterKeyPressTimer);this.characterKeyPressTimer=window.setTimeout((()=>this.pressedCharacters=""),1e3);if(!(i===" "&&!this.pressedCharacters)){this.pressedCharacters+=i;this.handleFilter();if(!this.noOptions){this.emitIcChange(this.filteredOptions[0].value)}}}else{this.pressedCharacters=""}};this.handleNativeSelectKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}this.handleCharacterKeyDown(i.key)};this.handleKeyDown=i=>{if(i.key!=="Escape"&&i.key!=="Tab"||this.open){i.cancelBubble=true}const t=i.key==="ArrowDown"||i.key==="ArrowUp";if(!this.open){if(this.isExternalFiltering()&&(i.key==="Enter"||t)){this.menu.options=this.filteredOptions}else{if(!this.hasTimedOut){this.noOptions=null;this.menu.options=this.uniqueOptions}}}if(this.open&&i.key==="Enter"){this.setMenuChange(false)}else{if(!(t&&this.noOptions!==null)){if(!(i.key===" "&&this.pressedCharacters.length>0)){this.menu.handleKeyboardOpen(i)}if(!this.multiple){this.handleCharacterKeyDown(i.key)}}}};this.handleClearButtonFocus=()=>{this.clearButtonFocused=true};this.handleClearButtonBlur=i=>{var t;const e=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");if(!(this.searchableSelectElement&&i.relatedTarget===this.searchableSelectElement)&&!(e&&i.relatedTarget===e)){this.setMenuChange(false);this.handleFocusIndicatorDisplay()}this.clearButtonFocused=false};this.handleFilter=()=>{var i;const t=this.deduplicateOptions(this.searchable?[...this.uniqueOptions]:this.ungroupedOptions);let e=false;let s=[];t.map((i=>{if(i.children)e=true}));let l;if(this.searchable){l=n(t,this.includeDescriptionsInSearch,this.inputValueToFilter,this.searchMatchPosition);this.searchableMenuItemSelected=false}else{l=n(t,false,this.pressedCharacters,"start")}if(!e&&((i=l[0])===null||i===void 0?void 0:i.label)!==this.emptyOptionListText){s=l}else if(e){t.map((i=>{if(this.includeGroupTitlesInSearch){if(l.indexOf(i)!==-1){s.push(i)}else{s.push(this.getFilteredChildMenuOptions(i))}}else{s.push(this.getFilteredChildMenuOptions(i))}}))}let o=false;if(e){o=true;s.map((i=>{if(i.children.length>0){o=false}}))}if(s.length>0&&!o){this.noOptions=null;this.filteredOptions=s}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.filteredOptions=this.noOptions}};this.triggerLoading=()=>{this.hasTimedOut=false;this.noOptions=[{label:this.loadingLabel,value:"",loading:true}];if(this.filteredOptions!==this.noOptions&&this.searchable){this.filteredOptions=this.noOptions}else if(this.uniqueOptions!==this.noOptions&&!this.searchable){this.uniqueOptions=this.noOptions}if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.loading=false;this.hasTimedOut=true;this.noOptions=[{label:this.loadingErrorLabel,value:"",timedOut:true}];this.filteredOptions=this.noOptions;if(!this.searchable)this.uniqueOptions=this.noOptions}),this.timeout)}};this.getValueFromLabel=i=>{var t;return(t=this.uniqueOptions.find((t=>t.label===i)))===null||t===void 0?void 0:t.value};this.handleSearchableSelectInput=i=>{this.searchableSelectInputValue=i.target.value;this.emitIcInput(this.searchableSelectInputValue);if(this.value!=null){this.emitIcChange(null)}this.hiddenInputValue=null;this.inputValueToFilter=this.searchableSelectInputValue;this.setMenuChange(true);if(!this.disableAutoFiltering){this.handleFilter();this.debounceAriaLiveUpdate()}};this.updateSearchableSelectResultAriaLive=()=>{const i=this.el.shadowRoot.querySelector(".searchable-select-results-status");if(i){if(this.noOptions!==null){i.innerText=this.emptyOptionListText}else{i.innerText=""}}};this.updateMultiSelectedCountAriaLive=()=>{var i;const t=this.el.shadowRoot.querySelector(".multi-select-selected-count");const e=`${(i=this.currValue)===null||i===void 0?void 0:i.length} of ${r(this.options)} selected`;if(t&&t.innerText!==e){t.innerText=e}};this.getDefaultValue=i=>this.getLabelFromValue(i)||i||null;this.setDefaultValue=()=>{if(!this.hasSetDefaultValue&&this.currValue){this.searchableSelectInputValue=this.searchable&&this.getDefaultValue(this.currValue);this.initialValue=this.currValue;this.hasSetDefaultValue=true}};this.onFocus=()=>{this.icFocus.emit()};this.onBlur=({relatedTarget:i})=>{var t;const e=i;if(e!==null&&(e.tagName==="UL"&&e.className.includes("menu")||e.tagName==="LI"&&e.className.includes("option"))){return}const s=(t=this.menu)===null||t===void 0?void 0:t.querySelector("#retry-button");const l=this.searchable&&!!this.menu&&e!==this.menu&&!Array.from(this.menu.querySelectorAll("[role='option']")).includes(e)&&!(this.clearButton&&e===this.clearButton)&&!(s&&e===s);if(l){if(!this.retryButtonClick){this.setMenuChange(false);if(!this.value){this.clearInput()}}this.handleFocusIndicatorDisplay()}this.retryButtonClick=false;this.icBlur.emit()};this.onTimeoutBlur=i=>{if(i.detail.ev.relatedTarget!==this.searchableSelectElement&&!this.blurredBecauseButtonPressed){this.setMenuChange(false);this.handleFocusIndicatorDisplay();this.icBlur.emit()}this.blurredBecauseButtonPressed=false};this.handleFormReset=()=>{this.value=this.initialValue;if(this.searchable){this.searchableSelectInputValue=this.getDefaultValue(this.value);this.hiddenInputValue=this.value}};this.clearInput=()=>{this.noOptions=null;if(this.searchable){this.searchableSelectElement.value=null;this.searchableSelectInputValue=null;this.filteredOptions=this.uniqueOptions}};this.ariaActiveDescendant=undefined;this.clearButtonFocused=false;this.debounceIcInput=undefined;this.hiddenInputValue=undefined;this.noOptions=null;this.open=false;this.pressedCharacters="";this.searchableSelectInputValue=null;this.disabled=false;this.disableAutoFiltering=false;this.emptyOptionListText="No results found";this.form=undefined;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.includeDescriptionsInSearch=false;this.includeGroupTitlesInSearch=false;this.label=undefined;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.multiple=false;this.name=this.inputId;this.placeholder="Select an option";this.readonly=false;this.required=false;this.searchable=false;this.searchMatchPosition="anywhere";this.selectOnEnter=false;this.showClearButton=false;this.size="medium";this.timeout=undefined;this.theme="inherit";this.validationStatus="";this.validationText="";this.loading=false;this.options=[];this.filteredOptions=this.options;this.uniqueOptions=this.options;this.debounce=0;this.currDebounce=this.debounce;this.value=undefined;this.initialValue=this.value;this.inputValueToFilter=this.value;this.currValue=this.value}watchDisabledHandler(){c(this.disabled,this.el)}loadingHandler(i){i&&this.triggerLoading()}watchOptionsHandler(){var i;if(!this.hasTimedOut&&this.options!==this.noOptions){this.loading=false;clearTimeout(this.timeoutTimer);if(this.isExternalFiltering()){if(((i=this.options)===null||i===void 0?void 0:i.length)>0){this.setOptionsValuesFromLabels();this.noOptions=null;this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions}else{this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}this.updateSearchableSelectResultAriaLive();this.setDefaultValue()}else{this.setOptionsValuesFromLabels();this.uniqueOptions=this.deduplicateOptions(this.options);this.filteredOptions=this.uniqueOptions;if(this.initialOptionsEmpty){this.setDefaultValue();this.initialOptionsEmpty=false}}}else{if(!this.searchable){this.options=this.noOptions}}}debounceChangedHandler(i){this.updateOnChangeDebounce(i)}valueChangedHandler(){if(this.value!==this.currValue){if(this.value&&this.multiple){this.currValue=this.getValueSortedByOptions(this.value);this.updateMultiSelectedCountAriaLive()}else{this.currValue=this.value}}if(this.searchable&&this.value){this.searchableSelectInputValue=this.getLabelFromValue(String(this.currValue))||this.currValue}}openChangedHandler(){this.open?this.icOpen.emit():this.icClose.emit()}disconnectedCallback(){var i;d(this.el,this.handleFormReset);(i=this.hostMutationObserver)===null||i===void 0?void 0:i.disconnect()}componentWillLoad(){var i;this.inheritedAttributes=u(this.el,C);c(this.disabled,this.el);this.setOptionsValuesFromLabels();p(this.el,this.handleFormReset);if(!((i=this.options)===null||i===void 0?void 0:i.length)){this.initialOptionsEmpty=true;this.noOptions=[{label:this.emptyOptionListText,value:""}];this.uniqueOptions=this.noOptions;this.filteredOptions=this.noOptions}else{this.setDefaultValue();this.uniqueOptions=this.deduplicateOptions(this.options)}}componentDidLoad(){b([{prop:this.label,propName:"label"}],"Select");if(this.loading){this.triggerLoading()}this.hiddenInputValue=this.searchable&&this.currValue;this.hostMutationObserver=new MutationObserver(this.hostMutationCallback);this.hostMutationObserver.observe(this.el,{attributes:true,childList:true})}componentDidRender(){if(this.nativeSelectElement&&!this.disabled){this.setTextColor()}}async setFocus(){if(this.nativeSelectElement){this.nativeSelectElement.focus()}else if(this.customSelectElement){this.customSelectElement.focus()}else if(this.searchableSelectElement){this.searchableSelectElement.focus()}}updateOnChangeDebounce(i){if(this.currDebounce!==i){this.currDebounce=i}}debounceAriaLiveUpdate(){clearTimeout(this.debounceAria);window.setTimeout((()=>{this.updateSearchableSelectResultAriaLive()}),800)}render(){const{size:i,disabled:t,fullWidth:e,helperText:o,hideLabel:a,label:h,menuId:n,multiple:c,name:d,options:u,placeholder:p,readonly:b,required:x,searchable:L,showClearButton:z,validationStatus:C,validationText:$,currValue:H,theme:T}=this;f(true,this.el,d,this.searchable?this.hiddenInputValue:H,t);const O=`${C===w.Error}`;const M=v(this.inputId,o!=="",m(this.validationStatus,this.disabled)).trim();let B=!!this.el.querySelector(`[slot="icon"]`);if(B&&(t||b&&!this.value)){B=false}const D=`${H===null||H===void 0?void 0:H.length} of ${r(this.options)} selected`;return s(l,{class:{"ic-select-disabled":t,"ic-select-searchable":L,[`ic-select-${i}`]:i!=="medium","ic-select-full-width":e,[`ic-theme-${T}`]:T!=="inherit"},onBlur:this.onBlur},s("ic-input-container",{readonly:b},!a&&s("ic-input-label",{for:this.inputId,label:h,helperText:o,required:x,disabled:t,readonly:b}),s("ic-input-component-container",{ref:i=>this.anchorEl=i,class:{"menu-open":this.open},size:i,fullWidth:e,disabled:t,readonly:b,validationStatus:C},B&&s("span",{slot:"left-icon",class:{["readonly"]:b,["has-value"]:!!this.value}},s("slot",{name:"icon"})),b?s("ic-typography",null,s("p",null,c?this.getMultipleOptionsString(H):this.getLabelFromValue(H))):g()&&!c?s("select",Object.assign({ref:i=>this.nativeSelectElement=i,disabled:t,onChange:this.handleNativeSelectChange,required:x,id:this.inputId,"aria-label":h,"aria-describedby":M,"aria-invalid":O,onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.handleNativeSelectKeyDown,form:this.form},this.inheritedAttributes),s("option",{value:"",selected:true,disabled:!z},p),u.map((i=>{if(i.children){return s("optgroup",{label:i.label},i.children.map((i=>s("option",{value:i.value,disabled:i.disabled,selected:i.value===H},i.label))))}else{return s("option",{value:i.value,disabled:i.disabled,selected:i.value===H},i.label)}}))):L?s("div",{class:"searchable-select-container"},s("input",{class:{"select-input":true,"with-clear-button":!!this.searchableSelectInputValue},role:"combobox",autocomplete:"off","aria-label":h,"aria-describedby":M,"aria-activedescendant":this.ariaActiveDescendant,"aria-autocomplete":"list","aria-expanded":`${this.open}`,"aria-invalid":O,"aria-required":`${x}`,"aria-controls":n,ref:i=>this.searchableSelectElement=i,id:this.inputId,value:this.searchableSelectInputValue,placeholder:p,disabled:t,onInput:this.handleSearchableSelectInput,onClick:this.handleClick,onKeyDown:this.handleKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,form:this.form}),this.searchableSelectInputValue&&(z||L)&&s("div",{class:"clear-button-container"},s("ic-button",{id:"clear-button",ref:i=>this.clearButton=i,"aria-label":this.searchableSelectInputValue&&H===null?"Clear input":"Clear selection",class:"clear-button",innerHTML:k,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}),s("div",{class:"divider"})),s("span",{onMouseDown:this.handleExpandIconMouseDown,class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:y,"aria-hidden":"true"}),s("div",{"aria-live":"polite",role:"status",class:"searchable-select-results-status"})):s("div",{class:"select-container"},s("button",{class:"select-input",ref:i=>this.customSelectElement=i,id:this.inputId,"aria-label":`${h}, ${(c&&H?`${D}, ${this.getMultipleOptionsString(H)}`:this.getLabelFromValue(H))||p}${x?", required":""}`,"aria-describedby":M,"aria-invalid":O,"aria-haspopup":"listbox","aria-expanded":this.open?"true":"false","aria-owns":n,"aria-controls":n,disabled:t,onBlur:this.onBlur,onFocus:this.onFocus,onClick:this.handleClick,onMouseDown:this.handleMouseDown,onKeyDown:this.handleKeyDown},s("ic-typography",{variant:"body",class:{"value-text":true,"with-clear-button":H&&z,placeholder:!this.value||c&&this.value.length<1}},(c?this.getMultipleOptionsString(H):this.getLabelFromValue(H))||p),s("div",{class:"select-input-end"},H&&z&&s("div",{class:"divider"}),s("span",{class:{"expand-icon":true,"expand-icon-open":this.open},innerHTML:y,"aria-hidden":"true"}))),H&&z&&s("ic-button",{id:"clear-button","aria-label":"Clear selection",class:"clear-button",innerHTML:k,onClick:this.handleClear,onFocus:this.handleClearButtonFocus,onBlur:this.handleClearButtonBlur,size:i,variant:"icon",theme:this.clearButtonFocused?"light":"dark"}))),(!g()||c)&&s("ic-menu",{class:{"no-results":this.loading||this.hasTimedOut||this.noOptions!==null&&this.noOptions[0]&&this.noOptions[0].label===this.emptyOptionListText},ref:i=>this.menu=i,inputEl:L?this.searchableSelectElement:this.customSelectElement,inputLabel:h,anchorEl:this.anchorEl,size:i,menuId:n,open:this.open,options:L?this.filteredOptions:this.uniqueOptions,value:c?H:H,fullWidth:e,selectOnEnter:this.selectOnEnter,onMenuStateChange:this.handleMenuChange,onMenuOptionSelect:this.handleCustomSelectChange,onMenuOptionSelectAll:this.handleSelectAllChange,onMenuKeyPress:this.handleMenuKeyPress,onUngroupedOptionsSet:this.setUngroupedOptions,onRetryButtonClicked:this.handleRetry,parentEl:this.el,onTimeoutBlur:this.onTimeoutBlur,activationType:this.searchable||c||this.selectOnEnter?"manual":"automatic",closeOnSelect:!c}),this.multiple&&s("div",{"aria-live":"polite",role:"status",class:"multi-select-selected-count"}),m(this.validationStatus,this.disabled)&&s("ic-input-validation",{class:{"menu-open":this.open},ariaLiveMode:"polite",status:C,message:$,for:this.inputId})))}static get delegatesFocus(){return true}get el(){return o(this)}static get watchers(){return{disabled:["watchDisabledHandler"],loading:["loadingHandler"],options:["watchOptionsHandler"],debounce:["debounceChangedHandler"],value:["valueChangedHandler"],open:["openChangedHandler"]}}};$.style=L;export{$ as ic_select};
2
- //# sourceMappingURL=p-116875ae.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSelectCss","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","this","hasSetDefaultValue","inheritedAttributes","initialOptionsEmpty","inputId","menuId","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","includes","el","getAttribute","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","blurredBecauseButtonPressed","retryButtonClick","icRetryLoad","emit","value","searchable","searchableSelectInputValue","hiddenInputValue","emitIcChange","multiple","Array","isArray","handleMultipleSelectChange","String","valueToEmit","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","currDebounce","deduplicateOptions","options","uniqueValues","dedupedOptions","dedupedChildren","option","children","child","console","warn","label","push","modifiedParent","Object","assign","setOptionsValuesFromLabels","length","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","selectedIndex","className","setMenuChange","open","getLabelFromValue","uniqueOptions","getMultipleOptionsString","selectedValues","selectedLabels","join","getFilteredChildMenuOptions","getFilteredMenuOptions","includeDescriptionsInSearch","searchMatchPosition","pressedCharacters","newOption","getValueSortedByOptions","valueArray","valuesFromAllOptions","sort","a","b","indexOf","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","emptyOptionListText","currValue","inputValueToFilter","getValueFromLabel","icOptionDeselect","ariaActiveDescendant","optionId","slice","valueIndex","splice","handleSelectAllChange","selectAllOptions","select","allEnabledOptions","filter","disabled","allValues","newValue","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","isExternalFiltering","disableAutoFiltering","handleClick","menu","filteredOptions","hasTimedOut","loading","noOptions","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","timeoutTimer","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","handleKeyboardOpen","handleClearButtonFocus","clearButtonFocused","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","newFilteredOptions","menuOptionsFiltered","includeGroupTitlesInSearch","noChildOptionsWhenFiltered","triggerLoading","loadingLabel","timeout","loadingErrorLabel","timedOut","find","handleSearchableSelectInput","target","debounceAriaLiveUpdate","updateSearchableSelectResultAriaLive","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","setDefaultValue","initialValue","onFocus","icFocus","onBlur","tagName","isSearchableAndNoFocusedInternalElements","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","debounce","watchDisabledHandler","removeDisabledFalse","loadingHandler","watchOptionsHandler","debounceChangedHandler","updateOnChangeDebounce","valueChangedHandler","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","debounceAria","render","size","fullWidth","helperText","hideLabel","name","placeholder","readonly","required","showClearButton","validationStatus","validationText","theme","renderHiddenInput","invalid","IcInformationStatus","Error","describedBy","getInputDescribedByText","hasValidationStatus","trim","showLeftIcon","optionsSelectedCount","h","Host","class","for","ref","anchorEl","slot","isMobileOrTablet","onChange","id","onKeyDown","form","selected","role","autocomplete","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","inputEl","inputLabel","selectOnEnter","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xxs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-labe);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs) !important;\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n:host(.ic-select-disabled) .value-text,\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport { IcOptionSelectEventDetail } from \"../ic-menu/ic-menu.types\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private anchorEl: HTMLElement;\n private blurredBecauseButtonPressed: boolean;\n private characterKeyPressTimer: number;\n private clearButton: HTMLIcButtonElement;\n private customSelectElement: HTMLButtonElement;\n private debounceAria: number;\n private hasSetDefaultValue = false;\n private hasTimedOut: boolean;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement: HTMLSelectElement;\n private retryButtonClick: boolean;\n private searchableMenuItemSelected: boolean = false;\n private searchableSelectElement: HTMLInputElement;\n private timeoutTimer: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant: string;\n @State() clearButtonFocused: boolean = false;\n @State() debounceIcInput: number;\n @State() hiddenInputValue: string;\n @State() noOptions: IcMenuOption[] = null;\n @State() open: boolean = false;\n @State() pressedCharacters: string = \"\";\n @State() searchableSelectInputValue: string = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering?: boolean = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch?: boolean = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch?: boolean = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel?: string = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel?: string = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple?: boolean = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name?: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder?: string = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable?: boolean = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition?: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter?: boolean = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton?: boolean = false;\n\n /**\n * The size of the select.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText?: string = \"\";\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading?: boolean = false;\n\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n newValue && this.triggerLoading();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options?: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options;\n @State() uniqueOptions: IcMenuOption[] = this.options;\n\n @Watch(\"options\")\n watchOptionsHandler(): void {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (this.isExternalFiltering()) {\n // When searchable select\n if (this.options?.length > 0) {\n this.setOptionsValuesFromLabels();\n this.noOptions = null;\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n }\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n this.filteredOptions = this.uniqueOptions;\n if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n }\n } else {\n if (!this.searchable) {\n this.options = this.noOptions;\n }\n }\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce?: number = 0;\n @State() currDebounce = this.debounce;\n\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n this.updateOnChangeDebounce(newValue);\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value?: string | string[];\n @State() initialValue = this.value;\n @State() inputValueToFilter = this.value as string;\n @State() currValue = this.value;\n\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getValueSortedByOptions(this.value as string[]);\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.value;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) ||\n (this.currValue as string);\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcValueEventDetail>;\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options?.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n this.hiddenInputValue = this.searchable && (this.currValue as string);\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private updateOnChangeDebounce(newValue: number) {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n this.handleMultipleSelectChange(String(value));\n } else {\n this.value = value;\n }\n\n const valueToEmit = this.multiple ? this.value : value;\n this.icChange.emit({ value: valueToEmit });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n let dedupedChildren: IcMenuOption[];\n\n options.forEach((option: IcMenuOption) => {\n if (option.children) {\n //If an option has children, we will loop through them\n dedupedChildren = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n const modifiedParent: IcMenuOption = {\n ...option,\n children: dedupedChildren,\n };\n dedupedOptions.push(modifiedParent);\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = (): void => {\n if (this.options?.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent): void => {\n this.ungroupedOptions = event.detail.options;\n };\n\n private setTextColor = (): void => {\n if (this.nativeSelectElement.selectedIndex === 0) {\n this.nativeSelectElement.className = \"placeholder\";\n } else {\n this.nativeSelectElement.className = \"select-option-selected\";\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string): string | undefined => {\n return getLabelFromValue(value, this.uniqueOptions);\n };\n\n private getMultipleOptionsString = (selectedValues: string[]) => {\n const selectedLabels = selectedValues?.map((value) =>\n this.getLabelFromValue(value)\n );\n return selectedLabels?.join(\", \");\n };\n\n private getFilteredChildMenuOptions = (option: IcMenuOption) => {\n let children = option.children;\n\n if (this.searchable) {\n children = getFilteredMenuOptions(\n option.children,\n this.includeDescriptionsInSearch,\n this.searchableSelectInputValue,\n this.searchMatchPosition\n );\n } else {\n children = getFilteredMenuOptions(\n option.children,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n const newOption = { ...option };\n newOption.children = children;\n return newOption;\n };\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = (): void => {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (event: CustomEvent): void => {\n const value = event.detail.value;\n\n if (event.detail.label === this.emptyOptionListText) {\n if (this.searchable) {\n this.searchableSelectElement.focus();\n }\n return;\n }\n\n if (this.searchable) {\n this.value = value;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue = this.getLabelFromValue(\n this.value as string\n );\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue = this.getValueFromLabel(\n this.searchableSelectInputValue\n );\n }\n\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n\n this.ariaActiveDescendant = event.detail.optionId;\n this.emitIcChange(value);\n };\n\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n private handleMultipleSelectChange = (value: string) => {\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n const valueIndex = valueArray.indexOf(value);\n valueArray.splice(valueIndex, 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n const valueArray = [];\n valueArray.push(value);\n this.value = valueArray;\n }\n };\n\n private handleSelectAllChange = (event: CustomEvent) => {\n const selectAllOptions = event.detail.select;\n const allEnabledOptions = this.ungroupedOptions.filter(\n (option) => !option.disabled\n );\n const allValues = allEnabledOptions.map((option) => option.value);\n let newValue: string[];\n\n if (selectAllOptions) {\n let unselectedValues;\n\n // Only emit icOptionSelect for all values that are newly selected\n if (this.value) {\n unselectedValues = allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n );\n } else {\n unselectedValues = allValues;\n }\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n newValue = allValues;\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n newValue = null;\n }\n\n this.emitIcChange(newValue);\n };\n\n private handleMenuChange = (event: CustomEvent): void => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n this.searchable && this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator = this.el.shadowRoot.querySelector(\".focus-indicator\");\n\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n };\n\n private handleMouseDown = (event: Event): void => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = (): boolean =>\n this.searchable && this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent): void => {\n if (!this.open) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event): void => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement.focus();\n } else {\n this.customSelectElement.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (\n this.open &&\n key === \" \" &&\n this.pressedCharacters.length === 0 &&\n !this.hasTimedOut &&\n !this.loading\n ) {\n this.setMenuChange(false);\n }\n\n if (key.length === 1 && !this.searchable) {\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (!(key === \" \" && !this.pressedCharacters)) {\n this.pressedCharacters += key;\n this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n } else {\n this.pressedCharacters = \"\";\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (!this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else {\n if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!(isArrowKey && this.noOptions !== null)) {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n // Keyboard events get passed onto ic-menu\n this.menu.handleKeyboardOpen(event);\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = (): void => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent): void => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n !(\n this.searchableSelectElement &&\n ev.relatedTarget === this.searchableSelectElement\n ) &&\n !(retryButton && ev.relatedTarget === retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = (): void => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n let isGrouped = false;\n let newFilteredOptions: IcMenuOption[] = [];\n\n options.map((option) => {\n if (option.children) isGrouped = true;\n });\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n this.includeDescriptionsInSearch,\n this.inputValueToFilter,\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n options.map((option) => {\n if (this.includeGroupTitlesInSearch) {\n if (menuOptionsFiltered.indexOf(option) !== -1) {\n newFilteredOptions.push(option);\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n } else {\n newFilteredOptions.push(this.getFilteredChildMenuOptions(option));\n }\n });\n }\n\n let noChildOptionsWhenFiltered = false;\n\n if (isGrouped) {\n noChildOptionsWhenFiltered = true;\n newFilteredOptions.map((option) => {\n if (option.children.length > 0) {\n noChildOptionsWhenFiltered = false;\n }\n });\n }\n\n if (newFilteredOptions.length > 0 && !noChildOptionsWhenFiltered) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string): string | undefined => {\n return this.uniqueOptions.find((option) => option.label === label)?.value;\n };\n\n private handleSearchableSelectInput = (event: Event): void => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n this.debounceAriaLiveUpdate();\n }\n };\n\n private updateSearchableSelectResultAriaLive = (): void => {\n const searchableSelectResultsStatusEl = this.el.shadowRoot.querySelector(\n \".searchable-select-results-status\"\n ) as HTMLDivElement;\n\n if (searchableSelectResultsStatusEl) {\n if (this.noOptions !== null) {\n searchableSelectResultsStatusEl.innerText = this.emptyOptionListText;\n } else {\n searchableSelectResultsStatusEl.innerText = \"\";\n }\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n\n private updateMultiSelectedCountAriaLive = (): void => {\n const multiSelectSelectedCountEl = this.el.shadowRoot.querySelector(\n \".multi-select-selected-count\"\n ) as HTMLDivElement;\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string): string | null =>\n this.getLabelFromValue(value) || value || null;\n\n private setDefaultValue = (): void => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue =\n this.searchable && this.getDefaultValue(this.currValue as string);\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = (): void => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent): void => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n const isSearchableAndNoFocusedInternalElements =\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n !(this.clearButton && target === this.clearButton) &&\n !(retryButton && target === retryButton);\n\n if (isSearchableAndNoFocusedInternalElements) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = (): void => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement.value = null;\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationStatus,\n validationText,\n currValue,\n theme,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n true,\n this.el,\n name,\n this.searchable ? this.hiddenInputValue : (currValue as string),\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const describedBy = getInputDescribedByText(\n this.inputId,\n helperText !== \"\",\n hasValidationStatus(this.validationStatus, this.disabled)\n ).trim();\n\n let showLeftIcon = !!this.el.querySelector(`[slot=\"icon\"]`);\n if (showLeftIcon && (disabled || (readonly && !this.value))) {\n showLeftIcon = false;\n }\n\n const optionsSelectedCount = `${\n currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={this.inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n ></ic-input-label>\n )}\n <ic-input-component-container\n ref={(el: HTMLElement) => (this.anchorEl = el)}\n class={{ \"menu-open\": this.open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {showLeftIcon && (\n <span\n slot=\"left-icon\"\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: !!this.value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {readonly ? (\n <ic-typography>\n <p>\n {multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)}\n </p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={this.inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={this.form}\n {...this.inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) => {\n if (option.children) {\n return (\n <optgroup label={option.label}>\n {option.children.map((option) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n ))}\n </optgroup>\n );\n } else {\n return (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === currValue}\n >\n {option.label}\n </option>\n );\n }\n })}\n </select>\n ) : searchable ? (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"select-input\": true,\n \"with-clear-button\": !!this.searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${this.open}`}\n aria-invalid={invalid}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={this.inputId}\n value={this.searchableSelectInputValue}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={this.form}\n ></input>\n {this.searchableSelectInputValue &&\n (showClearButton || searchable) && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el: HTMLIcButtonElement) =>\n (this.clearButton = el)\n }\n aria-label={\n this.searchableSelectInputValue && currValue === null\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={this.inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${optionsSelectedCount}, ${this.getMultipleOptionsString(\n currValue as string[]\n )}`\n : this.getLabelFromValue(currValue as string)) ||\n placeholder\n }${required ? \", required\" : \"\"}`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={this.open ? \"true\" : \"false\"}\n aria-owns={menuId}\n aria-controls={menuId}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": currValue && showClearButton,\n placeholder:\n !this.value || (multiple && this.value.length < 1),\n }}\n >\n {(multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string)) ||\n placeholder}\n </ic-typography>\n <div class=\"select-input-end\">\n {currValue && showClearButton && (\n <div class=\"divider\"></div>\n )}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": this.open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {currValue && showClearButton && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon\"\n theme={this.clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n this.loading ||\n this.hasTimedOut ||\n (this.noOptions !== null &&\n this.noOptions[0] &&\n this.noOptions[0].label === this.emptyOptionListText),\n }}\n ref={(el: HTMLIcMenuElement) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={this.open}\n options={searchable ? this.filteredOptions : this.uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={this.selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n this.searchable || multiple || this.selectOnEnter\n ? \"manual\"\n : \"automatic\"\n }\n closeOnSelect={!multiple}\n ></ic-menu>\n )}\n {this.multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\n )}\n {hasValidationStatus(this.validationStatus, this.disabled) && (\n <ic-input-validation\n class={{ \"menu-open\": this.open }}\n ariaLiveMode=\"polite\"\n status={validationStatus}\n message={validationText}\n for={this.inputId}\n ></ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icAccordionCss","accordionIds","Accordion","this","accordionId","CONTENT_VISIBILITY_PROPERTY","toggleExpanded","expanded","accordionClicked","emit","id","setAccordionAnimation","el","duration","property","delay","style","transitionDuration","transitionProperty","transitionDelay","setExpandedContentStyle","ev","expandedContent","propertyName","clientHeight","classList","add","height","hideExpandedContent","setProperty","animateExpandedContent","elementHeight","expandedContentEl","scrollHeight","addEventListener","e","remove","watchDisabledHandler","removeDisabledFalse","disabled","handleExpandedWatch","setFocus","accordionBtnHeading","focus","componentWillLoad","disconnectedCallback","removeEventListener","componentDidLoad","render","size","theme","h","Host","class","ref","tabindex","onClick","isSlotUsed","name","variant","innerHTML","chevronIcon","role","message"],"sources":["src/components/ic-accordion/ic-accordion.css?tag=ic-accordion&encapsulation=shadow","src/components/ic-accordion/ic-accordion.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n border-bottom: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:host .expand-chevron {\n color: var(--ic-accordion-chevron);\n}\n\n:host(.ic-accordion-disabled) .expand-chevron {\n color: var(--ic-accordion-chevron-disabled);\n}\n\n.section-button.small {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n}\n\n.section-button.large {\n padding: var(--ic-space-sm) var(--ic-space-xs);\n}\n\n:host(:first-of-type) {\n border-top: var(--ic-space-1px) solid var(--ic-accordion-divider);\n}\n\n:focus {\n outline: none;\n}\n\n.section-button {\n background-color: transparent;\n display: flex;\n align-items: center;\n width: 100%;\n padding: var(--ic-space-xs);\n font-weight: var(--ic-font-weight-bold);\n border: none;\n}\n\n.section-header {\n --ic-typography-color: var(--ic-accordion-heading-text);\n color: var(--ic-accordion-heading-text);\n text-align: left;\n flex: 1 0;\n}\n\n:host(.ic-accordion-disabled) .section-header {\n --ic-typography-color: var(--ic-accordion-heading-text-disabled);\n color: var(--ic-accordion-heading-text-disabled);\n}\n\nbutton:hover {\n background-color: var(--ic-accordion-background-hover);\n cursor: pointer;\n}\n\nbutton:active {\n background-color: var(--ic-accordion-background-pressed);\n}\n\nbutton:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n transition: var(--ic-transition-duration-fast);\n}\n\nbutton:disabled {\n pointer-events: none;\n}\n\n.icon-container {\n margin: 0 var(--ic-space-xs) 0 0;\n display: flex;\n align-items: center;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n color: var(--ic-accordion-icon);\n}\n\n:host(.ic-accordion-disabled) .icon-container {\n color: var(--ic-accordion-icon-disabled);\n}\n\n::slotted(svg) {\n width: var(--ic-space-md);\n height: var(--ic-space-md);\n}\n\n.expand-chevron {\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n margin-left: calc(var(--ic-space-xl) + var(--ic-space-xs));\n transform: rotate(90deg);\n justify-self: end;\n}\n\n.content-expanded-chevron {\n transform: rotate(-90deg);\n}\n\n.expanded-content {\n --ic-typography-color: var(--ic-accordion-body-text);\n color: var(--ic-accordion-body-text);\n height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n visibility: var(--ic-expanded-content-visibility, hidden);\n}\n\n.expanded-content-inner {\n padding: var(--ic-space-xs);\n}\n\n.expanded-content-opened {\n overflow: visible;\n}\n\n@media (forced-colors: active) {\n button:focus {\n border: var(--ic-border-hc) !important;\n }\n}\n","import {\n Component,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n Host,\n Watch,\n Method,\n} from \"@stencil/core\";\nimport { isSlotUsed, removeDisabledFalse } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nimport { IcSizes, IcThemeMode } from \"../../utils/types\";\n\nlet accordionIds = 0;\n\n/**\n * @slot heading - Content is placed as the accordion heading.\n * @slot icon - Content is placed to the left of the heading.\n */\n\n@Component({\n tag: \"ic-accordion\",\n styleUrl: \"ic-accordion.css\",\n shadow: true,\n})\nexport class Accordion {\n private accordionId = `ic-accordion-${accordionIds++}`;\n private expandedContentEl: HTMLDivElement;\n private accordionBtnHeading: HTMLButtonElement;\n private CONTENT_VISIBILITY_PROPERTY = \"--ic-expanded-content-visibility\";\n\n @Element() el: HTMLIcAccordionElement;\n\n /**\n * If `true`, the accordion will be disabled.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the accordion appears expanded.\n */\n @Prop({ mutable: true }) expanded: boolean = false;\n\n /**\n * The section header outlining section content.\n */\n @Prop() heading?: string = \"\";\n\n /**\n * The main body message of the accordion.\n */\n @Prop() message?: string = \"\";\n\n /**\n * The size of the accordion.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * @internal Emitted when accordion is clicked.\n */\n @Event() accordionClicked: EventEmitter<{ id: string }>;\n\n // Every time expanded is set via toggleExpanded or accordionGroup, animate to open or close\n @Watch(\"expanded\")\n handleExpandedWatch(): void {\n this.animateExpandedContent();\n }\n\n /**\n * Sets focus on accordion heading.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.accordionBtnHeading) {\n this.accordionBtnHeading.focus();\n }\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n disconnectedCallback(): void {\n if (this.expandedContentEl) {\n this.expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.setExpandedContentStyle(e, this.expandedContentEl),\n true\n );\n this.expandedContentEl.removeEventListener(\n \"transitionend\",\n (e) => this.hideExpandedContent(e, this.expandedContentEl),\n true\n );\n }\n }\n\n componentDidLoad(): void {\n // So accordion opens by default if expanded set to true\n if (this.expanded) {\n this.expandedContentEl.style.height = \"auto\";\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n }\n }\n\n private toggleExpanded = (): void => {\n this.expanded = !this.expanded;\n this.accordionClicked.emit({ id: this.accordionId });\n };\n\n // Set accordion animation\n private setAccordionAnimation = (\n el: HTMLElement,\n duration: string,\n property: string,\n delay: string\n ) => {\n el.style.transitionDuration = `${duration}ms`;\n el.style.transitionProperty = property;\n el.style.transitionDelay = delay;\n };\n\n private setExpandedContentStyle = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight > 0) {\n expandedContent.classList.add(\"expanded-content-opened\");\n expandedContent.style.height = \"auto\";\n }\n };\n\n private hideExpandedContent = (\n ev: TransitionEvent,\n expandedContent: HTMLDivElement\n ) => {\n if (ev.propertyName === \"height\" && expandedContent.clientHeight === 0) {\n expandedContent.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"hidden\"\n );\n }\n };\n\n private animateExpandedContent = () => {\n const elementHeight = this.expandedContentEl.scrollHeight;\n if (elementHeight > 0 && this.expanded) {\n this.expandedContentEl.style.setProperty(\n this.CONTENT_VISIBILITY_PROPERTY,\n \"visible\"\n );\n this.expandedContentEl.style.height = `${elementHeight}px`;\n this.setAccordionAnimation(\n this.expandedContentEl,\n \"300\",\n \"height\",\n \"ease-out\"\n );\n\n this.expandedContentEl.addEventListener(\n \"transitionend\",\n (e: TransitionEvent) => {\n this.setExpandedContentStyle(e, this.expandedContentEl);\n }\n );\n } else if (!this.expanded) {\n this.expandedContentEl.style.height = `${this.expandedContentEl.scrollHeight}px`;\n if (this.expandedContentEl.scrollHeight > 0 && !this.expanded) {\n this.expandedContentEl.style.height = \"0\";\n this.setAccordionAnimation(\n this.expandedContentEl,\n \"300\",\n \"height\",\n \"ease-in\"\n );\n this.expandedContentEl.classList.remove(\"expanded-content-opened\");\n }\n this.expandedContentEl.addEventListener(\"transitionend\", (e) => {\n this.hideExpandedContent(e, this.expandedContentEl);\n });\n }\n };\n\n render() {\n const { size, disabled, expanded, theme } = this;\n return (\n <Host\n id={this.accordionId}\n class={{\n [\"ic-accordion-disabled\"]: disabled,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n aria-disabled={disabled ? \"true\" : \"false\"}\n >\n <button\n ref={(el) => (this.accordionBtnHeading = el)}\n id={`${this.accordionId}-button`}\n disabled={disabled}\n tabindex={disabled ? -1 : 0}\n class={{\n [`${size}`]: true,\n [\"section-button\"]: true,\n [\"section-button-open\"]: expanded && !disabled,\n }}\n aria-expanded={`${expanded}`}\n aria-controls=\"expanded-content-area\"\n onClick={this.toggleExpanded}\n >\n {isSlotUsed(this.el, \"icon\") && (\n <div class=\"icon-container\">\n <slot name=\"icon\" />\n </div>\n )}\n <ic-typography variant=\"subtitle-large\" class=\"section-header\">\n {isSlotUsed(this.el, \"heading\") ? (\n <slot name=\"heading\" />\n ) : (\n this.heading\n )}\n </ic-typography>\n <span\n class={{\n [\"expand-chevron\"]: true,\n [\"content-expanded-chevron\"]: expanded && !disabled,\n }}\n aria-hidden=\"true\"\n innerHTML={chevronIcon}\n />\n </button>\n <div\n class={{\n [\"expanded-content\"]: true,\n }}\n aria-labelledby={`${this.accordionId}-button`}\n role=\"region\"\n aria-hidden={`${!expanded}`}\n id=\"expanded-content-area\"\n ref={(el) => (this.expandedContentEl = el)}\n >\n <div class=\"expanded-content-inner\">\n {this.message ? (\n <ic-typography variant=\"body\">{this.message}</ic-typography>\n ) : (\n <slot />\n )}\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i,H as o,g as n}from"./p-6b5e91e2.js";import{d as s,r,b as a,i as c}from"./p-cda4aca9.js";import{C as u}from"./p-c2e091d7.js";import{C as l}from"./p-3b185c32.js";const d='/*! 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}li{list-style:none;padding:0}:host ::part(button){color:var(--ic-popover-menu-item-check);padding:calc(var(--ic-space-xxxs) / 2);display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:0;min-height:2.5rem;height:auto}.focus-border{display:flex;align-items:flex-start;gap:var(--ic-space-xs);border-radius:var(--ic-border-radius);margin:calc(var(--ic-space-xxxs) / 2);padding:var(--ic-space-xxs);border:var(--ic-space-xxxs) dashed transparent;--icon-height:auto}:host(.ic-menu-item-disabled) ::part(button){color:var(--ic-popover-menu-item-check-disabled) !important;--ic-typography-color:var(--ic-popover-menu-item-check-disabled) !important;pointer-events:none}:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-disabled) !important}:host([variant="destructive"]) ::part(button){color:var(--ic-popover-menu-destructive-item-icon);--ic-typography-color:var(--ic-popover-menu-destructive-item-label)}:host ::part(button):hover{background-color:var(--ic-popover-background-hover)}:host ::part(button):focus-visible,:host ::part(button):focus{color:var(--ic-popover-menu-item-icon-focused);--ic-typography-color:purple;background-color:var(--ic-popover-background-focus);box-shadow:none}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{color:var(--ic-popover-menu-item-icon-disabled) !important;--ic-typography-color:orange !important}:host([variant="destructive"]) ::part(button):focus-visible,:host([variant="destructive"]) ::part(button):focus{background-color:var(--ic-popover-destructive-background-focus)}ic-button:focus-within .menu-item-label,ic-button:focus-within .shortcut,ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-focused)}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:var(--ic-popover-menu-border)}:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-label-disabled) !important}:host ::part(button):active{background-color:var(--ic-popover-background-pressed);color:var(--ic-popover-menu-item-label) !important;--ic-typography-color:var(--ic-popover-menu-item-label) !important}:host([variant="destructive"]) ::part(button):active{background-color:var(--ic-popover-background-pressed);color:var(--ic-popover-menu-destructive-item-label) !important;--ic-typography-color:var(\n --ic-popover-menu-destructive-item-label\n ) !important}.menu-item-info{display:flex;flex-direction:column;flex:1;align-items:baseline;white-space:pre-line;text-align:left}.menu-labels{display:flex;align-items:baseline;gap:var(--ic-space-xs)}.menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-description)}.shortcut{--ic-typography-color:var(--ic-popover-menu-item-shortcut);display:flex;flex:min-content}:host([variant="destructive"]) .menu-item-label{text-transform:uppercase;font-weight:600;letter-spacing:0.025em}ic-button:active .menu-item-label{--ic-typography-color:var(--ic-popover-menu-item-label)}ic-button:active .menu-item-description{--ic-typography-color:var(--ic-popover-menu-item-description)}ic-button:active .shortcut{--ic-typography-color:var(--ic-popover-menu-item-shortcut)}:host([variant="destructive"]) ic-button:active .menu-item-label{--ic-typography-color:var(\n --ic-popover-menu-destructive-item-label\n ) !important}.icon,.check-icon,.submenu-icon,.icon ::slotted(svg),.check-icon svg,.submenu-icon svg{width:var(--ic-space-lg);height:var(--ic-space-lg)}.check-icon.hide{visibility:hidden}@media (forced-colors: active){:host ::part(button){border:canvas}:host ::part(button):focus-visible{outline:var(--ic-space-xxxs) solid transparent}.focus-border{border-color:canvas}:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border{border-color:GrayText}:host(.ic-menu-item-disabled) .menu-item-info,:host(.ic-menu-item-disabled) .menu-item-label,:host(.ic-menu-item-disabled) .shortcut,:host(.ic-menu-item-disabled) .menu-item-description,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description{--ic-typography-color:GrayText !important}:host(.ic-menu-item-disabled) ::part(button):focus-visible,:host(.ic-menu-item-disabled) ::part(button):focus{outline-color:GrayText !important}}';const p=class{constructor(i){e(this,i);this.childBlur=t(this,"childBlur",7);this.handleMenuItemClick=t(this,"handleMenuItemClick",7);this.icToggleChecked=t(this,"icToggleChecked",7);this.triggerPopoverMenuInstance=t(this,"triggerPopoverMenuInstance",7);this.handleClick=e=>{if(s(this.submenuTriggerFor)){this.triggerPopoverMenuInstance.emit()}else if(this.variant==="toggle"){e.preventDefault();this.checked=!this.checked;this.icToggleChecked.emit({checked:this.checked})}this.handleMenuItemClick.emit(this.el)};this.getMenuItemAriaLabel=()=>{let e=this.label;if(s(this.description)){e=`${e}, ${this.description}`}if(s(this.keyboardShortcutLabel)){e=`${e}, ${this.keyboardShortcutLabel}`}if(this.variant==="destructive"){e=`${e}, destructive`}if(s(this.submenuTriggerFor)){e=`${e}, triggers submenu`}if(this.el.classList.contains("ic-popover-submenu-back-button")){e="Go back to parent menu"}const t=this.el.parentElement;if(t.tagName==="IC-MENU-GROUP"&&t.label){return`${e}, ${t.label} menu group`}else{return e}};this.checked=false;this.description=undefined;this.disabled=false;this.href=undefined;this.hreflang=undefined;this.keyboardShortcutLabel=undefined;this.label=undefined;this.referrerpolicy=undefined;this.rel=undefined;this.submenuTriggerFor=undefined;this.target=undefined;this.variant="default"}watchDisabledHandler(){r(this.disabled,this.el)}componentWillLoad(){if(s(this.submenuTriggerFor)&&this.variant!=="default"){this.variant="default"}r(this.disabled,this.el)}componentDidLoad(){a([{prop:this.label,propName:"label"}],"Menu Item")}handleHostClick(e){if(this.disabled){e.stopImmediatePropagation()}}render(){const e=()=>i("div",{class:"menu-item-info"},i("div",{class:"menu-labels"},i("ic-typography",{class:"menu-item-label"},this.label),this.keyboardShortcutLabel&&i("ic-typography",{variant:"caption",class:"shortcut"},this.keyboardShortcutLabel)),this.description&&i("ic-typography",{class:"menu-item-description",variant:"caption"},this.description));return i(o,{class:{["ic-menu-item-disabled"]:this.disabled}},i("li",{role:this.variant==="toggle"?"menuitemcheckbox":"menuitem","aria-disabled":`${this.disabled}`,"aria-checked":this.variant==="toggle"?this.checked?"true":"false":undefined},i("ic-button",{fullWidth:true,variant:"tertiary",onClick:this.handleClick,href:s(this.href),hreflang:s(this.hreflang),target:s(this.target),rel:s(this.rel),referrerpolicy:this.referrerpolicy!==undefined?this.referrerpolicy:null,"aria-disabled":`${this.disabled}`,"aria-label":this.getMenuItemAriaLabel(),"aria-haspopup":s(this.submenuTriggerFor)||this.el.classList.contains("ic-popover-submenu-back-button")?"menu":false},i("div",{class:"focus-border"},c(this.el,"icon")&&i("span",{class:"icon"},i("slot",{name:"icon"})),i(e,null),this.variant==="toggle"&&i("span",{class:{["check-icon"]:true,["hide"]:!this.checked},"aria-hidden":"true",innerHTML:u}),s(this.submenuTriggerFor)&&i("span",{class:{["submenu-icon"]:true},"aria-hidden":"true",innerHTML:l})))))}static get delegatesFocus(){return true}get el(){return n(this)}static get watchers(){return{disabled:["watchDisabledHandler"]}}};p.style=d;export{p as ic_menu_item};
2
- //# sourceMappingURL=p-15082ea5.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icMenuItemCss","MenuItem","this","handleClick","e","isPropDefined","submenuTriggerFor","triggerPopoverMenuInstance","emit","variant","preventDefault","checked","icToggleChecked","handleMenuItemClick","el","getMenuItemAriaLabel","ariaLabel","label","description","keyboardShortcutLabel","classList","contains","parentEl","parentElement","tagName","watchDisabledHandler","removeDisabledFalse","disabled","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","handleHostClick","stopImmediatePropagation","render","MenuItemInformation","h","class","Host","role","undefined","fullWidth","onClick","href","hreflang","target","rel","referrerpolicy","isSlotUsed","name","innerHTML","Check","Chevron"],"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"],"sourcesContent":["@import \"../../global/normalize.css\";\n\nli {\n list-style: none;\n padding: 0;\n}\n\n:host ::part(button) {\n color: var(--ic-popover-menu-item-check);\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(.ic-menu-item-disabled) ::part(button) {\n color: var(--ic-popover-menu-item-check-disabled) !important;\n\n --ic-typography-color: var(--ic-popover-menu-item-check-disabled) !important;\n\n pointer-events: none;\n}\n\n:host(.ic-menu-item-disabled) .menu-item-label,\n:host(.ic-menu-item-disabled) .shortcut,\n:host(.ic-menu-item-disabled) .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-disabled) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button) {\n color: var(--ic-popover-menu-destructive-item-icon);\n\n --ic-typography-color: var(--ic-popover-menu-destructive-item-label);\n}\n\n:host ::part(button):hover {\n background-color: var(--ic-popover-background-hover);\n}\n\n:host ::part(button):focus-visible,\n:host ::part(button):focus {\n color: var(--ic-popover-menu-item-icon-focused);\n\n --ic-typography-color: purple;\n\n background-color: var(--ic-popover-background-focus);\n box-shadow: none;\n}\n\n:host(.ic-menu-item-disabled) ::part(button):focus-visible,\n:host(.ic-menu-item-disabled) ::part(button):focus {\n color: var(--ic-popover-menu-item-icon-disabled) !important;\n\n --ic-typography-color: orange !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):focus-visible,\n:host([variant=\"destructive\"]) ::part(button):focus {\n background-color: var(--ic-popover-destructive-background-focus);\n}\n\nic-button:focus-within .menu-item-label,\nic-button:focus-within .shortcut,\nic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-focused);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: var(--ic-popover-menu-border);\n}\n\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n:host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n:host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-label-disabled) !important;\n}\n\n:host ::part(button):active {\n background-color: var(--ic-popover-background-pressed);\n color: var(--ic-popover-menu-item-label) !important;\n\n --ic-typography-color: var(--ic-popover-menu-item-label) !important;\n}\n\n:host([variant=\"destructive\"]) ::part(button):active {\n background-color: var(--ic-popover-background-pressed);\n color: var(--ic-popover-menu-destructive-item-label) !important;\n\n --ic-typography-color: var(\n --ic-popover-menu-destructive-item-label\n ) !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 --ic-typography-color: var(--ic-popover-menu-item-description);\n}\n\n.shortcut {\n --ic-typography-color: var(--ic-popover-menu-item-shortcut);\n\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 --ic-typography-color: var(--ic-popover-menu-item-label);\n}\n\nic-button:active .menu-item-description {\n --ic-typography-color: var(--ic-popover-menu-item-description);\n}\n\nic-button:active .shortcut {\n --ic-typography-color: var(--ic-popover-menu-item-shortcut);\n}\n\n:host([variant=\"destructive\"]) ic-button:active .menu-item-label {\n --ic-typography-color: var(\n --ic-popover-menu-destructive-item-label\n ) !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(.ic-menu-item-disabled) ic-button:focus-within .focus-border {\n border-color: GrayText;\n }\n\n :host(.ic-menu-item-disabled) .menu-item-info,\n :host(.ic-menu-item-disabled) .menu-item-label,\n :host(.ic-menu-item-disabled) .shortcut,\n :host(.ic-menu-item-disabled) .menu-item-description,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-info,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-label,\n :host(.ic-menu-item-disabled) ic-button:focus-within .shortcut,\n :host(.ic-menu-item-disabled) ic-button:focus-within .menu-item-description {\n --ic-typography-color: GrayText !important;\n }\n\n :host(.ic-menu-item-disabled) ::part(button):focus-visible,\n :host(.ic-menu-item-disabled) ::part(button):focus {\n outline-color: GrayText !important;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isPropDefined,\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 * If `true`, the menu item will be in a checked state. This is only applicable when variant is set to `toggle`.\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * The description displayed in the menu item, below the label.\n */\n @Prop() description?: string;\n\n /**\n * If `true`, the menu item will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\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 /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label describing the keyboard shortcut for a menu item's action.\n */\n @Prop() keyboardShortcutLabel?: string;\n\n /**\n * The label to display in the menu item.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * 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 /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The variant of the menu item.\n */\n @Prop({ mutable: true, reflect: true }) variant: IcMenuItemVariants =\n \"default\";\n\n /**\n * @internal Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal Emitted when the user clicks a menu item.\n */\n @Event() handleMenuItemClick: EventEmitter<HTMLIcMenuItemElement>;\n\n /**\n * Emitted when the user clicks a menu item that is set to the toggle variant.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\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 componentWillLoad(): void {\n // This ensures that trigger menu items are always set to the default variant\n if (isPropDefined(this.submenuTriggerFor) && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Menu Item\"\n );\n }\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 if (isPropDefined(this.submenuTriggerFor)) {\n this.triggerPopoverMenuInstance.emit();\n } else if (this.variant === \"toggle\") {\n e.preventDefault();\n this.checked = !this.checked;\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n this.handleMenuItemClick.emit(this.el);\n };\n\n private getMenuItemAriaLabel = (): string => {\n let ariaLabel = this.label;\n\n if (isPropDefined(this.description)) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n\n if (isPropDefined(this.keyboardShortcutLabel)) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcutLabel}`;\n }\n\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n\n if (isPropDefined(this.submenuTriggerFor)) {\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 = this.el.parentElement;\n\n if (\n parentEl.tagName === \"IC-MENU-GROUP\" &&\n (parentEl as HTMLIcMenuGroupElement).label\n ) {\n return `${ariaLabel}, ${\n (parentEl as HTMLIcMenuGroupElement).label\n } menu group`;\n } else {\n return ariaLabel;\n }\n };\n\n render() {\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.keyboardShortcutLabel && (\n <ic-typography variant=\"caption\" class=\"shortcut\">\n {this.keyboardShortcutLabel}\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 [\"ic-menu-item-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\"\n ? this.checked\n ? \"true\"\n : \"false\"\n : undefined\n }\n >\n <ic-button\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-haspopup={\n isPropDefined(this.submenuTriggerFor) ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\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.checked,\n }}\n aria-hidden=\"true\"\n innerHTML={Check}\n />\n )}\n {isPropDefined(this.submenuTriggerFor) && (\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"],"mappings":"4LAAA,MAAMA,EAAgB,2gO,MCgCTC,EAAQ,M,+OAgHXC,KAAAC,YAAeC,IACrB,GAAIC,EAAcH,KAAKI,mBAAoB,CACzCJ,KAAKK,2BAA2BC,M,MAC3B,GAAIN,KAAKO,UAAY,SAAU,CACpCL,EAAEM,iBACFR,KAAKS,SAAWT,KAAKS,QACrBT,KAAKU,gBAAgBJ,KAAK,CACxBG,QAAST,KAAKS,S,CAGlBT,KAAKW,oBAAoBL,KAAKN,KAAKY,GAAG,EAGhCZ,KAAAa,qBAAuB,KAC7B,IAAIC,EAAYd,KAAKe,MAErB,GAAIZ,EAAcH,KAAKgB,aAAc,CACnCF,EAAY,GAAGA,MAAcd,KAAKgB,a,CAGpC,GAAIb,EAAcH,KAAKiB,uBAAwB,CAC7CH,EAAY,GAAGA,MAAcd,KAAKiB,uB,CAGpC,GAAIjB,KAAKO,UAAY,cAAe,CAClCO,EAAY,GAAGA,gB,CAGjB,GAAIX,EAAcH,KAAKI,mBAAoB,CACzCU,EAAY,GAAGA,qB,CAGjB,GAAId,KAAKY,GAAGM,UAAUC,SAAS,kCAAmC,CAChEL,EAAY,wB,CAEd,MAAMM,EAAWpB,KAAKY,GAAGS,cAEzB,GACED,EAASE,UAAY,iBACpBF,EAAoCL,MACrC,CACA,MAAO,GAAGD,MACPM,EAAoCL,kB,KAElC,CACL,OAAOD,C,gBAvJgD,M,yCAU9B,M,2NAkD3B,S,CAhDF,oBAAAS,GACEC,EAAoBxB,KAAKyB,SAAUzB,KAAKY,G,CAuE1C,iBAAAc,GAEE,GAAIvB,EAAcH,KAAKI,oBAAsBJ,KAAKO,UAAY,UAAW,CACvEP,KAAKO,QAAU,S,CAEjBiB,EAAoBxB,KAAKyB,SAAUzB,KAAKY,G,CAG1C,gBAAAe,GACEC,EACE,CAAC,CAAEC,KAAM7B,KAAKe,MAAOe,SAAU,UAC/B,Y,CAKJ,eAAAC,CAAgB7B,GACd,GAAIF,KAAKyB,SAAU,CACjBvB,EAAE8B,0B,EAqDN,MAAAC,GAEE,MAAMC,EAAsB,IAExBC,EAAA,OAAKC,MAAM,kBACTD,EAAA,OAAKC,MAAM,eACTD,EAAA,iBAAeC,MAAM,mBAAmBpC,KAAKe,OAC5Cf,KAAKiB,uBACJkB,EAAA,iBAAe5B,QAAQ,UAAU6B,MAAM,YACpCpC,KAAKiB,wBAIXjB,KAAKgB,aACJmB,EAAA,iBAAeC,MAAM,wBAAwB7B,QAAQ,WAClDP,KAAKgB,cAOhB,OACEmB,EAACE,EAAI,CACHD,MAAO,CACL,CAAC,yBAA0BpC,KAAKyB,WAGlCU,EAAA,MACEG,KAAMtC,KAAKO,UAAY,SAAW,mBAAqB,WAAU,gBAClD,GAAGP,KAAKyB,WAAU,eAE/BzB,KAAKO,UAAY,SACbP,KAAKS,QACH,OACA,QACF8B,WAGNJ,EAAA,aACEK,UAAS,KACTjC,QAAQ,WACRkC,QAASzC,KAAKC,YACdyC,KAAMvC,EAAcH,KAAK0C,MACzBC,SAAUxC,EAAcH,KAAK2C,UAC7BC,OAAQzC,EAAcH,KAAK4C,QAC3BC,IAAK1C,EAAcH,KAAK6C,KACxBC,eACE9C,KAAK8C,iBAAmBP,UAAYvC,KAAK8C,eAAiB,KAAI,gBAEjD,GAAG9C,KAAKyB,WAAU,aACrBzB,KAAKa,uBAAsB,gBAErCV,EAAcH,KAAKI,oBACnBJ,KAAKY,GAAGM,UAAUC,SAAS,kCACvB,OACA,OAGNgB,EAAA,OAAKC,MAAM,gBACRW,EAAW/C,KAAKY,GAAI,SACnBuB,EAAA,QAAMC,MAAM,QACVD,EAAA,QAAMa,KAAK,UAGfb,EAACD,EAAmB,MACnBlC,KAAKO,UAAY,UAChB4B,EAAA,QACEC,MAAO,CACL,CAAC,cAAe,KAChB,CAAC,SAAUpC,KAAKS,SACjB,cACW,OACZwC,UAAWC,IAGd/C,EAAcH,KAAKI,oBAClB+B,EAAA,QACEC,MAAO,CAAE,CAAC,gBAAiB,MAAM,cACrB,OACZa,UAAWE,O"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,H as e,g as s}from"./p-6b5e91e2.js";import{U as o,t as r,f as l,I as a}from"./p-cda4aca9.js";const n=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M13.0875 6.175L11.9125 5L6.91251 10L11.9125 15L13.0875 13.825L9.27084 10L13.0875 6.175Z"/>\n</svg>`;const h=`<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">\n <path d="M8.08748 5L6.91248 6.175L10.7291 10L6.91248 13.825L8.08748 15L13.0875 10L8.08748 5Z"/>\n</svg>`;const c='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{--border-bottom-color:var(--ic-architectural-300);--splitter-color:var(--ic-architectural-100);display:flex;max-width:100%}:host(.ic-horizontal-scroll-light){--splitter-color:var(--ic-color-keyline-lighten)}:host(.ic-horizontal-scroll-dark){--splitter-color:var(--ic-color-keyline-darken)}::slotted(*){overflow-x:scroll;overflow-y:hidden;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;margin:calc(var(--ic-space-xs) * -1) !important;padding:var(--ic-space-xs) !important}:host(.ic-horizontal-scroll-visible) ::slotted(*){margin:calc(var(--ic-space-xs) * -1) 0 !important;padding:var(--ic-space-xs) !important}.tabs-container::-webkit-scrollbar{display:none}.scroll-container-left,.scroll-container-right{display:flex}.scroll-container-left{margin-left:var(--ic-space-xxs)}.scroll-container-right{margin-right:var(--ic-space-xxs)}.hidden{display:none}.scroll-arrow{margin:var(--ic-space-xxs) 0}.disabled .ic-tooltip-container{display:none !important}.scroll-splitter-left,.scroll-splitter-right{display:flex;height:var(--ic-space-lg);width:var(--ic-space-1px);margin-top:var(--ic-space-xs);border-radius:var(--ic-space-1px);background-color:var(--splitter-color)}.scroll-splitter-left{margin-left:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.scroll-splitter-right{margin-right:calc(var(--ic-space-xxs) - var(--ic-space-1px))}.disabled .scroll-splitter-left,.disabled .scroll-splitter-right{background-color:transparent}:host(.ic-horizontal-scroll-dark) .disabled ic-button>svg,:host(.ic-horizontal-scroll-light) .disabled ic-button>svg{color:var(--splitter-color) !important}';const d=200;const p=class{constructor(i){t(this,i);this.buttonStateSet=false;this.focusHandler=t=>{this.itemFocusHandler(Array.from(this.items).indexOf(t.target))};this.resizeObserverCallback=()=>{if(this.el.clientWidth>=this.itemsContainerEl.scrollWidth){this.itemOverflow=false}else{this.itemOverflow=o(this.itemsContainerEl)}if(this.itemOverflow){this.lastItemVisible=this.itemsContainerEl.offsetWidth+this.itemsContainerEl.scrollLeft>=this.itemsContainerEl.scrollWidth}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.resizeObserverCallback()}));this.resizeObserver.observe(this.itemsContainerEl)};this.scrollLeft=()=>{this.scrollItemIntoView(this.getCurrentLeftItem()-1)};this.scrollRight=()=>{this.scrollItemIntoView(this.getCurrentLeftItem()+1)};this.longScrollRight=()=>{this.scrollRight();this.scrollDelay=window.setTimeout(this.longScrollRight,d)};this.longScrollLeft=()=>{this.scrollLeft();this.scrollDelay=window.setTimeout(this.longScrollLeft,d)};this.leftArrowMouseDownHandler=t=>{t.preventDefault();this.scrollDelay=window.setTimeout(this.longScrollLeft,d)};this.rightArrowMouseDownHandler=t=>{t.preventDefault();this.scrollDelay=window.setTimeout(this.longScrollRight,d)};this.arrowMouseUpHandler=()=>{window.clearTimeout(this.scrollDelay)};this.getCurrentLeftItem=()=>{const t=this.itemOffsets.findIndex((t=>t>Math.round(this.itemsContainerEl.scrollLeft)));return t<0?0:t};this.scrollHandler=()=>{window.clearTimeout(this.isScrolling);this.isScrolling=window.setTimeout(this.scrollStopped,50)};this.scrollStopped=()=>{const t=Math.round(this.itemsContainerEl.scrollLeft);if(this.buttonStateSet===false){this.firstItemVisible=t===0;this.lastItemVisible=this.itemsContainerEl.offsetWidth+t>=this.itemsContainerEl.scrollWidth}this.buttonStateSet=false};this.firstItemVisible=true;this.itemOverflow=false;this.lastItemVisible=false;this.appearance="default";this.monochrome=false;this.theme="inherit";this.focusTrigger="focus"}componentWillLoad(){this.itemsContainerEl=this.el.children[0];this.itemsContainerEl.addEventListener("scroll",this.scrollHandler);this.items=r(this.itemsContainerEl);this.items.forEach((t=>{if(t.addEventListener){t.addEventListener(this.focusTrigger,this.focusHandler)}}))}componentDidLoad(){let t=0;this.itemOffsets=this.items.map((i=>{t+=i.offsetWidth;return t}));l(this.runResizeObserver);const i=Array.from(this.el.shadowRoot.querySelectorAll("div"));["mouseup","mouseleave"].forEach((t=>{i.forEach((i=>i.addEventListener(t,this.arrowMouseUpHandler)))}))}disconnectedCallback(){var t,i;if(this.resizeObserver!==undefined){this.resizeObserver.disconnect()}const e=Array.from(this.el.shadowRoot.querySelectorAll("div"));["mouseup","mouseleave"].forEach((t=>{e.forEach((i=>i.removeEventListener(t,this.arrowMouseUpHandler)))}));(t=this.items)===null||t===void 0?void 0:t.forEach((t=>{if(t.removeEventListener){t.removeEventListener(this.focusTrigger,this.focusHandler)}}));(i=this.itemsContainerEl)===null||i===void 0?void 0:i.removeEventListener("scroll",this.scrollHandler)}async scrollItemIntoView(t){this.firstItemVisible=t<=0;const i=t<=0?0:this.itemOffsets[t-1];this.lastItemVisible=this.itemsContainerEl.offsetWidth+i>=this.itemsContainerEl.scrollWidth;this.buttonStateSet=true;this.itemsContainerEl.scrollLeft=i}itemFocusHandler(t){if(this.itemOverflow){this.scrollItemIntoView(t)}}render(){const{firstItemVisible:t,lastItemVisible:s,itemOverflow:o}=this;return i(e,{class:{["ic-horizontal-scroll-visible"]:o,["ic-horizontal-scroll-dark"]:this.appearance===a.Dark,["ic-horizontal-scroll-light"]:this.appearance===a.Light,[`ic-theme-${this.theme}`]:this.theme!=="inherit"}},i("div",{"aria-hidden":"true",class:{["scroll-container-left"]:true,["hidden"]:!o,["disabled"]:t},role:"tab"},i("ic-button",{class:"scroll-arrow",variant:"icon-tertiary","aria-label":"Scroll left",theme:this.theme==="light"||this.theme==="inherit"?"dark":"light",monochrome:this.monochrome,innerHTML:n,disabled:t,tabindex:"-1",onClick:this.scrollLeft,onMouseDown:this.leftArrowMouseDownHandler}),i("span",{class:"scroll-splitter-left"})),i("slot",null),i("div",{"aria-hidden":"true",class:{["scroll-container-right"]:true,["hidden"]:!o,["disabled"]:s},role:"tab"},i("span",{class:"scroll-splitter-right"}),i("ic-button",{class:"scroll-arrow",variant:"icon-tertiary","aria-label":"Scroll right",theme:this.theme==="light"||this.theme==="inherit"?"dark":"light",monochrome:this.monochrome,innerHTML:h,disabled:s,tabindex:"-1",onClick:this.scrollRight,onMouseDown:this.rightArrowMouseDownHandler})))}get el(){return s(this)}};p.style=c;export{p as ic_horizontal_scroll};
2
- //# sourceMappingURL=p-174de9d7.entry.js.map