@ukic/web-components 3.23.0 → 3.25.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 (441) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-81cd6930.js → helpers-51bab4b5.js} +9 -68
  3. package/dist/cjs/helpers-51bab4b5.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-action-chip.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-badge.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-button_3.cjs.entry.js +17 -9
  13. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-card-horizontal.cjs.entry.js +6 -6
  15. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  16. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  17. package/dist/cjs/ic-checkbox.cjs.entry.js +5 -5
  18. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-data-row.cjs.entry.js +3 -3
  21. package/dist/cjs/ic-dialog.cjs.entry.js +41 -29
  22. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-empty-state.cjs.entry.js +3 -3
  25. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  27. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-hero.cjs.entry.js +5 -5
  29. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -6
  30. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +35 -34
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -6
  34. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  35. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -5
  43. package/dist/cjs/ic-page-header.cjs.entry.js +7 -7
  44. package/dist/cjs/ic-pagination-bar.cjs.entry.js +6 -6
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-pagination_3.cjs.entry.js +28 -26
  47. package/dist/cjs/ic-pagination_3.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +7 -7
  50. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -7
  52. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  54. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-side-navigation.cjs.entry.js +5 -5
  56. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  58. package/dist/cjs/ic-status-tag.cjs.entry.js +3 -3
  59. package/dist/cjs/ic-step.cjs.entry.js +14 -14
  60. package/dist/cjs/ic-stepper.cjs.entry.js +3 -3
  61. package/dist/cjs/ic-switch.cjs.entry.js +7 -9
  62. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -3
  65. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  67. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-toast.cjs.entry.js +6 -6
  70. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +3 -3
  71. package/dist/cjs/ic-toggle-button.cjs.entry.js +3 -3
  72. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-typography.cjs.entry.js +3 -3
  74. package/dist/cjs/loader.cjs.js +1 -1
  75. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +5 -5
  76. package/dist/collection/components/ic-checkbox/ic-checkbox.js +4 -4
  77. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  78. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  79. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  80. package/dist/collection/components/ic-dialog/ic-dialog.js +41 -29
  81. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  82. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  83. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  84. package/dist/collection/components/ic-hero/ic-hero.js +4 -4
  85. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  86. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  87. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  88. package/dist/collection/components/ic-input-label/ic-input-label.js +2 -2
  89. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  90. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  91. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  92. package/dist/collection/components/ic-link/ic-link.js +1 -1
  93. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  94. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  95. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  96. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  97. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  98. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  99. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  100. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +5 -5
  101. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  102. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  103. package/dist/collection/components/ic-radio-group/ic-radio-group.css +15 -0
  104. package/dist/collection/components/ic-radio-group/ic-radio-group.js +9 -9
  105. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  106. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +48 -4
  107. package/dist/collection/components/ic-radio-option/ic-radio-option.css +29 -444
  108. package/dist/collection/components/ic-radio-option/ic-radio-option.js +7 -5
  109. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  110. package/dist/collection/components/ic-search-bar/ic-search-bar.js +10 -10
  111. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  112. package/dist/collection/components/ic-select/ic-select.js +18 -16
  113. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  114. package/dist/collection/components/ic-select/ic-select.types.js.map +1 -1
  115. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  116. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  117. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  118. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  119. package/dist/collection/components/ic-step/ic-step.js +13 -13
  120. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  121. package/dist/collection/components/ic-switch/ic-switch.css +108 -43
  122. package/dist/collection/components/ic-switch/ic-switch.js +9 -11
  123. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  124. package/dist/collection/components/ic-switch/ic-switch.stories.js +8 -4
  125. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  126. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  127. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  128. package/dist/collection/components/ic-text-field/ic-text-field.js +5 -5
  129. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  130. package/dist/collection/components/ic-toast/ic-toast.js +5 -5
  131. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  132. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  133. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  134. package/dist/collection/components/ic-tooltip/ic-tooltip.css +21 -0
  135. package/dist/collection/components/ic-tooltip/ic-tooltip.js +33 -3
  136. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  137. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +128 -6
  138. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  139. package/dist/collection/utils/helpers.js +8 -66
  140. package/dist/collection/utils/helpers.js.map +1 -1
  141. package/dist/components/helpers.js +9 -67
  142. package/dist/components/helpers.js.map +1 -1
  143. package/dist/components/ic-action-chip.js +1 -1
  144. package/dist/components/ic-alert.js +1 -1
  145. package/dist/components/ic-card-horizontal.js +6 -6
  146. package/dist/components/ic-card-vertical.js +1 -1
  147. package/dist/components/ic-checkbox-group.js +2 -2
  148. package/dist/components/ic-checkbox.js +4 -4
  149. package/dist/components/ic-chip.js +1 -1
  150. package/dist/components/ic-data-list.js +2 -2
  151. package/dist/components/ic-data-row.js +2 -2
  152. package/dist/components/ic-dialog.js +41 -29
  153. package/dist/components/ic-dialog.js.map +1 -1
  154. package/dist/components/ic-divider2.js +1 -1
  155. package/dist/components/ic-empty-state.js +3 -3
  156. package/dist/components/ic-footer-link.js +2 -2
  157. package/dist/components/ic-footer.js +1 -1
  158. package/dist/components/ic-hero.js +5 -5
  159. package/dist/components/ic-horizontal-scroll2.js +6 -6
  160. package/dist/components/ic-input-component-container2.js +4 -4
  161. package/dist/components/ic-input-container2.js +2 -2
  162. package/dist/components/ic-input-label2.js +2 -2
  163. package/dist/components/ic-input-validation2.js +3 -3
  164. package/dist/components/ic-layout-grid-item.js +2 -2
  165. package/dist/components/ic-layout-grid.js +2 -2
  166. package/dist/components/ic-link2.js +1 -1
  167. package/dist/components/ic-loading-indicator2.js +5 -5
  168. package/dist/components/ic-menu-group.js +1 -1
  169. package/dist/components/ic-menu2.js +30 -29
  170. package/dist/components/ic-menu2.js.map +1 -1
  171. package/dist/components/ic-navigation-button.js +1 -1
  172. package/dist/components/ic-navigation-group.js +2 -2
  173. package/dist/components/ic-navigation-item.js +1 -1
  174. package/dist/components/ic-navigation-menu2.js +5 -5
  175. package/dist/components/ic-page-header.js +6 -6
  176. package/dist/components/ic-pagination-bar.js +6 -6
  177. package/dist/components/ic-pagination-item2.js +2 -2
  178. package/dist/components/ic-pagination2.js +4 -4
  179. package/dist/components/ic-popover-menu.js +4 -4
  180. package/dist/components/ic-radio-group.js +6 -6
  181. package/dist/components/ic-radio-group.js.map +1 -1
  182. package/dist/components/ic-radio-option.js +8 -6
  183. package/dist/components/ic-radio-option.js.map +1 -1
  184. package/dist/components/ic-search-bar.js +10 -10
  185. package/dist/components/ic-section-container2.js +2 -2
  186. package/dist/components/ic-select2.js +19 -17
  187. package/dist/components/ic-select2.js.map +1 -1
  188. package/dist/components/ic-side-navigation.js +5 -5
  189. package/dist/components/ic-side-navigation.js.map +1 -1
  190. package/dist/components/ic-skeleton.js +2 -2
  191. package/dist/components/ic-skeleton.js.map +1 -1
  192. package/dist/components/ic-skip-link.js +2 -2
  193. package/dist/components/ic-status-tag.js +2 -2
  194. package/dist/components/ic-step.js +13 -13
  195. package/dist/components/ic-stepper.js +2 -2
  196. package/dist/components/ic-switch.js +6 -8
  197. package/dist/components/ic-switch.js.map +1 -1
  198. package/dist/components/ic-tab-context.js +1 -1
  199. package/dist/components/ic-tab-group.js +2 -2
  200. package/dist/components/ic-tab-panel.js +2 -2
  201. package/dist/components/ic-text-field2.js +6 -6
  202. package/dist/components/ic-theme.js +2 -2
  203. package/dist/components/ic-toast-region.js +1 -1
  204. package/dist/components/ic-toast.js +6 -6
  205. package/dist/components/ic-toggle-button-group.js +2 -2
  206. package/dist/components/ic-toggle-button.js +3 -3
  207. package/dist/components/ic-tooltip2.js +13 -4
  208. package/dist/components/ic-tooltip2.js.map +1 -1
  209. package/dist/components/ic-top-navigation.js +1 -1
  210. package/dist/components/ic-typography2.js +2 -2
  211. package/dist/core/core.esm.js +1 -1
  212. package/dist/core/core.esm.js.map +1 -1
  213. package/dist/core/{p-3aed13ba.entry.js → p-023cf5d9.entry.js} +2 -2
  214. package/dist/core/{p-fb9376f0.entry.js → p-043a5677.entry.js} +2 -2
  215. package/dist/core/p-171a19bf.entry.js +3 -0
  216. package/dist/core/p-171a19bf.entry.js.map +1 -0
  217. package/dist/core/{p-347cc084.entry.js → p-19056c16.entry.js} +2 -2
  218. package/dist/core/{p-b777f0a1.entry.js → p-1cfaa962.entry.js} +2 -2
  219. package/dist/core/{p-659d048d.entry.js → p-23fb87be.entry.js} +2 -2
  220. package/dist/core/{p-f661ba76.entry.js → p-2424f82f.entry.js} +2 -2
  221. package/dist/core/{p-2691cc80.entry.js → p-243ae8fe.entry.js} +2 -2
  222. package/dist/core/{p-aad03a3c.entry.js → p-271ee0bc.entry.js} +2 -2
  223. package/dist/core/{p-67de1290.entry.js → p-2b1ce5b7.entry.js} +2 -2
  224. package/dist/core/p-343670b4.entry.js +2 -0
  225. package/dist/core/p-343670b4.entry.js.map +1 -0
  226. package/dist/core/{p-61d79fc6.entry.js → p-3da9774b.entry.js} +2 -2
  227. package/dist/core/{p-0fb7f915.entry.js → p-3ee66d00.entry.js} +2 -2
  228. package/dist/core/{p-ea7a3d30.entry.js → p-3f001e75.entry.js} +2 -2
  229. package/dist/core/{p-09505807.entry.js → p-406647b8.entry.js} +2 -2
  230. package/dist/core/{p-9cb83a2e.entry.js → p-44d043f7.entry.js} +2 -2
  231. package/dist/core/{p-4f56acff.entry.js → p-46e5a58b.entry.js} +2 -2
  232. package/dist/core/{p-cfbacca1.entry.js → p-4dbc72f4.entry.js} +2 -2
  233. package/dist/core/p-526dd099.entry.js +2 -0
  234. package/dist/core/p-526dd099.entry.js.map +1 -0
  235. package/dist/core/{p-f64996f1.entry.js → p-5fc0dc36.entry.js} +2 -2
  236. package/dist/core/{p-7b538fd1.entry.js → p-61799a8b.entry.js} +2 -2
  237. package/dist/core/{p-90678e67.entry.js → p-6b5edd6b.entry.js} +2 -2
  238. package/dist/core/p-70ca7796.entry.js +2 -0
  239. package/dist/core/p-70ca7796.entry.js.map +1 -0
  240. package/dist/core/{p-daec7e69.entry.js → p-72f52f20.entry.js} +2 -2
  241. package/dist/core/{p-9c2b2cb9.entry.js → p-74a3a450.entry.js} +2 -2
  242. package/dist/core/{p-c156e6e9.entry.js → p-796fc111.entry.js} +2 -2
  243. package/dist/core/{p-b52c44eb.entry.js → p-85232cec.entry.js} +2 -2
  244. package/dist/core/{p-b997ad5e.entry.js → p-85ac0d78.entry.js} +2 -2
  245. package/dist/core/{p-1b81ec88.entry.js → p-8fc5e9f9.entry.js} +2 -2
  246. package/dist/core/p-8fc5e9f9.entry.js.map +1 -0
  247. package/dist/core/{p-48a628f0.entry.js → p-9267c160.entry.js} +2 -2
  248. package/dist/core/{p-393af2bc.entry.js → p-970e190c.entry.js} +2 -2
  249. package/dist/core/p-98dee727.entry.js +2 -0
  250. package/dist/core/p-98dee727.entry.js.map +1 -0
  251. package/dist/core/{p-e938eb31.entry.js → p-99b20121.entry.js} +2 -2
  252. package/dist/core/{p-aaf4e367.entry.js → p-9ae157de.entry.js} +2 -2
  253. package/dist/core/{p-80d85403.entry.js → p-9b48971f.entry.js} +2 -2
  254. package/dist/core/{p-73043f57.entry.js → p-9ced00a7.entry.js} +2 -2
  255. package/dist/core/{p-bb7652cd.entry.js → p-a0c54a50.entry.js} +2 -2
  256. package/dist/core/{p-880f7548.entry.js → p-a5fcb9c1.entry.js} +2 -2
  257. package/dist/core/{p-a780a34b.entry.js → p-a7c263bd.entry.js} +2 -2
  258. package/dist/core/{p-99433296.entry.js → p-ab104baa.entry.js} +2 -2
  259. package/dist/core/{p-ef70ea50.entry.js → p-b27e147d.entry.js} +2 -2
  260. package/dist/core/{p-9502fb86.entry.js → p-b58fb588.entry.js} +2 -2
  261. package/dist/core/p-bb52e752.entry.js +2 -0
  262. package/dist/core/p-bb52e752.entry.js.map +1 -0
  263. package/dist/core/{p-2b87c592.entry.js → p-c0b70c08.entry.js} +2 -2
  264. package/dist/core/{p-46fd555f.entry.js → p-c41fd2cf.entry.js} +2 -2
  265. package/dist/core/{p-5900cb65.entry.js → p-c82c2362.entry.js} +2 -2
  266. package/dist/core/{p-e7767c0d.entry.js → p-ca64b7ba.entry.js} +2 -2
  267. package/dist/core/{p-cad23b7d.entry.js → p-cd963de6.entry.js} +2 -2
  268. package/dist/core/{p-735d3096.entry.js → p-cf669574.entry.js} +2 -2
  269. package/dist/core/{p-83578f1d.entry.js → p-cf87b6db.entry.js} +2 -2
  270. package/dist/core/{p-05fd2707.entry.js → p-d0d324b4.entry.js} +2 -2
  271. package/dist/core/{p-ea890d3d.entry.js → p-d0dd9f2c.entry.js} +2 -2
  272. package/dist/core/{p-5976de6e.entry.js → p-d1220d2a.entry.js} +2 -2
  273. package/dist/core/{p-50dca790.entry.js → p-d5fcd4f9.entry.js} +2 -2
  274. package/dist/core/{p-56de4f4b.entry.js → p-d7c6fc8d.entry.js} +2 -2
  275. package/dist/core/{p-506d428a.entry.js → p-d8de5b88.entry.js} +2 -2
  276. package/dist/core/{p-53ab3c0f.entry.js → p-e35f15ec.entry.js} +2 -2
  277. package/dist/core/p-e5266c19.entry.js +2 -0
  278. package/dist/core/p-e5266c19.entry.js.map +1 -0
  279. package/dist/core/{p-09caf7ed.entry.js → p-ec1ea1a7.entry.js} +2 -2
  280. package/dist/core/{p-b77b1e1f.js → p-eeb8d98a.js} +2 -2
  281. package/dist/core/p-eeb8d98a.js.map +1 -0
  282. package/dist/core/{p-2a124daf.entry.js → p-ef96e1aa.entry.js} +2 -2
  283. package/dist/core/{p-2bd80913.entry.js → p-fc4b7d2b.entry.js} +2 -2
  284. package/dist/core/{p-8a833e82.entry.js → p-fd9ea62a.entry.js} +2 -2
  285. package/dist/esm/core.js +1 -1
  286. package/dist/esm/{helpers-66681c73.js → helpers-33039856.js} +10 -68
  287. package/dist/esm/helpers-33039856.js.map +1 -0
  288. package/dist/esm/ic-accordion-group.entry.js +1 -1
  289. package/dist/esm/ic-accordion.entry.js +1 -1
  290. package/dist/esm/ic-action-chip.entry.js +1 -1
  291. package/dist/esm/ic-alert.entry.js +1 -1
  292. package/dist/esm/ic-back-to-top.entry.js +1 -1
  293. package/dist/esm/ic-badge.entry.js +1 -1
  294. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  295. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  296. package/dist/esm/ic-button_3.entry.js +17 -9
  297. package/dist/esm/ic-button_3.entry.js.map +1 -1
  298. package/dist/esm/ic-card-horizontal.entry.js +6 -6
  299. package/dist/esm/ic-card-vertical.entry.js +1 -1
  300. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  301. package/dist/esm/ic-checkbox.entry.js +5 -5
  302. package/dist/esm/ic-chip.entry.js +1 -1
  303. package/dist/esm/ic-data-list.entry.js +2 -2
  304. package/dist/esm/ic-data-row.entry.js +3 -3
  305. package/dist/esm/ic-dialog.entry.js +41 -29
  306. package/dist/esm/ic-dialog.entry.js.map +1 -1
  307. package/dist/esm/ic-divider.entry.js +1 -1
  308. package/dist/esm/ic-empty-state.entry.js +3 -3
  309. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  310. package/dist/esm/ic-footer-link.entry.js +3 -3
  311. package/dist/esm/ic-footer.entry.js +1 -1
  312. package/dist/esm/ic-hero.entry.js +5 -5
  313. package/dist/esm/ic-horizontal-scroll.entry.js +6 -6
  314. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  315. package/dist/esm/ic-input-component-container_3.entry.js +35 -34
  316. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  317. package/dist/esm/ic-input-label_2.entry.js +6 -6
  318. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  319. package/dist/esm/ic-layout-grid.entry.js +2 -2
  320. package/dist/esm/ic-link.entry.js +2 -2
  321. package/dist/esm/ic-menu-group.entry.js +2 -2
  322. package/dist/esm/ic-menu-item.entry.js +1 -1
  323. package/dist/esm/ic-navigation-button.entry.js +1 -1
  324. package/dist/esm/ic-navigation-group.entry.js +2 -2
  325. package/dist/esm/ic-navigation-item.entry.js +1 -1
  326. package/dist/esm/ic-navigation-menu.entry.js +5 -5
  327. package/dist/esm/ic-page-header.entry.js +7 -7
  328. package/dist/esm/ic-pagination-bar.entry.js +6 -6
  329. package/dist/esm/ic-pagination-item.entry.js +2 -2
  330. package/dist/esm/ic-pagination_3.entry.js +28 -26
  331. package/dist/esm/ic-pagination_3.entry.js.map +1 -1
  332. package/dist/esm/ic-popover-menu.entry.js +5 -5
  333. package/dist/esm/ic-radio-group.entry.js +7 -7
  334. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  335. package/dist/esm/ic-radio-option.entry.js +9 -7
  336. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  337. package/dist/esm/ic-search-bar.entry.js +10 -10
  338. package/dist/esm/ic-section-container.entry.js +2 -2
  339. package/dist/esm/ic-side-navigation.entry.js +5 -5
  340. package/dist/esm/ic-skeleton.entry.js +2 -2
  341. package/dist/esm/ic-skip-link.entry.js +2 -2
  342. package/dist/esm/ic-status-tag.entry.js +3 -3
  343. package/dist/esm/ic-step.entry.js +14 -14
  344. package/dist/esm/ic-stepper.entry.js +3 -3
  345. package/dist/esm/ic-switch.entry.js +7 -9
  346. package/dist/esm/ic-switch.entry.js.map +1 -1
  347. package/dist/esm/ic-tab-context.entry.js +1 -1
  348. package/dist/esm/ic-tab-group.entry.js +3 -3
  349. package/dist/esm/ic-tab-panel.entry.js +2 -2
  350. package/dist/esm/ic-tab.entry.js +1 -1
  351. package/dist/esm/ic-theme.entry.js +2 -2
  352. package/dist/esm/ic-toast-region.entry.js +1 -1
  353. package/dist/esm/ic-toast.entry.js +6 -6
  354. package/dist/esm/ic-toggle-button-group.entry.js +3 -3
  355. package/dist/esm/ic-toggle-button.entry.js +3 -3
  356. package/dist/esm/ic-top-navigation.entry.js +1 -1
  357. package/dist/esm/ic-typography.entry.js +3 -3
  358. package/dist/esm/loader.js +1 -1
  359. package/dist/types/components/ic-dialog/ic-dialog.d.ts +2 -1
  360. package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +2 -2
  361. package/dist/types/components/ic-select/ic-select.types.d.ts +2 -1
  362. package/dist/types/components/ic-switch/ic-switch.d.ts +2 -2
  363. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +8 -0
  364. package/dist/types/components.d.ts +12 -4
  365. package/dist/types/utils/helpers.d.ts +0 -31
  366. package/hydrate/index.js +263 -294
  367. package/hydrate/index.mjs +263 -294
  368. package/package.json +10 -9
  369. package/vscode-data.json +13 -3
  370. package/dist/cjs/helpers-81cd6930.js.map +0 -1
  371. package/dist/core/p-1b81ec88.entry.js.map +0 -1
  372. package/dist/core/p-6b4ec95f.entry.js +0 -3
  373. package/dist/core/p-6b4ec95f.entry.js.map +0 -1
  374. package/dist/core/p-a08d6b46.entry.js +0 -2
  375. package/dist/core/p-a08d6b46.entry.js.map +0 -1
  376. package/dist/core/p-a2953aad.entry.js +0 -2
  377. package/dist/core/p-a2953aad.entry.js.map +0 -1
  378. package/dist/core/p-a321feee.entry.js +0 -2
  379. package/dist/core/p-a321feee.entry.js.map +0 -1
  380. package/dist/core/p-b77b1e1f.js.map +0 -1
  381. package/dist/core/p-cbca04bb.entry.js +0 -2
  382. package/dist/core/p-cbca04bb.entry.js.map +0 -1
  383. package/dist/core/p-cc64e5ef.entry.js +0 -2
  384. package/dist/core/p-cc64e5ef.entry.js.map +0 -1
  385. package/dist/core/p-f84ac9c6.entry.js +0 -2
  386. package/dist/core/p-f84ac9c6.entry.js.map +0 -1
  387. package/dist/esm/helpers-66681c73.js.map +0 -1
  388. /package/dist/core/{p-3aed13ba.entry.js.map → p-023cf5d9.entry.js.map} +0 -0
  389. /package/dist/core/{p-fb9376f0.entry.js.map → p-043a5677.entry.js.map} +0 -0
  390. /package/dist/core/{p-347cc084.entry.js.map → p-19056c16.entry.js.map} +0 -0
  391. /package/dist/core/{p-b777f0a1.entry.js.map → p-1cfaa962.entry.js.map} +0 -0
  392. /package/dist/core/{p-659d048d.entry.js.map → p-23fb87be.entry.js.map} +0 -0
  393. /package/dist/core/{p-f661ba76.entry.js.map → p-2424f82f.entry.js.map} +0 -0
  394. /package/dist/core/{p-2691cc80.entry.js.map → p-243ae8fe.entry.js.map} +0 -0
  395. /package/dist/core/{p-aad03a3c.entry.js.map → p-271ee0bc.entry.js.map} +0 -0
  396. /package/dist/core/{p-67de1290.entry.js.map → p-2b1ce5b7.entry.js.map} +0 -0
  397. /package/dist/core/{p-61d79fc6.entry.js.map → p-3da9774b.entry.js.map} +0 -0
  398. /package/dist/core/{p-0fb7f915.entry.js.map → p-3ee66d00.entry.js.map} +0 -0
  399. /package/dist/core/{p-ea7a3d30.entry.js.map → p-3f001e75.entry.js.map} +0 -0
  400. /package/dist/core/{p-09505807.entry.js.map → p-406647b8.entry.js.map} +0 -0
  401. /package/dist/core/{p-9cb83a2e.entry.js.map → p-44d043f7.entry.js.map} +0 -0
  402. /package/dist/core/{p-4f56acff.entry.js.map → p-46e5a58b.entry.js.map} +0 -0
  403. /package/dist/core/{p-cfbacca1.entry.js.map → p-4dbc72f4.entry.js.map} +0 -0
  404. /package/dist/core/{p-f64996f1.entry.js.map → p-5fc0dc36.entry.js.map} +0 -0
  405. /package/dist/core/{p-7b538fd1.entry.js.map → p-61799a8b.entry.js.map} +0 -0
  406. /package/dist/core/{p-90678e67.entry.js.map → p-6b5edd6b.entry.js.map} +0 -0
  407. /package/dist/core/{p-daec7e69.entry.js.map → p-72f52f20.entry.js.map} +0 -0
  408. /package/dist/core/{p-9c2b2cb9.entry.js.map → p-74a3a450.entry.js.map} +0 -0
  409. /package/dist/core/{p-c156e6e9.entry.js.map → p-796fc111.entry.js.map} +0 -0
  410. /package/dist/core/{p-b52c44eb.entry.js.map → p-85232cec.entry.js.map} +0 -0
  411. /package/dist/core/{p-b997ad5e.entry.js.map → p-85ac0d78.entry.js.map} +0 -0
  412. /package/dist/core/{p-48a628f0.entry.js.map → p-9267c160.entry.js.map} +0 -0
  413. /package/dist/core/{p-393af2bc.entry.js.map → p-970e190c.entry.js.map} +0 -0
  414. /package/dist/core/{p-e938eb31.entry.js.map → p-99b20121.entry.js.map} +0 -0
  415. /package/dist/core/{p-aaf4e367.entry.js.map → p-9ae157de.entry.js.map} +0 -0
  416. /package/dist/core/{p-80d85403.entry.js.map → p-9b48971f.entry.js.map} +0 -0
  417. /package/dist/core/{p-73043f57.entry.js.map → p-9ced00a7.entry.js.map} +0 -0
  418. /package/dist/core/{p-bb7652cd.entry.js.map → p-a0c54a50.entry.js.map} +0 -0
  419. /package/dist/core/{p-880f7548.entry.js.map → p-a5fcb9c1.entry.js.map} +0 -0
  420. /package/dist/core/{p-a780a34b.entry.js.map → p-a7c263bd.entry.js.map} +0 -0
  421. /package/dist/core/{p-99433296.entry.js.map → p-ab104baa.entry.js.map} +0 -0
  422. /package/dist/core/{p-ef70ea50.entry.js.map → p-b27e147d.entry.js.map} +0 -0
  423. /package/dist/core/{p-9502fb86.entry.js.map → p-b58fb588.entry.js.map} +0 -0
  424. /package/dist/core/{p-2b87c592.entry.js.map → p-c0b70c08.entry.js.map} +0 -0
  425. /package/dist/core/{p-46fd555f.entry.js.map → p-c41fd2cf.entry.js.map} +0 -0
  426. /package/dist/core/{p-5900cb65.entry.js.map → p-c82c2362.entry.js.map} +0 -0
  427. /package/dist/core/{p-e7767c0d.entry.js.map → p-ca64b7ba.entry.js.map} +0 -0
  428. /package/dist/core/{p-cad23b7d.entry.js.map → p-cd963de6.entry.js.map} +0 -0
  429. /package/dist/core/{p-735d3096.entry.js.map → p-cf669574.entry.js.map} +0 -0
  430. /package/dist/core/{p-83578f1d.entry.js.map → p-cf87b6db.entry.js.map} +0 -0
  431. /package/dist/core/{p-05fd2707.entry.js.map → p-d0d324b4.entry.js.map} +0 -0
  432. /package/dist/core/{p-ea890d3d.entry.js.map → p-d0dd9f2c.entry.js.map} +0 -0
  433. /package/dist/core/{p-5976de6e.entry.js.map → p-d1220d2a.entry.js.map} +0 -0
  434. /package/dist/core/{p-50dca790.entry.js.map → p-d5fcd4f9.entry.js.map} +0 -0
  435. /package/dist/core/{p-56de4f4b.entry.js.map → p-d7c6fc8d.entry.js.map} +0 -0
  436. /package/dist/core/{p-506d428a.entry.js.map → p-d8de5b88.entry.js.map} +0 -0
  437. /package/dist/core/{p-53ab3c0f.entry.js.map → p-e35f15ec.entry.js.map} +0 -0
  438. /package/dist/core/{p-09caf7ed.entry.js.map → p-ec1ea1a7.entry.js.map} +0 -0
  439. /package/dist/core/{p-2a124daf.entry.js.map → p-ef96e1aa.entry.js.map} +0 -0
  440. /package/dist/core/{p-2bd80913.entry.js.map → p-fc4b7d2b.entry.js.map} +0 -0
  441. /package/dist/core/{p-8a833e82.entry.js.map → p-fd9ea62a.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"ic-select2.js","mappings":"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","names":[],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs);\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.aria-live-hidden-text {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .clear-button,\n ic-input-validation.menu-open .status-icon,\n ic-input-validation.menu-open .statustext {\n transition: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport {\n addFormResetListener,\n checkSlotInChildMutations,\n getInputDescribedByText,\n isMobileOrTablet,\n isSlotUsed,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n IcInformationStatus,\n} from \"../../utils/types\";\nimport {\n IcSelectOption,\n IcSelectOptionBase,\n IcSelectOptionFlat,\n IcSelectOptionGroup,\n} from \"./ic-select.types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\nimport { IcMenuCustomEvent } from \"../../components\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private inheritedAttributes: { [k: string]: string } = {};\n private anchorEl?: HTMLElement;\n private nativeSelectElement?: HTMLSelectElement;\n private hostMutationObserver: MutationObserver | null = null;\n private clearButton?: HTMLIcButtonElement;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number | null = null;\n private hasTimedOut: boolean = false;\n private selectElement?: HTMLButtonElement;\n private initialRender: boolean = true;\n private characterKeyPressTimer?: number;\n private pressedCharacters = \"\";\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() hasError: boolean = false;\n @State() searchableSelectInputValue: string = \"\";\n @State() selectButtonAriaLiveText: string = \"\";\n @State() selectInputAriaLiveText: string = \"\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton = false;\n\n /**\n * The size of the select.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText = \"\";\n\n /**\n * If `true` and on a mobile or tablet device, the native select element will be used instead of the custom select component for better usability.\n */\n @Prop() useNativeSelectOnMobile = true;\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n this.hasTimedOut = false;\n\n if (newValue) {\n this.hasError = false;\n if (this.timeout) {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n forceUpdate(this);\n }, this.timeout);\n }\n } else {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n }\n }\n\n private clearTimer() {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcSelectOption[] = [];\n @State() flatOptions: IcSelectOptionFlat[] = [];\n @Watch(\"options\")\n optionsChangedHandler(): void {\n const flat = this.getFlatOptions(this.options)\n .filter((option) => option.value != null || option.label != null) // filter out options missing both value and label\n .map((option) => ({\n ...option,\n value: option.value ?? option.label, // if an option is missing a value, use the label as the value\n label: option.label ?? option.value, // vice versa\n }));\n this.flatOptions = this.getDeduplicatedOptions(flat);\n\n if (!this.initialRender) this.loading = false;\n this.clearTimer();\n this.updateSelectButtonAriaLive();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value: string | string[] | null = null;\n @State() initialValue = this.value;\n @Watch(\"value\")\n valueChangedHandler(newValue: string | string[] | null): void {\n const validated = this.getValidatedValue(newValue);\n\n const isEqual =\n Array.isArray(validated) && Array.isArray(this.value)\n ? validated.length === this.value.length &&\n validated.every((v, i) => v === (this.value as string[])[i])\n : validated === this.value;\n\n if (!isEqual) {\n this.value = validated;\n return;\n }\n\n this.updateSelectButtonAriaLive();\n this.icChange.emit({ value: this.value });\n }\n\n @State() open = false;\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n if (!this.open) {\n this.ariaActiveDescendant = undefined;\n }\n this.handleFocusIndicatorDisplay();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Sets focus on the select component.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.selectElement) {\n this.selectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n this.initialRender = false;\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n this.clearTimer();\n }\n\n componentDidLoad(): void {\n forceUpdate(this);\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n private getValidatedValue = (\n value: string | string[] | null\n ): string | string[] | null => {\n const validValues = this.flatOptions.map((opt) => opt.value);\n\n if (validValues.length === 0) return value;\n\n if (this.multiple) {\n if (!value) return null;\n const arr = Array.isArray(value) ? value : [value]; // Ensure value is an array\n const filtered = validValues.filter((v) => arr.includes(v)); // Keep only valid values\n return filtered.length > 0 ? filtered : null;\n } else {\n return validValues.includes(value as string) ? value : null;\n }\n };\n\n componentWillLoad(): void {\n this.optionsChangedHandler();\n this.value = this.getValidatedValue(this.value);\n this.initialValue = this.value;\n\n if (this.loading) this.loadingHandler(true);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n private getFilteredOptions = (\n searchString: string,\n searchMatchPosition: \"anywhere\" | \"start\",\n includeDescriptionsInSearch: boolean,\n includeGroupTitlesInSearch: boolean\n ): IcSelectOption[] => {\n const search = searchString.toLowerCase();\n const match = (text: string, method: \"anywhere\" | \"start\") =>\n method === \"anywhere\" ? text.includes(search) : text.startsWith(search);\n\n return this.unflattenOptions(\n this.flatOptions.filter((option) => {\n const label = option.label.toLowerCase();\n const group = option.group?.toLowerCase() ?? \"\";\n const description = option.description?.toLowerCase() ?? \"\";\n return (\n match(label, searchMatchPosition) ||\n (includeDescriptionsInSearch &&\n match(description, searchMatchPosition)) ||\n (includeGroupTitlesInSearch && match(group, searchMatchPosition))\n );\n })\n );\n };\n\n private getOptions = (): IcSelectOption[] => {\n const options =\n this.searchable &&\n !this.disableAutoFiltering &&\n this.searchableSelectInputValue\n ? this.getFilteredOptions(\n this.searchableSelectInputValue,\n this.searchMatchPosition,\n this.includeDescriptionsInSearch,\n this.includeGroupTitlesInSearch\n )\n : this.unflattenOptions(this.flatOptions);\n\n if (this.hasTimedOut)\n return [{ label: this.loadingErrorLabel, value: \"\", timedOut: true }];\n\n if (this.loading)\n return [{ label: this.loadingLabel, value: \"\", loading: true }];\n\n if (options.length > 0) return options;\n\n return [{ label: this.emptyOptionListText, value: \"\" }];\n };\n\n private getFlatOptions = (options: IcSelectOption[]): IcSelectOptionFlat[] =>\n options.flatMap(\n (item) =>\n (\"children\" in item && item.children\n ? [...item.children.map((child) => ({ group: item.label, ...child }))]\n : [item]) as IcSelectOptionFlat[]\n );\n\n private unflattenOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOption[] => {\n const groupMap = new Map<string, IcSelectOptionGroup>();\n const result: IcSelectOption[] = [];\n\n for (const option of flatOptions) {\n if (option.group) {\n let group = groupMap.get(option.group);\n if (!group) {\n group = { label: option.group, children: [] };\n groupMap.set(option.group, group);\n result.push(group);\n }\n const { group: _, ...rest } = option;\n group.children.push(rest as IcSelectOptionBase);\n } else {\n result.push(option);\n }\n }\n return result;\n };\n\n private getLabelFromValue = (value: string | null): string =>\n this.flatOptions.find((option) => option.value === value)?.label ?? \"\";\n\n // Construct the string that will be shown in the select input or button\n private getLabelString = (): string => {\n if (Array.isArray(this.value)) {\n return this.value.map(this.getLabelFromValue).filter(Boolean).join(\", \");\n }\n return (\n this.getLabelFromValue(this.value) ||\n (this.searchable ? \"\" : this.placeholder)\n );\n };\n\n private handleClick = (event: MouseEvent) => {\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n this.el.contains(target) ||\n this.el.shadowRoot?.contains(target) ||\n this.menu?.contains(target) ||\n target === this.clearButton\n ) {\n return;\n }\n\n this.open = false;\n this.handleFocusIndicatorDisplay();\n\n if (this.searchable) {\n this.searchableSelectInputValue = \"\";\n }\n this.icBlur.emit();\n };\n\n private handleTimeoutBlur = (event: CustomEvent<{ ev: FocusEvent }>) => {\n this.handleBlur(event.detail.ev);\n };\n\n private handleFocus = () => {\n this.icFocus.emit();\n };\n\n private handleClear = () => {\n this.clearTimer();\n this.loading = false;\n this.value = null;\n this.searchableSelectInputValue = \"\";\n\n this.icClear.emit();\n\n this.setFocus();\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.icChange.emit({ value: this.nativeSelectElement.value });\n }\n this.setTextColor();\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n if (this.open) {\n this.menu?.handleMenuKeyDown(event);\n } else {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n\n if (\n !this.multiple &&\n !this.searchable &&\n !this.selectOnEnter &&\n /^[a-zA-Z0-9 ]$/.test(event.key)\n ) {\n this.handleCharacterKeyDown(event.key);\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.open = false;\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (key !== \" \" || !!this.pressedCharacters) {\n this.pressedCharacters += key;\n const filteredOptions = this.getFilteredOptions(\n this.pressedCharacters,\n \"start\",\n false,\n false\n );\n\n if (filteredOptions.length > 0) {\n const firstOption = filteredOptions[0];\n if (\"children\" in firstOption) {\n this.value = firstOption.children[0].value;\n } else {\n this.value = firstOption.value;\n }\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n this.handleKeyDown(event);\n };\n\n private handleSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value } = event.detail;\n if (!value || this.getLabelFromValue(value) === this.emptyOptionListText) {\n this.value = null;\n return;\n }\n\n if (this.multiple) {\n let valueArray = Array.isArray(this.value) ? [...this.value] : [];\n const index = valueArray.indexOf(value);\n\n if (index > -1) {\n valueArray.splice(index, 1);\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n valueArray.push(value);\n valueArray = this.getValidatedValue(valueArray) as string[];\n }\n this.value = valueArray.length ? valueArray : null;\n } else {\n this.icOptionSelect.emit({ value });\n this.value = value;\n if (this.searchable) this.searchableSelectInputValue = \"\";\n }\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allSelectableValues = this.flatOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n if (detail.select) {\n allSelectableValues\n .filter((value) => !((this.value ?? []) as string[]).includes(value))\n .forEach((value) => {\n this.icOptionSelect.emit({ value });\n });\n\n this.value = allSelectableValues;\n } else {\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n this.value = null;\n }\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n this.searchableSelectInputValue = \"\";\n if (this.searchable) {\n this.hiddenInputValue = this.initialValue as string;\n }\n };\n\n private handleRetry = () => {\n this.clearTimer();\n this.hasTimedOut = false;\n this.hasError = false;\n this.loading = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n this.setFocus();\n };\n\n private handleSearchableSelectInput = (event: Event) => {\n this.updateSearchableSelectResultAriaLive();\n if (!this.multiple) {\n this.value = null;\n }\n\n this.searchableSelectInputValue =\n (event.target as HTMLInputElement).value ?? \"\";\n this.open = true;\n\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value: this.searchableSelectInputValue }),\n this.currDebounce\n );\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private updateSelectButtonAriaLive = () => {\n const value_label = this.getLabelFromValue(this.value as string);\n this.selectButtonAriaLiveText = this.multiple\n ? `${this.value ? this.value.length : 0} of ${\n this.flatOptions.length\n } selected`\n : this.value\n ? value_label ?? `${value_label} selected`\n : \"\";\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n this.selectInputAriaLiveText =\n this.getOptions()?.[0]?.label == this.emptyOptionListText\n ? this.emptyOptionListText\n : \"\";\n };\n\n private updateAriaActiveDescendant = (\n event: IcMenuCustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n this.ariaActiveDescendant = event.detail.optionId;\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n };\n\n private getDeduplicatedOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOptionFlat[] => {\n const seen = new Set();\n return flatOptions.filter((option) => {\n if (option.value && seen.has(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n return false;\n }\n if (option.value) seen.add(option.value);\n return true;\n });\n };\n\n private renderNativeOption = (option: IcSelectOptionBase) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.value}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n disabled,\n searchable,\n size,\n fullWidth,\n theme,\n readonly,\n hideLabel,\n inputId,\n label,\n helperText,\n required,\n value,\n options,\n menuId,\n multiple,\n validationStatus,\n open,\n showClearButton,\n selectOnEnter,\n loading,\n searchableSelectInputValue,\n validationText,\n validationAriaLive,\n form,\n ariaActiveDescendant,\n placeholder,\n name,\n inheritedAttributes,\n selectInputAriaLiveText,\n selectButtonAriaLiveText,\n } = this;\n\n const hasValue = !!value;\n const hasInput = !!searchableSelectInputValue;\n const isClearable =\n !disabled &&\n ((searchable && (hasInput || hasValue)) ||\n (!searchable && hasValue && !loading && showClearButton));\n\n const showValidation = !!validationStatus && !disabled;\n\n const invalid = validationStatus === IcInformationStatus.Error;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const menuOptions = this.getOptions();\n const noOptions =\n disabled ||\n (menuOptions.length === 1 &&\n (menuOptions[0].label === this.emptyOptionListText ||\n \"loading\" in menuOptions[0] ||\n \"timedOut\" in menuOptions[0]));\n\n renderHiddenInput(this.el, value as string, name || inputId, disabled);\n\n const ClearButton = () => (\n <ic-button\n ref={(el) => (this.clearButton = el)}\n id=\"clear-button\"\n aria-label={this.searchable ? \"Clear input\" : \"Clear selection\"}\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onBlur={this.handleBlur}\n size={size}\n variant=\"icon-tertiary\"\n ></ic-button>\n );\n\n const NativeSelect = () => (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n \"children\" in option ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child as IcSelectOptionBase)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option as IcSelectOptionBase)\n )\n )}\n </select>\n );\n\n const SelectButton = () => (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n role=\"combobox\"\n ref={(el) => (this.selectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && value\n ? `${value.length} of ${\n this.flatOptions.length\n } selected, ${this.getLabelString()}`\n : this.getLabelString()) || placeholder\n }`}\n onClick={this.handleClick}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-activedescendant={ariaActiveDescendant}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder: !value,\n }}\n >\n {this.getLabelString()}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && <ClearButton></ClearButton>}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n class=\"aria-live-hidden-text\"\n >\n {selectButtonAriaLiveText}\n </div>\n </div>\n );\n\n const SelectInput = () => (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={\n multiple\n ? \"\"\n : value\n ? this.getLabelString()\n : searchableSelectInputValue || undefined\n }\n disabled={disabled}\n placeholder={placeholder}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ClearButton></ClearButton>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div aria-live=\"polite\" role=\"status\" class=\"aria-live-hidden-text\">\n {selectInputAriaLiveText}\n </div>\n </div>\n );\n\n const ReadOnly = () => (\n <ic-typography>\n <p>\n {this.getLabelString() === placeholder ? \"\" : this.getLabelString()}\n </p>\n </ic-typography>\n );\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {isMobileOrTablet() && this.useNativeSelectOnMobile && !multiple ? (\n <NativeSelect />\n ) : readonly ? (\n <ReadOnly />\n ) : !searchable ? (\n <SelectButton />\n ) : (\n <SelectInput />\n )}\n </ic-input-component-container>\n {!(\n isMobileOrTablet() &&\n this.useNativeSelectOnMobile &&\n !multiple\n ) && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n class={{ \"no-results\": noOptions }}\n inputEl={\n searchable ? this.searchableSelectElement : this.selectElement\n }\n allowMenuFocus={false}\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={this.getOptions()}\n value={multiple ? (value as string[]) : (value as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onTimeoutBlur={this.handleTimeoutBlur}\n onMenuOptionId={this.updateAriaActiveDescendant}\n onClick={this.setFocus}\n parentEl={this.el}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n onRetryButtonClicked={this.handleRetry}\n closeOnSelect={!multiple}\n multiSelect={multiple}\n searchableSelect={searchable}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"ic-select2.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,WAAW,GAAG,u0RAAu0R,CAAC;AAC51R,uBAAe,WAAW;;;;;;;;;;;;;;AC+C1B,IAAI,QAAQ,GAAG,CAAC,CAAC;AACjB,MAAM,kBAAkB,GAAG,CAAC,GAAG,iBAAiB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;MAa1D,MAAM;IAPnB;;;;;;;;;;;;;;QAQU,YAAO,GAAG,mBAAmB,QAAQ,EAAE,EAAE,CAAC;QAE1C,WAAM,GAAG,GAAG,IAAI,CAAC,OAAO,OAAO,CAAC;QAChC,wBAAmB,GAA4B,EAAE,CAAC;QAGlD,yBAAoB,GAA4B,IAAI,CAAC;QAGrD,iBAAY,GAAkB,IAAI,CAAC;QACnC,gBAAW,GAAY,KAAK,CAAC;QAE7B,kBAAa,GAAY,IAAI,CAAC;QAE9B,sBAAiB,GAAG,EAAE,CAAC;QAOtB,aAAQ,GAAY,KAAK,CAAC;QAC1B,+BAA0B,GAAW,EAAE,CAAC;QACxC,6BAAwB,GAAW,EAAE,CAAC;QACtC,4BAAuB,GAAW,EAAE,CAAC;;;;QAKrB,aAAQ,GAAG,KAAK,CAAC;;;;QAUlC,yBAAoB,GAAG,KAAK,CAAC;;;;QAK7B,wBAAmB,GAAG,kBAAkB,CAAC;;;;QAUzC,cAAS,GAAG,KAAK,CAAC;;;;QAKlB,eAAU,GAAG,EAAE,CAAC;;;;QAKhB,cAAS,GAAG,KAAK,CAAC;;;;QAKlB,gCAA2B,GAAG,KAAK,CAAC;;;;QAKpC,+BAA0B,GAAG,KAAK,CAAC;;;;QAUnC,sBAAiB,GAAG,eAAe,CAAC;;;;QAKpC,iBAAY,GAAG,YAAY,CAAC;;;;QAK5B,aAAQ,GAAG,KAAK,CAAC;;;;QAKjB,SAAI,GAAG,IAAI,CAAC,OAAO,CAAC;;;;QAKpB,gBAAW,GAAG,kBAAkB,CAAC;;;;QAKjC,aAAQ,GAAG,KAAK,CAAC;;;;QAKjB,aAAQ,GAAG,KAAK,CAAC;;;;QAKjB,eAAU,GAAG,KAAK,CAAC;;;;QAKnB,wBAAmB,GAA2B,UAAU,CAAC;;;;QAKzD,kBAAa,GAAG,KAAK,CAAC;;;;QAKtB,oBAAe,GAAG,KAAK,CAAC;;;;QAKxB,SAAI,GAAY,QAAQ,CAAC;;;;QAUzB,UAAK,GAAgB,SAAS,CAAC;;;;QAK/B,uBAAkB,GAAe,QAAQ,CAAC;;;;QAK1C,qBAAgB,GAA+B,EAAE,CAAC;;;;QAKlD,mBAAc,GAAG,EAAE,CAAC;;;;QAKpB,4BAAuB,GAAG,IAAI,CAAC;;;;QAKd,YAAO,GAAG,KAAK,CAAC;;;;QAkCjC,YAAO,GAAqB,EAAE,CAAC;QAC9B,gBAAW,GAAyB,EAAE,CAAC;;;;QAoBxC,aAAQ,GAAG,CAAC,CAAC;QACZ,iBAAY,GAAG,IAAI,CAAC,QAAQ,CAAC;;;;;;QAab,UAAK,GAA6B,IAAI,CAAC;QACvD,iBAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAoB1B,SAAI,GAAG,KAAK,CAAC;QAiGd,sBAAiB,GAAG,CAC1B,KAA+B;YAE/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAE7D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE3C,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBACxB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,CAAC;aAC9C;iBAAM;gBACL,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAe,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;aAC7D;SACF,CAAC;QAYM,uBAAkB,GAAG,CAC3B,YAAoB,EACpB,mBAAyC,EACzC,2BAAoC,EACpC,0BAAmC;YAEnC,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,MAA4B,KACvD,MAAM,KAAK,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE1E,OAAO,IAAI,CAAC,gBAAgB,CAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;;gBAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;gBAChD,MAAM,WAAW,GAAG,MAAA,MAAA,MAAM,CAAC,WAAW,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAC;gBAC5D,QACE,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC;qBAChC,2BAA2B;wBAC1B,KAAK,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;qBACzC,0BAA0B,IAAI,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,EACjE;aACH,CAAC,CACH,CAAC;SACH,CAAC;QAEM,eAAU,GAAG;YACnB,MAAM,OAAO,GACX,IAAI,CAAC,UAAU;gBACf,CAAC,IAAI,CAAC,oBAAoB;gBAC1B,IAAI,CAAC,0BAA0B;kBAC3B,IAAI,CAAC,kBAAkB,CACrB,IAAI,CAAC,0BAA0B,EAC/B,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,2BAA2B,EAChC,IAAI,CAAC,0BAA0B,CAChC;kBACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,WAAW;gBAClB,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAExE,IAAI,IAAI,CAAC,OAAO;gBACd,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAElE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,OAAO,CAAC;YAEvC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;SACzD,CAAC;QAEM,mBAAc,GAAG,CAAC,OAAyB,KACjD,OAAO,CAAC,OAAO,CACb,CAAC,IAAI,MACF,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ;cAChC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,sBAAQ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAK,KAAK,EAAG,CAAC,CAAC;cACpE,CAAC,IAAI,CAAC,CAAyB,CACtC,CAAC;QAEI,qBAAgB,GAAG,CACzB,WAAiC;YAEjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;YACxD,MAAM,MAAM,GAAqB,EAAE,CAAC;YAEpC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE;gBAChC,IAAI,MAAM,CAAC,KAAK,EAAE;oBAChB,IAAI,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvC,IAAI,CAAC,KAAK,EAAE;wBACV,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;wBAC9C,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBACpB;0BACoB,IAAI,UAAK,MAAM,EAA9B,SAAqB,EAAU;oBACrC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAA0B,CAAC,CAAC;iBACjD;qBAAM;oBACL,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACrB;aACF;YACD,OAAO,MAAM,CAAC;SACf,CAAC;QAEM,sBAAiB,GAAG,CAAC,KAAoB,mBAC/C,OAAA,MAAA,MAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,0CAAE,KAAK,mCAAI,EAAE,CAAA,EAAA,CAAC;;QAGjE,mBAAc,GAAG;YACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1E;YACD,QACE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;iBACjC,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EACzC;SACH,CAAC;QAEM,gBAAW,GAAG,CAAC,KAAiB;;YACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,MAAA,IAAI,CAAC,IAAI,0CAAE,eAAe,EAAE,CAAC;aAC9B;SACF,CAAC;QAEM,8BAAyB,GAAG,CAAC,KAAiB;;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,MAAA,IAAI,CAAC,uBAAuB,0CAAE,KAAK,EAAE,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACzB;SACF,CAAC;QAEM,eAAU,GAAG,CAAC,EAAE,aAAa,EAAc;;YACjD,MAAM,MAAM,GAAG,aAA4B,CAAC;YAC5C,IACE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;iBACxB,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;iBACpC,MAAA,IAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC3B,MAAM,KAAK,IAAI,CAAC,WAAW,EAC3B;gBACA,OAAO;aACR;YAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YAEnC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;aACtC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpB,CAAC;QAEM,sBAAiB,GAAG,CAAC,KAAsC;YACjE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAClC,CAAC;QAEM,gBAAW,GAAG;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB,CAAC;QAEM,gBAAW,GAAG;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YAErC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB,CAAC;QAEM,iBAAY,GAAG;YACrB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,SAAS;oBAChC,IAAI,CAAC,mBAAmB,CAAC,aAAa,KAAK,CAAC;0BACxC,aAAa;0BACb,wBAAwB,CAAC;aAChC;SACF,CAAC;QAEM,6BAAwB,GAAG;YACjC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC;aAC/D;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB,CAAC;QAEM,gCAA2B,GAAG;;YACpC,MAAM,cAAc,GAClB,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAExD,IAAI,cAAc,EAAE;gBAClB,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;iBACzD;qBAAM;oBACL,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;iBAC5D;aACF;SACF,CAAC;QAEM,kBAAa,GAAG,CAAC,KAAoB;;YAC3C,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBAC7D,IAAI,IAAI,CAAC,IAAI,EAAE;oBACb,MAAA,IAAI,CAAC,IAAI,0CAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBACrC;qBAAM;oBACL,MAAA,IAAI,CAAC,IAAI,0CAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;iBACtC;aACF;YAED,IACE,CAAC,IAAI,CAAC,QAAQ;gBACd,CAAC,IAAI,CAAC,UAAU;gBAChB,CAAC,IAAI,CAAC,aAAa;gBACnB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAChC;gBACA,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACxC;SACF,CAAC;QAEM,2BAAsB,GAAG,CAAC,GAAW;;YAE3C,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;aACnB;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACvC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;gBAC5B,OAAO;aACR;YAED,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACjD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAC7C,OAAO,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,EACnC,IAAI,CACL,CAAC;YAEF,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3C,IAAI,CAAC,iBAAiB,IAAI,GAAG,CAAC;gBAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAC7C,IAAI,CAAC,iBAAiB,EACtB,OAAO,EACP,KAAK,EACL,KAAK,CACN,CAAC;gBAEF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,UAAU,IAAI,WAAW,EAAE;wBAC7B,IAAI,WAAW,CAAC,QAAQ,EAAE;4BACxB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;yBAC5C;qBACF;yBAAM;wBACL,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;qBAChC;iBACF;aACF;SACF,CAAC;QAEM,8BAAyB,GAAG,CAAC,KAAoB;YACvD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC3B,CAAC;QAEM,uBAAkB,GAAG,CAC3B,KAA6C;YAE7C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,mBAAmB,EAAE;gBACxE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,OAAO;aACR;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAExC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;oBACd,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;iBACvC;qBAAM;oBACL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvB,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAa,CAAC;iBAC7D;gBACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,IAAI,IAAI,CAAC,UAAU;oBAAE,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;aAC3D;SACF,CAAC;QAEM,0BAAqB,GAAG,CAAC,EAC/B,MAAM,GAC2B;YACjC,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW;iBACzC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;iBACpC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,mBAAmB;qBAChB,MAAM,CAAC,CAAC,KAAK,eAAK,OAAA,CAAE,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,EAAe,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC;qBACpE,OAAO,CAAC,CAAC,KAAK;oBACb,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;iBACrC,CAAC,CAAC;gBAEL,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC;aAClC;iBAAM;gBACJ,IAAI,CAAC,KAAkB,CAAC,OAAO,CAAC,CAAC,KAAK,KACrC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CACtC,CAAC;gBACF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;SACF,CAAC;QAEM,oBAAe,GAAG;YACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAC/B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAsB,CAAC;aACrD;SACF,CAAC;QAEM,gBAAW,GAAG;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;gBACpB,KAAK,EAAE,IAAI,CAAC,UAAU;sBAClB,IAAI,CAAC,0BAA0B;sBAC/B,IAAI,CAAC,gBAAgB;aAC1B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjB,CAAC;QAEM,gCAA2B,GAAG,CAAC,KAAY;;YACjD,IAAI,CAAC,oCAAoC,EAAE,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;YAED,IAAI,CAAC,0BAA0B;gBAC7B,MAAC,KAAK,CAAC,MAA2B,CAAC,KAAK,mCAAI,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEjB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CACtC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,CAAC,EACnE,IAAI,CAAC,YAAY,CAClB,CAAC;SACH,CAAC;QAEM,yBAAoB,GAAG,CAAC,YAA8B;YAC5D,IAAI,oBAAoB,GAAG,KAAK,CAAC;YACjC,YAAY,CAAC,OAAO,CAClB,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE;gBAChD,IAAI,aAAa,EAAE;oBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBACtD,IAAI,SAAS,IAAI,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;wBAC3D,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;wBACpD,oBAAoB,GAAG,IAAI,CAAC;qBAC7B;iBACF;qBAAM,IAAI,IAAI,KAAK,WAAW,EAAE;oBAC/B,oBAAoB,GAAG,yBAAyB,CAC9C,UAAU,EACV,YAAY,EACZ,MAAM,CACP,CAAC;iBACH;aACF,CACF,CAAC;YACF,IAAI,oBAAoB,EAAE;gBACxB,WAAW,CAAC,IAAI,CAAC,CAAC;aACnB;SACF,CAAC;QAEM,+BAA0B,GAAG;YACnC,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;YACjE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ;kBACzC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,OACnC,IAAI,CAAC,WAAW,CAAC,MACnB,WAAW;kBACX,IAAI,CAAC,KAAK;sBACV,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,GAAG,WAAW,WAAW;sBACxC,EAAE,CAAC;SACR,CAAC;QAEM,yCAAoC,GAAG;;YAC7C,IAAI,CAAC,uBAAuB;gBAC1B,CAAA,MAAA,MAAA,IAAI,CAAC,UAAU,EAAE,0CAAG,CAAC,CAAC,0CAAE,KAAK,KAAI,IAAI,CAAC,mBAAmB;sBACrD,IAAI,CAAC,mBAAmB;sBACxB,EAAE,CAAC;SACV,CAAC;QAEM,+BAA0B,GAAG,CACnC,KAAmD;YAEnD,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;SACnD,CAAC;QAEM,qBAAgB,GAAG,CAAC,KAA2C;YACrE,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC7B,CAAC;QAEM,2BAAsB,GAAG,CAC/B,WAAiC;YAEjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM;gBAC/B,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC1C,OAAO,CAAC,IAAI,CACV,wBAAwB,IAAI,CAAC,KAAK,gDAAgD,MAAM,CAAC,KAAK,2BAA2B,CAC1H,CAAC;oBACF,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,MAAM,CAAC,KAAK;oBAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;aACb,CAAC,CAAC;SACJ,CAAC;QAEM,uBAAkB,GAAG,CAAC,MAA0B,MACtD,cACE,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAEpC,MAAM,CAAC,KAAK,CACN,CACV,CAAC;KAqVH;IA9kCC,oBAAoB;QAClB,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;KAC7C;IA8ID,cAAc,CAAC,QAAiB;QAC9B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,IAAI,CAAC,YAAY,EAAE;oBACrB,IAAI,CAAC,UAAU,EAAE,CAAC;iBACnB;gBACD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;oBACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,WAAW,CAAC,IAAI,CAAC,CAAC;iBACnB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aAClB;SACF;aAAM;YACL,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,UAAU,EAAE,CAAC;aACnB;SACF;KACF;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B;KACF;IAQD,qBAAqB;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;aAC3C,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC;aAChE,GAAG,CAAC,CAAC,MAAM;;YAAK,wCACZ,MAAM,KACT,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,KAAK,EACnC,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,MAAM,CAAC,KAAK,KACnC;SAAA,CAAC,CAAC;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACnC;IAQD,sBAAsB,CAAC,QAAgB;QACrC,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;YAClC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;SAC9B;KACF;IAUD,mBAAmB,CAAC,QAAkC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAEnD,MAAM,OAAO,GACX,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;cACjD,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;gBACtC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAM,IAAI,CAAC,KAAkB,CAAC,CAAC,CAAC,CAAC;cAC5D,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,OAAO;SACR;QAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAC3C;IAID,kBAAkB;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,oBAAoB,GAAG,SAAS,CAAC;SACvC;QACD,IAAI,CAAC,2BAA2B,EAAE,CAAC;KACpC;;;;IAyDD,MAAM,QAAQ;QACZ,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;SAC5B;aAAM,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACvC,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC;SACtC;KACF;IAED,kBAAkB;QAChB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,oBAAoB;;QAClB,uBAAuB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACvD,MAAA,IAAI,CAAC,oBAAoB,0CAAE,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAED,gBAAgB;QACd,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;YACzC,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;KACJ;IAmBD,iBAAiB;QACf,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAE/B,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE5C,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KACrD;IAyZD,MAAM;QACJ,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,IAAI,EACJ,eAAe,EACf,aAAa,EACb,OAAO,EACP,0BAA0B,EAC1B,cAAc,EACd,kBAAkB,EAClB,IAAI,EACJ,oBAAoB,EACpB,WAAW,EACX,IAAI,EACJ,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,GACzB,GAAG,IAAI,CAAC;QAET,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,0BAA0B,CAAC;QAC9C,MAAM,WAAW,GACf,CAAC,QAAQ;aACR,CAAC,UAAU,KAAK,QAAQ,IAAI,QAAQ,CAAC;iBACnC,CAAC,UAAU,IAAI,QAAQ,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC;QAE9D,MAAM,cAAc,GAAG,CAAC,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC;QAEvD,MAAM,OAAO,GAAG,gBAAgB,KAAK,mBAAmB,CAAC,KAAK,CAAC;QAE/D,MAAM,WAAW,GAAG,uBAAuB,CACzC,IAAI,CAAC,EAAE,EACP,OAAO,EACP,UAAU,KAAK,EAAE,EACjB,cAAc,CACf,CAAC,IAAI,EAAE,CAAC;QAET,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,SAAS,GACb,QAAQ;aACP,WAAW,CAAC,MAAM,KAAK,CAAC;iBACtB,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,mBAAmB;oBAChD,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC;oBAC3B,UAAU,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAe,EAAE,IAAI,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;QAEvE,MAAM,WAAW,GAAG,OAClB,kEACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EACpC,EAAE,EAAC,cAAc,gBACL,IAAI,CAAC,UAAU,GAAG,aAAa,GAAG,iBAAiB,EAC/D,KAAK,EAAC,cAAc,EACpB,SAAS,EAAE,KAAK,EAChB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,IAAI,EAAE,IAAI,EACV,OAAO,EAAC,eAAe,GACZ,CACd,CAAC;QAEF,MAAM,YAAY,GAAG,OACnB,6EACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,EAC5C,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,EACvC,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,OAAO,gBACC,KAAK,sBACC,WAAW,kBACf,OAAO,GAAG,MAAM,GAAG,OAAO,EACxC,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,yBAAyB,EACzC,IAAI,EAAE,IAAI,IACN,mBAAmB,GAEvB,+DAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,QAAC,QAAQ,EAAE,CAAC,eAAe,IACjD,WAAW,CACL,EACR,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAClB,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,IACrC,gBAAU,KAAK,EAAE,MAAM,CAAC,KAAK,IAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,KACzB,IAAI,CAAC,kBAAkB,CAAC,KAA2B,CAAC,CACrD,CACQ,KAEX,IAAI,CAAC,kBAAkB,CAAC,MAA4B,CAAC,CACtD,CACF,CACM,CACV,CAAC;QAEF,MAAM,YAAY,GAAG,OACnB,4DAAK,KAAK,EAAC,kBAAkB,IAC3B,+DACE,KAAK,EAAC,cAAc,EACpB,IAAI,EAAC,UAAU,EACf,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC,EACtC,EAAE,EAAE,OAAO,gBACC,GAAG,KAAK,KAClB,CAAC,QAAQ,IAAI,KAAK;kBACd,GAAG,KAAK,CAAC,MAAM,OACb,IAAI,CAAC,WAAW,CAAC,MACnB,cAAc,IAAI,CAAC,cAAc,EAAE,EAAE;kBACrC,IAAI,CAAC,cAAc,EAAE,KAAK,WAChC,EAAE,EACF,OAAO,EAAE,IAAI,CAAC,WAAW,sBACP,WAAW,kBACf,OAAO,GAAG,MAAM,GAAG,OAAO,mBAC1B,SAAS,mBACR,GAAG,IAAI,EAAE,mBACT,MAAM,mBACN,GAAG,QAAQ,EAAE,EAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,2BACA,oBAAoB,IAE3C,sEACE,OAAO,EAAC,MAAM,EACd,KAAK,EAAE;gBACL,YAAY,EAAE,IAAI;gBAClB,mBAAmB,EAAE,CAAC,CAAC,WAAW;gBAClC,WAAW,EAAE,CAAC,KAAK;aACpB,IAEA,IAAI,CAAC,cAAc,EAAE,CACR,EAChB,4DAAK,KAAK,EAAC,kBAAkB,IAC1B,WAAW,IAAI,4DAAK,KAAK,EAAC,SAAS,GAAO,EAC3C,6DACE,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,kBAAkB,EAAE,IAAI;aACzB,EACD,SAAS,EAAE,MAAM,iBACL,MAAM,GAClB,CACE,CACC,EACR,WAAW,IAAI,EAAC,WAAW,sDAAe,EAC3C,yEACY,QAAQ,iBACN,MAAM,EAClB,KAAK,EAAC,uBAAuB,IAE5B,wBAAwB,CACrB,CACF,CACP,CAAC;QAEF,MAAM,WAAW,GAAG,OAClB,4DAAK,KAAK,EAAC,6BAA6B,IACtC,8DACE,KAAK,EAAE;gBACL,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,IAAI;gBACpB,mBAAmB,EAAE,CAAC,CAAC,0BAA0B;aAClD,EACD,IAAI,EAAC,UAAU,EACf,YAAY,EAAC,KAAK,gBACN,KAAK,sBACC,WAAW,2BACN,oBAAoB,uBACzB,MAAM,mBACT,GAAG,IAAI,EAAE,kBACV,OAAO,GAAG,MAAM,GAAG,OAAO,mBACzB,GAAG,QAAQ,EAAE,mBACb,MAAM,EACrB,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,EAChD,EAAE,EAAE,OAAO,EACX,KAAK,EACH,QAAQ;kBACJ,EAAE;kBACF,KAAK;sBACL,IAAI,CAAC,cAAc,EAAE;sBACrB,0BAA0B,IAAI,SAAS,EAE7C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,IAAI,CAAC,2BAA2B,EACzC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,IAAI,EAAE,IAAI,GACH,EACR,WAAW,KACV,4DAAK,KAAK,EAAC,wBAAwB,IACjC,EAAC,WAAW,sDAAe,EAC3B,4DAAK,KAAK,EAAC,SAAS,GAAO,CACvB,CACP,EACD,6DACE,WAAW,EAAE,IAAI,CAAC,yBAAyB,EAC3C,KAAK,EAAE;gBACL,aAAa,EAAE,IAAI;gBACnB,kBAAkB,EAAE,IAAI;aACzB,EACD,SAAS,EAAE,MAAM,iBACL,MAAM,GAClB,EACF,yEAAe,QAAQ,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,uBAAuB,IAChE,uBAAuB,CACpB,CACF,CACP,CAAC;QAEF,MAAM,QAAQ,GAAG,OACf,wEACE,4DACG,IAAI,CAAC,cAAc,EAAE,KAAK,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CACjE,CACU,CACjB,CAAC;QAEF,QACE,EAAC,IAAI,qDACH,KAAK,EAAE;gBACL,oBAAoB,EAAE,QAAQ;gBAC9B,sBAAsB,EAAE,UAAU;gBAClC,CAAC,aAAa,IAAI,EAAE,GAAG,IAAI,KAAK,QAAQ;gBACxC,sBAAsB,EAAE,SAAS;gBACjC,CAAC,YAAY,KAAK,EAAE,GAAG,KAAK,KAAK,SAAS;aAC3C,IAED,2EAAoB,QAAQ,EAAE,QAAQ,IACnC,CAAC,SAAS,KACT,uEACE,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,IAElB,6DAAM,IAAI,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,GAAQ,CACpC,CAClB,EACD,qFACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EACjC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAC5B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,gBAAgB,IAEjC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC;YAC1B,CAAC,QAAQ;aACR,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KACpB,6DACE,IAAI,EAAC,WAAW,EAChB,KAAK,EAAE;gBACL,QAAQ;gBACR,WAAW,EAAE,CAAC,CAAC,KAAK;aACrB,IAED,6DAAM,IAAI,EAAC,MAAM,GAAG,CACf,CACR,EACF,gBAAgB,EAAE,IAAI,IAAI,CAAC,uBAAuB,IAAI,CAAC,QAAQ,IAC9D,EAAC,YAAY,OAAG,IACd,QAAQ,IACV,EAAC,QAAQ,OAAG,IACV,CAAC,UAAU,IACb,EAAC,YAAY,OAAG,KAEhB,EAAC,WAAW,OAAG,CAChB,CAC4B,EAC9B,EACC,gBAAgB,EAAE;YAClB,IAAI,CAAC,uBAAuB;YAC5B,CAAC,QAAQ,CACV,KACC,gEACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,EAC7B,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAClC,OAAO,EACL,UAAU,GAAG,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,aAAa,EAEhE,cAAc,EAAE,KAAK,EACrB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAC1B,KAAK,EAAE,QAAQ,GAAI,KAAkB,GAAI,KAAgB,EACzD,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,EACxC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAC3C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB,EACjD,aAAa,EAAE,IAAI,CAAC,iBAAiB,EACrC,cAAc,EAAE,IAAI,CAAC,0BAA0B,EAC/C,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,QAAQ,EAAE,IAAI,CAAC,EAAE,EACjB,cAAc,EACZ,UAAU,IAAI,QAAQ,IAAI,aAAa,GAAG,QAAQ,GAAG,WAAW,EAElE,oBAAoB,EAAE,IAAI,CAAC,WAAW,EACtC,aAAa,EAAE,CAAC,QAAQ,EACxB,WAAW,EAAE,QAAQ,EACrB,gBAAgB,EAAE,UAAU,GACnB,CACZ,EACD,4EACE,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aAClB,EACD,YAAY,EAAE,kBAAkB,EAChC,MAAM,EAAE,cAAc,GAAG,gBAAgB,GAAG,EAAE,EAC9C,OAAO,EAAE,cAAc,GAAG,cAAc,GAAG,EAAE,EAC7C,GAAG,EAAE,OAAO,GACS,CACJ,CAChB,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --menu-max-height: 100px;\n --border-color: var(--ic-select-field-border);\n --border-color-hover: var(--ic-select-field-border-hover);\n --border-color-pressed: var(--ic-select-field-border-pressed);\n --border-color-disabled: var(--ic-select-field-border-disabled);\n --border-color-error: var(--ic-select-field-border-error);\n --border-color-error-hover: var(--ic-select-field-border-error-hover);\n --border-color-error-pressed: var(--ic-select-field-border-error-pressed);\n --border-color-success: var(--ic-select-field-border-success);\n --border-color-success-hover: var(--ic-select-field-border-success-hover);\n --border-color-success-pressed: var(--ic-select-field-border-success-pressed);\n --border-color-warning: var(--ic-select-field-border-warning);\n --border-color-warning-hover: var(--ic-select-field-border-warning-hover);\n --border-color-warning-pressed: var(--ic-select-field-border-warning-pressed);\n --ic-input-label-text-color: var(--ic-select-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs);\n}\n\nselect {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n height: 100%;\n padding-left: 0.375rem;\n appearance: none;\n background-repeat: no-repeat;\n background-position: right 0.375rem center;\n background-image: var(--ic-select-mobile-dropdown-icon);\n caret-color: var(--ic-select-input-field-text-cursor);\n}\n\nselect option,\n.select-option-selected {\n color: var(--ic-select-list-option-text);\n}\n\nselect:disabled {\n color: var(--ic-select-content-text-disabled);\n background-image: var(--ic-select-mobile-dropdown-icon-disabled);\n}\n\nselect:focus {\n border: 0;\n outline: 0;\n}\n\nselect:not([disabled]) {\n cursor: pointer;\n}\n\n.select-container {\n width: 100%;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.select-input {\n width: 100%;\n height: 100%;\n padding: 0 0.375rem;\n display: flex;\n cursor: pointer;\n align-items: center;\n justify-content: space-between;\n background: none;\n border: none;\n background-color: var(--ic-select-field-background);\n color: var(--ic-select-content-text);\n}\n\n.select-input:focus {\n outline: none;\n}\n\n.select-input[disabled] {\n pointer-events: none;\n}\n\n:host(.ic-select-searchable) .select-input {\n cursor: auto;\n}\n\n.select-input.with-clear-button {\n padding-right: 0;\n}\n\n.value-text {\n max-width: calc(100% - (var(--ic-space-lg) + var(--ic-space-xxs)));\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n margin-bottom: 0 !important;\n}\n\n.value-text.with-clear-button {\n padding-right: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n.searchable-select-container {\n align-items: center;\n display: flex;\n width: 100%;\n position: relative;\n}\n\n.expand-icon {\n height: var(--ic-space-lg);\n padding-left: var(--ic-space-xxs);\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon > svg {\n display: inline-block;\n width: var(--ic-space-lg);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-disabled) .expand-icon,\n:host(.ic-select-disabled) .expand-icon > svg > path {\n color: var(--ic-select-disabled-expand-icon-color);\n}\n\n:host(.ic-select-searchable) .expand-icon {\n padding-left: 0;\n height: 2.25rem;\n}\n\n:host(.ic-select-searchable) .expand-icon > svg {\n height: 2.25rem;\n padding: 0 calc(var(--ic-space-xxxs) + var(--ic-space-xxs)) 0\n var(--ic-space-xxs);\n}\n\n:host(.ic-select-searchable:not(.ic-select-disabled)) .expand-icon > svg {\n cursor: pointer;\n}\n\n.expand-icon-open {\n color: var(--ic-select-expand-icon-color);\n}\n\n.expand-icon-open,\n:host(.ic-select-searchable) .expand-icon-open {\n transform: rotateX(180deg);\n}\n\n.placeholder {\n color: var(--ic-select-content-placeholder-text);\n}\n\n:host(.ic-select-disabled) .value-text,\n:host(.ic-select-disabled) .select-input,\n:host(.ic-select-disabled) .placeholder,\n:host(.ic-select-disabled.ic-select-searchable) .select-input::placeholder {\n color: var(--ic-select-content-text-disabled);\n}\n\n.select-input-end {\n display: flex;\n align-items: center;\n}\n\n.clear-button-container {\n display: flex;\n align-items: center;\n}\n\n.divider {\n width: var(--ic-space-1px);\n background-color: var(--ic-select-content-divider);\n margin: var(--ic-space-xxs) 0;\n border-radius: var(--ic-space-1px);\n height: var(--ic-space-lg);\n}\n\n:host(.ic-select-small) .divider {\n height: var(--ic-space-md);\n}\n\n:host(.ic-select-large) .divider {\n height: var(--ic-space-xl);\n}\n\n.clear-button {\n color: var(--ic-select-clear-button);\n position: absolute;\n right: calc(var(--ic-space-xl) + var(--ic-space-xxs) - var(--ic-space-1px));\n border-radius: var(--ic-border-radius);\n transition: box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition);\n}\n\n.clear-button:focus,\n.clear-button:active {\n background-color: var(--ic-color-focus-inner);\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer);\n border-radius: 0.25rem;\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button.searchable {\n position: static;\n}\n\n.aria-live-hidden-text {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .clear-button,\n ic-input-validation.menu-open .status-icon,\n ic-input-validation.menu-open .statustext {\n transition: none;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n Method,\n} from \"@stencil/core\";\nimport {\n addFormResetListener,\n checkSlotInChildMutations,\n getInputDescribedByText,\n isMobileOrTablet,\n isSlotUsed,\n removeDisabledFalse,\n removeFormResetListener,\n renderHiddenInput,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n IcInformationStatus,\n} from \"../../utils/types\";\nimport {\n IcSelectOption,\n IcSelectOptionBase,\n IcSelectOptionFlat,\n IcSelectOptionGroup,\n} from \"./ic-select.types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\nimport { IcMenuCustomEvent } from \"../../components\";\n\nlet inputIds = 0;\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"tabindex\", \"title\"];\n\n/**\n * @slot helper-text - Content is set as the helper text for the select.\n * @slot icon - Content will be placed to the left of the select text input.\n */\n@Component({\n tag: \"ic-select\",\n styleUrl: \"ic-select.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Select {\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private inheritedAttributes: { [k: string]: string } = {};\n private anchorEl?: HTMLElement;\n private nativeSelectElement?: HTMLSelectElement;\n private hostMutationObserver: MutationObserver | null = null;\n private clearButton?: HTMLIcButtonElement;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer: number | null = null;\n private hasTimedOut: boolean = false;\n private selectElement?: HTMLButtonElement;\n private initialRender: boolean = true;\n private characterKeyPressTimer?: number;\n private pressedCharacters = \"\";\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() hasError: boolean = false;\n @State() searchableSelectInputValue: string = \"\";\n @State() selectButtonAriaLiveText: string = \"\";\n @State() selectInputAriaLiveText: string = \"\";\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering = false;\n\n /**\n * The text displayed when there are no options in the option list.\n */\n @Prop() emptyOptionListText = \"No results found\";\n\n /**\n * The <form> element to associate the select with.\n */\n @Prop() form?: string;\n\n /**\n * If `true`, the select will fill the width of the container.\n */\n @Prop() fullWidth = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel = false;\n\n /**\n * If `true`, descriptions of options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeDescriptionsInSearch = false;\n\n /**\n * If `true`, group titles of grouped options will be included when filtering options in a searchable select. Only applies to built in filtering.\n */\n @Prop() includeGroupTitlesInSearch = false;\n\n /**\n * The label for the select.\n */\n @Prop() label!: string;\n\n /**\n * The message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel = \"Loading Error\";\n\n /**\n * The message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\n\n /**\n * If `true`, multiple options can be selected.\n */\n @Prop() multiple = false;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder = \"Select an option\";\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the select will require a value.\n */\n @Prop() required = false;\n\n /**\n * If `true`, a searchable variant of the select will be displayed which can be typed in to filter options. This functionality is only available on the single-select variant of the select component.\n */\n @Prop() searchable = false;\n\n /**\n * Whether the search string of the searchable select should match the start of or anywhere in the options. Only applies to built in filtering.\n */\n @Prop() searchMatchPosition: IcSearchMatchPositions = \"anywhere\";\n\n /**\n * If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown on the single select.\n */\n @Prop() selectOnEnter = false;\n\n /**\n * If `true`, a button which clears the select input when clicked will be displayed. The button will always appear on the searchable select.\n */\n @Prop() showClearButton = false;\n\n /**\n * The size of the select.\n */\n @Prop() size: IcSizes = \"medium\";\n\n /**\n * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme: IcThemeMode = \"inherit\";\n\n /**\n * The value of the `aria-live` attribute on the validation message.\n */\n @Prop() validationAriaLive: IcAriaLive = \"polite\";\n\n /**\n * The validation status - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The text to display as the validation message.\n */\n @Prop() validationText = \"\";\n\n /**\n * If `true` and on a mobile or tablet device, the native select element will be used instead of the custom select component for better usability.\n */\n @Prop() useNativeSelectOnMobile = true;\n\n /**\n * If `true`, the loading state will be triggered when fetching options asynchronously.\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n this.hasTimedOut = false;\n\n if (newValue) {\n this.hasError = false;\n if (this.timeout) {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n forceUpdate(this);\n }, this.timeout);\n }\n } else {\n if (this.timeoutTimer) {\n this.clearTimer();\n }\n }\n }\n\n private clearTimer() {\n if (this.timeoutTimer) {\n clearTimeout(this.timeoutTimer);\n this.timeoutTimer = null;\n }\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcSelectOption[] = [];\n @State() flatOptions: IcSelectOptionFlat[] = [];\n @Watch(\"options\")\n optionsChangedHandler(): void {\n const flat = this.getFlatOptions(this.options)\n .filter((option) => option.value != null || option.label != null) // filter out options missing both value and label\n .map((option) => ({\n ...option,\n value: option.value ?? option.label, // if an option is missing a value, use the label as the value\n label: option.label ?? option.value, // vice versa\n }));\n this.flatOptions = this.getDeduplicatedOptions(flat);\n\n if (!this.initialRender) this.loading = false;\n this.clearTimer();\n this.updateSelectButtonAriaLive();\n }\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icInput` event after each keystroke.\n */\n @Prop() debounce = 0;\n @State() currDebounce = this.debounce;\n @Watch(\"debounce\")\n debounceChangedHandler(newValue: number): void {\n if (this.currDebounce !== newValue) {\n this.currDebounce = newValue;\n }\n }\n\n /**\n * The value of the select, reflected by the value of the currently selected option.\n * For the searchable variant, the value is also reflected by the user input.\n * For the multi-select variant, the value must be an array of option values.\n */\n @Prop({ mutable: true }) value: string | string[] | null = null;\n @State() initialValue = this.value;\n @Watch(\"value\")\n valueChangedHandler(newValue: string | string[] | null): void {\n const validated = this.getValidatedValue(newValue);\n\n const isEqual =\n Array.isArray(validated) && Array.isArray(this.value)\n ? validated.length === this.value.length &&\n validated.every((v, i) => v === (this.value as string[])[i])\n : validated === this.value;\n\n if (!isEqual) {\n this.value = validated;\n return;\n }\n\n this.updateSelectButtonAriaLive();\n this.icChange.emit({ value: this.value });\n }\n\n @State() open = false;\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n if (!this.open) {\n this.ariaActiveDescendant = undefined;\n }\n this.handleFocusIndicatorDisplay();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the clear or clear all button is clicked.\n */\n @Event() icClear: EventEmitter<void>;\n\n /**\n * Emitted when the select options menu is closed.\n */\n @Event() icClose: EventEmitter<void>;\n\n /**\n * Emitted when the select gains focus.\n */\n @Event() icFocus: EventEmitter<void>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the select options menu is opened.\n */\n @Event() icOpen: EventEmitter<void>;\n\n /**\n * Emitted when an option is selected.\n * Selecting an option will also trigger an `icChange/onIcChange` due to the value being updated.\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when `multiple` is `true` and an option is deselected.\n */\n @Event() icOptionDeselect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the 'retry loading' button is clicked for a searchable variant.\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Sets focus on the select component.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.selectElement) {\n this.selectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n this.initialRender = false;\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n this.clearTimer();\n }\n\n componentDidLoad(): void {\n forceUpdate(this);\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n private getValidatedValue = (\n value: string | string[] | null\n ): string | string[] | null => {\n const validValues = this.flatOptions.map((opt) => opt.value);\n\n if (validValues.length === 0) return value;\n\n if (this.multiple) {\n if (!value) return null;\n const arr = Array.isArray(value) ? value : [value]; // Ensure value is an array\n const filtered = validValues.filter((v) => arr.includes(v)); // Keep only valid values\n return filtered.length > 0 ? filtered : null;\n } else {\n return validValues.includes(value as string) ? value : null;\n }\n };\n\n componentWillLoad(): void {\n this.optionsChangedHandler();\n this.value = this.getValidatedValue(this.value);\n this.initialValue = this.value;\n\n if (this.loading) this.loadingHandler(true);\n\n addFormResetListener(this.el, this.handleFormReset);\n }\n\n private getFilteredOptions = (\n searchString: string,\n searchMatchPosition: \"anywhere\" | \"start\",\n includeDescriptionsInSearch: boolean,\n includeGroupTitlesInSearch: boolean\n ): IcSelectOption[] => {\n const search = searchString.toLowerCase();\n const match = (text: string, method: \"anywhere\" | \"start\") =>\n method === \"anywhere\" ? text.includes(search) : text.startsWith(search);\n\n return this.unflattenOptions(\n this.flatOptions.filter((option) => {\n const label = option.label.toLowerCase();\n const group = option.group?.toLowerCase() ?? \"\";\n const description = option.description?.toLowerCase() ?? \"\";\n return (\n match(label, searchMatchPosition) ||\n (includeDescriptionsInSearch &&\n match(description, searchMatchPosition)) ||\n (includeGroupTitlesInSearch && match(group, searchMatchPosition))\n );\n })\n );\n };\n\n private getOptions = (): IcSelectOption[] => {\n const options =\n this.searchable &&\n !this.disableAutoFiltering &&\n this.searchableSelectInputValue\n ? this.getFilteredOptions(\n this.searchableSelectInputValue,\n this.searchMatchPosition,\n this.includeDescriptionsInSearch,\n this.includeGroupTitlesInSearch\n )\n : this.unflattenOptions(this.flatOptions);\n\n if (this.hasTimedOut)\n return [{ label: this.loadingErrorLabel, value: \"\", timedOut: true }];\n\n if (this.loading)\n return [{ label: this.loadingLabel, value: \"\", loading: true }];\n\n if (options.length > 0) return options;\n\n return [{ label: this.emptyOptionListText, value: \"\" }];\n };\n\n private getFlatOptions = (options: IcSelectOption[]): IcSelectOptionFlat[] =>\n options.flatMap(\n (item) =>\n (\"children\" in item && item.children\n ? [...item.children.map((child) => ({ group: item.label, ...child }))]\n : [item]) as IcSelectOptionFlat[]\n );\n\n private unflattenOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOption[] => {\n const groupMap = new Map<string, IcSelectOptionGroup>();\n const result: IcSelectOption[] = [];\n\n for (const option of flatOptions) {\n if (option.group) {\n let group = groupMap.get(option.group);\n if (!group) {\n group = { label: option.group, children: [] };\n groupMap.set(option.group, group);\n result.push(group);\n }\n const { group: _, ...rest } = option;\n group.children.push(rest as IcSelectOptionBase);\n } else {\n result.push(option);\n }\n }\n return result;\n };\n\n private getLabelFromValue = (value: string | null): string =>\n this.flatOptions.find((option) => option.value === value)?.label ?? \"\";\n\n // Construct the string that will be shown in the select input or button\n private getLabelString = (): string => {\n if (Array.isArray(this.value)) {\n return this.value.map(this.getLabelFromValue).filter(Boolean).join(\", \");\n }\n return (\n this.getLabelFromValue(this.value) ||\n (this.searchable ? \"\" : this.placeholder)\n );\n };\n\n private handleClick = (event: MouseEvent) => {\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n this.el.contains(target) ||\n this.el.shadowRoot?.contains(target) ||\n this.menu?.contains(target) ||\n target === this.clearButton\n ) {\n return;\n }\n\n this.open = false;\n this.handleFocusIndicatorDisplay();\n\n if (this.searchable) {\n this.searchableSelectInputValue = \"\";\n }\n this.icBlur.emit();\n };\n\n private handleTimeoutBlur = (event: CustomEvent<{ ev: FocusEvent }>) => {\n this.handleBlur(event.detail.ev);\n };\n\n private handleFocus = () => {\n this.icFocus.emit();\n };\n\n private handleClear = () => {\n this.clearTimer();\n this.loading = false;\n this.value = null;\n this.searchableSelectInputValue = \"\";\n\n this.icClear.emit();\n\n this.setFocus();\n };\n\n private setTextColor = () => {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.className =\n this.nativeSelectElement.selectedIndex === 0\n ? \"placeholder\"\n : \"select-option-selected\";\n }\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.icChange.emit({ value: this.nativeSelectElement.value });\n }\n this.setTextColor();\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\n this.el.shadowRoot?.querySelector(\".focus-indicator\");\n\n if (focusIndicator) {\n if (this.open) {\n focusIndicator.classList.add(\"focus-indicator-enabled\");\n } else {\n focusIndicator.classList.remove(\"focus-indicator-enabled\");\n }\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (!(event.key === \" \" && this.pressedCharacters.length > 0)) {\n if (this.open) {\n this.menu?.handleMenuKeyDown(event);\n } else {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n\n if (\n !this.multiple &&\n !this.searchable &&\n !this.selectOnEnter &&\n /^[a-zA-Z0-9 ]$/.test(event.key)\n ) {\n this.handleCharacterKeyDown(event.key);\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.open = false;\n }\n\n if (key.length !== 1 || this.searchable) {\n this.pressedCharacters = \"\";\n return;\n }\n\n window.clearTimeout(this.characterKeyPressTimer);\n this.characterKeyPressTimer = window.setTimeout(\n () => (this.pressedCharacters = \"\"),\n 1000\n );\n\n if (key !== \" \" || !!this.pressedCharacters) {\n this.pressedCharacters += key;\n const filteredOptions = this.getFilteredOptions(\n this.pressedCharacters,\n \"start\",\n false,\n false\n );\n\n if (filteredOptions.length > 0) {\n const firstOption = filteredOptions[0];\n if (\"children\" in firstOption) {\n if (firstOption.children) {\n this.value = firstOption.children[0].value;\n }\n } else {\n this.value = firstOption.value;\n }\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n this.handleKeyDown(event);\n };\n\n private handleSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value } = event.detail;\n if (!value || this.getLabelFromValue(value) === this.emptyOptionListText) {\n this.value = null;\n return;\n }\n\n if (this.multiple) {\n let valueArray = Array.isArray(this.value) ? [...this.value] : [];\n const index = valueArray.indexOf(value);\n\n if (index > -1) {\n valueArray.splice(index, 1);\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n valueArray.push(value);\n valueArray = this.getValidatedValue(valueArray) as string[];\n }\n this.value = valueArray.length ? valueArray : null;\n } else {\n this.icOptionSelect.emit({ value });\n this.value = value;\n if (this.searchable) this.searchableSelectInputValue = \"\";\n }\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allSelectableValues = this.flatOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n if (detail.select) {\n allSelectableValues\n .filter((value) => !((this.value ?? []) as string[]).includes(value))\n .forEach((value) => {\n this.icOptionSelect.emit({ value });\n });\n\n this.value = allSelectableValues;\n } else {\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n this.value = null;\n }\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n this.searchableSelectInputValue = \"\";\n if (this.searchable) {\n this.hiddenInputValue = this.initialValue as string;\n }\n };\n\n private handleRetry = () => {\n this.clearTimer();\n this.hasTimedOut = false;\n this.hasError = false;\n this.loading = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n this.setFocus();\n };\n\n private handleSearchableSelectInput = (event: Event) => {\n this.updateSearchableSelectResultAriaLive();\n if (!this.multiple) {\n this.value = null;\n }\n\n this.searchableSelectInputValue =\n (event.target as HTMLInputElement).value ?? \"\";\n this.open = true;\n\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value: this.searchableSelectInputValue }),\n this.currDebounce\n );\n };\n\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\n let forceComponentUpdate = false;\n mutationList.forEach(\n ({ attributeName, type, addedNodes, removedNodes }) => {\n if (attributeName) {\n const attribute = this.el.getAttribute(attributeName);\n if (attribute && MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] = attribute;\n forceComponentUpdate = true;\n }\n } else if (type === \"childList\") {\n forceComponentUpdate = checkSlotInChildMutations(\n addedNodes,\n removedNodes,\n \"icon\"\n );\n }\n }\n );\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n private updateSelectButtonAriaLive = () => {\n const value_label = this.getLabelFromValue(this.value as string);\n this.selectButtonAriaLiveText = this.multiple\n ? `${this.value ? this.value.length : 0} of ${\n this.flatOptions.length\n } selected`\n : this.value\n ? value_label ?? `${value_label} selected`\n : \"\";\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n this.selectInputAriaLiveText =\n this.getOptions()?.[0]?.label == this.emptyOptionListText\n ? this.emptyOptionListText\n : \"\";\n };\n\n private updateAriaActiveDescendant = (\n event: IcMenuCustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n this.ariaActiveDescendant = event.detail.optionId;\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n };\n\n private getDeduplicatedOptions = (\n flatOptions: IcSelectOptionFlat[]\n ): IcSelectOptionFlat[] => {\n const seen = new Set();\n return flatOptions.filter((option) => {\n if (option.value && seen.has(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n return false;\n }\n if (option.value) seen.add(option.value);\n return true;\n });\n };\n\n private renderNativeOption = (option: IcSelectOptionBase) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.value}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n disabled,\n searchable,\n size,\n fullWidth,\n theme,\n readonly,\n hideLabel,\n inputId,\n label,\n helperText,\n required,\n value,\n options,\n menuId,\n multiple,\n validationStatus,\n open,\n showClearButton,\n selectOnEnter,\n loading,\n searchableSelectInputValue,\n validationText,\n validationAriaLive,\n form,\n ariaActiveDescendant,\n placeholder,\n name,\n inheritedAttributes,\n selectInputAriaLiveText,\n selectButtonAriaLiveText,\n } = this;\n\n const hasValue = !!value;\n const hasInput = !!searchableSelectInputValue;\n const isClearable =\n !disabled &&\n ((searchable && (hasInput || hasValue)) ||\n (!searchable && hasValue && !loading && showClearButton));\n\n const showValidation = !!validationStatus && !disabled;\n\n const invalid = validationStatus === IcInformationStatus.Error;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const menuOptions = this.getOptions();\n const noOptions =\n disabled ||\n (menuOptions.length === 1 &&\n (menuOptions[0].label === this.emptyOptionListText ||\n \"loading\" in menuOptions[0] ||\n \"timedOut\" in menuOptions[0]));\n\n renderHiddenInput(this.el, value as string, name || inputId, disabled);\n\n const ClearButton = () => (\n <ic-button\n ref={(el) => (this.clearButton = el)}\n id=\"clear-button\"\n aria-label={this.searchable ? \"Clear input\" : \"Clear selection\"}\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onBlur={this.handleBlur}\n size={size}\n variant=\"icon-tertiary\"\n ></ic-button>\n );\n\n const NativeSelect = () => (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n \"children\" in option && option.children ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child as IcSelectOptionBase)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option as IcSelectOptionBase)\n )\n )}\n </select>\n );\n\n const SelectButton = () => (\n <div class=\"select-container\">\n <button\n class=\"select-input\"\n role=\"combobox\"\n ref={(el) => (this.selectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && value\n ? `${value.length} of ${\n this.flatOptions.length\n } selected, ${this.getLabelString()}`\n : this.getLabelString()) || placeholder\n }`}\n onClick={this.handleClick}\n aria-describedby={describedBy}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onKeyDown={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n aria-activedescendant={ariaActiveDescendant}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": !!isClearable,\n placeholder: !value,\n }}\n >\n {this.getLabelString()}\n </ic-typography>\n <div class=\"select-input-end\">\n {isClearable && <div class=\"divider\"></div>}\n <span\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n </div>\n </button>\n {isClearable && <ClearButton></ClearButton>}\n <div\n aria-live=\"polite\"\n aria-atomic=\"true\"\n class=\"aria-live-hidden-text\"\n >\n {selectButtonAriaLiveText}\n </div>\n </div>\n );\n\n const SelectInput = () => (\n <div class=\"searchable-select-container\">\n <input\n class={{\n \"value-text\": true,\n \"select-input\": true,\n \"with-clear-button\": !!searchableSelectInputValue,\n }}\n role=\"combobox\"\n autocomplete=\"off\"\n aria-label={label}\n aria-describedby={describedBy}\n aria-activedescendant={ariaActiveDescendant}\n aria-autocomplete=\"list\"\n aria-expanded={`${open}`}\n aria-invalid={invalid ? \"true\" : \"false\"}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={\n multiple\n ? \"\"\n : value\n ? this.getLabelString()\n : searchableSelectInputValue || undefined\n }\n disabled={disabled}\n placeholder={placeholder}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ClearButton></ClearButton>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div aria-live=\"polite\" role=\"status\" class=\"aria-live-hidden-text\">\n {selectInputAriaLiveText}\n </div>\n </div>\n );\n\n const ReadOnly = () => (\n <ic-typography>\n <p>\n {this.getLabelString() === placeholder ? \"\" : this.getLabelString()}\n </p>\n </ic-typography>\n );\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n readonly={readonly}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n )}\n <ic-input-component-container\n ref={(el) => (this.anchorEl = el)}\n class={{ \"menu-open\": open }}\n size={size}\n fullWidth={fullWidth}\n disabled={disabled}\n readonly={readonly}\n validationStatus={validationStatus}\n >\n {isSlotUsed(this.el, \"icon\") &&\n !disabled &&\n (!readonly || !!value) && (\n <span\n slot=\"left-icon\"\n class={{\n readonly,\n \"has-value\": !!value,\n }}\n >\n <slot name=\"icon\" />\n </span>\n )}\n {isMobileOrTablet() && this.useNativeSelectOnMobile && !multiple ? (\n <NativeSelect />\n ) : readonly ? (\n <ReadOnly />\n ) : !searchable ? (\n <SelectButton />\n ) : (\n <SelectInput />\n )}\n </ic-input-component-container>\n {!(\n isMobileOrTablet() &&\n this.useNativeSelectOnMobile &&\n !multiple\n ) && (\n <ic-menu\n ref={(el) => (this.menu = el)}\n class={{ \"no-results\": noOptions }}\n inputEl={\n searchable ? this.searchableSelectElement : this.selectElement\n }\n allowMenuFocus={false}\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={this.getOptions()}\n value={multiple ? (value as string[]) : (value as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onTimeoutBlur={this.handleTimeoutBlur}\n onMenuOptionId={this.updateAriaActiveDescendant}\n onClick={this.setFocus}\n parentEl={this.el}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n onRetryButtonClicked={this.handleRetry}\n closeOnSelect={!multiple}\n multiSelect={multiple}\n searchableSelect={searchable}\n ></ic-menu>\n )}\n <ic-input-validation\n class={{\n \"menu-open\": open,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n for={inputId}\n ></ic-input-validation>\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { c as closeIcon } from './close-icon.js';
3
3
  import { c as chevronIcon } from './chevron-icon.js';
4
- import { P as getCssProperty, q as getCurrentDeviceSize, D as DEVICE_SIZES, l as getBrandForegroundAppearance, i as isSlotUsed, H as isEmptyString, c as checkResizeObserver, o as onComponentRequiredPropUndefined, f as renderDynamicChildSlots, I as IcBrandForegroundEnum, J as hasClassificationBanner, m as isPropDefined } from './helpers.js';
4
+ import { O as getCssProperty, q as getCurrentDeviceSize, D as DEVICE_SIZES, l as getBrandForegroundAppearance, i as isSlotUsed, G as isEmptyString, c as checkResizeObserver, o as onComponentRequiredPropUndefined, e as renderDynamicChildSlots, I as IcBrandForegroundEnum, H as hasClassificationBanner, m as isPropDefined } from './helpers.js';
5
5
  import { d as defineCustomElement$6 } from './ic-button2.js';
6
6
  import { d as defineCustomElement$5 } from './ic-divider2.js';
7
7
  import { d as defineCustomElement$4 } from './ic-loading-indicator2.js';
@@ -478,7 +478,7 @@ const SideNavigation = /*@__PURE__*/ proxyCustomElement(class SideNavigation ext
478
478
  isAppNameSubtitleVariant,
479
479
  appTitle: appTitle || "",
480
480
  };
481
- return (h(Host, { key: '886d59eacfc6a79fa8b4caae8a2cdb775dff6067', class: {
481
+ return (h(Host, { key: '467270372cb15a90984978cb333a6756c7ffcb8d', class: {
482
482
  "xs-menu-open": menuOpen && isSDevice,
483
483
  "xs-menu-close": !menuOpen && isSDevice,
484
484
  "sm-collapsed": !isSDevice && !menuExpanded,
@@ -487,12 +487,12 @@ const SideNavigation = /*@__PURE__*/ proxyCustomElement(class SideNavigation ext
487
487
  [`ic-side-navigation-${IcBrandForegroundEnum.Dark}`]: foregroundColor === IcBrandForegroundEnum.Dark,
488
488
  ["collapsed-labels"]: !isSDevice && !menuExpanded && !!collapsedIconLabels,
489
489
  ["ic-side-navigation-inline"]: !!inline,
490
- } }, isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h("div", { key: '92d8098c0824f92ff4f639385d9ef1aae6fda26e', class: "side-navigation", id: "side-navigation" }, !isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h("div", { key: '5a35143cf052d624a03308c8a727b8714e1896a6', class: "side-navigation-inner" }, isSlotUsed(this.el, "primary-navigation") && (h("nav", { key: '4239354cce9eede321351b68744550e0de08c3ae', class: "primary-navigation", "aria-labelledby": "primary-navigation-landmark" }, h("span", { key: 'f8a95a420530e9114eb4560a8e77b5be51282906', "aria-hidden": "true", class: "navigation-landmark-title", id: "primary-navigation-landmark" }, "Primary"), h("ul", { key: 'b660e71252c4c16dda5f3850c2769312b26397ff', class: "navigation-list" }, h("slot", { key: 'b3c7b371935ef0f4b5d604c5ebe1dda873419d75', name: "primary-navigation" }))))), h("div", { key: '2fcca3fc56a443b064541f3c595214693fe76b37', class: {
490
+ } }, isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h("div", { key: '51b75422befcc62a8b9a866ab9ab7c58b799db2c', class: "side-navigation", id: "side-navigation" }, !isSDevice && this.renderTopBar(Object.assign({}, topBarProps)), h("div", { key: 'fbcb14963d2ce5567297bdf794d1dd5f7a6209bb', class: "side-navigation-inner" }, isSlotUsed(this.el, "primary-navigation") && (h("nav", { key: '24da45c7237f1152c1e93db9b928120bcca1ba14', class: "primary-navigation", "aria-labelledby": "primary-navigation-landmark" }, h("span", { key: 'e57f1521e37ecc9b770b35339059564ff23fe945', "aria-hidden": "true", class: "navigation-landmark-title", id: "primary-navigation-landmark" }, "Primary"), h("ul", { key: '88ffcdc33e0ebb348a3f8851dfb85020625293d7', class: "navigation-list" }, h("slot", { key: '91243f0760b0a67226f4c83a0393f669443ee356', name: "primary-navigation" }))))), h("div", { key: '77eaa1bf6bd8951c5a77902c75b0664aa36f0b44', class: {
491
491
  ["bottom-wrapper"]: true,
492
492
  ["classification-spacing"]: hasClassificationBanner(),
493
- } }, isSlotUsed(this.el, "secondary-navigation") && (h("nav", { key: '3b0b5d0d656206768109c4e4065c14d831962cb2', class: "secondary-navigation", "aria-labelledby": "secondary-navigation-landmark" }, h("span", { key: '637fe5abe5383946e97277b089c7dd1d46e703a3', "aria-hidden": "true", class: "navigation-landmark-title", id: "secondary-navigation-landmark" }, "Secondary"), h("ul", { key: '78640f1d84d55e53414094fff6abad155b44f35d', class: "navigation-list" }, h("slot", { key: '35d6d19470f2b2694084b55c08905cfc8e3a0a97', name: "secondary-navigation" })))), h("div", { key: '78cd12a09800d0e83634ad7ca75daa2bd1adcd35', class: "bottom-side-nav" }, this.hasSecondaryNavigation && h("ic-divider", { key: 'b600544aa406b829069b6f7cdefeee16e9b4c40f' }), displayExpandBtn && (h("button", { key: 'a48355b059c6e41f141a41ca1aed6bf363be51cc', class: "menu-expand-button", innerHTML: chevronIcon, onClick: () => this.toggleMenuExpanded(!this.menuExpanded), "aria-label": `${menuExpanded ? "Collapse" : "Expand"} side navigation` })), h("div", { key: '6f51db95e92d73c8c59ca5e337e0e6083e0d95b5', class: "app-status-wrapper" }, status && (h("div", { key: 'aea4cbab412fd1a89d65517d355a41538505527c', class: {
493
+ } }, isSlotUsed(this.el, "secondary-navigation") && (h("nav", { key: 'ad66580f2b2f753f4ce2d1be8128fdcb5fb69c9f', class: "secondary-navigation", "aria-labelledby": "secondary-navigation-landmark" }, h("span", { key: '3f503502795535166e14d6d52ee1b8f72dfe9551', "aria-hidden": "true", class: "navigation-landmark-title", id: "secondary-navigation-landmark" }, "Secondary"), h("ul", { key: 'cfd5af2f79b1ca9e309fc160c5b4b00385f017d2', class: "navigation-list" }, h("slot", { key: 'a975b85e39c977ea241a976df63699337f6507d7', name: "secondary-navigation" })))), h("div", { key: 'b0f3f81a20589100389495ded413bf1bfe09e096', class: "bottom-side-nav" }, this.hasSecondaryNavigation && h("ic-divider", { key: '3ee7716a6a6ed2e8f776b9ba376a54274c84f873' }), displayExpandBtn && (h("button", { key: 'c7f04012bfcb7f727431a9d7e6e53d714cc49e5e', class: "menu-expand-button", innerHTML: chevronIcon, onClick: () => this.toggleMenuExpanded(!this.menuExpanded), "aria-label": `${menuExpanded ? "Collapse" : "Expand"} side navigation` })), h("div", { key: 'a3d90469e6d05790dd84a00ea1e4c4c35ecb8955', class: "app-status-wrapper" }, status && (h("div", { key: '6dddec89dbd4e81f2d5b0132c648e53e72092d14', class: {
494
494
  ["app-status"]: true,
495
- } }, h("ic-typography", { key: '1a23249530701743408ac1003ce89a0c91f5165c', "aria-label": "app tag", variant: "label-uppercase", class: "app-status-text" }, status))), version && (h("ic-typography", { key: '430aa919fdf4eaca59e0fa6523f014a1885de38a', variant: "label", class: "app-version", "aria-label": "app version" }, version))))))));
495
+ } }, h("ic-typography", { key: '21635fd5640f74861ede6840073a112753d13a29', "aria-label": "app tag", variant: "label-uppercase", class: "app-status-text" }, status))), version && (h("ic-typography", { key: '7a95df03f61c13f2a6ed23e43be42959ae98fd88', variant: "label", class: "app-version", "aria-label": "app version" }, version))))))));
496
496
  }
497
497
  get el() { return this; }
498
498
  static get watchers() { return {