@ukic/canary-web-components 2.0.0-canary.13 → 2.0.0-canary.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (479) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-6acbb97e.js → helpers-191dca49.js} +56 -89
  3. package/dist/cjs/helpers-191dca49.js.map +1 -0
  4. package/dist/cjs/{helpers-f75cf7cf.js → helpers-765a5118.js} +30 -1
  5. package/dist/cjs/helpers-765a5118.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +3 -1
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-alert.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js +15 -9
  11. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-badge.cjs.entry.js +55 -84
  13. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +3 -1
  15. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  17. package/dist/cjs/ic-button_3.cjs.entry.js +35 -86
  18. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  19. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +23 -16
  21. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-checkbox.cjs.entry.js +32 -30
  23. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  24. package/dist/cjs/ic-chip.cjs.entry.js +34 -21
  25. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  28. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  29. package/dist/cjs/ic-data-table.cjs.entry.js +154 -31
  30. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-date-input.cjs.entry.js +6 -6
  32. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  33. package/dist/cjs/ic-date-picker.cjs.entry.js +1 -1
  34. package/dist/cjs/ic-dialog.cjs.entry.js +1 -1
  35. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-empty-state_2.cjs.entry.js +322 -0
  37. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  38. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  39. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  40. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  41. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  42. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-link.cjs.entry.js +34 -16
  45. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +176 -35
  50. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-menu.cjs.entry.js +3 -3
  52. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-navigation-button.cjs.entry.js +26 -5
  54. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-navigation-group.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-navigation-item.cjs.entry.js +1 -1
  57. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-pagination_4.cjs.entry.js +58 -17
  60. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-popover-menu.cjs.entry.js +3 -2
  62. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  63. package/dist/cjs/ic-radio-group.cjs.entry.js +40 -26
  64. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  65. package/dist/cjs/ic-radio-option.cjs.entry.js +9 -4
  66. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
  68. package/dist/cjs/ic-select-with-multi.cjs.entry.js +1 -1
  69. package/dist/cjs/ic-side-navigation.cjs.entry.js +1 -1
  70. package/dist/cjs/ic-status-tag.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-step.cjs.entry.js +5 -2
  72. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  73. package/dist/cjs/ic-stepper.cjs.entry.js +2 -1
  74. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-switch.cjs.entry.js +1 -1
  76. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  79. package/dist/cjs/ic-theme.cjs.entry.js +13 -22
  80. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  81. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-toggle-button.cjs.entry.js +1 -1
  83. package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
  84. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  85. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  86. package/dist/cjs/index-4cf27b16.js +8 -8
  87. package/dist/cjs/loader.cjs.js +1 -1
  88. package/dist/collection/collection-manifest.json +1 -0
  89. package/dist/collection/components/ic-data-table/ic-data-table.css +76 -1
  90. package/dist/collection/components/ic-data-table/ic-data-table.js +368 -43
  91. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  92. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  93. package/dist/collection/components/ic-data-table/story-data.js +258 -0
  94. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  95. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +320 -1
  96. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  97. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +91 -0
  98. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  99. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  100. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
  101. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  102. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  103. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  104. package/dist/collection/components/ic-date-input/ic-date-input.css +1 -1
  105. package/dist/collection/components/ic-date-input/ic-date-input.js +4 -4
  106. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  107. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +176 -35
  108. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  109. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +180 -3
  110. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  111. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +145 -116
  112. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  113. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +47 -10
  114. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  115. package/dist/collection/utils/types.js.map +1 -1
  116. package/dist/components/helpers.js +55 -87
  117. package/dist/components/helpers.js.map +1 -1
  118. package/dist/components/helpers2.js +28 -1
  119. package/dist/components/helpers2.js.map +1 -1
  120. package/dist/components/ic-accordion-group.js +2 -1
  121. package/dist/components/ic-accordion-group.js.map +1 -1
  122. package/dist/components/ic-back-to-top.js +22 -9
  123. package/dist/components/ic-back-to-top.js.map +1 -1
  124. package/dist/components/ic-badge.js +59 -84
  125. package/dist/components/ic-badge.js.map +1 -1
  126. package/dist/components/ic-breadcrumb-group.js +2 -0
  127. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  128. package/dist/components/ic-button2.js +33 -84
  129. package/dist/components/ic-button2.js.map +1 -1
  130. package/dist/components/ic-card.js +1 -1
  131. package/dist/components/ic-checkbox-group.js +27 -17
  132. package/dist/components/ic-checkbox-group.js.map +1 -1
  133. package/dist/components/ic-checkbox.js +32 -30
  134. package/dist/components/ic-checkbox.js.map +1 -1
  135. package/dist/components/ic-chip.js +39 -23
  136. package/dist/components/ic-chip.js.map +1 -1
  137. package/dist/components/ic-data-table-title-bar.d.ts +11 -0
  138. package/dist/components/ic-data-table-title-bar.js +136 -0
  139. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  140. package/dist/components/ic-data-table.js +179 -37
  141. package/dist/components/ic-data-table.js.map +1 -1
  142. package/dist/components/ic-date-input2.js +6 -6
  143. package/dist/components/ic-date-input2.js.map +1 -1
  144. package/dist/components/ic-date-picker.js +1 -1
  145. package/dist/components/ic-divider2.js +1 -1
  146. package/dist/components/ic-empty-state.js +1 -57
  147. package/dist/components/ic-empty-state.js.map +1 -1
  148. package/dist/{esm/ic-empty-state.entry.js → components/ic-empty-state2.js} +38 -11
  149. package/dist/components/ic-empty-state2.js.map +1 -0
  150. package/dist/components/ic-footer-link-group.js +1 -1
  151. package/dist/components/ic-footer-link.js +1 -1
  152. package/dist/components/ic-footer.js +1 -1
  153. package/dist/components/ic-hero.js +1 -1
  154. package/dist/components/ic-horizontal-scroll2.js +1 -1
  155. package/dist/components/ic-link2.js +35 -17
  156. package/dist/components/ic-link2.js.map +1 -1
  157. package/dist/components/ic-loading-indicator2.js +1 -1
  158. package/dist/components/ic-loading-indicator2.js.map +1 -1
  159. package/dist/components/ic-menu-item2.js +2 -2
  160. package/dist/components/ic-menu-item2.js.map +1 -1
  161. package/dist/components/ic-menu2.js +2 -2
  162. package/dist/components/ic-menu2.js.map +1 -1
  163. package/dist/components/ic-menu3.js +177 -36
  164. package/dist/components/ic-menu3.js.map +1 -1
  165. package/dist/components/ic-navigation-button.js +27 -6
  166. package/dist/components/ic-navigation-button.js.map +1 -1
  167. package/dist/components/ic-navigation-group.js +1 -1
  168. package/dist/components/ic-navigation-item.js +1 -1
  169. package/dist/components/ic-navigation-menu2.js +1 -1
  170. package/dist/components/ic-pagination-bar2.js +126 -99
  171. package/dist/components/ic-pagination-bar2.js.map +1 -1
  172. package/dist/components/ic-pagination-item2.js +2 -2
  173. package/dist/components/ic-pagination-item2.js.map +1 -1
  174. package/dist/components/ic-pagination2.js +1 -1
  175. package/dist/components/ic-popover-menu.js +3 -2
  176. package/dist/components/ic-popover-menu.js.map +1 -1
  177. package/dist/components/ic-radio-group.js +40 -26
  178. package/dist/components/ic-radio-group.js.map +1 -1
  179. package/dist/components/ic-radio-option.js +11 -5
  180. package/dist/components/ic-radio-option.js.map +1 -1
  181. package/dist/components/ic-search-bar.js +1 -1
  182. package/dist/components/ic-select-with-multi.js +1 -1
  183. package/dist/components/ic-select2.js +33 -11
  184. package/dist/components/ic-select2.js.map +1 -1
  185. package/dist/components/ic-side-navigation.js +1 -1
  186. package/dist/components/ic-step.js +4 -1
  187. package/dist/components/ic-step.js.map +1 -1
  188. package/dist/components/ic-stepper.js +3 -1
  189. package/dist/components/ic-stepper.js.map +1 -1
  190. package/dist/components/ic-switch.js +1 -1
  191. package/dist/components/ic-tab.js +1 -1
  192. package/dist/components/ic-text-field2.js +27 -8
  193. package/dist/components/ic-text-field2.js.map +1 -1
  194. package/dist/components/ic-theme.js +13 -22
  195. package/dist/components/ic-theme.js.map +1 -1
  196. package/dist/components/ic-toast.js +1 -1
  197. package/dist/components/ic-toggle-button.js +1 -1
  198. package/dist/components/ic-tooltip2.js +1 -1
  199. package/dist/components/ic-tooltip2.js.map +1 -1
  200. package/dist/components/ic-top-navigation.js +1 -1
  201. package/dist/components/ic-typography2.js +1 -1
  202. package/dist/components/ic-typography2.js.map +1 -1
  203. package/dist/core/core.css +2 -2
  204. package/dist/core/core.esm.js +1 -1
  205. package/dist/core/core.esm.js.map +1 -1
  206. package/dist/core/{p-b3d21d06.entry.js → p-005e83b0.entry.js} +2 -2
  207. package/dist/core/{p-b8a3b16d.entry.js → p-05df3901.entry.js} +2 -2
  208. package/dist/core/{p-3d0185a4.entry.js → p-0646ef0c.entry.js} +2 -2
  209. package/dist/core/p-0ec09955.entry.js +2 -0
  210. package/dist/core/p-0ec09955.entry.js.map +1 -0
  211. package/dist/core/p-114bea92.entry.js +2 -0
  212. package/dist/core/p-114bea92.entry.js.map +1 -0
  213. package/dist/core/p-11bbb09c.js +2 -0
  214. package/dist/core/p-11bbb09c.js.map +1 -0
  215. package/dist/core/p-11e736a3.entry.js +2 -0
  216. package/dist/core/p-11e736a3.entry.js.map +1 -0
  217. package/dist/core/{p-e0e26834.entry.js → p-16c82b13.entry.js} +2 -2
  218. package/dist/core/{p-094a0455.entry.js → p-1b35b6af.entry.js} +2 -2
  219. package/dist/core/p-1cf8a04e.entry.js +2 -0
  220. package/dist/core/p-1cf8a04e.entry.js.map +1 -0
  221. package/dist/core/{p-849f43c3.entry.js → p-2170f59e.entry.js} +2 -2
  222. package/dist/core/p-2e167ebb.entry.js +2 -0
  223. package/dist/core/p-2e167ebb.entry.js.map +1 -0
  224. package/dist/core/p-3f20608d.entry.js +2 -0
  225. package/dist/core/p-3f20608d.entry.js.map +1 -0
  226. package/dist/core/p-41606de1.entry.js +2 -0
  227. package/dist/core/p-41606de1.entry.js.map +1 -0
  228. package/dist/core/{p-8b1d128c.entry.js → p-4415c93f.entry.js} +2 -2
  229. package/dist/core/{p-6b68ee01.entry.js → p-457dd939.entry.js} +2 -2
  230. package/dist/core/p-457dd939.entry.js.map +1 -0
  231. package/dist/core/{p-04f46dac.entry.js → p-4737844f.entry.js} +2 -2
  232. package/dist/core/p-4737844f.entry.js.map +1 -0
  233. package/dist/core/{p-8ef85b15.entry.js → p-53374a27.entry.js} +2 -2
  234. package/dist/core/{p-7c8f85fd.entry.js → p-53e45d51.entry.js} +2 -2
  235. package/dist/core/{p-0707f2fc.entry.js → p-593f0318.entry.js} +2 -2
  236. package/dist/core/{p-aabab75f.entry.js → p-5d5979fa.entry.js} +2 -2
  237. package/dist/core/{p-c7b52046.entry.js → p-66af5958.entry.js} +2 -2
  238. package/dist/core/p-67b0faac.entry.js +2 -0
  239. package/dist/core/p-67b0faac.entry.js.map +1 -0
  240. package/dist/core/p-6b277e09.entry.js +2 -0
  241. package/dist/core/p-6b277e09.entry.js.map +1 -0
  242. package/dist/core/{p-2ec33c00.entry.js → p-72cea8fd.entry.js} +2 -2
  243. package/dist/core/p-73dad5cf.entry.js +2 -0
  244. package/dist/core/p-73dad5cf.entry.js.map +1 -0
  245. package/dist/core/{p-05d0ac42.entry.js → p-85e2a9af.entry.js} +2 -2
  246. package/dist/core/p-85e2a9af.entry.js.map +1 -0
  247. package/dist/core/{p-bbcd6d06.entry.js → p-872c3555.entry.js} +2 -2
  248. package/dist/core/{p-dae1779d.entry.js → p-87743c4a.entry.js} +2 -2
  249. package/dist/core/{p-55d819a6.entry.js → p-8cfc74da.entry.js} +2 -2
  250. package/dist/core/{p-bf316546.entry.js → p-9729086f.entry.js} +2 -2
  251. package/dist/core/{p-f4965c26.entry.js → p-9cc19e91.entry.js} +2 -2
  252. package/dist/core/{p-da578abf.entry.js → p-9de20265.entry.js} +2 -2
  253. package/dist/core/p-a088373e.entry.js +2 -0
  254. package/dist/core/p-a088373e.entry.js.map +1 -0
  255. package/dist/core/{p-169dcfdd.entry.js → p-a0e42564.entry.js} +2 -2
  256. package/dist/core/p-a8110c27.entry.js +2 -0
  257. package/dist/core/p-a8110c27.entry.js.map +1 -0
  258. package/dist/core/{p-f9fcdd21.entry.js → p-a9d07792.entry.js} +2 -2
  259. package/dist/core/p-a9d07792.entry.js.map +1 -0
  260. package/dist/core/{p-66b8f0a7.entry.js → p-b08f4371.entry.js} +2 -2
  261. package/dist/core/{p-a9ed6a71.entry.js → p-b79c0631.entry.js} +2 -2
  262. package/dist/core/p-b79c0631.entry.js.map +1 -0
  263. package/dist/core/p-b8247636.entry.js +2 -0
  264. package/dist/core/p-b8247636.entry.js.map +1 -0
  265. package/dist/core/{p-fdd8f3a5.entry.js → p-badfdf2a.entry.js} +2 -2
  266. package/dist/core/p-be56fa17.entry.js +2 -0
  267. package/dist/core/{p-31800427.entry.js.map → p-be56fa17.entry.js.map} +1 -1
  268. package/dist/core/{p-ed7379e3.entry.js → p-bebf535f.entry.js} +2 -2
  269. package/dist/core/p-c07cef0e.js +2 -0
  270. package/dist/core/p-c07cef0e.js.map +1 -0
  271. package/dist/core/p-c0d88af8.entry.js +2 -0
  272. package/dist/core/p-c0d88af8.entry.js.map +1 -0
  273. package/dist/core/p-c3af5dab.entry.js +2 -0
  274. package/dist/core/p-c3af5dab.entry.js.map +1 -0
  275. package/dist/core/{p-981b6f12.entry.js → p-c3dabce4.entry.js} +2 -2
  276. package/dist/core/{p-bcfbd465.entry.js → p-c7e932b5.entry.js} +2 -2
  277. package/dist/core/{p-1a4bce88.entry.js → p-d09aaa5b.entry.js} +2 -2
  278. package/dist/core/{p-3f4c408a.entry.js → p-d59a72a9.entry.js} +2 -2
  279. package/dist/core/p-d59a72a9.entry.js.map +1 -0
  280. package/dist/core/{p-1170c02d.entry.js → p-d71e9cb5.entry.js} +2 -2
  281. package/dist/core/{p-b612d68b.entry.js → p-ecd6d123.entry.js} +2 -2
  282. package/dist/core/p-ecd6d123.entry.js.map +1 -0
  283. package/dist/core/p-ee52a11a.entry.js +2 -0
  284. package/dist/core/p-ee52a11a.entry.js.map +1 -0
  285. package/dist/core/p-f11597df.entry.js +2 -0
  286. package/dist/core/p-f11597df.entry.js.map +1 -0
  287. package/dist/core/p-f1f3acd2.entry.js +2 -0
  288. package/dist/core/p-f1f3acd2.entry.js.map +1 -0
  289. package/dist/core/{p-e676069e.entry.js → p-f659e5eb.entry.js} +2 -2
  290. package/dist/core/{p-ffa94639.entry.js → p-fc2551c0.entry.js} +2 -2
  291. package/dist/esm/core.js +1 -1
  292. package/dist/esm/{helpers-f328a7b6.js → helpers-8df79303.js} +29 -2
  293. package/dist/esm/helpers-8df79303.js.map +1 -0
  294. package/dist/esm/{helpers-451953f9.js → helpers-da05c476.js} +56 -88
  295. package/dist/esm/helpers-da05c476.js.map +1 -0
  296. package/dist/esm/ic-accordion-group.entry.js +3 -1
  297. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  298. package/dist/esm/ic-accordion.entry.js +1 -1
  299. package/dist/esm/ic-alert.entry.js +1 -1
  300. package/dist/esm/ic-back-to-top.entry.js +15 -9
  301. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  302. package/dist/esm/ic-badge.entry.js +55 -84
  303. package/dist/esm/ic-badge.entry.js.map +1 -1
  304. package/dist/esm/ic-breadcrumb-group.entry.js +3 -1
  305. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  306. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  307. package/dist/esm/ic-button_3.entry.js +35 -86
  308. package/dist/esm/ic-button_3.entry.js.map +1 -1
  309. package/dist/esm/ic-card.entry.js +1 -1
  310. package/dist/esm/ic-checkbox-group.entry.js +23 -16
  311. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  312. package/dist/esm/ic-checkbox.entry.js +32 -30
  313. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  314. package/dist/esm/ic-chip.entry.js +34 -21
  315. package/dist/esm/ic-chip.entry.js.map +1 -1
  316. package/dist/esm/ic-data-row.entry.js +1 -1
  317. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  318. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  319. package/dist/esm/ic-data-table.entry.js +155 -32
  320. package/dist/esm/ic-data-table.entry.js.map +1 -1
  321. package/dist/esm/ic-date-input.entry.js +6 -6
  322. package/dist/esm/ic-date-input.entry.js.map +1 -1
  323. package/dist/esm/ic-date-picker.entry.js +1 -1
  324. package/dist/esm/ic-dialog.entry.js +1 -1
  325. package/dist/esm/ic-divider.entry.js +1 -1
  326. package/dist/esm/ic-empty-state_2.entry.js +317 -0
  327. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  328. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  329. package/dist/esm/ic-footer-link.entry.js +1 -1
  330. package/dist/esm/ic-footer.entry.js +1 -1
  331. package/dist/esm/ic-hero.entry.js +1 -1
  332. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  333. package/dist/esm/ic-input-component-container_4.entry.js +1 -1
  334. package/dist/esm/ic-link.entry.js +35 -17
  335. package/dist/esm/ic-link.entry.js.map +1 -1
  336. package/dist/esm/ic-menu-group.entry.js +1 -1
  337. package/dist/esm/ic-menu-item.entry.js +2 -2
  338. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  339. package/dist/esm/ic-menu-with-multi.entry.js +176 -35
  340. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  341. package/dist/esm/ic-menu.entry.js +3 -3
  342. package/dist/esm/ic-menu.entry.js.map +1 -1
  343. package/dist/esm/ic-navigation-button.entry.js +27 -6
  344. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  345. package/dist/esm/ic-navigation-group.entry.js +1 -1
  346. package/dist/esm/ic-navigation-item.entry.js +1 -1
  347. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  348. package/dist/esm/ic-page-header.entry.js +1 -1
  349. package/dist/esm/ic-pagination_4.entry.js +59 -18
  350. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  351. package/dist/esm/ic-popover-menu.entry.js +3 -2
  352. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  353. package/dist/esm/ic-radio-group.entry.js +40 -26
  354. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  355. package/dist/esm/ic-radio-option.entry.js +9 -4
  356. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  357. package/dist/esm/ic-search-bar.entry.js +1 -1
  358. package/dist/esm/ic-select-with-multi.entry.js +1 -1
  359. package/dist/esm/ic-side-navigation.entry.js +1 -1
  360. package/dist/esm/ic-status-tag.entry.js +1 -1
  361. package/dist/esm/ic-step.entry.js +5 -2
  362. package/dist/esm/ic-step.entry.js.map +1 -1
  363. package/dist/esm/ic-stepper.entry.js +2 -1
  364. package/dist/esm/ic-stepper.entry.js.map +1 -1
  365. package/dist/esm/ic-switch.entry.js +1 -1
  366. package/dist/esm/ic-tab-group.entry.js +1 -1
  367. package/dist/esm/ic-tab-panel.entry.js +1 -1
  368. package/dist/esm/ic-tab.entry.js +1 -1
  369. package/dist/esm/ic-theme.entry.js +13 -22
  370. package/dist/esm/ic-theme.entry.js.map +1 -1
  371. package/dist/esm/ic-toast.entry.js +1 -1
  372. package/dist/esm/ic-toggle-button.entry.js +1 -1
  373. package/dist/esm/ic-top-navigation.entry.js +1 -1
  374. package/dist/esm/ic-typography.entry.js +2 -2
  375. package/dist/esm/ic-typography.entry.js.map +1 -1
  376. package/dist/esm/index-93509377.js +8 -8
  377. package/dist/esm/loader.js +1 -1
  378. package/dist/types/components/ic-data-table/ic-data-table.d.ts +79 -3
  379. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +9 -0
  380. package/dist/types/components/ic-data-table/story-data.d.ts +59 -0
  381. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  382. package/dist/types/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts +1 -0
  383. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +10 -0
  384. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +24 -14
  385. package/dist/types/components.d.ts +207 -28
  386. package/dist/types/utils/types.d.ts +5 -5
  387. package/hydrate/index.js +1445 -1050
  388. package/package.json +3 -3
  389. package/dist/cjs/helpers-6acbb97e.js.map +0 -1
  390. package/dist/cjs/helpers-f75cf7cf.js.map +0 -1
  391. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  392. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  393. package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -269
  394. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  395. package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
  396. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
  397. package/dist/core/p-04f46dac.entry.js.map +0 -1
  398. package/dist/core/p-05d0ac42.entry.js.map +0 -1
  399. package/dist/core/p-1c3bd46d.entry.js +0 -2
  400. package/dist/core/p-1c3bd46d.entry.js.map +0 -1
  401. package/dist/core/p-28bddd8d.entry.js +0 -2
  402. package/dist/core/p-28bddd8d.entry.js.map +0 -1
  403. package/dist/core/p-31800427.entry.js +0 -2
  404. package/dist/core/p-3b0caac0.js +0 -2
  405. package/dist/core/p-3b0caac0.js.map +0 -1
  406. package/dist/core/p-3f4c408a.entry.js.map +0 -1
  407. package/dist/core/p-4020d7f7.entry.js +0 -2
  408. package/dist/core/p-4020d7f7.entry.js.map +0 -1
  409. package/dist/core/p-402fd288.entry.js +0 -2
  410. package/dist/core/p-402fd288.entry.js.map +0 -1
  411. package/dist/core/p-49449a2d.entry.js +0 -2
  412. package/dist/core/p-49449a2d.entry.js.map +0 -1
  413. package/dist/core/p-4a30b0fc.entry.js +0 -2
  414. package/dist/core/p-4a30b0fc.entry.js.map +0 -1
  415. package/dist/core/p-4b361789.entry.js +0 -2
  416. package/dist/core/p-4b361789.entry.js.map +0 -1
  417. package/dist/core/p-50cfc2bb.entry.js +0 -2
  418. package/dist/core/p-50cfc2bb.entry.js.map +0 -1
  419. package/dist/core/p-58c87b3d.entry.js +0 -2
  420. package/dist/core/p-58c87b3d.entry.js.map +0 -1
  421. package/dist/core/p-623f911f.entry.js +0 -2
  422. package/dist/core/p-623f911f.entry.js.map +0 -1
  423. package/dist/core/p-6b68ee01.entry.js.map +0 -1
  424. package/dist/core/p-7d1381ef.entry.js +0 -2
  425. package/dist/core/p-7d1381ef.entry.js.map +0 -1
  426. package/dist/core/p-925da2d2.entry.js +0 -2
  427. package/dist/core/p-925da2d2.entry.js.map +0 -1
  428. package/dist/core/p-9e3178e8.entry.js +0 -2
  429. package/dist/core/p-9e3178e8.entry.js.map +0 -1
  430. package/dist/core/p-a9ed6a71.entry.js.map +0 -1
  431. package/dist/core/p-b612d68b.entry.js.map +0 -1
  432. package/dist/core/p-c51496ee.entry.js +0 -2
  433. package/dist/core/p-c51496ee.entry.js.map +0 -1
  434. package/dist/core/p-c7590421.entry.js +0 -2
  435. package/dist/core/p-c7590421.entry.js.map +0 -1
  436. package/dist/core/p-cd799087.js +0 -2
  437. package/dist/core/p-cd799087.js.map +0 -1
  438. package/dist/core/p-e189f1d0.entry.js +0 -2
  439. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  440. package/dist/core/p-e30f2623.entry.js +0 -2
  441. package/dist/core/p-e30f2623.entry.js.map +0 -1
  442. package/dist/core/p-f9ee48f7.entry.js +0 -2
  443. package/dist/core/p-f9ee48f7.entry.js.map +0 -1
  444. package/dist/core/p-f9fcdd21.entry.js.map +0 -1
  445. package/dist/esm/helpers-451953f9.js.map +0 -1
  446. package/dist/esm/helpers-f328a7b6.js.map +0 -1
  447. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  448. package/dist/esm/ic-pagination-bar.entry.js +0 -265
  449. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  450. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
  451. /package/dist/core/{p-b3d21d06.entry.js.map → p-005e83b0.entry.js.map} +0 -0
  452. /package/dist/core/{p-b8a3b16d.entry.js.map → p-05df3901.entry.js.map} +0 -0
  453. /package/dist/core/{p-3d0185a4.entry.js.map → p-0646ef0c.entry.js.map} +0 -0
  454. /package/dist/core/{p-e0e26834.entry.js.map → p-16c82b13.entry.js.map} +0 -0
  455. /package/dist/core/{p-094a0455.entry.js.map → p-1b35b6af.entry.js.map} +0 -0
  456. /package/dist/core/{p-849f43c3.entry.js.map → p-2170f59e.entry.js.map} +0 -0
  457. /package/dist/core/{p-8b1d128c.entry.js.map → p-4415c93f.entry.js.map} +0 -0
  458. /package/dist/core/{p-8ef85b15.entry.js.map → p-53374a27.entry.js.map} +0 -0
  459. /package/dist/core/{p-7c8f85fd.entry.js.map → p-53e45d51.entry.js.map} +0 -0
  460. /package/dist/core/{p-0707f2fc.entry.js.map → p-593f0318.entry.js.map} +0 -0
  461. /package/dist/core/{p-aabab75f.entry.js.map → p-5d5979fa.entry.js.map} +0 -0
  462. /package/dist/core/{p-c7b52046.entry.js.map → p-66af5958.entry.js.map} +0 -0
  463. /package/dist/core/{p-2ec33c00.entry.js.map → p-72cea8fd.entry.js.map} +0 -0
  464. /package/dist/core/{p-bbcd6d06.entry.js.map → p-872c3555.entry.js.map} +0 -0
  465. /package/dist/core/{p-dae1779d.entry.js.map → p-87743c4a.entry.js.map} +0 -0
  466. /package/dist/core/{p-55d819a6.entry.js.map → p-8cfc74da.entry.js.map} +0 -0
  467. /package/dist/core/{p-bf316546.entry.js.map → p-9729086f.entry.js.map} +0 -0
  468. /package/dist/core/{p-f4965c26.entry.js.map → p-9cc19e91.entry.js.map} +0 -0
  469. /package/dist/core/{p-da578abf.entry.js.map → p-9de20265.entry.js.map} +0 -0
  470. /package/dist/core/{p-169dcfdd.entry.js.map → p-a0e42564.entry.js.map} +0 -0
  471. /package/dist/core/{p-66b8f0a7.entry.js.map → p-b08f4371.entry.js.map} +0 -0
  472. /package/dist/core/{p-fdd8f3a5.entry.js.map → p-badfdf2a.entry.js.map} +0 -0
  473. /package/dist/core/{p-ed7379e3.entry.js.map → p-bebf535f.entry.js.map} +0 -0
  474. /package/dist/core/{p-981b6f12.entry.js.map → p-c3dabce4.entry.js.map} +0 -0
  475. /package/dist/core/{p-bcfbd465.entry.js.map → p-c7e932b5.entry.js.map} +0 -0
  476. /package/dist/core/{p-1a4bce88.entry.js.map → p-d09aaa5b.entry.js.map} +0 -0
  477. /package/dist/core/{p-1170c02d.entry.js.map → p-d71e9cb5.entry.js.map} +0 -0
  478. /package/dist/core/{p-e676069e.entry.js.map → p-f659e5eb.entry.js.map} +0 -0
  479. /package/dist/core/{p-ffa94639.entry.js.map → p-fc2551c0.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, h, F as Fragment, H as Host, g as getElement } from './index-93509377.js';
