@ukic/web-components 3.3.0 → 3.4.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 (437) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/ic-accordion.cjs.entry.js +9 -7
  3. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  4. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  6. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-button_3.cjs.entry.js +8 -8
  9. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-card-vertical.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-checkbox.cjs.entry.js +7 -12
  14. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  15. package/dist/cjs/ic-data-list.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  18. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-hero.cjs.entry.js +6 -5
  21. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +5 -5
  23. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +22 -21
  24. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-input-label_2.cjs.entry.js +7 -7
  26. package/dist/cjs/ic-link.cjs.entry.js +11 -21
  27. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  29. package/dist/cjs/ic-navigation-group.cjs.entry.js +115 -163
  30. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-navigation-item.cjs.entry.js +64 -61
  32. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-navigation-menu.cjs.entry.js +4 -4
  34. package/dist/cjs/ic-page-header.cjs.entry.js +6 -6
  35. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-pagination.cjs.entry.js +4 -4
  37. package/dist/cjs/ic-popover-menu.cjs.entry.js +5 -5
  38. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-radio-group.cjs.entry.js +4 -4
  40. package/dist/cjs/ic-radio-option.cjs.entry.js +4 -4
  41. package/dist/cjs/ic-search-bar.cjs.entry.js +49 -31
  42. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-section-container.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-select.cjs.entry.js +141 -217
  45. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-side-navigation.cjs.entry.js +23 -4
  47. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-skeleton.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-skip-link.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  51. package/dist/cjs/ic-step.cjs.entry.js +13 -13
  52. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-switch.cjs.entry.js +4 -4
  54. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  55. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  56. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-text-field.cjs.entry.js +15 -10
  58. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  62. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +53 -67
  63. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-toggle-button.cjs.entry.js +61 -63
  65. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-top-navigation.cjs.entry.js +64 -62
  67. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  69. package/dist/cjs/loader.cjs.js +1 -1
  70. package/dist/collection/components/ic-accordion/ic-accordion.js +9 -7
  71. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  72. package/dist/collection/components/ic-accordion/ic-accordion.stories.js +1 -1
  73. package/dist/collection/components/ic-alert/ic-alert.css +4 -0
  74. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js +2 -2
  75. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +2 -2
  76. package/dist/collection/components/ic-button/ic-button.css +0 -8
  77. package/dist/collection/components/ic-button/ic-button.js +2 -2
  78. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  79. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +3 -0
  80. package/dist/collection/components/ic-checkbox/ic-checkbox.css +9 -1
  81. package/dist/collection/components/ic-checkbox/ic-checkbox.js +6 -11
  82. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  83. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +2 -2
  84. package/dist/collection/components/ic-data-list/ic-data-list.js +2 -2
  85. package/dist/collection/components/ic-data-row/ic-data-row.js +2 -2
  86. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  87. package/dist/collection/components/ic-empty-state/ic-empty-state.js +2 -2
  88. package/dist/collection/components/ic-footer-link/ic-footer-link.js +2 -2
  89. package/dist/collection/components/ic-hero/ic-hero.css +13 -4
  90. package/dist/collection/components/ic-hero/ic-hero.js +5 -4
  91. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  92. package/dist/collection/components/ic-hero/ic-hero.stories.js +1 -0
  93. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +5 -5
  94. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +3 -3
  95. package/dist/collection/components/ic-input-container/ic-input-container.js +2 -2
  96. package/dist/collection/components/ic-input-label/ic-input-label.js +4 -4
  97. package/dist/collection/components/ic-input-validation/ic-input-validation.js +3 -3
  98. package/dist/collection/components/ic-link/ic-link.js +12 -25
  99. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  100. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js +3 -3
  101. package/dist/collection/components/ic-menu/ic-menu.js +41 -40
  102. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  103. package/dist/collection/components/ic-menu-group/ic-menu-group.js +1 -1
  104. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +119 -167
  105. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  106. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +7 -13
  107. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +80 -74
  108. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  109. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +4 -4
  110. package/dist/collection/components/ic-page-header/ic-page-header.js +6 -6
  111. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -4
  112. package/dist/collection/components/ic-pagination-item/ic-pagination-item.js +1 -1
  113. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +3 -0
  114. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +4 -4
  115. package/dist/collection/components/ic-radio-group/ic-radio-group.js +4 -4
  116. package/dist/collection/components/ic-radio-option/ic-radio-option.js +4 -4
  117. package/dist/collection/components/ic-search-bar/ic-search-bar.js +52 -32
  118. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  119. package/dist/collection/components/ic-search-bar/ic-search-bar.stories.js +9 -8
  120. package/dist/collection/components/ic-section-container/ic-section-container.js +2 -2
  121. package/dist/collection/components/ic-select/ic-select.js +196 -271
  122. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  123. package/dist/collection/components/ic-select/ic-select_(single).stories.js +30 -21
  124. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +43 -4
  125. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  126. package/dist/collection/components/ic-side-navigation/ic-side-navigation.stories.js +247 -0
  127. package/dist/collection/components/ic-skeleton/ic-skeleton.js +2 -2
  128. package/dist/collection/components/ic-skip-link/ic-skip-link.js +2 -2
  129. package/dist/collection/components/ic-status-tag/ic-status-tag.js +2 -2
  130. package/dist/collection/components/ic-step/ic-step.js +13 -13
  131. package/dist/collection/components/ic-stepper/ic-stepper.js +2 -2
  132. package/dist/collection/components/ic-switch/ic-switch.js +4 -4
  133. package/dist/collection/components/ic-tab-context/ic-tab-context.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 +20 -14
  137. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  138. package/dist/collection/components/ic-theme/ic-theme.js +1 -1
  139. package/dist/collection/components/ic-toast/ic-toast.js +3 -3
  140. package/dist/collection/components/ic-toast-region/ic-toast-region.js +1 -1
  141. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +40 -7
  142. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +80 -82
  143. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  144. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +79 -88
  145. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  146. package/dist/collection/components/ic-tooltip/ic-tooltip.js +2 -2
  147. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +81 -79
  148. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  149. package/dist/collection/components/ic-typography/ic-typography.js +2 -2
  150. package/dist/components/ic-accordion.js +9 -7
  151. package/dist/components/ic-accordion.js.map +1 -1
  152. package/dist/components/ic-alert.js +1 -1
  153. package/dist/components/ic-alert.js.map +1 -1
  154. package/dist/components/ic-breadcrumb-group.js +2 -2
  155. package/dist/components/ic-breadcrumb2.js +2 -2
  156. package/dist/components/ic-button2.js +3 -3
  157. package/dist/components/ic-button2.js.map +1 -1
  158. package/dist/components/ic-card-vertical.js +1 -1
  159. package/dist/components/ic-card-vertical.js.map +1 -1
  160. package/dist/components/ic-checkbox-group.js +2 -2
  161. package/dist/components/ic-checkbox.js +7 -12
  162. package/dist/components/ic-checkbox.js.map +1 -1
  163. package/dist/components/ic-data-list.js +2 -2
  164. package/dist/components/ic-data-row.js +2 -2
  165. package/dist/components/ic-dialog.js +1 -1
  166. package/dist/components/ic-empty-state.js +2 -2
  167. package/dist/components/ic-footer-link.js +2 -2
  168. package/dist/components/ic-hero.js +6 -5
  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 +3 -3
  172. package/dist/components/ic-input-container2.js +2 -2
  173. package/dist/components/ic-input-label2.js +4 -4
  174. package/dist/components/ic-input-validation2.js +3 -3
  175. package/dist/components/ic-link2.js +12 -24
  176. package/dist/components/ic-link2.js.map +1 -1
  177. package/dist/components/ic-loading-indicator2.js +3 -3
  178. package/dist/components/ic-menu-group.js +1 -1
  179. package/dist/components/ic-menu2.js +17 -16
  180. package/dist/components/ic-menu2.js.map +1 -1
  181. package/dist/components/ic-navigation-group.js +115 -163
  182. package/dist/components/ic-navigation-group.js.map +1 -1
  183. package/dist/components/ic-navigation-item.js +67 -62
  184. package/dist/components/ic-navigation-item.js.map +1 -1
  185. package/dist/components/ic-navigation-menu2.js +4 -4
  186. package/dist/components/ic-page-header.js +6 -6
  187. package/dist/components/ic-pagination-item2.js +1 -1
  188. package/dist/components/ic-pagination.js +4 -4
  189. package/dist/components/ic-popover-menu.js +5 -5
  190. package/dist/components/ic-popover-menu.js.map +1 -1
  191. package/dist/components/ic-radio-group.js +4 -4
  192. package/dist/components/ic-radio-group.js.map +1 -1
  193. package/dist/components/ic-radio-option.js +4 -4
  194. package/dist/components/ic-search-bar.js +50 -31
  195. package/dist/components/ic-search-bar.js.map +1 -1
  196. package/dist/components/ic-section-container2.js +2 -2
  197. package/dist/components/ic-select.js +141 -217
  198. package/dist/components/ic-select.js.map +1 -1
  199. package/dist/components/ic-side-navigation.js +24 -4
  200. package/dist/components/ic-side-navigation.js.map +1 -1
  201. package/dist/components/ic-skeleton.js +2 -2
  202. package/dist/components/ic-skip-link.js +2 -2
  203. package/dist/components/ic-status-tag.js +2 -2
  204. package/dist/components/ic-step.js +13 -13
  205. package/dist/components/ic-stepper.js +2 -2
  206. package/dist/components/ic-switch.js +4 -4
  207. package/dist/components/ic-tab-context.js +1 -1
  208. package/dist/components/ic-tab-group.js +2 -2
  209. package/dist/components/ic-tab-panel.js +2 -2
  210. package/dist/components/ic-text-field.js +16 -10
  211. package/dist/components/ic-text-field.js.map +1 -1
  212. package/dist/components/ic-theme.js +1 -1
  213. package/dist/components/ic-toast-region.js +1 -1
  214. package/dist/components/ic-toast.js +3 -3
  215. package/dist/components/ic-toggle-button-group.js +53 -67
  216. package/dist/components/ic-toggle-button-group.js.map +1 -1
  217. package/dist/components/ic-toggle-button.js +61 -63
  218. package/dist/components/ic-toggle-button.js.map +1 -1
  219. package/dist/components/ic-tooltip2.js +2 -2
  220. package/dist/components/ic-top-navigation.js +65 -63
  221. package/dist/components/ic-top-navigation.js.map +1 -1
  222. package/dist/components/ic-typography2.js +2 -2
  223. package/dist/core/core.esm.js +1 -1
  224. package/dist/core/core.esm.js.map +1 -1
  225. package/dist/core/p-0fb68b4f.entry.js +2 -0
  226. package/dist/core/p-0fb68b4f.entry.js.map +1 -0
  227. package/dist/core/{p-a0161990.entry.js → p-1d172032.entry.js} +2 -2
  228. package/dist/core/{p-f0388d68.entry.js → p-1d254b71.entry.js} +2 -2
  229. package/dist/core/p-1d254b71.entry.js.map +1 -0
  230. package/dist/core/{p-83764268.entry.js → p-23536595.entry.js} +2 -2
  231. package/dist/core/{p-ba600947.entry.js → p-3676ac4e.entry.js} +2 -2
  232. package/dist/core/{p-bc2ca778.entry.js → p-3cb4ecef.entry.js} +2 -2
  233. package/dist/core/{p-18714198.entry.js → p-432aeae0.entry.js} +2 -2
  234. package/dist/core/{p-2c17cc67.entry.js → p-4a2acb2e.entry.js} +2 -2
  235. package/dist/core/{p-c9a4fe37.entry.js → p-4dc97b03.entry.js} +2 -2
  236. package/dist/core/p-4dc97b03.entry.js.map +1 -0
  237. package/dist/core/{p-cdf56a5d.entry.js → p-4e48a671.entry.js} +2 -2
  238. package/dist/core/p-4e48a671.entry.js.map +1 -0
  239. package/dist/core/{p-1440847f.entry.js → p-51b49429.entry.js} +2 -2
  240. package/dist/core/p-554845c4.entry.js +2 -0
  241. package/dist/core/p-554845c4.entry.js.map +1 -0
  242. package/dist/core/{p-9479f272.entry.js → p-56e0de32.entry.js} +2 -2
  243. package/dist/core/{p-ebab7a9e.entry.js → p-56fb0298.entry.js} +2 -2
  244. package/dist/core/p-59b48450.entry.js +2 -0
  245. package/dist/core/p-59b48450.entry.js.map +1 -0
  246. package/dist/core/{p-10e1e227.entry.js → p-5aec3757.entry.js} +2 -2
  247. package/dist/core/{p-d45d66c0.entry.js → p-5eb2ac90.entry.js} +2 -2
  248. package/dist/core/{p-a4f9b5bf.entry.js → p-60aad45d.entry.js} +2 -2
  249. package/dist/core/p-6cd0b010.entry.js +2 -0
  250. package/dist/core/p-6cd0b010.entry.js.map +1 -0
  251. package/dist/core/{p-788c96ac.entry.js → p-6eea869b.entry.js} +2 -2
  252. package/dist/core/{p-70a6cff1.entry.js → p-7d2c07e2.entry.js} +2 -2
  253. package/dist/core/p-7d352865.entry.js +2 -0
  254. package/dist/core/p-7d352865.entry.js.map +1 -0
  255. package/dist/core/{p-b371a498.entry.js → p-7deaf128.entry.js} +2 -2
  256. package/dist/core/p-803f2eb8.entry.js +2 -0
  257. package/dist/core/p-803f2eb8.entry.js.map +1 -0
  258. package/dist/core/{p-16f55230.entry.js → p-87fa5add.entry.js} +2 -2
  259. package/dist/core/p-87fa5add.entry.js.map +1 -0
  260. package/dist/core/{p-b8da5c07.entry.js → p-887e00bb.entry.js} +2 -2
  261. package/dist/core/p-8958c60f.entry.js +2 -0
  262. package/dist/core/p-8958c60f.entry.js.map +1 -0
  263. package/dist/core/{p-1838d1e9.entry.js → p-8c77dd65.entry.js} +2 -2
  264. package/dist/core/{p-fbf57f0a.entry.js → p-9a6dc8b1.entry.js} +2 -2
  265. package/dist/core/p-9a6dc8b1.entry.js.map +1 -0
  266. package/dist/core/p-a140bcaa.entry.js +2 -0
  267. package/dist/core/p-aad2abbf.entry.js +2 -0
  268. package/dist/core/p-aad2abbf.entry.js.map +1 -0
  269. package/dist/core/p-bdcc79dd.entry.js +2 -0
  270. package/dist/core/p-bdcc79dd.entry.js.map +1 -0
  271. package/dist/core/{p-b9459ba2.entry.js → p-bf3b853e.entry.js} +2 -2
  272. package/dist/core/{p-9cfc2bac.entry.js → p-c59fd23e.entry.js} +2 -2
  273. package/dist/core/{p-72c117b6.entry.js → p-c5ffe2cf.entry.js} +2 -2
  274. package/dist/core/{p-c4663e1a.entry.js → p-cfa9ed7d.entry.js} +2 -2
  275. package/dist/core/{p-df88ff5b.entry.js → p-d4903dcd.entry.js} +2 -2
  276. package/dist/core/{p-8c4f7c63.entry.js → p-d82b27df.entry.js} +2 -2
  277. package/dist/core/{p-bdc72446.entry.js → p-d8ce39ac.entry.js} +2 -2
  278. package/dist/core/{p-42a7d0b6.entry.js → p-dcce0dfd.entry.js} +2 -2
  279. package/dist/core/{p-9ca147f3.entry.js → p-de1e04ac.entry.js} +2 -2
  280. package/dist/core/{p-8b5022bc.entry.js → p-dee21f6d.entry.js} +2 -2
  281. package/dist/core/{p-00bc353b.entry.js → p-dfc8cba6.entry.js} +2 -2
  282. package/dist/core/{p-1be17f22.entry.js → p-e2629bfe.entry.js} +2 -2
  283. package/dist/core/{p-1b2690b4.entry.js → p-e38fddbb.entry.js} +2 -2
  284. package/dist/core/p-e38fddbb.entry.js.map +1 -0
  285. package/dist/core/p-eca6e215.entry.js +2 -0
  286. package/dist/core/p-eca6e215.entry.js.map +1 -0
  287. package/dist/core/{p-0a436c47.entry.js → p-ef4b752c.entry.js} +2 -2
  288. package/dist/core/p-ef4b752c.entry.js.map +1 -0
  289. package/dist/core/{p-267a19d4.entry.js → p-fa38ad2e.entry.js} +2 -2
  290. package/dist/core/p-fc4f7180.entry.js +2 -0
  291. package/dist/core/p-fc4f7180.entry.js.map +1 -0
  292. package/dist/esm/core.js +1 -1
  293. package/dist/esm/ic-accordion.entry.js +9 -7
  294. package/dist/esm/ic-accordion.entry.js.map +1 -1
  295. package/dist/esm/ic-alert.entry.js +1 -1
  296. package/dist/esm/ic-alert.entry.js.map +1 -1
  297. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  298. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  299. package/dist/esm/ic-button_3.entry.js +8 -8
  300. package/dist/esm/ic-button_3.entry.js.map +1 -1
  301. package/dist/esm/ic-card-vertical.entry.js +1 -1
  302. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  303. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  304. package/dist/esm/ic-checkbox.entry.js +7 -12
  305. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  306. package/dist/esm/ic-data-list.entry.js +2 -2
  307. package/dist/esm/ic-data-row.entry.js +2 -2
  308. package/dist/esm/ic-dialog.entry.js +1 -1
  309. package/dist/esm/ic-empty-state.entry.js +2 -2
  310. package/dist/esm/ic-footer-link.entry.js +2 -2
  311. package/dist/esm/ic-hero.entry.js +6 -5
  312. package/dist/esm/ic-hero.entry.js.map +1 -1
  313. package/dist/esm/ic-horizontal-scroll.entry.js +5 -5
  314. package/dist/esm/ic-input-component-container_3.entry.js +22 -21
  315. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  316. package/dist/esm/ic-input-label_2.entry.js +7 -7
  317. package/dist/esm/ic-link.entry.js +11 -21
  318. package/dist/esm/ic-link.entry.js.map +1 -1
  319. package/dist/esm/ic-menu-group.entry.js +1 -1
  320. package/dist/esm/ic-navigation-group.entry.js +115 -163
  321. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  322. package/dist/esm/ic-navigation-item.entry.js +64 -61
  323. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  324. package/dist/esm/ic-navigation-menu.entry.js +4 -4
  325. package/dist/esm/ic-page-header.entry.js +6 -6
  326. package/dist/esm/ic-pagination-item.entry.js +1 -1
  327. package/dist/esm/ic-pagination.entry.js +4 -4
  328. package/dist/esm/ic-popover-menu.entry.js +5 -5
  329. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  330. package/dist/esm/ic-radio-group.entry.js +4 -4
  331. package/dist/esm/ic-radio-option.entry.js +4 -4
  332. package/dist/esm/ic-search-bar.entry.js +49 -31
  333. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  334. package/dist/esm/ic-section-container.entry.js +2 -2
  335. package/dist/esm/ic-select.entry.js +142 -218
  336. package/dist/esm/ic-select.entry.js.map +1 -1
  337. package/dist/esm/ic-side-navigation.entry.js +23 -4
  338. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  339. package/dist/esm/ic-skeleton.entry.js +2 -2
  340. package/dist/esm/ic-skip-link.entry.js +2 -2
  341. package/dist/esm/ic-status-tag.entry.js +2 -2
  342. package/dist/esm/ic-step.entry.js +13 -13
  343. package/dist/esm/ic-stepper.entry.js +2 -2
  344. package/dist/esm/ic-switch.entry.js +4 -4
  345. package/dist/esm/ic-tab-context.entry.js +1 -1
  346. package/dist/esm/ic-tab-group.entry.js +2 -2
  347. package/dist/esm/ic-tab-panel.entry.js +2 -2
  348. package/dist/esm/ic-text-field.entry.js +15 -10
  349. package/dist/esm/ic-text-field.entry.js.map +1 -1
  350. package/dist/esm/ic-theme.entry.js +1 -1
  351. package/dist/esm/ic-toast-region.entry.js +1 -1
  352. package/dist/esm/ic-toast.entry.js +3 -3
  353. package/dist/esm/ic-toggle-button-group.entry.js +53 -67
  354. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  355. package/dist/esm/ic-toggle-button.entry.js +61 -63
  356. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  357. package/dist/esm/ic-top-navigation.entry.js +65 -63
  358. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  359. package/dist/esm/ic-typography.entry.js +2 -2
  360. package/dist/esm/loader.js +1 -1
  361. package/dist/types/components/ic-link/ic-link.d.ts +2 -3
  362. package/dist/types/components/ic-menu/ic-menu.d.ts +12 -12
  363. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -18
  364. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +9 -7
  365. package/dist/types/components/ic-search-bar/ic-search-bar.d.ts +2 -0
  366. package/dist/types/components/ic-select/ic-select.d.ts +36 -38
  367. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  368. package/dist/types/components/ic-text-field/ic-text-field.d.ts +3 -2
  369. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +10 -11
  370. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +10 -12
  371. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +9 -8
  372. package/dist/types/components.d.ts +89 -81
  373. package/hydrate/index.js +748 -850
  374. package/hydrate/index.mjs +748 -850
  375. package/package.json +2 -2
  376. package/vscode-data.json +8 -4
  377. package/dist/core/p-0a436c47.entry.js.map +0 -1
  378. package/dist/core/p-16f55230.entry.js.map +0 -1
  379. package/dist/core/p-1b2690b4.entry.js.map +0 -1
  380. package/dist/core/p-206c2a26.entry.js +0 -2
  381. package/dist/core/p-206c2a26.entry.js.map +0 -1
  382. package/dist/core/p-2e44cf53.entry.js +0 -2
  383. package/dist/core/p-2e44cf53.entry.js.map +0 -1
  384. package/dist/core/p-730d2f6e.entry.js +0 -2
  385. package/dist/core/p-730d2f6e.entry.js.map +0 -1
  386. package/dist/core/p-7fb79e87.entry.js +0 -2
  387. package/dist/core/p-7fb79e87.entry.js.map +0 -1
  388. package/dist/core/p-910f5f14.entry.js +0 -2
  389. package/dist/core/p-910f5f14.entry.js.map +0 -1
  390. package/dist/core/p-b7568944.entry.js +0 -2
  391. package/dist/core/p-b7568944.entry.js.map +0 -1
  392. package/dist/core/p-c45023b7.entry.js +0 -2
  393. package/dist/core/p-c45023b7.entry.js.map +0 -1
  394. package/dist/core/p-c9a4fe37.entry.js.map +0 -1
  395. package/dist/core/p-cdf56a5d.entry.js.map +0 -1
  396. package/dist/core/p-d6c50565.entry.js +0 -2
  397. package/dist/core/p-d6c50565.entry.js.map +0 -1
  398. package/dist/core/p-d975bf2f.entry.js +0 -2
  399. package/dist/core/p-d975bf2f.entry.js.map +0 -1
  400. package/dist/core/p-dede4974.entry.js +0 -2
  401. package/dist/core/p-dede4974.entry.js.map +0 -1
  402. package/dist/core/p-e86a6d2d.entry.js +0 -2
  403. package/dist/core/p-eeab3a2e.entry.js +0 -2
  404. package/dist/core/p-eeab3a2e.entry.js.map +0 -1
  405. package/dist/core/p-f0388d68.entry.js.map +0 -1
  406. package/dist/core/p-fbf57f0a.entry.js.map +0 -1
  407. /package/dist/core/{p-a0161990.entry.js.map → p-1d172032.entry.js.map} +0 -0
  408. /package/dist/core/{p-83764268.entry.js.map → p-23536595.entry.js.map} +0 -0
  409. /package/dist/core/{p-ba600947.entry.js.map → p-3676ac4e.entry.js.map} +0 -0
  410. /package/dist/core/{p-bc2ca778.entry.js.map → p-3cb4ecef.entry.js.map} +0 -0
  411. /package/dist/core/{p-18714198.entry.js.map → p-432aeae0.entry.js.map} +0 -0
  412. /package/dist/core/{p-2c17cc67.entry.js.map → p-4a2acb2e.entry.js.map} +0 -0
  413. /package/dist/core/{p-1440847f.entry.js.map → p-51b49429.entry.js.map} +0 -0
  414. /package/dist/core/{p-9479f272.entry.js.map → p-56e0de32.entry.js.map} +0 -0
  415. /package/dist/core/{p-ebab7a9e.entry.js.map → p-56fb0298.entry.js.map} +0 -0
  416. /package/dist/core/{p-10e1e227.entry.js.map → p-5aec3757.entry.js.map} +0 -0
  417. /package/dist/core/{p-d45d66c0.entry.js.map → p-5eb2ac90.entry.js.map} +0 -0
  418. /package/dist/core/{p-a4f9b5bf.entry.js.map → p-60aad45d.entry.js.map} +0 -0
  419. /package/dist/core/{p-788c96ac.entry.js.map → p-6eea869b.entry.js.map} +0 -0
  420. /package/dist/core/{p-70a6cff1.entry.js.map → p-7d2c07e2.entry.js.map} +0 -0
  421. /package/dist/core/{p-b371a498.entry.js.map → p-7deaf128.entry.js.map} +0 -0
  422. /package/dist/core/{p-b8da5c07.entry.js.map → p-887e00bb.entry.js.map} +0 -0
  423. /package/dist/core/{p-1838d1e9.entry.js.map → p-8c77dd65.entry.js.map} +0 -0
  424. /package/dist/core/{p-e86a6d2d.entry.js.map → p-a140bcaa.entry.js.map} +0 -0
  425. /package/dist/core/{p-b9459ba2.entry.js.map → p-bf3b853e.entry.js.map} +0 -0
  426. /package/dist/core/{p-9cfc2bac.entry.js.map → p-c59fd23e.entry.js.map} +0 -0
  427. /package/dist/core/{p-72c117b6.entry.js.map → p-c5ffe2cf.entry.js.map} +0 -0
  428. /package/dist/core/{p-c4663e1a.entry.js.map → p-cfa9ed7d.entry.js.map} +0 -0
  429. /package/dist/core/{p-df88ff5b.entry.js.map → p-d4903dcd.entry.js.map} +0 -0
  430. /package/dist/core/{p-8c4f7c63.entry.js.map → p-d82b27df.entry.js.map} +0 -0
  431. /package/dist/core/{p-bdc72446.entry.js.map → p-d8ce39ac.entry.js.map} +0 -0
  432. /package/dist/core/{p-42a7d0b6.entry.js.map → p-dcce0dfd.entry.js.map} +0 -0
  433. /package/dist/core/{p-9ca147f3.entry.js.map → p-de1e04ac.entry.js.map} +0 -0
  434. /package/dist/core/{p-8b5022bc.entry.js.map → p-dee21f6d.entry.js.map} +0 -0
  435. /package/dist/core/{p-00bc353b.entry.js.map → p-dfc8cba6.entry.js.map} +0 -0
  436. /package/dist/core/{p-1be17f22.entry.js.map → p-e2629bfe.entry.js.map} +0 -0
  437. /package/dist/core/{p-267a19d4.entry.js.map → p-fa38ad2e.entry.js.map} +0 -0
