@ukic/web-components 3.14.0 → 3.16.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 (414) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-button_3.cjs.entry.js +5 -5
  3. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  5. package/dist/cjs/ic-checkbox.cjs.entry.js +31 -8
  6. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  7. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-footer.cjs.entry.js +9 -5
  15. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-hero.cjs.entry.js +11 -6
  17. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  19. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +10 -10
  20. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-input-label_2.cjs.entry.js +6 -6
  22. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-layout-grid-item.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-layout-grid.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  26. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  28. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  32. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  33. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-pagination.cjs.entry.js +4 -4
  35. package/dist/cjs/ic-popover-menu.cjs.entry.js +4 -4
  36. package/dist/cjs/ic-radio-group.cjs.entry.js +5 -5
  37. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -6
  39. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-search-bar.cjs.entry.js +10 -10
  41. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  43. package/dist/cjs/ic-select.cjs.entry.js +7 -7
  44. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-side-navigation.cjs.entry.js +4 -4
  46. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  47. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  50. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  52. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  53. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-text-field.cjs.entry.js +6 -6
  56. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  57. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-toast.cjs.entry.js +14 -6
  60. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +2 -2
  62. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  63. package/dist/cjs/loader.cjs.js +1 -1
  64. package/dist/collection/components/ic-button/ic-button.stories.js +3 -3
  65. package/dist/collection/components/ic-checkbox/ic-checkbox.css +11 -2
  66. package/dist/collection/components/ic-checkbox/ic-checkbox.js +31 -7
  67. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  68. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  69. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.stories.js +68 -16
  70. package/dist/collection/components/ic-data-list/ic-data-list.css +1 -0
  71. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  72. package/dist/collection/components/ic-data-row/ic-data-row.css +2 -0
  73. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  74. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  75. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  76. package/dist/collection/components/ic-footer/ic-footer.js +29 -5
  77. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  78. package/dist/collection/components/ic-footer/ic-footer.stories.js +31 -0
  79. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  80. package/dist/collection/components/ic-hero/ic-hero.css +19 -0
  81. package/dist/collection/components/ic-hero/ic-hero.js +36 -5
  82. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  83. package/dist/collection/components/ic-hero/ic-hero.stories.js +15 -0
  84. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  85. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +9 -0
  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.css +2 -1
  90. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  91. package/dist/collection/components/ic-layout-grid/ic-layout-grid.js +2 -2
  92. package/dist/collection/components/ic-layout-grid-item/ic-layout-grid-item.js +2 -2
  93. package/dist/collection/components/ic-link/ic-link.js +1 -1
  94. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +5 -5
  95. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.stories.js +17 -18
  96. package/dist/collection/components/ic-menu/ic-menu.css +8 -0
  97. package/dist/collection/components/ic-menu/ic-menu.js +3 -3
  98. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  99. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +12 -0
  100. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +1 -1
  101. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +2 -7
  102. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  103. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  104. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  105. package/dist/collection/components/ic-pagination/ic-pagination.stories.js +3 -3
  106. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  107. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  108. package/dist/collection/components/ic-popover-menu/ic-popover-menu.stories.js +7 -7
  109. package/dist/collection/components/ic-radio-group/ic-radio-group.css +6 -6
  110. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  111. package/dist/collection/components/ic-radio-group/ic-radio-group.stories.js +12 -12
  112. package/dist/collection/components/ic-radio-option/ic-radio-option.css +60 -54
  113. package/dist/collection/components/ic-radio-option/ic-radio-option.js +9 -5
  114. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  115. package/dist/collection/components/ic-search-bar/ic-search-bar.css +8 -0
  116. package/dist/collection/components/ic-search-bar/ic-search-bar.js +9 -9
  117. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +19 -19
  118. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  119. package/dist/collection/components/ic-select/ic-select.css +1 -1
  120. package/dist/collection/components/ic-select/ic-select.js +6 -6
  121. package/dist/collection/components/ic-select/ic-select_(multi).stories.js +20 -20
  122. package/dist/collection/components/ic-select/ic-select_(searchable).stories.js +21 -21
  123. package/dist/collection/components/ic-select/ic-select_(single).stories.js +21 -5
  124. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +4 -4
  125. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  126. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  127. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  128. package/dist/collection/components/ic-step/ic-step.js +13 -13
  129. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  130. package/dist/collection/components/ic-stepper/ic-stepper.stories.js +16 -6
  131. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  132. package/dist/collection/components/ic-tab-context/ic-tab-context.js +1 -1
  133. package/dist/collection/components/ic-tab-context/ic-tabs.stories.js +1 -1
  134. package/dist/collection/components/ic-tab-group/ic-tab-group.js +2 -2
  135. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js +2 -2
  136. package/dist/collection/components/ic-text-field/ic-text-field.js +6 -6
  137. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  138. package/dist/collection/components/ic-text-field/ic-text-field.stories.js +32 -18
  139. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  140. package/dist/collection/components/ic-toast/ic-toast.css +26 -1
  141. package/dist/collection/components/ic-toast/ic-toast.js +39 -5
  142. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  143. package/dist/collection/components/ic-toast/ic-toast.stories.js +21 -9
  144. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  145. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +2 -2
  146. package/dist/collection/components/ic-toggle-button/ic-toggle-button.stories.js +14 -14
  147. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +2 -2
  148. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.stories.js +7 -7
  149. package/dist/collection/components/ic-tooltip/ic-tooltip.stories.js +11 -11
  150. package/dist/collection/components/ic-top-navigation/ic-top-navigation.stories.js +15 -15
  151. package/dist/collection/components/ic-typography/ic-typography.stories.js +1 -1
  152. package/dist/collection/patterns/top-nav-content-footer.stories.js +1 -1
  153. package/dist/components/ic-badge.js.map +1 -1
  154. package/dist/components/ic-checkbox-group.js +2 -2
  155. package/dist/components/ic-checkbox.js +31 -8
  156. package/dist/components/ic-checkbox.js.map +1 -1
  157. package/dist/components/ic-chip.js.map +1 -1
  158. package/dist/components/ic-classification-banner.js.map +1 -1
  159. package/dist/components/ic-data-list.js +2 -2
  160. package/dist/components/ic-data-list.js.map +1 -1
  161. package/dist/components/ic-data-row.js +2 -2
  162. package/dist/components/ic-data-row.js.map +1 -1
  163. package/dist/components/ic-dialog.js +1 -1
  164. package/dist/components/ic-empty-state.js +2 -2
  165. package/dist/components/ic-footer-link.js +2 -2
  166. package/dist/components/ic-footer.js +10 -5
  167. package/dist/components/ic-footer.js.map +1 -1
  168. package/dist/components/ic-hero.js +12 -6
  169. package/dist/components/ic-hero.js.map +1 -1
  170. package/dist/components/ic-horizontal-scroll2.js +5 -5
  171. package/dist/components/ic-input-component-container2.js +4 -4
  172. package/dist/components/ic-input-component-container2.js.map +1 -1
  173. package/dist/components/ic-input-container2.js +2 -2
  174. package/dist/components/ic-input-label2.js +2 -2
  175. package/dist/components/ic-input-validation2.js +4 -4
  176. package/dist/components/ic-input-validation2.js.map +1 -1
  177. package/dist/components/ic-layout-grid-item.js +2 -2
  178. package/dist/components/ic-layout-grid.js +2 -2
  179. package/dist/components/ic-link2.js +1 -1
  180. package/dist/components/ic-loading-indicator2.js +5 -5
  181. package/dist/components/ic-menu-group.js +1 -1
  182. package/dist/components/ic-menu2.js +4 -4
  183. package/dist/components/ic-menu2.js.map +1 -1
  184. package/dist/components/ic-navigation-group.js +2 -2
  185. package/dist/components/ic-navigation-group.js.map +1 -1
  186. package/dist/components/ic-navigation-item.js +1 -1
  187. package/dist/components/ic-navigation-item.js.map +1 -1
  188. package/dist/components/ic-navigation-menu2.js +4 -4
  189. package/dist/components/ic-page-header.js +6 -6
  190. package/dist/components/ic-pagination-item2.js +1 -1
  191. package/dist/components/ic-pagination.js +4 -4
  192. package/dist/components/ic-popover-menu.js +4 -4
  193. package/dist/components/ic-popover-menu.js.map +1 -1
  194. package/dist/components/ic-radio-group.js +5 -5
  195. package/dist/components/ic-radio-group.js.map +1 -1
  196. package/dist/components/ic-radio-option.js +10 -7
  197. package/dist/components/ic-radio-option.js.map +1 -1
  198. package/dist/components/ic-search-bar.js +10 -10
  199. package/dist/components/ic-search-bar.js.map +1 -1
  200. package/dist/components/ic-section-container2.js +2 -2
  201. package/dist/components/ic-select.js +7 -7
  202. package/dist/components/ic-select.js.map +1 -1
  203. package/dist/components/ic-side-navigation.js +4 -4
  204. package/dist/components/ic-side-navigation.js.map +1 -1
  205. package/dist/components/ic-skeleton.js +2 -2
  206. package/dist/components/ic-skip-link.js +2 -2
  207. package/dist/components/ic-status-tag.js +2 -2
  208. package/dist/components/ic-step.js +13 -13
  209. package/dist/components/ic-step.js.map +1 -1
  210. package/dist/components/ic-stepper.js +2 -2
  211. package/dist/components/ic-switch.js +4 -4
  212. package/dist/components/ic-tab-context.js +1 -1
  213. package/dist/components/ic-tab-group.js +2 -2
  214. package/dist/components/ic-tab-panel.js +2 -2
  215. package/dist/components/ic-text-field.js +6 -6
  216. package/dist/components/ic-text-field.js.map +1 -1
  217. package/dist/components/ic-theme.js +1 -1
  218. package/dist/components/ic-toast-region.js +1 -1
  219. package/dist/components/ic-toast.js +15 -6
  220. package/dist/components/ic-toast.js.map +1 -1
  221. package/dist/components/ic-toggle-button-group.js +2 -2
  222. package/dist/components/ic-toggle-button.js +2 -2
  223. package/dist/core/core.css +21 -9
  224. package/dist/core/core.esm.js +1 -1
  225. package/dist/core/core.esm.js.map +1 -1
  226. package/dist/core/{p-889bb8db.entry.js → p-04cb17d7.entry.js} +2 -2
  227. package/dist/core/p-082e0068.entry.js +2 -0
  228. package/dist/core/p-082e0068.entry.js.map +1 -0
  229. package/dist/core/{p-f4e2e41f.entry.js → p-12c30491.entry.js} +2 -2
  230. package/dist/core/{p-109e7fce.entry.js → p-14d43f64.entry.js} +2 -2
  231. package/dist/core/p-1ca4a5ed.entry.js +2 -0
  232. package/dist/core/p-1ca4a5ed.entry.js.map +1 -0
  233. package/dist/core/{p-efc97f21.entry.js → p-1f41818b.entry.js} +2 -2
  234. package/dist/core/{p-5cf704e3.entry.js → p-319e3d5b.entry.js} +2 -2
  235. package/dist/core/p-3238389a.entry.js +2 -0
  236. package/dist/core/p-3238389a.entry.js.map +1 -0
  237. package/dist/core/{p-d1cce122.entry.js → p-33e35173.entry.js} +2 -2
  238. package/dist/core/p-33e35173.entry.js.map +1 -0
  239. package/dist/core/{p-eb1823b3.entry.js → p-34407b13.entry.js} +2 -2
  240. package/dist/core/p-34407b13.entry.js.map +1 -0
  241. package/dist/core/{p-ab26beed.entry.js → p-3d23ce54.entry.js} +2 -2
  242. package/dist/core/{p-ef397b6f.entry.js → p-42d35fc4.entry.js} +2 -2
  243. package/dist/core/{p-0b1ea961.entry.js → p-4d3b219c.entry.js} +2 -2
  244. package/dist/core/{p-93e1ba0a.entry.js → p-5254a078.entry.js} +2 -2
  245. package/dist/core/p-52c66bfe.entry.js +2 -0
  246. package/dist/core/p-52c66bfe.entry.js.map +1 -0
  247. package/dist/core/{p-9c2e9189.entry.js → p-53740194.entry.js} +2 -2
  248. package/dist/core/{p-614953c5.entry.js → p-601d4e3f.entry.js} +2 -2
  249. package/dist/core/{p-0257d59e.entry.js → p-6329ddcb.entry.js} +2 -2
  250. package/dist/core/{p-d8200098.entry.js → p-67c3985d.entry.js} +2 -2
  251. package/dist/core/p-6ed48c46.entry.js +2 -0
  252. package/dist/core/p-6ed48c46.entry.js.map +1 -0
  253. package/dist/core/{p-a8dc3162.entry.js → p-703f3de1.entry.js} +2 -2
  254. package/dist/core/{p-f7706ff7.entry.js → p-762ea31a.entry.js} +2 -2
  255. package/dist/core/{p-2969b5c9.entry.js → p-7d0d85c4.entry.js} +2 -2
  256. package/dist/core/p-8abcc114.entry.js +2 -0
  257. package/dist/core/p-8abcc114.entry.js.map +1 -0
  258. package/dist/core/{p-b00efb15.entry.js → p-9674b63f.entry.js} +2 -2
  259. package/dist/core/p-9c52ee48.entry.js +2 -0
  260. package/dist/core/p-9c52ee48.entry.js.map +1 -0
  261. package/dist/core/{p-fb43abd6.entry.js → p-9ca147f3.entry.js} +2 -2
  262. package/dist/core/{p-4637c326.entry.js → p-a7583faf.entry.js} +2 -2
  263. package/dist/core/{p-6996e94f.entry.js → p-a8e4258f.entry.js} +2 -2
  264. package/dist/core/{p-6996e94f.entry.js.map → p-a8e4258f.entry.js.map} +1 -1
  265. package/dist/core/{p-09c31ac6.entry.js → p-adde6c66.entry.js} +2 -2
  266. package/dist/core/{p-6fb29846.entry.js → p-ae11583f.entry.js} +2 -2
  267. package/dist/core/p-afbba548.entry.js +2 -0
  268. package/dist/core/p-afbba548.entry.js.map +1 -0
  269. package/dist/core/{p-f098e531.entry.js → p-b4a2f6fa.entry.js} +2 -2
  270. package/dist/core/p-b4a2f6fa.entry.js.map +1 -0
  271. package/dist/core/p-b59504f1.entry.js +2 -0
  272. package/dist/core/p-b59504f1.entry.js.map +1 -0
  273. package/dist/core/p-b83a736d.entry.js +3 -0
  274. package/dist/core/p-b83a736d.entry.js.map +1 -0
  275. package/dist/core/{p-4bdeb62d.entry.js → p-bdda404b.entry.js} +2 -2
  276. package/dist/core/p-bdda404b.entry.js.map +1 -0
  277. package/dist/core/{p-0cbd0967.entry.js → p-cce398e1.entry.js} +2 -2
  278. package/dist/core/{p-06b3ae40.entry.js → p-d3223b89.entry.js} +2 -2
  279. package/dist/core/{p-3b13d191.entry.js → p-eca43f7d.entry.js} +2 -2
  280. package/dist/core/{p-44fbe8c2.entry.js → p-f4e3bb5b.entry.js} +2 -2
  281. package/dist/core/p-f51c609d.entry.js +2 -0
  282. package/dist/core/{p-296a41ce.entry.js → p-f57729b8.entry.js} +2 -2
  283. package/dist/core/{p-091a7fbf.entry.js → p-f6bb691a.entry.js} +2 -2
  284. package/dist/core/{p-ad6632a9.entry.js → p-f7105cf9.entry.js} +2 -2
  285. package/dist/core/p-ffd0d9d1.entry.js +2 -0
  286. package/dist/core/p-ffd0d9d1.entry.js.map +1 -0
  287. package/dist/esm/core.js +1 -1
  288. package/dist/esm/ic-button_3.entry.js +5 -5
  289. package/dist/esm/ic-button_3.entry.js.map +1 -1
  290. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  291. package/dist/esm/ic-checkbox.entry.js +31 -8
  292. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  293. package/dist/esm/ic-data-list.entry.js +2 -2
  294. package/dist/esm/ic-data-list.entry.js.map +1 -1
  295. package/dist/esm/ic-data-row.entry.js +2 -2
  296. package/dist/esm/ic-data-row.entry.js.map +1 -1
  297. package/dist/esm/ic-dialog.entry.js +1 -1
  298. package/dist/esm/ic-empty-state.entry.js +2 -2
  299. package/dist/esm/ic-footer-link.entry.js +2 -2
  300. package/dist/esm/ic-footer.entry.js +9 -5
  301. package/dist/esm/ic-footer.entry.js.map +1 -1
  302. package/dist/esm/ic-hero.entry.js +11 -6
  303. package/dist/esm/ic-hero.entry.js.map +1 -1
  304. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  305. package/dist/esm/ic-input-component-container_3.entry.js +10 -10
  306. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  307. package/dist/esm/ic-input-label_2.entry.js +6 -6
  308. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  309. package/dist/esm/ic-layout-grid-item.entry.js +2 -2
  310. package/dist/esm/ic-layout-grid.entry.js +2 -2
  311. package/dist/esm/ic-link.entry.js +1 -1
  312. package/dist/esm/ic-menu-group.entry.js +1 -1
  313. package/dist/esm/ic-navigation-group.entry.js +2 -2
  314. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  315. package/dist/esm/ic-navigation-item.entry.js +1 -1
  316. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  317. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  318. package/dist/esm/ic-page-header.entry.js +6 -6
  319. package/dist/esm/ic-pagination-item.entry.js +1 -1
  320. package/dist/esm/ic-pagination.entry.js +4 -4
  321. package/dist/esm/ic-popover-menu.entry.js +4 -4
  322. package/dist/esm/ic-radio-group.entry.js +5 -5
  323. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  324. package/dist/esm/ic-radio-option.entry.js +9 -6
  325. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  326. package/dist/esm/ic-search-bar.entry.js +10 -10
  327. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  328. package/dist/esm/ic-section-container.entry.js +2 -2
  329. package/dist/esm/ic-select.entry.js +7 -7
  330. package/dist/esm/ic-select.entry.js.map +1 -1
  331. package/dist/esm/ic-side-navigation.entry.js +4 -4
  332. package/dist/esm/ic-skeleton.entry.js +2 -2
  333. package/dist/esm/ic-skip-link.entry.js +2 -2
  334. package/dist/esm/ic-status-tag.entry.js +2 -2
  335. package/dist/esm/ic-step.entry.js +13 -13
  336. package/dist/esm/ic-stepper.entry.js +2 -2
  337. package/dist/esm/ic-switch.entry.js +4 -4
  338. package/dist/esm/ic-tab-context.entry.js +1 -1
  339. package/dist/esm/ic-tab-group.entry.js +2 -2
  340. package/dist/esm/ic-tab-panel.entry.js +2 -2
  341. package/dist/esm/ic-text-field.entry.js +6 -6
  342. package/dist/esm/ic-text-field.entry.js.map +1 -1
  343. package/dist/esm/ic-theme.entry.js +1 -1
  344. package/dist/esm/ic-toast-region.entry.js +1 -1
  345. package/dist/esm/ic-toast.entry.js +14 -6
  346. package/dist/esm/ic-toast.entry.js.map +1 -1
  347. package/dist/esm/ic-toggle-button-group.entry.js +2 -2
  348. package/dist/esm/ic-toggle-button.entry.js +2 -2
  349. package/dist/esm/loader.js +1 -1
  350. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +5 -0
  351. package/dist/types/components/ic-footer/ic-footer.d.ts +4 -0
  352. package/dist/types/components/ic-hero/ic-hero.d.ts +5 -1
  353. package/dist/types/components/ic-toast/ic-toast.d.ts +5 -1
  354. package/dist/types/components.d.ts +24 -0
  355. package/hydrate/index.js +214 -167
  356. package/hydrate/index.mjs +214 -167
  357. package/package.json +4 -4
  358. package/vscode-data.json +34 -0
  359. package/dist/core/p-042cfc35.entry.js +0 -2
  360. package/dist/core/p-042cfc35.entry.js.map +0 -1
  361. package/dist/core/p-053ed367.entry.js +0 -2
  362. package/dist/core/p-053ed367.entry.js.map +0 -1
  363. package/dist/core/p-24d46cab.entry.js +0 -2
  364. package/dist/core/p-24d46cab.entry.js.map +0 -1
  365. package/dist/core/p-48eb7299.entry.js +0 -2
  366. package/dist/core/p-48eb7299.entry.js.map +0 -1
  367. package/dist/core/p-4a358f09.entry.js +0 -2
  368. package/dist/core/p-4a358f09.entry.js.map +0 -1
  369. package/dist/core/p-4bdeb62d.entry.js.map +0 -1
  370. package/dist/core/p-6e61c48a.entry.js +0 -2
  371. package/dist/core/p-6e61c48a.entry.js.map +0 -1
  372. package/dist/core/p-6f60262e.entry.js +0 -3
  373. package/dist/core/p-6f60262e.entry.js.map +0 -1
  374. package/dist/core/p-7970cbed.entry.js +0 -2
  375. package/dist/core/p-7970cbed.entry.js.map +0 -1
  376. package/dist/core/p-8c7d6a85.entry.js +0 -2
  377. package/dist/core/p-8c7d6a85.entry.js.map +0 -1
  378. package/dist/core/p-b29e325f.entry.js +0 -2
  379. package/dist/core/p-bba25812.entry.js +0 -2
  380. package/dist/core/p-bba25812.entry.js.map +0 -1
  381. package/dist/core/p-d1cce122.entry.js.map +0 -1
  382. package/dist/core/p-d20a61a7.entry.js +0 -2
  383. package/dist/core/p-d20a61a7.entry.js.map +0 -1
  384. package/dist/core/p-eb1823b3.entry.js.map +0 -1
  385. package/dist/core/p-f098e531.entry.js.map +0 -1
  386. /package/dist/core/{p-889bb8db.entry.js.map → p-04cb17d7.entry.js.map} +0 -0
  387. /package/dist/core/{p-f4e2e41f.entry.js.map → p-12c30491.entry.js.map} +0 -0
  388. /package/dist/core/{p-109e7fce.entry.js.map → p-14d43f64.entry.js.map} +0 -0
  389. /package/dist/core/{p-efc97f21.entry.js.map → p-1f41818b.entry.js.map} +0 -0
  390. /package/dist/core/{p-5cf704e3.entry.js.map → p-319e3d5b.entry.js.map} +0 -0
  391. /package/dist/core/{p-ab26beed.entry.js.map → p-3d23ce54.entry.js.map} +0 -0
  392. /package/dist/core/{p-ef397b6f.entry.js.map → p-42d35fc4.entry.js.map} +0 -0
  393. /package/dist/core/{p-0b1ea961.entry.js.map → p-4d3b219c.entry.js.map} +0 -0
  394. /package/dist/core/{p-93e1ba0a.entry.js.map → p-5254a078.entry.js.map} +0 -0
  395. /package/dist/core/{p-9c2e9189.entry.js.map → p-53740194.entry.js.map} +0 -0
  396. /package/dist/core/{p-614953c5.entry.js.map → p-601d4e3f.entry.js.map} +0 -0
  397. /package/dist/core/{p-0257d59e.entry.js.map → p-6329ddcb.entry.js.map} +0 -0
  398. /package/dist/core/{p-d8200098.entry.js.map → p-67c3985d.entry.js.map} +0 -0
  399. /package/dist/core/{p-a8dc3162.entry.js.map → p-703f3de1.entry.js.map} +0 -0
  400. /package/dist/core/{p-f7706ff7.entry.js.map → p-762ea31a.entry.js.map} +0 -0
  401. /package/dist/core/{p-2969b5c9.entry.js.map → p-7d0d85c4.entry.js.map} +0 -0
  402. /package/dist/core/{p-b00efb15.entry.js.map → p-9674b63f.entry.js.map} +0 -0
  403. /package/dist/core/{p-fb43abd6.entry.js.map → p-9ca147f3.entry.js.map} +0 -0
  404. /package/dist/core/{p-4637c326.entry.js.map → p-a7583faf.entry.js.map} +0 -0
  405. /package/dist/core/{p-09c31ac6.entry.js.map → p-adde6c66.entry.js.map} +0 -0
  406. /package/dist/core/{p-6fb29846.entry.js.map → p-ae11583f.entry.js.map} +0 -0
  407. /package/dist/core/{p-0cbd0967.entry.js.map → p-cce398e1.entry.js.map} +0 -0
  408. /package/dist/core/{p-06b3ae40.entry.js.map → p-d3223b89.entry.js.map} +0 -0
  409. /package/dist/core/{p-3b13d191.entry.js.map → p-eca43f7d.entry.js.map} +0 -0
  410. /package/dist/core/{p-44fbe8c2.entry.js.map → p-f4e3bb5b.entry.js.map} +0 -0
  411. /package/dist/core/{p-b29e325f.entry.js.map → p-f51c609d.entry.js.map} +0 -0
  412. /package/dist/core/{p-296a41ce.entry.js.map → p-f57729b8.entry.js.map} +0 -0
  413. /package/dist/core/{p-091a7fbf.entry.js.map → p-f6bb691a.entry.js.map} +0 -0
  414. /package/dist/core/{p-ad6632a9.entry.js.map → p-f7105cf9.entry.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSelectCss","IcSelectStyle0","inputIds","MUTABLE_ATTRIBUTES","IC_INHERITED_ARIA","Select","constructor","hostRef","this","blurredBecauseButtonPressed","hasSetDefaultValue","hasTimedOut","inheritedAttributes","initialOptionsEmpty","inputId","menuId","retryButtonClick","searchableMenuItemSelected","ungroupedOptions","hostMutationObserver","clearButtonFocused","noOptions","open","pressedCharacters","searchableSelectInputValue","disabled","disableAutoFiltering","emptyOptionListText","fullWidth","helperText","hideLabel","includeDescriptionsInSearch","includeGroupTitlesInSearch","loadingErrorLabel","loadingLabel","multiple","name","placeholder","readonly","required","searchable","searchMatchPosition","selectOnEnter","showClearButton","size","theme","validationAriaLive","validationStatus","validationText","loading","options","filteredOptions","uniqueOptions","debounce","currDebounce","value","initialValue","inputValueToFilter","hostMutationCallback","mutationList","forceComponentUpdate","forEach","attributeName","type","addedNodes","removedNodes","attribute","el","getAttribute","includes","checkSlotInChildMutations","forceUpdate","handleRetry","ev","detail","keyPressed","_a","searchableSelectElement","focus","icRetryLoad","emit","hiddenInputValue","emitIcChange","Array","isArray","valueArray","slice","splice","indexOf","push","getValueSortedByOptions","length","icChange","emitIcInput","clearTimeout","debounceIcInput","window","setTimeout","icInput","setOptions","timeoutTimer","setOptionsValuesFromLabels","deduplicateOptions","label","isExternalFiltering","updateSearchableSelectResultAriaLive","setDefaultValue","uniqueValues","dedupedOptions","option","children","dedupedChildren","child","console","warn","Object","assign","map","setUngroupedOptions","event","setTextColor","nativeSelectElement","className","selectedIndex","setMenuChange","getLabelFromValue","getMultipleOptionsString","selectedValues","filter","join","getFilteredChildMenuOptions","getFilteredMenuOptions","valuesFromAllOptions","sort","a","b","handleNativeSelectChange","icOptionSelect","handleCustomSelectChange","optionId","currValue","getValueFromLabel","_b","icOptionDeselect","ariaActiveDescendant","handleSelectAllChange","allValues","select","unselectedValues","handleMenuChange","handleFocusIndicatorDisplay","handleMenuKeyPress","cancelBubble","handleCharacterKeyDown","key","focusIndicator","shadowRoot","querySelector","classList","add","remove","handleMouseDown","preventDefault","handleClick","menu","handleClickOpen","handleExpandIconMouseDown","handleClear","stopPropagation","clearInput","icClear","customSelectElement","characterKeyPressTimer","handleFilter","handleNativeSelectKeyDown","handleKeyDown","isArrowKey","isCtrlA","isMacDevice","metaKey","ctrlKey","handleKeyboardOpen","handleClearButtonFocus","handleClearButtonBlur","retryButton","relatedTarget","isGrouped","some","newFilteredOptions","menuOptionsFiltered","triggerLoading","timeout","timedOut","find","handleSearchableSelectInput","target","debounceAria","searchableSelectResultsStatusEl","innerText","updateMultiSelectedCountAriaLive","multiSelectSelectedCountEl","selectedCount","getOptionsWithoutGroupTitlesCount","getDefaultValue","onFocus","icFocus","onBlur","tagName","from","querySelectorAll","clearButton","icBlur","onTimeoutBlur","handleFormReset","setAttribute","renderNativeOption","h","selected","watchDisabledHandler","removeDisabledFalse","loadingHandler","newValue","watchOptionsHandler","debounceChangedHandler","valueChangedHandler","String","openChangedHandler","icOpen","icClose","disconnectedCallback","removeFormResetListener","disconnect","componentWillLoad","valueInOptions","inheritAttributes","addFormResetListener","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","MutationObserver","observe","attributes","childList","componentDidRender","setFocus","render","form","renderHiddenInput","invalid","IcInformationStatus","Error","showValidation","hasValidationStatus","describedBy","getInputDescribedByText","trim","valueLabelString","isClearable","Host","class","for","slot","ref","anchorEl","isSlotUsed","isMobileOrTablet","onChange","id","onKeyDown","role","autocomplete","undefined","onInput","onClick","innerHTML","Clear","variant","onMouseDown","Expand","_d","_c","inputEl","inputLabel","onMenuStateChange","onMenuOptionSelect","onMenuOptionSelectAll","onMenuKeyPress","onUngroupedOptionsSet","onRetryButtonClicked","parentEl","activationType","closeOnSelect","multiSelect","searchableSelect","ariaLiveMode","status","message"],"sources":["src/components/ic-select/ic-select.css?tag=ic-select&encapsulation=shadow","src/components/ic-select/ic-select.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --input-width: Width of the input field\n * @prop --menu-width: Width of the dropdown menu\n * @prop --ic-z-index-menu: z-index of select menu\n */\n\n:host {\n display: block;\n position: relative;\n\n --ic-input-label-helpertext-padding: var(--ic-space-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-labe);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-select-state-text);\n --ic-input-validation-error: var(--ic-select-state-icon-error);\n --ic-input-validation-warning-icon-color: var(--ic-select-state-icon-warning);\n --ic-input-validation-success-icon-color: var(--ic-select-state-icon-success);\n --menu-item-text-color: var(--ic-select-list-option-text);\n --menu-bg-color: var(--ic-select-list-option-background);\n --menu-border-color: var(--ic-select-dropdown-list-border);\n}\n\n:host(.ic-select-disabled) {\n --ic-input-label-text-color: var(--ic-select-field-label-disabled);\n --ic-input-label-helper-text-color: var(\n --ic-select-input-field-label-subtitle-disabled\n );\n}\n\n:host(.ic-select-full-width) {\n width: 100%;\n}\n\nic-input-component-container.menu-open {\n --border-color: var(--ic-select-field-border-pressed);\n}\n\nic-input-validation .status-icon,\nic-input-validation .statustext {\n visibility: visible;\n}\n\nic-input-validation.menu-open .status-icon,\nic-input-validation.menu-open .statustext {\n visibility: hidden;\n transition: visibility 0s;\n}\n\nic-input-label {\n margin-bottom: var(--ic-space-xs);\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.searchable-select-results-status,\n.multi-select-selected-count {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: var(--ic-space-1px);\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-placeholder-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-select-content-text);\n}\n\n.readonly ::slotted([slot=\"icon\"]) {\n padding: 0.375rem;\n margin-bottom: 0.75rem;\n}\n\n@media (forced-colors: active) {\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Method,\n Prop,\n h,\n State,\n Watch,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getInputDescribedByText,\n getLabelFromValue,\n hasValidationStatus,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n renderHiddenInput,\n isMobileOrTablet,\n getFilteredMenuOptions,\n getOptionsWithoutGroupTitlesCount,\n addFormResetListener,\n removeFormResetListener,\n removeDisabledFalse,\n checkSlotInChildMutations,\n isSlotUsed,\n isMacDevice,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaLive,\n IcInformationStatus,\n IcInformationStatusOrEmpty,\n IcMenuOption,\n IcSearchMatchPositions,\n IcMultiValueEventDetail,\n IcSizes,\n IcThemeMode,\n} from \"../../utils/types\";\nimport Expand from \"./assets/Expand.svg\";\nimport Clear from \"./assets/Clear.svg\";\nimport {\n IcMenuChangeEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\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 anchorEl?: HTMLElement;\n private blurredBecauseButtonPressed = false;\n private characterKeyPressTimer?: number;\n private clearButton?: HTMLIcButtonElement;\n private customSelectElement?: HTMLButtonElement;\n private debounceAria?: number;\n private hasSetDefaultValue = false;\n private hasTimedOut = false;\n private inheritedAttributes: { [k: string]: string } = {};\n private initialOptionsEmpty = false;\n private inputId = `ic-select-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuId = `${this.inputId}-menu`;\n private nativeSelectElement?: HTMLSelectElement;\n private retryButtonClick = false;\n private searchableMenuItemSelected = false;\n private searchableSelectElement?: HTMLInputElement;\n private timeoutTimer?: number;\n private ungroupedOptions: IcMenuOption[] = [];\n private hostMutationObserver: MutationObserver | null = null;\n\n @Element() el!: HTMLIcSelectElement;\n\n @State() ariaActiveDescendant?: string;\n @State() clearButtonFocused = false;\n @State() debounceIcInput?: number;\n @State() hiddenInputValue: string | null;\n @State() noOptions: IcMenuOption[] | null = null;\n @State() open = false;\n @State() pressedCharacters = \"\";\n @State() searchableSelectInputValue: string | null = null;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop({ reflect: true }) disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * If `true`, the built in filtering will be disabled for a searchable variant. For example, if options will already be filtered from external source.\n */\n @Prop() disableAutoFiltering = 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`, 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 newValue ? this.triggerLoading() : this.setOptions();\n }\n\n /**\n * The possible selection options.\n */\n @Prop() options: IcMenuOption[] = [];\n @State() filteredOptions: IcMenuOption[] = this.options;\n @State() uniqueOptions: IcMenuOption[] = this.options;\n @Watch(\"options\")\n watchOptionsHandler(): void {\n this.setOptions();\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 @State() inputValueToFilter: string | null = this.value as string;\n @State() currValue: string | string[] | null;\n @Watch(\"value\")\n valueChangedHandler(): void {\n if (this.value !== this.currValue) {\n if (this.value && this.multiple) {\n this.currValue = this.getMultipleOptionsString(this.value as string[])\n ? this.getValueSortedByOptions(this.value as string[])\n : null;\n this.updateMultiSelectedCountAriaLive();\n } else {\n this.currValue = this.getLabelFromValue(this.value as string)\n ? this.value\n : null;\n }\n }\n\n if (this.searchable && this.value) {\n // Only set if value not null - prevents whole input value being cleared when edited\n this.searchableSelectInputValue =\n this.getLabelFromValue(String(this.currValue)) || null;\n }\n }\n\n @Watch(\"open\")\n openChangedHandler(): void {\n this.open ? this.icOpen.emit() : this.icClose.emit();\n }\n\n /**\n * Emitted when the select loses focus.\n */\n @Event() icBlur: EventEmitter<void>;\n\n /**\n * Emitted when the value changes.\n */\n @Event() icChange: EventEmitter<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 disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n this.hostMutationObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n const valueInOptions = this.multiple\n ? this.getMultipleOptionsString(this.value as string[])\n : this.getLabelFromValue(this.value as string);\n this.currValue = valueInOptions ? this.value : null;\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n\n removeDisabledFalse(this.disabled, this.el);\n\n this.setOptionsValuesFromLabels();\n\n addFormResetListener(this.el, this.handleFormReset);\n\n if (!this.options.length) {\n this.initialOptionsEmpty = true;\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n this.filteredOptions = this.noOptions;\n } else {\n this.setDefaultValue();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Select\"\n );\n\n if (this.loading) {\n this.triggerLoading();\n }\n\n if (this.searchable) {\n this.hiddenInputValue = this.currValue as string;\n }\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n childList: true,\n });\n }\n\n componentDidRender(): void {\n if (this.nativeSelectElement && !this.disabled) {\n this.setTextColor();\n }\n }\n\n /**\n * Sets focus on the input box.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.nativeSelectElement) {\n this.nativeSelectElement.focus();\n } else if (this.customSelectElement) {\n this.customSelectElement.focus();\n } else if (this.searchableSelectElement) {\n this.searchableSelectElement.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]) => {\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 handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n if (ev.detail.keyPressed) this.searchableSelectElement?.focus();\n this.blurredBecauseButtonPressed = true;\n this.retryButtonClick = true;\n this.hasSetDefaultValue = true;\n this.icRetryLoad.emit({\n value: this.searchable\n ? this.searchableSelectInputValue\n : this.hiddenInputValue,\n });\n };\n\n private emitIcChange = (value: string | string[] | null) => {\n // If \"Select all\" button clicked, replace value with new value (array of all option values)\n if (this.multiple && !Array.isArray(value) && value !== null) {\n // Update selected options - adds / removes them, in order of option list\n // Create new array if value prop is undefined\n if (this.value) {\n let valueArray = (this.value as string[]).slice();\n\n if (this.value.includes(value)) {\n valueArray.splice(valueArray.indexOf(value), 1);\n } else {\n valueArray.push(value);\n valueArray = this.getValueSortedByOptions(valueArray);\n }\n\n this.value = valueArray.length === 0 ? null : valueArray;\n } else {\n this.value = [value];\n }\n } else {\n this.value = value;\n }\n\n this.icChange.emit({ value: this.multiple ? this.value : value });\n };\n\n private emitIcInput = (value: string) => {\n clearTimeout(this.debounceIcInput);\n this.debounceIcInput = window.setTimeout(\n () => this.icInput.emit({ value }),\n this.currDebounce\n );\n };\n\n private setOptions = () => {\n if (!this.hasTimedOut && this.options !== this.noOptions) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n\n if (this.options.length > 0) {\n this.setOptionsValuesFromLabels();\n this.uniqueOptions = this.deduplicateOptions(this.options);\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.uniqueOptions = this.noOptions;\n }\n\n this.filteredOptions = this.uniqueOptions;\n\n if (this.isExternalFiltering()) {\n // When searchable select\n this.noOptions = null;\n this.updateSearchableSelectResultAriaLive();\n this.setDefaultValue();\n } else if (this.initialOptionsEmpty) {\n this.setDefaultValue();\n this.initialOptionsEmpty = false;\n }\n } else if (!this.searchable) {\n this.options = this.noOptions || [];\n }\n };\n\n /**\n * Processes the provided array of IcMenuOptions, removing duplicates and reporting them with a console.warn\n * @param options array of IcMenuOptions\n * @returns a new options object, with all entries possessing a duplicate 'value' field removed\n */\n private deduplicateOptions = (options: IcMenuOption[]) => {\n const uniqueValues: string[] = [];\n const dedupedOptions: IcMenuOption[] = [];\n\n options.forEach((option) => {\n if (option.children) {\n //If an option has children, we will loop through them\n const dedupedChildren: IcMenuOption[] = [];\n option.children.forEach((child) => {\n if (uniqueValues.includes(child.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${child.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(child.value);\n dedupedChildren.push(child);\n }\n });\n // construct a modified option, inserting the deduplicated children alongside the original information\n dedupedOptions.push({\n ...option,\n children: dedupedChildren,\n });\n } else {\n // If an option does not have children, assess to see if it's value has been included already\n if (uniqueValues.includes(option.value)) {\n console.warn(\n `ic-select with label ${this.label} was populated with duplicate option (value: ${option.value}) which has been removed.`\n );\n } else {\n uniqueValues.push(option.value);\n dedupedOptions.push(option);\n }\n }\n });\n return dedupedOptions;\n };\n\n /**\n * Loop through options array and for all options with no value, infer it from the label\n */\n private setOptionsValuesFromLabels = () => {\n if (this.options.length > 0) {\n this.options.map((option) => {\n if (!option.value) {\n option.value = option.label;\n }\n });\n }\n };\n\n private setUngroupedOptions = (event: CustomEvent) => {\n this.ungroupedOptions = event.detail.options;\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 setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n }\n };\n\n private getLabelFromValue = (value: string) =>\n getLabelFromValue(value, this.uniqueOptions);\n\n private getMultipleOptionsString = (selectedValues: string[]) =>\n selectedValues\n ?.map((value) => this.getLabelFromValue(value))\n .filter((label) => !!label)\n .join(\", \");\n\n private getFilteredChildMenuOptions = (\n option: IcMenuOption\n ): IcMenuOption => ({\n ...option,\n children:\n option.children &&\n getFilteredMenuOptions(\n option.children,\n this.searchable && !!this.includeDescriptionsInSearch,\n this.searchable\n ? this.searchableSelectInputValue || \"\"\n : this.pressedCharacters,\n this.searchable ? this.searchMatchPosition : \"start\"\n ),\n });\n\n // (For multi-select) get value array, i.e. selected option values, in order they appear in option list\n private getValueSortedByOptions = (value: string[]) => {\n const valueArray = value;\n const valuesFromAllOptions = this.ungroupedOptions.map(\n (option) => option.value\n );\n\n valueArray.sort(\n (a, b) =>\n valuesFromAllOptions.indexOf(a) - valuesFromAllOptions.indexOf(b)\n );\n\n return valueArray;\n };\n\n private handleNativeSelectChange = () => {\n if (this.nativeSelectElement) {\n this.icOptionSelect.emit({ value: this.nativeSelectElement.value });\n this.emitIcChange(this.nativeSelectElement.value);\n }\n this.setTextColor();\n };\n\n // Handle option select for when a custom input box and menu is rendered\n // (rather than native <select> - rendered when viewed on a mobile / tablet screen)\n private handleCustomSelectChange = (\n event: CustomEvent<IcOptionSelectEventDetail>\n ) => {\n const { value, label, optionId } = event.detail;\n\n if (label === this.emptyOptionListText) {\n this.searchableSelectElement?.focus();\n return;\n }\n\n if (this.searchable) {\n this.value = value || null;\n this.searchableMenuItemSelected = true;\n\n // After editing the input, if selecting the same option as before, set the input value to label again\n if (this.value === this.currValue) {\n this.searchableSelectInputValue =\n this.getLabelFromValue(this.value as string) || null;\n }\n\n this.inputValueToFilter = null;\n this.hiddenInputValue =\n this.getValueFromLabel(this.searchableSelectInputValue) || null;\n }\n\n if (value) {\n if (this.multiple && this.value?.includes(value)) {\n this.icOptionDeselect.emit({ value });\n } else {\n this.icOptionSelect.emit({ value });\n }\n }\n\n this.ariaActiveDescendant = optionId;\n this.emitIcChange(value || null);\n };\n\n private handleSelectAllChange = ({\n detail,\n }: CustomEvent<{ select: boolean }>) => {\n const allValues = this.ungroupedOptions\n .filter((option) => !option.disabled)\n .map((option) => option.value);\n\n if (detail.select) {\n // Only emit icOptionSelect for all values that are newly selected\n const unselectedValues = this.value\n ? allValues.filter(\n (value) => this.value && !(this.value as string[]).includes(value)\n )\n : allValues;\n\n unselectedValues.forEach((value) => this.icOptionSelect.emit({ value }));\n } else {\n // Only emit icOptionDeselect for values that were selected\n (this.value as string[]).forEach((value) =>\n this.icOptionDeselect.emit({ value })\n );\n }\n\n this.emitIcChange(detail.select ? allValues : null);\n };\n\n private handleMenuChange = (event: CustomEvent<IcMenuChangeEventDetail>) => {\n this.open = event.detail.open;\n this.pressedCharacters = \"\";\n\n if (this.searchable) this.handleFocusIndicatorDisplay();\n };\n\n // clears the debounce delay when navigating the menu with arrow keys etc\n // to prevent delay in change event, which should only occur when typing in input\n private handleMenuKeyPress = (ev: CustomEvent): void => {\n ev.cancelBubble = true;\n if (!this.multiple) {\n this.handleCharacterKeyDown(ev.detail.key);\n }\n };\n\n private handleFocusIndicatorDisplay = () => {\n const focusIndicator =\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 handleMouseDown = (event: Event) => {\n if (!this.open) {\n event.preventDefault();\n }\n };\n\n private isExternalFiltering = () =>\n this.searchable && !!this.disableAutoFiltering;\n\n private handleClick = (event: MouseEvent) => {\n if (!this.open && this.menu) {\n if (this.isExternalFiltering()) {\n this.menu.options = this.filteredOptions;\n } else if (\n !this.hasTimedOut &&\n !this.loading &&\n !this.noOptions?.length &&\n (!this.searchable || this.searchableMenuItemSelected)\n ) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (event.detail !== 0) {\n this.menu?.handleClickOpen();\n }\n };\n\n private handleExpandIconMouseDown = (event: MouseEvent) => {\n if (!this.disabled) {\n event.preventDefault();\n this.searchableSelectElement?.focus();\n this.handleClick(event);\n }\n };\n\n private handleClear = (event: Event) => {\n event.stopPropagation();\n this.hasTimedOut = false;\n clearTimeout(this.timeoutTimer);\n this.clearInput();\n this.emitIcChange(null);\n this.icClear.emit();\n\n if (this.searchable) {\n this.hiddenInputValue = null;\n this.searchableSelectElement?.focus();\n } else {\n this.customSelectElement?.focus();\n }\n };\n\n private handleCharacterKeyDown = (key: string) => {\n // Only close menu when space is pressed if not being used alongside character keys to quickly select options\n if (this.open && key === \" \" && this.pressedCharacters.length === 0) {\n this.setMenuChange(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 this.handleFilter();\n\n if (!this.noOptions) {\n this.emitIcChange(this.filteredOptions[0].value);\n }\n }\n };\n\n private handleNativeSelectKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n this.handleCharacterKeyDown(event.key);\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if ((event.key !== \"Escape\" && event.key !== \"Tab\") || this.open) {\n event.cancelBubble = true;\n }\n const isArrowKey = event.key === \"ArrowDown\" || event.key === \"ArrowUp\";\n\n if (this.menu && !this.open) {\n if (this.isExternalFiltering() && (event.key === \"Enter\" || isArrowKey)) {\n this.menu.options = this.filteredOptions;\n } else if (!this.hasTimedOut) {\n this.noOptions = null;\n this.menu.options = this.uniqueOptions;\n }\n }\n\n if (this.open && event.key === \"Enter\") {\n this.setMenuChange(false);\n } else {\n if (!isArrowKey || this.noOptions === null) {\n if (event.key !== \" \" || this.pressedCharacters.length <= 0) {\n // Keyboard events get passed onto ic-menu except in the case of ctrl-a on a searchable select\n const isCtrlA =\n event.key === \"a\" &&\n ((isMacDevice() && event.metaKey) ||\n (!isMacDevice() && event.ctrlKey));\n\n if (!(this.searchable && isCtrlA)) {\n this.menu?.handleKeyboardOpen(event);\n }\n }\n if (!this.multiple) {\n this.handleCharacterKeyDown(event.key);\n }\n }\n }\n };\n\n private handleClearButtonFocus = () => {\n this.clearButtonFocused = true;\n };\n\n private handleClearButtonBlur = (ev: FocusEvent) => {\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n if (\n (!this.searchableSelectElement ||\n ev.relatedTarget !== this.searchableSelectElement) &&\n (!retryButton || ev.relatedTarget !== retryButton)\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n }\n this.clearButtonFocused = false;\n };\n\n private handleFilter = () => {\n const options = this.deduplicateOptions(\n this.searchable ? [...this.uniqueOptions] : this.ungroupedOptions\n );\n\n const isGrouped = options.some((option) => !!option.children);\n let newFilteredOptions: IcMenuOption[] = [];\n\n let menuOptionsFiltered: IcMenuOption[];\n\n if (this.searchable) {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n !!this.includeDescriptionsInSearch,\n this.inputValueToFilter || \"\",\n this.searchMatchPosition\n );\n this.searchableMenuItemSelected = false;\n } else {\n menuOptionsFiltered = getFilteredMenuOptions(\n options,\n false,\n this.pressedCharacters,\n \"start\"\n );\n }\n\n if (\n !isGrouped &&\n menuOptionsFiltered[0]?.label !== this.emptyOptionListText\n ) {\n newFilteredOptions = menuOptionsFiltered;\n } else if (isGrouped) {\n newFilteredOptions = options.map((option) =>\n this.includeGroupTitlesInSearch &&\n menuOptionsFiltered.indexOf(option) !== -1\n ? option\n : this.getFilteredChildMenuOptions(option)\n );\n }\n\n if (\n newFilteredOptions.length > 0 &&\n (!isGrouped ||\n newFilteredOptions.some(\n ({ children }) => children && children.length > 0\n ))\n ) {\n this.noOptions = null;\n this.filteredOptions = newFilteredOptions;\n } else {\n this.noOptions = [{ label: this.emptyOptionListText, value: \"\" }];\n this.filteredOptions = this.noOptions;\n }\n };\n\n /**\n * Put the select component into loading state.\n * Replace options with the loading message. If timeout is enabled, set the timeout and once passed, replace options with the loading error message\n */\n private triggerLoading = () => {\n this.hasTimedOut = false;\n this.noOptions = [{ label: this.loadingLabel, value: \"\", loading: true }];\n if (this.filteredOptions !== this.noOptions && this.searchable) {\n this.filteredOptions = this.noOptions;\n } else if (this.uniqueOptions !== this.noOptions && !this.searchable) {\n this.uniqueOptions = this.noOptions;\n }\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.loading = false;\n this.hasTimedOut = true;\n this.noOptions = [\n { label: this.loadingErrorLabel, value: \"\", timedOut: true },\n ];\n this.filteredOptions = this.noOptions;\n if (!this.searchable) this.uniqueOptions = this.noOptions;\n }, this.timeout);\n }\n };\n\n private getValueFromLabel = (label: string | null): string | undefined =>\n label && this.uniqueOptions.find((option) => option.label === label)?.value;\n\n private handleSearchableSelectInput = (event: Event) => {\n this.searchableSelectInputValue = (event.target as HTMLInputElement).value;\n this.emitIcInput(this.searchableSelectInputValue);\n\n // De-select previous selection when input is edited\n // Only emit icChange once when editing input\n if (this.value != null) {\n this.emitIcChange(null);\n }\n\n this.hiddenInputValue = null;\n this.inputValueToFilter = this.searchableSelectInputValue;\n this.setMenuChange(true);\n\n if (!this.disableAutoFiltering) {\n this.handleFilter();\n clearTimeout(this.debounceAria);\n\n window.setTimeout(() => {\n this.updateSearchableSelectResultAriaLive();\n }, 800);\n }\n };\n\n private updateSearchableSelectResultAriaLive = () => {\n const searchableSelectResultsStatusEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".searchable-select-results-status\"\n );\n\n if (searchableSelectResultsStatusEl) {\n searchableSelectResultsStatusEl.innerText =\n this.noOptions !== null ? this.emptyOptionListText : \"\";\n }\n };\n\n private updateMultiSelectedCountAriaLive = () => {\n const multiSelectSelectedCountEl =\n this.el.shadowRoot?.querySelector<HTMLDivElement>(\n \".multi-select-selected-count\"\n );\n\n const selectedCount = `${\n this.currValue?.length\n } of ${getOptionsWithoutGroupTitlesCount(this.options)} selected`;\n\n if (\n multiSelectSelectedCountEl &&\n multiSelectSelectedCountEl.innerText !== selectedCount\n ) {\n multiSelectSelectedCountEl.innerText = selectedCount;\n }\n };\n\n private getDefaultValue = (value: string) =>\n this.getLabelFromValue(value) || null;\n\n private setDefaultValue = () => {\n if (!this.hasSetDefaultValue && this.currValue) {\n this.searchableSelectInputValue = this.searchable\n ? this.getDefaultValue(this.currValue as string)\n : null;\n\n this.initialValue = this.currValue;\n this.hasSetDefaultValue = true;\n }\n };\n\n private onFocus = () => {\n this.icFocus.emit();\n };\n\n private onBlur = ({ relatedTarget }: FocusEvent) => {\n const target = relatedTarget as HTMLElement;\n if (\n target !== null &&\n ((target.tagName === \"UL\" && target.className.includes(\"menu\")) ||\n (target.tagName === \"LI\" && target.className.includes(\"option\")))\n ) {\n return;\n }\n\n const retryButton = this.menu?.querySelector(\"#retry-button\");\n\n if (\n this.searchable &&\n !!this.menu &&\n target !== this.menu &&\n !Array.from(this.menu.querySelectorAll(\"[role='option']\")).includes(\n target\n ) &&\n (!this.clearButton || target !== this.clearButton) &&\n (!retryButton || target !== retryButton)\n ) {\n if (!this.retryButtonClick) {\n this.setMenuChange(false);\n // Clear input field on blur when searchable if no option is selected\n if (!this.value) {\n this.clearInput();\n }\n }\n this.handleFocusIndicatorDisplay();\n }\n\n this.retryButtonClick = false;\n this.icBlur.emit();\n };\n\n private onTimeoutBlur = (ev: CustomEvent) => {\n if (\n (ev.detail.ev as FocusEvent).relatedTarget !==\n this.searchableSelectElement &&\n !this.blurredBecauseButtonPressed\n ) {\n this.setMenuChange(false);\n this.handleFocusIndicatorDisplay();\n this.icBlur.emit();\n }\n this.blurredBecauseButtonPressed = false;\n };\n\n private handleFormReset = () => {\n this.value = this.initialValue;\n if (this.searchable) {\n this.searchableSelectInputValue = this.getDefaultValue(\n this.value as string\n );\n this.hiddenInputValue = this.value as string;\n }\n };\n\n private clearInput = () => {\n this.noOptions = null;\n\n if (this.searchable) {\n this.searchableSelectElement?.setAttribute(\"value\", \"\");\n this.searchableSelectInputValue = null;\n this.filteredOptions = this.uniqueOptions;\n }\n };\n\n private renderNativeOption = (option: IcMenuOption) => (\n <option\n value={option.value}\n disabled={option.disabled}\n selected={option.value === this.currValue}\n >\n {option.label}\n </option>\n );\n\n render() {\n const {\n size,\n disabled,\n fullWidth,\n helperText,\n hideLabel,\n label,\n menuId,\n multiple,\n name,\n options,\n placeholder,\n readonly,\n required,\n searchable,\n showClearButton,\n validationAriaLive,\n validationStatus,\n validationText,\n currValue,\n theme,\n hiddenInputValue,\n open,\n inputId,\n searchableSelectInputValue,\n loading,\n value,\n emptyOptionListText,\n uniqueOptions,\n selectOnEnter,\n form,\n inheritedAttributes,\n ariaActiveDescendant,\n hasTimedOut,\n filteredOptions,\n clearButtonFocused,\n } = this;\n\n // HTML inputs only accept 'string' for their value\n // Does not cause errors when it is a multi-select - sets value correctly, to a comma-separated string\n renderHiddenInput(\n this.el,\n searchable ? hiddenInputValue : (currValue as string),\n name || inputId,\n disabled\n );\n\n const invalid = `${validationStatus === IcInformationStatus.Error}`;\n\n const showValidation = hasValidationStatus(validationStatus, !!disabled);\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n showValidation\n ).trim();\n\n const valueLabelString = multiple\n ? this.getMultipleOptionsString(currValue as string[])\n : this.getLabelFromValue(currValue as string);\n\n const isClearable =\n !disabled &&\n (searchable\n ? !!searchableSelectInputValue\n : !!currValue && !loading && showClearButton);\n\n return (\n <Host\n class={{\n \"ic-select-disabled\": disabled,\n \"ic-select-searchable\": searchable,\n [`ic-select-${size}`]: size !== \"medium\",\n \"ic-select-full-width\": fullWidth,\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onBlur={this.onBlur}\n >\n <ic-input-container readonly={readonly}>\n {!hideLabel && (\n <ic-input-label\n for={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 {readonly ? (\n <ic-typography>\n <p>{valueLabelString}</p>\n </ic-typography>\n ) : isMobileOrTablet() && !multiple ? (\n <select\n ref={(el) => (this.nativeSelectElement = el)}\n disabled={disabled}\n onChange={this.handleNativeSelectChange}\n required={required}\n id={inputId}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onKeyDown={this.handleNativeSelectKeyDown}\n form={form}\n {...inheritedAttributes}\n >\n <option value=\"\" selected disabled={!showClearButton}>\n {placeholder}\n </option>\n {options.map((option) =>\n option.children ? (\n <optgroup label={option.label}>\n {option.children.map((child) =>\n this.renderNativeOption(child)\n )}\n </optgroup>\n ) : (\n this.renderNativeOption(option)\n )\n )}\n </select>\n ) : searchable ? (\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}\n aria-required={`${required}`}\n aria-controls={menuId}\n ref={(el) => (this.searchableSelectElement = el)}\n id={inputId}\n value={searchableSelectInputValue || undefined}\n placeholder={placeholder}\n disabled={disabled}\n onInput={this.handleSearchableSelectInput}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n form={form}\n ></input>\n {isClearable && (\n <div class=\"clear-button-container\">\n <ic-button\n id=\"clear-button\"\n ref={(el) => (this.clearButton = el)}\n aria-label={\n searchableSelectInputValue &&\n (currValue === null || loading)\n ? \"Clear input\"\n : \"Clear selection\"\n }\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n )}\n <span\n onMouseDown={this.handleExpandIconMouseDown}\n class={{\n \"expand-icon\": true,\n \"expand-icon-open\": open,\n }}\n innerHTML={Expand}\n aria-hidden=\"true\"\n />\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"searchable-select-results-status\"\n ></div>\n </div>\n ) : (\n <div class=\"select-container\">\n <button\n role=\"combobox\"\n class=\"select-input\"\n ref={(el) => (this.customSelectElement = el)}\n id={inputId}\n aria-label={`${label}, ${\n (multiple && currValue\n ? `${\n currValue.length\n } of ${getOptionsWithoutGroupTitlesCount(\n options\n )} selected, ${valueLabelString}`\n : valueLabelString) || placeholder\n }`}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-haspopup=\"listbox\"\n aria-expanded={`${open}`}\n aria-owns={menuId}\n aria-controls={menuId}\n aria-required={`${required}`}\n disabled={disabled}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.handleClick}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleKeyDown}\n >\n <ic-typography\n variant=\"body\"\n class={{\n \"value-text\": true,\n \"with-clear-button\": isClearable,\n placeholder:\n !loading && multiple\n ? !value || value.length < 1\n : !this.getLabelFromValue(currValue as string),\n }}\n >\n {valueLabelString || placeholder}\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 && (\n <ic-button\n id=\"clear-button\"\n aria-label=\"Clear selection\"\n class=\"clear-button\"\n innerHTML={Clear}\n onClick={this.handleClear}\n onFocus={this.handleClearButtonFocus}\n onBlur={this.handleClearButtonBlur}\n size={size}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n )}\n </div>\n )}\n </ic-input-component-container>\n {(!isMobileOrTablet() || multiple) && (\n <ic-menu\n class={{\n \"no-results\":\n loading ||\n hasTimedOut ||\n (searchable &&\n this.filteredOptions?.[0]?.label === emptyOptionListText) ||\n (!searchable &&\n this.uniqueOptions?.[0]?.label === emptyOptionListText),\n }}\n ref={(el) => (this.menu = el)}\n inputEl={\n searchable\n ? this.searchableSelectElement\n : this.customSelectElement\n }\n inputLabel={label}\n anchorEl={this.anchorEl}\n size={size}\n menuId={menuId}\n open={open}\n options={searchable ? filteredOptions : uniqueOptions}\n value={multiple ? (currValue as string[]) : (currValue as string)}\n fullWidth={fullWidth}\n selectOnEnter={selectOnEnter}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionSelect={this.handleCustomSelectChange}\n onMenuOptionSelectAll={this.handleSelectAllChange}\n onMenuKeyPress={this.handleMenuKeyPress}\n onUngroupedOptionsSet={this.setUngroupedOptions}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el}\n onTimeoutBlur={this.onTimeoutBlur}\n activationType={\n searchable || multiple || selectOnEnter ? \"manual\" : \"automatic\"\n }\n closeOnSelect={!multiple}\n multiSelect={multiple ? true : false}\n searchableSelect={searchable ? true : false}\n ></ic-menu>\n )}\n {multiple && (\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"multi-select-selected-count\"\n ></div>\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"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{A as r,B as h,C as o,r as n,E as l,o as c,q as d,m as u}from"./p-a5658054.js";import"./p-bddf799a.js";const b=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M15.8327 5.34199L14.6577 4.16699L9.99935 8.82533L5.34102 4.16699L4.16602 5.34199L8.82435 10.0003L4.16602 14.6587L5.34102 15.8337L9.99935 11.1753L14.6577 15.8337L15.8327 14.6587L11.1743 10.0003L15.8327 5.34199Z" fill="currentColor"/>\n</svg>\n`;const f=`<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">\n <path d="M13.1292 11.8792H12.4708L12.2375 11.6542C13.0542 10.7042 13.5458 9.47083 13.5458 8.12916C13.5458 5.13749 11.1208 2.71249 8.12916 2.71249C5.13749 2.71249 2.71249 5.13749 2.71249 8.12916C2.71249 11.1208 5.13749 13.5458 8.12916 13.5458C9.47083 13.5458 10.7042 13.0542 11.6542 12.2375L11.8792 12.4708V13.1292L16.0458 17.2875L17.2875 16.0458L13.1292 11.8792ZM8.12916 11.8792C6.05416 11.8792 4.37916 10.2042 4.37916 8.12916C4.37916 6.05416 6.05416 4.37916 8.12916 4.37916C10.2042 4.37916 11.8792 6.05416 11.8792 8.12916C11.8792 10.2042 10.2042 11.8792 8.12916 11.8792Z" fill="currentColor"/>\n</svg>`;const p='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host(.ic-search-bar-search){display:block;--divider-height:1.5rem;--ic-input-label-helpertext-padding:var(--ic-space-xs);--border-color:var(--ic-search-bar-outline);--input-bg-color:var(--ic-search-bar-background);--border-color-disabled:var(--ic-search-bar-outline-disabled);--menu-item-text-color:var(--ic-search-bar-dropdown-option-text);--menu-item-desc-text-color:var(--ic-search-bar-dropdown-option-description);--menu-bg-color:var(--ic-search-bar-dropdown-background);--menu-border-color:var(--ic-search-bar-dropdown-outline)}:host(.ic-search-bar-disabled){--ic-input-label-text-color:var(--ic-search-bar-label-disabled);--ic-input-label-helper-text-color:var(--ic-search-bar-subtitle-disabled)}:host(.ic-search-bar-search:hover){--border-color:var(--ic-search-bar-outline-hover)}:host(.ic-search-bar-search:active){--border-color:var(--ic-search-bar-outline-pressed)}:host(.ic-search-bar-search.ic-search-bar-small){--divider-height:1rem}:host(.ic-search-bar-full-width){width:100%}::-moz-placeholder{color:var(--ic-search-bar-placeholder-text);opacity:1}::placeholder{color:var(--ic-search-bar-placeholder-text);opacity:1}input{border:0;border-radius:var(--ic-border-radius);color:var(--ic-search-bar-filled-text);background-color:var(--input-bg-color);line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs);caret-color:var(--ic-search-bar-filled-text-cursor)}input:focus{border:0;outline:0}input:disabled::-moz-placeholder{color:var(--ic-search-bar-disabled-text)}input:disabled,input:disabled::placeholder{color:var(--ic-search-bar-disabled-text)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-left-pad{padding-left:0}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.clear-button-container{align-items:center;margin-right:var(--ic-space-1px);display:none;visibility:hidden}.clear-button{border-radius:var(--ic-border-radius);transition:box-shadow var(--ic-easing-transition),\n border-radius var(--ic-easing-transition)}.clear-button:focus,.clear-button:active{background-color:var(--ic-color-focus-inner);box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer);border-radius:0.25rem}.clear-button-unfocused *{fill:var(--ic-search-bar-clear-button)}.clear-button:focus,.clear-button:active *{fill:var(--ic-atoms-input-clear-button-focus)}.clear-button-visible{visibility:visible;display:flex}.search-submit-button-container{display:flex;align-items:center}.search-submit-button-unfocused *{fill:var(--ic-search-bar-filled-icon)}.search-submit-button-disabled *{fill:var(--ic-search-bar-icon-disabled)}.search-submit-button-disabled .ic-tooltip-container{display:none !important}.search-submit-button:focus,.search-submit-button:active{background-color:var(--ic-color-focus-inner) !important;box-shadow:inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;border-radius:var(--ic-space-xxs)}.search-submit-button:focus,.search-submit-button:active *{fill:white}.divider{width:var(--ic-border-width);background-color:var(--ic-search-bar-dropdown-divider);height:var(--divider-height)}.menu-container{width:var(--input-width, 20rem);position:relative;top:var(--ic-space-xxxs)}.menu-container.fullwidth{width:100%}.no-results{cursor:not-allowed}.search-results-status{border:0;clip:rect(0, 0, 0, 0, 0);height:var(--ic-space-1px);margin-bottom:calc(-1 * var(--ic-space-1px));margin-right:calc(-1 * var(--ic-space-1px));overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:var(--ic-space-1px)}@media (forced-colors: active){.search-submit-button-unfocused *{fill:canvastext}.search-submit-button-disabled *{fill:GrayText}}';const m=p;let v=0;const g=class{constructor(e){t(this,e);this.icChange=i(this,"icChange",7);this.icClear=i(this,"icClear",7);this.icInput=i(this,"icInput",7);this.icOptionSelect=i(this,"icOptionSelect",7);this.icMenuChange=i(this,"icMenuChange",7);this.icClearBlur=i(this,"icClearBlur",7);this.icRetryLoad=i(this,"icRetryLoad",7);this.icSubmitSearch=i(this,"icSubmitSearch",7);this.icSubmitSearchBlur=i(this,"icSubmitSearchBlur",7);this.icSearchBarBlur=i(this,"icSearchBarBlur",7);this.icSearchBarFocus=i(this,"icSearchBarFocus",7);this.icKeydown=i(this,"icKeydown",7);this.hasTimedOut=false;this.inputId=`ic-search-bar-input-${v++}`;this.menuCloseFromMenuChangeEvent=false;this.menuId=`${this.inputId}-menu`;this.preLoad=true;this.preventSubmit=false;this.prevNoOption=false;this.retryButtonClick=false;this.retryViaKeyPress=false;this.truncateValue=false;this.clearButtonFocused=false;this.open=false;this.searchSubmitFocused=false;this.showClearButton=false;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autofocus=false;this.charactersUntilSuggestion=2;this.disabled=false;this.disableAutoFiltering=false;this.debounce=0;this.emptyOptionListText="No results found";this.focusOnLoad=false;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.assistiveHintText="When autocomplete results are available use the up and down arrows to choose and press enter to select";this.labelField="label";this.loading=false;this.loadingErrorLabel="Loading Error";this.loadingLabel="Loading...";this.name=this.inputId;this.placeholder="Search";this.preventFormSubmitOnSearch=false;this.readonly=false;this.required=false;this.searchMode="navigation";this.size="medium";this.spellcheck=false;this.theme="inherit";this.valueField="value";this.filteredOptions=[];this.options=[];this.value="";this.handleClear=t=>{var i;const e=t;const s=t;if(s.type==="click"||e.code==="Enter"||e.code==="Space"){this.value="";(i=this.inputEl)===null||i===void 0?void 0:i.setAttribute("value","");this.loading=false;clearTimeout(this.timeoutTimer);this.filteredOptions=this.options;this.showMenuWithNoInput()&&this.setMenuChange(true);this.el.setFocus();this.icClear.emit();t.preventDefault();this.preventSubmit=true}};this.onInput=({target:t})=>{this.value=t.value;this.icInput.emit({value:this.value});if(this.options.length>0){this.setMenuChange(true);this.preLoad=false;if(this.disableAutoFiltering===false){const t=r(this.options,false,this.value,"anywhere",this.labelField);this.filteredOptions=t.length>0?t:[{[this.labelField]:this.emptyOptionListText,[this.valueField]:""}]}}if(!this.showClearButton)this.showClearButton=true;this.debounceAriaLiveUpdate()};this.onInputBlur=({target:t,relatedTarget:i})=>{this.icSearchBarBlur.emit({value:t.value,relatedTarget:i})};this.onInputFocus=({target:t})=>{this.icSearchBarFocus.emit({value:t.value});this.showClearButton=true};this.handleClearBlur=({relatedTarget:t})=>{this.icClearBlur.emit({relatedTarget:t});this.clearButtonFocused=false};this.handleSubmitSearchBlur=({relatedTarget:t})=>{this.icSubmitSearchBlur.emit({relatedTarget:t});this.searchSubmitFocused=false};this.setInputValue=t=>{if(this.inputEl){const i=h(t,this.options,this.valueField,this.labelField);if(i)this.inputEl.value=i;else if(this.inputEl.value!==t){this.inputEl.value=t}}};this.handleMouseDown=t=>{t.preventDefault()};this.handleSubmitSearchFocus=()=>{this.searchSubmitFocused=true};this.handleSubmitSearch=()=>{if(this.highlightedValue)this.value=this.highlightedValue;this.highlightedValue=undefined;this.icSubmitSearch.emit({value:this.value});const t=this.el.closest("FORM");if(this.searchSubmitButton&&!!t&&!this.preventSubmit){o(t,this.searchSubmitButton)}};this.handleSubmitSearchKeyDown=t=>{if(t.key===" "){t.preventDefault();this.handleSubmitSearch()}};this.handleRetry=t=>{this.retryViaKeyPress=t.detail.keyPressed==="Enter";this.icRetryLoad.emit({value:t.detail.value});this.triggerLoading();this.retryButtonClick=true};this.triggerLoading=()=>{const t=[{[this.labelField]:this.loadingLabel,[this.valueField]:"",loading:true}];if(this.filteredOptions!==t)this.filteredOptions=t;if(this.timeout){this.timeoutTimer=window.setTimeout((()=>{this.filteredOptions=[{[this.labelField]:this.loadingErrorLabel,[this.valueField]:"",timedOut:true}]}),this.timeout)}};this.handleOptionSelect=t=>{if(t.detail.label===this.emptyOptionListText){this.el.setFocus();return}this.value=t.detail.value;this.icOptionSelect.emit({value:this.value})};this.handleMenuOptionHighlight=t=>{const{optionId:i}=t.detail;if(i)this.highlightedValue=i.replace(`${this.menuId}-`,"");this.ariaActiveDescendant=i||""};this.handleMenuChange=t=>{this.setMenuChange(t.detail.open);if(!t.detail.open){this.menuCloseFromMenuChangeEvent=true}};this.setMenuChange=t=>{if(this.open!==t){this.open=t;this.icMenuChange.emit({open:t})}};this.handleHostFocus=()=>{if(this.options&&(this.value||this.showMenuWithNoInput())&&!this.menuCloseFromMenuChangeEvent){this.setMenuChange(true)}this.truncateValue=false;this.showMenuWithNoInput()&&this.debounceAriaLiveUpdate();this.icSearchBarFocus.emit()};this.handleHostBlur=({relatedTarget:t})=>{var i;if(this.open&&this.options&&t!==this.menu&&!this.retryViaKeyPress&&!this.retryButtonClick){this.setMenuChange(false)}if(this.retryButtonClick||this.retryViaKeyPress){(i=this.inputEl)===null||i===void 0?void 0:i.focus()}this.showClearButton=false;this.menuCloseFromMenuChangeEvent=false;this.truncateValue=true;this.icSearchBarBlur.emit({relatedTarget:t,value:this.value});this.retryViaKeyPress=false;this.retryButtonClick=false;this.showMenuWithNoInput()&&this.updateSearchResultAriaLive()};this.handleFocusClearButton=()=>{this.clearButtonFocused=true};this.renderAssistiveHintEl=()=>{var t,i;const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(`#${this.inputId}`);if(e&&Object.keys(e).length>0&&this.hasOptionsOrFilterDisabled()){this.assistiveHintEl=document.createElement("span");this.assistiveHintEl.innerText=this.assistiveHintText;this.assistiveHintEl.id=`${this.inputId}-assistive-hint`;this.assistiveHintEl.style.display="none";(i=e.after)===null||i===void 0?void 0:i.call(e,this.assistiveHintEl)}};this.updateSearchResultAriaLive=()=>{var t;const i=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector(".search-results-status");if(i){if(!this.open||this.value===""&&!this.showMenuWithNoInput()||this.value.length<this.charactersUntilSuggestion){i.innerText=""}else if(this.hasOptionsOrFilterDisabled()&&this.filteredOptions.length>0&&this.open&&!this.filteredOptions[0].loading){i.innerText=this.hadNoOptions()?this.emptyOptionListText:`${this.filteredOptions.length} result${this.filteredOptions.length>1?"s":""} available`}}};this.hasOptionsOrFilterDisabled=()=>this.options.length>0||this.disableAutoFiltering;this.hadNoOptions=()=>this.filteredOptions.length===1&&this.filteredOptions[0][this.labelField]===this.emptyOptionListText&&this.searchMode==="navigation";this.isSubmitDisabled=()=>!this.value||this.value.length<this.charactersUntilSuggestion||this.disabled||this.hadNoOptions()||this.hasTimedOut||this.loading;this.showMenuWithNoInput=()=>this.charactersUntilSuggestion===0;this.updateSearchButtonType=()=>{this.searchButtonType=!!this.el.closest("FORM")&&!this.preventFormSubmitOnSearch?"submit":"button"}}watchCharactersUntilSuggestionHandler(){if(this.showMenuWithNoInput()){this.filteredOptions=this.options}}watchDisabledHandler(){n(this.disabled,this.el)}debounceChanged(){this.icChange=l(this.icChange,this.debounce)}loadingHandler(t){if(t&&!this.hasTimedOut){this.preLoad=false;this.triggerLoading()}}preventFormSubmitOnSearchHandler(){this.updateSearchButtonType()}filteredOptionsHandler(t){this.hasTimedOut=t.some((t=>t.timedOut))}watchOptionsHandler(t){if(this.disableAutoFiltering){if(!this.hasTimedOut){this.loading=false;clearTimeout(this.timeoutTimer);if(t.length>0){this.filteredOptions=t}else{if(this.hadNoOptions()){return}this.setMenuChange(true);if(!this.preLoad){this.filteredOptions=[{[this.labelField]:this.emptyOptionListText,[this.valueField]:""}]}this.preLoad=true}}}else if(this.showMenuWithNoInput()){this.filteredOptions=t}this.debounceAriaLiveUpdate()}watchValueHandler(t){this.setInputValue(t);this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){var t;(t=this.assistiveHintEl)===null||t===void 0?void 0:t.remove()}componentWillLoad(){this.setInputValue(this.value);n(this.disabled,this.el);this.updateSearchButtonType()}componentDidLoad(){if(this.focusOnLoad){this.el.setFocus()}if(this.hasOptionsOrFilterDisabled()){this.renderAssistiveHintEl();if(this.disableAutoFiltering||this.showMenuWithNoInput()){this.filteredOptions=this.options}}c([{prop:this.label,propName:"label"}],"Search Bar")}componentWillRender(){if(this.prevNoOption&&this.menu&&!this.hasTimedOut){this.menu.handleSetFirstOption();this.prevNoOption=false}if(this.filteredOptions.find((t=>t[this.labelField]===this.emptyOptionListText||t[this.labelField]===this.loadingErrorLabel||t[this.labelField]===this.loadingLabel))){this.prevNoOption=true}}handleKeyDown(t){this.icKeydown.emit({event:t});if(this.menu&&this.open){this.menu.handleKeyboardOpen(t)}}handleKeyUp(t){if(t.key==="Enter"){if(this.preventSubmit||this.isSubmitDisabled()){return}this.handleSubmitSearch();this.setMenuChange(false)}if(t.key==="Escape"){this.setMenuChange(false)}if(this.preventSubmit){this.preventSubmit=false}}async setFocus(){var t;this.retryViaKeyPress=false;this.retryButtonClick=false;(t=this.inputEl)===null||t===void 0?void 0:t.focus()}debounceAriaLiveUpdate(){clearTimeout(this.debounceAriaLive);this.debounceAriaLive=window.setTimeout((()=>{this.updateSearchResultAriaLive()}),500)}render(){const{inputId:t,name:i,label:a,required:r,size:o,placeholder:n,helperText:l,disabled:c,value:p,readonly:m,spellcheck:v,fullWidth:g,options:w,open:y,hideLabel:x,menuId:k,ariaActiveDescendant:L,truncateValue:z,autofocus:C,autocapitalize:S,autocomplete:T,filteredOptions:B,theme:F,charactersUntilSuggestion:H,labelField:O,valueField:M,loadingLabel:$,loadingErrorLabel:E,searchMode:D,showClearButton:I,searchSubmitFocused:j,clearButtonFocused:q,searchButtonType:U}=this;const W=m||c;const K=d(this.el,t,l!=="",false).trim();let R=undefined;if(K!==""&&this.hasOptionsOrFilterDisabled()){R=`${K} ${t}-assistive-hint`}else if(this.hasOptionsOrFilterDisabled()){R=`${t}-assistive-hint`}else if(K!==""){R=K}const V=(!!p||this.showMenuWithNoInput())&&this.hasOptionsOrFilterDisabled();const A=V&&y&&B.length>0;const Z=A&&p.length>=H;const N=h(p,w,M,O);u(this.el,p,i,W);return e(s,{key:"29effef90a1b301f50dd5e16cb00ed70eccab512",class:{"ic-search-bar-search":true,"ic-search-bar-full-width":g,"ic-search-bar-disabled":c,"ic-search-bar-small":o==="small",[`ic-theme-${F}`]:F!=="inherit"},onFocus:this.handleHostFocus,onBlur:this.handleHostBlur},e("ic-input-container",{key:"e896aa115879948ea3f8c2431e93791ff1d833db",readonly:m,disabled:W},!x&&e("ic-input-label",{key:"fd412bd32638354ff10f6653800921f2c15e8561",for:t,label:a,helperText:l,required:r,disabled:W&&!m,readonly:m},e("slot",{key:"cb13c54cb67e19ca0a275d3af1b0a5199e4ce89c",name:"helper-text",slot:"helper-text"})),e("ic-input-component-container",{key:"75b330a02def1ea7e43d353ffb1041bfe2d61b53",ref:t=>this.anchorEl=t,size:o,disabled:W,readonly:m,fullWidth:g},e("input",{key:"1b4dc1a0b79fdaad28b52238557e930c9ec02c30",id:t,name:i,ref:t=>this.inputEl=t,value:w&&!!N?N:p,class:{"no-left-pad":m,readonly:m,"truncate-value":z},placeholder:n,required:r,disabled:W,readonly:m,onInput:this.onInput,onBlur:this.onInputBlur,onFocus:this.onInputFocus,"aria-label":x?a:undefined,"aria-activedescendant":L,"aria-expanded":w.length>0&&Z?`${A}`:undefined,"aria-owns":Z?k:undefined,"aria-describedby":R,"aria-controls":Z?k:undefined,"aria-haspopup":w.length>0?"listbox":undefined,"aria-autocomplete":V?"list":undefined,role:w.length>0&&Z?"combobox":undefined,autocomplete:T,autocapitalize:S,autoFocus:C,spellcheck:v,inputmode:"search"}),e("div",{key:"ac9075acbae4855280df3a7927a325ee20ac5d82",class:{"clear-button-container":true,"clear-button-visible":!!p&&!W&&I}},e("ic-button",{key:"d3b1a71ede9651edce18ef3c2e31d044518ea79a",id:"clear-button",class:{"clear-button":true,"clear-button-unfocused":!q},"aria-label":"Clear",innerHTML:b,onClick:this.handleClear,onMouseDown:this.handleMouseDown,size:o,onFocus:this.handleFocusClearButton,onBlur:this.handleClearBlur,onKeyDown:this.handleClear,type:"button",variant:"icon-tertiary",theme:q?"light":"dark"}),e("div",{key:"4514b92f5f6ff11d6c4d296109eb768591490fce",class:"divider"})),e("div",{key:"c1507f41ba857730f14a74f4fb0c24480fed6ba2",class:{"search-submit-button-container":true,"search-submit-button-disabled":this.isSubmitDisabled()}},e("ic-button",{key:"f48d2f2c3cec19bb4fb66be6024ec1d8b8f21e8d",id:"search-submit-button","aria-label":"Search",ref:t=>this.searchSubmitButton=t,class:{"search-submit-button":true,"search-submit-button-small":o==="small","search-submit-button-unfocused":!j,"search-submit-button-disabled":this.isSubmitDisabled()},disabled:this.isSubmitDisabled(),innerHTML:f,size:o,onClick:this.handleSubmitSearch,onMouseDown:this.handleMouseDown,onBlur:this.handleSubmitSearchBlur,onFocus:this.handleSubmitSearchFocus,onKeyDown:this.handleSubmitSearchKeyDown,type:U,variant:"icon-tertiary",theme:j?"light":"dark"}))),e("div",{key:"408c068afb680a643752be6c04df27bf4ec010f0",class:{"menu-container":true,fullwidth:g}},Z&&this.anchorEl&&this.inputEl&&e("ic-menu",{key:"e9a150bc0ead1db84cc63723acc7bf21bb5ba5fc",class:{"no-results":this.hadNoOptions()||B.length===1&&(B[0][O]===$||B[0][O]===E)},activationType:"manual",anchorEl:this.anchorEl,autofocusOnSelected:false,searchMode:D,inputEl:this.inputEl,inputLabel:a,ref:t=>this.menu=t,fullWidth:g,menuId:k,open:true,options:B,onMenuOptionSelect:this.handleOptionSelect,onMenuStateChange:this.handleMenuChange,onMenuOptionId:this.handleMenuOptionHighlight,onRetryButtonClicked:this.handleRetry,parentEl:this.el,value:p,labelField:O,valueField:M,searchBar:true}))),e("div",{key:"41368646242aceb6f0e7bd8ba9ba6ff029cf8d7a","aria-live":"polite",role:"status",class:"search-results-status"}))}static get delegatesFocus(){return true}get el(){return a(this)}static get watchers(){return{charactersUntilSuggestion:["watchCharactersUntilSuggestionHandler"],disabled:["watchDisabledHandler"],debounce:["debounceChanged"],loading:["loadingHandler"],preventFormSubmitOnSearch:["preventFormSubmitOnSearchHandler"],filteredOptions:["filteredOptionsHandler"],options:["watchOptionsHandler"],value:["watchValueHandler"]}}};g.style=m;export{g as ic_search_bar};
2
- //# sourceMappingURL=p-8c7d6a85.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icSearchBarCss","IcSearchBarStyle0","inputIds","SearchBar","constructor","hostRef","this","hasTimedOut","inputId","menuCloseFromMenuChangeEvent","menuId","preLoad","preventSubmit","prevNoOption","retryButtonClick","retryViaKeyPress","truncateValue","clearButtonFocused","open","searchSubmitFocused","showClearButton","autocapitalize","autocomplete","autocorrect","autofocus","charactersUntilSuggestion","disabled","disableAutoFiltering","debounce","emptyOptionListText","focusOnLoad","fullWidth","helperText","hideLabel","assistiveHintText","labelField","loading","loadingErrorLabel","loadingLabel","name","placeholder","preventFormSubmitOnSearch","readonly","required","searchMode","size","spellcheck","theme","valueField","filteredOptions","options","value","handleClear","ev","keyboardEvent","mouseEvent","type","code","_a","inputEl","setAttribute","clearTimeout","timeoutTimer","showMenuWithNoInput","setMenuChange","el","setFocus","icClear","emit","preventDefault","onInput","target","icInput","length","rawFilteredOptions","getFilteredMenuOptions","debounceAriaLiveUpdate","onInputBlur","relatedTarget","icSearchBarBlur","onInputFocus","icSearchBarFocus","handleClearBlur","icClearBlur","handleSubmitSearchBlur","icSubmitSearchBlur","setInputValue","newValue","label","getLabelFromValue","handleMouseDown","handleSubmitSearchFocus","handleSubmitSearch","highlightedValue","undefined","icSubmitSearch","form","closest","searchSubmitButton","handleHiddenFormButtonClick","handleSubmitSearchKeyDown","key","handleRetry","detail","keyPressed","icRetryLoad","triggerLoading","loadingOption","timeout","window","setTimeout","timedOut","handleOptionSelect","icOptionSelect","handleMenuOptionHighlight","optionId","replace","ariaActiveDescendant","handleMenuChange","icMenuChange","handleHostFocus","handleHostBlur","menu","focus","updateSearchResultAriaLive","handleFocusClearButton","renderAssistiveHintEl","input","shadowRoot","querySelector","Object","keys","hasOptionsOrFilterDisabled","assistiveHintEl","document","createElement","innerText","id","style","display","_b","after","call","searchResultsStatusEl","hadNoOptions","isSubmitDisabled","updateSearchButtonType","searchButtonType","watchCharactersUntilSuggestionHandler","watchDisabledHandler","removeDisabledFalse","debounceChanged","icChange","debounceEvent","loadingHandler","preventFormSubmitOnSearchHandler","filteredOptionsHandler","newOptions","some","opt","watchOptionsHandler","watchValueHandler","connectedCallback","disconnectedCallback","remove","componentWillLoad","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","componentWillRender","handleSetFirstOption","find","filteredOption","handleKeyDown","event","icKeydown","handleKeyboardOpen","handleKeyUp","debounceAriaLive","render","disabledMode","describedBy","getInputDescribedByText","trim","describedById","hasSuggestedSearch","menuOpen","menuRendered","labelValue","renderHiddenInput","h","Host","class","onFocus","onBlur","for","slot","ref","anchorEl","role","autoFocus","inputmode","innerHTML","clearIcon","onClick","onMouseDown","onKeyDown","variant","searchIcon","fullwidth","activationType","autofocusOnSelected","inputLabel","onMenuOptionSelect","onMenuStateChange","onMenuOptionId","onRetryButtonClicked","parentEl","searchBar"],"sources":["src/components/ic-search-bar/ic-search-bar.css?tag=ic-search-bar&encapsulation=shadow","src/components/ic-search-bar/ic-search-bar.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-menu: z-index of search bar menu\n */\n\n:host(.ic-search-bar-search) {\n display: block;\n\n --divider-height: 1.5rem;\n --ic-input-label-helpertext-padding: var(--ic-space-xs);\n --border-color: var(--ic-search-bar-outline);\n --input-bg-color: var(--ic-search-bar-background);\n --border-color-disabled: var(--ic-search-bar-outline-disabled);\n --menu-item-text-color: var(--ic-search-bar-dropdown-option-text);\n --menu-item-desc-text-color: var(--ic-search-bar-dropdown-option-description);\n --menu-bg-color: var(--ic-search-bar-dropdown-background);\n --menu-border-color: var(--ic-search-bar-dropdown-outline);\n}\n\n:host(.ic-search-bar-disabled) {\n --ic-input-label-text-color: var(--ic-search-bar-label-disabled);\n --ic-input-label-helper-text-color: var(--ic-search-bar-subtitle-disabled);\n}\n\n:host(.ic-search-bar-search:hover) {\n --border-color: var(--ic-search-bar-outline-hover);\n}\n\n:host(.ic-search-bar-search:active) {\n --border-color: var(--ic-search-bar-outline-pressed);\n}\n\n:host(.ic-search-bar-search.ic-search-bar-small) {\n --divider-height: 1rem;\n}\n\n:host(.ic-search-bar-full-width) {\n width: 100%;\n}\n\n/* Custom Input */\n\n::placeholder {\n color: var(--ic-search-bar-placeholder-text);\n opacity: 1;\n}\n\ninput {\n border: 0;\n border-radius: var(--ic-border-radius);\n color: var(--ic-search-bar-filled-text);\n background-color: var(--input-bg-color);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n caret-color: var(--ic-search-bar-filled-text-cursor);\n}\n\ninput:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ninput:disabled::placeholder {\n color: var(--ic-search-bar-disabled-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n/* CLEAR */\n\n.clear-button-container {\n align-items: center;\n margin-right: var(--ic-space-1px);\n display: none;\n visibility: hidden;\n}\n\n.clear-button {\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-unfocused * {\n fill: var(--ic-search-bar-clear-button);\n}\n\n.clear-button:focus,\n.clear-button:active * {\n fill: var(--ic-atoms-input-clear-button-focus);\n}\n\n.clear-button-visible {\n visibility: visible;\n display: flex;\n}\n\n.search-submit-button-container {\n display: flex;\n align-items: center;\n}\n\n.search-submit-button-unfocused * {\n fill: var(--ic-search-bar-filled-icon);\n}\n\n.search-submit-button-disabled * {\n fill: var(--ic-search-bar-icon-disabled);\n}\n\n.search-submit-button-disabled .ic-tooltip-container {\n display: none !important;\n}\n\n.search-submit-button:focus,\n.search-submit-button:active {\n background-color: var(--ic-color-focus-inner) !important;\n box-shadow: inset 0 0 0 0.125rem var(--ic-color-focus-outer) !important;\n border-radius: var(--ic-space-xxs);\n}\n\n.search-submit-button:focus,\n.search-submit-button:active * {\n fill: white;\n}\n\n.divider {\n width: var(--ic-border-width);\n background-color: var(--ic-search-bar-dropdown-divider);\n height: var(--divider-height);\n}\n\n.menu-container {\n width: var(--input-width, 20rem);\n position: relative;\n top: var(--ic-space-xxxs);\n}\n\n.menu-container.fullwidth {\n width: 100%;\n}\n\n.no-results {\n cursor: not-allowed;\n}\n\n.search-results-status {\n border: 0;\n clip: rect(0, 0, 0, 0, 0);\n height: var(--ic-space-1px);\n margin-bottom: calc(-1 * var(--ic-space-1px));\n margin-right: calc(-1 * 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@media (forced-colors: active) {\n .search-submit-button-unfocused * {\n fill: canvastext;\n }\n\n .search-submit-button-disabled * {\n fill: GrayText;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\n\nimport {\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcMenuOption,\n IcMultiValueEventDetail,\n IcSizesNoLarge,\n IcThemeMode,\n} from \"../../utils/types\";\nimport {\n getInputDescribedByText,\n renderHiddenInput,\n handleHiddenFormButtonClick,\n getLabelFromValue,\n onComponentRequiredPropUndefined,\n getFilteredMenuOptions,\n removeDisabledFalse,\n debounceEvent,\n} from \"../../utils/helpers\";\nimport {\n IcSearchBarBlurEventDetail,\n IcSearchBarSearchModes,\n} from \"./ic-search-bar.types\";\nimport { IcValueEventDetail, IcBlurEventDetail } from \"../../utils/types\";\nimport {\n IcMenuChangeEventDetail,\n IcMenuOptionIdEventDetail,\n IcOptionSelectEventDetail,\n} from \"../ic-menu/ic-menu.types\";\n\nimport clearIcon from \"../../assets/clear-icon.svg\";\nimport searchIcon from \"../../assets/search-icon.svg\";\nimport { IcButtonTypes } from \"../ic-button/ic-button.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot helper-text - Content is set as the helper text for the search bar.\n */\n@Component({\n tag: \"ic-search-bar\",\n styleUrl: \"ic-search-bar.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class SearchBar {\n private anchorEl?: HTMLElement;\n private assistiveHintEl?: HTMLSpanElement;\n private debounceAriaLive?: number;\n private hasTimedOut = false;\n private inputEl?: HTMLInputElement;\n private inputId = `ic-search-bar-input-${inputIds++}`;\n private menu?: HTMLIcMenuElement;\n private menuCloseFromMenuChangeEvent = false;\n private menuId = `${this.inputId}-menu`;\n private preLoad = true;\n private preventSubmit = false;\n private prevNoOption = false;\n private retryButtonClick = false;\n private retryViaKeyPress = false;\n private timeoutTimer?: number;\n private truncateValue = false;\n private searchSubmitButton?: HTMLIcButtonElement;\n\n @Element() el: HTMLIcSearchBarElement;\n\n @State() ariaActiveDescendant?: string;\n @State() clearButtonFocused = false;\n @State() highlightedValue?: string;\n @State() open = false;\n @State() searchSubmitFocused = false;\n @State() showClearButton = false;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autofocus = false;\n\n /**\n * The number of characters until suggestions appear. The submit button will be disabled until the inputted value is equal to or greater than this number.\n */\n @Prop() charactersUntilSuggestion = 2;\n @Watch(\"charactersUntilSuggestion\")\n watchCharactersUntilSuggestionHandler(): void {\n if (this.showMenuWithNoInput()) {\n this.filteredOptions = this.options;\n }\n }\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled = false;\n @Watch(\"disabled\")\n watchDisabledHandler(): void {\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n }\n\n /**\n * Specify whether to disable the built in filtering. For example, if options will already be filtered from external source.\n * If `true`, all options provided will be displayed.\n */\n @Prop() disableAutoFiltering = false;\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce = 0;\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\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 * If `true`, the search bar will be focused when component loaded.\n */\n @Prop() focusOnLoad = false;\n\n /**\n * Specify whether the search bar fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\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 * The hint text for the hidden assistive description element.\n */\n @Prop() assistiveHintText =\n \"When autocomplete results are available use the up and down arrows to choose and press enter to select\";\n\n /**\n * The label for the search bar.\n */\n @Prop() label!: string;\n\n /**\n * The custom name for the label field to correspond with the IcMenuOption type.\n */\n @Prop() labelField = \"label\";\n\n /**\n * Trigger loading state when fetching options asynchronously\n */\n @Prop({ mutable: true }) loading = false;\n @Watch(\"loading\")\n loadingHandler(newValue: boolean): void {\n if (newValue && !this.hasTimedOut) {\n this.preLoad = false;\n this.triggerLoading();\n }\n }\n\n /**\n * Change the message displayed when external loading times out.\n */\n @Prop() loadingErrorLabel = \"Loading Error\";\n\n /**\n * Change the message displayed whilst the options are being loaded externally.\n */\n @Prop() loadingLabel = \"Loading...\";\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 display.\n */\n @Prop() placeholder = \"Search\";\n\n /**\n * If `true` the parent form will not submit when the icSubmitSearch event fires.\n */\n @Prop() preventFormSubmitOnSearch = false;\n @State() searchButtonType: IcButtonTypes;\n @Watch(\"preventFormSubmitOnSearch\")\n preventFormSubmitOnSearchHandler(): void {\n this.updateSearchButtonType();\n }\n\n /**\n * If `true`, the readonly state will be set.\n */\n @Prop() readonly = false;\n\n /**\n * If `true`, the search bar will require a value.\n */\n @Prop() required = false;\n\n /**\n * Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\n */\n @Prop() searchMode: IcSearchBarSearchModes = \"navigation\";\n\n /**\n * The size of the search bar component.\n */\n @Prop() size: IcSizesNoLarge = \"medium\";\n\n /**\n * If `true`, the value of the search will have its spelling and grammar checked.\n */\n @Prop() spellcheck = false;\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 * If using external filtering, set a timeout for when loading takes too long.\n */\n @Prop() timeout?: number;\n\n /**\n * The custom name for the value field to correspond with the IcMenuOption type.\n */\n @Prop() valueField = \"value\";\n\n @State() filteredOptions: IcMenuOption[] = [];\n @Watch(\"filteredOptions\")\n filteredOptionsHandler(newOptions: IcMenuOption[]): void {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n }\n\n /**\n * The suggested search options.\n */\n @Prop() options: IcMenuOption[] = [];\n @Watch(\"options\")\n watchOptionsHandler(newOptions: IcMenuOption[]): void {\n if (this.disableAutoFiltering) {\n if (!this.hasTimedOut) {\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n if (newOptions.length > 0) {\n this.filteredOptions = newOptions;\n } else {\n if (this.hadNoOptions()) {\n return;\n }\n this.setMenuChange(true);\n if (!this.preLoad) {\n this.filteredOptions = [\n {\n [this.labelField]: this.emptyOptionListText,\n [this.valueField]: \"\",\n },\n ];\n }\n this.preLoad = true;\n }\n }\n } else if (this.showMenuWithNoInput()) {\n this.filteredOptions = newOptions;\n }\n this.debounceAriaLiveUpdate();\n }\n\n /**\n * The value of the search input.\n */\n @Prop({ reflect: true, mutable: true }) value = \"\";\n @Watch(\"value\")\n watchValueHandler(newValue: string): void {\n this.setInputValue(newValue);\n this.icChange.emit({ value: newValue });\n }\n\n // The icChange event is defined here so that it appears as an event for search bar\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when value is cleared with clear button\n */\n @Event() icClear: EventEmitter<void>;\n private handleClear = (ev: Event) => {\n const keyboardEvent = ev as KeyboardEvent;\n const mouseEvent = ev as MouseEvent;\n\n if (\n mouseEvent.type === \"click\" ||\n keyboardEvent.code === \"Enter\" ||\n keyboardEvent.code === \"Space\"\n ) {\n this.value = \"\";\n this.inputEl?.setAttribute(\"value\", \"\");\n this.loading = false;\n clearTimeout(this.timeoutTimer);\n this.filteredOptions = this.options;\n this.showMenuWithNoInput() && this.setMenuChange(true);\n this.el.setFocus();\n\n this.icClear.emit();\n ev.preventDefault();\n\n this.preventSubmit = true;\n }\n };\n\n // The icInput event is defined here so that it appears as an event for search bar\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n private onInput = ({ target }: Event) => {\n this.value = (target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n\n if (this.options.length > 0) {\n this.setMenuChange(true);\n\n this.preLoad = false;\n\n if (this.disableAutoFiltering === false) {\n const rawFilteredOptions = getFilteredMenuOptions(\n this.options,\n false,\n this.value,\n \"anywhere\",\n this.labelField\n );\n\n this.filteredOptions =\n rawFilteredOptions.length > 0\n ? rawFilteredOptions\n : [\n {\n [this.labelField]: this.emptyOptionListText,\n [this.valueField]: \"\",\n },\n ];\n }\n }\n\n if (!this.showClearButton) this.showClearButton = true;\n\n this.debounceAriaLiveUpdate();\n };\n\n private onInputBlur = ({ target, relatedTarget }: FocusEvent) => {\n this.icSearchBarBlur.emit({\n value: (target as HTMLInputElement).value,\n relatedTarget,\n });\n };\n\n private onInputFocus = ({ target }: Event) => {\n this.icSearchBarFocus.emit({ value: (target as HTMLInputElement).value });\n\n this.showClearButton = true;\n };\n\n /**\n * Emitted when option is highlighted within the menu\n */\n @Event() icOptionSelect: EventEmitter<IcOptionSelectEventDetail>;\n\n /**\n * Emitted when the state of the menu changes (i.e. open or close)\n */\n @Event() icMenuChange: EventEmitter<IcMenuChangeEventDetail>;\n\n /**\n * @internal - Emitted when blur is invoked from clear button\n */\n @Event() icClearBlur: EventEmitter<IcBlurEventDetail>;\n private handleClearBlur = ({ relatedTarget }: FocusEvent) => {\n this.icClearBlur.emit({ relatedTarget });\n\n this.clearButtonFocused = false;\n };\n\n /**\n * Emitted when the 'retry loading' button is clicked\n */\n @Event() icRetryLoad: EventEmitter<IcMultiValueEventDetail>;\n\n /**\n * Emitted when the search value has been submitted\n */\n @Event() icSubmitSearch: EventEmitter<IcValueEventDetail>;\n\n /**\n * @internal - Emitted when blur is invoked from search submit button\n */\n @Event() icSubmitSearchBlur: EventEmitter<IcBlurEventDetail>;\n private handleSubmitSearchBlur = ({ relatedTarget }: FocusEvent) => {\n this.icSubmitSearchBlur.emit({ relatedTarget });\n\n this.searchSubmitFocused = false;\n };\n\n /**\n * Emitted when blur is invoked from ic-search-bar\n */\n @Event() icSearchBarBlur: EventEmitter<IcSearchBarBlurEventDetail>;\n\n /**\n * Emitted when focus is invoked from ic-search-bar\n */\n @Event() icSearchBarFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n this.assistiveHintEl?.remove();\n }\n\n componentWillLoad(): void {\n this.setInputValue(this.value);\n\n removeDisabledFalse(this.disabled, this.el as HTMLElement);\n\n this.updateSearchButtonType();\n }\n\n componentDidLoad(): void {\n if (this.focusOnLoad) {\n this.el.setFocus();\n }\n\n if (this.hasOptionsOrFilterDisabled()) {\n this.renderAssistiveHintEl();\n if (this.disableAutoFiltering || this.showMenuWithNoInput()) {\n this.filteredOptions = this.options;\n }\n }\n\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Search Bar\"\n );\n }\n\n componentWillRender(): void {\n if (this.prevNoOption && this.menu && !this.hasTimedOut) {\n this.menu.handleSetFirstOption();\n this.prevNoOption = false;\n }\n if (\n this.filteredOptions.find(\n (filteredOption) =>\n filteredOption[this.labelField] === this.emptyOptionListText ||\n filteredOption[this.labelField] === this.loadingErrorLabel ||\n filteredOption[this.labelField] === this.loadingLabel\n )\n ) {\n this.prevNoOption = true;\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(event: KeyboardEvent): void {\n this.icKeydown.emit({ event });\n if (this.menu && this.open) {\n this.menu.handleKeyboardOpen(event);\n }\n }\n\n @Listen(\"keyup\", {})\n handleKeyUp(ev: KeyboardEvent): void {\n if (ev.key === \"Enter\") {\n if (this.preventSubmit || this.isSubmitDisabled()) {\n return;\n }\n\n this.handleSubmitSearch();\n this.setMenuChange(false);\n }\n\n if (ev.key === \"Escape\") {\n this.setMenuChange(false);\n }\n\n if (this.preventSubmit) {\n this.preventSubmit = false;\n }\n }\n\n /**\n * Sets focus on the native `input`.\n */\n @Method()\n async setFocus(): Promise<void> {\n this.retryViaKeyPress = false;\n this.retryButtonClick = false;\n this.inputEl?.focus();\n }\n\n private setInputValue = (newValue: string) => {\n if (this.inputEl) {\n const label = getLabelFromValue(\n newValue,\n this.options,\n this.valueField,\n this.labelField\n );\n if (label) this.inputEl.value = label;\n else if (this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n }\n };\n\n private handleMouseDown = (ev: Event) => {\n ev.preventDefault();\n };\n\n private handleSubmitSearchFocus = () => {\n this.searchSubmitFocused = true;\n };\n\n private handleSubmitSearch = () => {\n if (this.highlightedValue) this.value = this.highlightedValue;\n this.highlightedValue = undefined;\n this.icSubmitSearch.emit({ value: this.value });\n\n const form = this.el.closest<HTMLFormElement>(\"FORM\");\n\n if (this.searchSubmitButton && !!form && !this.preventSubmit) {\n handleHiddenFormButtonClick(form, this.searchSubmitButton);\n }\n };\n\n private debounceAriaLiveUpdate() {\n clearTimeout(this.debounceAriaLive);\n\n this.debounceAriaLive = window.setTimeout(() => {\n this.updateSearchResultAriaLive();\n }, 500);\n }\n\n private handleSubmitSearchKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === \" \") {\n ev.preventDefault();\n this.handleSubmitSearch();\n }\n };\n\n private handleRetry = (ev: CustomEvent<IcMultiValueEventDetail>) => {\n this.retryViaKeyPress = ev.detail.keyPressed === \"Enter\";\n this.icRetryLoad.emit({ value: ev.detail.value });\n this.triggerLoading();\n this.retryButtonClick = true;\n };\n\n private triggerLoading = () => {\n const loadingOption: IcMenuOption[] = [\n {\n [this.labelField]: this.loadingLabel,\n [this.valueField]: \"\",\n loading: true,\n },\n ];\n if (this.filteredOptions !== loadingOption)\n this.filteredOptions = loadingOption;\n if (this.timeout) {\n this.timeoutTimer = window.setTimeout(() => {\n this.filteredOptions = [\n {\n [this.labelField]: this.loadingErrorLabel,\n [this.valueField]: \"\",\n timedOut: true,\n },\n ];\n }, this.timeout);\n }\n };\n\n private handleOptionSelect = (ev: CustomEvent) => {\n if (ev.detail.label === this.emptyOptionListText) {\n this.el.setFocus();\n return;\n }\n\n this.value = ev.detail.value;\n this.icOptionSelect.emit({ value: this.value });\n };\n\n private handleMenuOptionHighlight = (\n ev: CustomEvent<IcMenuOptionIdEventDetail>\n ) => {\n const { optionId } = ev.detail;\n if (optionId)\n this.highlightedValue = optionId.replace(`${this.menuId}-`, \"\");\n this.ariaActiveDescendant = optionId || \"\";\n };\n\n private handleMenuChange = (ev: CustomEvent<IcMenuChangeEventDetail>) => {\n this.setMenuChange(ev.detail.open);\n if (!ev.detail.open) {\n this.menuCloseFromMenuChangeEvent = true;\n }\n };\n\n private setMenuChange = (open: boolean) => {\n if (this.open !== open) {\n this.open = open;\n this.icMenuChange.emit({ open });\n }\n };\n\n private handleHostFocus = () => {\n if (\n this.options &&\n (this.value || this.showMenuWithNoInput()) &&\n !this.menuCloseFromMenuChangeEvent\n ) {\n this.setMenuChange(true);\n }\n this.truncateValue = false;\n this.showMenuWithNoInput() && this.debounceAriaLiveUpdate();\n\n this.icSearchBarFocus.emit();\n };\n\n private handleHostBlur = ({ relatedTarget }: FocusEvent) => {\n if (\n this.open &&\n this.options &&\n relatedTarget !== this.menu &&\n !this.retryViaKeyPress &&\n !this.retryButtonClick\n ) {\n this.setMenuChange(false);\n }\n\n if (this.retryButtonClick || this.retryViaKeyPress) {\n this.inputEl?.focus();\n }\n\n this.showClearButton = false;\n this.menuCloseFromMenuChangeEvent = false;\n this.truncateValue = true;\n this.icSearchBarBlur.emit({\n relatedTarget,\n value: this.value,\n });\n this.retryViaKeyPress = false;\n this.retryButtonClick = false;\n this.showMenuWithNoInput() && this.updateSearchResultAriaLive();\n };\n\n private handleFocusClearButton = () => {\n this.clearButtonFocused = true;\n };\n\n private renderAssistiveHintEl = () => {\n const input = this.el.shadowRoot?.querySelector(`#${this.inputId}`);\n\n if (\n input &&\n Object.keys(input).length > 0 &&\n this.hasOptionsOrFilterDisabled()\n ) {\n this.assistiveHintEl = document.createElement(\"span\");\n this.assistiveHintEl.innerText = this.assistiveHintText;\n this.assistiveHintEl.id = `${this.inputId}-assistive-hint`;\n this.assistiveHintEl.style.display = \"none\";\n input.after?.(this.assistiveHintEl);\n }\n };\n\n private updateSearchResultAriaLive = () => {\n const searchResultsStatusEl =\n this.el.shadowRoot?.querySelector<HTMLParagraphElement>(\n \".search-results-status\"\n );\n\n if (searchResultsStatusEl) {\n if (\n !this.open ||\n (this.value === \"\" && !this.showMenuWithNoInput()) ||\n this.value.length < this.charactersUntilSuggestion\n ) {\n searchResultsStatusEl.innerText = \"\";\n } else if (\n this.hasOptionsOrFilterDisabled() &&\n this.filteredOptions.length > 0 &&\n this.open &&\n !this.filteredOptions[0].loading\n ) {\n searchResultsStatusEl.innerText = this.hadNoOptions()\n ? this.emptyOptionListText\n : `${this.filteredOptions.length} result${\n this.filteredOptions.length > 1 ? \"s\" : \"\"\n } available`;\n }\n }\n };\n\n private hasOptionsOrFilterDisabled = () =>\n this.options.length > 0 || this.disableAutoFiltering;\n\n private hadNoOptions = () =>\n this.filteredOptions.length === 1 &&\n this.filteredOptions[0][this.labelField] === this.emptyOptionListText &&\n this.searchMode === \"navigation\";\n\n private isSubmitDisabled = () =>\n !this.value ||\n this.value.length < this.charactersUntilSuggestion ||\n this.disabled ||\n this.hadNoOptions() ||\n this.hasTimedOut ||\n this.loading;\n\n private showMenuWithNoInput = () => this.charactersUntilSuggestion === 0;\n private updateSearchButtonType = () => {\n this.searchButtonType =\n !!this.el.closest<HTMLFormElement>(\"FORM\") &&\n !this.preventFormSubmitOnSearch\n ? \"submit\"\n : \"button\";\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n placeholder,\n helperText,\n disabled,\n value,\n readonly,\n spellcheck,\n fullWidth,\n options,\n open,\n hideLabel,\n menuId,\n ariaActiveDescendant,\n truncateValue,\n autofocus,\n autocapitalize,\n autocomplete,\n filteredOptions,\n theme,\n charactersUntilSuggestion,\n labelField,\n valueField,\n loadingLabel,\n loadingErrorLabel,\n searchMode,\n showClearButton,\n searchSubmitFocused,\n clearButtonFocused,\n searchButtonType,\n } = this;\n\n const disabledMode = readonly || disabled;\n\n const describedBy = getInputDescribedByText(\n this.el,\n inputId,\n helperText !== \"\",\n false\n ).trim();\n\n let describedById = undefined;\n\n if (describedBy !== \"\" && this.hasOptionsOrFilterDisabled()) {\n describedById = `${describedBy} ${inputId}-assistive-hint`;\n } else if (this.hasOptionsOrFilterDisabled()) {\n describedById = `${inputId}-assistive-hint`;\n } else if (describedBy !== \"\") {\n describedById = describedBy;\n }\n\n const hasSuggestedSearch =\n (!!value || this.showMenuWithNoInput()) &&\n this.hasOptionsOrFilterDisabled();\n const menuOpen = hasSuggestedSearch && open && filteredOptions.length > 0;\n const menuRendered = menuOpen && value.length >= charactersUntilSuggestion;\n\n const labelValue = getLabelFromValue(\n value,\n options,\n valueField,\n labelField\n );\n\n renderHiddenInput(this.el as HTMLElement, value, name, disabledMode);\n\n return (\n <Host\n class={{\n \"ic-search-bar-search\": true,\n \"ic-search-bar-full-width\": fullWidth,\n \"ic-search-bar-disabled\": disabled,\n \"ic-search-bar-small\": size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n onFocus={this.handleHostFocus}\n onBlur={this.handleHostBlur}\n >\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledMode && !readonly}\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 size={size}\n disabled={disabledMode}\n readonly={readonly}\n fullWidth={fullWidth}\n >\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el)}\n value={options && !!labelValue ? labelValue : value}\n class={{\n \"no-left-pad\": readonly,\n readonly,\n \"truncate-value\": truncateValue,\n }}\n placeholder={placeholder}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onInputBlur}\n onFocus={this.onInputFocus}\n aria-label={hideLabel ? label : undefined}\n aria-activedescendant={ariaActiveDescendant}\n aria-expanded={\n options.length > 0 && menuRendered ? `${menuOpen}` : undefined\n }\n aria-owns={menuRendered ? menuId : undefined}\n aria-describedby={describedById}\n aria-controls={menuRendered ? menuId : undefined}\n aria-haspopup={options.length > 0 ? \"listbox\" : undefined}\n aria-autocomplete={hasSuggestedSearch ? \"list\" : undefined}\n role={options.length > 0 && menuRendered ? \"combobox\" : undefined}\n autocomplete={autocomplete}\n autocapitalize={autocapitalize}\n autoFocus={autofocus}\n spellcheck={spellcheck}\n inputmode=\"search\"\n ></input>\n <div\n class={{\n \"clear-button-container\": true,\n \"clear-button-visible\":\n !!value && !disabledMode && showClearButton,\n }}\n >\n <ic-button\n id=\"clear-button\"\n class={{\n \"clear-button\": true,\n \"clear-button-unfocused\": !clearButtonFocused,\n }}\n aria-label=\"Clear\"\n innerHTML={clearIcon}\n onClick={this.handleClear}\n onMouseDown={this.handleMouseDown}\n size={size}\n onFocus={this.handleFocusClearButton}\n onBlur={this.handleClearBlur}\n onKeyDown={this.handleClear}\n type={\"button\"}\n variant=\"icon-tertiary\"\n theme={clearButtonFocused ? \"light\" : \"dark\"}\n ></ic-button>\n <div class=\"divider\"></div>\n </div>\n <div\n class={{\n \"search-submit-button-container\": true,\n \"search-submit-button-disabled\": this.isSubmitDisabled(),\n }}\n >\n <ic-button\n id=\"search-submit-button\"\n aria-label=\"Search\"\n ref={(el) => (this.searchSubmitButton = el)}\n class={{\n \"search-submit-button\": true,\n \"search-submit-button-small\": size === \"small\",\n \"search-submit-button-unfocused\": !searchSubmitFocused,\n \"search-submit-button-disabled\": this.isSubmitDisabled(),\n }}\n disabled={this.isSubmitDisabled()}\n innerHTML={searchIcon}\n size={size}\n onClick={this.handleSubmitSearch}\n onMouseDown={this.handleMouseDown}\n onBlur={this.handleSubmitSearchBlur}\n onFocus={this.handleSubmitSearchFocus}\n onKeyDown={this.handleSubmitSearchKeyDown}\n type={searchButtonType}\n variant=\"icon-tertiary\"\n theme={searchSubmitFocused ? \"light\" : \"dark\"}\n ></ic-button>\n </div>\n </ic-input-component-container>\n <div\n class={{\n \"menu-container\": true,\n fullwidth: fullWidth,\n }}\n >\n {menuRendered && this.anchorEl && this.inputEl && (\n <ic-menu\n class={{\n \"no-results\":\n this.hadNoOptions() ||\n (filteredOptions.length === 1 &&\n (filteredOptions[0][labelField] === loadingLabel ||\n filteredOptions[0][labelField] === loadingErrorLabel)),\n }}\n activationType=\"manual\"\n anchorEl={this.anchorEl}\n autofocusOnSelected={false}\n searchMode={searchMode}\n inputEl={this.inputEl}\n inputLabel={label}\n ref={(el) => (this.menu = el)}\n fullWidth={fullWidth}\n menuId={menuId}\n open={true}\n options={filteredOptions}\n onMenuOptionSelect={this.handleOptionSelect}\n onMenuStateChange={this.handleMenuChange}\n onMenuOptionId={this.handleMenuOptionHighlight}\n onRetryButtonClicked={this.handleRetry}\n parentEl={this.el as HTMLElement}\n value={value}\n labelField={labelField}\n valueField={valueField}\n searchBar={true}\n ></ic-menu>\n )}\n </div>\n </ic-input-container>\n <div\n aria-live=\"polite\"\n role=\"status\"\n class=\"search-results-status\"\n ></div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as o,h as e,H as t}from"./p-8e4e97b4.js";import{o as r}from"./p-a5658054.js";import"./p-bddf799a.js";const a=":host{display:block;margin-bottom:var(--ic-space-md);border-bottom:var(--ic-space-1px) solid var(--ic-tab-bottom-border)}:host(.ic-tab-group-monochrome){border-bottom:var(--ic-space-1px) solid\n var(--ic-tab-bottom-border-monochrome)}:host(.ic-tab-group-inline){margin-bottom:0;border-bottom:none}.tabs-container{display:flex;flex-direction:row}.tabs-container::-webkit-scrollbar{display:none}:host ic-horizontal-scroll{--splitter-color:var(--ic-tab-divider)}:host(.ic-tab-group-monochrome) ic-horizontal-scroll{--splitter-color:var(--ic-tab-divider-monochrome)}";const i=a;const c=class{constructor(e){o(this,e);this.inline=false;this.monochrome=false;this.theme="inherit"}componentDidLoad(){r([{prop:this.label,propName:"label"}],"Tab Group")}render(){const{inline:o,theme:r,label:a,monochrome:i}=this;return e(t,{key:"e6eda4f0fddf03fa0e666070e9fe4a01ed6c244c",role:"tablist","aria-label":a,class:{["ic-tab-group-inline"]:!!o,[`ic-theme-${r}`]:r!=="inherit",["ic-tab-group-monochrome"]:!!i}},e("ic-horizontal-scroll",{key:"b2387259eee6357ea9d90560aef246a035158e01",theme:r,"focus-trigger":"tabFocus",monochrome:i},e("div",{key:"a8351a7ab0e0a9ac824f5a4be46af8a97c6cb8dd",class:"tabs-container"},e("slot",{key:"5008e5e509035d59bbf397a986af8d390ecacf1e"}))))}static get delegatesFocus(){return true}};c.style=i;export{c as ic_tab_group};
2
- //# sourceMappingURL=p-b29e325f.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{t as o,r as n,h as r,o as l,s as h}from"./p-a5658054.js";import"./p-bddf799a.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;--ic-input-label-text-color:var(--ic-radio-button-input-field-label);--ic-input-label-helper-text-color:var(\n --ic-radio-button-input-field-subtitle\n );--ic-input-validation-status-text-color:var(--ic-radio-button-state-text);--ic-input-validation-error:var(--ic-radio-button-state-icon-error)}ic-input-label.error{--ic-input-label-text-color:var(--ic-radio-button-input-field-label-error)}ic-input-label.disabled{--ic-input-label-text-color:var(\n --ic-radio-button-input-field-label-disabled\n );--ic-input-label-helper-text-color:var(\n --ic-radio-button-input-field-subtitle-disabled\n )}ic-input-validation.show-validation{margin-top:var(--ic-space-sm)}:host(.ic-radio-group-small) ic-input-validation.show-validation{margin-top:calc(var(--ic-space-sm) / 2)}ic-input-label:not(.with-helper) .ic-typography-label,ic-input-label .helpertext{margin-bottom:var(--ic-space-sm)}:host(.ic-radio-group-small) ic-input-label:not(.with-helper) .ic-typography-label,:host(.ic-radio-group-small) ic-input-label .helpertext{margin-bottom:calc(var(--ic-space-sm) / 2)}ic-input-label .helpertext{display:block}:host .radio-buttons-container{display:flex;flex-direction:column;gap:var(--ic-space-xxs)}:host(.ic-radio-group-small) .radio-buttons-container{gap:var(--ic-space-xxxs)}:host .radio-buttons-container.horizontal{display:flex;flex-direction:row;gap:calc(var(--ic-space-xl) + var(--ic-space-xs))}:host(.ic-radio-group-small) .radio-buttons-container.horizontal{gap:var(--ic-space-xl)}';const c=d;const b=class{constructor(e){t(this,e);this.icChange=i(this,"icChange",7);this.resizeObserver=null;this.ADDITIONAL_FIELD="additional-field";this.RADIO_HORIZONTAL="horizontal";this.RADIO_VERTICAL="vertical";this.checkedValue="";this.selectedChild=-1;this.disabled=false;this.hideLabel=false;this.orientation="vertical";this.required=false;this.size="medium";this.validationAriaLive="polite";this.validationStatus="";this.validationText="";this.theme="inherit";this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.checkOrientation()}));this.resizeObserver.observe(this.el)};this.handleKeyDown=t=>{const i=Array.from(this.el.querySelectorAll('ic-text-field[slot="additional-field"]'));const e=document.activeElement;if(i.length>0&&this.radioOptions.map((t=>o(t,this.ADDITIONAL_FIELD)))&&i.map((t=>t==e))){return}t.stopPropagation();switch(t.key){case"ArrowDown":case"ArrowRight":this.radioOptions[this.getNextItemToSelect(this.selectedChild,true)].click();t.preventDefault();break;case"ArrowUp":case"ArrowLeft":this.radioOptions[this.getNextItemToSelect(this.selectedChild,false)].click();t.preventDefault()}};this.getNextItemToSelect=(t,i)=>{const e=this.radioOptions.length-1;if(t<1){t=0}let s=i?t+1:t-1;if(s<0){s=e}else if(s>e){s=0}if(this.radioOptions[s].disabled){s=this.getNextItemToSelect(s,i)}return s};this.addSlotChangeListener=()=>{var t;(t=this.radioContainer)===null||t===void 0?void 0:t.addEventListener("slotchange",this.setRadioOptions)};this.setFirstRadioOptionTabIndex=t=>{this.radioOptions[0].setTabIndex(t)};this.setRadioOptions=()=>{this.selectedChild=-1;this.checkedValue="";this.radioOptions=Array.from(this.el.children).filter((t=>t.tagName==="IC-RADIO-OPTION"));if(this.radioOptions.length>0){this.radioOptions.forEach(((t,i)=>{if(!t.selected){t.selected=this.checkedValue===t.value}t.name=this.name;t.groupLabel=this.label;if(t.selected){this.selectedChild=i;this.checkedValue=t.value}if(this.disabled){t.disabled=true}}));this.setFirstRadioOptionTabIndex(this.selectedChild>0?-1:0);if(this.initialOrientation===this.RADIO_HORIZONTAL&&this.radioOptions!==undefined&&(this.radioOptions.length>2||this.radioOptions.length===2&&(o(this.radioOptions[0],this.ADDITIONAL_FIELD)||o(this.radioOptions[1],this.ADDITIONAL_FIELD)))){this.currentOrientation=this.RADIO_VERTICAL}}}}watchDisabledHandler(t){this.radioOptions.forEach((i=>i.disabled=t));n(this.disabled,this.el)}orientationChangeHandler(){this.initialOrientation=this.orientation;this.checkOrientation()}watchThemeHandler(t){this.radioOptions.forEach((i=>i.theme=t))}disconnectedCallback(){var t,i;(t=this.resizeObserver)===null||t===void 0?void 0:t.disconnect();(i=this.radioContainer)===null||i===void 0?void 0:i.removeEventListener("slotchange",this.setRadioOptions)}componentWillLoad(){n(this.disabled,this.el);this.orientationChangeHandler();this.currentOrientation=this.initialOrientation}componentDidLoad(){this.setRadioOptions();r(this.runResizeObserver);this.addSlotChangeListener();l([{prop:this.label,propName:"label"},{prop:this.name,propName:"name"}],"Radio Group");this.watchThemeHandler(this.theme)}selectHandler({detail:t,target:i}){var e;const s=i;if(s.parentElement===this.el){this.checkedValue=t.value;this.icChange.emit({value:this.checkedValue,selectedOption:{radio:s,textFieldValue:(e=s===null||s===void 0?void 0:s.querySelector("ic-text-field"))===null||e===void 0?void 0:e.value}});if(this.radioOptions!==undefined){this.radioOptions.forEach(((t,i)=>{t.selected=s===t;if(t.selected){this.selectedChild=i}}));this.setFirstRadioOptionTabIndex(this.selectedChild>0?-1:0)}}}changeHandler(){var t;const i=(t=this.radioOptions)===null||t===void 0?void 0:t.findIndex((t=>t.selected));if(i<0){this.setFirstRadioOptionTabIndex(0);this.selectedChild=i}}checkOrientation(){if(this.initialOrientation===this.RADIO_HORIZONTAL){let t=0;if(Array.isArray(this.radioOptions)&&this.radioOptions.length>0){this.radioOptions.forEach((({clientWidth:i},e,s)=>{t+=i;if(e<s.length-1)t+=40}))}else{t=0}if(this.initialOrientation==this.RADIO_HORIZONTAL){if(this.radioOptions!==undefined&&(this.radioOptions.length>2||this.radioOptions.length===2&&(o(this.radioOptions[0],this.ADDITIONAL_FIELD)||o(this.radioOptions[1],this.ADDITIONAL_FIELD)))){this.currentOrientation=this.RADIO_VERTICAL}else{if(this.radioContainer){if(t>=this.radioContainer.clientWidth){this.currentOrientation=this.RADIO_VERTICAL}else if(t<this.radioContainer.clientWidth){this.currentOrientation=this.RADIO_HORIZONTAL}}}}}}render(){const{currentOrientation:t,disabled:i,handleKeyDown:a,helperText:o,hideLabel:n,label:r,required:l,size:d,validationAriaLive:c,validationStatus:b,validationText:p,theme:u}=this;const f=h(b,i);return e(s,{key:"aa0ff707b50765535bf74bb77f349b1fdf8ec5c2",onKeyDown:a,class:{"ic-radio-group-small":d==="small",[`ic-theme-${u}`]:u!=="inherit"}},e("fieldset",{key:"0c4dab92df1c01348afbe3ccdd6e66d32aaefef9",role:"radiogroup",id:this.name,"aria-required":`${l}`},!n&&e("legend",{key:"37ebeeb2b43fcb8628327deefb00ce2742c6a026"},e("ic-input-label",{key:"2a587dc242e293992e41bdbb523ac8414b8c4fac",class:{[`${b}`]:true,["disabled"]:!!i},label:r,helperText:o,required:l,disabled:i},e("slot",{key:"28611e725b177c6b7f8456668c33d3162830eb29",name:"helper-text",slot:"helper-text"}))),e("div",{key:"d53f2e859088f0c208c2aab94442322d8a1bad0e",class:{"radio-buttons-container":true,horizontal:t===this.RADIO_HORIZONTAL},ref:t=>this.radioContainer=t},e("slot",{key:"bbffd83c1b277c2ca55a7e97254ba0a322008c34"}))),e("ic-input-validation",{key:"67ca41fbf8ce4265a5a979cdca100edb2f4e4c41",class:{"show-validation":f},ariaLiveMode:c,status:f?b:"",message:f?p:""}))}get el(){return a(this)}static get watchers(){return{disabled:["watchDisabledHandler"],orientation:["orientationChangeHandler"],theme:["watchThemeHandler"]}}};b.style=c;export{b as ic_radio_group};
2
- //# sourceMappingURL=p-bba25812.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icRadioGroupCss","IcRadioGroupStyle0","RadioGroup","constructor","hostRef","this","resizeObserver","ADDITIONAL_FIELD","RADIO_HORIZONTAL","RADIO_VERTICAL","checkedValue","selectedChild","disabled","hideLabel","orientation","required","size","validationAriaLive","validationStatus","validationText","theme","runResizeObserver","ResizeObserver","checkOrientation","observe","el","handleKeyDown","event","additionalFields","Array","from","querySelectorAll","activeEl","document","activeElement","length","radioOptions","map","slotHasContent","stopPropagation","key","getNextItemToSelect","click","preventDefault","currentItem","movingDown","numRadios","nextItem","addSlotChangeListener","_a","radioContainer","addEventListener","setRadioOptions","setFirstRadioOptionTabIndex","value","setTabIndex","children","filter","tagName","forEach","radioOption","index","selected","name","groupLabel","label","initialOrientation","undefined","currentOrientation","watchDisabledHandler","newValue","removeDisabledFalse","orientationChangeHandler","watchThemeHandler","disconnectedCallback","disconnect","_b","removeEventListener","componentWillLoad","componentDidLoad","checkResizeObserver","onComponentRequiredPropUndefined","prop","propName","selectHandler","detail","target","selectedOption","parentElement","icChange","emit","radio","textFieldValue","querySelector","changeHandler","findIndex","totalWidth","isArray","clientWidth","i","arr","render","helperText","showValidation","hasValidationStatus","h","Host","onKeyDown","class","role","id","slot","horizontal","ref","ariaLiveMode","status","message"],"sources":["src/components/ic-radio-group/ic-radio-group.css?tag=ic-radio-group&encapsulation=shadow","src/components/ic-radio-group/ic-radio-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n display: block;\n\n --ic-input-label-text-color: var(--ic-radio-button-input-field-label);\n --ic-input-label-helper-text-color: var(\n --ic-radio-button-input-field-subtitle\n );\n --ic-input-validation-status-text-color: var(--ic-radio-button-state-text);\n --ic-input-validation-error: var(--ic-radio-button-state-icon-error);\n}\n\nic-input-label.error {\n --ic-input-label-text-color: var(--ic-radio-button-input-field-label-error);\n}\n\nic-input-label.disabled {\n --ic-input-label-text-color: var(\n --ic-radio-button-input-field-label-disabled\n );\n --ic-input-label-helper-text-color: var(\n --ic-radio-button-input-field-subtitle-disabled\n );\n}\n\nic-input-validation.show-validation {\n margin-top: var(--ic-space-sm);\n}\n\n:host(.ic-radio-group-small) ic-input-validation.show-validation {\n margin-top: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-label:not(.with-helper) .ic-typography-label,\nic-input-label .helpertext {\n margin-bottom: var(--ic-space-sm);\n}\n\n:host(.ic-radio-group-small)\n ic-input-label:not(.with-helper)\n .ic-typography-label,\n:host(.ic-radio-group-small) ic-input-label .helpertext {\n margin-bottom: calc(var(--ic-space-sm) / 2);\n}\n\nic-input-label .helpertext {\n display: block;\n}\n\n:host .radio-buttons-container {\n display: flex;\n flex-direction: column;\n gap: var(--ic-space-xxs);\n}\n\n:host(.ic-radio-group-small) .radio-buttons-container {\n gap: var(--ic-space-xxxs);\n}\n\n:host .radio-buttons-container.horizontal {\n display: flex;\n flex-direction: row;\n gap: calc(var(--ic-space-xl) + var(--ic-space-xs));\n}\n\n:host(.ic-radio-group-small) .radio-buttons-container.horizontal {\n gap: var(--ic-space-xl);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Listen,\n Element,\n Event,\n EventEmitter,\n Watch,\n} from \"@stencil/core\";\nimport {\n hasValidationStatus,\n slotHasContent,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n checkResizeObserver,\n} from \"../../utils/helpers\";\nimport {\n IcAriaLive,\n IcInformationStatusOrEmpty,\n IcOrientation,\n IcSizesNoLarge,\n IcThemeMode,\n IcValueEventDetail,\n} from \"../../utils/types\";\nimport { IcChangeEventDetail } from \"./ic-radio-group.types\";\n\n/**\n * @slot helper-text - Content is set as the helper text for the radio group.\n */\n@Component({\n tag: \"ic-radio-group\",\n styleUrl: \"ic-radio-group.css\",\n shadow: true,\n})\nexport class RadioGroup {\n private radioContainer?: HTMLDivElement;\n private radioOptions: HTMLIcRadioOptionElement[];\n private resizeObserver: ResizeObserver | null = null;\n private ADDITIONAL_FIELD = \"additional-field\";\n private RADIO_HORIZONTAL: IcOrientation = \"horizontal\";\n private RADIO_VERTICAL: IcOrientation = \"vertical\";\n\n @Element() el: HTMLIcRadioGroupElement;\n\n @State() checkedValue: string = \"\";\n @State() currentOrientation: IcOrientation;\n @State() initialOrientation: IcOrientation;\n @State() selectedChild: number = -1;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled?: boolean = false;\n\n @Watch(\"disabled\")\n watchDisabledHandler(newValue: boolean): void {\n this.radioOptions.forEach(\n (radioOption) => (radioOption.disabled = newValue)\n );\n removeDisabledFalse(this.disabled, this.el);\n }\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText?: string;\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel?: boolean = false;\n\n /**\n * The label for the radio group to be displayed.\n */\n @Prop() label!: string;\n\n /**\n * The name for the radio group to differentiate from other groups.\n */\n @Prop() name!: string;\n\n /**\n * The orientation of the radio buttons in the radio group. If there are more than two radio buttons in a radio group or either of the radio buttons use the `additional-field` slot, then the orientation will always be vertical.\n */\n @Prop() orientation?: IcOrientation = \"vertical\";\n\n /**\n * If `true`, the radio group will require a value.\n */\n @Prop() required?: boolean = false;\n\n /**\n * The size of the radio group component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\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: string = \"\";\n\n @Watch(\"orientation\")\n orientationChangeHandler(): void {\n this.initialOrientation = this.orientation!;\n this.checkOrientation();\n }\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 @Watch(\"theme\")\n watchThemeHandler(newValue: IcThemeMode): void {\n this.radioOptions.forEach((radioOption) => (radioOption.theme = newValue));\n }\n\n /**\n * Emitted when a user selects a radio.\n */\n @Event() icChange: EventEmitter<IcChangeEventDetail>;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n this.radioContainer?.removeEventListener(\n \"slotchange\",\n this.setRadioOptions\n );\n }\n\n componentWillLoad(): void {\n removeDisabledFalse(this.disabled, this.el);\n\n this.orientationChangeHandler();\n this.currentOrientation = this.initialOrientation;\n }\n\n componentDidLoad(): void {\n this.setRadioOptions();\n checkResizeObserver(this.runResizeObserver);\n this.addSlotChangeListener();\n\n onComponentRequiredPropUndefined(\n [\n { prop: this.label, propName: \"label\" },\n { prop: this.name, propName: \"name\" },\n ],\n \"Radio Group\"\n );\n\n this.watchThemeHandler(this.theme!);\n }\n\n @Listen(\"icCheck\")\n selectHandler({ detail, target }: CustomEvent<IcValueEventDetail>): void {\n const selectedOption = target as HTMLIcRadioOptionElement;\n if (selectedOption.parentElement === this.el) {\n this.checkedValue = detail.value as string;\n this.icChange.emit({\n value: this.checkedValue,\n selectedOption: {\n radio: selectedOption,\n textFieldValue: selectedOption?.querySelector(\"ic-text-field\")?.value,\n },\n });\n\n if (this.radioOptions !== undefined) {\n this.radioOptions.forEach((radioOption, index) => {\n radioOption.selected = selectedOption === radioOption;\n if (radioOption.selected) {\n this.selectedChild = index;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n }\n }\n }\n\n @Listen(\"icSelectedChange\")\n changeHandler(): void {\n const selectedOption = this.radioOptions?.findIndex(\n (radioOption) => radioOption.selected\n );\n if (selectedOption < 0) {\n this.setFirstRadioOptionTabIndex(0);\n this.selectedChild = selectedOption;\n }\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkOrientation();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkOrientation() {\n if (this.initialOrientation === this.RADIO_HORIZONTAL) {\n let totalWidth = 0;\n if (Array.isArray(this.radioOptions) && this.radioOptions.length > 0) {\n this.radioOptions.forEach(({ clientWidth }, i, arr) => {\n totalWidth += clientWidth;\n if (i < arr.length - 1) totalWidth += 40;\n });\n } else {\n totalWidth = 0;\n }\n\n if (this.initialOrientation == this.RADIO_HORIZONTAL) {\n if (\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (slotHasContent(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n slotHasContent(this.radioOptions[1], this.ADDITIONAL_FIELD))))\n ) {\n this.currentOrientation = this.RADIO_VERTICAL;\n } else {\n if (this.radioContainer) {\n if (totalWidth >= this.radioContainer.clientWidth) {\n this.currentOrientation = this.RADIO_VERTICAL;\n } else if (totalWidth < this.radioContainer.clientWidth) {\n this.currentOrientation = this.RADIO_HORIZONTAL;\n }\n }\n }\n }\n }\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n const additionalFields = Array.from(\n this.el.querySelectorAll<HTMLElement>(\n 'ic-text-field[slot=\"additional-field\"]'\n )\n );\n const activeEl = document.activeElement;\n if (\n additionalFields.length > 0 &&\n this.radioOptions.map((el) =>\n slotHasContent(el, this.ADDITIONAL_FIELD)\n ) &&\n additionalFields.map((el) => el == activeEl)\n ) {\n return;\n }\n\n event.stopPropagation();\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, true)\n ].click();\n event.preventDefault();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n this.radioOptions[\n this.getNextItemToSelect(this.selectedChild, false)\n ].click();\n event.preventDefault();\n }\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numRadios = this.radioOptions.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n //check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numRadios;\n } else if (nextItem > numRadios) {\n nextItem = 0;\n }\n\n //if next item is disabled then find next\n if (this.radioOptions[nextItem].disabled) {\n nextItem = this.getNextItemToSelect(nextItem, movingDown);\n }\n\n return nextItem;\n };\n\n private addSlotChangeListener = () => {\n this.radioContainer?.addEventListener(\"slotchange\", this.setRadioOptions);\n };\n\n private setFirstRadioOptionTabIndex = (value: number) => {\n this.radioOptions[0].setTabIndex(value);\n };\n\n private setRadioOptions = () => {\n this.selectedChild = -1;\n this.checkedValue = \"\";\n this.radioOptions = Array.from(this.el.children).filter(\n (el) => el.tagName === \"IC-RADIO-OPTION\"\n ) as HTMLIcRadioOptionElement[];\n if (this.radioOptions.length > 0) {\n this.radioOptions.forEach((radioOption, index) => {\n if (!radioOption.selected) {\n radioOption.selected = this.checkedValue === radioOption.value;\n }\n radioOption.name = this.name;\n radioOption.groupLabel = this.label;\n if (radioOption.selected) {\n this.selectedChild = index;\n this.checkedValue = radioOption.value;\n }\n if (this.disabled) {\n radioOption.disabled = true;\n }\n });\n this.setFirstRadioOptionTabIndex(this.selectedChild > 0 ? -1 : 0);\n\n if (\n this.initialOrientation === this.RADIO_HORIZONTAL &&\n this.radioOptions !== undefined &&\n (this.radioOptions.length > 2 ||\n (this.radioOptions.length === 2 &&\n (slotHasContent(this.radioOptions[0], this.ADDITIONAL_FIELD) ||\n slotHasContent(this.radioOptions[1], this.ADDITIONAL_FIELD))))\n ) {\n this.currentOrientation = this.RADIO_VERTICAL;\n }\n }\n };\n\n render() {\n const {\n currentOrientation,\n disabled,\n handleKeyDown,\n helperText,\n hideLabel,\n label,\n required,\n size,\n validationAriaLive,\n validationStatus,\n validationText,\n theme,\n } = this;\n\n const showValidation = hasValidationStatus(validationStatus, disabled);\n\n return (\n <Host\n onKeyDown={handleKeyDown}\n class={{\n \"ic-radio-group-small\": size === \"small\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n >\n <fieldset\n role=\"radiogroup\"\n id={this.name}\n aria-required={`${required}`}\n >\n {!hideLabel && (\n <legend>\n <ic-input-label\n class={{\n [`${validationStatus}`]: true,\n [\"disabled\"]: !!disabled,\n }}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabled}\n >\n <slot name=\"helper-text\" slot=\"helper-text\"></slot>\n </ic-input-label>\n </legend>\n )}\n <div\n class={{\n \"radio-buttons-container\": true,\n horizontal: currentOrientation === this.RADIO_HORIZONTAL,\n }}\n ref={(el) => (this.radioContainer = el)}\n >\n <slot></slot>\n </div>\n </fieldset>\n <ic-input-validation\n class={{\n \"show-validation\": showValidation,\n }}\n ariaLiveMode={validationAriaLive}\n status={showValidation ? validationStatus : \"\"}\n message={showValidation ? validationText : \"\"}\n ></ic-input-validation>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icDataRowCss","IcDataRowStyle0","DataRow","constructor","hostRef","this","hasEndComponent","resizeObserver","deviceSize","DEVICE_SIZES","XL","size","theme","runResizeObserver","ResizeObserver","checkLabelAbove","observe","el","renderCellContent","cell","isValue","h","class","isSlotUsed","name","variant","listSize","value","label","disconnectedCallback","_a","disconnect","componentWillLoad","getCurrentDeviceSize","slotHasContent","componentDidLoad","checkResizeObserver","labelEndComponent","row","shadowRoot","querySelector","rowSize","clientWidth","S","M","querySelectorAll","forEach","child","setAttribute","render","Host","key","role"],"sources":["src/components/ic-data-row/ic-data-row.css?tag=ic-data-row&encapsulation=shadow","src/components/ic-data-row/ic-data-row.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n position: relative;\n display: block;\n}\n\n.data {\n display: flex;\n align-items: center;\n}\n\n.text-cells {\n display: flex;\n flex-grow: 1;\n min-width: 0;\n\n --ic-typography-color: var(--ic-data-list-text-cell);\n color: var(--ic-data-list-text-cell);\n}\n\n.label {\n width: var(--data-row-label-width, 12.5rem);\n min-width: 12.5rem;\n margin-right: var(--ic-space-md);\n\n --ic-typography-color: var(--ic-data-list-text-label);\n color: var(--ic-data-list-text-label);\n}\n\n.value {\n flex-grow: 1;\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[small][readonly][hide-label]) {\n margin-top: calc(var(--ic-space-xxs) * -1);\n}\n\nslot[name=\"value\"]::slotted(ic-text-field[readonly][hide-label][rows]) {\n margin-top: calc(var(--ic-space-xxs) * -1 - var(--ic-space-xxxs));\n}\n\n.end-component {\n width: fit-content;\n margin-left: 3.5rem;\n}\n\n.divider {\n margin-top: var(--ic-space-md);\n height: var(--ic-border-width);\n background-color: var(--ic-data-list-keyline-cell);\n}\n\n:host(.ic-data-row-small) .divider {\n margin-top: var(--ic-space-xs);\n}\n\n:host(.breakpoint-medium) .label {\n width: 10rem;\n min-width: 10rem;\n}\n\n:host(.breakpoint-xs) .text-cells {\n flex-direction: column;\n}\n\n:host(.breakpoint-xs) .label {\n width: 8rem;\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.breakpoint-xs) .value {\n max-width: 95%;\n}\n\n:host(.breakpoint-xs) .end-component {\n margin-left: 0;\n}\n\n@media (forced-colors: active) {\n .divider {\n background-color: canvastext;\n }\n}\n","import { Component, Element, Host, Prop, h, State } from \"@stencil/core\";\nimport {\n checkResizeObserver,\n DEVICE_SIZES,\n getCurrentDeviceSize,\n isSlotUsed,\n slotHasContent,\n} from \"../../utils/helpers\";\nimport { IcSizesNoLarge, IcThemeMode } from \"../../utils/types\";\n\n/**\n * @slot label - Content will be rendered in the leftmost cell.\n * @slot value - Content will be rendered to the right of the label.\n * @slot end-component - Content will be displayed in the rightmost cell.\n */\n@Component({\n tag: \"ic-data-row\",\n styleUrl: \"ic-data-row.css\",\n shadow: true,\n})\nexport class DataRow {\n private hasEndComponent: boolean = false;\n private resizeObserver: ResizeObserver | null = null;\n\n @Element() el: HTMLIcDataRowElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() listSize: \"xl\" | \"m\" | \"xs\";\n\n /**\n * The label in the leftmost cell of the row.\n */\n @Prop() label?: string;\n\n /**\n * The size of the data row component.\n */\n @Prop() size?: IcSizesNoLarge = \"medium\";\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n /**\n * The value of the middle (right if no end-component supplied) cell of the row.\n */\n @Prop() value?: string;\n\n disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): void {\n this.deviceSize = getCurrentDeviceSize();\n this.hasEndComponent = slotHasContent(this.el, \"end-component\");\n this.checkLabelAbove();\n }\n\n componentDidLoad(): void {\n checkResizeObserver(this.runResizeObserver);\n if (this.hasEndComponent) this.labelEndComponent();\n }\n\n private runResizeObserver = () => {\n this.resizeObserver = new ResizeObserver(() => {\n this.checkLabelAbove();\n });\n\n this.resizeObserver.observe(this.el);\n };\n\n private checkLabelAbove() {\n const row = this.el.shadowRoot?.querySelector(\".data\");\n if (row) {\n const rowSize = row?.clientWidth + 46;\n if (rowSize) {\n this.listSize =\n rowSize < DEVICE_SIZES.S\n ? \"xs\"\n : rowSize < DEVICE_SIZES.M\n ? \"m\"\n : \"xl\";\n }\n }\n }\n\n private renderCellContent = (cell: \"label\" | \"value\") => {\n const isValue = cell === \"value\";\n return (\n <div class={cell}>\n {isSlotUsed(this.el, cell) ? (\n <slot name={cell}></slot>\n ) : (\n <ic-typography\n variant={\n isValue\n ? \"body\"\n : this.listSize === \"xs\"\n ? \"label\"\n : \"subtitle-large\"\n }\n >\n {isValue ? this.value : this.label}\n </ic-typography>\n )}\n </div>\n );\n };\n\n private labelEndComponent(): void {\n this.el.shadowRoot\n ?.querySelectorAll(\"slot[name=end-component]\")\n .forEach((child) =>\n child.setAttribute(\"aria-label\", `for ${this.label} row`)\n );\n }\n\n render() {\n const {\n el,\n listSize,\n hasEndComponent,\n label,\n renderCellContent,\n size,\n theme,\n value,\n } = this;\n\n return (\n <Host\n class={{\n [\"ic-data-row-small\"]: size === \"small\",\n [\"breakpoint-medium\"]: listSize === \"m\",\n [\"breakpoint-xs\"]: listSize === \"xs\",\n [`ic-theme-${theme}`]: theme !== \"inherit\",\n }}\n role=\"listitem\"\n >\n <div class=\"data\">\n <div class=\"text-cells\">\n {(isSlotUsed(el, \"label\") || label) && renderCellContent(\"label\")}\n {(isSlotUsed(el, \"value\") || value) && renderCellContent(\"value\")}\n </div>\n {hasEndComponent && (\n <div class=\"end-component\">\n <slot name=\"end-component\"></slot>\n </div>\n )}\n </div>\n <div class=\"divider\" />\n </Host>\n );\n }\n}\n"],"mappings":"iJAAA,MAAMA,EAAe,ktHACrB,MAAAC,EAAeD,E,MCmBFE,EAAO,MALpB,WAAAC,CAAAC,G,UAMUC,KAAAC,gBAA2B,MAC3BD,KAAAE,eAAwC,KAIvCF,KAAAG,WAAqBC,EAAaC,GAWnCL,KAAAM,KAAwB,SAKxBN,KAAAO,MAAsB,UAsBtBP,KAAAQ,kBAAoB,KAC1BR,KAAKE,eAAiB,IAAIO,gBAAe,KACvCT,KAAKU,iBAAiB,IAGxBV,KAAKE,eAAeS,QAAQX,KAAKY,GAAG,EAkB9BZ,KAAAa,kBAAqBC,IAC3B,MAAMC,EAAUD,IAAS,QACzB,OACEE,EAAA,OAAKC,MAAOH,GACTI,EAAWlB,KAAKY,GAAIE,GACnBE,EAAA,QAAMG,KAAML,IAEZE,EAAA,iBACEI,QACEL,EACI,OACAf,KAAKqB,WAAa,KAClB,QACA,kBAGLN,EAAUf,KAAKsB,MAAQtB,KAAKuB,OAG7B,C,CAzDV,oBAAAC,G,OACEC,EAAAzB,KAAKE,kBAAc,MAAAuB,SAAA,SAAAA,EAAEC,Y,CAGvB,iBAAAC,GACE3B,KAAKG,WAAayB,IAClB5B,KAAKC,gBAAkB4B,EAAe7B,KAAKY,GAAI,iBAC/CZ,KAAKU,iB,CAGP,gBAAAoB,GACEC,EAAoB/B,KAAKQ,mBACzB,GAAIR,KAAKC,gBAAiBD,KAAKgC,mB,CAWzB,eAAAtB,G,MACN,MAAMuB,GAAMR,EAAAzB,KAAKY,GAAGsB,cAAU,MAAAT,SAAA,SAAAA,EAAEU,cAAc,SAC9C,GAAIF,EAAK,CACP,MAAMG,GAAUH,IAAG,MAAHA,SAAG,SAAHA,EAAKI,aAAc,GACnC,GAAID,EAAS,CACXpC,KAAKqB,SACHe,EAAUhC,EAAakC,EACnB,KACAF,EAAUhC,EAAamC,EACvB,IACA,I,GA4BJ,iBAAAP,G,OACNP,EAAAzB,KAAKY,GAAGsB,cAAU,MAAAT,SAAA,SAAAA,EACde,iBAAiB,4BAClBC,SAASC,GACRA,EAAMC,aAAa,aAAc,OAAO3C,KAAKuB,c,CAInD,MAAAqB,GACE,MAAMhC,GACJA,EAAES,SACFA,EAAQpB,gBACRA,EAAesB,MACfA,EAAKV,kBACLA,EAAiBP,KACjBA,EAAIC,MACJA,EAAKe,MACLA,GACEtB,KAEJ,OACEgB,EAAC6B,EAAI,CAAAC,IAAA,2CACH7B,MAAO,CACL,CAAC,qBAAsBX,IAAS,QAChC,CAAC,qBAAsBe,IAAa,IACpC,CAAC,iBAAkBA,IAAa,KAChC,CAAC,YAAYd,KAAUA,IAAU,WAEnCwC,KAAK,YAEL/B,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,QACTD,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,eACPC,EAAWN,EAAI,UAAYW,IAAUV,EAAkB,UACvDK,EAAWN,EAAI,UAAYU,IAAUT,EAAkB,UAE1DZ,GACCe,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,iBACTD,EAAA,QAAA8B,IAAA,2CAAM3B,KAAK,oBAIjBH,EAAA,OAAA8B,IAAA,2CAAK7B,MAAM,Y","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as a}from"./p-8e4e97b4.js";import{c as o}from"./p-f074ef5b.js";import{V as n}from"./p-bddf799a.js";import{i as r,o as c,N as d,e as l}from"./p-a5658054.js";const h='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){:host{animation:fadein var(--ic-transition-duration-slow) ease-in-out}:host(.hidden){animation:fadeout var(--ic-transition-duration-slow) ease-in-out}}:host{--bottom-position:var(--ic-space-xl);position:fixed;bottom:var(--bottom-position);left:50%;transform:translate(-50%);z-index:var(--ic-z-index-toast)}:host(.ic-toast-hidden){display:none}:host(:focus){outline:none}.container{max-width:32.5rem;min-width:18rem;box-shadow:var(--ic-elevation-overlay);min-height:3.5rem;background-color:var(--ic-toast-background);display:flex;align-items:center;position:relative;border-radius:var(--ic-border-radius)}.toast-icon-container{height:100%;display:flex;align-items:center}.divider{height:100%;width:var(--ic-space-xs);position:absolute;border-radius:var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs)}.divider-neutral{background-color:var(--ic-toast-status-neutral)}.divider-info{background-color:var(--ic-toast-status-info)}.divider-warning{background-color:var(--ic-toast-status-warning)}.divider-error{background-color:var(--ic-toast-status-error)}.divider-success{background-color:var(--ic-toast-status-success)}.divider-ai{background-color:var(--ic-toast-status-ai)}.toast-icon,::slotted(svg){height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-md)}:host(.ic-toast-variant-neutral) .toast-icon svg,::slotted(svg){fill:var(--ic-toast-icon-neutral)}:host(.ic-toast-variant-info) .toast-icon svg{fill:var(--ic-toast-icon-info)}:host(.ic-toast-variant-warning) .toast-icon svg{fill:var(--ic-toast-icon-warning)}:host(.ic-toast-variant-error) .toast-icon svg{fill:var(--ic-toast-icon-error)}:host(.ic-toast-variant-success) .toast-icon svg{fill:var(--ic-toast-icon-success)}:host(.ic-toast-variant-ai) .toast-icon svg{fill:var(--ic-toast-icon-ai)}.toast-content{margin-left:var(--ic-space-xs);width:100%}.no-icon{margin-left:var(--ic-space-md)}.toast-text{padding:var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0}.toast-heading{--ic-typography-color:var(--ic-toast-title)}.toast-message{--ic-typography-color:var(--ic-toast-description)}.toast-action-container{padding-bottom:var(--ic-space-md)}#dismiss-button{padding:var(--ic-space-xs)}#dismiss-button>svg{color:var(--ic-toast-dismiss-button)}ic-loading-indicator{--outer-color:transparent;--inner-color:var(--ic-action-monochrome)}.toast-dismiss-timer{padding:var(--ic-space-sm)}@media (max-width: 576px){:host{--bottom-position:var(--ic-space-lg);width:calc(100% - 2 * var(--ic-space-md))}}@media (min-width: 993px){:host{--bottom-position:calc(var(--ic-space-xl) + var(--ic-space-xs))}}@media (forced-colors: active){.container{border:var(--ic-border-hc)}}@keyframes fadein{from{bottom:0;opacity:0}to{bottom:var(--bottom-position);opacity:1}}@keyframes fadeout{from{bottom:var(--bottom-position);opacity:1}to{bottom:0;opacity:0}}';const m=h;const b=1e3;const u=70;const p=140;const f=class{constructor(e){t(this,e);this.icDismiss=i(this,"icDismiss",7);this.interactiveElements=[];this.timerProgress=100;this.visible=false;this.autoDismissTimeout=5e3;this.dismissButtonAriaLabel="dismiss";this.dismissMode="manual";this.dismissAction=()=>{this.icDismiss.emit()};this.handleProgressChange=()=>{this.timerProgress-=b/this.autoDismissTimeout*100};this.onFocus=()=>{if(this.focusInteractiveElement){this.isManual=true}};this.onBlur=()=>{this.handleTimer({type:"mouseleave"})}}dismissModeChangeHandler(t){this.isManual=t==="manual"}disconnectedCallback(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval)}componentWillLoad(){var t,i;this.handleLongText(this.heading.length>u,!!this.message&&((t=this.message)===null||t===void 0?void 0:t.length)>p);if(this.autoDismissTimeout<5e3)this.autoDismissTimeout=5e3;if(r(this.el,"action"))this.dismissMode="manual";this.isManual=this.dismissMode==="manual";if(r(this.el,"neutral-icon"))this.variant="neutral";if(this.variant==="neutral"){this.neutralVariantLabel=(i=this.neutralIconAriaLabel)!==null&&i!==void 0?i:n[this.variant].ariaLabel}if(this.isManual){const t=l(this.message)?`. ${this.message}`:"";this.el.setAttribute("aria-label",this.variant?this.neutralVariantLabel||n[this.variant].ariaLabel:this.heading);(this.variant||this.message)&&this.el.setAttribute("aria-description",this.variant?`${this.heading}${t}`:this.message||"")}}componentDidLoad(){c([{prop:this.heading,propName:"heading"}],"Toast")}componentDidUpdate(){var t;if(this.focusInteractiveElement&&this.isManual){this.resetAutoDismissTimer();const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e);this.focusInteractiveElement=false;this.findNextInteractiveElement(this.shiftKeyPressed).setFocus();this.shiftKeyPressed=false}}watchVisibleHandler(){var t;if(this.visible){const i=d(this.el,"action");const e=(t=this.el.shadowRoot)===null||t===void 0?void 0:t.querySelector("ic-button");if(i)this.interactiveElements.push(i);if(e)this.interactiveElements.push(e)}else{this.interactiveElements=[]}}handleDismiss(){this.visible=false;this.resetAutoDismissTimer()}handleKeyboard(t){if(this.visible){if(this.isManual){switch(t.key){case"Tab":t.preventDefault();this.findNextInteractiveElement(t.shiftKey).setFocus();break;case"Escape":!t.repeat&&this.dismissAction();t.stopImmediatePropagation();break}}else{if(t.key==="Tab"){this.shiftKeyPressed=t.shiftKey;this.focusInteractiveElement=true}}}}handleTimer(t){switch(t.type){case"mouseenter":if(!this.isManual){this.resetAutoDismissTimer()}this.isManual=true;break;case"mouseleave":if(this.dismissMode==="automatic"){this.isManual=false;this.interactiveElements=[];if(this.visible){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,b)}}break}}async setVisible(){if(!this.visible)this.visible=true;if(!this.isManual){this.dismissTimeout=window.setTimeout(this.dismissAction,this.autoDismissTimeout);this.timerRefreshInterval=window.setInterval(this.handleProgressChange,b);return null}else{window.setTimeout((()=>this.interactiveElements[0].setFocus()),200);return document.activeElement}}handleLongText(t,i){if(i||t){console.error(`Too many characters in toast ${t?"heading":""}${t&&i?" and ":""}${i?"message":""}. Refer to character limits specified in the prop description`)}}findNextInteractiveElement(t){const i=this.interactiveElements[0];const e=this.interactiveElements[this.interactiveElements.length-1];if(this.isActive(t?i:e))return t?e:i;let s=0;return this.interactiveElements.some(((t,i)=>{if(!this.isActive(t))return false;s=i;return true}))?this.interactiveElements[s+(t?-1:1)]:i}resetAutoDismissTimer(){window.clearTimeout(this.dismissTimeout);window.clearInterval(this.timerRefreshInterval);this.timerProgress=100}isActive(t){return t===this.el?!!this.el.shadowRoot.activeElement:document.activeElement===t}render(){const{variant:t,heading:i,message:a,visible:c,isManual:d,dismissButtonAriaLabel:l}=this;return e(s,{key:"a51a1fe38c35d1efaca12289056be07a2d1e7c40",class:{["ic-toast-hidden"]:!c,[`ic-toast-variant-${t}`]:t!==undefined},tabindex:"0",onFocus:this.onFocus,onBlur:this.onBlur,role:d?"dialog":"alert","aria-live":d?null:"polite"},e("div",{key:"093ae6a039e15465dfe4cee082e5aaaccd3267a4",class:"container"},t&&c&&e("div",{key:"efdcb6cd889c29df5e232fbb864b03185e57909b",class:"toast-icon-container"},e("div",{key:"01f195c61c7744d2aec5550efe2510b25f0f1617",class:{["divider"]:true,[`divider-${t}`]:true}}),t==="neutral"?e("slot",{name:"neutral-icon"}):e("span",{class:"toast-icon",innerHTML:n[t].icon})),e("div",{key:"37b6615f1be94c52612cd89440c8d3421aee069d",class:{["toast-content"]:true,["no-icon"]:t==="neutral"&&!r(this.el,"neutral-icon")}},e("div",{key:"6f29a977edc1c6b54d1353612dad9479c04522d7",class:"toast-text"},e("ic-typography",{key:"4fc96f88f2252000e6e96c01ba196dd78f76fca0",variant:"subtitle-large",class:"toast-heading"},c&&(d?e("h5",null,i):e("p",null,i))),a&&e("ic-typography",{key:"f8ac42f9700589313920b13b52ecb381a8b35fb7",variant:"body",class:"toast-message"},c&&e("p",{key:"262ece25eb68c773454cdbfcf8696f16d6edc82d"},a))),r(this.el,"action")&&e("div",{key:"273984b9f960cd33b4437271b9fc19b12137b972",class:"toast-action-container"},e("slot",{key:"128157fb5a7ff7b8fb979648bba140aa712d4409",name:"action"}))),!d?e("ic-loading-indicator",{class:"toast-dismiss-timer",theme:"dark",monochrome:true,size:"icon",progress:this.timerProgress,description:"Dismiss timer"}):e("ic-button",{id:"dismiss-button",innerHTML:o,onClick:this.dismissAction,variant:"icon-tertiary","aria-label":l})))}get el(){return a(this)}static get watchers(){return{dismissMode:["dismissModeChangeHandler"],visible:["watchVisibleHandler"]}}};f.style=m;export{f as ic_toast};
2
- //# sourceMappingURL=p-d20a61a7.entry.js.map