2
- import { u as isMacDevice, o as onComponentRequiredPropUndefined, e as getOptionsWithoutGroupTitlesCount } from './helpers-f328a7b6.js';
2
+ import { x as isMacDevice, o as onComponentRequiredPropUndefined, f as getOptionsWithoutGroupTitlesCount } from './helpers-8df79303.js';
3
3
 
4
4
  var top = 'top';
5
5
  var bottom = 'bottom';
@@ -1819,9 +1819,12 @@ const Menu = class {
1819
1819
  this.isMultiSelect = false;
1820
1820
  this.isSearchBar = false;
1821
1821
  this.isSearchableSelect = false;
1822
+ this.lastOptionSelected = null; // Index of last option selected
1823
+ this.lastOptionFocused = null; // Index of last option focused
1822
1824
  this.multiOptionClicked = null;
1823
1825
  this.preventClickOpen = false; // Prevents menu re-opening immediately after it is closed on blur when clicking input.
1824
1826
  this.preventMenuFocus = false; // (When multiple) ensures focus moves straight to select all button from menu.
1827
+ this.shiftPressed = false;
1825
1828
  this.ungroupedOptions = [];
1826
1829
  this.handleClearListener = () => {
1827
1830
  this.optionHighlighted = "";
@@ -1941,7 +1944,6 @@ const Menu = class {
1941
1944
  }
1942
1945
  else {
1943
1946
  this.setInputValue(highlightedOptionIndex);
1944
- this.value = options[highlightedOptionIndex][this.valueField];
1945
1947
  }
1946
1948
  }
1947
1949
  }
