@ukic/web-components 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/core.cjs.js +1 -1
  3. package/dist/cjs/ic-action-chip.cjs.entry.js +116 -0
  4. package/dist/cjs/ic-action-chip.cjs.entry.js.map +1 -0
  5. package/dist/cjs/ic-back-to-top.cjs.entry.js +3 -3
  6. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/ic-button_3.cjs.entry.js +41 -86
  10. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-card-vertical.cjs.entry.js +4 -4
  12. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-checkbox.cjs.entry.js +4 -4
  14. package/dist/cjs/ic-chip.cjs.entry.js +11 -3
  15. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-classification-banner.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  21. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-footer.cjs.entry.js +3 -3
  23. package/dist/cjs/ic-hero.cjs.entry.js +4 -4
  24. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  25. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +44 -52
  26. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-input-label_2.cjs.entry.js +5 -5
  28. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  31. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-navigation-item.cjs.entry.js +3 -10
  33. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  35. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  36. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-pagination.cjs.entry.js +4 -4
  38. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  39. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  40. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  41. package/dist/cjs/ic-search-bar.cjs.entry.js +9 -9
  42. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-select.cjs.entry.js +6 -6
  45. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
  47. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  52. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  54. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-text-field.cjs.entry.js +6 -6
  59. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  62. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +15 -4
  63. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-toggle-button.cjs.entry.js +13 -4
  65. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -4
  67. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  68. package/dist/cjs/index-d337cd8a.js +4 -0
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/collection/collection-manifest.json +1 -0
  71. package/dist/collection/components/ic-action-chip/ic-action-chip.css +644 -0
  72. package/dist/collection/components/ic-action-chip/ic-action-chip.js +564 -0
  73. package/dist/collection/components/ic-action-chip/ic-action-chip.js.map +1 -0
  74. package/dist/collection/components/ic-action-chip/ic-action-chip.stories.js +386 -0
  75. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -3
  76. package/dist/collection/components/ic-badge/ic-badge.js +2 -2
  77. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  78. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  79. package/dist/collection/components/ic-button/ic-button.css +3 -11
  80. package/dist/collection/components/ic-button/ic-button.js +2 -2
  81. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +4 -4
  82. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  83. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  84. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +5 -3
  85. package/dist/collection/components/ic-chip/ic-chip.js +12 -4
  86. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  87. package/dist/collection/components/ic-classification-banner/ic-classification-banner.js +2 -2
  88. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  89. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  90. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  91. package/dist/collection/components/ic-dialog/ic-dialog.stories.js +31 -4
  92. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  93. package/dist/collection/components/ic-footer/ic-footer.js +3 -3
  94. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  95. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  96. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  97. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  98. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  99. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  100. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  101. package/dist/collection/components/ic-link/ic-link.js +1 -1
  102. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.css +5 -0
  103. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  104. package/dist/collection/components/ic-menu/ic-menu.js +108 -47
  105. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  106. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  107. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +2 -2
  108. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  109. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +3 -10
  110. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  111. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  112. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  113. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  114. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  115. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  116. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  117. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +5 -3
  118. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  119. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  120. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  121. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  122. package/dist/collection/components/ic-select/ic-select.js +6 -6
  123. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  124. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +7 -5
  125. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +7 -5
  126. package/dist/collection/components/ic-select/ic-select_(single).stories.js +7 -5
  127. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  128. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  129. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +31 -4
  130. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  131. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  132. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  133. package/dist/collection/components/ic-step/ic-step.js +13 -13
  134. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  135. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  136. package/dist/collection/components/ic-tab/ic-tab.js +2 -2
  137. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  138. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  139. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  140. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -6
  141. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +5 -10
  142. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  143. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  144. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  145. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +17 -0
  146. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +32 -3
  147. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  148. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +7 -0
  149. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +7 -0
  150. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +36 -3
  151. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  152. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +17 -0
  153. package/dist/collection/components/ic-tooltip/ic-tooltip.css +2 -5
  154. package/dist/collection/components/ic-tooltip/ic-tooltip.js +32 -77
  155. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  156. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +4 -4
  157. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  158. package/dist/components/ic-action-chip.d.ts +11 -0
  159. package/dist/components/ic-action-chip.js +160 -0
  160. package/dist/components/ic-action-chip.js.map +1 -0
  161. package/dist/components/ic-back-to-top.js +3 -3
  162. package/dist/components/ic-badge.js +2 -2
  163. package/dist/components/ic-breadcrumb-group.js +2 -2
  164. package/dist/components/ic-breadcrumb2.js +2 -2
  165. package/dist/components/ic-button2.js +3 -3
  166. package/dist/components/ic-button2.js.map +1 -1
  167. package/dist/components/ic-card-vertical.js +4 -4
  168. package/dist/components/ic-checkbox-group.js +2 -2
  169. package/dist/components/ic-checkbox.js +4 -4
  170. package/dist/components/ic-chip.js +12 -4
  171. package/dist/components/ic-chip.js.map +1 -1
  172. package/dist/components/ic-classification-banner.js +2 -2
  173. package/dist/components/ic-data-list.js +2 -2
  174. package/dist/components/ic-data-row.js +2 -2
  175. package/dist/components/ic-dialog.js +1 -1
  176. package/dist/components/ic-empty-state.js +2 -2
  177. package/dist/components/ic-footer-link.js +2 -2
  178. package/dist/components/ic-footer.js +3 -3
  179. package/dist/components/ic-hero.js +4 -4
  180. package/dist/components/ic-horizontal-scroll2.js +5 -5
  181. package/dist/components/ic-input-component-container2.js +3 -3
  182. package/dist/components/ic-input-container2.js +2 -2
  183. package/dist/components/ic-input-label2.js +2 -2
  184. package/dist/components/ic-input-validation2.js +3 -3
  185. package/dist/components/ic-link2.js +1 -1
  186. package/dist/components/ic-loading-indicator2.js +6 -6
  187. package/dist/components/ic-loading-indicator2.js.map +1 -1
  188. package/dist/components/ic-menu-group.js +1 -1
  189. package/dist/components/ic-menu2.js +42 -47
  190. package/dist/components/ic-menu2.js.map +1 -1
  191. package/dist/components/ic-navigation-button.js +2 -2
  192. package/dist/components/ic-navigation-group.js +1 -1
  193. package/dist/components/ic-navigation-item.js +3 -10
  194. package/dist/components/ic-navigation-item.js.map +1 -1
  195. package/dist/components/ic-navigation-menu2.js +4 -4
  196. package/dist/components/ic-page-header.js +6 -6
  197. package/dist/components/ic-pagination-item2.js +1 -1
  198. package/dist/components/ic-pagination.js +4 -4
  199. package/dist/components/ic-popover-menu.js +4 -4
  200. package/dist/components/ic-radio-group.js +4 -4
  201. package/dist/components/ic-radio-group.js.map +1 -1
  202. package/dist/components/ic-radio-option.js +4 -4
  203. package/dist/components/ic-search-bar.js +9 -9
  204. package/dist/components/ic-search-bar.js.map +1 -1
  205. package/dist/components/ic-section-container2.js +2 -2
  206. package/dist/components/ic-select.js +6 -6
  207. package/dist/components/ic-select.js.map +1 -1
  208. package/dist/components/ic-side-navigation.js +4 -4
  209. package/dist/components/ic-side-navigation.js.map +1 -1
  210. package/dist/components/ic-skeleton.js +2 -2
  211. package/dist/components/ic-skip-link.js +2 -2
  212. package/dist/components/ic-status-tag.js +2 -2
  213. package/dist/components/ic-step.js +13 -13
  214. package/dist/components/ic-stepper.js +2 -2
  215. package/dist/components/ic-switch.js +4 -4
  216. package/dist/components/ic-tab-context.js +1 -1
  217. package/dist/components/ic-tab-group.js +2 -2
  218. package/dist/components/ic-tab-panel.js +2 -2
  219. package/dist/components/ic-tab-panel.js.map +1 -1
  220. package/dist/components/ic-tab.js +2 -2
  221. package/dist/components/ic-text-field.js +6 -6
  222. package/dist/components/ic-text-field.js.map +1 -1
  223. package/dist/components/ic-theme.js +1 -1
  224. package/dist/components/ic-toast-region.js +1 -1
  225. package/dist/components/ic-toast.js +3 -3
  226. package/dist/components/ic-toggle-button-group.js +17 -4
  227. package/dist/components/ic-toggle-button-group.js.map +1 -1
  228. package/dist/components/ic-toggle-button.js +14 -4
  229. package/dist/components/ic-toggle-button.js.map +1 -1
  230. package/dist/components/ic-tooltip2.js +33 -78
  231. package/dist/components/ic-tooltip2.js.map +1 -1
  232. package/dist/components/ic-top-navigation.js +4 -4
  233. package/dist/components/ic-typography2.js +2 -2
  234. package/dist/core/core.css +227 -7
  235. package/dist/core/core.esm.js +1 -1
  236. package/dist/core/core.esm.js.map +1 -1
  237. package/dist/core/{p-5fb58cc8.entry.js → p-03a2fa83.entry.js} +2 -2
  238. package/dist/core/{p-ba89fa16.entry.js → p-04c36b23.entry.js} +2 -2
  239. package/dist/core/{p-7b9e10a0.entry.js → p-0a8140ef.entry.js} +2 -2
  240. package/dist/core/p-0a8140ef.entry.js.map +1 -0
  241. package/dist/core/{p-f4ee5fbb.entry.js → p-0c095f5b.entry.js} +2 -2
  242. package/dist/core/{p-50d13439.entry.js → p-0eaa2904.entry.js} +2 -2
  243. package/dist/core/p-1829c1a9.entry.js +2 -0
  244. package/dist/core/p-1829c1a9.entry.js.map +1 -0
  245. package/dist/core/{p-b730963a.entry.js → p-19680887.entry.js} +2 -2
  246. package/dist/core/p-19680887.entry.js.map +1 -0
  247. package/dist/core/{p-4b6818d9.entry.js → p-1cc402b8.entry.js} +2 -2
  248. package/dist/core/p-1f913ba3.entry.js +2 -0
  249. package/dist/core/{p-627f7172.entry.js.map → p-1f913ba3.entry.js.map} +1 -1
  250. package/dist/core/{p-0549305b.entry.js → p-2394346c.entry.js} +2 -2
  251. package/dist/core/p-280e7874.entry.js +2 -0
  252. package/dist/core/p-280e7874.entry.js.map +1 -0
  253. package/dist/core/{p-77750efc.entry.js → p-2c2c752d.entry.js} +2 -2
  254. package/dist/core/{p-9ed5f11d.entry.js → p-32c030b1.entry.js} +2 -2
  255. package/dist/core/{p-afde0edc.entry.js → p-3aa7f724.entry.js} +2 -2
  256. package/dist/core/{p-b83cca09.entry.js → p-3eef02dd.entry.js} +2 -2
  257. package/dist/core/p-3f9ff1cb.entry.js +2 -0
  258. package/dist/core/p-3f9ff1cb.entry.js.map +1 -0
  259. package/dist/core/p-4345907a.entry.js +2 -0
  260. package/dist/core/{p-ec1657fc.entry.js.map → p-4345907a.entry.js.map} +1 -1
  261. package/dist/core/p-46a0a40b.entry.js +2 -0
  262. package/dist/core/p-46a0a40b.entry.js.map +1 -0
  263. package/dist/core/{p-3448c713.entry.js → p-48db785a.entry.js} +2 -2
  264. package/dist/core/{p-29468171.entry.js → p-4c336217.entry.js} +2 -2
  265. package/dist/core/{p-98869fe7.entry.js → p-51bff253.entry.js} +2 -2
  266. package/dist/core/p-57644340.entry.js +2 -0
  267. package/dist/core/p-57644340.entry.js.map +1 -0
  268. package/dist/core/{p-2ec0d11c.entry.js → p-60ff225d.entry.js} +2 -2
  269. package/dist/core/{p-0179fbd3.entry.js → p-682a9365.entry.js} +2 -2
  270. package/dist/core/{p-43b98687.entry.js → p-68f55187.entry.js} +2 -2
  271. package/dist/core/{p-7cada631.entry.js → p-69aad690.entry.js} +2 -2
  272. package/dist/core/{p-08567369.entry.js → p-750d5536.entry.js} +2 -2
  273. package/dist/core/{p-97f67617.entry.js → p-7ac5a271.entry.js} +2 -2
  274. package/dist/core/p-7cd6487e.entry.js +2 -0
  275. package/dist/core/{p-ff47772c.entry.js.map → p-7cd6487e.entry.js.map} +1 -1
  276. package/dist/core/{p-056be0df.entry.js → p-8557fa1e.entry.js} +2 -2
  277. package/dist/core/{p-4b8bfb59.entry.js → p-874f7e8d.entry.js} +2 -2
  278. package/dist/core/{p-421b5f2d.entry.js → p-88b516d6.entry.js} +2 -2
  279. package/dist/core/{p-939adcae.entry.js → p-903f9c7f.entry.js} +2 -2
  280. package/dist/core/{p-bb21268f.entry.js → p-918af357.entry.js} +2 -2
  281. package/dist/core/{p-a2ae5d9e.entry.js → p-998dfae0.entry.js} +2 -2
  282. package/dist/core/{p-8a5b0fb0.entry.js → p-9d78ef89.entry.js} +2 -2
  283. package/dist/core/{p-ae2ea264.entry.js → p-9e177686.entry.js} +2 -2
  284. package/dist/core/{p-0f86ea09.entry.js → p-9f792a31.entry.js} +2 -2
  285. package/dist/core/{p-70abcb2b.js → p-9f8acb5f.js} +2 -2
  286. package/dist/core/{p-4935b899.entry.js → p-a082d978.entry.js} +2 -2
  287. package/dist/core/{p-4935b899.entry.js.map → p-a082d978.entry.js.map} +1 -1
  288. package/dist/core/{p-b1b27b7e.entry.js → p-b3ac38c5.entry.js} +2 -2
  289. package/dist/core/{p-e29ba8bd.entry.js → p-b3d3ee50.entry.js} +2 -2
  290. package/dist/core/p-b3d3ee50.entry.js.map +1 -0
  291. package/dist/core/p-b5c72b06.entry.js +2 -0
  292. package/dist/core/p-b5c72b06.entry.js.map +1 -0
  293. package/dist/core/p-b94d404b.entry.js +2 -0
  294. package/dist/core/{p-773ded36.entry.js.map → p-b94d404b.entry.js.map} +1 -1
  295. package/dist/core/{p-91f6884a.entry.js → p-bf5653c0.entry.js} +2 -2
  296. package/dist/core/{p-fb6e6ac4.entry.js → p-c63ae7d0.entry.js} +2 -2
  297. package/dist/core/{p-a591ef38.entry.js → p-c9c6d63b.entry.js} +2 -2
  298. package/dist/core/{p-ce916f35.entry.js → p-d1b7b839.entry.js} +2 -2
  299. package/dist/core/{p-4301e11e.entry.js → p-d2f1beb6.entry.js} +2 -2
  300. package/dist/core/{p-d281c3cf.entry.js → p-d47acbd4.entry.js} +2 -2
  301. package/dist/core/{p-fc5661ac.entry.js → p-de43d375.entry.js} +2 -2
  302. package/dist/core/p-e0485462.entry.js +2 -0
  303. package/dist/core/p-e9b6b600.entry.js +2 -0
  304. package/dist/core/{p-6dd73165.entry.js → p-ee6caf27.entry.js} +2 -2
  305. package/dist/core/{p-06e80441.entry.js → p-ef357622.entry.js} +2 -2
  306. package/dist/core/{p-9e051db4.entry.js → p-f34eee68.entry.js} +2 -2
  307. package/dist/core/{p-948086f4.entry.js → p-f46fd0e7.entry.js} +2 -2
  308. package/dist/core/{p-f9491692.entry.js → p-f643ae2b.entry.js} +2 -2
  309. package/dist/core/p-fbaf0301.entry.js +2 -0
  310. package/dist/core/{p-3194e46c.entry.js.map → p-fbaf0301.entry.js.map} +1 -1
  311. package/dist/core/{p-9d5e4b62.entry.js → p-fc933fc3.entry.js} +2 -2
  312. package/dist/core/p-fd421f11.entry.js +2 -0
  313. package/dist/core/{p-554c555f.entry.js.map → p-fd421f11.entry.js.map} +1 -1
  314. package/dist/core/{p-cd8dab55.entry.js → p-fee854f5.entry.js} +2 -2
  315. package/dist/esm/core.js +1 -1
  316. package/dist/esm/{helpers-f5ff3b42.js → helpers-2e75abf4.js} +2 -2
  317. package/dist/esm/{helpers-f5ff3b42.js.map → helpers-2e75abf4.js.map} +1 -1
  318. package/dist/esm/ic-accordion-group.entry.js +1 -1
  319. package/dist/esm/ic-accordion.entry.js +1 -1
  320. package/dist/esm/ic-action-chip.entry.js +112 -0
  321. package/dist/esm/ic-action-chip.entry.js.map +1 -0
  322. package/dist/esm/ic-alert.entry.js +1 -1
  323. package/dist/esm/ic-back-to-top.entry.js +4 -4
  324. package/dist/esm/ic-badge.entry.js +3 -3
  325. package/dist/esm/ic-breadcrumb-group.entry.js +3 -3
  326. package/dist/esm/ic-breadcrumb.entry.js +3 -3
  327. package/dist/esm/ic-button_3.entry.js +42 -87
  328. package/dist/esm/ic-button_3.entry.js.map +1 -1
  329. package/dist/esm/ic-card-vertical.entry.js +5 -5
  330. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  331. package/dist/esm/ic-checkbox.entry.js +5 -5
  332. package/dist/esm/ic-chip.entry.js +12 -4
  333. package/dist/esm/ic-chip.entry.js.map +1 -1
  334. package/dist/esm/ic-classification-banner.entry.js +2 -2
  335. package/dist/esm/ic-data-list.entry.js +2 -2
  336. package/dist/esm/ic-data-row.entry.js +3 -3
  337. package/dist/esm/ic-dialog.entry.js +2 -2
  338. package/dist/esm/ic-divider.entry.js +1 -1
  339. package/dist/esm/ic-empty-state.entry.js +3 -3
  340. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  341. package/dist/esm/ic-footer-link.entry.js +3 -3
  342. package/dist/esm/ic-footer.entry.js +4 -4
  343. package/dist/esm/ic-hero.entry.js +5 -5
  344. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  345. package/dist/esm/ic-input-component-container_3.entry.js +45 -53
  346. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  347. package/dist/esm/ic-input-label_2.entry.js +6 -6
  348. package/dist/esm/ic-link.entry.js +2 -2
  349. package/dist/esm/ic-menu-group.entry.js +2 -2
  350. package/dist/esm/ic-menu-item.entry.js +1 -1
  351. package/dist/esm/ic-navigation-button.entry.js +3 -3
  352. package/dist/esm/ic-navigation-group.entry.js +2 -2
  353. package/dist/esm/ic-navigation-item.entry.js +4 -11
  354. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  355. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  356. package/dist/esm/ic-page-header.entry.js +7 -7
  357. package/dist/esm/ic-pagination-item.entry.js +2 -2
  358. package/dist/esm/ic-pagination.entry.js +5 -5
  359. package/dist/esm/ic-popover-menu.entry.js +5 -5
  360. package/dist/esm/ic-radio-group.entry.js +5 -5
  361. package/dist/esm/ic-radio-option.entry.js +5 -5
  362. package/dist/esm/ic-search-bar.entry.js +10 -10
  363. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  364. package/dist/esm/ic-section-container.entry.js +2 -2
  365. package/dist/esm/ic-select.entry.js +7 -7
  366. package/dist/esm/ic-select.entry.js.map +1 -1
  367. package/dist/esm/ic-side-navigation.entry.js +5 -5
  368. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  369. package/dist/esm/ic-skeleton.entry.js +2 -2
  370. package/dist/esm/ic-skip-link.entry.js +2 -2
  371. package/dist/esm/ic-status-tag.entry.js +3 -3
  372. package/dist/esm/ic-step.entry.js +14 -14
  373. package/dist/esm/ic-stepper.entry.js +3 -3
  374. package/dist/esm/ic-switch.entry.js +5 -5
  375. package/dist/esm/ic-tab-context.entry.js +1 -1
  376. package/dist/esm/ic-tab-group.entry.js +3 -3
  377. package/dist/esm/ic-tab-panel.entry.js +2 -2
  378. package/dist/esm/ic-tab.entry.js +3 -3
  379. package/dist/esm/ic-text-field.entry.js +7 -7
  380. package/dist/esm/ic-theme.entry.js +2 -2
  381. package/dist/esm/ic-toast-region.entry.js +1 -1
  382. package/dist/esm/ic-toast.entry.js +4 -4
  383. package/dist/esm/ic-toggle-button-group.entry.js +16 -5
  384. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  385. package/dist/esm/ic-toggle-button.entry.js +14 -5
  386. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  387. package/dist/esm/ic-top-navigation.entry.js +5 -5
  388. package/dist/esm/ic-typography.entry.js +3 -3
  389. package/dist/esm/index-a7a720e7.js +4 -0
  390. package/dist/esm/loader.js +1 -1
  391. package/dist/types/components/ic-action-chip/ic-action-chip.d.ts +100 -0
  392. package/dist/types/components/ic-chip/ic-chip.d.ts +2 -0
  393. package/dist/types/components/ic-menu/ic-menu.d.ts +12 -4
  394. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +4 -0
  395. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +5 -0
  396. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +1 -4
  397. package/dist/types/components.d.ts +198 -2
  398. package/hydrate/index.js +424 -311
  399. package/hydrate/index.mjs +424 -311
  400. package/package.json +2 -2
  401. package/vscode-data.json +164 -0
  402. package/dist/core/p-06b0d0f6.entry.js +0 -2
  403. package/dist/core/p-3194e46c.entry.js +0 -2
  404. package/dist/core/p-4cd83bfe.entry.js +0 -2
  405. package/dist/core/p-4cd83bfe.entry.js.map +0 -1
  406. package/dist/core/p-554c555f.entry.js +0 -2
  407. package/dist/core/p-57309502.entry.js +0 -2
  408. package/dist/core/p-57309502.entry.js.map +0 -1
  409. package/dist/core/p-627f7172.entry.js +0 -2
  410. package/dist/core/p-773ded36.entry.js +0 -2
  411. package/dist/core/p-7b9e10a0.entry.js.map +0 -1
  412. package/dist/core/p-9caa9e7b.entry.js +0 -2
  413. package/dist/core/p-9caa9e7b.entry.js.map +0 -1
  414. package/dist/core/p-b730963a.entry.js.map +0 -1
  415. package/dist/core/p-c100724d.entry.js +0 -2
  416. package/dist/core/p-cd42b7c0.entry.js +0 -2
  417. package/dist/core/p-cd42b7c0.entry.js.map +0 -1
  418. package/dist/core/p-d7c8f10d.entry.js +0 -2
  419. package/dist/core/p-d7c8f10d.entry.js.map +0 -1
  420. package/dist/core/p-e29ba8bd.entry.js.map +0 -1
  421. package/dist/core/p-ec1657fc.entry.js +0 -2
  422. package/dist/core/p-ff47772c.entry.js +0 -2
  423. /package/dist/core/{p-5fb58cc8.entry.js.map → p-03a2fa83.entry.js.map} +0 -0
  424. /package/dist/core/{p-ba89fa16.entry.js.map → p-04c36b23.entry.js.map} +0 -0
  425. /package/dist/core/{p-f4ee5fbb.entry.js.map → p-0c095f5b.entry.js.map} +0 -0
  426. /package/dist/core/{p-50d13439.entry.js.map → p-0eaa2904.entry.js.map} +0 -0
  427. /package/dist/core/{p-4b6818d9.entry.js.map → p-1cc402b8.entry.js.map} +0 -0
  428. /package/dist/core/{p-0549305b.entry.js.map → p-2394346c.entry.js.map} +0 -0
  429. /package/dist/core/{p-77750efc.entry.js.map → p-2c2c752d.entry.js.map} +0 -0
  430. /package/dist/core/{p-9ed5f11d.entry.js.map → p-32c030b1.entry.js.map} +0 -0
  431. /package/dist/core/{p-afde0edc.entry.js.map → p-3aa7f724.entry.js.map} +0 -0
  432. /package/dist/core/{p-b83cca09.entry.js.map → p-3eef02dd.entry.js.map} +0 -0
  433. /package/dist/core/{p-3448c713.entry.js.map → p-48db785a.entry.js.map} +0 -0
  434. /package/dist/core/{p-29468171.entry.js.map → p-4c336217.entry.js.map} +0 -0
  435. /package/dist/core/{p-98869fe7.entry.js.map → p-51bff253.entry.js.map} +0 -0
  436. /package/dist/core/{p-2ec0d11c.entry.js.map → p-60ff225d.entry.js.map} +0 -0
  437. /package/dist/core/{p-0179fbd3.entry.js.map → p-682a9365.entry.js.map} +0 -0
  438. /package/dist/core/{p-43b98687.entry.js.map → p-68f55187.entry.js.map} +0 -0
  439. /package/dist/core/{p-7cada631.entry.js.map → p-69aad690.entry.js.map} +0 -0
  440. /package/dist/core/{p-08567369.entry.js.map → p-750d5536.entry.js.map} +0 -0
  441. /package/dist/core/{p-97f67617.entry.js.map → p-7ac5a271.entry.js.map} +0 -0
  442. /package/dist/core/{p-056be0df.entry.js.map → p-8557fa1e.entry.js.map} +0 -0
  443. /package/dist/core/{p-4b8bfb59.entry.js.map → p-874f7e8d.entry.js.map} +0 -0
  444. /package/dist/core/{p-421b5f2d.entry.js.map → p-88b516d6.entry.js.map} +0 -0
  445. /package/dist/core/{p-939adcae.entry.js.map → p-903f9c7f.entry.js.map} +0 -0
  446. /package/dist/core/{p-bb21268f.entry.js.map → p-918af357.entry.js.map} +0 -0
  447. /package/dist/core/{p-a2ae5d9e.entry.js.map → p-998dfae0.entry.js.map} +0 -0
  448. /package/dist/core/{p-8a5b0fb0.entry.js.map → p-9d78ef89.entry.js.map} +0 -0
  449. /package/dist/core/{p-ae2ea264.entry.js.map → p-9e177686.entry.js.map} +0 -0
  450. /package/dist/core/{p-0f86ea09.entry.js.map → p-9f792a31.entry.js.map} +0 -0
  451. /package/dist/core/{p-70abcb2b.js.map → p-9f8acb5f.js.map} +0 -0
  452. /package/dist/core/{p-b1b27b7e.entry.js.map → p-b3ac38c5.entry.js.map} +0 -0
  453. /package/dist/core/{p-91f6884a.entry.js.map → p-bf5653c0.entry.js.map} +0 -0
  454. /package/dist/core/{p-fb6e6ac4.entry.js.map → p-c63ae7d0.entry.js.map} +0 -0
  455. /package/dist/core/{p-a591ef38.entry.js.map → p-c9c6d63b.entry.js.map} +0 -0
  456. /package/dist/core/{p-ce916f35.entry.js.map → p-d1b7b839.entry.js.map} +0 -0
  457. /package/dist/core/{p-4301e11e.entry.js.map → p-d2f1beb6.entry.js.map} +0 -0
  458. /package/dist/core/{p-d281c3cf.entry.js.map → p-d47acbd4.entry.js.map} +0 -0
  459. /package/dist/core/{p-fc5661ac.entry.js.map → p-de43d375.entry.js.map} +0 -0
  460. /package/dist/core/{p-c100724d.entry.js.map → p-e0485462.entry.js.map} +0 -0
  461. /package/dist/core/{p-06b0d0f6.entry.js.map → p-e9b6b600.entry.js.map} +0 -0
  462. /package/dist/core/{p-6dd73165.entry.js.map → p-ee6caf27.entry.js.map} +0 -0
  463. /package/dist/core/{p-06e80441.entry.js.map → p-ef357622.entry.js.map} +0 -0
  464. /package/dist/core/{p-9e051db4.entry.js.map → p-f34eee68.entry.js.map} +0 -0
  465. /package/dist/core/{p-948086f4.entry.js.map → p-f46fd0e7.entry.js.map} +0 -0
  466. /package/dist/core/{p-f9491692.entry.js.map → p-f643ae2b.entry.js.map} +0 -0
  467. /package/dist/core/{p-9d5e4b62.entry.js.map → p-fc933fc3.entry.js.map} +0 -0
  468. /package/dist/core/{p-cd8dab55.entry.js.map → p-fee854f5.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icInputComponentContainerCss","IcInputComponentContainerStyle0","InputComponentContainer","constructor","hostRef","this","disabled","fullWidth","multiLine","readonly","size","validationInline","validationStatus","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","componentDidLoad","hostMutationObserver","MutationObserver","mutationList","renderDynamicChildSlots","observe","childList","render","h","Host","key","class","slotHasContent","name","IcInformationStatus","Success","innerHTML","successIcon","icInputContainerCss","IcInputContainerStyle0","InputContainer","icMenuCss","IcMenuStyle0","Menu","ACTIVE_DESCENDANT","CLEAR_BUTTON_ID","SEARCH_BAR_TAG","disabledOptionSelected","hasPreviouslyBlurred","hasTimedOut","isLoading","isMultiSelect","isSearchBar","isSearchableSelect","lastOptionSelected","lastOptionFocused","multiOptionClicked","preventClickOpen","preventMenuFocus","shiftPressed","ungroupedOptions","focusFromSearchKeypress","initialOptionsListRender","keyboardNav","preventIncorrectTabOrder","popperProps","activationType","autofocusOnSelected","closeOnSelect","labelField","searchMode","selectOnEnter","valueField","handleClearListener","optionHighlighted","handleSubmitSearch","highlightedOptionIndex","options","findIndex","option","setInputValue","handleMenuChange","open","focusInput","menuStateChange","emit","_a","inputEl","focus","undefined","setNextOptionValue","selectedOptionIndex","menuOptionSelect","value","optionId","getOptionId","setPreviousOptionValue","length","getParentEl","parent","tagName","getAttribute","arrowBehaviour","event","preventDefault","getMenuOptions","setHighlightedOption","highlightedIndex","menuOptions","timedOut","autoSetInputValueKeyboardOpen","target","id","selectHighlightedOption","isOpen","isOptionSelected","index","includes","deselectSelectedOptions","optionsToKeepSelected","selectedOptionIndexes","map","forEach","manualSetInputValueKeyboardOpen","isKeyboardCombination","shiftKey","metaKey","ctrlKey","getOptionHighlightedIndex","clickedMultiOptionIndex","Array","from","host","querySelectorAll","handleOptionSelect","handleSingleShiftSelect","menuOptionId","startOptionIndex","handleMultipleShiftSelect","endOptionIndex","stopImmediatePropagation","isMacDevice","emitSelectAllEvents","selectAllButton","focusOnSearchOrSelectInput","parentEl","setFocus","handleOptionClick","label","dataset","handleRetry","retryButtonClicked","handleRetryKeyDown","ev","keyPressed","handleBlur","relatedTarget","menu","removeAttribute","_b","contains","_c","_d","handleMouseDown","handleMenuKeyDown","autoSetValueOnMenuKeyDown","handleMenuKeyUp","handleSelectAllClick","handleSelectAllBlur","classList","remove","handleSelectAllFocus","add","handleSelectAllMouseDown","optionToSelectIndex","lastOptionInSelection","useFocusForSelection","firstOptionSelected","firstOptionInSelection","getFirstOptionInSelection","optionsToSelect","i","push","optionIndex","menuOptionSelectAll","select","icClear","emitMenuKeyPress","isNavKey","menuKeyPress","cancelBubble","menuId","getOptionAriaLabel","parentOption","ariaLabel","description","element","getSortedOptions","sorted","sort","optionA","optionB","recommended","isManualMode","scrollToSelected","selectedOption","querySelector","elTop","offsetTop","offsetHeight","scrollTop","setAttribute","loadUngroupedOptions","children","ungroupedOptionsSet","setMenuScrollbar","optionsHeight","clientHeight","handleTimeoutBlur","timeoutBlur","optionContent","selected","showCheckIcon","Fragment","loading","icon","variant","component","Check","displayOption","timeout","role","tabindex","onClick","onBlur","onMouseDown","xmlns","viewBox","fill","d","onKeyDown","watchOpenHandler","popperInstance","destroy","watchOptionsHandler","newOptions","some","opt","connectedCallback","disconnectedCallback","removeEventListener","addEventListener","disableAutoFiltering","onComponentRequiredPropUndefined","prop","propName","inputLabel","componentDidUpdate","inputValueInOptions","highlightedEl","componentDidRender","anchorEl","initPopperJs","handleClickOpen","handleKeyboardOpen","handleSetFirstOption","anchor","createPopper","Object","assign","placement","modifiers","offset","fallbackPlacements","rootBoundary","setExternalPopperProps","props","selectAllButtonText","hasNoResults","ref","onKeyUp","childOption","getOptionsWithoutGroupTitlesCount","onFocus"],"sources":["src/components/ic-input-component-container/ic-input-component-container.css?tag=ic-input-component-container","src/components/ic-input-component-container/ic-input-component-container.tsx","src/components/ic-input-container/ic-input-container.css?tag=ic-input-container","src/components/ic-input-container/ic-input-container.tsx","src/components/ic-menu/ic-menu.css?tag=ic-menu&encapsulation=scoped","src/components/ic-menu/ic-menu.tsx"],"sourcesContent":["ic-input-component-container {\n /**\n * @prop --border-color: Border colour of the input component container\n * @prop --border-color-hover: Border colour of the input component container on hover\n * @prop --border-color-pressed: Border colour of the input component container when pressed\n * @prop --border-color-disabled: Border colour of the input component container when disabled\n * @prop --border-color-error: Border colour of the error variant for input component container\n * @prop --border-color-error-hover: Border colour of the error hover variant for input component container\n * @prop --border-color-error-pressed: Border colour of the error pressed variant for input component container\n * @prop --border-color-warning: Border colour of the warning variant for input component container\n * @prop --border-color-warning-hover: Border colour of the warning hover variant for input component container\n * @prop --border-color-warning-pressed: Border colour of the warning pressed variant for input component container\n * @prop --border-color-success: Border colour of the success variant for input component container\n * @prop --border-color-success-hover: Border colour of the success hover variant for input component container\n * @prop --border-color-success-pressed: Border colour of the success pressed variant for input component container\n */\n\n display: flex;\n border: var(--ic-border-width) solid\n var(--border-color, var(--ic-architectural-400));\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-slow);\n height: 2.5rem;\n min-height: 2.5rem;\n width: var(--input-width, 20rem);\n padding: var(--ic-space-1px);\n background-color: var(--input-bg-color, var(--ic-color-background-primary));\n box-sizing: border-box;\n fill: var(--ic-architectural-400);\n outline: none;\n}\n\nic-input-component-container.ic-input-component-container-full-width {\n width: 100%;\n}\n\nic-input-component-container.ic-input-component-container-disabled,\nic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed\n var(--border-color-disabled, var(--ic-color-border-neutral-disabled));\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-small.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-large.ic-input-component-container-readonly {\n height: auto;\n background: transparent;\n}\n\nic-input-component-container.ic-input-component-container-readonly,\nic-input-component-container.ic-input-component-container-readonly:hover {\n border: none;\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error, var(--ic-color-border-error));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-error:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-hover, var(--ic-color-border-error-hover));\n}\n\nic-input-component-container.ic-input-component-container-error:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-error-pressed, var(--ic-color-border-error-pressed));\n}\n\nic-input-component-container.ic-input-component-container-warning {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning, var(--ic-color-border-warning));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-warning:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-hover, var(--ic-color-border-warning-hover));\n}\n\nic-input-component-container.ic-input-component-container-warning:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-warning-pressed, var(--ic-color-border-warning-pressed));\n}\n\nic-input-component-container.ic-input-component-container-success {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success, var(--ic-color-border-success));\n padding: 0;\n}\n\nic-input-component-container.ic-input-component-container-success:hover {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-hover, var(--ic-color-border-success-hover));\n}\n\nic-input-component-container.ic-input-component-container-success:focus-within {\n border: var(--ic-space-xxxs) solid\n var(--border-color-success-pressed, var(--ic-color-border-success-pressed));\n}\n\nic-input-component-container.ic-input-component-container-small {\n height: var(--ic-space-xl);\n min-height: var(--ic-space-xl);\n}\n\nic-input-component-container.ic-input-component-container-large {\n height: var(--ic-space-xxl);\n min-height: var(--ic-space-xxl);\n}\n\nic-input-component-container.ic-input-component-container-multiline {\n height: auto;\n}\n\nic-input-component-container .icon-container {\n margin-top: var(--ic-space-xxs);\n margin-left: 0.438rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container.ic-input-component-container-multiline\n .icon-container,\nic-input-component-container.ic-input-component-container-multiline.ic-input-component-container-small\n .icon-container {\n margin-top: 0.375rem;\n display: block;\n}\n\nic-input-component-container.ic-input-component-container-readonly\n .icon-container {\n margin-left: -0.313rem;\n}\n\nic-input-component-container.ic-input-component-container-disabled\n ::placeholder {\n display: none;\n}\n\nic-input-component-container .inline-success {\n margin: var(--ic-space-xs) 0.375rem;\n display: flex;\n align-items: center;\n}\n\nic-input-component-container .inline-success > svg {\n fill: var(--ic-input-component-container-success-icon-inline-color);\n height: 1.25rem;\n width: 1.25rem;\n}\n\nic-input-component-container:hover {\n border: var(--ic-input-component-container-hover-border);\n border-color: var(--border-color-hover, var(--ic-color-border-neutral-hover));\n color: var(--ic-action-monochrome-hover-dark);\n}\n\nic-input-component-container:focus {\n border: var(--ic-border-pressed);\n border-color: var(\n --border-color-pressed,\n var(--ic-color-border-neutral-pressed)\n );\n}\n\n.focus-indicator {\n display: flex;\n width: 100%;\n margin: -0.125rem;\n padding: 0.125rem;\n border-radius: var(--ic-border-radius);\n transition: var(--ic-easing-transition-fast);\n}\n\n.focus-indicator:focus-within,\n.focus-indicator-enabled {\n box-shadow: var(--ic-border-focus);\n}\n\n.focus-indicator.ic-input-component-container-dark:focus-within {\n box-shadow: var(--ic-border-focus);\n}\n\n@media (forced-colors: active) {\n /* Styles here only apply to Forced Colors Mode */\n ic-input-component-container,\n .focus-indicator {\n transition: none;\n }\n\n ic-input-component-container:focus-within {\n border: var(--ic-border-width) solid Highlight;\n outline: 0.125rem solid Highlight;\n }\n\n ic-input-component-container.ic-input-component-container-disabled,\n ic-input-component-container.ic-input-component-container-disabled:hover {\n border: var(--ic-border-width) dashed GrayText;\n }\n}\n","import { Component, Element, Host, Prop, Watch, h } from \"@stencil/core\";\n\nimport {\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcSizes,\n} from \"../../utils/types\";\nimport successIcon from \"../../assets/success-icon.svg\";\nimport {\n removeDisabledFalse,\n renderDynamicChildSlots,\n slotHasContent,\n} from \"../../utils/helpers\";\n\n/**\n * @slot left-icon - Content will be placed to the left of the input.\n */\n@Component({\n tag: \"ic-input-component-container\",\n styleUrl: \"ic-input-component-container.css\",\n})\nexport class InputComponentContainer {\n private hostMutationObserver: MutationObserver;\n @Element() el: HTMLIcInputComponentContainerElement;\n\n /**\n * If `true`, the disabled state will be set.\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 input component container will fill the width of the container it is in.\n */\n @Prop() fullWidth?: boolean = false;\n\n /**\n * If `true`, the input component container will allow for multiple lines.\n */\n @Prop() multiLine?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n /**\n * The size of the input component container component.\n */\n @Prop() size?: IcSizes = \"medium\";\n\n /**\n * If `true`, the validation will display inline.\n */\n @Prop() validationInline?: boolean = false;\n\n /**\n * The validation status of the input component container - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus?: IcInformationStatusOrEmpty = \"\";\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n this.hostMutationObserver = new MutationObserver((mutationList) =>\n renderDynamicChildSlots(mutationList, \"left-icon\", this)\n );\n this.hostMutationObserver.observe(this.el, { childList: true });\n }\n\n render() {\n const {\n size,\n validationStatus,\n disabled,\n readonly,\n multiLine,\n fullWidth,\n validationInline,\n } = this;\n\n return (\n <Host\n class={{\n [`ic-input-component-container-${size}`]: true,\n [`ic-input-component-container-${validationStatus}`]:\n validationStatus !== \"\" && !disabled && !readonly,\n \"ic-input-component-container-disabled\": !!disabled,\n \"ic-input-component-container-readonly\": !!readonly,\n \"ic-input-component-container-multiline\": !!multiLine,\n \"ic-input-component-container-full-width\": !!fullWidth,\n }}\n aria-disabled={disabled ? \"true\" : null}\n >\n <div class=\"focus-indicator\">\n {slotHasContent(this.el, \"left-icon\") && (\n <div class=\"icon-container\">\n <slot name=\"left-icon\" />\n </div>\n )}\n <slot></slot>\n\n {validationInline &&\n validationStatus === IcInformationStatus.Success && (\n <span class=\"inline-success\" innerHTML={successIcon} />\n )}\n </div>\n </Host>\n );\n }\n}\n","ic-input-container .component-container {\n display: flex;\n flex-direction: column;\n}\n","import { Component, Host, Prop, h } from \"@stencil/core\";\n\n@Component({\n tag: \"ic-input-container\",\n styleUrl: \"ic-input-container.css\",\n})\nexport class InputContainer {\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly?: boolean = false;\n\n render() {\n return (\n <Host>\n <div\n class={{\n [\"component-container\"]: true,\n [\"disabled\"]: !!this.disabled,\n [\"readonly\"]: !!this.readonly,\n }}\n >\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n","@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-menu: z-index of menu\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.ic-menu-open) .menu {\n transition: max-height var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n max-height: 0;\n width: var(--menu-width, var(--input-width, 20rem));\n color: var(--menu-item-text-color, var(--ic-menu-list-option-text-color));\n\n --ic-typography-color: var(\n --menu-item-text-color,\n var(--ic-menu-list-option-text-color)\n );\n\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n position: relative;\n z-index: var(--ic-z-index-menu);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n border-radius: var(--ic-border-radius);\n}\n\n:host(.ic-menu-open:not(.ic-menu-no-focus):focus-within) {\n box-shadow: var(--ic-border-focus);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.ic-select-select-all-focused) {\n box-shadow: var(--ic-elevation-overlay) !important;\n}\n\n#retry-button::part(button) {\n height: var(--ic-space-lg);\n}\n\n.small #retry-button::part(button) {\n height: var(--ic-space-md);\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n.menu {\n text-decoration: none;\n list-style-type: none;\n border-radius: 1px;\n background-color: var(\n --menu-bg-color,\n var(--ic-menu-list-option-background-color)\n );\n visibility: hidden;\n max-height: 0;\n overflow-y: hidden;\n}\n\n.menu:has(+ .option-bar) {\n border-radius: 0 0 1px 1px;\n}\n\n.menu-scroll {\n overflow-y: auto;\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.ic-menu-open) {\n max-height: none;\n display: flex;\n flex-direction: column-reverse;\n border: var(--ic-border-width) solid\n var(--menu-border-color, var(--ic-menu-border-color));\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.ic-menu-open) .menu {\n visibility: visible;\n max-height: calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs));\n}\n\n:host(.ic-menu-open) .option-bar {\n visibility: visible;\n}\n\n:host(.ic-menu-open) .select-all-button {\n display: block;\n}\n\n:host(.ic-menu-full-width) {\n width: 100%;\n}\n\n.option {\n padding: var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.loading-option p {\n margin-bottom: 0 !important;\n}\n\n.option:not(.loading-option) {\n justify-content: space-between;\n}\n\n:host(.ic-menu-small) .option {\n padding: var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n:host(.ic-menu-large) .option {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n.option:last-child {\n border-radius: 0 0 1px 1px;\n}\n\n:not(.menu:has(+ .option-bar)) .option:first-child {\n border-radius: 1px 1px 0 0;\n}\n\n.option:not(.disabled-option):hover {\n background-color: var(--ic-menu-list-option-hover-background-color);\n}\n\n.option:not(.disabled-option):active {\n background-color: var(--ic-menu-list-option-pressed-background-color);\n}\n\n.option:focus-visible {\n outline: var(--ic-hc-focus-outline);\n}\n\n.option:not(.disabled-option) .option-description {\n --ic-typography-color: var(\n --menu-item-desc-text-color,\n var(--ic-menu-list-option-description-text-color)\n );\n}\n\n.option .option-label {\n display: flex;\n flex-direction: row;\n align-items: top;\n}\n\n.option .option-label ic-typography {\n max-width: 100%;\n word-wrap: break-word;\n}\n\n.option .option-element {\n margin-top: var(--ic-space-xxs);\n}\n\n.option .option-icon {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n margin-top: var(--ic-space-xxs);\n margin-right: var(--ic-space-xxxs);\n}\n\n.option-text-container {\n pointer-events: none;\n width: 100%;\n}\n\n.option-text-container.show-check-icon {\n width: calc(var(--ic-space-lg) * 10 + var(--ic-space-xl));\n}\n\n.option.loading-option .option-text-container {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n color: var(--ic-menu-loading-list-option-text-color);\n\n --ic-typography-color: var(--ic-menu-loading-list-option-text-color);\n}\n\n.error-icon-svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n fill: var(--ic-atoms-status-icon-error);\n align-self: center;\n display: flex;\n margin-right: calc(var(--ic-space-xxs) * 1.2);\n}\n\n.loading-error-info {\n display: flex;\n}\n\n.check-icon {\n height: var(--ic-space-lg);\n min-width: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-xs);\n pointer-events: none;\n}\n\n.focused-option .check-icon * {\n fill: currentcolor;\n}\n\n.option-group-title {\n padding: var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);\n\n --ic-typography-color: var(--ic-menu-option-group-label-text-color);\n}\n\n:host(.ic-menu-small) .option-group-title {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs);\n}\n\n.last-recommended-option {\n border-bottom: var(--ic-menu-last-recommended-option-border);\n}\n\n.disabled-option {\n color: var(--ic-atoms-list-option-text-disabled-light);\n\n --ic-typography-color: var(--ic-atoms-list-option-text-disabled-light);\n\n cursor: default;\n pointer-events: none;\n}\n\n.focused-option,\n.focused-option .option-description {\n background-color: var(--ic-color-focus-inner) !important;\n color: var(--ic-atoms-list-option-text-focused-light) !important;\n\n --ic-typography-color: var(\n --ic-atoms-list-option-text-focused-light\n ) !important;\n}\n\n:host(.no-results) li {\n cursor: no-drop;\n}\n\n:host(.no-results) li:hover {\n background-color: transparent;\n}\n\n.option-bar {\n padding: var(--ic-space-xxs) var(--ic-space-xs);\n display: flex;\n align-items: center;\n justify-content: space-between;\n background-color: var(--ic-menu-option-bar-background-color);\n visibility: hidden;\n border-bottom: var(--ic-border-width) solid\n var(--ic-menu-option-bar-divider-color);\n border-radius: 1px 1px 0 0;\n}\n\n.option-bar p {\n margin-bottom: 0 !important;\n}\n\n:host(.ic-menu-large) .option-bar {\n padding: var(--ic-space-xs);\n}\n\n.select-all-button {\n display: none;\n}\n\n.select-all-button:focus {\n z-index: calc(var(--ic-z-index-menu) + 1);\n}\n\n@media (forced-colors: active) {\n .focused-option:focus {\n outline: none;\n border: 0.125rem solid transparent;\n }\n\n .disabled-option {\n color: GrayText;\n\n --ic-typography-color: GrayText;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n Method,\n State,\n Watch,\n Fragment,\n} from \"@stencil/core\";\nimport {\n createPopper,\n Instance as PopperInstance,\n Options,\n} from \"@popperjs/core\";\n\nimport {\n IcActivationTypes,\n IcMenuOption,\n IcSizes,\n IcMultiValueEventDetail,\n} from \"../../utils/types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport {\n getOptionsWithoutGroupTitlesCount,\n isMacDevice,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcOptionSelectEventDetail,\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n} from \"./ic-menu.types\";\nimport { IcSearchBarSearchModes } from \"../ic-search-bar/ic-search-bar.types\";\n\n@Component({\n tag: \"ic-menu\",\n styleUrl: \"ic-menu.css\",\n scoped: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Menu {\n private ACTIVE_DESCENDANT = \"aria-activedescendant\";\n private CLEAR_BUTTON_ID = \"clear-button\";\n private SEARCH_BAR_TAG = \"IC-SEARCH-BAR\";\n private disabledOptionSelected = false;\n private hasPreviouslyBlurred = false;\n private hasTimedOut = false;\n private isLoading = false;\n private isMultiSelect = false;\n private isSearchBar = false;\n private isSearchableSelect = false;\n private lastOptionSelected: number | null = null; // Index of last option selected\n private lastOptionFocused: number | null = null; // Index of last option focused\n private menu?: HTMLUListElement;\n private multiOptionClicked: string | null = null;\n private popperInstance: PopperInstance | null;\n private preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.\n private preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.\n private selectAllButton?: HTMLIcButtonElement;\n private shiftPressed = false;\n private ungroupedOptions: IcMenuOption[] = [];\n\n @Element() host: HTMLIcMenuElement;\n\n @State() focusFromSearchKeypress = false;\n @State() initialOptionsListRender = false;\n @State() keyboardNav = false;\n @State() optionHighlighted?: string;\n @State() preventIncorrectTabOrder = false;\n @State() menuOptions: IcMenuOption[];\n @State() popperProps: Partial<Options> = {};\n\n /**\n * Determines whether options manually set as values (by pressing 'Enter') when they receive focus using keyboard navigation.\n */\n @Prop() activationType: IcActivationTypes = \"automatic\";\n\n /**\n * The reference to an anchor element the menu will position itself from when rendered.\n */\n @Prop() anchorEl?: HTMLElement;\n\n /**\n * @internal If `true`, autofocus will be applied on selected item when menu is open.\n */\n @Prop() autofocusOnSelected = true;\n\n /**\n * If `true`, the menu will close when an option is selected.\n */\n @Prop() closeOnSelect = true;\n\n /**\n * If `true`, the menu will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The reference to the input element.\n */\n @Prop() inputEl?: HTMLElement;\n\n /**\n * The label for the input element.\n */\n @Prop() inputLabel!: string;\n\n /**\n * The custom name for the label field for IcMenuOption.\n */\n @Prop() labelField = \"label\";\n\n /**\n * The ID of the menu.\n */\n @Prop() menuId!: string;\n\n /**\n * If `true`, the menu will be displayed open.\n */\n @Prop({ reflect: true }) open!: boolean;\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (!this.open && this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n\n /**\n * @internal - The parent element if ic-menu is nested inside another component.\n */\n @Prop() parentEl?: HTMLElement;\n\n /**\n * Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\n */\n @Prop() searchMode: IcSearchBarSearchModes = \"navigation\";\n\n /**\n * @internal If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\n */\n @Prop() selectOnEnter: boolean = false;\n\n /**\n * The size of the menu.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * The possible menu selection options.\n */\n @Prop() options!: IcMenuOption[];\n @Watch(\"options\")\n watchOptionsHandler(newOptions: IcMenuOption[]): void {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n this.isLoading = newOptions.some((opt) => opt.loading);\n this.ungroupedOptions = [];\n this.loadUngroupedOptions();\n }\n\n /**\n * The value of the currently selected option - or array of values (if multiple options allowed).\n */\n @Prop() value!: string | string[];\n\n /**\n * The custom name for the value field for IcMenuOption.\n */\n @Prop() valueField = \"value\";\n\n /**\n * Emitted when the clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * @internal Emitted when key is pressed while menu is open.\n */\n @Event() menuKeyPress: EventEmitter<{ isNavKey: boolean; key: string }>;\n\n /**\n * @internal Emitted when an option has been highlighted.\n */\n @Event() menuOptionId: EventEmitter<IcMenuOptionIdEventDetail>;\n\n /**\n * @internal Emitted when an option is selected.\n */\n @Event() menuOptionSelect!: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * @internal Emitted when all options are selected or deselected.\n */\n @Event() menuOptionSelectAll!: EventEmitter<{ select: boolean }>;\n\n /**\n * @internal Emitted when state of menu changes (i.e. open or closed).\n */\n @Event() menuStateChange!: EventEmitter<IcMenuChangeEventDetail>;\n\n /**\n * @internal Emitted when the retry button is clicked.\n */\n @Event() retryButtonClicked: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * @internal Emitted when the timeout menu loses focus.\n */\n @Event() timeoutBlur: EventEmitter<{ ev: FocusEvent }>;\n\n /**\n * @internal Emitted when the ungrouped options have been set.\n */\n @Event() ungroupedOptionsSet: EventEmitter<{ options: IcMenuOption[] }>;\n\n connectedCallback(): void {\n if (this.parentEl) this.getParentEl(this.parentEl);\n\n if (this.isSearchBar) {\n if (this.searchMode === \"navigation\") this.setHighlightedOption(0);\n this.initialOptionsListRender = true;\n }\n }\n\n disconnectedCallback(): void {\n this.popperInstance?.destroy();\n this.parentEl?.removeEventListener(\"icClear\", this.handleClearListener);\n this.parentEl?.removeEventListener(\n \"icSubmitSearch\",\n this.handleSubmitSearch\n );\n }\n\n componentWillLoad(): void {\n this.loadUngroupedOptions();\n this.parentEl?.addEventListener(\"icClear\", this.handleClearListener);\n this.parentEl?.addEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n this.hasTimedOut = this.options?.some((opt) => opt.timedOut);\n this.isLoading = this.options?.some((opt) => opt.loading);\n }\n\n componentDidLoad(): void {\n if (\n this.isSearchBar &&\n (this.parentEl as HTMLIcSearchBarElement).disableAutoFiltering\n ) {\n this.focusFromSearchKeypress = true;\n }\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.open, propName: \"open\" },\n { prop: this.options, propName: \"options\" },\n { prop: this.menuId, propName: \"menu-id\" },\n { prop: this.inputLabel, propName: \"input-label\" },\n //NOTE: no check for value, input-el or anchor-el as otherwise get console errors on first load of select component\n ],\n \"Menu\"\n );\n }\n\n componentDidUpdate(): void {\n const inputValueInOptions = this.options.some(\n (option) => option[this.valueField] === this.value\n );\n\n if (\n this.menu &&\n this.open &&\n this.options.length !== 0 &&\n !this.preventMenuFocus\n ) {\n if (\n this.value &&\n this.keyboardNav &&\n inputValueInOptions &&\n this.autofocusOnSelected &&\n !this.isSearchableSelect\n ) {\n this.scrollToSelected(this.menu);\n } else if (this.selectOnEnter) {\n this.menu.focus();\n } else if (\n !!this.optionHighlighted &&\n !this.focusFromSearchKeypress &&\n !this.preventIncorrectTabOrder\n ) {\n const highlightedEl = this.host.querySelector(\n `li[data-value=\"${this.optionHighlighted}\"]`\n ) as HTMLElement;\n\n if (highlightedEl) {\n this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);\n highlightedEl.focus();\n }\n } else if (this.inputEl && this.inputEl.tagName !== \"INPUT\") {\n this.menu.focus();\n }\n }\n\n if (this.menu && this.open && !this.value && this.selectOnEnter) {\n this.scrollToSelected(this.menu);\n }\n\n this.preventMenuFocus = false;\n }\n\n componentDidRender(): void {\n if (this.open && !this.popperInstance && this.anchorEl) {\n this.initPopperJs(this.anchorEl);\n }\n\n if (this.open && !!this.options.length) {\n this.setMenuScrollbar();\n }\n }\n\n /**\n * @internal If menu is opened with the mouse, emit menuStateChange custom event.\n */\n @Method()\n async handleClickOpen(): Promise<void> {\n if (!this.preventClickOpen) {\n this.menuStateChange.emit({ open: !this.open });\n this.keyboardNav = false;\n }\n this.preventClickOpen = false;\n }\n\n /**\n * Used alongside activationType\n * If menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\n * @param {KeyboardEvent} event The keyboard event which is available when handleKeyboardOpen is invoked.\n */\n @Method()\n async handleKeyboardOpen(event: KeyboardEvent): Promise<void> {\n if (this.activationType === \"automatic\") {\n this.autoSetInputValueKeyboardOpen(event);\n } else {\n this.manualSetInputValueKeyboardOpen(event);\n }\n }\n\n /**\n * @internal Used to highlight the first option in the menu.\n */\n @Method()\n async handleSetFirstOption(): Promise<void> {\n this.setHighlightedOption(0);\n }\n\n /**\n * @internal Used to initialize popperJS with an anchor element.\n * 5/12/2023: Tested with Floating UI, however, discovered inconsistent\n * boundary behaviour so sticking with PopperJS.\n */\n @Method()\n async initPopperJs(anchor: HTMLElement): Promise<void> {\n // Placements set to \"-start\" to accommodate for custom menu width - menu should always be aligned to the left\n this.popperInstance = createPopper(anchor, this.host, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 7],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n ...this.popperProps,\n });\n }\n\n /**\n * @internal This method allows props to be added to the PopperJS createPopper instance outside of the menu\n * @param props object - createPopper props set externally\n */\n @Method()\n async setExternalPopperProps<T extends Partial<Options>>(props: T) {\n this.popperProps = props;\n }\n\n private handleClearListener = (): void => {\n this.optionHighlighted = \"\";\n };\n\n private handleSubmitSearch = (): void => {\n const highlightedOptionIndex = this.options.findIndex(\n (option) => option[this.valueField] === this.optionHighlighted\n );\n\n this.setInputValue(highlightedOptionIndex);\n };\n\n private handleMenuChange = (open: boolean, focusInput?: boolean): void => {\n this.menuStateChange.emit({ open, focusInput });\n\n if (!open) {\n if (focusInput !== false) {\n this.inputEl?.focus();\n this.preventClickOpen = false;\n }\n\n // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed\n if (this.isMultiSelect) {\n this.optionHighlighted = undefined;\n this.multiOptionClicked = null;\n }\n }\n };\n\n private setNextOptionValue = (selectedOptionIndex: number): void => {\n if (this.ungroupedOptions[selectedOptionIndex + 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex + 1][this.valueField],\n optionId: this.getOptionId(\n this.ungroupedOptions[selectedOptionIndex + 1][this.valueField]\n ),\n });\n } else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[0][this.valueField]),\n });\n }\n };\n\n private setPreviousOptionValue = (selectedOptionIndex: number): void => {\n if (this.ungroupedOptions[selectedOptionIndex - 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex - 1][this.valueField],\n optionId: this.getOptionId(\n this.ungroupedOptions[selectedOptionIndex - 1][this.valueField]\n ),\n });\n } else {\n this.menuOptionSelect.emit({\n value:\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ],\n optionId: this.getOptionId(\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ]\n ),\n });\n }\n };\n\n private getParentEl = (parent: HTMLElement) => {\n if (parent.tagName === this.SEARCH_BAR_TAG) {\n this.isSearchBar = true;\n } else if (parent.tagName === \"IC-SELECT\") {\n if (\n parent.getAttribute(\"searchable\") !== null &&\n parent.getAttribute(\"searchable\") !== undefined\n ) {\n this.isSearchableSelect = true;\n } else if (\n parent.getAttribute(\"multiple\") !== null &&\n parent.getAttribute(\"multiple\") !== undefined\n ) {\n this.isMultiSelect = true;\n }\n }\n };\n\n // Open menu when up or down arrow keys are pressed\n private arrowBehaviour = (event: KeyboardEvent): void => {\n event.preventDefault();\n this.handleMenuChange(true);\n };\n\n private getMenuOptions = () =>\n this.isSearchBar ? this.options : this.ungroupedOptions;\n\n // Set option that is focused and so should show focus state\n private setHighlightedOption = (highlightedIndex: number): void => {\n const menuOptions = this.getMenuOptions();\n\n menuOptions[highlightedIndex] &&\n !menuOptions[highlightedIndex].timedOut &&\n (this.optionHighlighted =\n menuOptions[highlightedIndex][this.valueField] || undefined);\n };\n\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is closed\n private autoSetInputValueKeyboardOpen = (event: KeyboardEvent) => {\n const selectedOptionIndex = this.ungroupedOptions.findIndex(\n (option) => option[this.valueField] === this.value\n );\n\n this.keyboardNav = false;\n\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setNextOptionValue(selectedOptionIndex);\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setPreviousOptionValue(selectedOptionIndex);\n break;\n case \" \":\n case \"Enter\":\n if ((event.target as HTMLElement).id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n break;\n }\n };\n\n private selectHighlightedOption = (\n options: IcMenuOption[],\n highlightedOptionIndex: number\n ) => {\n if (!this.isLoading && !this.hasTimedOut) {\n this.keyboardNav = true;\n }\n\n const isOpen: boolean =\n this.isSearchBar || this.isSearchableSelect || this.open;\n\n if (isOpen) {\n if (highlightedOptionIndex >= 0) {\n if (options[highlightedOptionIndex] !== undefined) {\n if (\n this.isSearchBar &&\n options[highlightedOptionIndex].disabled === true\n ) {\n this.disabledOptionSelected = true;\n } else {\n this.setInputValue(highlightedOptionIndex);\n }\n }\n } else {\n this.setInputValue(highlightedOptionIndex);\n }\n } else {\n this.handleMenuChange(true);\n }\n };\n\n // Check if option is selected based on the index of the option\n private isOptionSelected = (index: number) => {\n const menuOptions = this.getMenuOptions();\n\n return this.value\n ? this.value.includes(menuOptions[index][this.valueField])\n : false;\n };\n\n // Deselect currently selected options when shift pressed, but keep certain options selected\n private deselectSelectedOptions = (optionsToKeepSelected: number[]) => {\n const menuOptions = this.getMenuOptions();\n\n if (this.value) {\n const selectedOptionIndexes = (this.value as string[]).map((value) => {\n return menuOptions.findIndex(\n (option) => option[this.valueField] === value\n );\n });\n\n // Call setInputValue (which toggles the selected state) on options that need to be deselected\n selectedOptionIndexes.forEach(\n (index) =>\n !optionsToKeepSelected.includes(index) && this.setInputValue(index)\n );\n }\n };\n\n // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)\n private manualSetInputValueKeyboardOpen = (event: KeyboardEvent) => {\n const menuOptions = this.getMenuOptions();\n\n // For preventing focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed\n // (i.e. when user is likely in the middle of executing a keyboard combination to select options)\n const isKeyboardCombination =\n event.shiftKey || event.metaKey || event.ctrlKey;\n\n const highlightedOptionIndex = this.getOptionHighlightedIndex();\n\n const clickedMultiOptionIndex = menuOptions.findIndex(\n (option) => option[this.valueField] === this.multiOptionClicked\n );\n\n const getOptionId = (index: number): string =>\n Array.from(this.host.querySelectorAll(\"li\"))[index]?.id;\n\n // Space press should be equivalent to Enter when multi-select\n if (event.key === \" \" && this.isMultiSelect) {\n this.handleOptionSelect(event, highlightedOptionIndex);\n } else {\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the top of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n } else {\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex,\n menuOptions\n );\n\n if (highlightedOptionIndex < menuOptions.length - 1) {\n this.setHighlightedOption(highlightedOptionIndex + 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex + 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex + 1,\n menuOptions\n );\n } else {\n this.setHighlightedOption(0);\n this.menuOptionId.emit({\n optionId: getOptionId(0),\n });\n\n this.handleSingleShiftSelect(event, 0, menuOptions);\n }\n\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.isMultiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (this.multiOptionClicked) {\n // Set focus to option last clicked\n // Prevents it resetting to the bottom of the menu when user switches to using keyboard\n this.setHighlightedOption(clickedMultiOptionIndex);\n this.multiOptionClicked = null;\n } else {\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex,\n menuOptions\n );\n\n if (\n highlightedOptionIndex <= 0 ||\n highlightedOptionIndex > menuOptions.length + 1\n ) {\n this.setHighlightedOption(menuOptions.length - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(menuOptions.length - 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n menuOptions.length - 1,\n menuOptions\n );\n } else {\n this.setHighlightedOption(highlightedOptionIndex - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex - 1),\n });\n\n this.handleSingleShiftSelect(\n event,\n highlightedOptionIndex - 1,\n menuOptions\n );\n }\n\n // Deselect currently selected options if arrow was pressed for first time after shift is held\n if (this.isMultiSelect && this.shiftPressed) {\n this.deselectSelectedOptions([\n highlightedOptionIndex,\n this.getOptionHighlightedIndex(),\n ]);\n this.shiftPressed = false;\n }\n }\n\n this.lastOptionFocused = this.getOptionHighlightedIndex();\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"Home\": {\n const startOptionIndex = 0;\n\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(startOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(startOptionIndex),\n });\n\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(startOptionIndex);\n }\n\n this.lastOptionFocused = startOptionIndex;\n this.lastOptionSelected = startOptionIndex;\n break;\n }\n case \"End\": {\n const endOptionIndex = menuOptions.length - 1;\n\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(endOptionIndex);\n this.menuOptionId.emit({\n optionId: getOptionId(endOptionIndex),\n });\n\n if (event.shiftKey && event.ctrlKey) {\n this.handleMultipleShiftSelect(endOptionIndex);\n }\n\n this.lastOptionFocused = endOptionIndex;\n this.lastOptionSelected = endOptionIndex;\n break;\n }\n case \" \":\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n if (this.isSearchBar || this.isSearchableSelect) {\n break;\n } else {\n if ((event.target as HTMLElement).id !== this.CLEAR_BUTTON_ID) {\n this.handleMenuChange(true);\n }\n }\n break;\n case \"Enter\":\n event.preventDefault();\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.handleOptionSelect(event, highlightedOptionIndex);\n break;\n case \"Escape\":\n if (this.open) {\n event.stopImmediatePropagation();\n }\n this.handleMenuChange(false);\n this.menuOptionId.emit({ optionId: undefined });\n break;\n case \"a\":\n // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)\n // Otherwise, if a different OS, checks Ctrl key\n if (\n (isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey)\n ) {\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n break;\n case \"Shift\":\n case \"Tab\":\n if (event.key === \"Shift\") {\n this.shiftPressed = true;\n }\n if (this.isSearchBar) {\n this.keyboardNav = true;\n }\n if (this.isMultiSelect) {\n if (this.open && !event.shiftKey && this.selectAllButton) {\n event.preventDefault();\n this.selectAllButton.focus(); // Move focus to select all button instead of focused option\n this.preventMenuFocus = true;\n this.preventClickOpen = true;\n this.optionHighlighted = undefined; // Stop any option focus states showing when focus moved to select all button\n }\n } else {\n this.preventIncorrectTabOrder = true;\n }\n break;\n default:\n if (!isKeyboardCombination) {\n this.keyboardNav = false;\n }\n this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);\n }\n }\n };\n\n private setInputValue = (highlightedOptionIndex: number) => {\n const menuOptions = this.getMenuOptions();\n\n if (menuOptions[highlightedOptionIndex] !== undefined) {\n this.menuOptionSelect.emit({\n value: menuOptions[highlightedOptionIndex][this.valueField],\n });\n\n if (this.closeOnSelect) {\n this.optionHighlighted = undefined;\n this.menuOptionId.emit({ optionId: undefined });\n }\n }\n\n if (this.closeOnSelect) {\n if (!this.hasTimedOut) {\n this.handleMenuChange(false);\n } else {\n (this.parentEl as HTMLIcSearchBarElement).setFocus();\n }\n }\n };\n\n private handleOptionClick = (event: MouseEvent): void => {\n const { value, label } = (event.target as HTMLLIElement).dataset;\n\n if (this.isMultiSelect) {\n const menuOptions = this.getMenuOptions();\n const selectedOptionIndex = menuOptions.findIndex(\n (option) => option.value === value\n );\n\n this.handleOptionSelect(event, selectedOptionIndex, true);\n this.multiOptionClicked = value || null;\n } else {\n this.menuOptionSelect.emit({ value, label });\n this.handleMenuChange(false);\n }\n\n this.optionHighlighted = undefined;\n };\n\n private handleRetry = (): void => {\n this.retryButtonClicked.emit({ value: this.value });\n };\n\n private handleRetryKeyDown = (ev: KeyboardEvent): void => {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this.retryButtonClicked.emit({ value: this.value, keyPressed: ev.key });\n }\n };\n\n private handleBlur = (event: FocusEvent): void => {\n if (event.relatedTarget !== this.inputEl) {\n if (event.relatedTarget === this.selectAllButton) {\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n }\n\n if (\n !(\n this.menu?.contains(event.relatedTarget as HTMLElement) ||\n event.relatedTarget === this.selectAllButton\n )\n ) {\n this.handleMenuChange(false, this.hasPreviouslyBlurred);\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n } else {\n this.handleMenuChange(false);\n this.preventClickOpen = true;\n this.menu?.removeAttribute(this.ACTIVE_DESCENDANT);\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n }\n if (!this.isSearchBar) this.hasPreviouslyBlurred = !!event.relatedTarget;\n };\n\n private handleMouseDown = (event: Event): void => {\n event.preventDefault();\n };\n\n private handleMenuKeyDown = (event: KeyboardEvent) => {\n if (this.activationType === \"automatic\") {\n this.autoSetValueOnMenuKeyDown(event);\n } else if (this.activationType === \"manual\" && !this.isSearchBar) {\n this.manualSetInputValueKeyboardOpen(event);\n }\n };\n\n private handleMenuKeyUp = (event: KeyboardEvent): void => {\n if (event.key === \"Tab\" && event.shiftKey) {\n this.preventClickOpen = false;\n }\n if (event.key === \"Enter\" && this.disabledOptionSelected) {\n this.disabledOptionSelected = false;\n event.stopImmediatePropagation();\n }\n\n if (event.key === \"Shift\") {\n this.shiftPressed = false;\n }\n };\n\n private handleSelectAllClick = () => {\n this.keyboardNav = false;\n this.menu?.focus();\n this.emitSelectAllEvents();\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n\n private handleSelectAllBlur = (event: FocusEvent) => {\n this.host.classList.remove(\"ic-select-select-all-focused\");\n if (!this.menu?.contains(event.relatedTarget as HTMLElement)) {\n this.handleMenuChange(false, false);\n }\n };\n\n private handleSelectAllFocus = () => {\n this.host.classList.add(\"ic-select-select-all-focused\");\n this.lastOptionFocused = null;\n this.lastOptionSelected = null;\n };\n\n // Fix for Safari - select all button click was causing menu to close\n private handleSelectAllMouseDown = (event: Event) => {\n event.preventDefault();\n };\n\n // When shift key is being used to select contiguous options one by one on a multi-select\n // I.e. holding shift and pressing up and down arrow keys\n private handleSingleShiftSelect = (\n event: KeyboardEvent,\n optionToSelectIndex: number,\n options: IcMenuOption[]\n ) => {\n if (\n this.isMultiSelect &&\n event.shiftKey &&\n !this.isOptionSelected(optionToSelectIndex)\n ) {\n this.selectHighlightedOption(options, optionToSelectIndex);\n this.lastOptionSelected = optionToSelectIndex;\n }\n };\n\n // When shift key is being used to select multiple options at once on a multi-select\n // I.e. holding shift when selecting another option\n private handleMultipleShiftSelect = (\n lastOptionInSelection: number,\n useFocusForSelection = false,\n firstOptionSelected: number | null = null\n ) => {\n this.shiftPressed = false;\n\n const firstOptionInSelection =\n firstOptionSelected === null\n ? this.getFirstOptionInSelection(useFocusForSelection)\n : firstOptionSelected;\n if (firstOptionInSelection !== null) {\n const optionsToSelect = [];\n\n if (firstOptionInSelection < lastOptionInSelection) {\n for (\n let i = firstOptionInSelection;\n i < lastOptionInSelection + 1;\n i++\n ) {\n optionsToSelect.push(i);\n }\n } else {\n for (\n let i = firstOptionInSelection;\n i > lastOptionInSelection - 1;\n i--\n ) {\n optionsToSelect.push(i);\n }\n }\n\n optionsToSelect.forEach(\n (optionIndex) =>\n !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex)\n );\n this.deselectSelectedOptions(optionsToSelect);\n }\n };\n\n private handleOptionSelect = (\n event: KeyboardEvent | MouseEvent,\n optionIndex: number,\n useFocusForSelection = false\n ) => {\n const menuOptions = this.getMenuOptions();\n const firstOptionInSelection =\n this.getFirstOptionInSelection(useFocusForSelection);\n if (event.shiftKey && firstOptionInSelection !== null) {\n this.handleMultipleShiftSelect(\n optionIndex,\n useFocusForSelection,\n firstOptionInSelection\n );\n } else {\n this.selectHighlightedOption(menuOptions, optionIndex);\n }\n\n this.lastOptionFocused = optionIndex;\n this.lastOptionSelected = optionIndex;\n };\n\n private getFirstOptionInSelection = (\n useFocusForSelection: boolean\n ): number | null => {\n return useFocusForSelection && this.lastOptionFocused !== null\n ? this.lastOptionFocused\n : this.lastOptionSelected !== null\n ? this.lastOptionSelected\n : null;\n };\n\n private emitSelectAllEvents = () => {\n // Select all if there is either no value or not all options are selected\n // 'true' means select all, 'false' means clear all\n this.menuOptionSelectAll.emit({\n select:\n !this.value || !(this.value?.length === this.ungroupedOptions.length),\n });\n // Emit clear event if all options are selected\n if (this.value?.length === this.ungroupedOptions.length) {\n this.icClear.emit();\n }\n };\n\n private emitMenuKeyPress = (isNavKey: boolean, key: string) => {\n this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });\n };\n\n // Determines keyboard behaviour when selection is automatic\n // (i.e. you don't have to press Enter select an option - just focus on it)\n // and menu is focused\n private autoSetValueOnMenuKeyDown = (event: KeyboardEvent): void => {\n event.cancelBubble = true;\n const selectedOptionIndex = this.ungroupedOptions.findIndex(\n (option) => option[this.valueField] === this.value\n );\n\n const isSearchableSelect =\n !!this.inputEl && this.inputEl.tagName === \"INPUT\";\n\n this.keyboardNav = false;\n\n switch (event.key) {\n case \" \":\n event.preventDefault();\n break;\n case \"ArrowUp\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setPreviousOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"ArrowDown\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setNextOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"Home\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"End\":\n this.menuOptionSelect.emit({\n value:\n this.ungroupedOptions[this.ungroupedOptions.length - 1][\n this.valueField\n ],\n });\n this.keyboardNav = true;\n break;\n case \"Enter\":\n !this.hasTimedOut && this.handleMenuChange(false);\n break;\n case \"Escape\":\n this.handleMenuChange(false);\n break;\n case \"Backspace\":\n if (isSearchableSelect) {\n this.inputEl?.focus();\n }\n break;\n case \"Shift\":\n break;\n default:\n if (isSearchableSelect && event.key !== \"Tab\" && !this.hasTimedOut) {\n this.inputEl?.focus();\n }\n if (event.key.length === 1) {\n this.keyboardNav = true;\n }\n break;\n }\n this.emitMenuKeyPress(this.keyboardNav, event.key);\n };\n\n private getOptionId = (value: string): string => {\n return `${this.menuId}-${value}`;\n };\n\n private getOptionAriaLabel = (\n option: IcMenuOption,\n parentOption?: IcMenuOption\n ): string => {\n let ariaLabel = option[this.labelField];\n\n if (option.description) {\n ariaLabel = `${ariaLabel}, ${option.description}`;\n }\n\n if (option.element) {\n ariaLabel = `${ariaLabel}, ${option.element.ariaLabel}`;\n }\n\n if (parentOption) {\n return `${ariaLabel}, ${parentOption[this.labelField]} group`;\n } else {\n return ariaLabel;\n }\n };\n\n private getSortedOptions = (options: IcMenuOption[]): IcMenuOption[] => {\n let sorted: IcMenuOption[] = [];\n if (options.sort) {\n sorted = options.sort((optionA, optionB) =>\n optionA.recommended && !optionB.recommended ? -1 : 0\n );\n }\n return sorted;\n };\n\n private getOptionHighlightedIndex = () => {\n const menuOptions = this.getMenuOptions();\n\n return menuOptions.findIndex(\n (option) => option[this.valueField] === this.optionHighlighted\n );\n };\n\n private isManualMode = this.activationType === \"manual\";\n\n private scrollToSelected = (menu: HTMLUListElement) => {\n const selectedOption = this.selectOnEnter\n ? (this.host.querySelector(\n `li[data-value=\"${this.optionHighlighted}\"]`\n ) as HTMLElement)\n : (menu.querySelector(\".option[aria-selected='true']\") as HTMLElement);\n\n if (selectedOption) {\n const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;\n if (\n elTop > menu.scrollTop + menu.offsetHeight ||\n elTop < menu.scrollTop + menu.offsetHeight\n ) {\n menu.scrollTop = selectedOption.offsetTop;\n }\n // 'aria-activedescendant' affects screen reader focus\n // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant\n this.menu?.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);\n selectedOption.focus();\n }\n };\n\n // Set 'ungroupedOptions' variable and emit its value\n // - this is all the options with disabled options and group titles removed\n private loadUngroupedOptions = () => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (option.children) {\n option.children.map(\n (option) => !option.disabled && this.ungroupedOptions.push(option)\n );\n } else if (!option.disabled) {\n this.ungroupedOptions.push(option);\n }\n });\n }\n this.ungroupedOptions = this.getSortedOptions(this.ungroupedOptions);\n this.ungroupedOptionsSet.emit({ options: this.ungroupedOptions });\n };\n\n private setMenuScrollbar = () => {\n let optionsHeight = 0;\n this.host\n .querySelectorAll(\".option, .option-group-title\")\n .forEach((option) => (optionsHeight += option.clientHeight));\n\n if (optionsHeight >= 320) {\n this.menu?.classList.add(\"menu-scroll\");\n }\n };\n\n private handleTimeoutBlur = (ev: FocusEvent) => {\n this.timeoutBlur.emit({ ev });\n };\n\n private focusOnSearchOrSelectInput(\n menuOptions: IcMenuOption[],\n highlightedOptionIndex: number\n ) {\n if (!menuOptions[highlightedOptionIndex]) return;\n\n if (this.isSearchBar) {\n (this.parentEl as HTMLIcSearchBarElement).setFocus();\n if (this.searchMode === \"navigation\") this.setHighlightedOption(0);\n }\n\n if (this.isSearchableSelect) {\n (this.parentEl as HTMLIcSelectElement).setFocus();\n }\n\n this.focusFromSearchKeypress = true;\n }\n\n private optionContent = (option: IcMenuOption, selected: boolean) => {\n const showCheckIcon =\n !!option[this.valueField] &&\n !!this.value &&\n selected &&\n this.parentEl?.tagName !== this.SEARCH_BAR_TAG;\n\n return (\n <Fragment>\n {option.loading && <ic-loading-indicator size=\"icon\" />}\n <div\n class={{\n \"option-text-container\": true,\n \"show-check-icon\": showCheckIcon,\n }}\n >\n <div class=\"option-label\">\n {option.icon && (\n <div\n class=\"option-icon\"\n innerHTML={option.icon}\n aria-hidden=\"true\"\n ></div>\n )}\n <ic-typography variant=\"body\" aria-hidden=\"true\">\n {option[this.labelField]}\n </ic-typography>\n </div>\n {option.description && (\n <ic-typography\n id={`${this.getOptionId(option[this.valueField])}-description`}\n class=\"option-description\"\n variant=\"caption\"\n aria-hidden=\"true\"\n >\n <p>{option.description}</p>\n </ic-typography>\n )}\n {option.element && (\n <div\n class=\"option-element\"\n innerHTML={option.element.component}\n aria-hidden=\"true\"\n ></div>\n )}\n </div>\n {showCheckIcon && <span class=\"check-icon\" innerHTML={Check} />}\n </Fragment>\n );\n };\n\n private displayOption = (\n option: IcMenuOption,\n selected: boolean,\n index: number,\n parentOption?: IcMenuOption\n ): HTMLLIElement => {\n const {\n open,\n keyboardNav,\n isManualMode,\n initialOptionsListRender,\n optionHighlighted,\n options,\n } = this;\n\n return (\n <li\n id={this.getOptionId(option[this.valueField])}\n class={{\n option: true,\n \"focused-option\": isManualMode\n ? (keyboardNav || initialOptionsListRender) &&\n option[this.valueField] === optionHighlighted\n : keyboardNav && selected,\n \"last-recommended-option\": !!(\n option.recommended &&\n options[index + 1] &&\n !options[index + 1].recommended\n ),\n \"disabled-option\": !!option.disabled,\n \"loading-option\": !!option.loading,\n timeout: !!option.timedOut,\n }}\n role=\"option\"\n tabindex={\n open &&\n (selected || option[this.valueField] === optionHighlighted) &&\n keyboardNav\n ? \"0\"\n : \"-1\"\n }\n aria-label={this.getOptionAriaLabel(option, parentOption)}\n aria-selected={selected ? \"true\" : \"false\"}\n aria-disabled={option.disabled ? \"true\" : \"false\"}\n onClick={\n !option.timedOut && !option.loading\n ? this.handleOptionClick\n : undefined\n }\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n data-value={option[this.valueField]}\n data-label={option[this.labelField]}\n >\n {option.timedOut ? (\n <Fragment>\n <div class=\"loading-error-info\">\n <svg\n class=\"error-icon-svg\"\n aria-labelledby=\"error-title\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"#000000\"\n >\n <title id=\"error-title\">Error</title>\n <g id=\"close-octagon\">\n <path\n id=\"Vector\"\n d=\"M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41\"\n />\n </g>\n </svg>\n <ic-typography variant=\"label\">\n {option[this.labelField]}\n </ic-typography>\n </div>\n <ic-button\n size=\"small\"\n variant=\"tertiary\"\n onClick={this.handleRetry}\n onKeyDown={this.handleRetryKeyDown}\n onBlur={this.handleTimeoutBlur}\n id=\"retry-button\"\n >\n Retry\n </ic-button>\n </Fragment>\n ) : (\n this.optionContent(option, selected)\n )}\n </li>\n );\n };\n\n render() {\n const {\n inputLabel,\n options,\n menuId,\n value,\n fullWidth,\n hasTimedOut,\n isLoading,\n size,\n open,\n inputEl,\n keyboardNav,\n parentEl,\n SEARCH_BAR_TAG,\n } = this;\n\n const selectAllButtonText = `${\n value?.length === this.ungroupedOptions.length ? \"Clear\" : \"Select\"\n } all`;\n\n const hasNoResults = this.host.classList.contains(\"no-results\");\n\n return (\n <Host\n class={{\n \"ic-menu-full-width\": !!fullWidth,\n \"ic-menu-no-focus\":\n (inputEl?.tagName === \"INPUT\" &&\n parentEl?.tagName !== SEARCH_BAR_TAG) ||\n hasTimedOut ||\n isLoading,\n [`ic-menu-${size}`]: true,\n \"ic-menu-open\": open && options.length !== 0,\n \"ic-menu-multiple\": this.isMultiSelect,\n }}\n >\n {options.length !== 0 && (\n <ul\n id={menuId}\n class=\"menu\"\n role=\"listbox\"\n aria-label={`${inputLabel} pop-up`}\n aria-multiselectable={this.isMultiSelect ? \"true\" : \"false\"}\n tabindex={\n open &&\n !keyboardNav &&\n (inputEl?.tagName !== \"INPUT\" ||\n parentEl?.tagName === SEARCH_BAR_TAG)\n ? \"0\"\n : \"-1\"\n }\n ref={(el) => (this.menu = el)}\n onKeyDown={this.handleMenuKeyDown}\n onKeyUp={this.handleMenuKeyUp}\n onBlur={this.handleBlur}\n >\n {this.getSortedOptions(options).map((option, index) => {\n if (option.children) {\n if (option.children.length > 0) {\n return (\n <div>\n <ic-typography\n class=\"option-group-title\"\n role=\"presentation\"\n variant=\"subtitle-small\"\n >\n <p>{option[this.labelField]}</p>\n </ic-typography>\n {option.children.map(\n (childOption) =>\n childOption.label &&\n this.displayOption(\n childOption,\n this.isMultiSelect\n ? value?.includes(childOption[this.valueField])\n : childOption[this.valueField] === value,\n index,\n option\n )\n )}\n </div>\n );\n } else {\n return null;\n }\n } else {\n // Display option only if it has a label (rather than displaying an empty space)\n return (\n option.label &&\n this.displayOption(\n option,\n this.isMultiSelect\n ? value?.includes(option[this.valueField])\n : option[this.valueField] === value,\n index\n )\n );\n }\n })}\n </ul>\n )}\n {options.length !== 0 &&\n this.isMultiSelect &&\n !isLoading &&\n !hasTimedOut &&\n !hasNoResults && (\n <div class=\"option-bar\">\n <ic-typography>\n <p>{`${\n value ? value.length : 0\n }/${getOptionsWithoutGroupTitlesCount(\n this.options\n )} selected`}</p>\n </ic-typography>\n <ic-button\n class=\"select-all-button\"\n aria-label={`${selectAllButtonText} options for ${inputLabel}`}\n ref={(el) => (this.selectAllButton = el)}\n variant=\"tertiary\"\n onClick={this.handleSelectAllClick}\n onMouseDown={this.handleSelectAllMouseDown}\n onBlur={this.handleSelectAllBlur}\n onFocus={this.handleSelectAllFocus}\n size={size === \"small\" ? \"small\" : \"medium\"}\n >\n {selectAllButtonText}\n </ic-button>\n </div>\n )}\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icToggleButtonCss","IcToggleButtonStyle0","TRACKED_ATTRIBUTES","ToggleButton","constructor","hostRef","this","checked","disabled","fullWidth","iconPlacement","loading","monochrome","size","theme","tooltipPlacement","variant","handleFocus","ev","stopImmediatePropagation","handleClick","icToggleChecked","emit","watchDisabledHandler","removeDisabledFalse","el","componentWillLoad","isSlottedInGroup","parentAttributes","_a","parentElement","attributes","i","length","attribute","getNamedItem","name","value","componentDidLoad","onComponentRequiredPropUndefined","prop","accessibleLabel","label","propName","handleHostClick","e","render","iconVariant","h","Host","key","class","onFocus","onClick","title","isSlotUsed","slot"],"sources":["src/components/ic-toggle-button/ic-toggle-button.css?tag=ic-toggle-button&encapsulation=shadow","src/components/ic-toggle-button/ic-toggle-button.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/* VARIABLES FOR IC-TOGGLE-BUTTON-GROUP */\n:host {\n --toggle-button-border: var(--ic-toggle-button-unselected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-unselected-border-hover);\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-hover\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-pressed\n );\n}\n\n:host(:not(.expand-toggle-group-child)) {\n display: inline-block;\n border-radius: var(--ic-border-radius);\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-full-width:not(.expand-toggle-group-child)) {\n width: 100%;\n}\n\n:host(.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text);\n --toggle-button-border-hover: var(--ic-toggle-button-selected-border-hover);\n --toggle-button-text-colour-hover: var(--ic-toggle-button-selected-text);\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed\n );\n --toggle-button-text-colour-active: var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-monochrome) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-monochrome);\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-hover: var(\n --ic-toggle-button-unselected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-unselected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-unselected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-monochrome);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-monochrome);\n --toggle-button-border-hover: var(\n --ic-toggle-button-selected-border-hover-monochrome\n );\n --toggle-button-text-colour-hover: var(\n --ic-toggle-button-selected-text-monochrome\n );\n --toggle-button-border-active: var(\n --ic-toggle-button-selected-border-pressed-monochrome\n );\n --toggle-button-text-colour-active: var(\n --ic-toggle-button-selected-text-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled) {\n --toggle-button-border: var(--ic-toggle-button-unselected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-unselected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-unselected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-unselected-text-disabled-monochrome\n );\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) {\n --toggle-button-border: var(--ic-toggle-button-selected-border-disabled);\n --toggle-button-text-colour: var(--ic-toggle-button-selected-text-disabled);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome) {\n --toggle-button-border: var(\n --ic-toggle-button-selected-border-disabled-monochrome\n );\n --toggle-button-text-colour: var(\n --ic-toggle-button-selected-text-disabled-monochrome\n );\n}\n\n:host(.expand-toggle-group-child) ::part(button) {\n width: 100%;\n}\n\n:host(.expand-toggle-group-child:not(.ic-toggle-button-loading))\n ::part(button) {\n min-height: inherit;\n height: auto;\n}\n\n:host ic-button {\n --icon-width: var(--ic-space-lg);\n --icon-height: var(--ic-space-lg);\n}\n\n:host(.expand-toggle-group-child) ic-button {\n min-width: 100%;\n min-height: 100%;\n height: 100%;\n}\n\n:host(.expand-toggle-group-child) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-default),\n var(--ic-border-focus);\n}\n\n:host(.expand-toggle-group-child.ic-toggle-button-light) ::part(button):focus,\n:host(.expand-toggle-group-child.ic-toggle-button-dark) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs) var(--ic-action-monochrome-dark),\n var(--ic-border-focus);\n}\n\n:host(:focus) {\n z-index: 1;\n}\n\n:host ::part(button) {\n border: none;\n color: var(--toggle-button-text-colour);\n}\n\n:host ::part(button):hover {\n color: var(--toggle-button-text-colour-hover);\n background-color: var(--ic-toggle-button-unselected-background-hover);\n}\n\n:host ::part(button):active {\n color: var(--toggle-button-text-colour-active);\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host ::part(button):focus {\n border: var(--ic-border-width) solid var(--toggle-button-border);\n}\n\n:host ::part(button):hover:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host ::part(button):active:focus {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(.ic-toggle-button-disabled) ::part(button) {\n color: var(--toggle-button-text-colour);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:hover) {\n border: var(--ic-border-width) solid var(--toggle-button-border-hover);\n}\n\n:host(:not(.expand-toggle-group-child)):has(ic-button:active) {\n border: var(--ic-border-width) solid var(--toggle-button-border-active);\n}\n\n:host(:not(.expand-toggle-group-child).ic-toggle-button-disabled) {\n border: var(--ic-border-width) dashed var(--toggle-button-border);\n}\n\n:host(.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background);\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-border-focus),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: var(--ic-toggle-button-selected-background-hover);\n}\n\n:host(.ic-toggle-button-checked) ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-checked) ::part(button):active {\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):hover {\n background-color: var(\n --ic-toggle-button-unselected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome) ::part(button):active {\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked) ::part(button) {\n background-color: var(--ic-toggle-button-selected-background-monochrome);\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):hover {\n background-color: var(\n --ic-toggle-button-selected-background-hover-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active,\n:host(.ic-toggle-button-icon.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):active {\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-monochrome.ic-toggle-button-checked)\n ::part(button):focus {\n box-shadow: inset 0 0 0 var(--ic-space-xxxs)\n var(--ic-toggle-button-selected-text),\n var(--ic-border-focus);\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button) {\n background-color: transparent;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked) ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button),\n:host(.ic-toggle-button-icon.ic-toggle-button-disabled.ic-toggle-button-checked.ic-toggle-button-monochrome)\n ::part(button)::before {\n background-image: radial-gradient(\n var(--ic-toggle-button-selected-background-disabled-monochrome) 95%,\n white 20%\n );\n background-repeat: no-repeat;\n}\n\n:host(.ic-toggle-button-icon) ::part(button) {\n height: calc(var(--ic-space-xl) + var(--ic-space-xs));\n width: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-toggle-button-icon) ::part(button):active {\n background-color: var(--ic-action-default-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-dark) ::part(button):active {\n background-color: var(--ic-action-dark-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-light) ::part(button):active {\n background-color: var(--ic-action-light-bg-pressed);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-small) ::part(button) {\n height: var(--ic-space-xl);\n width: var(--ic-space-xl);\n}\n\n:host(.ic-toggle-button-icon.ic-toggle-button-large) ::part(button) {\n height: var(--ic-space-xxl);\n width: var(--ic-space-xxl);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-selected-background-pressed);\n}\n\n:host(.ic-toggle-button-loading) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed\n );\n\n background-color: var(--ic-toggle-button-unselected-background-pressed);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-loading-bar);\n}\n\n:host(.ic-toggle-button-loading) ::part(ic-loading-container) {\n --inner-color: var(--ic-toggle-button-selected-loading-bar);\n}\n\n:host(.ic-toggle-button-checked.ic-toggle-button-loading.ic-toggle-button-monochrome)\n ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-selected-background-pressed-monochrome\n );\n}\n\n:host(.ic-toggle-button-loading.ic-toggle-button-monochrome) ::part(button) {\n --loading-button-background: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n\n background-color: var(\n --ic-toggle-button-unselected-background-pressed-monochrome\n );\n}\n\n@media (forced-colors: active) {\n :host(.ic-toggle-button-checked) ::part(button),\n :host(.ic-toggle-button-checked) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-light) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-dark) ::part(button):hover {\n background-color: Highlight;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-disabled) ::part(button) {\n background-color: GrayText;\n }\n\n :host(.ic-toggle-button-checked.ic-toggle-button-loading) ::part(button),\n :host(.ic-toggle-button-checked.ic-toggle-button-loading)\n ::part(button):hover {\n --loading-button-background: Highlight;\n }\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n Event,\n EventEmitter,\n Listen,\n h,\n Watch,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isSlottedInGroup,\n} from \"../../utils/helpers\";\nimport {\n IcSizes,\n IcThemeMode,\n IcIconPlacementOptions,\n IcButtonTooltipPlacement,\n} from \"../../utils/types\";\n\nconst TRACKED_ATTRIBUTES = [\n \"loading\",\n \"disabled\",\n \"full-width\",\n \"icon-placement\",\n \"variant\",\n \"size\",\n \"theme\",\n \"monochrome\",\n];\n\n/**\n * @slot icon - Content will be displayed alongside the toggle button label.\n * @slot badge - Badge component overlaying the top right of the toggle button.\n */\n\n@Component({\n tag: \"ic-toggle-button\",\n styleUrl: \"ic-toggle-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class ToggleButton {\n @Element() el: HTMLIcToggleButtonElement;\n\n /**\n * The accessible label that will be applied to the toggle button. This is required for the icon variant of toggle buttons.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * If `true`, the toggle button will be in a checked state.\n */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /**\n * If `true`, the toggle button will be in disabled state.\n */\n @Prop({ mutable: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the toggle button will fill the width of the container.\n */\n @Prop({ mutable: true }) fullWidth = false;\n\n /**\n * The placement of the icon in relation to the toggle button label.\n */\n @Prop() iconPlacement: IcIconPlacementOptions = \"left\";\n\n /**\n * The label to display in the toggle button. This is required for the default variant of toggle buttons.\n */\n @Prop() label?: string;\n\n /**\n * If `true`, the toggle button will be in loading state.\n */\n @Prop({ mutable: true }) loading = false;\n\n /**\n * If `true`, the toggle button will display as black in the light theme, and white in dark theme.\n */\n @Prop({ mutable: true }) monochrome = false;\n\n /**\n * The size of the toggle button to be displayed.\n */\n @Prop({ mutable: true }) 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({ mutable: true }) theme: IcThemeMode = \"inherit\";\n\n /**\n * The position of the tooltip in relation to the toggle button.\n */\n @Prop() tooltipPlacement: IcButtonTooltipPlacement = \"bottom\";\n\n /**\n * The variant of the toggle button.\n */\n @Prop({ reflect: true, mutable: true }) variant: \"default\" | \"icon\" =\n \"default\";\n\n /**\n * Emitted when the user clicks a toggle button.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n if (!isSlottedInGroup(this.el)) return;\n\n const parentAttributes = this.el.parentElement?.attributes;\n if (!parentAttributes) return;\n\n for (let i = 0; i < TRACKED_ATTRIBUTES.length; i++) {\n const attribute = parentAttributes.getNamedItem(TRACKED_ATTRIBUTES[i]);\n if (!attribute) continue;\n\n switch (attribute.name) {\n case TRACKED_ATTRIBUTES[0]:\n this.loading = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[1]:\n this.disabled = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[2]:\n this.fullWidth = attribute.value !== \"false\";\n break;\n case TRACKED_ATTRIBUTES[3]:\n this.iconPlacement = attribute.value as IcIconPlacementOptions;\n break;\n case TRACKED_ATTRIBUTES[4]:\n this.variant = attribute.value as \"default\" | \"icon\";\n break;\n case TRACKED_ATTRIBUTES[5]:\n this.size = attribute.value as IcSizes;\n break;\n case TRACKED_ATTRIBUTES[6]:\n this.theme = attribute.value as IcThemeMode;\n break;\n case TRACKED_ATTRIBUTES[7]:\n this.monochrome = attribute.value !== \"false\";\n break;\n }\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [\n {\n prop: this.variant === \"icon\" ? this.accessibleLabel : this.label,\n propName: this.variant === \"icon\" ? \"accessible-label\" : \"label\",\n },\n ],\n \"Toggle button\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n } else if (!this.loading) {\n this.checked = !this.checked;\n }\n }\n\n private handleFocus = (ev: FocusEvent) => {\n ev.stopImmediatePropagation();\n };\n\n private handleClick = () => {\n if (!this.loading && !this.disabled) {\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n };\n\n render() {\n const {\n accessibleLabel,\n checked,\n disabled,\n fullWidth,\n iconPlacement,\n monochrome,\n label,\n loading,\n size,\n theme,\n tooltipPlacement,\n variant,\n } = this;\n\n const iconVariant = variant === \"icon\";\n\n return (\n <Host\n class={{\n \"ic-toggle-button-checked\": checked,\n \"ic-toggle-button-disabled\": disabled,\n \"ic-toggle-button-icon\": iconVariant,\n \"ic-toggle-button-loading\": loading,\n \"ic-toggle-button-monochrome\": monochrome,\n \"ic-toggle-button-full-width\": fullWidth,\n [`ic-toggle-button-${size}`]: true,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleFocus}\n >\n <ic-button\n aria-pressed={`${checked}`}\n variant={iconVariant ? \"icon\" : \"secondary\"}\n onClick={this.handleClick}\n title={accessibleLabel}\n aria-label={`${accessibleLabel ? accessibleLabel : label}, ${\n checked ? \"ticked\" : \"unticked\"\n }`}\n disabled={disabled}\n size={size}\n fullWidth={fullWidth}\n loading={loading}\n tooltipPlacement={tooltipPlacement}\n >\n {!iconVariant && label}\n <slot />\n {isSlotUsed(this.el, \"icon\") && (\n <slot name=\"icon\" slot={`${iconPlacement}-icon`}></slot>\n )}\n {isSlotUsed(this.el, \"badge\") && (\n <slot name=\"badge\" slot=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as o,g as a}from"./p-8e4e97b4.js";import{f as r,s}from"./p-70abcb2b.js";const n='/*! 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;color:var(--ic-typography-color, var(--ic-color-text-primary))}:host(.ic-typography-vertical-margins-h1){margin:0 0 var(--ic-space-xl)}:host(.ic-typography-vertical-margins-h2){margin:var(--ic-space-xxl) 0 var(--ic-space-lg)}:host(.ic-typography-vertical-margins-h3){margin:var(--ic-space-xl) 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-h4){margin:var(--ic-space-lg) 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-subtitle-large),:host(.ic-typography-vertical-margins-subtitle-small),:host(.ic-typography-vertical-margins-body),:host(.ic-typography-vertical-margins-code-large),:host(.ic-typography-vertical-margins-code-small),:host(.ic-typography-vertical-margins-code-extra-small){margin:0 0 var(--ic-space-md)}:host(.ic-typography-vertical-margins-caption),:host(.ic-typography-vertical-margins-caption-uppercase){margin:0 0 var(--ic-space-xs)}:host(.ic-typography-vertical-margins-h2:first-child),:host(.ic-typography-vertical-margins-h3:first-child),:host(.ic-typography-vertical-margins-h4:first-child){margin-top:0}:host(.ic-typography-h1){font:var(--ic-font-h1) !important}:host(.ic-typography-h2){font:var(--ic-font-h2);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-h3){font:var(--ic-font-h3)}:host(.ic-typography-h4){font:var(--ic-font-h4);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-subtitle-large){font:var(--ic-font-subtitle-large);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-subtitle-small){font:var(--ic-font-subtitle-small);letter-spacing:var(--ic-font-letter-spacing-0pt0015)}:host(.ic-typography-body){font:var(--ic-font-body);letter-spacing:var(--ic-font-letter-spacing-0pt005)}:host(.ic-typography-caption){font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-caption-uppercase){font:var(--ic-font-caption);letter-spacing:var(--ic-font-letter-spacing-0pt0025);text-transform:uppercase}:host(.ic-typography-label){font:var(--ic-font-label);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-label-uppercase){font:var(--ic-font-label);letter-spacing:var(--ic-font-letter-spacing-0pt025);text-transform:uppercase}:host(.ic-typography-code-large){font:var(--ic-font-code-large);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-code-small){font:var(--ic-font-code-small);letter-spacing:var(--ic-font-letter-spacing-0pt005)}:host(.ic-typography-code-extra-small){font:var(--ic-font-code-extra-small);letter-spacing:var(--ic-font-letter-spacing-0pt025)}:host(.ic-typography-badge){font:var(--ic-font-badge);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-badge-small){font:var(--ic-font-badge-small);letter-spacing:var(--ic-font-letter-spacing-0pt0025)}:host(.ic-typography-no-wrap){white-space:nowrap}:host ::slotted(h1),:host ::slotted(h2),:host ::slotted(h3),:host ::slotted(h4),:host ::slotted(h5),:host ::slotted(h6),:host ::slotted(p),:host ::slotted(label){font:inherit;letter-spacing:inherit}.trunc-wrapper{display:-webkit-box;-webkit-box-orient:vertical;line-clamp:var(--truncation-max-lines, initial);-webkit-line-clamp:var(--truncation-max-lines, initial);overflow:hidden;padding-right:var(--ellipsis-padding-right, 0)}.trunc-btn{border:none;background:none;padding:0;color:var(--ic-color-text-primary);text-decoration:underline;font-weight:var(--ic-font-weight-bold);transition:var(--ic-easing-transition-fast)}.trunc-btn:hover,.trunc-btn.focus{outline:none;border-bottom:0.25rem solid !important;margin-bottom:-0.25rem !important;text-decoration:none;cursor:pointer}:host(.ic-typography-strikethrough){text-decoration:line-through}:host(.ic-typography-underline){text-decoration:underline}:host(.ic-typography-underline.ic-typography-strikethrough){text-decoration:line-through underline}:host(.ic-typography-italic){font-style:italic !important}:host(.ic-typography-bold){font-weight:var(--ic-font-weight-bold)}:host(.ic-theme-dark),:host(.ic-theme-light){--ic-typography-color:var(--ic-color-text-primary)}:host(.in-ag-grid),:host(.in-ag-grid) ::slotted(*){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@supports (text-underline-offset: 25%){.trunc-btn:hover,.trunc-btn.focus{text-decoration-line:underline;text-decoration-thickness:25%;text-underline-offset:25%;border-bottom:0 !important;margin-bottom:0 !important}}@media (prefers-color-scheme: dark) and (forced-colors: none){:host,.trunc-btn:not(ic-tooltip){color:var(--ic-typography-color)}}';const c=n;const h=class{constructor(e){t(this,e);this.typographyTruncationExpandToggle=i(this,"typographyTruncationExpandToggle",7);this.focusBtnFromKeyboard=true;this.inAGGrid=false;this.lastMarkerTop=0;this.lastWidth=0;this.resizeObserver=null;this.truncatedHeight=0;this.truncated=false;this.truncButtonFocussed=false;this.applyVerticalMargins=false;this.bold=false;this.italic=false;this.strikethrough=false;this.theme="inherit";this.underline=false;this.variant="body";this.expanded=false;this.toggleExpanded=t=>{t.stopPropagation();this.expanded=!this.expanded;this.typographyTruncationExpandToggle.emit({expanded:this.expanded,typographyEl:this.el})};this.checkMarkerPosition=(t,i)=>{if(i-t<this.truncatedHeight){this.truncated=false;this.expanded=false}else{this.truncated=true}};this.getElementTop=t=>t.getClientRects&&t.getClientRects()[0]?t.getClientRects()[0].top:0;this.runResizeObserver=()=>{if(this.truncWrapperEl){this.resizeObserver=new ResizeObserver((()=>{clearTimeout(this.resizeInterval);this.resizeInterval=window.setTimeout(this.resizeObserverCallback,50)}));this.resizeObserver.observe(this.truncWrapperEl)}};this.resizeObserverCallback=()=>{if(this.lastWidth===this.el.clientWidth){return}if(this.truncatedHeight===0){this.checkMaxLines(this.el.clientHeight);return}const t=this.getElementTop(this.marker);if(t===this.lastMarkerTop){return}this.checkMarkerPosition(this.getElementTop(this.el),t);this.lastMarkerTop=t;this.lastWidth=this.el.clientWidth};this.truncButtonFocus=()=>{if(this.focusBtnFromKeyboard){this.truncButtonFocussed=true}};this.truncButtonBlur=()=>{this.focusBtnFromKeyboard=true;this.truncButtonFocussed=false};this.truncButtonFocusFromMouse=()=>{this.focusBtnFromKeyboard=false}}watchExpandedHandler(){this.el.setAttribute("style",`--truncation-max-lines: ${this.expanded?"initial":this.maxLines}`)}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}async resetTruncation(){if(this.truncated){this.truncated=false;this.maxLines=0;this.el.removeAttribute("max-lines");this.expanded=false;this.el.removeAttribute("style")}}componentDidLoad(){var t,i;if((this.variant==="body"||((i=(t=this.el.getRootNode())===null||t===void 0?void 0:t.host)===null||i===void 0?void 0:i.tagName)==="IC-TOOLTIP")&&this.maxLines&&this.maxLines>0){const t=document.createElement("span");t.style.visibility="hidden";this.el.appendChild(t);this.marker=t;this.lastWidth=this.el.clientWidth;this.checkMaxLines(this.el.clientHeight);r(this.runResizeObserver)}}componentWillRender(){if(s(this.el)){this.inAGGrid=true}}async checkMaxLines(t){const i=Math.floor(t/24);if(this.maxLines&&i>this.maxLines){this.el.setAttribute("style",`--truncation-max-lines: ${this.maxLines}`);this.truncatedHeight=this.el.clientHeight;this.truncated=true}}async setShowHideExpanded(t){this.expanded=t}render(){var t,i;const{variant:a,applyVerticalMargins:r,maxLines:s,truncated:n,expanded:c,strikethrough:h,underline:l,italic:p,bold:d,theme:g}=this;return e(o,{key:"f3ae0024474b949d4cd79a2d626524a08f0a83f9",class:{[`ic-typography-${a}`]:true,[`ic-typography-vertical-margins-${a}`]:!!r,["ic-typography-bold"]:!!d,["ic-typography-italic"]:!!p,["ic-typography-strikethrough"]:!!h,["ic-typography-underline"]:!!l,["in-ag-grid"]:this.inAGGrid,[`ic-theme-${g}`]:g!=="inherit"}},(a==="body"||((i=(t=this.el.getRootNode())===null||t===void 0?void 0:t.host)===null||i===void 0?void 0:i.tagName)==="IC-TOOLTIP")&&s&&s>0?e("div",{class:"trunc-wrapper",ref:t=>this.truncWrapperEl=t},e("slot",null)):e("slot",null),a==="body"&&s&&s>0&&n&&e("button",{key:"ab55fb9e3b5d0ed50a99d8f194fe0e9436de1613",class:{"trunc-btn":true,focus:this.truncButtonFocussed},onFocus:this.truncButtonFocus,onBlur:this.truncButtonBlur,onMouseDown:this.truncButtonFocusFromMouse,onClick:this.toggleExpanded},c?"See less":"See more"))}get el(){return a(this)}static get watchers(){return{expanded:["watchExpandedHandler"]}}};h.style=c;export{h as ic_typography};
2
- //# sourceMappingURL=p-ec1657fc.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{r as n,b as o}from"./p-70abcb2b.js";const h=`<svg width="8" height="10" viewBox="0 0 8 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M2.08748 0L0.912476 1.175L4.72914 5L0.912476 8.825L2.08748 10L7.08748 5L2.08748 0Z" fill="currentColor"/>\n</svg>\n`;const r=`<svg width="12" height="10" viewBox="0 0 12 10" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M11.1709 8.825L7.34589 5L11.1709 1.175L9.99589 0L4.99589 5L9.99589 10L11.1709 8.825ZM0.829224 0H2.49589V10H0.829224V0Z" fill="currentColour"/>\n</svg>`;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{box-sizing:border-box;width:100%;display:flex;justify-content:center}nav{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}ic-button{cursor:pointer}ic-button.next-previous{--icon-width:var(--ic-space-xs);--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs));padding:0 var(--ic-space-xxs) 0 var(--ic-space-xxxs)}ic-button.first-last{--icon-width:calc(var(--ic-space-sm) + var(--ic-space-xxxs));--icon-height:calc(var(--ic-space-xs) + var(--ic-space-xxxs))}ic-button.first-last::part(button),ic-button.next-previous::part(button){color:var(--ic-pagination-chevron)}:host(.ic-pagination-monochrome) ic-button.first-last::part(button),:host(.ic-pagination-monochrome) ic-button.next-previous::part(button){color:var(--ic-pagination-chevron-monochrome)}ic-button.ic-button-disabled.first-last::part(button),ic-button.ic-button-disabled.next-previous::part(button),:host(.ic-pagination-monochrome) ic-button.ic-button-disabled.first-last::part(button),:host(.ic-pagination-monochrome) ic-button.ic-button-disabled.next-previous::part(button){color:var(--ic-pagination-chevron-disabled)}.disabled{color:var(--ic-color-text-disabled-mid);pointer-events:none;cursor:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hide-current-page{display:none}.sr-only{position:absolute;left:-9999px}.sr-only:dir(rtl){right:-9999px}';const c=l;const d=class{constructor(s){t(this,s);this.icPageChange=i(this,"icPageChange",7);this.endEllipsis=false;this.endItems=[];this.midItems=[];this.startEllipsis=false;this.startItems=[];this.adjacentPageCount=1;this.boundaryPageCount=1;this.defaultPage=1;this.disabled=false;this.hideCurrentPage=false;this.hideFirstAndLastPageButton=false;this.label="Page";this.monochrome=false;this.theme="inherit";this.type="simple";this.currentPage=this.defaultPage;this.handleClickFirst=()=>{this.currentPage=1;this.icPageChange.emit({value:this.currentPage})};this.handleClickPrevious=()=>{this.currentPage--;this.icPageChange.emit({value:this.currentPage})};this.handleClickNext=()=>{this.currentPage++;this.icPageChange.emit({value:this.currentPage})};this.handleClickLast=()=>{this.currentPage=this.pages;this.icPageChange.emit({value:this.currentPage})};this.firstButton=()=>e("ic-button",{id:"first-page-button","aria-label":"Go to first page",theme:this.theme,onClick:this.handleClickFirst,class:"page-button first-last",disabled:this.currentPage===1||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:r});this.previousButton=()=>e("ic-button",{id:"previous-page-button","aria-label":"Go to previous page",theme:this.theme,onClick:this.handleClickPrevious,class:"page-button next-previous flip",disabled:this.currentPage===1||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:h});this.nextButton=()=>e("ic-button",{id:"next-page-button","aria-label":"Go to next page",theme:this.theme,onClick:this.handleClickNext,class:"page-button next-previous",disabled:this.currentPage===this.pages||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:h});this.lastButton=()=>e("ic-button",{id:"last-page-button","aria-label":"Go to last page",theme:this.theme,onClick:this.handleClickLast,class:"page-button first-last flip",disabled:this.currentPage===this.pages||this.disabled,variant:"icon-tertiary",monochrome:this.theme=="light"||this.theme=="dark",innerHTML:r});this.renderStartEllipsis=()=>e("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,type:"ellipsis",id:"start-ellipsis",disabled:this.disabled});this.renderEndEllipsis=()=>e("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,type:"ellipsis",id:"end-ellipsis",disabled:this.disabled});this.renderStartItems=()=>this.startItems.map((t=>e("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderEndItems=()=>this.endItems.map((t=>e("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})));this.renderMiddleItems=()=>this.midItems.map((t=>e("ic-pagination-item",{theme:this.theme,monochrome:this.monochrome,selected:t===this.currentPage,id:`pagination-item-${t}`,type:"page",page:t,disabled:this.disabled})))}watchAdjacentPageCountHandler(){if(this.adjacentPageCount>2){this.adjacentPageCount=2}}watchBoundaryPageCountHandler(){if(this.boundaryPageCount>2){this.boundaryPageCount=2}}watchDisabledHandler(){n(this.disabled,this.el)}watchNumberPagesHandler(){this.watchPageChangeHandler()}watchTypeHandler(){this.watchPageChangeHandler()}watchPageChangeHandler(){if(this.type==="simple"){return}this.startEllipsis=false;this.endEllipsis=false;this.startItems=[];this.endItems=[];this.midItems=[];const t=[];let i=0;const e=[];let s=this.pages;const a=[];let n;let o;let h=false;let r=false;if(this.pages<=this.boundaryPageCount*2+this.adjacentPageCount*2+3){this.startEllipsis=false;this.endEllipsis=false;for(let i=1;i<=this.pages;i++){t.push(i)}this.startItems=t;return}i=this.boundaryPageCount===0?1:this.boundaryPageCount;s=this.boundaryPageCount===0?this.pages:this.pages-this.boundaryPageCount+1;if(this.currentPage<=this.adjacentPageCount+this.boundaryPageCount+2){h=false;r=true;let t=2*this.adjacentPageCount+1;if(this.boundaryPageCount===0){t--}n=i+1;o=n+t}else{h=true;if(this.currentPage>this.pages-(this.adjacentPageCount+this.boundaryPageCount+2)){let t=2*this.adjacentPageCount+1;if(this.boundaryPageCount===0){t--}o=this.boundaryPageCount===0?this.pages-1:this.pages-this.boundaryPageCount;n=o-t}else{r=true;n=this.currentPage-this.adjacentPageCount;o=this.currentPage+this.adjacentPageCount}}if(this.boundaryPageCount>0||this.boundaryPageCount===0&&h===false){for(let e=1;e<=i;e++){t.push(e)}}if(this.boundaryPageCount>0||this.boundaryPageCount===0&&r===false){for(let t=s;t<=this.pages;t++){e.push(t)}}for(let t=n;t<=o;t++){a.push(t)}this.startEllipsis=h;this.endEllipsis=r;this.startItems=t;this.endItems=e;this.midItems=a}componentWillLoad(){this.watchPageChangeHandler();this.watchBoundaryPageCountHandler();this.watchAdjacentPageCountHandler();n(this.disabled,this.el)}componentDidLoad(){o([{prop:this.pages,propName:"pages"}],"Pagination")}paginationItemClickHandler(t){const i=t.detail.page;this.currentPage=i;this.icPageChange.emit({value:this.currentPage})}async setCurrentPage(t){if(typeof t==="number"&&t>0&&t<=this.pages){this.currentPage=t}else{console.error("Current page must be a number greater than zero but less than or equal to the total number of pages")}}render(){const{type:t,currentPage:i,hideCurrentPage:a,disabled:n,hideFirstAndLastPageButton:o,label:h,theme:r,monochrome:l}=this;return e(s,{key:"f0bb93865da97a2978792da0ecec7398d17fd0cd",class:{[`ic-theme-${r}`]:r!=="inherit",["ic-pagination-monochrome"]:!!l}},t==="simple"&&e("nav",{key:"d98096aea9467c15560cf5bee82f979a27a6e72b",class:{["disabled"]:!!n},role:"navigation","aria-label":"Pagination Navigation"},o?null:this.firstButton(),this.previousButton(),e("ic-pagination-item",{key:"e578665c5de2260f824cf4ff3c3e29dafabe7037",theme:this.theme,monochrome:this.monochrome,type:"simple-current",page:i,label:h,class:{["hide-current-page"]:!!a},disabled:n}),this.nextButton(),o?null:this.lastButton()),t==="complex"&&e("nav",{key:"e1172d5a137f47d778f3878155bb747b32303179",class:{["disabled"]:!!n},role:"navigation","aria-label":"Pagination Navigation"},o?null:this.firstButton(),this.previousButton(),this.renderStartItems(),this.startEllipsis&&this.renderStartEllipsis(),this.renderMiddleItems(),this.endEllipsis&&this.renderEndEllipsis(),this.renderEndItems(),this.nextButton(),o?null:this.lastButton()),t==="complex"&&e("span",{key:"2094451eaeb1eb5f6f52f4a93f8b30534bd31162",class:"sr-only","aria-live":"polite"},"Page ",this.currentPage))}get el(){return a(this)}static get watchers(){return{adjacentPageCount:["watchAdjacentPageCountHandler"],boundaryPageCount:["watchBoundaryPageCountHandler"],disabled:["watchDisabledHandler"],pages:["watchNumberPagesHandler"],type:["watchTypeHandler"],currentPage:["watchPageChangeHandler"]}}};d.style=c;export{d as ic_pagination};
2
- //# sourceMappingURL=p-ff47772c.entry.js.map