@ukic/canary-web-components 3.0.0-canary.1 → 3.0.0-canary.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (646) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-33b42cd6.js → helpers-36cdc6cb.js} +24 -1
  3. package/dist/cjs/helpers-36cdc6cb.js.map +1 -0
  4. package/dist/cjs/{helpers-6817cfbb.js → helpers-a67ad3a4.js} +15 -129
  5. package/dist/cjs/helpers-a67ad3a4.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  7. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  8. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +2 -2
  10. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +17 -16
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card-horizontal.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -1
  21. package/dist/cjs/ic-card-vertical.cjs.entry.js +2 -2
  22. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -3
  24. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  25. package/dist/cjs/ic-checkbox.cjs.entry.js +3 -3
  26. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  27. package/dist/cjs/ic-chip.cjs.entry.js +21 -14
  28. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  30. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-data-table.cjs.entry.js +31 -8
  35. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-date-input.cjs.entry.js +11 -10
  37. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-date-picker.cjs.entry.js +4 -2
  39. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  42. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-empty-state_2.cjs.entry.js +24 -17
  44. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-footer-link.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-footer.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  52. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1012 -0
  55. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -0
  56. package/dist/cjs/ic-input-label_2.cjs.entry.js +86 -0
  57. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -0
  58. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  59. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  61. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-navigation-group.cjs.entry.js +2 -2
  66. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  70. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-page-header.cjs.entry.js +5 -5
  72. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-pagination_4.cjs.entry.js +151 -41
  74. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-popover-menu.cjs.entry.js +27 -21
  76. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  77. package/dist/cjs/ic-radio-group.cjs.entry.js +20 -10
  78. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-radio-option.cjs.entry.js +27 -22
  80. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-search-bar.cjs.entry.js +12 -25
  82. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  83. package/dist/cjs/ic-side-navigation.cjs.entry.js +2 -2
  84. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  85. package/dist/cjs/ic-skeleton.cjs.entry.js +4 -4
  86. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  87. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  88. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  89. package/dist/cjs/ic-step.cjs.entry.js +4 -5
  90. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  91. package/dist/cjs/ic-stepper.cjs.entry.js +12 -2
  92. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  93. package/dist/cjs/ic-switch.cjs.entry.js +7 -4
  94. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  95. package/dist/cjs/ic-tab-context.cjs.entry.js +58 -122
  96. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  97. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  98. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  99. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-tab.cjs.entry.js +6 -7
  101. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  103. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  104. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  105. package/dist/cjs/ic-toggle-button.cjs.entry.js +2 -2
  106. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  107. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  108. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  109. package/dist/cjs/ic-tree-item.cjs.entry.js +5 -3
  110. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ic-tree-view.cjs.entry.js +10 -2
  112. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -1
  113. package/dist/cjs/ic-typography.cjs.entry.js +5 -3
  114. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  115. package/dist/cjs/index-4cf27b16.js +4 -12
  116. package/dist/cjs/loader.cjs.js +1 -1
  117. package/dist/collection/collection-manifest.json +0 -2
  118. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +8 -8
  119. package/dist/collection/components/ic-data-table/ic-data-table.css +20 -4
  120. package/dist/collection/components/ic-data-table/ic-data-table.js +35 -12
  121. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  122. package/dist/collection/components/ic-data-table/story-data.js +46 -5
  123. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  124. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +3 -3
  125. package/dist/collection/components/ic-date-input/ic-date-input.css +3 -3
  126. package/dist/collection/components/ic-date-input/ic-date-input.js +27 -8
  127. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  128. package/dist/collection/components/ic-date-picker/ic-date-picker.css +6 -6
  129. package/dist/collection/components/ic-date-picker/ic-date-picker.js +20 -0
  130. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  131. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +72 -21
  132. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  133. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  134. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  135. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +20 -2
  136. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  137. package/dist/collection/components/ic-tree-item/ic-tree-item.css +13 -2
  138. package/dist/collection/components/ic-tree-item/ic-tree-item.js +23 -3
  139. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -1
  140. package/dist/collection/components/ic-tree-view/ic-tree-view.js +29 -1
  141. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -1
  142. package/dist/collection/utils/helpers.js +1 -1
  143. package/dist/collection/utils/helpers.js.map +1 -1
  144. package/dist/collection/utils/types.js.map +1 -1
  145. package/dist/components/helpers.js +22 -1
  146. package/dist/components/helpers.js.map +1 -1
  147. package/dist/components/helpers2.js +14 -121
  148. package/dist/components/helpers2.js.map +1 -1
  149. package/dist/components/ic-accordion.js +1 -1
  150. package/dist/components/ic-accordion.js.map +1 -1
  151. package/dist/components/ic-alert.js +1 -1
  152. package/dist/components/ic-alert.js.map +1 -1
  153. package/dist/components/ic-badge.js +1 -1
  154. package/dist/components/ic-badge.js.map +1 -1
  155. package/dist/components/ic-breadcrumb2.js +1 -1
  156. package/dist/components/ic-breadcrumb2.js.map +1 -1
  157. package/dist/components/ic-button2.js +6 -7
  158. package/dist/components/ic-button2.js.map +1 -1
  159. package/dist/components/ic-card-horizontal.js +1 -1
  160. package/dist/components/ic-card-horizontal.js.map +1 -1
  161. package/dist/components/ic-card-vertical.js +1 -1
  162. package/dist/components/ic-card-vertical.js.map +1 -1
  163. package/dist/components/ic-checkbox-group.js +2 -2
  164. package/dist/components/ic-checkbox-group.js.map +1 -1
  165. package/dist/components/ic-checkbox.js +2 -2
  166. package/dist/components/ic-checkbox.js.map +1 -1
  167. package/dist/components/ic-chip.js +23 -14
  168. package/dist/components/ic-chip.js.map +1 -1
  169. package/dist/components/ic-classification-banner.js +1 -1
  170. package/dist/components/ic-classification-banner.js.map +1 -1
  171. package/dist/components/ic-data-table-title-bar.js +1 -1
  172. package/dist/components/ic-data-table-title-bar.js.map +1 -1
  173. package/dist/components/ic-data-table.js +31 -8
  174. package/dist/components/ic-data-table.js.map +1 -1
  175. package/dist/components/ic-date-input2.js +12 -10
  176. package/dist/components/ic-date-input2.js.map +1 -1
  177. package/dist/components/ic-date-picker.js +5 -2
  178. package/dist/components/ic-date-picker.js.map +1 -1
  179. package/dist/components/ic-divider2.js +1 -1
  180. package/dist/components/ic-divider2.js.map +1 -1
  181. package/dist/components/ic-footer-link-group.js +1 -1
  182. package/dist/components/ic-footer-link-group.js.map +1 -1
  183. package/dist/components/ic-footer-link.js +1 -1
  184. package/dist/components/ic-footer-link.js.map +1 -1
  185. package/dist/components/ic-footer.js +2 -2
  186. package/dist/components/ic-footer.js.map +1 -1
  187. package/dist/components/ic-horizontal-scroll2.js +2 -2
  188. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  189. package/dist/components/ic-input-component-container2.js +1 -1
  190. package/dist/components/ic-input-component-container2.js.map +1 -1
  191. package/dist/components/ic-input-label2.js +10 -6
  192. package/dist/components/ic-input-label2.js.map +1 -1
  193. package/dist/components/ic-input-validation2.js +1 -1
  194. package/dist/components/ic-input-validation2.js.map +1 -1
  195. package/dist/components/ic-link2.js +1 -1
  196. package/dist/components/ic-link2.js.map +1 -1
  197. package/dist/components/ic-loading-indicator2.js +11 -9
  198. package/dist/components/ic-loading-indicator2.js.map +1 -1
  199. package/dist/components/ic-menu-group.js +1 -1
  200. package/dist/components/ic-menu-group.js.map +1 -1
  201. package/dist/components/ic-menu-item2.js +1 -1
  202. package/dist/components/ic-menu-item2.js.map +1 -1
  203. package/dist/components/ic-menu2.js +450 -167
  204. package/dist/components/ic-menu2.js.map +1 -1
  205. package/dist/components/ic-navigation-group.js +2 -2
  206. package/dist/components/ic-navigation-group.js.map +1 -1
  207. package/dist/components/ic-navigation-item.js +2 -2
  208. package/dist/components/ic-navigation-item.js.map +1 -1
  209. package/dist/components/ic-navigation-menu2.js +2 -2
  210. package/dist/components/ic-navigation-menu2.js.map +1 -1
  211. package/dist/components/ic-page-header.js +4 -4
  212. package/dist/components/ic-page-header.js.map +1 -1
  213. package/dist/components/ic-pagination-bar2.js +27 -17
  214. package/dist/components/ic-pagination-bar2.js.map +1 -1
  215. package/dist/components/ic-pagination-item2.js +2 -2
  216. package/dist/components/ic-pagination-item2.js.map +1 -1
  217. package/dist/components/ic-popover-menu.js +30 -22
  218. package/dist/components/ic-popover-menu.js.map +1 -1
  219. package/dist/components/ic-radio-group.js +19 -9
  220. package/dist/components/ic-radio-group.js.map +1 -1
  221. package/dist/components/ic-radio-option.js +27 -22
  222. package/dist/components/ic-radio-option.js.map +1 -1
  223. package/dist/components/ic-search-bar.js +12 -25
  224. package/dist/components/ic-search-bar.js.map +1 -1
  225. package/dist/components/ic-select2.js +149 -38
  226. package/dist/components/ic-select2.js.map +1 -1
  227. package/dist/components/ic-side-navigation.js +2 -2
  228. package/dist/components/ic-side-navigation.js.map +1 -1
  229. package/dist/components/ic-skeleton.js +5 -5
  230. package/dist/components/ic-skeleton.js.map +1 -1
  231. package/dist/components/ic-status-tag.js +1 -1
  232. package/dist/components/ic-status-tag.js.map +1 -1
  233. package/dist/components/ic-step.js +4 -4
  234. package/dist/components/ic-step.js.map +1 -1
  235. package/dist/components/ic-stepper.js +14 -3
  236. package/dist/components/ic-stepper.js.map +1 -1
  237. package/dist/components/ic-switch.js +7 -3
  238. package/dist/components/ic-switch.js.map +1 -1
  239. package/dist/components/ic-tab-context.js +58 -122
  240. package/dist/components/ic-tab-context.js.map +1 -1
  241. package/dist/components/ic-tab-panel.js +1 -1
  242. package/dist/components/ic-tab-panel.js.map +1 -1
  243. package/dist/components/ic-tab.js +5 -6
  244. package/dist/components/ic-tab.js.map +1 -1
  245. package/dist/components/ic-text-field2.js +3 -3
  246. package/dist/components/ic-text-field2.js.map +1 -1
  247. package/dist/components/ic-theme.js +1 -1
  248. package/dist/components/ic-toast.js +3 -3
  249. package/dist/components/ic-toast.js.map +1 -1
  250. package/dist/components/ic-toggle-button.js +1 -1
  251. package/dist/components/ic-toggle-button.js.map +1 -1
  252. package/dist/components/ic-tooltip2.js +1 -1
  253. package/dist/components/ic-tooltip2.js.map +1 -1
  254. package/dist/components/ic-top-navigation.js +2 -2
  255. package/dist/components/ic-top-navigation.js.map +1 -1
  256. package/dist/components/ic-tree-item.js +5 -2
  257. package/dist/components/ic-tree-item.js.map +1 -1
  258. package/dist/components/ic-tree-view.js +12 -2
  259. package/dist/components/ic-tree-view.js.map +1 -1
  260. package/dist/components/ic-typography2.js +4 -2
  261. package/dist/components/ic-typography2.js.map +1 -1
  262. package/dist/core/core.css +661 -37
  263. package/dist/core/core.esm.js +1 -1
  264. package/dist/core/core.esm.js.map +1 -1
  265. package/dist/core/{p-c033e7d6.entry.js → p-036d251b.entry.js} +2 -2
  266. package/dist/core/{p-9397b15b.js → p-043cf5de.js} +2 -2
  267. package/dist/core/p-043cf5de.js.map +1 -0
  268. package/dist/core/p-044689ef.entry.js +2 -0
  269. package/dist/core/p-044689ef.entry.js.map +1 -0
  270. package/dist/core/p-095da817.entry.js +2 -0
  271. package/dist/core/p-095da817.entry.js.map +1 -0
  272. package/dist/core/{p-cb6cebdd.entry.js → p-13d2db9b.entry.js} +2 -2
  273. package/dist/core/{p-cb6cebdd.entry.js.map → p-13d2db9b.entry.js.map} +1 -1
  274. package/dist/core/p-13e01a1e.entry.js +2 -0
  275. package/dist/core/p-13e01a1e.entry.js.map +1 -0
  276. package/dist/core/p-1ae71507.entry.js +2 -0
  277. package/dist/core/p-1ae71507.entry.js.map +1 -0
  278. package/dist/core/p-2200ca85.entry.js +2 -0
  279. package/dist/core/p-2200ca85.entry.js.map +1 -0
  280. package/dist/core/p-2257f5e8.entry.js +2 -0
  281. package/dist/core/p-2257f5e8.entry.js.map +1 -0
  282. package/dist/core/{p-897b8d16.entry.js → p-24d03bbd.entry.js} +2 -2
  283. package/dist/core/{p-a78cf2cb.entry.js → p-266098ee.entry.js} +2 -2
  284. package/dist/core/{p-5f313e1a.entry.js → p-26613dbd.entry.js} +2 -2
  285. package/dist/core/{p-5f313e1a.entry.js.map → p-26613dbd.entry.js.map} +1 -1
  286. package/dist/core/p-283a2274.entry.js +2 -0
  287. package/dist/core/p-283a2274.entry.js.map +1 -0
  288. package/dist/core/{p-77a32de5.entry.js → p-2a3bd99a.entry.js} +2 -2
  289. package/dist/core/p-42f88966.entry.js +2 -0
  290. package/dist/core/p-42f88966.entry.js.map +1 -0
  291. package/dist/core/p-44ee5375.entry.js +2 -0
  292. package/dist/core/p-44ee5375.entry.js.map +1 -0
  293. package/dist/core/p-48a78218.entry.js +2 -0
  294. package/dist/core/p-48a78218.entry.js.map +1 -0
  295. package/dist/core/p-4e316ae5.entry.js +2 -0
  296. package/dist/core/p-4e316ae5.entry.js.map +1 -0
  297. package/dist/core/p-50dd2744.entry.js +2 -0
  298. package/dist/core/p-50dd2744.entry.js.map +1 -0
  299. package/dist/core/{p-bf670360.entry.js → p-51ea45cb.entry.js} +2 -2
  300. package/dist/core/{p-bf670360.entry.js.map → p-51ea45cb.entry.js.map} +1 -1
  301. package/dist/core/p-5458d818.entry.js +2 -0
  302. package/dist/core/p-5458d818.entry.js.map +1 -0
  303. package/dist/core/{p-202bc922.entry.js → p-5ad1a7fb.entry.js} +2 -2
  304. package/dist/core/p-5b061abc.entry.js +2 -0
  305. package/dist/core/p-5b061abc.entry.js.map +1 -0
  306. package/dist/core/{p-f98b1afc.entry.js → p-6727166b.entry.js} +2 -2
  307. package/dist/core/{p-f98b1afc.entry.js.map → p-6727166b.entry.js.map} +1 -1
  308. package/dist/core/p-6dc00a8f.entry.js +2 -0
  309. package/dist/core/p-6dc00a8f.entry.js.map +1 -0
  310. package/dist/core/p-6dffaac0.entry.js +2 -0
  311. package/dist/core/p-6dffaac0.entry.js.map +1 -0
  312. package/dist/core/p-6fd89ed5.entry.js +2 -0
  313. package/dist/core/p-6fd89ed5.entry.js.map +1 -0
  314. package/dist/core/p-7aa6b76e.entry.js +2 -0
  315. package/dist/core/p-7aa6b76e.entry.js.map +1 -0
  316. package/dist/core/{p-e5d99316.entry.js → p-7b90f0ae.entry.js} +2 -2
  317. package/dist/core/{p-5f5403e2.entry.js → p-7e1603cc.entry.js} +2 -2
  318. package/dist/core/p-7e1603cc.entry.js.map +1 -0
  319. package/dist/core/{p-30b046b2.entry.js → p-7e5b0fff.entry.js} +2 -2
  320. package/dist/core/{p-d8563643.entry.js → p-80b296cd.entry.js} +2 -2
  321. package/dist/core/p-80b296cd.entry.js.map +1 -0
  322. package/dist/core/{p-73b40c79.entry.js → p-82aa8136.entry.js} +2 -2
  323. package/dist/core/{p-73b40c79.entry.js.map → p-82aa8136.entry.js.map} +1 -1
  324. package/dist/core/p-83b4efe2.entry.js +2 -0
  325. package/dist/core/p-83b4efe2.entry.js.map +1 -0
  326. package/dist/core/p-83e4d955.entry.js +2 -0
  327. package/dist/core/p-83e4d955.entry.js.map +1 -0
  328. package/dist/core/p-86b608b5.entry.js +2 -0
  329. package/dist/core/p-86b608b5.entry.js.map +1 -0
  330. package/dist/core/p-878df16f.entry.js +2 -0
  331. package/dist/core/p-878df16f.entry.js.map +1 -0
  332. package/dist/core/p-89be0a21.js +2 -0
  333. package/dist/core/p-89be0a21.js.map +1 -0
  334. package/dist/core/{p-306def43.entry.js → p-8bec76d1.entry.js} +2 -2
  335. package/dist/core/p-8bec76d1.entry.js.map +1 -0
  336. package/dist/core/p-94141606.entry.js +2 -0
  337. package/dist/core/p-94141606.entry.js.map +1 -0
  338. package/dist/core/{p-108a9029.entry.js → p-94416b6b.entry.js} +2 -2
  339. package/dist/core/p-94416b6b.entry.js.map +1 -0
  340. package/dist/core/{p-f743b0eb.entry.js → p-a4439688.entry.js} +2 -2
  341. package/dist/core/{p-f743b0eb.entry.js.map → p-a4439688.entry.js.map} +1 -1
  342. package/dist/core/p-a8106c56.entry.js +2 -0
  343. package/dist/core/p-a8106c56.entry.js.map +1 -0
  344. package/dist/core/p-affd7f55.entry.js +2 -0
  345. package/dist/core/p-affd7f55.entry.js.map +1 -0
  346. package/dist/core/{p-c21d0db8.entry.js → p-b3d93bc1.entry.js} +2 -2
  347. package/dist/core/p-b3d93bc1.entry.js.map +1 -0
  348. package/dist/core/p-bac2beeb.entry.js +2 -0
  349. package/dist/core/p-bac2beeb.entry.js.map +1 -0
  350. package/dist/core/p-c29b2b48.entry.js +2 -0
  351. package/dist/core/p-c29b2b48.entry.js.map +1 -0
  352. package/dist/core/p-c40c57ee.entry.js +2 -0
  353. package/dist/core/p-c40c57ee.entry.js.map +1 -0
  354. package/dist/core/p-c6a62d1b.entry.js +2 -0
  355. package/dist/core/p-c6a62d1b.entry.js.map +1 -0
  356. package/dist/core/{p-266341f5.entry.js → p-cc22644d.entry.js} +2 -2
  357. package/dist/core/{p-266341f5.entry.js.map → p-cc22644d.entry.js.map} +1 -1
  358. package/dist/core/p-cfd81370.entry.js +2 -0
  359. package/dist/core/p-cfd81370.entry.js.map +1 -0
  360. package/dist/core/p-d53fb899.entry.js +2 -0
  361. package/dist/core/p-d53fb899.entry.js.map +1 -0
  362. package/dist/core/p-d5e9cf81.entry.js +2 -0
  363. package/dist/core/p-d5e9cf81.entry.js.map +1 -0
  364. package/dist/core/{p-505250cf.entry.js → p-d7632baf.entry.js} +2 -2
  365. package/dist/core/p-dcccd9c1.entry.js +2 -0
  366. package/dist/core/{p-aee8d45b.entry.js.map → p-dcccd9c1.entry.js.map} +1 -1
  367. package/dist/core/p-edfd0946.entry.js +2 -0
  368. package/dist/core/p-edfd0946.entry.js.map +1 -0
  369. package/dist/core/p-f1842a68.entry.js +2 -0
  370. package/dist/core/p-f1842a68.entry.js.map +1 -0
  371. package/dist/core/{p-f1072c28.entry.js → p-f64abdff.entry.js} +2 -2
  372. package/dist/core/p-f64abdff.entry.js.map +1 -0
  373. package/dist/core/p-f8c1d7e8.entry.js +2 -0
  374. package/dist/core/p-f8c1d7e8.entry.js.map +1 -0
  375. package/dist/core/{p-d03374fc.entry.js → p-fbb5c8f2.entry.js} +2 -2
  376. package/dist/core/p-fc2f336d.entry.js +2 -0
  377. package/dist/core/p-fc2f336d.entry.js.map +1 -0
  378. package/dist/esm/core.js +1 -1
  379. package/dist/esm/{helpers-5bd2012a.js → helpers-a7b13f5a.js} +15 -122
  380. package/dist/esm/helpers-a7b13f5a.js.map +1 -0
  381. package/dist/esm/{helpers-dab8ddfe.js → helpers-c326255f.js} +23 -2
  382. package/dist/esm/helpers-c326255f.js.map +1 -0
  383. package/dist/esm/ic-accordion-group.entry.js +1 -1
  384. package/dist/esm/ic-accordion.entry.js +2 -2
  385. package/dist/esm/ic-accordion.entry.js.map +1 -1
  386. package/dist/esm/ic-alert.entry.js +2 -2
  387. package/dist/esm/ic-alert.entry.js.map +1 -1
  388. package/dist/esm/ic-back-to-top.entry.js +1 -1
  389. package/dist/esm/ic-badge.entry.js +2 -2
  390. package/dist/esm/ic-badge.entry.js.map +1 -1
  391. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  392. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  393. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  394. package/dist/esm/ic-button_3.entry.js +17 -16
  395. package/dist/esm/ic-button_3.entry.js.map +1 -1
  396. package/dist/esm/ic-card-horizontal.entry.js +2 -2
  397. package/dist/esm/ic-card-horizontal.entry.js.map +1 -1
  398. package/dist/esm/ic-card-vertical.entry.js +2 -2
  399. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  400. package/dist/esm/ic-checkbox-group.entry.js +3 -3
  401. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  402. package/dist/esm/ic-checkbox.entry.js +3 -3
  403. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  404. package/dist/esm/ic-chip.entry.js +22 -15
  405. package/dist/esm/ic-chip.entry.js.map +1 -1
  406. package/dist/esm/ic-classification-banner.entry.js +1 -1
  407. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  408. package/dist/esm/ic-data-row.entry.js +1 -1
  409. package/dist/esm/ic-data-table-title-bar.entry.js +2 -2
  410. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -1
  411. package/dist/esm/ic-data-table.entry.js +31 -8
  412. package/dist/esm/ic-data-table.entry.js.map +1 -1
  413. package/dist/esm/ic-date-input.entry.js +11 -10
  414. package/dist/esm/ic-date-input.entry.js.map +1 -1
  415. package/dist/esm/ic-date-picker.entry.js +4 -2
  416. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  417. package/dist/esm/ic-dialog.entry.js +1 -1
  418. package/dist/esm/ic-divider.entry.js +2 -2
  419. package/dist/esm/ic-divider.entry.js.map +1 -1
  420. package/dist/esm/ic-empty-state_2.entry.js +24 -17
  421. package/dist/esm/ic-empty-state_2.entry.js.map +1 -1
  422. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  423. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  424. package/dist/esm/ic-footer-link.entry.js +2 -2
  425. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  426. package/dist/esm/ic-footer.entry.js +2 -2
  427. package/dist/esm/ic-footer.entry.js.map +1 -1
  428. package/dist/esm/ic-hero.entry.js +1 -1
  429. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  430. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  431. package/dist/{collection/components/ic-menu-with-multi/ic-menu.js → esm/ic-input-component-container_3.entry.js} +157 -727
  432. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -0
  433. package/dist/esm/ic-input-label_2.entry.js +81 -0
  434. package/dist/esm/ic-input-label_2.entry.js.map +1 -0
  435. package/dist/esm/ic-link.entry.js +2 -2
  436. package/dist/esm/ic-link.entry.js.map +1 -1
  437. package/dist/esm/ic-menu-group.entry.js +2 -2
  438. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  439. package/dist/esm/ic-menu-item.entry.js +2 -2
  440. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  441. package/dist/esm/ic-navigation-button.entry.js +1 -1
  442. package/dist/esm/ic-navigation-group.entry.js +2 -2
  443. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  444. package/dist/esm/ic-navigation-item.entry.js +2 -2
  445. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  446. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  447. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  448. package/dist/esm/ic-page-header.entry.js +5 -5
  449. package/dist/esm/ic-page-header.entry.js.map +1 -1
  450. package/dist/esm/ic-pagination_4.entry.js +151 -41
  451. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  452. package/dist/esm/ic-popover-menu.entry.js +27 -21
  453. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  454. package/dist/esm/ic-radio-group.entry.js +20 -10
  455. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  456. package/dist/esm/ic-radio-option.entry.js +27 -22
  457. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  458. package/dist/esm/ic-search-bar.entry.js +12 -25
  459. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  460. package/dist/esm/ic-side-navigation.entry.js +2 -2
  461. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  462. package/dist/esm/ic-skeleton.entry.js +4 -4
  463. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  464. package/dist/esm/ic-status-tag.entry.js +2 -2
  465. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  466. package/dist/esm/ic-step.entry.js +4 -5
  467. package/dist/esm/ic-step.entry.js.map +1 -1
  468. package/dist/esm/ic-stepper.entry.js +12 -2
  469. package/dist/esm/ic-stepper.entry.js.map +1 -1
  470. package/dist/esm/ic-switch.entry.js +7 -4
  471. package/dist/esm/ic-switch.entry.js.map +1 -1
  472. package/dist/esm/ic-tab-context.entry.js +58 -122
  473. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  474. package/dist/esm/ic-tab-group.entry.js +1 -1
  475. package/dist/esm/ic-tab-panel.entry.js +2 -2
  476. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  477. package/dist/esm/ic-tab.entry.js +6 -7
  478. package/dist/esm/ic-tab.entry.js.map +1 -1
  479. package/dist/esm/ic-theme.entry.js +1 -1
  480. package/dist/esm/ic-toast.entry.js +3 -3
  481. package/dist/esm/ic-toast.entry.js.map +1 -1
  482. package/dist/esm/ic-toggle-button.entry.js +2 -2
  483. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  484. package/dist/esm/ic-top-navigation.entry.js +2 -2
  485. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  486. package/dist/esm/ic-tree-item.entry.js +5 -3
  487. package/dist/esm/ic-tree-item.entry.js.map +1 -1
  488. package/dist/esm/ic-tree-view.entry.js +10 -2
  489. package/dist/esm/ic-tree-view.entry.js.map +1 -1
  490. package/dist/esm/ic-typography.entry.js +5 -3
  491. package/dist/esm/ic-typography.entry.js.map +1 -1
  492. package/dist/esm/index-93509377.js +4 -12
  493. package/dist/esm/loader.js +1 -1
  494. package/dist/types/components/ic-data-table/ic-data-table.d.ts +4 -0
  495. package/dist/types/components/ic-data-table/story-data.d.ts +15 -0
  496. package/dist/types/components/ic-date-input/ic-date-input.d.ts +4 -0
  497. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +4 -0
  498. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +14 -5
  499. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
  500. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +5 -1
  501. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +5 -0
  502. package/dist/types/components.d.ts +63 -472
  503. package/dist/types/utils/helpers.d.ts +1 -1
  504. package/dist/types/utils/types.d.ts +1 -0
  505. package/hydrate/index.js +3695 -6960
  506. package/package.json +3 -3
  507. package/dist/cjs/helpers-33b42cd6.js.map +0 -1
  508. package/dist/cjs/helpers-6817cfbb.js.map +0 -1
  509. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +0 -156
  510. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +0 -1
  511. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +0 -2738
  512. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +0 -1
  513. package/dist/cjs/ic-menu.cjs.entry.js +0 -658
  514. package/dist/cjs/ic-menu.cjs.entry.js.map +0 -1
  515. package/dist/cjs/ic-select-with-multi.cjs.entry.js +0 -788
  516. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +0 -1
  517. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +0 -712
  518. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +0 -1
  519. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +0 -1057
  520. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +0 -1
  521. package/dist/collection/components/ic-select-with-multi/assets/Check.svg +0 -3
  522. package/dist/collection/components/ic-select-with-multi/assets/Clear.svg +0 -3
  523. package/dist/collection/components/ic-select-with-multi/assets/Expand.svg +0 -3
  524. package/dist/collection/components/ic-select-with-multi/ic-select.css +0 -695
  525. package/dist/collection/components/ic-select-with-multi/ic-select.js +0 -1520
  526. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +0 -1
  527. package/dist/collection/components/ic-select-with-multi/story-data.js +0 -216
  528. package/dist/collection/components/ic-select-with-multi/story-data.js.map +0 -1
  529. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +0 -1518
  530. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +0 -1
  531. package/dist/components/ic-menu-with-multi.d.ts +0 -11
  532. package/dist/components/ic-menu-with-multi.js +0 -8
  533. package/dist/components/ic-menu-with-multi.js.map +0 -1
  534. package/dist/components/ic-menu3.js +0 -2803
  535. package/dist/components/ic-menu3.js.map +0 -1
  536. package/dist/components/ic-select-with-multi.d.ts +0 -11
  537. package/dist/components/ic-select-with-multi.js +0 -906
  538. package/dist/components/ic-select-with-multi.js.map +0 -1
  539. package/dist/core/p-06eeb7f2.entry.js +0 -2
  540. package/dist/core/p-06eeb7f2.entry.js.map +0 -1
  541. package/dist/core/p-0922c552.entry.js +0 -2
  542. package/dist/core/p-0922c552.entry.js.map +0 -1
  543. package/dist/core/p-0bc0e852.entry.js +0 -2
  544. package/dist/core/p-0bc0e852.entry.js.map +0 -1
  545. package/dist/core/p-108a9029.entry.js.map +0 -1
  546. package/dist/core/p-13100d3c.entry.js +0 -2
  547. package/dist/core/p-13100d3c.entry.js.map +0 -1
  548. package/dist/core/p-1769df1d.entry.js +0 -2
  549. package/dist/core/p-1769df1d.entry.js.map +0 -1
  550. package/dist/core/p-297e99cf.js +0 -2
  551. package/dist/core/p-297e99cf.js.map +0 -1
  552. package/dist/core/p-306def43.entry.js.map +0 -1
  553. package/dist/core/p-3778cc5e.entry.js +0 -2
  554. package/dist/core/p-3778cc5e.entry.js.map +0 -1
  555. package/dist/core/p-383a5a76.entry.js +0 -2
  556. package/dist/core/p-383a5a76.entry.js.map +0 -1
  557. package/dist/core/p-3a0510e2.entry.js +0 -2
  558. package/dist/core/p-3a0510e2.entry.js.map +0 -1
  559. package/dist/core/p-3ace51f5.entry.js +0 -2
  560. package/dist/core/p-3ace51f5.entry.js.map +0 -1
  561. package/dist/core/p-3f0391c1.entry.js +0 -2
  562. package/dist/core/p-3f0391c1.entry.js.map +0 -1
  563. package/dist/core/p-41fecc61.entry.js +0 -2
  564. package/dist/core/p-41fecc61.entry.js.map +0 -1
  565. package/dist/core/p-46cb94a2.entry.js +0 -2
  566. package/dist/core/p-46cb94a2.entry.js.map +0 -1
  567. package/dist/core/p-4e67f127.entry.js +0 -2
  568. package/dist/core/p-4e67f127.entry.js.map +0 -1
  569. package/dist/core/p-50e48f4d.entry.js +0 -2
  570. package/dist/core/p-50e48f4d.entry.js.map +0 -1
  571. package/dist/core/p-56e7459a.entry.js +0 -2
  572. package/dist/core/p-56e7459a.entry.js.map +0 -1
  573. package/dist/core/p-59028160.entry.js +0 -2
  574. package/dist/core/p-59028160.entry.js.map +0 -1
  575. package/dist/core/p-5e6fd734.entry.js +0 -2
  576. package/dist/core/p-5e6fd734.entry.js.map +0 -1
  577. package/dist/core/p-5f5403e2.entry.js.map +0 -1
  578. package/dist/core/p-710c6a42.entry.js +0 -2
  579. package/dist/core/p-710c6a42.entry.js.map +0 -1
  580. package/dist/core/p-7a9de008.entry.js +0 -2
  581. package/dist/core/p-7a9de008.entry.js.map +0 -1
  582. package/dist/core/p-801414e2.entry.js +0 -2
  583. package/dist/core/p-801414e2.entry.js.map +0 -1
  584. package/dist/core/p-82ba744d.entry.js +0 -2
  585. package/dist/core/p-82ba744d.entry.js.map +0 -1
  586. package/dist/core/p-9397b15b.js.map +0 -1
  587. package/dist/core/p-9af6adb1.entry.js +0 -2
  588. package/dist/core/p-9af6adb1.entry.js.map +0 -1
  589. package/dist/core/p-9b54feca.entry.js +0 -2
  590. package/dist/core/p-9b54feca.entry.js.map +0 -1
  591. package/dist/core/p-a57cd616.entry.js +0 -2
  592. package/dist/core/p-a57cd616.entry.js.map +0 -1
  593. package/dist/core/p-a5eaed1a.entry.js +0 -2
  594. package/dist/core/p-a5eaed1a.entry.js.map +0 -1
  595. package/dist/core/p-a91340b4.entry.js +0 -2
  596. package/dist/core/p-a91340b4.entry.js.map +0 -1
  597. package/dist/core/p-aee8d45b.entry.js +0 -2
  598. package/dist/core/p-badd4c8d.entry.js +0 -2
  599. package/dist/core/p-badd4c8d.entry.js.map +0 -1
  600. package/dist/core/p-c07af2d8.entry.js +0 -2
  601. package/dist/core/p-c07af2d8.entry.js.map +0 -1
  602. package/dist/core/p-c21d0db8.entry.js.map +0 -1
  603. package/dist/core/p-c678f73d.entry.js +0 -2
  604. package/dist/core/p-c678f73d.entry.js.map +0 -1
  605. package/dist/core/p-c6ae9bad.entry.js +0 -2
  606. package/dist/core/p-c6ae9bad.entry.js.map +0 -1
  607. package/dist/core/p-c6c1e08e.entry.js +0 -2
  608. package/dist/core/p-c6c1e08e.entry.js.map +0 -1
  609. package/dist/core/p-d16f364a.entry.js +0 -2
  610. package/dist/core/p-d16f364a.entry.js.map +0 -1
  611. package/dist/core/p-d239c33b.entry.js +0 -2
  612. package/dist/core/p-d239c33b.entry.js.map +0 -1
  613. package/dist/core/p-d8563643.entry.js.map +0 -1
  614. package/dist/core/p-da40757f.entry.js +0 -2
  615. package/dist/core/p-da40757f.entry.js.map +0 -1
  616. package/dist/core/p-de052137.entry.js +0 -2
  617. package/dist/core/p-de052137.entry.js.map +0 -1
  618. package/dist/core/p-e89bb650.entry.js +0 -2
  619. package/dist/core/p-e89bb650.entry.js.map +0 -1
  620. package/dist/core/p-f1072c28.entry.js.map +0 -1
  621. package/dist/core/p-f37df214.entry.js +0 -2
  622. package/dist/core/p-f37df214.entry.js.map +0 -1
  623. package/dist/core/p-fe13f1ba.entry.js +0 -2
  624. package/dist/core/p-fe13f1ba.entry.js.map +0 -1
  625. package/dist/esm/helpers-5bd2012a.js.map +0 -1
  626. package/dist/esm/helpers-dab8ddfe.js.map +0 -1
  627. package/dist/esm/ic-input-component-container_4.entry.js +0 -149
  628. package/dist/esm/ic-input-component-container_4.entry.js.map +0 -1
  629. package/dist/esm/ic-menu-with-multi.entry.js +0 -2734
  630. package/dist/esm/ic-menu-with-multi.entry.js.map +0 -1
  631. package/dist/esm/ic-menu.entry.js +0 -654
  632. package/dist/esm/ic-menu.entry.js.map +0 -1
  633. package/dist/esm/ic-select-with-multi.entry.js +0 -784
  634. package/dist/esm/ic-select-with-multi.entry.js.map +0 -1
  635. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +0 -214
  636. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +0 -259
  637. package/dist/types/components/ic-select-with-multi/story-data.d.ts +0 -32
  638. /package/dist/core/{p-c033e7d6.entry.js.map → p-036d251b.entry.js.map} +0 -0
  639. /package/dist/core/{p-897b8d16.entry.js.map → p-24d03bbd.entry.js.map} +0 -0
  640. /package/dist/core/{p-a78cf2cb.entry.js.map → p-266098ee.entry.js.map} +0 -0
  641. /package/dist/core/{p-77a32de5.entry.js.map → p-2a3bd99a.entry.js.map} +0 -0
  642. /package/dist/core/{p-202bc922.entry.js.map → p-5ad1a7fb.entry.js.map} +0 -0
  643. /package/dist/core/{p-e5d99316.entry.js.map → p-7b90f0ae.entry.js.map} +0 -0
  644. /package/dist/core/{p-30b046b2.entry.js.map → p-7e5b0fff.entry.js.map} +0 -0
  645. /package/dist/core/{p-505250cf.entry.js.map → p-d7632baf.entry.js.map} +0 -0
  646. /package/dist/core/{p-d03374fc.entry.js.map → p-fbb5c8f2.entry.js.map} +0 -0