@@ -1954,16 +1956,38 @@ const Menu = class {
1954
1956
  this.handleMenuChange(true);
1955
1957
  }
1956
1958
  };
1959
+ // Check if option is selected based on the index of the option
1960
+ this.isOptionSelected = (index) => {
1961
+ const menuOptions = this.getMenuOptions();
1962
+ return this.value
1963
+ ? this.value.includes(menuOptions[index][this.valueField])
1964
+ : false;
1965
+ };
1966
+ // Deselect currently selected options when shift pressed, but keep certain options selected
1967
+ this.deselectSelectedOptions = (optionsToKeepSelected) => {
1968
+ const menuOptions = this.getMenuOptions();
1969
+ if (this.value) {
1970
+ const selectedOptionIndexes = this.value.map((value) => {
1971
+ return menuOptions.findIndex((option) => option[this.valueField] === value);
1972
+ });
1973
+ // Call setInputValue (which toggles the selected state) on options that need to be deselected
1974
+ selectedOptionIndexes.forEach((index) => !optionsToKeepSelected.includes(index) && this.setInputValue(index));
1975
+ }
1976
+ };
1957
1977
  // Determines keyboard behaviour when selection is manual (i.e. when you have to press Enter to select an option)
1958
1978
  this.manualSetInputValueKeyboardOpen = (event) => {
1959
1979
  const menuOptions = this.getMenuOptions();
1960
- this.keyboardNav = false;
1961
- const highlightedOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
1980
+ // Prevent focus disappearing on currently focused option when Shift / Cmd / Ctrl pressed
1981
+ // (i.e. when user is likely in the middle of executing a keyboard combination to select options)
1982
+ if (!(event.shiftKey || event.metaKey || event.ctrlKey)) {
1983
+ this.keyboardNav = false;
1984
+ }
1985
+ const highlightedOptionIndex = this.getOptionHighlightedIndex();
1962
1986
  const clickedMultiOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.multiOptionClicked);