@@ -222,16 +222,16 @@ export class RadioGroup {
222
222
  }
223
223
  render() {
224
224
  const { currentOrientation, disabled, handleKeyDown, helperText, hideLabel, label, required, size, validationStatus, validationText, theme, } = this;
225
- return (h(Host, { key: '42dc675c60f45659472c07052a2ed88f08710c31', onKeyDown: handleKeyDown, class: {
225
+ return (h(Host, { key: '820e82c681a22e98737769e9571cbe75d2223956', onKeyDown: handleKeyDown, class: {
226
226
  "ic-radio-group-small": size === "small",
227
227
  [`ic-theme-${theme}`]: theme !== "inherit",
228
- } }, h("div", { key: '6fc67dbbdbaebd8fa8956defa727d0552a2dc4de', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: '463018c9c855d118d77d59c150c75ae76ec95491', class: {
228
+ } }, h("div", { key: 'a95fd7bd0138f04cd3cf0b1e75df29183792d8cc', role: "radiogroup", "aria-label": `${label}${required ? ", required" : ""}` }, !hideLabel && (h("ic-input-label", { key: '484c655cfd75c5994c3c5ee1b1e70aed491ad361', class: {
229
229
  [`${validationStatus}`]: true,
230
230
  ["disabled"]: !!disabled,
231
- }, label: label, helperText: helperText, required: required, disabled: disabled })), h("div", { key: '4567b4ebf1cbc7ad1f87963cf5918937a31c6775', class: {
231
+ }, label: label, helperText: helperText, required: required, disabled: disabled })), h("div", { key: 'eed17f3169436eb1f8b672ecfdd51759443d5f1c', class: {
232
232
  "radio-buttons-container": true,
233
233
  horizontal: currentOrientation === this.RADIO_HORIZONTAL,
234
- }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: 'd8c63b01cacf74581bc381ebec1c269d9c590ea3' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: '55d0dc823c82405a7aa2e8edb03be0d76f5809c8', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
234
+ }, ref: (el) => (this.radioContainer = el) }, h("slot", { key: '878666c0c36d6456ed072ee0eddc6683b98ef4a5' }))), hasValidationStatus(validationStatus, disabled) && (h("ic-input-validation", { key: '79458eb93662029a89c31bb26b5174c2fd70c3af', ariaLiveMode: "polite", status: validationStatus, message: validationText }))));
235
235
  }
236
236
  static get is() { return "ic-radio-group"; }
237
237
  static get encapsulation() { return "shadow"; }
@@ -139,15 +139,15 @@ export class RadioOption {
139
139
  render() {
140
140
  const { additionalFieldDisplay, disabled, dynamicText, form, groupLabel, handleClick, handleKeyDown, hasAdditionalField, label, name, selected, value, theme, } = this;
141
141
  const id = `ic-radio-option-${isPropDefined(label) || value}-${groupLabel}`;
142
- return (h(Host, { key: 'd4254c0a08bd7fe373f7beeb849d732d437c6f5b', onClick: handleClick, onKeyDown: handleKeyDown, class: {
142
+ return (h(Host, { key: 'e775db934af98431874bc7b25a931de822c1a987', onClick: handleClick, onKeyDown: handleKeyDown, class: {
143
143
  ["ic-radio-option-disabled"]: !!disabled,
144
144
  [`ic-theme-${theme}`]: theme !== "inherit",
145
- } }, h("div", { key: '1b3c7c383278c1d8714f5a7a3a00c8fb780a2931', class: { container: true, disabled: !!disabled } }, h("div", { key: 'ba90a2ce5912981a50d43ebd33086eb227947e5f' }, h("input", { key: '8eb145667ce5b7777ced51480ceebab3f43a7910', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: '3683fd5eda19dd39f4647a5763705eef4becacb3', class: "checkmark" })), h("ic-typography", { key: 'd662a4e7a5b0ac173a7ea2881d2dac84e94eedc7', class: "radio-label", variant: "body" }, h("label", { key: 'a76e5907c98f2ff18d734167ff69bbe0a1c7ddc4', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: 'ff91776cab766a955e98dee100f73114166fee7a', class: {
145
+ } }, h("div", { key: 'e80a4acc065eb631c897d3c35b03f1747f272acb', class: { container: true, disabled: !!disabled } }, h("div", { key: 'b5d2a7fb6447ce7e365f8661e002767a8f909280' }, h("input", { key: 'd352f22e5f86533b4bdfe6e23be01993ef5dc2a9', tabindex: selected ? "0" : "-1", type: "radio", name: name, id: id, value: value, disabled: disabled, checked: selected, ref: (el) => (this.radioElement = el), form: form }), h("span", { key: '1718b2c24e76c82f98093b78bac5917da201af4d', class: "checkmark" })), h("ic-typography", { key: '3938c3a33f1534fa8778abed7e09cbc496af0612', class: "radio-label", variant: "body" }, h("label", { key: '586877cf41eafe536366cdd949d2330aa82aaaed', htmlFor: id }, label))), hasAdditionalField && (h("div", { key: '3f7d2a81b51a533843b74b59a730ad3231752638', class: {
146
146
  "dynamic-container": true,
147
147
  hidden: additionalFieldDisplay === "dynamic" && !selected,
148
- } }, additionalFieldDisplay === "dynamic" && (h("div", { key: 'e7eeaf7801fd5aa2014edb3796b8b6acc3149b3b', class: "branch-corner" })), h("div", { key: '5cb0e6fca92276f2d2a3bb0f5edc9e4525d44aa2' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '318ea54a9055f8dde4de2d9802878584d57e186e', variant: "caption" }, h("p", { key: 'e3f34b9536a0f5b95e796c269c586b7905dab59a', class: "dynamic-text" }, dynamicText))), h("div", { key: 'cec5d0147f6f12510e066fff2c0d4d80fe0ee98f', class: {
148
+ } }, additionalFieldDisplay === "dynamic" && (h("div", { key: '430d6b7ec062db38e94360206b1b81ec645d9142', class: "branch-corner" })), h("div", { key: 'd657669620a1a1047f7ce7c524ad74863cdfedb3' }, additionalFieldDisplay === "dynamic" && (h("ic-typography", { key: '89583fec44af079b14161ab9f11eb06337890b0a', variant: "caption" }, h("p", { key: 'b1e27f252e6f43faf95b9f5cd8da1bf792310331', class: "dynamic-text" }, dynamicText))), h("div", { key: 'c5bdfc982b7dbbc1da3dfff5e8d8428df433af50', class: {
149
149
  "additional-field-wrapper": additionalFieldDisplay === "static",
150
- } }, h("slot", { key: 'd6279d0506490eceb7d55d6e86609e9e9fb06ea4', name: ADDITIONAL_FIELD })))))));
150
+ } }, h("slot", { key: 'a1ae20ee1eaf80bd159215a46ddc8b6d4fec7653', name: ADDITIONAL_FIELD })))))));
151
151
  }
152
152
  static get is() { return "ic-radio-option"; }
153
153
  static get originalStyleUrls() {
@@ -152,6 +152,7 @@ export class SearchBar {
152
152
  this.loading = false;
153
153
  clearTimeout(this.timeoutTimer);
154
154
  this.filteredOptions = this.options;
155
+ this.showMenuWithNoInput() && this.setMenuChange(true);
155
156
  this.el.setFocus();
156
157
  this.icClear.emit();
157
158
  ev.preventDefault();
@@ -286,10 +287,13 @@ export class SearchBar {
286
287
  }
287
288
  };
288
289
  this.handleHostFocus = () => {
289
- if (this.options && this.value && !this.menuCloseFromMenuChangeEvent) {
290
+ if (this.options &&
291
+ (this.value || this.showMenuWithNoInput()) &&
292
+ !this.menuCloseFromMenuChangeEvent) {
290
293
  this.setMenuChange(true);
291
294
  }
292
295
  this.truncateValue = false;
296
+ this.showMenuWithNoInput() && this.debounceAriaLiveUpdate();
293
297
  this.icSearchBarFocus.emit();
294
298
  };
295
299
  this.handleHostBlur = ({ relatedTarget }) => {
@@ -313,6 +317,7 @@ export class SearchBar {
313
317
  });
314
318
  this.retryViaKeyPress = false;
315
319
  this.retryButtonClick = false;
320
+ this.showMenuWithNoInput() && this.updateSearchResultAriaLive();
316
321
  };
317
322
  this.handleFocusClearButton = () => {
318
323
  this.clearButtonFocused = true;
@@ -335,7 +340,7 @@ export class SearchBar {
335
340
  const searchResultsStatusEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector(".search-results-status");
336
341
  if (searchResultsStatusEl) {
337
342
  if (!this.open ||
338
- this.value === "" ||
343
+ (this.value === "" && !this.showMenuWithNoInput()) ||
339
344
  this.value.length < this.charactersUntilSuggestion) {
340
345
  searchResultsStatusEl.innerText = "";
341
346
  }
@@ -359,6 +364,12 @@ export class SearchBar {
359
364
  this.hadNoOptions() ||
360
365
  this.hasTimedOut ||
361
366
  this.loading;
367
+ this.showMenuWithNoInput = () => this.charactersUntilSuggestion === 0;
368
+ }
369
+ watchCharactersUntilSuggestionHandler() {
370
+ if (this.showMenuWithNoInput()) {
371
+ this.filteredOptions = this.options;
372
+ }
362
373
  }
363
374
  watchDisabledHandler() {
364
375
  removeDisabledFalse(this.disabled, this.el);
@@ -376,28 +387,33 @@ export class SearchBar {
376
387
  this.hasTimedOut = newOptions.some((opt) => opt.timedOut);
377
388
  }
378
389
  watchOptionsHandler(newOptions) {
379
- if (this.disableAutoFiltering && !this.hasTimedOut) {
380
- this.loading = false;
381
- clearTimeout(this.timeoutTimer);
382
- if (newOptions.length > 0) {
383
- this.filteredOptions = newOptions;
384
- }
385
- else {
386
- if (this.hadNoOptions()) {
387
- return;
390
+ if (this.disableAutoFiltering) {
391
+ if (!this.hasTimedOut) {
392
+ this.loading = false;
393
+ clearTimeout(this.timeoutTimer);
394
+ if (newOptions.length > 0) {
395
+ this.filteredOptions = newOptions;
388
396
  }
389
- this.setMenuChange(true);
390
- if (!this.preLoad) {
391
- this.filteredOptions = [
392
- {
393
- [this.labelField]: this.emptyOptionListText,
394
- [this.valueField]: "",
395
- },
396
- ];
397
+ else {
398
+ if (this.hadNoOptions()) {
399
+ return;
400
+ }
401
+ this.setMenuChange(true);
402
+ if (!this.preLoad) {
403
+ this.filteredOptions = [
404
+ {
405
+ [this.labelField]: this.emptyOptionListText,
406
+ [this.valueField]: "",
407
+ },
408
+ ];
409
+ }
410
+ this.preLoad = true;
397
411
  }
398
- this.preLoad = true;
399
412
  }
400
413
  }
414
+ else if (this.showMenuWithNoInput()) {
415
+ this.filteredOptions = newOptions;
416
+ }
401
417
  this.debounceAriaLiveUpdate();
402
418
  }
403
419
  watchValueHandler(newValue) {
@@ -421,7 +437,7 @@ export class SearchBar {
421
437
  }
422
438
  if (this.hasOptionsOrFilterDisabled()) {
423
439
  this.renderAssistiveHintEl();
424
- if (this.disableAutoFiltering) {
440
+ if (this.disableAutoFiltering || this.showMenuWithNoInput()) {
425
441
  this.filteredOptions = this.options;
426
442
  }
427
443
  }
@@ -488,44 +504,45 @@ export class SearchBar {
488
504
  else if (describedBy !== "") {
489
505
  describedById = describedBy;
490
506
  }
491
- const hasSuggestedSearch = !!value && this.hasOptionsOrFilterDisabled();
507
+ const hasSuggestedSearch = (!!value || this.showMenuWithNoInput()) &&
508
+ this.hasOptionsOrFilterDisabled();
492
509
  const menuOpen = hasSuggestedSearch && open && filteredOptions.length > 0;
493
510
  const menuRendered = menuOpen && value.length >= charactersUntilSuggestion;
494
511
  const labelValue = getLabelFromValue(value, options, valueField, labelField);
495
512
  renderHiddenInput(this.el, value, name, disabledMode);
496
- return (h(Host, { key: '5120b79da9d0840d87421287913f49cda06da4f3', class: {
513
+ return (h(Host, { key: 'bfb362b72aa0441cf00cb042f0dd623b6f41d5d7', class: {
497
514
  "ic-search-bar-search": true,
498
515
  "ic-search-bar-full-width": fullWidth,
499
516
  "ic-search-bar-disabled": disabled,
500
517
  "ic-search-bar-small": size === "small",
501
518
  [`ic-theme-${theme}`]: theme !== "inherit",
502
- }, onFocus: this.handleHostFocus, onBlur: this.handleHostBlur }, h("ic-input-container", { key: '246484c51e7169a8f9944b66499126ea3d86921a', readonly: readonly, disabled: disabledMode }, !hideLabel && (h("ic-input-label", { key: '043651daee6abf565a44ad6c1c090e8d6dd85f8a', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledMode && !readonly, readonly: readonly })), h("ic-input-component-container", { key: '880ab5440ec935340d56dd69e64e467879f3bbc5', ref: (el) => (this.anchorEl = el), size: size, disabled: disabledMode, readonly: readonly, fullWidth: fullWidth }, h("input", { key: '37ece1e8c9f5ab12f2f3a303544c882192a07107', id: inputId, name: name, ref: (el) => (this.inputEl = el), value: options && !!labelValue ? labelValue : value, class: {
519
+ }, onFocus: this.handleHostFocus, onBlur: this.handleHostBlur }, h("ic-input-container", { key: '4abc6ab7691d77e1659016957de4a7573c7b0ba8', readonly: readonly, disabled: disabledMode }, !hideLabel && (h("ic-input-label", { key: '7dfd27f5e3837063f115bac7ea1af05783ad52c2', for: inputId, label: label, helperText: helperText, required: required, disabled: disabledMode && !readonly, readonly: readonly })), h("ic-input-component-container", { key: 'bb9bd8d704ab9e9924d10b025bbd8b74310762e2', ref: (el) => (this.anchorEl = el), size: size, disabled: disabledMode, readonly: readonly, fullWidth: fullWidth }, h("input", { key: '29c57007bfc75825bd91cdd4e24f9d9fd44e83d8', id: inputId, name: name, ref: (el) => (this.inputEl = el), value: options && !!labelValue ? labelValue : value, class: {
503
520
  "no-left-pad": readonly,
504
521
  readonly,
505
522
  "truncate-value": truncateValue,
506
- }, placeholder: placeholder, required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "aria-label": label, "aria-activedescendant": ariaActiveDescendant, "aria-expanded": options.length > 0 && menuRendered ? `${menuOpen}` : undefined, "aria-owns": menuRendered ? menuId : undefined, "aria-describedby": describedById, "aria-controls": menuRendered ? menuId : undefined, "aria-haspopup": options.length > 0 ? "listbox" : undefined, "aria-autocomplete": hasSuggestedSearch ? "list" : undefined, role: options.length > 0 && menuRendered ? "combobox" : undefined, autocomplete: autocomplete, autocapitalize: autocapitalize, autoFocus: autofocus, spellcheck: spellcheck, inputmode: "search" }), h("div", { key: '4498fbe2293958c1ae6f6ddfeab15b2ff29ca2a8', class: {
523
+ }, placeholder: placeholder, required: required, disabled: disabledMode, readonly: readonly, onInput: this.onInput, onBlur: this.onInputBlur, onFocus: this.onInputFocus, "aria-label": label, "aria-activedescendant": ariaActiveDescendant, "aria-expanded": options.length > 0 && menuRendered ? `${menuOpen}` : undefined, "aria-owns": menuRendered ? menuId : undefined, "aria-describedby": describedById, "aria-controls": menuRendered ? menuId : undefined, "aria-haspopup": options.length > 0 ? "listbox" : undefined, "aria-autocomplete": hasSuggestedSearch ? "list" : undefined, role: options.length > 0 && menuRendered ? "combobox" : undefined, autocomplete: autocomplete, autocapitalize: autocapitalize, autoFocus: autofocus, spellcheck: spellcheck, inputmode: "search" }), h("div", { key: '2d5c5e1bc89f7dba8ef771e018534f7613c19295', class: {
507
524
  "clear-button-container": true,
508
525
  "clear-button-visible": !!value && !disabledMode && showClearButton,
509
- } }, h("ic-button", { key: '561c5cbe830f34bc80967e0899f2dc8526c1c4f7', id: "clear-button", class: {
526
+ } }, h("ic-button", { key: '873de229be0ef641b2c94ccd283f5c17965fb5b9', id: "clear-button", class: {
510
527
  "clear-button": true,
511
528
  "clear-button-unfocused": !clearButtonFocused,
512
- }, "aria-label": "Clear", innerHTML: clearIcon, onClick: this.handleClear, onMouseDown: this.handleMouseDown, size: size, onFocus: this.handleFocusClearButton, onBlur: this.handleClearBlur, onKeyDown: this.handleClear, type: "submit", variant: "icon", theme: clearButtonFocused ? "light" : "dark" }), h("div", { key: '9c783d276ad0a931e538a79ce303ad060db1fa1b', class: "divider" })), h("div", { key: '5babcd978eb8263ca710b32ead6926c95f558838', class: {
529
+ }, "aria-label": "Clear", innerHTML: clearIcon, onClick: this.handleClear, onMouseDown: this.handleMouseDown, size: size, onFocus: this.handleFocusClearButton, onBlur: this.handleClearBlur, onKeyDown: this.handleClear, type: "submit", variant: "icon", theme: clearButtonFocused ? "light" : "dark" }), h("div", { key: '5f459ff9941a45c937632a1aad6f4e51de1bf56a', class: "divider" })), h("div", { key: '00bca9379e35fc62d6148258fb0d46a1a4f6a5bd', class: {
513
530
  "search-submit-button-container": true,
514
531
  "search-submit-button-disabled": this.isSubmitDisabled(),
515
- } }, h("ic-button", { key: '785dbe4deb7549662d263f74b75c759b932399fb', id: "search-submit-button", "aria-label": "Search", ref: (el) => (this.searchSubmitButton = el), class: {
532
+ } }, h("ic-button", { key: '0733206601764cf6563aebfe739cd8ff10d0e779', id: "search-submit-button", "aria-label": "Search", ref: (el) => (this.searchSubmitButton = el), class: {
516
533
  "search-submit-button": true,
517
534
  "search-submit-button-small": size === "small",
518
535
  "search-submit-button-unfocused": !searchSubmitFocused,
519
536
  "search-submit-button-disabled": this.isSubmitDisabled(),
520
- }, disabled: this.isSubmitDisabled(), innerHTML: searchIcon, size: size, onClick: this.handleSubmitSearch, onMouseDown: this.handleMouseDown, onBlur: this.handleSubmitSearchBlur, onFocus: this.handleSubmitSearchFocus, onKeyDown: this.handleSubmitSearchKeyDown, type: "submit", variant: "icon", theme: searchSubmitFocused ? "light" : "dark" }))), h("div", { key: '78297ce56515a4f1f50a8108949a20837c87828f', class: {
537
+ }, disabled: this.isSubmitDisabled(), innerHTML: searchIcon, size: size, onClick: this.handleSubmitSearch, onMouseDown: this.handleMouseDown, onBlur: this.handleSubmitSearchBlur, onFocus: this.handleSubmitSearchFocus, onKeyDown: this.handleSubmitSearchKeyDown, type: "submit", variant: "icon", theme: searchSubmitFocused ? "light" : "dark" }))), h("div", { key: '30177d3af3b241db3e843cb83b5fbf3aab4bc003', class: {
521
538
  "menu-container": true,
522
539
  fullwidth: fullWidth,
523
- } }, menuRendered && this.anchorEl && this.inputEl && (h("ic-menu", { key: 'd527adddfc250b1f0fe605cbaec5f08ea1e25c04', class: {
540
+ } }, menuRendered && this.anchorEl && this.inputEl && (h("ic-menu", { key: '98b2ada7a19760d30ba958c31926ae93cce74988', class: {
524
541
  "no-results": this.hadNoOptions() ||
525
542
  (filteredOptions.length === 1 &&
526
543
  (filteredOptions[0][labelField] === loadingLabel ||
527
544
  filteredOptions[0][labelField] === loadingErrorLabel)),
528
- }, activationType: "manual", anchorEl: this.anchorEl, autofocusOnSelected: false, searchMode: searchMode, inputEl: this.inputEl, inputLabel: label, ref: (el) => (this.menu = el), fullWidth: fullWidth, menuId: menuId, open: true, options: filteredOptions, onMenuOptionSelect: this.handleOptionSelect, onMenuStateChange: this.handleMenuChange, onMenuOptionId: this.handleMenuOptionHighlight, onRetryButtonClicked: this.handleRetry, parentEl: this.el, value: value, labelField: labelField, valueField: valueField })))), h("div", { key: '716cd74ed9726cd134772aba2b98e374face0753', "aria-live": "polite", role: "status", class: "search-results-status" })));
545
+ }, activationType: "manual", anchorEl: this.anchorEl, autofocusOnSelected: false, searchMode: searchMode, inputEl: this.inputEl, inputLabel: label, ref: (el) => (this.menu = el), fullWidth: fullWidth, menuId: menuId, open: true, options: filteredOptions, onMenuOptionSelect: this.handleOptionSelect, onMenuStateChange: this.handleMenuChange, onMenuOptionId: this.handleMenuOptionHighlight, onRetryButtonClicked: this.handleRetry, parentEl: this.el, value: value, labelField: labelField, valueField: valueField })))), h("div", { key: '68d0f5afc16ce02c5b621b74754be51ffc55f2a6', "aria-live": "polite", role: "status", class: "search-results-status" })));
529
546
  }
530
547
  static get is() { return "ic-search-bar"; }
531
548
  static get encapsulation() { return "shadow"; }
@@ -567,7 +584,7 @@ export class SearchBar {
567
584
  "mutable": false,
568
585
  "complexType": {
569
586
  "original": "IcAutocompleteTypes",
570
- "resolved": "\"on\" | \"off\" | \"name\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"email\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"url\" | \"photo\"",
587
+ "resolved": "\"name\" | \"on\" | \"off\" | \"honorific-prefix\" | \"given-name\" | \"additional-name\" | \"family-name\" | \"honorific-suffix\" | \"nickname\" | \"email\" | \"username\" | \"new-password\" | \"current-password\" | \"one-time-code\" | \"organization-title\" | \"organization\" | \"street-address\" | \"address-line1\" | \"address-line2\" | \"address-line3\" | \"address-level4\" | \"address-level3\" | \"address-level2\" | \"address-level1\" | \"country\" | \"country-name\" | \"postal-code\" | \"cc-name\" | \"cc-given-name\" | \"cc-additional-name\" | \"cc-family-name\" | \"cc-number\" | \"cc-exp\" | \"cc-exp-month\" | \"cc-exp-year\" | \"cc-csc\" | \"cc-type\" | \"transaction-currency\" | \"transaction-amount\" | \"language\" | \"bday\" | \"bday-day\" | \"bday-month\" | \"bday-year\" | \"sex\" | \"tel\" | \"tel-country-code\" | \"tel-national\" | \"tel-area-code\" | \"tel-local\" | \"tel-extension\" | \"impp\" | \"url\" | \"photo\"",
571
588
  "references": {
572
589
  "IcAutocompleteTypes": {
573
590
  "location": "import",
@@ -1485,6 +1502,9 @@ export class SearchBar {
1485
1502
  static get elementRef() { return "el"; }
1486
1503
  static get watchers() {
1487
1504
  return [{
1505
+ "propName": "charactersUntilSuggestion",
1506
+ "methodName": "watchCharactersUntilSuggestionHandler"
1507
+ }, {
1488
1508
  "propName": "disabled",
1489
1509
  "methodName": "watchDisabledHandler"
1490
1510
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-search-bar.js","sourceRoot":"","sources":["../../../src/components/ic-search-bar/ic-search-bar.tsx"],"names":[],"mappings":"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","sourcesContent":["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\";\n\nlet inputIds = 0;\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\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 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 && !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 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.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\n componentDidLoad(): void {\n if (this.focusOnLoad) {\n this.el.setFocus();\n }\n\n if (this.hasOptionsOrFilterDisabled()) {\n this.renderAssistiveHintEl();\n if (this.disableAutoFiltering) {\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 (this.options && this.value && !this.menuCloseFromMenuChangeEvent) {\n this.setMenuChange(true);\n }\n this.truncateValue = false;\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 };\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 === \"\" ||\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 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 } = this;\n\n const disabledMode = readonly || disabled;\n\n const describedBy = getInputDescribedByText(\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 = !!value && 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 ></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={label}\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=\"submit\"\n variant=\"icon\"\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=\"submit\"\n variant=\"icon\"\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 ></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"]}
1
+ {"version":3,"file":"ic-search-bar.js","sourceRoot":"","sources":["../../../src/components/ic-search-bar/ic-search-bar.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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\";\n\nlet inputIds = 0;\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 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\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\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 } = this;\n\n const disabledMode = readonly || disabled;\n\n const describedBy = getInputDescribedByText(\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 ></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={label}\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=\"submit\"\n variant=\"icon\"\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=\"submit\"\n variant=\"icon\"\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 ></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"]}
@@ -4,12 +4,15 @@ const defaultArgs = {
4
4
  autocapitalize: "off",
5
5
  autocorrect: "off",
6
6
  autofocus: false,
7
+ charactersUntilSuggestion: 2,
8
+ disableAutoFiltering: false,
7
9
  disabled: false,
8
- fullWidth: false,
9
10
  focusOnLoad: true,
11
+ fullWidth: false,
10
12
  helperText: "",
11
13
  hideLabel: false,
12
14
  label: "What is your favourite coffee?",
15
+ loading: false,
13
16
  placeholder: "Search",
14
17
  readonly: false,
15
18
  required: false,
@@ -528,18 +531,16 @@ export const Playground = {
528
531
  autocapitalize=${args.autocapitalize}
529
532
  autocorrect=${args.autocorrect}
530
533
  autofocus=${args.autofocus}
531
- label=${args.label}
532
- required=${args.required}
533
- readonly=${args.readonly}
534
- spellcheck=${args.spellcheck}
534
+ characters-until-suggestion=${args.charactersUntilSuggestion}
535
+ disable-auto-filtering=${args.disableAutoFiltering}
535
536
  disabled=${args.disabled}
536
- full-width=${args.fullWidth}
537
537
  focus-on-load=${args.focusOnLoad}
538
+ full-width=${args.fullWidth}
538
539
  helper-text=${args.helperText}
539
540
  hide-label=${args.hideLabel}
541
+ label=${args.label}
542
+ loading=${args.loading}
540
543
  placeholder=${args.placeholder}
541
- size=${args.size}
542
- theme=${args.theme}
543
544
  >
544
545
  </ic-search-bar>
545
546
  <script>
@@ -12,12 +12,12 @@ export class SectionContainer {
12
12
  }
13
13
  render() {
14
14
  const { aligned, fullHeight } = this;
15
- return (h(Host, { key: '67c1b4b2afe62fc53812421ee49c01bf689e05b4', class: {
15
+ return (h(Host, { key: '828f3234c880ff0d46adef9554ceb358c472a25c', class: {
16
16
  ["aligned-left"]: aligned === "left" || aligned === null,
17
17
  ["aligned-center"]: aligned === "center",
18
18
  ["aligned-full-width"]: aligned === "full-width",
19
19
  ["no-vertical-padding"]: !!fullHeight,
20
- } }, h("slot", { key: 'cb21cb372b6131cfb990ac0a016f6c64641749f9' })));
20
+ } }, h("slot", { key: 'aae75bbdd8d6ae40c36621ad1398ab0185a4325c' })));
21
21
  }
22
22
  static get is() { return "ic-section-container"; }
23
23
  static get encapsulation() { return "shadow"; }