@@ -1,12 +1,12 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Fragment, Host } from '@stencil/core/internal/client';
2
2
  import { c as checkIcon } from './check-icon.js';
3
- import { o as onComponentRequiredPropUndefined } from './helpers.js';
3
+ import { C as isMacDevice, o as onComponentRequiredPropUndefined, E as getOptionsWithoutGroupTitlesCount } from './helpers.js';
4
4
  import { d as defineCustomElement$4 } from './ic-button2.js';
5
5
  import { d as defineCustomElement$3 } from './ic-loading-indicator2.js';
6
6
  import { c as createPopper, d as defineCustomElement$2 } from './ic-tooltip2.js';
7
7
  import { d as defineCustomElement$1 } from './ic-typography2.js';
8
8
 
9
- const icMenuCss = "html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type=\"button\"].sc-ic-menu,[type=\"reset\"].sc-ic-menu,[type=\"submit\"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type=\"button\"].sc-ic-menu::-moz-focus-inner,[type=\"reset\"].sc-ic-menu::-moz-focus-inner,[type=\"submit\"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type=\"button\"].sc-ic-menu:-moz-focusring,[type=\"reset\"].sc-ic-menu:-moz-focusring,[type=\"submit\"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type=\"checkbox\"].sc-ic-menu,[type=\"radio\"].sc-ic-menu{box-sizing:border-box;padding:0}[type=\"number\"].sc-ic-menu::-webkit-inner-spin-button,[type=\"number\"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type=\"search\"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type=\"search\"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{border-radius:var(--ic-border-radius);max-height:0;width:var(--input-width, 20rem);color:var(--ic-color-primary-text);--ic-typography-color:var(--ic-color-primary-text);background-color:var(--ic-architectural-white);position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay)}.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus)}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border:var(--ic-border-width) solid var(--ic-architectural-400);border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);visibility:hidden;max-height:0;overflow-y:hidden}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:block}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center;overflow-wrap:anywhere}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 var(--ic-space-1px) var(--ic-space-1px)}.option.sc-ic-menu:first-child{border-radius:var(--ic-space-1px) var(--ic-space-1px) 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-action-dark-bg-hover)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-action-dark-bg-active)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(--ic-color-secondary-text)}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-color-secondary-text);--ic-typography-color:var(--ic-color-secondary-text)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-status-error);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-xs);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-color-tertiary-text)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-border-default)}.disabled-option.sc-ic-menu{color:var(--ic-architectural-200);--ic-typography-color:var(--ic-architectural-200);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-focus-blue) !important;color:var(--ic-architectural-white) !important;--ic-typography-color:var(--ic-architectural-white) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}}";
9
+ const icMenuCss = "html.sc-ic-menu{line-height:1.15;-webkit-text-size-adjust:100%}body.sc-ic-menu{margin:0}main.sc-ic-menu{display:block}h1.sc-ic-menu{font-size:2em;margin:0.67em 0}hr.sc-ic-menu{box-sizing:content-box;height:0;overflow:visible}pre.sc-ic-menu{font-family:monospace, monospace;font-size:1em}a.sc-ic-menu{background-color:transparent}abbr[title].sc-ic-menu{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b.sc-ic-menu,strong.sc-ic-menu{font-weight:bolder}code.sc-ic-menu,kbd.sc-ic-menu,samp.sc-ic-menu{font-family:monospace, monospace;font-size:1em}small.sc-ic-menu{font-size:80%}sub.sc-ic-menu,sup.sc-ic-menu{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub.sc-ic-menu{bottom:-0.25em}sup.sc-ic-menu{top:-0.5em}img.sc-ic-menu{border-style:none}button.sc-ic-menu,input.sc-ic-menu,optgroup.sc-ic-menu,select.sc-ic-menu,textarea.sc-ic-menu{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button.sc-ic-menu,input.sc-ic-menu{overflow:visible}button.sc-ic-menu,select.sc-ic-menu{text-transform:none}button.sc-ic-menu,[type=\"button\"].sc-ic-menu,[type=\"reset\"].sc-ic-menu,[type=\"submit\"].sc-ic-menu{-webkit-appearance:button}button.sc-ic-menu::-moz-focus-inner,[type=\"button\"].sc-ic-menu::-moz-focus-inner,[type=\"reset\"].sc-ic-menu::-moz-focus-inner,[type=\"submit\"].sc-ic-menu::-moz-focus-inner{border-style:none;padding:0}button.sc-ic-menu:-moz-focusring,[type=\"button\"].sc-ic-menu:-moz-focusring,[type=\"reset\"].sc-ic-menu:-moz-focusring,[type=\"submit\"].sc-ic-menu:-moz-focusring{outline:1px dotted ButtonText}fieldset.sc-ic-menu{padding:0.35em 0.75em 0.625em}legend.sc-ic-menu{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress.sc-ic-menu{vertical-align:baseline}textarea.sc-ic-menu{overflow:auto}[type=\"checkbox\"].sc-ic-menu,[type=\"radio\"].sc-ic-menu{box-sizing:border-box;padding:0}[type=\"number\"].sc-ic-menu::-webkit-inner-spin-button,[type=\"number\"].sc-ic-menu::-webkit-outer-spin-button{height:auto}[type=\"search\"].sc-ic-menu{-webkit-appearance:textfield;outline-offset:-2px}[type=\"search\"].sc-ic-menu::-webkit-search-decoration{-webkit-appearance:none}.sc-ic-menu::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details.sc-ic-menu{display:block}summary.sc-ic-menu{display:list-item}template.sc-ic-menu{display:none}[hidden].sc-ic-menu{display:none}html.sc-ic-menu,body.sc-ic-menu,div.sc-ic-menu,span.sc-ic-menu,applet.sc-ic-menu,object.sc-ic-menu,iframe.sc-ic-menu,h1.sc-ic-menu,h2.sc-ic-menu,h3.sc-ic-menu,h4.sc-ic-menu,h5.sc-ic-menu,h6.sc-ic-menu,p.sc-ic-menu,blockquote.sc-ic-menu,pre.sc-ic-menu,a.sc-ic-menu,abbr.sc-ic-menu,acronym.sc-ic-menu,address.sc-ic-menu,big.sc-ic-menu,cite.sc-ic-menu,code.sc-ic-menu,del.sc-ic-menu,dfn.sc-ic-menu,em.sc-ic-menu,img.sc-ic-menu,ins.sc-ic-menu,kbd.sc-ic-menu,q.sc-ic-menu,s.sc-ic-menu,samp.sc-ic-menu,small.sc-ic-menu,strike.sc-ic-menu,strong.sc-ic-menu,sub.sc-ic-menu,sup.sc-ic-menu,tt.sc-ic-menu,var.sc-ic-menu,b.sc-ic-menu,u.sc-ic-menu,i.sc-ic-menu,center.sc-ic-menu,dl.sc-ic-menu,dt.sc-ic-menu,dd.sc-ic-menu,ol.sc-ic-menu,ul.sc-ic-menu,li.sc-ic-menu,fieldset.sc-ic-menu,form.sc-ic-menu,label.sc-ic-menu,legend.sc-ic-menu,table.sc-ic-menu,caption.sc-ic-menu,tbody.sc-ic-menu,tfoot.sc-ic-menu,thead.sc-ic-menu,tr.sc-ic-menu,th.sc-ic-menu,td.sc-ic-menu,article.sc-ic-menu,aside.sc-ic-menu,canvas.sc-ic-menu,details.sc-ic-menu,embed.sc-ic-menu,figure.sc-ic-menu,figcaption.sc-ic-menu,footer.sc-ic-menu,header.sc-ic-menu,hgroup.sc-ic-menu,menu.sc-ic-menu,nav.sc-ic-menu,output.sc-ic-menu,ruby.sc-ic-menu,section.sc-ic-menu,summary.sc-ic-menu,time.sc-ic-menu,mark.sc-ic-menu,audio.sc-ic-menu,video.sc-ic-menu{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}@media (prefers-reduced-motion: no-preference){.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{transition:max-height var(--ic-transition-duration-slow)}}.sc-ic-menu-h{max-height:0;width:var(--menu-width, var(--input-width, 20rem));color:var(--ic-color-text-primary);--ic-typography-color:var(--ic-color-text-primary);background-color:var(--ic-architectural-white);position:relative;z-index:var(--ic-z-index-menu);box-sizing:border-box;box-shadow:var(--ic-elevation-overlay);border-radius:var(--ic-border-radius)}.ic-menu-open.sc-ic-menu-h:not(.ic-menu-no-focus):focus-within{box-shadow:var(--ic-border-focus);outline:var(--ic-hc-focus-outline)}.ic-select-select-all-focused.sc-ic-menu-h{box-shadow:var(--ic-elevation-overlay) !important}#retry-button.sc-ic-menu::part(button){height:var(--ic-space-lg)}.small.sc-ic-menu #retry-button.sc-ic-menu::part(button){height:var(--ic-space-md)}.on-dialog.sc-ic-menu-h{inset:auto !important}.menu.sc-ic-menu{text-decoration:none;list-style-type:none;border-radius:1px;background-color:var(--ic-architectural-white);visibility:hidden;max-height:0;overflow-y:hidden}.menu.sc-ic-menu:has(+.option-bar).sc-ic-menu{border-radius:0 0 1px 1px}.menu-scroll.sc-ic-menu{overflow-y:auto}.menu.sc-ic-menu:focus-visible{outline:none}.ic-menu-open.sc-ic-menu-h{max-height:none;display:flex;flex-direction:column-reverse;border:var(--ic-border-width) solid var(--ic-architectural-400);transition:box-shadow var(--ic-easing-transition-fast)}.ic-menu-open.sc-ic-menu-h .menu.sc-ic-menu{visibility:visible;max-height:calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs))}.ic-menu-open.sc-ic-menu-h .option-bar.sc-ic-menu{visibility:visible}.ic-menu-open.sc-ic-menu-h .select-all-button.sc-ic-menu{display:block}.ic-menu-full-width.sc-ic-menu-h{width:100%}.option.sc-ic-menu{padding:var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));cursor:pointer;display:flex;align-items:center}.loading-option.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.option.sc-ic-menu:not(.loading-option){justify-content:space-between}.ic-menu-small.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px))}.ic-menu-large.sc-ic-menu-h .option.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))}.option.sc-ic-menu:last-child{border-radius:0 0 1px 1px}.sc-ic-menu:not(.menu:has(+.option-bar)).sc-ic-menu .option.sc-ic-menu:first-child{border-radius:1px 1px 0 0}.option.sc-ic-menu:not(.disabled-option):hover{background-color:var(--ic-action-dark-bg-hover)}.option.sc-ic-menu:not(.disabled-option):active{background-color:var(--ic-action-dark-bg-pressed)}.option.sc-ic-menu:focus-visible{outline:var(--ic-hc-focus-outline)}.option.sc-ic-menu:not(.disabled-option) .option-description.sc-ic-menu{--ic-typography-color:var(--ic-color-text-secondary)}.option.sc-ic-menu .option-label.sc-ic-menu{display:flex;flex-direction:row;align-items:top}.option.sc-ic-menu .option-label.sc-ic-menu ic-typography.sc-ic-menu{max-width:100%;word-wrap:break-word}.option.sc-ic-menu .option-element.sc-ic-menu{margin-top:var(--ic-space-xxs)}.option.sc-ic-menu .option-icon.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);margin-top:var(--ic-space-xxs);margin-right:var(--ic-space-xxxs)}.option-text-container.sc-ic-menu{pointer-events:none;width:100%}.option-text-container.show-check-icon.sc-ic-menu{width:calc(var(--ic-space-lg) * 10 + var(--ic-space-xl))}.option.loading-option.sc-ic-menu .option-text-container.sc-ic-menu{margin-left:calc(var(--ic-space-xs) + var(--ic-space-xxxs));color:var(--ic-color-text-secondary);--ic-typography-color:var(--ic-color-text-secondary)}.error-icon-svg.sc-ic-menu{height:var(--ic-space-md);width:var(--ic-space-md);fill:var(--ic-status-error-default);align-self:center;display:flex;margin-right:calc(var(--ic-space-xxs) * 1.2)}.loading-error-info.sc-ic-menu{display:flex}.check-icon.sc-ic-menu{height:var(--ic-space-lg);min-width:var(--ic-space-lg);width:var(--ic-space-lg);margin-left:var(--ic-space-xs);pointer-events:none}.focused-option.sc-ic-menu .check-icon.sc-ic-menu *.sc-ic-menu{fill:currentcolor}.option-group-title.sc-ic-menu{padding:var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);--ic-typography-color:var(--ic-color-text-tertiary)}.ic-menu-small.sc-ic-menu-h .option-group-title.sc-ic-menu{padding:var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs)}.last-recommended-option.sc-ic-menu{border-bottom:var(--ic-border-default)}.disabled-option.sc-ic-menu{color:var(--ic-architectural-200);--ic-typography-color:var(--ic-architectural-200);cursor:default;pointer-events:none}.focused-option.sc-ic-menu,.focused-option.sc-ic-menu .option-description.sc-ic-menu{background-color:var(--ic-color-focus-inner) !important;color:var(--ic-architectural-white) !important;--ic-typography-color:var(--ic-architectural-white) !important}.no-results.sc-ic-menu-h li.sc-ic-menu{cursor:no-drop}.no-results.sc-ic-menu-h li.sc-ic-menu:hover{background-color:transparent}.option-bar.sc-ic-menu{padding:var(--ic-space-xxs) var(--ic-space-xs);display:flex;align-items:center;justify-content:space-between;background-color:var(--ic-architectural-40);visibility:hidden;border-bottom:var(--ic-border-width) solid var(--ic-architectural-400);border-radius:1px 1px 0 0}.option-bar.sc-ic-menu p.sc-ic-menu{margin-bottom:0 !important}.ic-menu-large.sc-ic-menu-h .option-bar.sc-ic-menu{padding:var(--ic-space-xs)}.select-all-button.sc-ic-menu{display:none}.select-all-button.sc-ic-menu:focus{z-index:calc(var(--ic-z-index-menu) + 1)}@media (forced-colors: active){.focused-option.sc-ic-menu:focus{outline:none;border:0.125rem solid transparent}}";
10
10
 