1963
1987
  const getOptionId = (index) => { var _a; return (_a = Array.from(this.el.querySelectorAll("li"))[index]) === null || _a === void 0 ? void 0 : _a.id; };
1964
1988
  // Space press should be equivalent to Enter when multi-select
1965
1989
  if (event.key === " " && this.isMultiSelect) {
1966
- this.selectHighlightedOption(event.target, menuOptions, highlightedOptionIndex);
1990
+ this.handleOptionSelect(event, highlightedOptionIndex);
1967
1991
  }
1968
1992
  else {
1969
1993
  switch (event.key) {
@@ -1976,18 +2000,32 @@ const Menu = class {
1976
2000
  this.setHighlightedOption(clickedMultiOptionIndex);
1977
2001
  this.multiOptionClicked = null;
1978
2002
  }
1979
- else if (highlightedOptionIndex < menuOptions.length - 1) {
1980
- this.setHighlightedOption(highlightedOptionIndex + 1);
1981
- this.menuOptionId.emit({
1982
- optionId: getOptionId(highlightedOptionIndex + 1),
1983
- });
1984
- }
1985
2003
  else {
1986
- this.setHighlightedOption(0);
1987
- this.menuOptionId.emit({
1988
- optionId: getOptionId(0),
1989
- });
2004
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
2005
+ if (highlightedOptionIndex < menuOptions.length - 1) {
2006
+ this.setHighlightedOption(highlightedOptionIndex + 1);
2007
+ this.menuOptionId.emit({
2008
+ optionId: getOptionId(highlightedOptionIndex + 1),
2009
+ });
2010
+ this.handleSingleShiftSelect(event, highlightedOptionIndex + 1, menuOptions);
2011
+ }
2012
+ else {
2013
+ this.setHighlightedOption(0);
2014
+ this.menuOptionId.emit({
2015
+ optionId: getOptionId(0),
2016
+ });
2017
+ this.handleSingleShiftSelect(event, 0, menuOptions);
2018
+ }
2019
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
2020
+ if (this.isMultiSelect && this.shiftPressed) {
2021
+ this.deselectSelectedOptions([
2022
+ highlightedOptionIndex,
2023
+ this.getOptionHighlightedIndex(),
2024
+ ]);
2025
+ this.shiftPressed = false;
2026
+ }
1990
2027
  }
2028
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
1991
2029
  this.preventIncorrectTabOrder = false;
1992
2030
  this.focusFromSearchKeypress = false;
1993
2031
  break;
@@ -2000,40 +2038,68 @@ const Menu = class {
2000
2038
  this.setHighlightedOption(clickedMultiOptionIndex);
2001
2039
  this.multiOptionClicked = null;
2002
2040
  }
2003
- else if (highlightedOptionIndex <= 0 ||
2004
- highlightedOptionIndex > menuOptions.length + 1) {
2005
- this.setHighlightedOption(menuOptions.length - 1);
2006
- this.menuOptionId.emit({
2007
- optionId: getOptionId(menuOptions.length - 1),
2008
- });
2009
- }
2010
2041
  else {
2011
- this.setHighlightedOption(highlightedOptionIndex - 1);
2012
- this.menuOptionId.emit({
2013
- optionId: getOptionId(highlightedOptionIndex - 1),
2014
- });
2042
+ this.handleSingleShiftSelect(event, highlightedOptionIndex, menuOptions);
2043
+ if (highlightedOptionIndex <= 0 ||
2044
+ highlightedOptionIndex > menuOptions.length + 1) {
2045
+ this.setHighlightedOption(menuOptions.length - 1);
2046
+ this.menuOptionId.emit({
2047
+ optionId: getOptionId(menuOptions.length - 1),
2048
+ });
2049
+ this.handleSingleShiftSelect(event, menuOptions.length - 1, menuOptions);
2050
+ }
2051
+ else {
2052
+ this.setHighlightedOption(highlightedOptionIndex - 1);
2053
+ this.menuOptionId.emit({
2054
+ optionId: getOptionId(highlightedOptionIndex - 1),
2055
+ });
2056
+ this.handleSingleShiftSelect(event, highlightedOptionIndex - 1, menuOptions);
2057
+ }
2058
+ // Deselect currently selected options if arrow was pressed for first time after shift is held
2059
+ if (this.isMultiSelect && this.shiftPressed) {
2060
+ this.deselectSelectedOptions([
2061
+ highlightedOptionIndex,
2062
+ this.getOptionHighlightedIndex(),
2063
+ ]);
2064
+ this.shiftPressed = false;
2065
+ }
2015
2066
  }
2067
+ this.lastOptionFocused = this.getOptionHighlightedIndex();
2016
2068
  this.preventIncorrectTabOrder = false;
2017
2069
  this.focusFromSearchKeypress = false;
2018
2070
  break;
2019
- case "Home":
2071
+ case "Home": {
2072
+ const startOptionIndex = 0;
2020
2073
  this.keyboardNav = true;
2021
2074
  event.preventDefault();
2022
2075
  this.arrowBehaviour(event);
2023
- this.setHighlightedOption(0);
2076
+ this.setHighlightedOption(startOptionIndex);
2024
2077
  this.menuOptionId.emit({
2025
- optionId: getOptionId(0),
2078
+ optionId: getOptionId(startOptionIndex),
2026
2079
  });
2080
+ if (event.shiftKey && event.ctrlKey) {
2081
+ this.handleMultipleShiftSelect(startOptionIndex);
2082
+ }
2083
+ this.lastOptionFocused = startOptionIndex;
2084
+ this.lastOptionSelected = startOptionIndex;
2027
2085
  break;
2028
- case "End":
2086
+ }
2087
+ case "End": {
2088
+ const endOptionIndex = menuOptions.length - 1;
2029
2089
  this.keyboardNav = true;
2030
2090
  event.preventDefault();
2031
2091
  this.arrowBehaviour(event);
2032
- this.setHighlightedOption(menuOptions.length - 1);
2092
+ this.setHighlightedOption(endOptionIndex);
2033
2093
  this.menuOptionId.emit({
2034
- optionId: getOptionId(menuOptions.length - 1),
2094
+ optionId: getOptionId(endOptionIndex),
2035
2095
  });
2096
+ if (event.shiftKey && event.ctrlKey) {
2097
+ this.handleMultipleShiftSelect(endOptionIndex);
2098
+ }
2099
+ this.lastOptionFocused = endOptionIndex;
2100
+ this.lastOptionSelected = endOptionIndex;
2036
2101
  break;
2102
+ }
2037
2103
  case " ":
2038
2104
  if (this.isSearchBar || this.isSearchableSelect) {
2039
2105
  break;
@@ -2046,7 +2112,7 @@ const Menu = class {
2046
2112
  break;
2047
2113
  case "Enter":
2048
2114
  event.preventDefault();
2049
- this.selectHighlightedOption(event.target, menuOptions, highlightedOptionIndex);
2115
+ this.handleOptionSelect(event, highlightedOptionIndex);
2050
2116
  break;
2051
2117
  case "Escape":
2052
2118
  if (this.open) {
@@ -2061,10 +2127,15 @@ const Menu = class {
2061
2127
  if ((isMacDevice() && event.metaKey) ||
2062
2128
  (!isMacDevice() && event.ctrlKey)) {
2063
2129
  this.emitSelectAll();
2130
+ this.lastOptionFocused = null;
2131
+ this.lastOptionSelected = null;
2064
2132
  }
2065
2133
  break;
2066
2134
  case "Shift":
2067
2135
  case "Tab":
2136
+ if (event.key === "Shift") {
2137
+ this.shiftPressed = true;
2138
+ }
2068
2139
  if (this.isSearchBar) {
2069
2140
  this.keyboardNav = true;
2070
2141
  }
@@ -2130,14 +2201,17 @@ const Menu = class {
2130
2201
  };
2131
2202
  this.handleOptionClick = (event) => {
2132
2203
  const { value, label } = event.target.dataset;
2133
- this.menuOptionSelect.emit({ value, label });
2134
- this.optionHighlighted = undefined;
2135
2204
  if (this.isMultiSelect) {
2205
+ const menuOptions = this.getMenuOptions();
2206
+ const selectedOptionIndex = menuOptions.findIndex((option) => option.value === value);
2207
+ this.handleOptionSelect(event, selectedOptionIndex, true);
2136
2208
  this.multiOptionClicked = value;
2137
2209
  }
2138
2210
  else {
2211
+ this.menuOptionSelect.emit({ value, label });
2139
2212
  this.handleMenuChange(false);
2140
2213
  }
2214
+ this.optionHighlighted = undefined;
2141
2215
  };
2142
2216
  this.handleRetry = () => {
2143
2217
  this.retryButtonClicked.emit({ value: this.value });
@@ -2157,12 +2231,16 @@ const Menu = class {
2157
2231
  event.relatedTarget === this.selectAllButton)) {
2158
2232
  this.handleMenuChange(false, this.hasPreviouslyBlurred);
2159
2233
  this.menu.removeAttribute(this.activeDescendantAttr);
2234
+ this.lastOptionFocused = null;
2235
+ this.lastOptionSelected = null;
2160
2236
  }
2161
2237
  }
2162
2238
  else {
2163
2239
  this.handleMenuChange(false);
2164
2240
  this.preventClickOpen = true;
2165
2241
  this.menu.removeAttribute(this.activeDescendantAttr);
2242
+ this.lastOptionFocused = null;
2243
+ this.lastOptionSelected = null;
2166
2244
  }
2167
2245
  if (!this.isSearchBar)
2168
2246
  this.hasPreviouslyBlurred = !!event.relatedTarget;
@@ -2186,11 +2264,16 @@ const Menu = class {
2186
2264
  this.disabledOptionSelected = false;
2187
2265
  event.stopImmediatePropagation();
2188
2266
  }
2267
+ if (event.key === "Shift") {
2268
+ this.shiftPressed = false;
2269
+ }
2189
2270
  };
2190
2271
  this.handleSelectAllClick = () => {
2191
2272
  this.keyboardNav = false;
2192
2273
  this.menu.focus();
2193
2274
  this.emitSelectAll();
2275
+ this.lastOptionFocused = null;
2276
+ this.lastOptionSelected = null;
2194
2277
  };
2195
2278
  this.handleSelectAllBlur = (event) => {
2196
2279
  this.el.classList.remove("select-all-focused");
@@ -2200,11 +2283,65 @@ const Menu = class {
2200
2283
  };
2201
2284
  this.handleSelectAllFocus = () => {
2202
2285
  this.el.classList.add("select-all-focused");
2286
+ this.lastOptionFocused = null;
2287
+ this.lastOptionSelected = null;
2203
2288
  };
2204
2289
  // Fix for Safari - select all button click was causing menu to close
2205
2290
  this.handleSelectAllMouseDown = (event) => {
2206
2291
  event.preventDefault();
2207
2292
  };
2293
+ // When shift key is being used to select contiguous options one by one on a multi-select
2294
+ // I.e. holding shift and pressing up and down arrow keys
2295
+ this.handleSingleShiftSelect = (event, optionToSelectIndex, options) => {
2296
+ if (this.isMultiSelect &&
2297
+ event.shiftKey &&
2298
+ !this.isOptionSelected(optionToSelectIndex)) {
2299
+ this.selectHighlightedOption(event.target, options, optionToSelectIndex);
2300
+ this.lastOptionSelected = optionToSelectIndex;
2301
+ }
2302
+ };
2303
+ // When shift key is being used to select multiple options at once on a multi-select
2304
+ // I.e. holding shift when selecting another option
2305
+ this.handleMultipleShiftSelect = (lastOptionInSelection, useFocusForSelection = false, firstOptionSelected = null) => {
2306
+ this.shiftPressed = false;
2307
+ const firstOptionInSelection = firstOptionSelected === null
2308
+ ? this.getFirstOptionInSelection(useFocusForSelection)
2309
+ : firstOptionSelected;
2310
+ if (firstOptionInSelection !== null) {
2311
+ const optionsToSelect = [];
2312
+ if (firstOptionInSelection < lastOptionInSelection) {
2313
+ for (let i = firstOptionInSelection; i < lastOptionInSelection + 1; i++) {
2314
+ optionsToSelect.push(i);
2315
+ }
2316
+ }
2317
+ else {
2318
+ for (let i = firstOptionInSelection; i > lastOptionInSelection - 1; i--) {
2319
+ optionsToSelect.push(i);
2320
+ }
2321
+ }
2322
+ optionsToSelect.forEach((optionIndex) => !this.isOptionSelected(optionIndex) && this.setInputValue(optionIndex));
2323
+ this.deselectSelectedOptions(optionsToSelect);
2324
+ }
2325
+ };
2326
+ this.handleOptionSelect = (event, optionIndex, useFocusForSelection = false) => {
2327
+ const menuOptions = this.getMenuOptions();
2328
+ const firstOptionInSelection = this.getFirstOptionInSelection(useFocusForSelection);
2329
+ if (event.shiftKey && firstOptionInSelection !== null) {
2330
+ this.handleMultipleShiftSelect(optionIndex, useFocusForSelection, firstOptionInSelection);
2331
+ }
2332
+ else {
2333
+ this.selectHighlightedOption(event.target, menuOptions, optionIndex);
2334
+ }
2335
+ this.lastOptionFocused = optionIndex;
2336
+ this.lastOptionSelected = optionIndex;
2337
+ };
2338
+ this.getFirstOptionInSelection = (useFocusForSelection) => {
2339
+ return useFocusForSelection && this.lastOptionFocused !== null
2340
+ ? this.lastOptionFocused
2341
+ : this.lastOptionSelected !== null
2342
+ ? this.lastOptionSelected
2343
+ : null;
2344
+ };
2208
2345
  this.emitSelectAll = () => {
2209
2346
  var _a;
2210
2347
  // Select all if there is either no value or not all options are selected
@@ -2303,6 +2440,10 @@ const Menu = class {
2303
2440
  }
2304
2441
  return sorted;
2305
2442
  };
2443
+ this.getOptionHighlightedIndex = () => {
2444
+ const menuOptions = this.getMenuOptions();
2445
+ return menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);
2446
+ };
2306
2447
  this.isManualMode = this.activationType === "manual";
2307
2448
  this.scrollToSelected = (menu) => {
2308
2449
  const selectedOption = this.selectOnEnter