11
11
  const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
12
12
  constructor() {
@@ -15,19 +15,26 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
15
15
  this.menuKeyPress = createEvent(this, "menuKeyPress", 7);
16
16
  this.menuOptionId = createEvent(this, "menuOptionId", 7);
17
17
  this.menuOptionSelect = createEvent(this, "menuOptionSelect", 7);
18
+ this.menuOptionSelectAll = createEvent(this, "menuOptionSelectAll", 7);
18
19
  this.menuStateChange = createEvent(this, "menuStateChange", 7);
19
- this.menuValueChange = createEvent(this, "menuValueChange", 7);
20
20
  this.retryButtonClicked = createEvent(this, "retryButtonClicked", 7);
21
21
  this.timeoutBlur = createEvent(this, "timeoutBlur", 7);
22
22
  this.ungroupedOptionsSet = createEvent(this, "ungroupedOptionsSet", 7);
23
+ this.ACTIVE_DESCENDANT = "aria-activedescendant";
24
+ this.CLEAR_BUTTON_ID = "clear-button";
23
25
  this.disabledOptionSelected = false;
24
26
  this.hasPreviouslyBlurred = false;
25
27
  this.hasTimedOut = false;
26
28
  this.isLoading = false;
29
+ this.isMultiSelect = false;
27
30
  this.isSearchBar = false;
28
31
  this.isSearchableSelect = false;
29
- // Prevents menu re-opening immediately after it is closed on blur when clicking input.
30
- this.preventClickOpen = false;
32
+ this.lastOptionSelected = null; // Index of last option selected
33
+ this.lastOptionFocused = null; // Index of last option focused
34
+ this.multiOptionClicked = null;
35
+ this.preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.
36
+ this.preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.
37
+ this.shiftPressed = false;
31
38
  this.ungroupedOptions = [];
32
39
  this.handleClearListener = () => {
33
40
  this.optionHighlighted = "";
@@ -38,9 +45,16 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
38
45
  };
39
46
  this.handleMenuChange = (open, focusInput) => {
40
47
  this.menuStateChange.emit({ open, focusInput });
41
- if (!open && focusInput !== false) {
42
- this.inputEl.focus();
43
- this.preventClickOpen = false;
48
+ if (!open) {
49
+ if (focusInput !== false) {
50
+ this.inputEl.focus();
51
+ this.preventClickOpen = false;
52
+ }
53
+ // Reset optionHighlighted so previously highlighted option doesn't get reselected when Enter pressed
54
+ if (this.isMultiSelect) {
55
+ this.optionHighlighted = undefined;
56
+ this.multiOptionClicked = null;
57
+ }
44
58
  }
45
59
  };
46
60
  this.setNextOptionValue = (selectedOptionIndex) => {
@@ -75,24 +89,34 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
75
89
  if (parent.tagName === "IC-SEARCH-BAR") {
76
90
  this.isSearchBar = true;
77
91
  }
78
- else if (parent.tagName === "IC-SELECT" &&
79
- parent.getAttribute("searchable") !== null &&
80
- parent.getAttribute("searchable") !== undefined) {
81
- this.isSearchableSelect = true;
92
+ else if (parent.tagName === "IC-SELECT") {
93
+ if (parent.getAttribute("searchable") !== null &&
94
+ parent.getAttribute("searchable") !== undefined) {
95
+ this.isSearchableSelect = true;
96
+ }
97
+ else if (parent.getAttribute("multiple") !== null &&
98
+ parent.getAttribute("multiple") !== undefined) {
99
+ this.isMultiSelect = true;
100
+ }
82
101
  }
83
102
  };
103
+ // Open menu when up or down arrow keys are pressed
84
104
  this.arrowBehaviour = (event) => {
85
105
  event.preventDefault();
86
106
  this.handleMenuChange(true);
87
107
  };
88
- this.setMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;
108
+ this.getMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;
109
+ // Set option that is focused and so should show focus state
89
110
  this.setHighlightedOption = (highlightedIndex) => {
90
- const menuOptions = this.setMenuOptions();
111
+ const menuOptions = this.getMenuOptions();
91
112
  menuOptions[highlightedIndex] &&
92
113
  !menuOptions[highlightedIndex].timedOut &&
93
114
  (this.optionHighlighted =
94
115
  menuOptions[highlightedIndex][this.valueField] || undefined);
95
116
  };
117
+ // Determines keyboard behaviour when selection is automatic
118
+ // (i.e. you don't have to press Enter select an option - just focus on it)
119
+ // and menu is closed
96
120
  this.autoSetInputValueKeyboardOpen = (event) => {
97
121
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
98
122
  this.keyboardNav = false;
@@ -109,147 +133,278 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
109
133
  break;
110
134
  case " ":
111
135
  case "Enter":
112
- if (event.target.id !== "clear-button") {
136
+ if (event.target.id !== this.CLEAR_BUTTON_ID) {
113
137
  this.handleMenuChange(true);
114
138
  }
115
139
  break;
116
140
  }
117
141
  };
118
- this.manSetInputValueKeyboardOpen = (event) => {
119
- const menuOptions = this.setMenuOptions();
120
- const highlightedOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
121
- const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
142
+ this.selectHighlightedOption = (options, highlightedOptionIndex) => {
143
+ if (!this.isLoading && !this.hasTimedOut) {
144
+ this.keyboardNav = true;
145
+ }
122
146
  const isOpen = this.isSearchBar || this.isSearchableSelect || this.open;
123
- switch (event.key) {
124
- case "ArrowDown":
125
- this.keyboardNav = true;
126
- this.arrowBehaviour(event);
127
- if (highlightedOptionIndex < menuOptions.length - 1) {
128
- this.setHighlightedOption(highlightedOptionIndex + 1);
129
- this.menuOptionId.emit({
130
- optionId: getOptionId(highlightedOptionIndex + 1),
131
- });
132
- }
133
- else {
134
- this.setHighlightedOption(0);
135
- this.menuOptionId.emit({
136
- optionId: getOptionId(0),
137
- });
147
+ if (isOpen) {
148
+ if (highlightedOptionIndex >= 0) {
149
+ if (options[highlightedOptionIndex] !== undefined) {
150
+ if (this.isSearchBar &&
151
+ options[highlightedOptionIndex].disabled === true) {
152
+ this.disabledOptionSelected = true;
153
+ }
154
+ else {
155
+ this.setInputValue(highlightedOptionIndex);
156
+ }
138
157
  }
139
- this.preventIncorrectTabOrder = false;
140
- this.focusFromSearchKeypress = false;
141
- break;
142
- case "ArrowUp":
143
- this.keyboardNav = true;
144
- this.arrowBehaviour(event);
145
- if (highlightedOptionIndex <= 0 ||
146
- highlightedOptionIndex > menuOptions.length + 1) {
147
- this.setHighlightedOption(menuOptions.length - 1);
158
+ }
159
+ else {
160
+ this.setInputValue(highlightedOptionIndex);
161
+ }
162
+ }
163
+ else {
164
+ this.handleMenuChange(true);
165
+ }
166
+ };
167
+ // Check if option is selected based on the index of the option
168
+ this.isOptionSelected = (index) => {
169
+ const menuOptions = this.getMenuOptions();
170
+ return this.value
171
+ ? this.value.includes(menuOptions[index][this.valueField])
172
+ : false;
173
+ };
174
+ // Deselect currently selected options when shift pressed, but keep certain options selected
175
+ this.deselectSelectedOptions = (optionsToKeepSelected) => {
176
+ const menuOptions = this.getMenuOptions();
177
+ if (this.value) {
178
+ const selectedOptionIndexes = this.value.map((value) => {
179
+ return menuOptions.findIndex((option) => option[this.valueField] === value);
180
+ });
181
+ // Call setInputValue (which toggles the selected state) on options that need to be deselected
182
+ selectedOptionIndexes.forEach((index) => !optionsToKeepSelected.includes(index) && this.setInputValue(index));
183
+ }
184
+ };
185
+ // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)
186
+ this.manualSetInputValueKeyboardOpen = (event) => {
187
+ const menuOptions = this.getMenuOptions();
188
+ // For preventing focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed
189
+ // (i.e. when user is likely in the middle of executing a keyboard combination to select options)
190
+ const isKeyboardCombination = event.shiftKey || event.metaKey || event.ctrlKey;
191
+ const highlightedOptionIndex = this.getOptionHighlightedIndex();
192
+ const clickedMultiOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.multiOptionClicked);
193
+ const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
194
+ // Space press should be equivalent to Enter when multi-select
195
+ if (event.key === " " && this.isMultiSelect) {
196
+ this.handleOptionSelect(event, highlightedOptionIndex);
197
+ }
198
+ else {
199
+ switch (event.key) {
200
+ case "ArrowDown":
201
+ this.keyboardNav = true;
202
+ this.arrowBehaviour(event);
203
+ if (this.multiOptionClicked) {
204
+ // Set focus to option last clicked
205
+ // Prevents it resetting to the top of the menu when user switches to using keyboard
206
+ this.setHighlightedOption(clickedMultiOptionIndex);
207
+ this.multiOptionClicked = null;
208
+ }
209
+ else {
210
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
211
+ if (highlightedOptionIndex < menuOptions.length - 1) {
212
+ this.setHighlightedOption(highlightedOptionIndex + 1);
213
+ this.menuOptionId.emit({
214
+ optionId: getOptionId(highlightedOptionIndex + 1),
215
+ });
216
+ this.handleSingleShiftSelect(event, highlightedOptionIndex + 1, menuOptions);
217
+ }
218
+ else {
219
+ this.setHighlightedOption(0);
220
+ this.menuOptionId.emit({
221
+ optionId: getOptionId(0),
222
+ });
223
+ this.handleSingleShiftSelect(event, 0, menuOptions);
224
+ }
225
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
226
+ if (this.isMultiSelect && this.shiftPressed) {
227
+ this.deselectSelectedOptions([
228
+ highlightedOptionIndex,
229
+ this.getOptionHighlightedIndex(),
230
+ ]);
231
+ this.shiftPressed = false;
232
+ }
233
+ }
234
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
235
+ this.preventIncorrectTabOrder = false;
236
+ this.focusFromSearchKeypress = false;
237
+ break;
238
+ case "ArrowUp":
239
+ this.keyboardNav = true;
240
+ this.arrowBehaviour(event);
241
+ if (this.multiOptionClicked) {
242
+ // Set focus to option last clicked
243
+ // Prevents it resetting to the bottom of the menu when user switches to using keyboard
244
+ this.setHighlightedOption(clickedMultiOptionIndex);
245
+ this.multiOptionClicked = null;
246
+ }
247
+ else {
248
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
249
+ if (highlightedOptionIndex <= 0 ||
250
+ highlightedOptionIndex > menuOptions.length + 1) {
251
+ this.setHighlightedOption(menuOptions.length - 1);
252
+ this.menuOptionId.emit({
253
+ optionId: getOptionId(menuOptions.length - 1),
254
+ });
255
+ this.handleSingleShiftSelect(event, menuOptions.length - 1, menuOptions);
256
+ }
257
+ else {
258
+ this.setHighlightedOption(highlightedOptionIndex - 1);
259
+ this.menuOptionId.emit({
260
+ optionId: getOptionId(highlightedOptionIndex - 1),
261
+ });
262
+ this.handleSingleShiftSelect(event, highlightedOptionIndex - 1, menuOptions);
263
+ }
264
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
265
+ if (this.isMultiSelect && this.shiftPressed) {
266
+ this.deselectSelectedOptions([
267
+ highlightedOptionIndex,
268
+ this.getOptionHighlightedIndex(),
269
+ ]);
270
+ this.shiftPressed = false;
271
+ }
272
+ }
273
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
274
+ this.preventIncorrectTabOrder = false;
275
+ this.focusFromSearchKeypress = false;
276
+ break;
277
+ case "Home": {
278
+ const startOptionIndex = 0;
279
+ this.keyboardNav = true;
280
+ event.preventDefault();
281
+ this.arrowBehaviour(event);
282
+ this.setHighlightedOption(startOptionIndex);
148
283
  this.menuOptionId.emit({
149
- optionId: getOptionId(menuOptions.length - 1),
284
+ optionId: getOptionId(startOptionIndex),
150
285
  });
286
+ if (event.shiftKey && event.ctrlKey) {
287
+ this.handleMultipleShiftSelect(startOptionIndex);
288
+ }
289
+ this.lastOptionFocused = startOptionIndex;
290
+ this.lastOptionSelected = startOptionIndex;
291
+ break;
151
292
  }
152
- else {
153
- this.setHighlightedOption(highlightedOptionIndex - 1);
293
+ case "End": {
294
+ const endOptionIndex = menuOptions.length - 1;
295
+ this.keyboardNav = true;
296
+ event.preventDefault();
297
+ this.arrowBehaviour(event);
298
+ this.setHighlightedOption(endOptionIndex);
154
299
  this.menuOptionId.emit({
155
- optionId: getOptionId(highlightedOptionIndex - 1),
300
+ optionId: getOptionId(endOptionIndex),
156
301
  });
157
- }
158
- this.preventIncorrectTabOrder = false;
159
- this.focusFromSearchKeypress = false;
160
- break;
161
- case "Home":
162
- this.keyboardNav = true;
163
- event.preventDefault();
164
- this.arrowBehaviour(event);
165
- this.setHighlightedOption(0);
166
- this.menuOptionId.emit({
167
- optionId: getOptionId(0),
168
- });
169
- break;
170
- case "End":
171
- this.keyboardNav = true;
172
- event.preventDefault();
173
- this.arrowBehaviour(event);
174
- this.setHighlightedOption(menuOptions.length - 1);
175
- this.menuOptionId.emit({
176
- optionId: getOptionId(menuOptions.length - 1),
177
- });
178
- break;
179
- case " ":
180
- this.keyboardNav = false;
181
- if (this.isSearchBar || this.isSearchableSelect) {
302
+ if (event.shiftKey && event.ctrlKey) {
303
+ this.handleMultipleShiftSelect(endOptionIndex);
304
+ }
305
+ this.lastOptionFocused = endOptionIndex;
306
+ this.lastOptionSelected = endOptionIndex;
182
307
  break;
183
308
  }
184
- else {
185
- if (event.target.id !== "clear-button") {
186
- this.handleMenuChange(true);
309
+ case " ":
310
+ if (!isKeyboardCombination) {
311
+ this.keyboardNav = false;
187
312
  }
188
- }
189
- break;
190
- case "Enter":
191
- event.preventDefault();
192
- this.keyboardNav = false;
193
- if (isOpen) {
194
- if (highlightedOptionIndex >= 0) {
195
- if (menuOptions[highlightedOptionIndex] !== undefined) {
196
- if (this.isSearchBar &&
197
- menuOptions[highlightedOptionIndex].disabled === true) {
198
- this.disabledOptionSelected = true;
199
- }
200
- else {
201
- this.setInputValue(highlightedOptionIndex);
202
- this.value =
203
- menuOptions[highlightedOptionIndex][this.valueField];
204
- }
313
+ if (this.isSearchBar || this.isSearchableSelect) {
314
+ break;
315
+ }
316
+ else {
317
+ if (event.target.id !== this.CLEAR_BUTTON_ID) {
318
+ this.handleMenuChange(true);
319
+ }
320
+ }
321
+ break;
322
+ case "Enter":
323
+ event.preventDefault();
324
+ if (!isKeyboardCombination) {
325
+ this.keyboardNav = false;
326
+ }
327
+ this.handleOptionSelect(event, highlightedOptionIndex);
328
+ break;
329
+ case "Escape":
330
+ if (this.open) {
331
+ event.stopImmediatePropagation();
332
+ }
333
+ this.handleMenuChange(false);
334
+ this.menuOptionId.emit({ optionId: undefined });
335
+ break;
336
+ case "a":
337
+ // Checks if Cmd (meta) key is pressed if Mac device (while excluding meta key on Windows)
338
+ // Otherwise, if a different OS, checks Ctrl key
339
+ if ((isMacDevice() && event.metaKey) ||
340
+ (!isMacDevice() && event.ctrlKey)) {
341
+ this.emitSelectAll();
342
+ this.lastOptionFocused = null;
343
+ this.lastOptionSelected = null;
344
+ }
345
+ break;
346
+ case "Shift":
347
+ case "Tab":
348
+ if (event.key === "Shift") {
349
+ this.shiftPressed = true;
350
+ }
351
+ if (this.isSearchBar) {
352
+ this.keyboardNav = true;
353
+ }
354
+ if (this.isMultiSelect) {
355
+ if (this.open && !event.shiftKey && this.selectAllButton) {
356
+ event.preventDefault();
357
+ this.selectAllButton.focus(); // Move focus to select all button instead of focused option
358
+ this.preventMenuFocus = true;
359
+ this.preventClickOpen = true;
360
+ this.optionHighlighted = undefined; // Stop any option focus states showing when focus moved to select all button
205
361
  }
206
362
  }
207
363
  else {
208
- this.setInputValue(highlightedOptionIndex);
364
+ this.preventIncorrectTabOrder = true;
209
365
  }
210
- }
211
- else {
212
- this.handleMenuChange(true);
213
- }
214
- break;
215
- case "Escape":
216
- if (this.open) {
217
- event.stopImmediatePropagation();
218
- }
219
- this.handleMenuChange(false);
220
- this.menuOptionId.emit({ optionId: undefined });
221
- break;
222
- case "Shift":
223
- case "Tab":
224
- if (this.isSearchBar) {
225
- this.keyboardNav = true;
226
- }
227
- this.preventIncorrectTabOrder = true;
228
- break;
229
- default:
230
- this.keyboardNav = false;
231
- this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);
232
- break;
366
+ break;
367
+ default:
368
+ if (!isKeyboardCombination) {
369
+ this.keyboardNav = false;
370
+ }
371
+ this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);
372
+ }
233
373
  }
234
374
  };
235
375
  this.setInputValue = (highlightedOptionIndex) => {
236
- const menuOptions = this.setMenuOptions();
376
+ const menuOptions = this.getMenuOptions();
237
377
  if (menuOptions[highlightedOptionIndex] !== undefined) {
238
378
  this.menuOptionSelect.emit({
239
379
  value: menuOptions[highlightedOptionIndex][this.valueField],
240
380
  });
241
- this.optionHighlighted = undefined;
242
- this.menuOptionId.emit({ optionId: undefined });
381
+ if (this.closeOnSelect) {
382
+ this.optionHighlighted = undefined;
383
+ this.menuOptionId.emit({ optionId: undefined });
384
+ }
385
+ }
386
+ if (this.closeOnSelect) {
387
+ if (!this.hasTimedOut) {
388
+ this.handleMenuChange(false);
389
+ }
390
+ else {
391
+ this.parentEl.setFocus();
392
+ }
243
393
  }
244
- if (!this.hasTimedOut)
245
- this.handleMenuChange(false);
246
- else
247
- this.parentEl.setFocus();
248
394
  };
249
395
  this.handleOptionClick = (event) => {
250
396
  const { value, label } = event.target.dataset;
251
- this.menuOptionSelect.emit({ value, label });
252
- this.handleMenuChange(false);
397
+ if (this.isMultiSelect) {
398
+ const menuOptions = this.getMenuOptions();
399
+ const selectedOptionIndex = menuOptions.findIndex((option) => option.value === value);
400
+ this.handleOptionSelect(event, selectedOptionIndex, true);
401
+ this.multiOptionClicked = value;
402
+ }
403
+ else {
404
+ this.menuOptionSelect.emit({ value, label });
405
+ this.handleMenuChange(false);
406
+ }
407
+ this.optionHighlighted = undefined;
253
408
  };
254
409
  this.handleRetry = () => {
255
410
  this.retryButtonClicked.emit({ value: this.value });
@@ -262,13 +417,23 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
262
417
  };
263
418
  this.handleBlur = (event) => {
264
419
  if (event.relatedTarget !== this.inputEl) {
265
- if (!this.menu.contains(event.relatedTarget)) {
420
+ if (event.relatedTarget === this.selectAllButton) {
421
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
422
+ }
423
+ if (!(this.menu.contains(event.relatedTarget) ||
424
+ event.relatedTarget === this.selectAllButton)) {
266
425
  this.handleMenuChange(false, this.hasPreviouslyBlurred);
426
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
427
+ this.lastOptionFocused = null;
428
+ this.lastOptionSelected = null;
267
429
  }
268
430
  }
269
431
  else {
270
432
  this.handleMenuChange(false);
271
433
  this.preventClickOpen = true;
434
+ this.menu.removeAttribute(this.ACTIVE_DESCENDANT);
435
+ this.lastOptionFocused = null;
436
+ this.lastOptionSelected = null;
272
437
  }
273
438
  if (!this.isSearchBar)
274
439
  this.hasPreviouslyBlurred = !!event.relatedTarget;
@@ -281,12 +446,109 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
281
446
  this.autoSetValueOnMenuKeyDown(event);
282
447
  }
283
448
  else if (this.activationType === "manual" && !this.isSearchBar) {
284
- this.manSetInputValueKeyboardOpen(event);
449
+ this.manualSetInputValueKeyboardOpen(event);
285
450
  }
286
451
  };
452
+ this.handleMenuKeyUp = (event) => {
453
+ if (event.key === "Tab" && event.shiftKey) {
454
+ this.preventClickOpen = false;
455
+ }
456
+ if (event.key === "Enter" && this.disabledOptionSelected) {
457
+ this.disabledOptionSelected = false;
458
+ event.stopImmediatePropagation();
459
+ }
460
+ if (event.key === "Shift") {
461
+ this.shiftPressed = false;
462
+ }
463
+ };
464
+ this.handleSelectAllClick = () => {
465
+ this.keyboardNav = false;
466
+ this.menu.focus();
467
+ this.emitSelectAll();
468
+ this.lastOptionFocused = null;
469
+ this.lastOptionSelected = null;
470
+ };
471
+ this.handleSelectAllBlur = (event) => {
472
+ this.host.classList.remove("ic-select-select-all-focused");
473
+ if (!this.menu.contains(event.relatedTarget)) {
474
+ this.handleMenuChange(false, false);
475
+ }
476
+ };
477
+ this.handleSelectAllFocus = () => {
478
+ this.host.classList.add("ic-select-select-all-focused");
479
+ this.lastOptionFocused = null;
480
+ this.lastOptionSelected = null;
481
+ };
482
+ // Fix for Safari - select all button click was causing menu to close
483
+ this.handleSelectAllMouseDown = (event) => {
484
+ event.preventDefault();
485
+ };
486
+ // When shift key is being used to select contiguous options one by one on a multi-select
487
+ // I.e. holding shift and pressing up and down arrow keys
488
+ this.handleSingleShiftSelect = (event, optionToSelectIndex, options) => {
489
+ if (this.isMultiSelect &&
490
+ event.shiftKey &&
491
+ !this.isOptionSelected(optionToSelectIndex)) {
492
+ this.selectHighlightedOption(options, optionToSelectIndex);
493
+ this.lastOptionSelected = optionToSelectIndex;
494
+ }
495
+ };
496
+ // When shift key is being used to select multiple options at once on a multi-select
497
+ // I.e. holding shift when selecting another option
498
+ this.handleMultipleShiftSelect = (lastOptionInSelection, useFocusForSelection = false, firstOptionSelected = null) => {
499
+ this.shiftPressed = false;
500
+ const firstOptionInSelection = firstOptionSelected === null
501
+ ? this.getFirstOptionInSelection(useFocusForSelection)
502
+ : firstOptionSelected;
503
+ if (firstOptionInSelection !== null) {
504
+ const optionsToSelect = [];
505
+ if (firstOptionInSelection < lastOptionInSelection) {
506
+ for (let i = firstOptionInSelection; i < lastOptionInSelection + 1; i++) {
507
+ optionsToSelect.push(i);
508
+ }
509
+ }
510
+ else {
511
+ for (let i = firstOptionInSelection; i > lastOptionInSelection - 1; i--) {
512
+ optionsToSelect.push(i);
513
+ }
514
+ }
515
+ optionsToSelect.forEach((optionIndex) => !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex));
516
+ this.deselectSelectedOptions(optionsToSelect);
517
+ }
518
+ };
519
+ this.handleOptionSelect = (event, optionIndex, useFocusForSelection = false) => {
520
+ const menuOptions = this.getMenuOptions();
521
+ const firstOptionInSelection = this.getFirstOptionInSelection(useFocusForSelection);
522
+ if (event.shiftKey && firstOptionInSelection !== null) {
523
+ this.handleMultipleShiftSelect(optionIndex, useFocusForSelection, firstOptionInSelection);
524
+ }
525
+ else {
526
+ this.selectHighlightedOption(menuOptions, optionIndex);
527
+ }
528
+ this.lastOptionFocused = optionIndex;
529
+ this.lastOptionSelected = optionIndex;
530
+ };
531
+ this.getFirstOptionInSelection = (useFocusForSelection) => {
532
+ return useFocusForSelection && this.lastOptionFocused !== null
533
+ ? this.lastOptionFocused
534
+ : this.lastOptionSelected !== null
535
+ ? this.lastOptionSelected
536
+ : null;
537
+ };
538
+ this.emitSelectAll = () => {
539
+ var _a;
540
+ // Select all if there is either no value or not all options are selected
541
+ // 'true' means select all, 'false' means clear all
542
+ this.menuOptionSelectAll.emit({
543
+ select: !this.value || !(((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === this.ungroupedOptions.length),
544
+ });
545
+ };
287
546
  this.emitMenuKeyPress = (isNavKey, key) => {
288
547
  this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });
289
548
  };
549
+ // Determines keyboard behaviour when selection is automatic
550
+ // (i.e. you don't have to press Enter select an option - just focus on it)
551
+ // and menu is focused
290
552
  this.autoSetValueOnMenuKeyDown = (event) => {
291
553
  event.cancelBubble = true;
292
554
  const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);
@@ -346,15 +608,6 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
346
608
  }
347
609
  this.emitMenuKeyPress(this.keyboardNav, event.key);
348
610
  };
349
- this.handleMenuKeyUp = (event) => {
350
- if (event.key === "Tab" && event.shiftKey) {
351
- this.preventClickOpen = false;
352
- }
353
- if (event.key === "Enter" && this.disabledOptionSelected) {
354
- this.disabledOptionSelected = false;
355
- event.stopImmediatePropagation();
356
- }
357
- };
358
611
  this.getOptionId = (value) => {
359
612
  return `${this.menuId}-${value}`;
360
613
  };
@@ -380,6 +633,10 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
380
633
  }
381
634
  return sorted;
382
635
  };
636
+ this.getOptionHighlightedIndex = () => {
637
+ const menuOptions = this.getMenuOptions();
638
+ return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
639
+ };
383
640
  this.isManualMode = this.activationType === "manual";
384
641
  this.scrollToSelected = (menu) => {
385
642
  const selectedOption = this.selectOnEnter
@@ -391,9 +648,14 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
391
648
  elTop < menu.scrollTop + menu.offsetHeight) {
392
649
  menu.scrollTop = selectedOption.offsetTop;
393
650
  }
651
+ // 'aria-activedescendant' affects screen reader focus
652
+ // https://www.w3.org/TR/2017/WD-wai-aria-practices-1.1-20170628/#kbd_focus_activedescendant
653
+ this.menu.setAttribute(this.ACTIVE_DESCENDANT, selectedOption.id);
394
654
  selectedOption.focus();
395
655
  }
396
656
  };
657
+ // Set 'ungroupedOptions' variable and emit its value
658
+ // - this is all the options with disabled options and group titles removed
397
659
  this.loadUngroupedOptions = () => {
398
660
  if (this.options.length > 0 && this.options.map) {
399
661
  this.options.map((option) => {
@@ -420,21 +682,24 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
420
682
  this.handleTimeoutBlur = (ev) => {
421
683
  this.timeoutBlur.emit({ ev });
422
684
  };
423
- this.optionContent = (option) => {
424
- var _a;
425
- return (h(Fragment, null, option.loading && h("ic-loading-indicator", { size: "icon" }), h("div", { class: "option-text-container" }, h("div", { class: "option-label" }, option.icon && (h("div", { class: "option-icon", innerHTML: option.icon, "aria-hidden": "true" })), h("ic-typography", { variant: "body", "aria-hidden": "true" }, option[this.labelField])), option.description && (h("ic-typography", { id: `${this.getOptionId(option[this.valueField])}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, h("p", null, option.description))), option.element && (h("div", { class: "option-element", innerHTML: option.element.component, "aria-hidden": "true" }))), !!option[this.valueField] &&
685
+ this.optionContent = (option, selected) => {
686
+ const showCheckIcon = !!option[this.valueField] &&
426
687
  !!this.value &&
427
- option[this.valueField].toLowerCase() === ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) &&
428
- this.parentEl.tagName !== "IC-SEARCH-BAR" && (h("span", { class: "check-icon", innerHTML: checkIcon }))));
688
+ selected &&
689
+ this.parentEl.tagName !== "IC-SEARCH-BAR";
690
+ return (h(Fragment, null, option.loading && h("ic-loading-indicator", { size: "icon" }), h("div", { class: {
691
+ "option-text-container": true,
692
+ "show-check-icon": showCheckIcon,
693
+ } }, h("div", { class: "option-label" }, option.icon && (h("div", { class: "option-icon", innerHTML: option.icon, "aria-hidden": "true" })), h("ic-typography", { variant: "body", "aria-hidden": "true" }, option[this.labelField])), option.description && (h("ic-typography", { id: `${this.getOptionId(option[this.valueField])}-description`, class: "option-description", variant: "caption", "aria-hidden": "true" }, h("p", null, option.description))), option.element && (h("div", { class: "option-element", innerHTML: option.element.component, "aria-hidden": "true" }))), showCheckIcon && h("span", { class: "check-icon", innerHTML: checkIcon })));
429
694
  };
430
- this.displayOption = (option, index, parentOption) => {
431
- const { open, value, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;
695
+ this.displayOption = (option, selected, index, parentOption) => {
696
+ const { open, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;
432
697
  return (h("li", { id: this.getOptionId(option[this.valueField]), class: {
433
698
  option: true,
434
699
  "focused-option": isManualMode
435
700
  ? (keyboardNav || initialOptionsListRender) &&
436
701
  option[this.valueField] === optionHighlighted
437
- : keyboardNav && option[this.valueField] === value,
702
+ : keyboardNav && selected,
438
703
  "last-recommended-option": option.recommended &&
439
704
  options[index + 1] &&
440
705
  !options[index + 1].recommended,
@@ -442,20 +707,21 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
442
707
  "loading-option": option.loading,
443
708
  timeout: option.timedOut,
444
709
  }, role: "option", tabindex: open &&
445
- (option[this.valueField] === value ||
446
- option[this.valueField] === optionHighlighted) &&
710
+ (selected || option[this.valueField] === optionHighlighted) &&
447
711
  keyboardNav
448
712
  ? "0"
449
- : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": `${option[this.valueField] === value}`, "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading && this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option[this.valueField], "data-label": option[this.labelField] }, option.timedOut ? (h(Fragment, null, h("div", { class: "loading-error-info" }, h("svg", { class: "error-icon-svg", "aria-labelledby": "error-title", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#000000" }, h("title", { id: "error-title" }, "Error"), h("g", { id: "close-octagon" }, h("path", { id: "Vector", d: "M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41" }))), h("ic-typography", { variant: "label" }, option[this.labelField])), h("ic-button", { size: "small", variant: "tertiary", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: "retry-button" }, "Retry"))) : (this.optionContent(option))));
713
+ : "-1", "aria-label": this.getOptionAriaLabel(option, parentOption), "aria-selected": selected ? "true" : "false", "aria-disabled": option.disabled ? "true" : "false", onClick: !option.timedOut && !option.loading && this.handleOptionClick, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, "data-value": option[this.valueField], "data-label": option[this.labelField] }, option.timedOut ? (h(Fragment, null, h("div", { class: "loading-error-info" }, h("svg", { class: "error-icon-svg", "aria-labelledby": "error-title", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "#000000" }, h("title", { id: "error-title" }, "Error"), h("g", { id: "close-octagon" }, h("path", { id: "Vector", d: "M8.77 3L3.5 8.27V15.73L8.77 21H16.23L21.5 15.73V8.27L16.23 3M8.91 7L12.5 10.59L16.09 7L17.5 8.41L13.91 12L17.5 15.59L16.09 17L12.5 13.41L8.91 17L7.5 15.59L11.09 12L7.5 8.41" }))), h("ic-typography", { variant: "label" }, option[this.labelField])), h("ic-button", { size: "small", variant: "tertiary", onClick: this.handleRetry, onKeyDown: this.handleRetryKeyDown, onBlur: this.handleTimeoutBlur, id: "retry-button" }, "Retry"))) : (this.optionContent(option, selected))));
450
714
  };
451
715
  this.focusFromSearchKeypress = false;
452
716
  this.initialOptionsListRender = false;
453
717
  this.keyboardNav = false;
454
718
  this.optionHighlighted = undefined;
455
719
  this.preventIncorrectTabOrder = false;
720
+ this.menuOptions = undefined;
456
721
  this.activationType = "automatic";
457
722
  this.anchorEl = undefined;
458
723
  this.autoFocusOnSelected = true;
724
+ this.closeOnSelect = true;
459
725
  this.fullWidth = false;
460
726
  this.inputEl = undefined;
461
727
  this.inputLabel = undefined;
@@ -482,9 +748,6 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
482
748
  this.ungroupedOptions = [];
483
749
  this.loadUngroupedOptions();
484
750
  }
485
- watchValueHandler() {
486
- this.menuValueChange.emit({ value: this.value });
487
- }
488
751
  connectedCallback() {
489
752
  this.getParentEl(this.parentEl);
490
753
  if (this.isSearchBar) {
@@ -523,7 +786,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
523
786
  }
524
787
  componentDidUpdate() {
525
788
  const inputValueInOptions = this.options.some((option) => option[this.valueField] === this.value);
526
- if (this.open && this.options.length !== 0) {
789
+ if (this.open && this.options.length !== 0 && !this.preventMenuFocus) {
527
790
  if (this.value &&
528
791
  this.keyboardNav &&
529
792
  inputValueInOptions &&
@@ -531,8 +794,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
531
794
  !this.isSearchableSelect) {
532
795
  this.scrollToSelected(this.menu);
533
796
  }
534
- else if (this.inputEl.tagName !== "IC-TEXT-FIELD" &&
535
- this.inputEl.tagName !== "INPUT") {
797
+ else if (this.selectOnEnter) {
536
798
  this.menu.focus();
537
799
  }
538
800
  else if (!!this.optionHighlighted &&
@@ -540,13 +802,19 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
540
802
  !this.preventIncorrectTabOrder) {
541
803
  const highlightedEl = this.host.querySelector(`li[data-value="${this.optionHighlighted}"]`);
542
804
  if (highlightedEl) {
805
+ this.menu.setAttribute(this.ACTIVE_DESCENDANT, highlightedEl.id);
543
806
  highlightedEl.focus();
544
807
  }
545
808
  }
809
+ else if (this.inputEl.tagName !== "IC-TEXT-FIELD" &&
810
+ this.inputEl.tagName !== "INPUT") {
811
+ this.menu.focus();
812
+ }
546
813
  }
547
814
  if (this.open && !this.value && this.selectOnEnter) {
548
815
  this.scrollToSelected(this.menu);
549
816
  }
817
+ this.preventMenuFocus = false;
550
818
  }
551
819
  componentDidRender() {
552
820
  if (this.open && !this.popperInstance && this.anchorEl) {
@@ -576,7 +844,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
576
844
  this.autoSetInputValueKeyboardOpen(event);
577
845
  }
578
846
  else {
579
- this.manSetInputValueKeyboardOpen(event);
847
+ this.manualSetInputValueKeyboardOpen(event);
580
848
  }
581
849
  }
582
850
  /**
@@ -591,8 +859,9 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
591
859
  * boundary behaviour so sticking with PopperJS.
592
860
  */
593
861
  async initPopperJs(anchor) {
862
+ // Placements set to "-start" to accommodate for custom menu width - menu should always be aligned to the left
594
863
  this.popperInstance = createPopper(anchor, this.host, {
595
- placement: "bottom",
864
+ placement: "bottom-start",
596
865
  modifiers: [
597
866
  {
598
867
  name: "offset",
@@ -603,7 +872,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
603
872
  {
604
873
  name: "flip",
605
874
  options: {
606
- fallbackPlacements: ["top"],
875
+ fallbackPlacements: ["top-start"],
607
876
  rootBoundary: "viewport",
608
877
  },
609
878
  },
@@ -625,36 +894,50 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
625
894
  }
626
895
  render() {
627
896
  const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, open, inputEl, keyboardNav, } = this;
897
+ const selectAllButtonText = `${(value === null || value === void 0 ? void 0 : value.length) === this.ungroupedOptions.length ? "Clear" : "Select"} all`;
898
+ const hasNoResults = this.host.classList.contains("no-results");
628
899
  return (h(Host, { class: {
629
900
  "ic-menu-full-width": fullWidth,
630
901
  "ic-menu-no-focus": (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === "INPUT" || hasTimedOut || isLoading,
631
902
  [`ic-menu-${size}`]: true,
632
- "ic-menu-open": open,
633
- } }, options.length !== 0 && (h("ul", { id: menuId, class: "menu", role: "listbox", "aria-label": inputLabel, "aria-activedescendant": value != null && value !== "" ? this.getOptionId(value) : "", tabindex: open && !keyboardNav && (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ? "0" : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
903
+ "ic-menu-open": open && options.length !== 0,
904
+ "ic-menu-multiple": this.isMultiSelect,
905
+ } }, options.length !== 0 && (h("ul", { id: menuId, class: "menu", role: "listbox", "aria-label": `${inputLabel} pop-up`, "aria-multiselectable": this.isMultiSelect ? "true" : "false", tabindex: open && !keyboardNav && (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) !== "INPUT" ? "0" : "-1", ref: (el) => (this.menu = el), onKeyDown: this.handleMenuKeyDown, onKeyUp: this.handleMenuKeyUp, onBlur: this.handleBlur }, this.getSortedOptions(options).map((option, index) => {
634
906
  if (option.children) {
635
907
  if (option.children.length > 0) {
636
- return (h("div", null, h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, h("p", null, option[this.labelField])), option.children.map((childOption) => this.displayOption(childOption, index, option))));
908
+ return (h("div", null, h("ic-typography", { class: "option-group-title", role: "presentation", variant: "subtitle-small" }, h("p", null, option[this.labelField])), option.children.map((childOption) => childOption.label &&
909
+ this.displayOption(childOption, this.isMultiSelect
910
+ ? value === null || value === void 0 ? void 0 : value.includes(childOption[this.valueField])
911
+ : childOption[this.valueField] === value, index, option))));
637
912
  }
638
913
  else {
639
914
  return null;
640
915
  }
641
916
  }
642
917
  else {
643
- return this.displayOption(option, index);
644
- }
645
- })))));
918
+ // Display option only if it has a label (rather than displaying an empty space)
919
+ return (option.label &&
920
+ this.displayOption(option, this.isMultiSelect
921
+ ? value === null || value === void 0 ? void 0 : value.includes(option[this.valueField])
922
+ : option[this.valueField] === value, index));
923
+ }
924
+ }))), options.length !== 0 &&
925
+ this.isMultiSelect &&
926
+ !isLoading &&
927
+ !hasTimedOut &&
928
+ !hasNoResults && (h("div", { class: "option-bar" }, h("ic-typography", null, h("p", null, `${value ? value.length : 0}/${getOptionsWithoutGroupTitlesCount(this.options)} selected`)), h("ic-button", { class: "select-all-button", "aria-label": `${selectAllButtonText} options for ${inputLabel}`, ref: (el) => (this.selectAllButton = el), variant: "tertiary", onClick: this.handleSelectAllClick, onMouseDown: this.handleSelectAllMouseDown, onBlur: this.handleSelectAllBlur, onFocus: this.handleSelectAllFocus, size: size === "small" ? "small" : "medium" }, selectAllButtonText)))));
646
929
  }
647
930
  get host() { return this; }
648
931
  static get watchers() { return {
649
932
  "open": ["watchOpenHandler"],
650
- "options": ["watchOptionsHandler"],
651
- "value": ["watchValueHandler"]
933
+ "options": ["watchOptionsHandler"]
652
934
  }; }
653
935
  static get style() { return icMenuCss; }
654
936
  }, [2, "ic-menu", {
655
937
  "activationType": [1, "activation-type"],
656
938
  "anchorEl": [16],
657
939
  "autoFocusOnSelected": [4, "auto-focus-on-selected"],
940
+ "closeOnSelect": [4, "close-on-select"],
658
941
  "fullWidth": [4, "full-width"],
659
942
  "inputEl": [16],
660
943
  "inputLabel": [1, "input-label"],
@@ -666,21 +949,21 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
666
949
  "selectOnEnter": [4, "select-on-enter"],
667
950
  "size": [1],
668
951
  "options": [16],
669
- "value": [1025],
952
+ "value": [1],
670
953
  "valueField": [1, "value-field"],
671
954
  "focusFromSearchKeypress": [32],
672
955
  "initialOptionsListRender": [32],
673
956
  "keyboardNav": [32],
674
957
  "optionHighlighted": [32],
675
958
  "preventIncorrectTabOrder": [32],
959
+ "menuOptions": [32],
676
960
  "handleClickOpen": [64],
677
961
  "handleKeyboardOpen": [64],
678
962
  "handleSetFirstOption": [64],
679
963
  "initPopperJs": [64]
680
964
  }, undefined, {
681
965
  "open": ["watchOpenHandler"],
682
- "options": ["watchOptionsHandler"],
683
- "value": ["watchValueHandler"]
966
+ "options": ["watchOptionsHandler"]
684
967
  }]);
685
968
  function defineCustomElement() {
686
969
  if (typeof customElements === "undefined") {