@ukic/canary-web-components 2.0.0-canary.9 → 3.0.0-canary.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (821) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-7a069459.js → helpers-33b42cd6.js} +95 -101
  3. package/dist/cjs/helpers-33b42cd6.js.map +1 -0
  4. package/dist/cjs/{helpers-f75cf7cf.js → helpers-6817cfbb.js} +116 -1
  5. package/dist/cjs/helpers-6817cfbb.js.map +1 -0
  6. package/dist/cjs/ic-accordion-group.cjs.entry.js +31 -9
  7. package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-accordion.cjs.entry.js +7 -8
  9. package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-alert.cjs.entry.js +28 -10
  11. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-back-to-top.cjs.entry.js +17 -8
  13. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-badge.cjs.entry.js +67 -117
  15. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +37 -11
  17. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-breadcrumb.cjs.entry.js +8 -7
  19. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-button_3.cjs.entry.js +122 -134
  21. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  22. package/dist/cjs/ic-card-horizontal.cjs.entry.js +131 -0
  23. package/dist/cjs/ic-card-horizontal.cjs.entry.js.map +1 -0
  24. package/dist/cjs/ic-card-vertical.cjs.entry.js +149 -0
  25. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ic-checkbox-group.cjs.entry.js +27 -20
  27. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  28. package/dist/cjs/ic-checkbox.cjs.entry.js +45 -40
  29. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-chip.cjs.entry.js +48 -30
  31. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  32. package/dist/cjs/ic-classification-banner.cjs.entry.js +14 -5
  33. package/dist/cjs/ic-classification-banner.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-data-list.cjs.entry.js +32 -0
  35. package/dist/cjs/ic-data-list.cjs.entry.js.map +1 -0
  36. package/dist/cjs/ic-data-row.cjs.entry.js +12 -12
  37. package/dist/cjs/ic-data-row.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js +57 -0
  39. package/dist/cjs/ic-data-table-title-bar.cjs.entry.js.map +1 -0
  40. package/dist/cjs/ic-data-table.cjs.entry.js +807 -65
  41. package/dist/cjs/ic-data-table.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-date-input.cjs.entry.js +70 -33
  43. package/dist/cjs/ic-date-input.cjs.entry.js.map +1 -1
  44. package/dist/cjs/ic-date-picker.cjs.entry.js +81 -55
  45. package/dist/cjs/ic-date-picker.cjs.entry.js.map +1 -1
  46. package/dist/cjs/ic-dialog.cjs.entry.js +27 -101
  47. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-divider.cjs.entry.js +3 -4
  49. package/dist/cjs/ic-divider.cjs.entry.js.map +1 -1
  50. package/dist/cjs/ic-empty-state_2.cjs.entry.js +323 -0
  51. package/dist/cjs/ic-empty-state_2.cjs.entry.js.map +1 -0
  52. package/dist/cjs/ic-footer-link-group.cjs.entry.js +9 -10
  53. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  54. package/dist/cjs/ic-footer-link.cjs.entry.js +6 -8
  55. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-footer.cjs.entry.js +9 -10
  57. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-hero.cjs.entry.js +27 -12
  59. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +6 -8
  61. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-input-component-container_4.cjs.entry.js +38 -32
  63. package/dist/cjs/ic-input-component-container_4.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-link.cjs.entry.js +51 -24
  65. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -3
  67. package/dist/cjs/ic-menu-group.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-menu-item.cjs.entry.js +6 -13
  69. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-menu-with-multi.cjs.entry.js +186 -47
  71. package/dist/cjs/ic-menu-with-multi.cjs.entry.js.map +1 -1
  72. package/dist/cjs/ic-menu.cjs.entry.js +16 -21
  73. package/dist/cjs/ic-menu.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-navigation-button.cjs.entry.js +28 -8
  75. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-navigation-group.cjs.entry.js +23 -21
  77. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  78. package/dist/cjs/ic-navigation-item.cjs.entry.js +33 -38
  79. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-navigation-menu.cjs.entry.js +3 -4
  81. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  82. package/dist/cjs/ic-page-header.cjs.entry.js +10 -12
  83. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-pagination_4.cjs.entry.js +227 -186
  85. package/dist/cjs/ic-pagination_4.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-popover-menu.cjs.entry.js +33 -33
  87. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-radio-group.cjs.entry.js +87 -53
  89. package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
  90. package/dist/cjs/ic-radio-option.cjs.entry.js +44 -53
  91. package/dist/cjs/ic-radio-option.cjs.entry.js.map +1 -1
  92. package/dist/cjs/ic-search-bar.cjs.entry.js +33 -53
  93. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  94. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  95. package/dist/cjs/ic-section-container.cjs.entry.js.map +1 -1
  96. package/dist/cjs/ic-select-with-multi.cjs.entry.js +15 -51
  97. package/dist/cjs/ic-select-with-multi.cjs.entry.js.map +1 -1
  98. package/dist/cjs/ic-side-navigation.cjs.entry.js +8 -9
  99. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  100. package/dist/cjs/ic-skeleton.cjs.entry.js +18 -38
  101. package/dist/cjs/ic-skeleton.cjs.entry.js.map +1 -1
  102. package/dist/cjs/ic-status-tag.cjs.entry.js +7 -15
  103. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  104. package/dist/cjs/ic-step.cjs.entry.js +41 -43
  105. package/dist/cjs/ic-step.cjs.entry.js.map +1 -1
  106. package/dist/cjs/ic-stepper.cjs.entry.js +55 -24
  107. package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
  108. package/dist/cjs/ic-switch.cjs.entry.js +7 -9
  109. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  110. package/dist/cjs/ic-tab-context.cjs.entry.js +90 -137
  111. package/dist/cjs/ic-tab-context.cjs.entry.js.map +1 -1
  112. package/dist/cjs/ic-tab-group.cjs.entry.js +25 -11
  113. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  114. package/dist/cjs/ic-tab-panel.cjs.entry.js +6 -13
  115. package/dist/cjs/ic-tab-panel.cjs.entry.js.map +1 -1
  116. package/dist/cjs/ic-tab.cjs.entry.js +14 -14
  117. package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
  118. package/dist/cjs/ic-theme.cjs.entry.js +39 -25
  119. package/dist/cjs/ic-theme.cjs.entry.js.map +1 -1
  120. package/dist/cjs/ic-toast-region.cjs.entry.js +6 -7
  121. package/dist/cjs/ic-toast-region.cjs.entry.js.map +1 -1
  122. package/dist/cjs/ic-toast.cjs.entry.js +88 -35
  123. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  124. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +17 -17
  125. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  126. package/dist/cjs/ic-toggle-button.cjs.entry.js +15 -14
  127. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  128. package/dist/cjs/ic-top-navigation.cjs.entry.js +62 -86
  129. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  130. package/dist/cjs/ic-tree-item.cjs.entry.js +241 -0
  131. package/dist/cjs/ic-tree-item.cjs.entry.js.map +1 -0
  132. package/dist/cjs/ic-tree-view.cjs.entry.js +203 -0
  133. package/dist/cjs/ic-tree-view.cjs.entry.js.map +1 -0
  134. package/dist/cjs/ic-typography.cjs.entry.js +58 -20
  135. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  136. package/dist/cjs/index-4cf27b16.js +26 -14
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/collection/assets/arrow-dropdown.svg +3 -0
  139. package/dist/collection/collection-manifest.json +7 -3
  140. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.css +661 -0
  141. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js +373 -0
  142. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.js.map +1 -0
  143. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js +2 -0
  144. package/dist/collection/components/ic-card-horizontal/ic-card-horizontal.types.js.map +1 -0
  145. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js +130 -0
  146. package/dist/collection/components/ic-card-horizontal/test/basic/ic-card-horizontal.spec.js.map +1 -0
  147. package/dist/collection/components/ic-data-table/ic-data-table.css +174 -13
  148. package/dist/collection/components/ic-data-table/ic-data-table.js +1176 -90
  149. package/dist/collection/components/ic-data-table/ic-data-table.js.map +1 -1
  150. package/dist/collection/components/ic-data-table/ic-data-table.types.js.map +1 -1
  151. package/dist/collection/components/ic-data-table/story-data.js +798 -39
  152. package/dist/collection/components/ic-data-table/story-data.js.map +1 -1
  153. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js +339 -3
  154. package/dist/collection/components/ic-data-table/test/basic/ic-data-table.spec.js.map +1 -1
  155. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.css +93 -0
  156. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js +160 -0
  157. package/dist/collection/components/ic-data-table-title-bar/ic-data-table-title-bar.js.map +1 -0
  158. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js +11 -0
  159. package/dist/collection/components/ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.js.map +1 -0
  160. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js +70 -0
  161. package/dist/collection/components/ic-data-table-title-bar/test/basic/ic-data-table-title-bar.spec.js.map +1 -0
  162. package/dist/collection/components/ic-date-input/ic-date-input.css +5 -5
  163. package/dist/collection/components/ic-date-input/ic-date-input.js +140 -33
  164. package/dist/collection/components/ic-date-input/ic-date-input.js.map +1 -1
  165. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js +23 -21
  166. package/dist/collection/components/ic-date-input/test/basic/ic-date-input.spec.js.map +1 -1
  167. package/dist/collection/components/ic-date-picker/ic-date-picker.css +34 -32
  168. package/dist/collection/components/ic-date-picker/ic-date-picker.js +123 -56
  169. package/dist/collection/components/ic-date-picker/ic-date-picker.js.map +1 -1
  170. package/dist/collection/components/ic-date-picker/story-data.js +6 -1
  171. package/dist/collection/components/ic-date-picker/story-data.js.map +1 -1
  172. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js +73 -5
  173. package/dist/collection/components/ic-date-picker/test/basic/ic-date-picker.spec.js.map +1 -1
  174. package/dist/collection/components/ic-menu-with-multi/ic-menu.css +30 -19
  175. package/dist/collection/components/ic-menu-with-multi/ic-menu.js +187 -69
  176. package/dist/collection/components/ic-menu-with-multi/ic-menu.js.map +1 -1
  177. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js +229 -52
  178. package/dist/collection/components/ic-menu-with-multi/test/basic/ic-menu.spec.js.map +1 -1
  179. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.css +1 -1
  180. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js +213 -166
  181. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.js.map +1 -1
  182. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js +2 -0
  183. package/dist/collection/components/ic-pagination-bar/ic-pagination-bar.types.js.map +1 -0
  184. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js +75 -12
  185. package/dist/collection/components/ic-pagination-bar/test/basic/ic-pagination-bar.spec.js.map +1 -1
  186. package/dist/collection/components/ic-select-with-multi/ic-select.css +21 -19
  187. package/dist/collection/components/ic-select-with-multi/ic-select.js +16 -145
  188. package/dist/collection/components/ic-select-with-multi/ic-select.js.map +1 -1
  189. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js +7 -7
  190. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.spec.js.map +1 -1
  191. package/dist/collection/components/ic-tree-item/ic-tree-item.css +172 -0
  192. package/dist/collection/components/ic-tree-item/ic-tree-item.js +592 -0
  193. package/dist/collection/components/ic-tree-item/ic-tree-item.js.map +1 -0
  194. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js +114 -0
  195. package/dist/collection/components/ic-tree-item/test/basic/ic-tree-item.spec.js.map +1 -0
  196. package/dist/collection/components/ic-tree-view/ic-tree-view.css +59 -0
  197. package/dist/collection/components/ic-tree-view/ic-tree-view.js +296 -0
  198. package/dist/collection/components/ic-tree-view/ic-tree-view.js.map +1 -0
  199. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js +85 -0
  200. package/dist/collection/components/ic-tree-view/test/basic/ic-tree-view.spec.js.map +1 -0
  201. package/dist/collection/utils/helpers.js +44 -1
  202. package/dist/collection/utils/helpers.js.map +1 -1
  203. package/dist/collection/utils/types.js.map +1 -1
  204. package/dist/components/helpers.js +84 -90
  205. package/dist/components/helpers.js.map +1 -1
  206. package/dist/components/helpers2.js +107 -1
  207. package/dist/components/helpers2.js.map +1 -1
  208. package/dist/components/ic-accordion-group.js +39 -13
  209. package/dist/components/ic-accordion-group.js.map +1 -1
  210. package/dist/components/ic-accordion.js +6 -6
  211. package/dist/components/ic-accordion.js.map +1 -1
  212. package/dist/components/ic-alert.js +132 -1
  213. package/dist/components/ic-alert.js.map +1 -1
  214. package/dist/components/ic-back-to-top.js +37 -8
  215. package/dist/components/ic-back-to-top.js.map +1 -1
  216. package/dist/components/ic-badge.js +75 -121
  217. package/dist/components/ic-badge.js.map +1 -1
  218. package/dist/components/ic-breadcrumb-group.js +42 -10
  219. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  220. package/dist/components/ic-breadcrumb2.js +10 -7
  221. package/dist/components/ic-breadcrumb2.js.map +1 -1
  222. package/dist/components/ic-button2.js +69 -106
  223. package/dist/components/ic-button2.js.map +1 -1
  224. package/dist/components/ic-card-horizontal.d.ts +11 -0
  225. package/dist/components/ic-card-horizontal.js +167 -0
  226. package/dist/components/ic-card-horizontal.js.map +1 -0
  227. package/dist/components/ic-card-vertical.js +194 -0
  228. package/dist/components/ic-card-vertical.js.map +1 -0
  229. package/dist/components/ic-checkbox-group.js +31 -21
  230. package/dist/components/ic-checkbox-group.js.map +1 -1
  231. package/dist/components/ic-checkbox.js +52 -47
  232. package/dist/components/ic-checkbox.js.map +1 -1
  233. package/dist/components/ic-chip.js +56 -33
  234. package/dist/components/ic-chip.js.map +1 -1
  235. package/dist/components/ic-classification-banner.js +14 -5
  236. package/dist/components/ic-classification-banner.js.map +1 -1
  237. package/dist/components/ic-data-list.js +56 -0
  238. package/dist/components/ic-data-list.js.map +1 -0
  239. package/dist/components/ic-data-row.js +14 -13
  240. package/dist/components/ic-data-row.js.map +1 -1
  241. package/dist/components/ic-data-table-title-bar.d.ts +11 -0
  242. package/dist/components/ic-data-table-title-bar.js +136 -0
  243. package/dist/components/ic-data-table-title-bar.js.map +1 -0
  244. package/dist/components/ic-data-table.js +843 -72
  245. package/dist/components/ic-data-table.js.map +1 -1
  246. package/dist/components/ic-date-input2.js +79 -36
  247. package/dist/components/ic-date-input2.js.map +1 -1
  248. package/dist/components/ic-date-picker.js +87 -57
  249. package/dist/components/ic-date-picker.js.map +1 -1
  250. package/dist/components/ic-dialog.js +29 -115
  251. package/dist/components/ic-dialog.js.map +1 -1
  252. package/dist/components/ic-divider2.js +2 -3
  253. package/dist/components/ic-divider2.js.map +1 -1
  254. package/dist/components/ic-empty-state.js +1 -57
  255. package/dist/components/ic-empty-state.js.map +1 -1
  256. package/dist/components/ic-empty-state2.js +80 -0
  257. package/dist/components/ic-empty-state2.js.map +1 -0
  258. package/dist/components/ic-footer-link-group.js +10 -10
  259. package/dist/components/ic-footer-link-group.js.map +1 -1
  260. package/dist/components/ic-footer-link.js +13 -8
  261. package/dist/components/ic-footer-link.js.map +1 -1
  262. package/dist/components/ic-footer.js +9 -10
  263. package/dist/components/ic-footer.js.map +1 -1
  264. package/dist/components/ic-hero.js +28 -14
  265. package/dist/components/ic-hero.js.map +1 -1
  266. package/dist/components/ic-horizontal-scroll2.js +6 -8
  267. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  268. package/dist/components/ic-input-component-container2.js +25 -20
  269. package/dist/components/ic-input-component-container2.js.map +1 -1
  270. package/dist/components/ic-input-label2.js +9 -11
  271. package/dist/components/ic-input-label2.js.map +1 -1
  272. package/dist/components/ic-input-validation2.js +4 -5
  273. package/dist/components/ic-input-validation2.js.map +1 -1
  274. package/dist/components/ic-link2.js +54 -27
  275. package/dist/components/ic-link2.js.map +1 -1
  276. package/dist/components/ic-loading-indicator2.js +29 -23
  277. package/dist/components/ic-loading-indicator2.js.map +1 -1
  278. package/dist/components/ic-menu-group.js +2 -2
  279. package/dist/components/ic-menu-group.js.map +1 -1
  280. package/dist/components/ic-menu-item2.js +6 -12
  281. package/dist/components/ic-menu-item2.js.map +1 -1
  282. package/dist/components/ic-menu2.js +15 -20
  283. package/dist/components/ic-menu2.js.map +1 -1
  284. package/dist/components/ic-menu3.js +187 -49
  285. package/dist/components/ic-menu3.js.map +1 -1
  286. package/dist/components/ic-navigation-button.js +28 -8
  287. package/dist/components/ic-navigation-button.js.map +1 -1
  288. package/dist/components/ic-navigation-group.js +23 -20
  289. package/dist/components/ic-navigation-group.js.map +1 -1
  290. package/dist/components/ic-navigation-item.js +33 -37
  291. package/dist/components/ic-navigation-item.js.map +1 -1
  292. package/dist/components/ic-navigation-menu2.js +3 -3
  293. package/dist/components/ic-navigation-menu2.js.map +1 -1
  294. package/dist/components/ic-page-header.js +9 -11
  295. package/dist/components/ic-page-header.js.map +1 -1
  296. package/dist/components/ic-pagination-bar2.js +166 -147
  297. package/dist/components/ic-pagination-bar2.js.map +1 -1
  298. package/dist/components/ic-pagination-item2.js +22 -12
  299. package/dist/components/ic-pagination-item2.js.map +1 -1
  300. package/dist/components/ic-pagination2.js +50 -33
  301. package/dist/components/ic-pagination2.js.map +1 -1
  302. package/dist/components/ic-popover-menu.js +35 -33
  303. package/dist/components/ic-popover-menu.js.map +1 -1
  304. package/dist/components/ic-radio-group.js +88 -53
  305. package/dist/components/ic-radio-group.js.map +1 -1
  306. package/dist/components/ic-radio-option.js +47 -60
  307. package/dist/components/ic-radio-option.js.map +1 -1
  308. package/dist/components/ic-search-bar.js +31 -52
  309. package/dist/components/ic-search-bar.js.map +1 -1
  310. package/dist/components/ic-section-container2.js +1 -1
  311. package/dist/components/ic-section-container2.js.map +1 -1
  312. package/dist/components/ic-select-with-multi.js +15 -58
  313. package/dist/components/ic-select-with-multi.js.map +1 -1
  314. package/dist/components/ic-select2.js +60 -43
  315. package/dist/components/ic-select2.js.map +1 -1
  316. package/dist/components/ic-side-navigation.js +8 -9
  317. package/dist/components/ic-side-navigation.js.map +1 -1
  318. package/dist/components/ic-skeleton.js +20 -45
  319. package/dist/components/ic-skeleton.js.map +1 -1
  320. package/dist/components/ic-status-tag.js +7 -15
  321. package/dist/components/ic-status-tag.js.map +1 -1
  322. package/dist/components/ic-step.js +48 -48
  323. package/dist/components/ic-step.js.map +1 -1
  324. package/dist/components/ic-stepper.js +60 -23
  325. package/dist/components/ic-stepper.js.map +1 -1
  326. package/dist/components/ic-switch.js +7 -9
  327. package/dist/components/ic-switch.js.map +1 -1
  328. package/dist/components/ic-tab-context.js +95 -139
  329. package/dist/components/ic-tab-context.js.map +1 -1
  330. package/dist/components/ic-tab-group.js +27 -13
  331. package/dist/components/ic-tab-group.js.map +1 -1
  332. package/dist/components/ic-tab-panel.js +9 -16
  333. package/dist/components/ic-tab-panel.js.map +1 -1
  334. package/dist/components/ic-tab.js +16 -15
  335. package/dist/components/ic-tab.js.map +1 -1
  336. package/dist/components/ic-text-field2.js +105 -114
  337. package/dist/components/ic-text-field2.js.map +1 -1
  338. package/dist/components/ic-theme.js +45 -28
  339. package/dist/components/ic-theme.js.map +1 -1
  340. package/dist/components/ic-toast-region.js +7 -9
  341. package/dist/components/ic-toast-region.js.map +1 -1
  342. package/dist/components/ic-toast.js +93 -36
  343. package/dist/components/ic-toast.js.map +1 -1
  344. package/dist/components/ic-toggle-button-group.js +17 -17
  345. package/dist/components/ic-toggle-button-group.js.map +1 -1
  346. package/dist/components/ic-toggle-button.js +16 -14
  347. package/dist/components/ic-toggle-button.js.map +1 -1
  348. package/dist/components/ic-tooltip2.js +31 -9
  349. package/dist/components/ic-tooltip2.js.map +1 -1
  350. package/dist/components/ic-top-navigation.js +63 -87
  351. package/dist/components/ic-top-navigation.js.map +1 -1
  352. package/dist/components/ic-tree-item.d.ts +11 -0
  353. package/dist/components/ic-tree-item.js +286 -0
  354. package/dist/components/ic-tree-item.js.map +1 -0
  355. package/dist/components/ic-tree-view.d.ts +11 -0
  356. package/dist/components/ic-tree-view.js +237 -0
  357. package/dist/components/ic-tree-view.js.map +1 -0
  358. package/dist/components/ic-typography2.js +65 -22
  359. package/dist/components/ic-typography2.js.map +1 -1
  360. package/dist/core/core.css +101 -29
  361. package/dist/core/core.esm.js +1 -1
  362. package/dist/core/core.esm.js.map +1 -1
  363. package/dist/core/p-0894cab1.entry.js +2 -0
  364. package/dist/core/p-0894cab1.entry.js.map +1 -0
  365. package/dist/core/p-0ab10600.entry.js +2 -0
  366. package/dist/core/p-0ab10600.entry.js.map +1 -0
  367. package/dist/core/p-1109636a.entry.js +2 -0
  368. package/dist/core/p-1109636a.entry.js.map +1 -0
  369. package/dist/core/p-130a05cf.entry.js +2 -0
  370. package/dist/core/p-130a05cf.entry.js.map +1 -0
  371. package/dist/core/p-1e2aa8a6.entry.js +2 -0
  372. package/dist/core/p-1e2aa8a6.entry.js.map +1 -0
  373. package/dist/core/p-1fe35de1.entry.js +2 -0
  374. package/dist/core/p-1fe35de1.entry.js.map +1 -0
  375. package/dist/core/p-202bc922.entry.js +2 -0
  376. package/dist/core/p-202bc922.entry.js.map +1 -0
  377. package/dist/core/p-28323849.entry.js +2 -0
  378. package/dist/core/p-28323849.entry.js.map +1 -0
  379. package/dist/core/p-297e99cf.js +2 -0
  380. package/dist/core/p-297e99cf.js.map +1 -0
  381. package/dist/core/p-2e49fb22.entry.js +2 -0
  382. package/dist/core/p-2e49fb22.entry.js.map +1 -0
  383. package/dist/core/p-2ff4e283.entry.js +2 -0
  384. package/dist/core/p-2ff4e283.entry.js.map +1 -0
  385. package/dist/core/p-30b046b2.entry.js +2 -0
  386. package/dist/core/p-30b046b2.entry.js.map +1 -0
  387. package/dist/core/{p-f8cf2978.js → p-33dd24eb.js} +2 -2
  388. package/dist/core/p-3db785f0.entry.js +2 -0
  389. package/dist/core/p-3db785f0.entry.js.map +1 -0
  390. package/dist/core/p-3ef28704.entry.js +2 -0
  391. package/dist/core/p-3ef28704.entry.js.map +1 -0
  392. package/dist/core/p-42883e4c.entry.js +2 -0
  393. package/dist/core/p-42883e4c.entry.js.map +1 -0
  394. package/dist/core/p-42e0f3bd.entry.js +2 -0
  395. package/dist/core/p-42e0f3bd.entry.js.map +1 -0
  396. package/dist/core/p-44ee5375.entry.js +2 -0
  397. package/dist/core/p-44ee5375.entry.js.map +1 -0
  398. package/dist/core/p-486d8d43.entry.js +2 -0
  399. package/dist/core/p-486d8d43.entry.js.map +1 -0
  400. package/dist/core/p-4dcc37e7.entry.js +2 -0
  401. package/dist/core/p-4dcc37e7.entry.js.map +1 -0
  402. package/dist/core/p-4e28ef60.entry.js +2 -0
  403. package/dist/core/{p-b306cbc8.entry.js.map → p-4e28ef60.entry.js.map} +1 -1
  404. package/dist/core/p-50019ede.entry.js +2 -0
  405. package/dist/core/p-50019ede.entry.js.map +1 -0
  406. package/dist/core/p-505250cf.entry.js +2 -0
  407. package/dist/core/p-505250cf.entry.js.map +1 -0
  408. package/dist/core/p-53e00a8a.entry.js +2 -0
  409. package/dist/core/p-53e00a8a.entry.js.map +1 -0
  410. package/dist/core/p-59028160.entry.js +2 -0
  411. package/dist/core/p-59028160.entry.js.map +1 -0
  412. package/dist/core/p-5accf0bb.entry.js +2 -0
  413. package/dist/core/p-5accf0bb.entry.js.map +1 -0
  414. package/dist/core/p-5b7dfe57.entry.js +2 -0
  415. package/dist/core/p-5b7dfe57.entry.js.map +1 -0
  416. package/dist/core/p-5cfb5821.entry.js +2 -0
  417. package/dist/core/p-5cfb5821.entry.js.map +1 -0
  418. package/dist/core/p-603fea14.entry.js +2 -0
  419. package/dist/core/p-603fea14.entry.js.map +1 -0
  420. package/dist/core/p-64933069.entry.js +2 -0
  421. package/dist/core/p-64933069.entry.js.map +1 -0
  422. package/dist/core/p-6beffd0e.entry.js +2 -0
  423. package/dist/core/p-6beffd0e.entry.js.map +1 -0
  424. package/dist/core/p-77a32de5.entry.js +2 -0
  425. package/dist/core/p-77a32de5.entry.js.map +1 -0
  426. package/dist/core/p-7c268030.entry.js +2 -0
  427. package/dist/core/p-7c268030.entry.js.map +1 -0
  428. package/dist/core/p-7c78f6c6.entry.js +2 -0
  429. package/dist/core/p-7c78f6c6.entry.js.map +1 -0
  430. package/dist/core/p-7c80d79c.entry.js +2 -0
  431. package/dist/core/p-7c80d79c.entry.js.map +1 -0
  432. package/dist/core/{p-c2b5e7b1.entry.js → p-7e1603cc.entry.js} +2 -2
  433. package/dist/core/p-7e1603cc.entry.js.map +1 -0
  434. package/dist/core/p-897b8d16.entry.js +2 -0
  435. package/dist/core/p-897b8d16.entry.js.map +1 -0
  436. package/dist/core/p-8ca2e329.entry.js +2 -0
  437. package/dist/core/p-8ca2e329.entry.js.map +1 -0
  438. package/dist/core/p-8df49808.entry.js +2 -0
  439. package/dist/core/p-8df49808.entry.js.map +1 -0
  440. package/dist/core/p-8f12659d.entry.js +2 -0
  441. package/dist/core/p-8f12659d.entry.js.map +1 -0
  442. package/dist/core/p-903ee57e.entry.js +2 -0
  443. package/dist/core/p-903ee57e.entry.js.map +1 -0
  444. package/dist/core/p-92e3ccb9.entry.js +2 -0
  445. package/dist/core/p-92e3ccb9.entry.js.map +1 -0
  446. package/dist/core/p-9397b15b.js +2 -0
  447. package/dist/core/p-9397b15b.js.map +1 -0
  448. package/dist/core/p-9b54feca.entry.js +2 -0
  449. package/dist/core/p-9b54feca.entry.js.map +1 -0
  450. package/dist/core/{p-356b8a4c.entry.js → p-9f3cf053.entry.js} +2 -2
  451. package/dist/core/{p-356b8a4c.entry.js.map → p-9f3cf053.entry.js.map} +1 -1
  452. package/dist/core/p-a78cf2cb.entry.js +2 -0
  453. package/dist/core/p-a78cf2cb.entry.js.map +1 -0
  454. package/dist/core/p-a9151d0b.entry.js +2 -0
  455. package/dist/core/p-a9151d0b.entry.js.map +1 -0
  456. package/dist/core/p-acc76b80.entry.js +2 -0
  457. package/dist/core/p-acc76b80.entry.js.map +1 -0
  458. package/dist/core/p-aeb6016c.entry.js +2 -0
  459. package/dist/core/p-aeb6016c.entry.js.map +1 -0
  460. package/dist/core/p-b0751bd9.entry.js +2 -0
  461. package/dist/core/p-b0751bd9.entry.js.map +1 -0
  462. package/dist/core/{p-452985d9.entry.js → p-b40ecaef.entry.js} +2 -2
  463. package/dist/core/p-b40ecaef.entry.js.map +1 -0
  464. package/dist/core/p-bb1252fa.entry.js +2 -0
  465. package/dist/core/p-bb1252fa.entry.js.map +1 -0
  466. package/dist/core/p-c033e7d6.entry.js +2 -0
  467. package/dist/core/p-c033e7d6.entry.js.map +1 -0
  468. package/dist/core/p-c1698936.entry.js +2 -0
  469. package/dist/core/p-c1698936.entry.js.map +1 -0
  470. package/dist/core/p-c1e90c85.entry.js +2 -0
  471. package/dist/core/p-c1e90c85.entry.js.map +1 -0
  472. package/dist/core/p-cb63e656.entry.js +2 -0
  473. package/dist/core/p-cb63e656.entry.js.map +1 -0
  474. package/dist/core/p-d03374fc.entry.js +2 -0
  475. package/dist/core/p-d03374fc.entry.js.map +1 -0
  476. package/dist/core/p-d2e7a256.entry.js +2 -0
  477. package/dist/core/p-d2e7a256.entry.js.map +1 -0
  478. package/dist/core/p-d3c0bffb.entry.js +2 -0
  479. package/dist/core/p-d3c0bffb.entry.js.map +1 -0
  480. package/dist/core/p-d5ca3bcb.entry.js +2 -0
  481. package/dist/core/p-d5ca3bcb.entry.js.map +1 -0
  482. package/dist/core/p-da3e8c54.entry.js +2 -0
  483. package/dist/core/p-da3e8c54.entry.js.map +1 -0
  484. package/dist/core/p-e5d99316.entry.js +2 -0
  485. package/dist/core/p-e5d99316.entry.js.map +1 -0
  486. package/dist/core/p-eb65e556.entry.js +2 -0
  487. package/dist/core/p-eb65e556.entry.js.map +1 -0
  488. package/dist/core/p-ec53b435.entry.js +2 -0
  489. package/dist/core/p-ec53b435.entry.js.map +1 -0
  490. package/dist/core/p-ed4cde5a.entry.js +2 -0
  491. package/dist/core/p-ed4cde5a.entry.js.map +1 -0
  492. package/dist/core/{p-baf81f30.entry.js → p-f64abdff.entry.js} +2 -2
  493. package/dist/core/p-f64abdff.entry.js.map +1 -0
  494. package/dist/core/p-f9810621.entry.js +2 -0
  495. package/dist/core/p-f9810621.entry.js.map +1 -0
  496. package/dist/core/p-fb7b99dd.entry.js +2 -0
  497. package/dist/core/p-fb7b99dd.entry.js.map +1 -0
  498. package/dist/esm/core.js +1 -1
  499. package/dist/esm/{date-helpers-4f432e92.js → date-helpers-0e5e32a7.js} +2 -2
  500. package/dist/esm/{date-helpers-4f432e92.js.map → date-helpers-0e5e32a7.js.map} +1 -1
  501. package/dist/esm/{helpers-f328a7b6.js → helpers-5bd2012a.js} +108 -2
  502. package/dist/esm/helpers-5bd2012a.js.map +1 -0
  503. package/dist/esm/{helpers-7aa21b0a.js → helpers-dab8ddfe.js} +85 -91
  504. package/dist/esm/helpers-dab8ddfe.js.map +1 -0
  505. package/dist/esm/ic-accordion-group.entry.js +31 -9
  506. package/dist/esm/ic-accordion-group.entry.js.map +1 -1
  507. package/dist/esm/ic-accordion.entry.js +7 -8
  508. package/dist/esm/ic-accordion.entry.js.map +1 -1
  509. package/dist/esm/ic-alert.entry.js +27 -9
  510. package/dist/esm/ic-alert.entry.js.map +1 -1
  511. package/dist/esm/ic-back-to-top.entry.js +17 -8
  512. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  513. package/dist/esm/ic-badge.entry.js +67 -117
  514. package/dist/esm/ic-badge.entry.js.map +1 -1
  515. package/dist/esm/ic-breadcrumb-group.entry.js +37 -11
  516. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  517. package/dist/esm/ic-breadcrumb.entry.js +8 -7
  518. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  519. package/dist/esm/ic-button_3.entry.js +121 -133
  520. package/dist/esm/ic-button_3.entry.js.map +1 -1
  521. package/dist/esm/ic-card-horizontal.entry.js +127 -0
  522. package/dist/esm/ic-card-horizontal.entry.js.map +1 -0
  523. package/dist/esm/ic-card-vertical.entry.js +145 -0
  524. package/dist/esm/ic-card-vertical.entry.js.map +1 -0
  525. package/dist/esm/ic-checkbox-group.entry.js +27 -20
  526. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  527. package/dist/esm/ic-checkbox.entry.js +45 -40
  528. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  529. package/dist/esm/ic-chip.entry.js +49 -31
  530. package/dist/esm/ic-chip.entry.js.map +1 -1
  531. package/dist/esm/ic-classification-banner.entry.js +14 -5
  532. package/dist/esm/ic-classification-banner.entry.js.map +1 -1
  533. package/dist/esm/ic-data-list.entry.js +28 -0
  534. package/dist/esm/ic-data-list.entry.js.map +1 -0
  535. package/dist/esm/ic-data-row.entry.js +12 -12
  536. package/dist/esm/ic-data-row.entry.js.map +1 -1
  537. package/dist/esm/ic-data-table-title-bar.entry.js +53 -0
  538. package/dist/esm/ic-data-table-title-bar.entry.js.map +1 -0
  539. package/dist/esm/ic-data-table.entry.js +808 -66
  540. package/dist/esm/ic-data-table.entry.js.map +1 -1
  541. package/dist/esm/ic-date-input.entry.js +71 -34
  542. package/dist/esm/ic-date-input.entry.js.map +1 -1
  543. package/dist/esm/ic-date-picker.entry.js +82 -56
  544. package/dist/esm/ic-date-picker.entry.js.map +1 -1
  545. package/dist/esm/ic-dialog.entry.js +27 -101
  546. package/dist/esm/ic-dialog.entry.js.map +1 -1
  547. package/dist/esm/ic-divider.entry.js +2 -3
  548. package/dist/esm/ic-divider.entry.js.map +1 -1
  549. package/dist/esm/ic-empty-state_2.entry.js +318 -0
  550. package/dist/esm/ic-empty-state_2.entry.js.map +1 -0
  551. package/dist/esm/ic-footer-link-group.entry.js +9 -10
  552. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  553. package/dist/esm/ic-footer-link.entry.js +6 -8
  554. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  555. package/dist/esm/ic-footer.entry.js +9 -10
  556. package/dist/esm/ic-footer.entry.js.map +1 -1
  557. package/dist/esm/ic-hero.entry.js +28 -13
  558. package/dist/esm/ic-hero.entry.js.map +1 -1
  559. package/dist/esm/ic-horizontal-scroll.entry.js +6 -8
  560. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  561. package/dist/esm/ic-input-component-container_4.entry.js +35 -29
  562. package/dist/esm/ic-input-component-container_4.entry.js.map +1 -1
  563. package/dist/esm/ic-link.entry.js +52 -25
  564. package/dist/esm/ic-link.entry.js.map +1 -1
  565. package/dist/esm/ic-menu-group.entry.js +2 -3
  566. package/dist/esm/ic-menu-group.entry.js.map +1 -1
  567. package/dist/esm/ic-menu-item.entry.js +6 -13
  568. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  569. package/dist/esm/ic-menu-with-multi.entry.js +186 -47
  570. package/dist/esm/ic-menu-with-multi.entry.js.map +1 -1
  571. package/dist/esm/ic-menu.entry.js +16 -21
  572. package/dist/esm/ic-menu.entry.js.map +1 -1
  573. package/dist/esm/ic-navigation-button.entry.js +28 -8
  574. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  575. package/dist/esm/ic-navigation-group.entry.js +23 -21
  576. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  577. package/dist/esm/ic-navigation-item.entry.js +33 -38
  578. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  579. package/dist/esm/ic-navigation-menu.entry.js +3 -4
  580. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  581. package/dist/esm/ic-page-header.entry.js +10 -12
  582. package/dist/esm/ic-page-header.entry.js.map +1 -1
  583. package/dist/esm/ic-pagination_4.entry.js +221 -180
  584. package/dist/esm/ic-pagination_4.entry.js.map +1 -1
  585. package/dist/esm/ic-popover-menu.entry.js +33 -33
  586. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  587. package/dist/esm/ic-radio-group.entry.js +87 -53
  588. package/dist/esm/ic-radio-group.entry.js.map +1 -1
  589. package/dist/esm/ic-radio-option.entry.js +44 -53
  590. package/dist/esm/ic-radio-option.entry.js.map +1 -1
  591. package/dist/esm/ic-search-bar.entry.js +29 -49
  592. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  593. package/dist/esm/ic-section-container.entry.js +1 -1
  594. package/dist/esm/ic-section-container.entry.js.map +1 -1
  595. package/dist/esm/ic-select-with-multi.entry.js +14 -50
  596. package/dist/esm/ic-select-with-multi.entry.js.map +1 -1
  597. package/dist/esm/ic-side-navigation.entry.js +8 -9
  598. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  599. package/dist/esm/ic-skeleton.entry.js +18 -38
  600. package/dist/esm/ic-skeleton.entry.js.map +1 -1
  601. package/dist/esm/ic-status-tag.entry.js +7 -15
  602. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  603. package/dist/esm/ic-step.entry.js +41 -43
  604. package/dist/esm/ic-step.entry.js.map +1 -1
  605. package/dist/esm/ic-stepper.entry.js +55 -24
  606. package/dist/esm/ic-stepper.entry.js.map +1 -1
  607. package/dist/esm/ic-switch.entry.js +7 -9
  608. package/dist/esm/ic-switch.entry.js.map +1 -1
  609. package/dist/esm/ic-tab-context.entry.js +90 -137
  610. package/dist/esm/ic-tab-context.entry.js.map +1 -1
  611. package/dist/esm/ic-tab-group.entry.js +25 -11
  612. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  613. package/dist/esm/ic-tab-panel.entry.js +6 -13
  614. package/dist/esm/ic-tab-panel.entry.js.map +1 -1
  615. package/dist/esm/ic-tab.entry.js +14 -14
  616. package/dist/esm/ic-tab.entry.js.map +1 -1
  617. package/dist/esm/ic-theme.entry.js +39 -25
  618. package/dist/esm/ic-theme.entry.js.map +1 -1
  619. package/dist/esm/ic-toast-region.entry.js +6 -7
  620. package/dist/esm/ic-toast-region.entry.js.map +1 -1
  621. package/dist/esm/ic-toast.entry.js +88 -35
  622. package/dist/esm/ic-toast.entry.js.map +1 -1
  623. package/dist/esm/ic-toggle-button-group.entry.js +17 -17
  624. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  625. package/dist/esm/ic-toggle-button.entry.js +15 -14
  626. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  627. package/dist/esm/ic-top-navigation.entry.js +62 -86
  628. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  629. package/dist/esm/ic-tree-item.entry.js +237 -0
  630. package/dist/esm/ic-tree-item.entry.js.map +1 -0
  631. package/dist/esm/ic-tree-view.entry.js +199 -0
  632. package/dist/esm/ic-tree-view.entry.js.map +1 -0
  633. package/dist/esm/ic-typography.entry.js +59 -21
  634. package/dist/esm/ic-typography.entry.js.map +1 -1
  635. package/dist/esm/index-93509377.js +26 -14
  636. package/dist/esm/loader.js +1 -1
  637. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.d.ts +71 -0
  638. package/dist/types/components/ic-card-horizontal/ic-card-horizontal.types.d.ts +1 -0
  639. package/dist/types/components/ic-data-table/ic-data-table.d.ts +178 -19
  640. package/dist/types/components/ic-data-table/ic-data-table.types.d.ts +30 -0
  641. package/dist/types/components/ic-data-table/story-data.d.ts +251 -3
  642. package/dist/types/components/ic-data-table-title-bar/ic-data-table-title-bar.d.ts +36 -0
  643. package/dist/types/components/ic-date-input/ic-date-input.d.ts +17 -0
  644. package/dist/types/components/ic-date-picker/ic-date-picker.d.ts +14 -25
  645. package/dist/types/components/ic-menu-with-multi/ic-menu.d.ts +10 -4
  646. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.d.ts +46 -22
  647. package/dist/types/components/ic-pagination-bar/ic-pagination-bar.types.d.ts +4 -0
  648. package/dist/types/components/ic-select-with-multi/ic-select.d.ts +1 -31
  649. package/dist/types/components/ic-tree-item/ic-tree-item.d.ts +95 -0
  650. package/dist/types/components/ic-tree-view/ic-tree-view.d.ts +40 -0
  651. package/dist/types/components.d.ts +560 -117
  652. package/dist/types/interface.d.ts +1 -0
  653. package/dist/types/utils/helpers.d.ts +9 -0
  654. package/dist/types/utils/types.d.ts +24 -8
  655. package/hydrate/index.js +4461 -2588
  656. package/package.json +6 -6
  657. package/dist/cjs/helpers-7a069459.js.map +0 -1
  658. package/dist/cjs/helpers-f75cf7cf.js.map +0 -1
  659. package/dist/cjs/ic-card.cjs.entry.js +0 -126
  660. package/dist/cjs/ic-card.cjs.entry.js.map +0 -1
  661. package/dist/cjs/ic-data-entity.cjs.entry.js +0 -29
  662. package/dist/cjs/ic-data-entity.cjs.entry.js.map +0 -1
  663. package/dist/cjs/ic-empty-state.cjs.entry.js +0 -38
  664. package/dist/cjs/ic-empty-state.cjs.entry.js.map +0 -1
  665. package/dist/cjs/ic-pagination-bar.cjs.entry.js +0 -269
  666. package/dist/cjs/ic-pagination-bar.cjs.entry.js.map +0 -1
  667. package/dist/cjs/types-17dba796.js +0 -16
  668. package/dist/cjs/types-17dba796.js.map +0 -1
  669. package/dist/collection/components/ic-pagination/ic-pagination.types.js +0 -2
  670. package/dist/collection/components/ic-pagination/ic-pagination.types.js.map +0 -1
  671. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js +0 -146
  672. package/dist/collection/components/ic-select-with-multi/test/a11y/ic-select.test.a11y.js.map +0 -1
  673. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js +0 -2040
  674. package/dist/collection/components/ic-select-with-multi/test/basic/ic-select.e2e.js.map +0 -1
  675. package/dist/components/ic-alert2.js +0 -117
  676. package/dist/components/ic-alert2.js.map +0 -1
  677. package/dist/components/ic-card.js +0 -171
  678. package/dist/components/ic-card.js.map +0 -1
  679. package/dist/components/ic-data-entity.js +0 -53
  680. package/dist/components/ic-data-entity.js.map +0 -1
  681. package/dist/components/types.js +0 -16
  682. package/dist/components/types.js.map +0 -1
  683. package/dist/core/p-06ae5bec.entry.js +0 -2
  684. package/dist/core/p-06ae5bec.entry.js.map +0 -1
  685. package/dist/core/p-0939ce92.entry.js +0 -2
  686. package/dist/core/p-0939ce92.entry.js.map +0 -1
  687. package/dist/core/p-16f67397.entry.js +0 -2
  688. package/dist/core/p-16f67397.entry.js.map +0 -1
  689. package/dist/core/p-1832f4b5.entry.js +0 -2
  690. package/dist/core/p-1832f4b5.entry.js.map +0 -1
  691. package/dist/core/p-1b7d426b.entry.js +0 -2
  692. package/dist/core/p-1b7d426b.entry.js.map +0 -1
  693. package/dist/core/p-1ce75941.entry.js +0 -2
  694. package/dist/core/p-1ce75941.entry.js.map +0 -1
  695. package/dist/core/p-2e2e0099.entry.js +0 -2
  696. package/dist/core/p-2e2e0099.entry.js.map +0 -1
  697. package/dist/core/p-33679c06.entry.js +0 -2
  698. package/dist/core/p-33679c06.entry.js.map +0 -1
  699. package/dist/core/p-36508aad.entry.js +0 -2
  700. package/dist/core/p-36508aad.entry.js.map +0 -1
  701. package/dist/core/p-3745da83.entry.js +0 -2
  702. package/dist/core/p-3745da83.entry.js.map +0 -1
  703. package/dist/core/p-3f2e77c3.entry.js +0 -2
  704. package/dist/core/p-3f2e77c3.entry.js.map +0 -1
  705. package/dist/core/p-452985d9.entry.js.map +0 -1
  706. package/dist/core/p-47ac6838.entry.js +0 -2
  707. package/dist/core/p-47ac6838.entry.js.map +0 -1
  708. package/dist/core/p-4f1ffa39.entry.js +0 -2
  709. package/dist/core/p-4f1ffa39.entry.js.map +0 -1
  710. package/dist/core/p-5759d771.entry.js +0 -2
  711. package/dist/core/p-5759d771.entry.js.map +0 -1
  712. package/dist/core/p-5e2e6c3b.entry.js +0 -2
  713. package/dist/core/p-5e2e6c3b.entry.js.map +0 -1
  714. package/dist/core/p-5fe96107.entry.js +0 -2
  715. package/dist/core/p-5fe96107.entry.js.map +0 -1
  716. package/dist/core/p-62e22508.entry.js +0 -2
  717. package/dist/core/p-62e22508.entry.js.map +0 -1
  718. package/dist/core/p-6690bc04.entry.js +0 -2
  719. package/dist/core/p-6690bc04.entry.js.map +0 -1
  720. package/dist/core/p-6c0e2ceb.entry.js +0 -2
  721. package/dist/core/p-6c0e2ceb.entry.js.map +0 -1
  722. package/dist/core/p-76915584.entry.js +0 -2
  723. package/dist/core/p-76915584.entry.js.map +0 -1
  724. package/dist/core/p-76d26018.entry.js +0 -2
  725. package/dist/core/p-76d26018.entry.js.map +0 -1
  726. package/dist/core/p-776671cf.entry.js +0 -2
  727. package/dist/core/p-776671cf.entry.js.map +0 -1
  728. package/dist/core/p-7cecf5d5.entry.js +0 -2
  729. package/dist/core/p-7cecf5d5.entry.js.map +0 -1
  730. package/dist/core/p-85609bdd.entry.js +0 -2
  731. package/dist/core/p-85609bdd.entry.js.map +0 -1
  732. package/dist/core/p-86012178.entry.js +0 -2
  733. package/dist/core/p-86012178.entry.js.map +0 -1
  734. package/dist/core/p-8a7e7d23.entry.js +0 -2
  735. package/dist/core/p-8a7e7d23.entry.js.map +0 -1
  736. package/dist/core/p-8c90110a.entry.js +0 -2
  737. package/dist/core/p-8c90110a.entry.js.map +0 -1
  738. package/dist/core/p-8ea47d42.entry.js +0 -2
  739. package/dist/core/p-8ea47d42.entry.js.map +0 -1
  740. package/dist/core/p-9777ebb1.entry.js +0 -2
  741. package/dist/core/p-9777ebb1.entry.js.map +0 -1
  742. package/dist/core/p-982a6e88.entry.js +0 -2
  743. package/dist/core/p-982a6e88.entry.js.map +0 -1
  744. package/dist/core/p-98448bdb.entry.js +0 -2
  745. package/dist/core/p-98448bdb.entry.js.map +0 -1
  746. package/dist/core/p-9d01a7ad.entry.js +0 -2
  747. package/dist/core/p-9d01a7ad.entry.js.map +0 -1
  748. package/dist/core/p-9d540656.entry.js +0 -2
  749. package/dist/core/p-9d540656.entry.js.map +0 -1
  750. package/dist/core/p-9e3178e8.entry.js +0 -2
  751. package/dist/core/p-9e3178e8.entry.js.map +0 -1
  752. package/dist/core/p-a0f9b259.entry.js +0 -2
  753. package/dist/core/p-a0f9b259.entry.js.map +0 -1
  754. package/dist/core/p-a42c2f37.entry.js +0 -2
  755. package/dist/core/p-a42c2f37.entry.js.map +0 -1
  756. package/dist/core/p-a6447b13.entry.js +0 -2
  757. package/dist/core/p-a6447b13.entry.js.map +0 -1
  758. package/dist/core/p-aabab75f.entry.js +0 -2
  759. package/dist/core/p-aabab75f.entry.js.map +0 -1
  760. package/dist/core/p-ae422058.entry.js +0 -2
  761. package/dist/core/p-ae422058.entry.js.map +0 -1
  762. package/dist/core/p-b2aa3d7c.entry.js +0 -2
  763. package/dist/core/p-b2aa3d7c.entry.js.map +0 -1
  764. package/dist/core/p-b306cbc8.entry.js +0 -2
  765. package/dist/core/p-baf81f30.entry.js.map +0 -1
  766. package/dist/core/p-c2b5e7b1.entry.js.map +0 -1
  767. package/dist/core/p-c7590421.entry.js +0 -2
  768. package/dist/core/p-c7590421.entry.js.map +0 -1
  769. package/dist/core/p-c7820c23.entry.js +0 -2
  770. package/dist/core/p-c7820c23.entry.js.map +0 -1
  771. package/dist/core/p-ca8cbd6a.entry.js +0 -2
  772. package/dist/core/p-ca8cbd6a.entry.js.map +0 -1
  773. package/dist/core/p-caf857de.entry.js +0 -2
  774. package/dist/core/p-caf857de.entry.js.map +0 -1
  775. package/dist/core/p-cc7bc438.entry.js +0 -2
  776. package/dist/core/p-cc7bc438.entry.js.map +0 -1
  777. package/dist/core/p-cd799087.js +0 -2
  778. package/dist/core/p-cd799087.js.map +0 -1
  779. package/dist/core/p-d32692e2.entry.js +0 -2
  780. package/dist/core/p-d32692e2.entry.js.map +0 -1
  781. package/dist/core/p-d35c7c18.js +0 -2
  782. package/dist/core/p-d35c7c18.js.map +0 -1
  783. package/dist/core/p-d3856ed3.entry.js +0 -2
  784. package/dist/core/p-d3856ed3.entry.js.map +0 -1
  785. package/dist/core/p-d4fdd8c1.entry.js +0 -2
  786. package/dist/core/p-d4fdd8c1.entry.js.map +0 -1
  787. package/dist/core/p-d5c99ec3.entry.js +0 -2
  788. package/dist/core/p-d5c99ec3.entry.js.map +0 -1
  789. package/dist/core/p-e189f1d0.entry.js +0 -2
  790. package/dist/core/p-e189f1d0.entry.js.map +0 -1
  791. package/dist/core/p-e473bbf8.entry.js +0 -2
  792. package/dist/core/p-e473bbf8.entry.js.map +0 -1
  793. package/dist/core/p-e74f1d09.entry.js +0 -2
  794. package/dist/core/p-e74f1d09.entry.js.map +0 -1
  795. package/dist/core/p-e79e0292.entry.js +0 -2
  796. package/dist/core/p-e79e0292.entry.js.map +0 -1
  797. package/dist/core/p-e84b0310.entry.js +0 -2
  798. package/dist/core/p-e84b0310.entry.js.map +0 -1
  799. package/dist/core/p-f55ad6ae.entry.js +0 -2
  800. package/dist/core/p-f55ad6ae.entry.js.map +0 -1
  801. package/dist/core/p-f91527a0.entry.js +0 -2
  802. package/dist/core/p-f91527a0.entry.js.map +0 -1
  803. package/dist/core/p-fbf4e9b7.entry.js +0 -2
  804. package/dist/core/p-fbf4e9b7.entry.js.map +0 -1
  805. package/dist/core/p-fd186591.js +0 -2
  806. package/dist/core/p-fd186591.js.map +0 -1
  807. package/dist/esm/helpers-7aa21b0a.js.map +0 -1
  808. package/dist/esm/helpers-f328a7b6.js.map +0 -1
  809. package/dist/esm/ic-card.entry.js +0 -122
  810. package/dist/esm/ic-card.entry.js.map +0 -1
  811. package/dist/esm/ic-data-entity.entry.js +0 -25
  812. package/dist/esm/ic-data-entity.entry.js.map +0 -1
  813. package/dist/esm/ic-empty-state.entry.js +0 -34
  814. package/dist/esm/ic-empty-state.entry.js.map +0 -1
  815. package/dist/esm/ic-pagination-bar.entry.js +0 -265
  816. package/dist/esm/ic-pagination-bar.entry.js.map +0 -1
  817. package/dist/esm/types-f605c21c.js +0 -16
  818. package/dist/esm/types-f605c21c.js.map +0 -1
  819. package/dist/types/components/ic-pagination/ic-pagination.types.d.ts +0 -6
  820. /package/dist/core/{p-f8cf2978.js.map → p-33dd24eb.js.map} +0 -0
  821. /package/dist/types/components/{ic-select-with-multi/test/a11y/ic-select.test.a11y.d.ts → ic-data-table-title-bar/test/a11y/ic-data-table-title-bar.test.a11y.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"names":["icMenuCss","Menu","constructor","hostRef","this","disabledOptionSelected","hasPreviouslyBlurred","hasTimedOut","isLoading","isSearchBar","isSearchableSelect","preventClickOpen","ungroupedOptions","handleClearListener","optionHighlighted","handleSubmitSearch","highlightedOptionIndex","options","findIndex","option","valueField","setInputValue","handleMenuChange","open","focusInput","menuStateChange","emit","inputEl","focus","setNextOptionValue","selectedOptionIndex","menuOptionSelect","value","optionId","getOptionId","setPreviousOptionValue","length","getParentEl","parent","tagName","getAttribute","undefined","arrowBehaviour","event","preventDefault","setMenuOptions","setHighlightedOption","highlightedIndex","menuOptions","timedOut","autoSetInputValueKeyboardOpen","keyboardNav","key","target","id","manSetInputValueKeyboardOpen","index","_a","Array","from","host","querySelectorAll","isOpen","menuOptionId","preventIncorrectTabOrder","focusFromSearchKeypress","disabled","stopImmediatePropagation","focusOnSearchOrSelectInput","parentEl","setFocus","handleOptionClick","label","dataset","handleRetry","retryButtonClicked","handleRetryKeyDown","ev","keyPressed","handleBlur","relatedTarget","menu","contains","handleMouseDown","handleMenuKeyDown","activationType","autoSetValueOnMenuKeyDown","emitMenuKeyPress","isNavKey","menuKeyPress","cancelBubble","handleMenuKeyUp","shiftKey","menuId","getOptionAriaLabel","parentOption","ariaLabel","labelField","description","element","getSortedOptions","sorted","sort","optionA","optionB","recommended","isManualMode","scrollToSelected","selectedOption","selectOnEnter","querySelector","elTop","offsetTop","offsetHeight","scrollTop","loadUngroupedOptions","map","children","push","ungroupedOptionsSet","setMenuScrollbar","optionsHeight","forEach","clientHeight","classList","add","handleTimeoutBlur","timeoutBlur","optionContent","h","Fragment","loading","size","class","icon","innerHTML","variant","component","toLowerCase","Check","displayOption","initialOptionsListRender","timeout","role","tabindex","onClick","onBlur","onMouseDown","xmlns","viewBox","fill","d","onKeyDown","anchorEl","autoFocusOnSelected","fullWidth","inputLabel","searchMode","small","watchOpenHandler","popperInstance","destroy","watchOptionsHandler","newOptions","some","opt","watchValueHandler","menuValueChange","connectedCallback","disconnectedCallback","removeEventListener","componentWillLoad","_b","addEventListener","componentDidLoad","disableFilter","onComponentRequiredPropUndefined","prop","propName","componentDidUpdate","inputValueInOptions","optionHighlightedIsSet","highlightedEl","componentDidRender","initPopperJs","handleClickOpen","handleKeyboardOpen","handleSetFirstOption","anchor","createPopper","placement","modifiers","name","offset","fallbackPlacements","rootBoundary","render","Host","ref","el","onKeyUp","childOption"],"sources":["../web-components/dist/collection/components/ic-menu/ic-menu.css?tag=ic-menu&encapsulation=scoped","../web-components/dist/collection/components/ic-menu/ic-menu.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-menu: z-index of menu\n */\n\n@media (prefers-reduced-motion: no-preference) {\n :host(.open) .menu {\n transition: max-height var(--ic-transition-duration-slow);\n }\n}\n\n:host {\n border-radius: var(--ic-border-radius);\n max-height: 0;\n width: var(--input-width, 20rem);\n color: var(--ic-color-primary-text);\n background-color: var(--ic-architectural-white);\n position: relative;\n z-index: var(--ic-z-index-menu);\n box-sizing: border-box;\n box-shadow: var(--ic-elevation-overlay);\n}\n\n:host(:not(.no-focus):focus-within) {\n box-shadow: var(--ic-border-focus);\n}\n\n#retry-button::part(button) {\n height: var(--ic-space-lg);\n}\n\n.small #retry-button::part(button) {\n height: var(--ic-space-md);\n}\n\n:host(.on-dialog) {\n inset: auto !important;\n}\n\n.menu {\n text-decoration: none;\n list-style-type: none;\n border: var(--ic-border-width) solid var(--ic-architectural-400);\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n visibility: hidden;\n max-height: 0;\n overflow-y: hidden;\n}\n\n.menu-scroll {\n overflow-y: auto;\n}\n\n.menu:focus-visible {\n outline: none;\n}\n\n:host(.open) {\n max-height: none;\n display: block;\n}\n\n:host(.open) .menu {\n visibility: visible;\n max-height: calc(var(--ic-space-xl) * 10 + var(--ic-space-xxxs));\n}\n\n:host(.full-width) {\n width: 100%;\n}\n\n.option {\n padding: var(--ic-space-xs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.option:not(.loading-option) {\n justify-content: space-between;\n}\n\n:host(.small) .option {\n padding: var(--ic-space-xxs) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n:host(.large) .option {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px));\n}\n\n.option:last-child {\n border-radius: 0 0 var(--ic-space-1px) var(--ic-space-1px);\n}\n\n.option:first-child {\n border-radius: var(--ic-space-1px) var(--ic-space-1px) 0 0;\n}\n\n.option:not(.disabled-option):hover {\n background-color: var(--ic-action-dark-bg-hover);\n}\n\n.option:not(.disabled-option):active {\n background-color: var(--ic-action-dark-bg-active);\n}\n\n.option:focus-visible {\n outline: var(--ic-hc-focus-outline);\n}\n\n.option:not(.disabled-option) .option-description {\n color: var(--ic-color-secondary-text);\n}\n\n.option .option-label {\n display: flex;\n flex-direction: row;\n align-items: top;\n}\n\n.option .option-element {\n margin-top: var(--ic-space-xxs);\n}\n\n.option .option-icon {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n margin-top: var(--ic-space-xxs);\n margin-right: var(--ic-space-xxxs);\n}\n\n.option-text-container {\n pointer-events: none;\n}\n\n.option.loading-option .option-text-container {\n margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));\n color: var(--ic-color-secondary-text);\n}\n\n.error-icon-svg {\n height: var(--ic-space-md);\n width: var(--ic-space-md);\n fill: var(--ic-status-error);\n align-self: center;\n display: flex;\n margin-right: calc(var(--ic-space-xxs) * 1.2);\n}\n\n.loading-error-info {\n display: flex;\n}\n\n.check-icon {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-xs);\n pointer-events: none;\n}\n\n.focused-option .check-icon * {\n fill: currentcolor;\n}\n\n.option-group-title {\n padding: var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xs);\n color: var(--ic-color-tertiary-text);\n}\n\n:host(.small) .option-group-title {\n padding: var(--ic-space-sm) calc(var(--ic-space-xs) - var(--ic-space-1px))\n var(--ic-space-xxs);\n}\n\n.last-recommended-option {\n border-bottom: var(--ic-border-default);\n}\n\n.disabled-option {\n color: var(--ic-architectural-200);\n cursor: default;\n pointer-events: none;\n}\n\n.focused-option,\n.focused-option .option-description {\n background-color: var(--ic-focus-blue) !important;\n color: var(--ic-color-white-text) !important;\n}\n\n:host(.no-results) li {\n cursor: no-drop;\n}\n\n:host(.no-results) li:hover {\n background-color: transparent;\n}\n\n@media (forced-colors: active) {\n .focused-option:focus {\n outline: none;\n border: 0.125rem solid transparent;\n }\n}\n","import { h, Host, Fragment, } from \"@stencil/core\";\nimport { createPopper } from \"@popperjs/core\";\nimport Check from \"../../assets/check-icon.svg\";\nimport { onComponentRequiredPropUndefined } from \"../../utils/helpers\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Menu {\n constructor() {\n this.disabledOptionSelected = false;\n this.hasPreviouslyBlurred = false;\n this.hasTimedOut = false;\n this.isLoading = false;\n this.isSearchBar = false;\n this.isSearchableSelect = false;\n // Prevents menu re-opening immediately after it is closed on blur when clicking input.\n this.preventClickOpen = false;\n this.ungroupedOptions = [];\n this.handleClearListener = () => {\n this.optionHighlighted = \"\";\n };\n this.handleSubmitSearch = () => {\n const highlightedOptionIndex = this.options.findIndex((option) => option[this.valueField] === this.optionHighlighted);\n this.setInputValue(highlightedOptionIndex);\n };\n this.handleMenuChange = (open, focusInput) => {\n this.menuStateChange.emit({ open, focusInput });\n if (!open && focusInput !== false) {\n this.inputEl.focus();\n this.preventClickOpen = false;\n }\n };\n this.setNextOptionValue = (selectedOptionIndex) => {\n if (this.ungroupedOptions[selectedOptionIndex + 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex + 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[selectedOptionIndex + 1][this.valueField]),\n });\n }\n else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[0][this.valueField]),\n });\n }\n };\n this.setPreviousOptionValue = (selectedOptionIndex) => {\n if (this.ungroupedOptions[selectedOptionIndex - 1]) {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[selectedOptionIndex - 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[selectedOptionIndex - 1][this.valueField]),\n });\n }\n else {\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],\n optionId: this.getOptionId(this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField]),\n });\n }\n };\n this.getParentEl = (parent) => {\n if (parent.tagName === \"IC-SEARCH-BAR\") {\n this.isSearchBar = true;\n }\n else if (parent.tagName === \"IC-SELECT\" &&\n parent.getAttribute(\"searchable\") !== null &&\n parent.getAttribute(\"searchable\") !== undefined) {\n this.isSearchableSelect = true;\n }\n };\n this.arrowBehaviour = (event) => {\n event.preventDefault();\n this.handleMenuChange(true);\n };\n this.setMenuOptions = () => this.isSearchBar ? this.options : this.ungroupedOptions;\n this.setHighlightedOption = (highlightedIndex) => {\n const menuOptions = this.setMenuOptions();\n menuOptions[highlightedIndex] &&\n !menuOptions[highlightedIndex].timedOut &&\n (this.optionHighlighted =\n menuOptions[highlightedIndex][this.valueField] || undefined);\n };\n this.autoSetInputValueKeyboardOpen = (event) => {\n const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);\n this.keyboardNav = false;\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setNextOptionValue(selectedOptionIndex);\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n this.setPreviousOptionValue(selectedOptionIndex);\n break;\n case \" \":\n case \"Enter\":\n if (event.target.id !== \"clear-button\") {\n this.handleMenuChange(true);\n }\n break;\n }\n };\n this.manSetInputValueKeyboardOpen = (event) => {\n const menuOptions = this.setMenuOptions();\n this.keyboardNav = false;\n const highlightedOptionIndex = menuOptions.findIndex((option) => option[this.valueField] === this.optionHighlighted);\n const getOptionId = (index) => { var _a; return (_a = Array.from(this.host.querySelectorAll(\"li\"))[index]) === null || _a === void 0 ? void 0 : _a.id; };\n const isOpen = this.isSearchBar || this.isSearchableSelect || this.open;\n switch (event.key) {\n case \"ArrowDown\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (highlightedOptionIndex < menuOptions.length - 1) {\n this.setHighlightedOption(highlightedOptionIndex + 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex + 1),\n });\n }\n else {\n this.setHighlightedOption(0);\n this.menuOptionId.emit({\n optionId: getOptionId(0),\n });\n }\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"ArrowUp\":\n this.keyboardNav = true;\n this.arrowBehaviour(event);\n if (highlightedOptionIndex <= 0 ||\n highlightedOptionIndex > menuOptions.length + 1) {\n this.setHighlightedOption(menuOptions.length - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(menuOptions.length - 1),\n });\n }\n else {\n this.setHighlightedOption(highlightedOptionIndex - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(highlightedOptionIndex - 1),\n });\n }\n this.preventIncorrectTabOrder = false;\n this.focusFromSearchKeypress = false;\n break;\n case \"Home\":\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(0);\n this.menuOptionId.emit({\n optionId: getOptionId(0),\n });\n break;\n case \"End\":\n this.keyboardNav = true;\n event.preventDefault();\n this.arrowBehaviour(event);\n this.setHighlightedOption(menuOptions.length - 1);\n this.menuOptionId.emit({\n optionId: getOptionId(menuOptions.length - 1),\n });\n break;\n case \" \":\n if (this.isSearchBar || this.isSearchableSelect) {\n break;\n }\n else {\n if (event.target.id !== \"clear-button\") {\n this.handleMenuChange(true);\n }\n }\n break;\n case \"Enter\":\n event.preventDefault();\n if (isOpen) {\n if (highlightedOptionIndex >= 0) {\n if (menuOptions[highlightedOptionIndex] !== undefined) {\n if (this.isSearchBar &&\n menuOptions[highlightedOptionIndex].disabled === true) {\n this.disabledOptionSelected = true;\n }\n else {\n this.setInputValue(highlightedOptionIndex);\n this.value =\n menuOptions[highlightedOptionIndex][this.valueField];\n }\n }\n }\n else {\n this.setInputValue(highlightedOptionIndex);\n }\n }\n else {\n this.handleMenuChange(true);\n }\n break;\n case \"Escape\":\n if (this.open) {\n event.stopImmediatePropagation();\n }\n this.handleMenuChange(false);\n this.menuOptionId.emit({ optionId: undefined });\n break;\n case \"Shift\":\n case \"Tab\":\n if (this.isSearchBar) {\n this.keyboardNav = true;\n }\n this.preventIncorrectTabOrder = true;\n break;\n default:\n this.focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex);\n break;\n }\n };\n this.setInputValue = (highlightedOptionIndex) => {\n const menuOptions = this.setMenuOptions();\n if (menuOptions[highlightedOptionIndex] !== undefined) {\n this.menuOptionSelect.emit({\n value: menuOptions[highlightedOptionIndex][this.valueField],\n });\n this.optionHighlighted = undefined;\n this.menuOptionId.emit({ optionId: undefined });\n }\n if (!this.hasTimedOut)\n this.handleMenuChange(false);\n else\n this.parentEl.setFocus();\n };\n this.handleOptionClick = (event) => {\n const { value, label } = event.target.dataset;\n this.menuOptionSelect.emit({ value, label });\n this.handleMenuChange(false);\n };\n this.handleRetry = () => {\n this.retryButtonClicked.emit({ value: this.value });\n };\n this.handleRetryKeyDown = (ev) => {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this.retryButtonClicked.emit({ value: this.value, keyPressed: ev.key });\n }\n };\n this.handleBlur = (event) => {\n if (event.relatedTarget !== this.inputEl) {\n if (!this.menu.contains(event.relatedTarget)) {\n this.handleMenuChange(false, this.hasPreviouslyBlurred);\n }\n }\n else {\n this.handleMenuChange(false);\n this.preventClickOpen = true;\n }\n if (!this.isSearchBar)\n this.hasPreviouslyBlurred = !!event.relatedTarget;\n };\n this.handleMouseDown = (event) => {\n event.preventDefault();\n };\n this.handleMenuKeyDown = (event) => {\n if (this.activationType === \"automatic\") {\n this.autoSetValueOnMenuKeyDown(event);\n }\n else if (this.activationType === \"manual\" && !this.isSearchBar) {\n this.manSetInputValueKeyboardOpen(event);\n }\n };\n this.emitMenuKeyPress = (isNavKey, key) => {\n this.menuKeyPress.emit({ isNavKey: isNavKey, key: key });\n };\n this.autoSetValueOnMenuKeyDown = (event) => {\n event.cancelBubble = true;\n const selectedOptionIndex = this.ungroupedOptions.findIndex((option) => option[this.valueField] === this.value);\n const isSearchableSelect = this.inputEl.tagName === \"INPUT\";\n this.keyboardNav = false;\n switch (event.key) {\n case \" \":\n event.preventDefault();\n break;\n case \"ArrowUp\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setPreviousOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"ArrowDown\":\n if (!this.hasTimedOut) {\n event.preventDefault();\n this.setNextOptionValue(selectedOptionIndex);\n this.keyboardNav = true;\n }\n break;\n case \"Home\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[0][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"End\":\n this.menuOptionSelect.emit({\n value: this.ungroupedOptions[this.ungroupedOptions.length - 1][this.valueField],\n });\n this.keyboardNav = true;\n break;\n case \"Enter\":\n !this.hasTimedOut && this.handleMenuChange(false);\n break;\n case \"Escape\":\n this.handleMenuChange(false);\n break;\n case \"Backspace\":\n if (isSearchableSelect) {\n this.inputEl.focus();\n }\n break;\n case \"Shift\":\n break;\n default:\n if (isSearchableSelect && event.key !== \"Tab\" && !this.hasTimedOut) {\n this.inputEl.focus();\n }\n if (event.key.length === 1) {\n this.keyboardNav = true;\n }\n break;\n }\n this.emitMenuKeyPress(this.keyboardNav, event.key);\n };\n this.handleMenuKeyUp = (event) => {\n if (event.key === \"Tab\" && event.shiftKey) {\n this.preventClickOpen = false;\n }\n if (event.key === \"Enter\" && this.disabledOptionSelected) {\n this.disabledOptionSelected = false;\n event.stopImmediatePropagation();\n }\n };\n this.getOptionId = (value) => {\n return `${this.menuId}-${value}`;\n };\n this.getOptionAriaLabel = (option, parentOption) => {\n let ariaLabel = option[this.labelField];\n if (option.description) {\n ariaLabel = `${ariaLabel}, ${option.description}`;\n }\n if (option.element) {\n ariaLabel = `${ariaLabel}, ${option.element.ariaLabel}`;\n }\n if (parentOption) {\n return `${ariaLabel}, ${parentOption[this.labelField]} group`;\n }\n else {\n return ariaLabel;\n }\n };\n this.getSortedOptions = (options) => {\n let sorted = [];\n if (options.sort) {\n sorted = options.sort((optionA, optionB) => optionA.recommended && !optionB.recommended ? -1 : 0);\n }\n return sorted;\n };\n this.isManualMode = this.activationType === \"manual\";\n this.scrollToSelected = (menu) => {\n const selectedOption = this.selectOnEnter\n ? this.host.querySelector(`li[data-value=\"${this.optionHighlighted}\"]`)\n : menu.querySelector(\".option[aria-selected]\");\n if (selectedOption) {\n const elTop = selectedOption.offsetTop + selectedOption.offsetHeight;\n if (elTop > menu.scrollTop + menu.offsetHeight ||\n elTop < menu.scrollTop + menu.offsetHeight) {\n menu.scrollTop = selectedOption.offsetTop;\n }\n selectedOption.focus();\n }\n };\n this.loadUngroupedOptions = () => {\n if (this.options.length > 0 && this.options.map) {\n this.options.map((option) => {\n if (option.children) {\n option.children.map((option) => !option.disabled && this.ungroupedOptions.push(option));\n }\n else if (!option.disabled) {\n this.ungroupedOptions.push(option);\n }\n });\n }\n this.ungroupedOptions = this.getSortedOptions(this.ungroupedOptions);\n this.ungroupedOptionsSet.emit({ options: this.ungroupedOptions });\n };\n this.setMenuScrollbar = () => {\n let optionsHeight = 0;\n this.host\n .querySelectorAll(\".option\")\n .forEach((option) => (optionsHeight += option.clientHeight));\n if (optionsHeight >= 320) {\n this.menu.classList.add(\"menu-scroll\");\n }\n };\n this.handleTimeoutBlur = (ev) => {\n this.timeoutBlur.emit({ ev });\n };\n this.optionContent = (option) => {\n var _a;\n 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\" }, h(\"p\", null, 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] &&\n !!this.value &&\n option[this.valueField].toLowerCase() === ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toLowerCase()) &&\n this.parentEl.tagName !== \"IC-SEARCH-BAR\" && (h(\"span\", { class: \"check-icon\", innerHTML: Check }))));\n };\n this.displayOption = (option, index, parentOption) => {\n const { open, value, keyboardNav, isManualMode, initialOptionsListRender, optionHighlighted, options, } = this;\n return (h(\"li\", { id: this.getOptionId(option[this.valueField]), class: {\n option: true,\n \"focused-option\": isManualMode\n ? (keyboardNav || initialOptionsListRender) &&\n option[this.valueField] === optionHighlighted\n : keyboardNav && option[this.valueField] === value,\n \"last-recommended-option\": option.recommended &&\n options[index + 1] &&\n !options[index + 1].recommended,\n \"disabled-option\": option.disabled,\n \"loading-option\": option.loading,\n timeout: option.timedOut,\n }, role: \"option\", tabindex: open &&\n (option[this.valueField] === value ||\n option[this.valueField] === optionHighlighted) &&\n keyboardNav\n ? \"0\"\n : \"-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))));\n };\n this.focusFromSearchKeypress = false;\n this.initialOptionsListRender = false;\n this.keyboardNav = false;\n this.optionHighlighted = undefined;\n this.preventIncorrectTabOrder = false;\n this.activationType = \"automatic\";\n this.anchorEl = undefined;\n this.autoFocusOnSelected = true;\n this.fullWidth = false;\n this.inputEl = undefined;\n this.inputLabel = undefined;\n this.labelField = \"label\";\n this.menuId = undefined;\n this.open = undefined;\n this.parentEl = undefined;\n this.searchMode = \"navigation\";\n this.selectOnEnter = false;\n this.size = \"default\";\n this.small = false;\n this.options = undefined;\n this.value = undefined;\n this.valueField = \"value\";\n }\n watchOpenHandler() {\n if (!this.open && this.popperInstance) {\n this.popperInstance.destroy();\n this.popperInstance = null;\n }\n }\n watchOptionsHandler(newOptions) {\n this.hasTimedOut = newOptions.some((opt) => opt.timedOut);\n this.isLoading = newOptions.some((opt) => opt.loading);\n this.ungroupedOptions = [];\n this.loadUngroupedOptions();\n }\n watchValueHandler() {\n this.menuValueChange.emit({ value: this.value });\n }\n connectedCallback() {\n this.getParentEl(this.parentEl);\n if (this.isSearchBar) {\n if (this.searchMode === \"navigation\")\n this.setHighlightedOption(0);\n this.initialOptionsListRender = true;\n }\n }\n disconnectedCallback() {\n if (this.popperInstance) {\n this.popperInstance.destroy();\n }\n this.parentEl.removeEventListener(\"icClear\", this.handleClearListener);\n this.parentEl.removeEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n }\n componentWillLoad() {\n var _a, _b;\n this.loadUngroupedOptions();\n this.parentEl.addEventListener(\"icClear\", this.handleClearListener);\n this.parentEl.addEventListener(\"icSubmitSearch\", this.handleSubmitSearch);\n this.hasTimedOut = (_a = this.options) === null || _a === void 0 ? void 0 : _a.some((opt) => opt.timedOut);\n this.isLoading = (_b = this.options) === null || _b === void 0 ? void 0 : _b.some((opt) => opt.loading);\n }\n componentDidLoad() {\n if (this.isSearchBar &&\n this.parentEl.disableFilter) {\n this.focusFromSearchKeypress = true;\n }\n onComponentRequiredPropUndefined([\n { prop: this.open, propName: \"open\" },\n { prop: this.options, propName: \"options\" },\n { prop: this.menuId, propName: \"menu-id\" },\n { prop: this.inputLabel, propName: \"input-label\" },\n //NOTE: no check for value, input-el or anchor-el as otherwise get console errors on first load of select component\n ], \"Menu\");\n }\n componentDidUpdate() {\n const inputValueInOptions = this.options.some((option) => option[this.valueField] === this.value);\n const optionHighlightedIsSet = this.optionHighlighted !== null &&\n this.optionHighlighted !== undefined &&\n this.optionHighlighted !== \"\";\n if (this.open && this.options.length !== 0) {\n if (this.value &&\n this.keyboardNav &&\n inputValueInOptions &&\n this.autoFocusOnSelected &&\n !this.isSearchableSelect) {\n this.scrollToSelected(this.menu);\n }\n else if (this.inputEl.tagName !== \"IC-TEXT-FIELD\" &&\n this.inputEl.tagName !== \"INPUT\") {\n this.menu.focus();\n }\n else if (optionHighlightedIsSet &&\n !this.focusFromSearchKeypress &&\n !this.preventIncorrectTabOrder) {\n const highlightedEl = this.host.querySelector(`li[data-value=\"${this.optionHighlighted}\"]`);\n if (highlightedEl) {\n highlightedEl.focus();\n }\n }\n }\n if (this.open && !this.value && this.selectOnEnter) {\n this.scrollToSelected(this.menu);\n }\n }\n componentDidRender() {\n if (this.open && !this.popperInstance && this.anchorEl) {\n this.initPopperJs(this.anchorEl);\n }\n if (this.open && !!this.options.length) {\n this.setMenuScrollbar();\n }\n }\n /**\n * @internal If menu is opened with the mouse, emit menuStateChange custom event.\n */\n async handleClickOpen() {\n if (!this.preventClickOpen) {\n this.menuStateChange.emit({ open: !this.open });\n this.keyboardNav = false;\n }\n this.preventClickOpen = false;\n }\n /**\n * Used alongside activationType\n * If menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\n * @param {KeyboardEvent} event The keyboard event which is available when handleKeyboardOpen is invoked.\n */\n async handleKeyboardOpen(event) {\n this.keyboardNav = false;\n if (this.activationType === \"automatic\") {\n this.autoSetInputValueKeyboardOpen(event);\n }\n else {\n this.manSetInputValueKeyboardOpen(event);\n }\n }\n /**\n * @internal Used to highlight the first option in the menu.\n */\n async handleSetFirstOption() {\n this.setHighlightedOption(0);\n }\n /**\n * @internal Used to initialize popperJS with an anchor element.\n * 5/12/2023: Tested with Floating UI, however, discovered inconsistent\n * boundary behaviour so sticking with PopperJS.\n */\n async initPopperJs(anchor) {\n this.popperInstance = createPopper(anchor, this.host, {\n placement: \"bottom\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 7],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n });\n }\n focusOnSearchOrSelectInput(menuOptions, highlightedOptionIndex) {\n if (!menuOptions[highlightedOptionIndex])\n return;\n if (this.isSearchBar) {\n this.parentEl.setFocus();\n if (this.searchMode === \"navigation\")\n this.setHighlightedOption(0);\n }\n if (this.isSearchableSelect) {\n this.parentEl.setFocus();\n }\n this.focusFromSearchKeypress = true;\n }\n render() {\n const { inputLabel, options, menuId, value, fullWidth, hasTimedOut, isLoading, size, small, open, inputEl, keyboardNav, } = this;\n return (h(Host, { class: {\n \"full-width\": fullWidth,\n \"no-focus\": (inputEl === null || inputEl === void 0 ? void 0 : inputEl.tagName) === \"INPUT\" || hasTimedOut || isLoading,\n small: small,\n [size]: true,\n open: open,\n } }, 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) => {\n if (option.children) {\n if (option.children.length > 0) {\n 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))));\n }\n else {\n return null;\n }\n }\n else {\n return this.displayOption(option, index);\n }\n })))));\n }\n static get is() { return \"ic-menu\"; }\n static get encapsulation() { return \"scoped\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-menu.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-menu.css\"]\n };\n }\n static get properties() {\n return {\n \"activationType\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcActivationTypes\",\n \"resolved\": \"\\\"automatic\\\" | \\\"manual\\\"\",\n \"references\": {\n \"IcActivationTypes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcActivationTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Determines whether options manually set as values (by pressing 'Enter') when they receive focus using keyboard navigation.\"\n },\n \"attribute\": \"activation-type\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"automatic\\\"\"\n },\n \"anchorEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The reference to an anchor element the menu will position itself from when rendered.\"\n }\n },\n \"autoFocusOnSelected\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, autofocus will be applied on selected item when menu is open.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"auto-focus-on-selected\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"fullWidth\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu will fill the width of the container.\"\n },\n \"attribute\": \"full-width\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"inputEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The reference to the input element.\"\n }\n },\n \"inputLabel\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label for the input element.\"\n },\n \"attribute\": \"input-label\",\n \"reflect\": false\n },\n \"labelField\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom name for the label field for IcMenuOption.\"\n },\n \"attribute\": \"label-field\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"label\\\"\"\n },\n \"menuId\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The ID of the menu.\"\n },\n \"attribute\": \"menu-id\",\n \"reflect\": false\n },\n \"open\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the menu will be displayed open.\"\n },\n \"attribute\": \"open\",\n \"reflect\": true\n },\n \"parentEl\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"HTMLElement\",\n \"resolved\": \"HTMLElement\",\n \"references\": {\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"- The parent element if ic-menu is nested inside another component.\"\n }],\n \"text\": \"\"\n }\n },\n \"searchMode\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSearchBarSearchModes\",\n \"resolved\": \"\\\"navigation\\\" | \\\"query\\\"\",\n \"references\": {\n \"IcSearchBarSearchModes\": {\n \"location\": \"import\",\n \"path\": \"../ic-search-bar/ic-search-bar.types\",\n \"id\": \"src/components/ic-search-bar/ic-search-bar.types.ts::IcSearchBarSearchModes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specify the mode search bar uses to search. `navigation` allows for quick lookups of a set of values, `query` allows for more general searches.\"\n },\n \"attribute\": \"search-mode\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"navigation\\\"\"\n },\n \"selectOnEnter\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If `true`, the icOptionSelect event will be fired on enter instead of ArrowUp and ArrowDown.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"select-on-enter\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"size\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcSizes\",\n \"resolved\": \"\\\"default\\\" | \\\"large\\\" | \\\"small\\\"\",\n \"references\": {\n \"IcSizes\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcSizes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the menu component.\"\n },\n \"attribute\": \"size\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"default\\\"\"\n },\n \"small\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"This prop should not be used anymore. Set prop `size` to \\\"small\\\" instead.\"\n }],\n \"text\": \"\"\n },\n \"attribute\": \"small\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"options\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"IcMenuOption[]\",\n \"resolved\": \"IcMenuOption[]\",\n \"references\": {\n \"IcMenuOption\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMenuOption\"\n }\n }\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The possible menu selection options.\"\n }\n },\n \"value\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": true,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The value of the currently selected option.\"\n },\n \"attribute\": \"value\",\n \"reflect\": false\n },\n \"valueField\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The custom name for the value field for IcMenuOption.\"\n },\n \"attribute\": \"value-field\",\n \"reflect\": false,\n \"defaultValue\": \"\\\"value\\\"\"\n }\n };\n }\n static get states() {\n return {\n \"focusFromSearchKeypress\": {},\n \"initialOptionsListRender\": {},\n \"keyboardNav\": {},\n \"optionHighlighted\": {},\n \"preventIncorrectTabOrder\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"menuKeyPress\",\n \"name\": \"menuKeyPress\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when key is pressed while menu is open\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ isNavKey: boolean; key: string }\",\n \"resolved\": \"{ isNavKey: boolean; key: string; }\",\n \"references\": {}\n }\n }, {\n \"method\": \"menuOptionId\",\n \"name\": \"menuOptionId\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when an option has been highlighted\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcMenuOptionIdEventDetail\",\n \"resolved\": \"IcMenuOptionIdEventDetail\",\n \"references\": {\n \"IcMenuOptionIdEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcMenuOptionIdEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"menuOptionSelect\",\n \"name\": \"menuOptionSelect\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when an option is selected.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcOptionSelectEventDetail\",\n \"resolved\": \"IcOptionSelectEventDetail\",\n \"references\": {\n \"IcOptionSelectEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcOptionSelectEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"menuStateChange\",\n \"name\": \"menuStateChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when state of menu changes (i.e. open or close).\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcMenuChangeEventDetail\",\n \"resolved\": \"IcMenuChangeEventDetail\",\n \"references\": {\n \"IcMenuChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./ic-menu.types\",\n \"id\": \"src/components/ic-menu/ic-menu.types.ts::IcMenuChangeEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"menuValueChange\",\n \"name\": \"menuValueChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when menu value changes.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"retryButtonClicked\",\n \"name\": \"retryButtonClicked\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the retry button is clicked\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"IcValueEventDetail\",\n \"resolved\": \"IcValueEventDetail\",\n \"references\": {\n \"IcValueEventDetail\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcValueEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"timeoutBlur\",\n \"name\": \"timeoutBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the timeout menu loses focus\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ ev: FocusEvent }\",\n \"resolved\": \"{ ev: FocusEvent; }\",\n \"references\": {\n \"FocusEvent\": {\n \"location\": \"global\",\n \"id\": \"global::FocusEvent\"\n }\n }\n }\n }, {\n \"method\": \"ungroupedOptionsSet\",\n \"name\": \"ungroupedOptionsSet\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Emitted when the ungrouped options have been set.\"\n }],\n \"text\": \"\"\n },\n \"complexType\": {\n \"original\": \"{ options: IcMenuOption[] }\",\n \"resolved\": \"{ options: IcMenuOption[]; }\",\n \"references\": {\n \"IcMenuOption\": {\n \"location\": \"import\",\n \"path\": \"../../utils/types\",\n \"id\": \"src/utils/types.ts::IcMenuOption\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"handleClickOpen\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"If menu is opened with the mouse, emit menuStateChange custom event.\"\n }]\n }\n },\n \"handleKeyboardOpen\": {\n \"complexType\": {\n \"signature\": \"(event: KeyboardEvent) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"event\",\n \"type\": \"KeyboardEvent\",\n \"docs\": \"The keyboard event which is available when handleKeyboardOpen is invoked.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"KeyboardEvent\": {\n \"location\": \"global\",\n \"id\": \"global::KeyboardEvent\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Used alongside activationType\\nIf menu is opened via keyboard navigation (i.e. Enter, ArrowUp or ArrowDown), emit optionSelect custom event.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"event The keyboard event which is available when handleKeyboardOpen is invoked.\"\n }]\n }\n },\n \"handleSetFirstOption\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to highlight the first option in the menu.\"\n }]\n }\n },\n \"initPopperJs\": {\n \"complexType\": {\n \"signature\": \"(anchor: HTMLElement) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"anchor\",\n \"type\": \"HTMLElement\",\n \"docs\": \"\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": \"Used to initialize popperJS with an anchor element.\\n5/12/2023: Tested with Floating UI, however, discovered inconsistent\\nboundary behaviour so sticking with PopperJS.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"host\"; }\n static get watchers() {\n return [{\n \"propName\": \"open\",\n \"methodName\": \"watchOpenHandler\"\n }, {\n \"propName\": \"options\",\n \"methodName\": \"watchOptionsHandler\"\n }, {\n \"propName\": \"value\",\n \"methodName\": \"watchValueHandler\"\n }];\n }\n}\n//# sourceMappingURL=ic-menu.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,H as e,g as o}from"./p-8455d1bb.js";import{D as s,u as n,e as a,y as r}from"./p-d35c7c18.js";import{C as h}from"./p-170ddfc2.js";import"./p-fd186591.js";const d='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host(.in-side-menu){border-bottom:var(--ic-border-width) solid var(--ic-architectural-200);padding:var(--ic-space-md) 0}:host .navigation-group{height:100%;width:-moz-fit-content;width:fit-content;color:var(--ic-theme-text);display:flex;align-items:center;justify-content:center;padding:0 var(--ic-space-md);transition:var(--ic-easing-transition-slow);position:relative;background:none;border:none}:host(.in-side-menu) .navigation-group{height:2.5rem;width:100%;text-align:left}:host(.in-side-menu) .navigation-group .ic-typography-label{width:11.875rem}:host(.in-side-menu) .navigation-group-side-menu{color:var(--ic-action-default);justify-content:flex-start;padding:0 var(--ic-space-md) 0 var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-collapsed,:host(.in-side-menu) .navigation-group-side-menu-expanded{color:var(--ic-action-default);justify-content:flex-start;padding-left:var(--ic-space-md)}:host(.in-side-menu) .navigation-group-side-menu-expanded{margin-bottom:var(--ic-space-xs)}:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,:host(.in-side-menu) .navigation-group-side-menu-expanded::after{border-style:solid;border-width:0.125em 0.125em 0 0;content:"";display:inline-block;height:0.45em;left:0.75em;position:relative;top:-0.1em;transform:rotate(135deg);vertical-align:top;width:0.45em}:host(.in-side-menu) .navigation-group-side-menu-expanded::after{top:0.15em;transform:rotate(-45deg)}:host .navigation-group:hover,:host .navigation-group:active,:host .selected{background-color:var(--ic-architectural-20);color:var(--ic-color-primary-text);outline:none;cursor:pointer}:host(:not(.in-side-menu)) .navigation-group:focus{box-shadow:var(--ic-border-focus);border-radius:var(--ic-border-radius);outline:var(--ic-hc-focus-outline);z-index:var(--ic-z-index-navigation-item);transition:box-shadow var(--ic-easing-transition-fast)}:host(.in-side-menu) .navigation-group-side-menu:hover,:host(.in-side-menu) .navigation-group-side-menu:active,:host(.in-side-menu) .navigation-group-side-menu:focus{background-color:var(--ic-architectural-20);color:var(--ic-action-default);cursor:auto;box-shadow:none;outline:none}:host(.in-side-menu) .navigation-group-side-menu:focus{outline:var(--ic-hc-focus-outline)}:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus){background-color:var(--ic-action-dark-bg-hover);color:var(--ic-action-default);cursor:pointer}:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus){background-color:var(--ic-action-dark-bg-active);color:var(--ic-action-default)}:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus{color:var(--ic-action-default);box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);outline:var(--ic-hc-focus-outline)}:host .navigation-group-dropdown{background-color:var(--ic-architectural-20);border-bottom:var(--ic-border-default);position:absolute;left:0;right:0;padding:var(--ic-space-xs) var(--ic-space-md);box-shadow:0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);z-index:calc(var(--ic-z-index-navigation-item) - 1)}:host .navigation-group-dropdown-items-list{list-style:none;display:flex;flex-flow:column wrap;align-content:flex-start;padding-left:var(--ic-space-md);max-height:16.5rem}:host .chevron-toggle-icon-wrapper{display:flex;align-items:center}:host .chevron-toggle-icon-wrapper svg{transform:rotate(90deg);height:var(--ic-space-lg);width:var(--ic-space-lg)}:host .chevron-toggle-icon-closed svg{transform:rotate(-90deg)}:host(.expanded) .grouped-links-wrapper{height:var(--navigation-child-items-height, auto) !important;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.navigation-group-side-nav) .link,:host(.navigation-group-side-nav) ::slotted(a){height:var(--navigation-child-items-height, auto)}:host(.collapsed) .grouped-links-wrapper{height:0;transition:var(--ic-easing-transition-slow);overflow:hidden}:host(.navigation-group-side-nav) .navigation-group{height:var(--navigation-group-height);width:var(--navigation-group-width);justify-content:var(--navigation-group-justify-content);padding-right:var(--navigation-group-expand-toggle-padding)}:host(.navigation-group-side-nav) .navigation-group:hover,:host(.navigation-group-side-nav) .navigation-group:active,:host(.navigation-group-side-nav) .selected{background-color:var(--navigation-group-hover);color:var(--navigation-group-text-hover)}:host(.navigation-group-side-nav) .navigation-group:focus{box-shadow:var(--ic-border-focus-inset);border-radius:var(--ic-border-radius-inset);background:none}:host(.navigation-group-side-nav) .ic-typography-caption{position:var(--navigation-group-title-position);left:var(--navigation-group-title-position-left);white-space:nowrap}';const u=class{constructor(e){i(this,e);this.allGroupedNavigationItems=[];this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS=100;this.IC_NAVIGATION_ITEM="ic-navigation-item";this.mouseGate=false;this.nodeName="IC-NAVIGATION-GROUP";this.GROUPED_LINKS_WRAPPER_CLASS=".grouped-links-wrapper";this.sideNavExpandHandler=i=>{this.isSideNavExpanded=i.detail.sideNavExpanded;const t=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!t)return;if(this.isSideNavExpanded){if(this.expanded&&this.expandedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.expandedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}else{if(this.expanded&&this.collapsedNavItemsHeight){this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}else if(this.expanded){setTimeout((()=>{this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(t,this.collapsedNavItemsHeight)}),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}}};this.topNavResizedHandler=i=>{const t=i.detail.size;if(t!==this.deviceSize){this.deviceSize=t;this.inTopNavSideMenu=t<=s.L}};this.setGroupedNavItemTabIndex=i=>{this.el.querySelectorAll(this.IC_NAVIGATION_ITEM).forEach((t=>{const e=t.shadowRoot.querySelector("a")||t.querySelector("a");if(e){e.setAttribute("tabindex",i)}}))};this.toggleGroupedLinkWrapperHeight=(i,t)=>{if(!i)return;if(t){if(this.isSideNavExpanded){this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}else{this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}this.setGroupedNavItemTabIndex("0")}else{i.style.setProperty("--navigation-child-items-height","0");this.setGroupedNavItemTabIndex("-1")}};this.toggleExpanded=()=>{this.expanded=!this.expanded;const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);this.toggleGroupedLinkWrapperHeight(i,this.expanded)};this.handleClick=i=>{if(this.navigationType==="top"&&i.detail){this.toggleDropdown()}else{this.toggleExpanded()}};this.handleBlur=i=>{const t=i.relatedTarget;if(!this.el.contains(t)){this.hideDropdown()}};this.handleTopNavKeydown=i=>{if(i.key===" "||i.key==="Enter"){this.toggleDropdown()}else if(!this.inTopNavSideMenu&&i.key==="Escape"){this.hideDropdown()}};this.handleKeydown=i=>{if(i.key==="Enter"||i.key===" "||i.key==="Escape"){switch(this.navigationType){case"top":this.handleTopNavKeydown(i);break;case"side":this.toggleExpanded();i.preventDefault();break;default:this.toggleExpanded();break}}};this.handleMouseLeave=i=>{const t=i.relatedTarget;this.mouseGate=false;if(!this.el.contains(t)&&t!==this.dropdown&&document.activeElement!==this.el&&!this.el.contains(document.activeElement)&&(t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.dropdownOpen===true){this.mouseGate=true;this.hideDropdown()}else if(!this.el.contains(t)&&t!==this.dropdown&&!this.el.contains(document.activeElement)){this.mouseGate=false;setTimeout((()=>{this.dropdownOpen?this.hideDropdown():null}),500)}};this.handleMouseEnter=i=>{const t=i.relatedTarget;document.addEventListener("keydown",this.handleKeydown);if((t===null||t===void 0?void 0:t.nodeName)===this.nodeName&&this.mouseGate===true){this.showDropdown()}else if(this.dropdownOpen===false&&t!==null&&this.mouseGate===false){this.mouseGate=true;setTimeout((()=>{this.mouseGate&&this.showDropdown()}),500)}};this.renderDropdownGroupedLinks=()=>t("div",{class:{["navigation-group-dropdown"]:!this.inTopNavSideMenu,["navigation-group-dropdown-side-menu"]:this.inTopNavSideMenu,["selected"]:this.dropdownOpen&&!this.inTopNavSideMenu},onMouseLeave:!this.inTopNavSideMenu?this.handleMouseLeave:null,ref:i=>this.dropdown=i},t("nav",{class:{["navigation-group-dropdown-items"]:!this.inTopNavSideMenu}},t("ul",null,t("slot",null))));this.renderGroupedLinks=()=>t("ul",{class:"grouped-links-wrapper"},t("slot",null));this.getNavigationChildItemsHeight=()=>{let i=0;this.allGroupedNavigationItems.forEach((t=>{i+=t.offsetHeight}));return`${i}px`};this.setInitialGroupedLinksWrapperHeight=()=>{const i=this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);if(!i)return;if(!this.isSideNavExpanded&&!this.collapsedNavItemsHeight&&this.expanded){this.collapsedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.collapsedNavItemsHeight)}if(this.isSideNavExpanded&&this.expanded){this.expandedNavItemsHeight=this.getNavigationChildItemsHeight();this.setGroupedLinksElementHeight(i,this.expandedNavItemsHeight)}};this.renderNavigationItems=()=>{if(this.dropdownOpen||this.inTopNavSideMenu&&!this.expandable){return this.renderDropdownGroupedLinks()}if(this.navigationType!=="top"){return this.renderGroupedLinks()}return null};this.deviceSize=s.XL;this.dropdownOpen=false;this.expanded=true;this.focusStyle=n();this.inTopNavSideMenu=false;this.navigationType=undefined;this.parentEl=undefined;this.expandable=false;this.label=undefined}disconnectedCallback(){if(this.navigationType==="side"){this.parentEl.removeEventListener("sideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){this.parentEl.removeEventListener("topNavResized",this.topNavResizedHandler)}}componentWillLoad(){this.deviceSize=a();const i=r(this.el);this.navigationType=i.navType;this.parentEl=i.parent;if(this.deviceSize<=s.L&&this.navigationType==="top"){this.inTopNavSideMenu=true}if(this.navigationType==="side"){this.parentEl.addEventListener("sideNavExpanded",this.sideNavExpandHandler)}else if(this.navigationType==="top"){this.parentEl.addEventListener("topNavResized",this.topNavResizedHandler)}}componentDidLoad(){this.allGroupedNavigationItems=Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));setTimeout((()=>this.setInitialGroupedLinksWrapperHeight()),this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS)}childBlurHandler(){this.hideDropdown()}navItemClickHandler(){this.hideDropdown()}themeChangeHandler(i){const t=i.detail;this.focusStyle=t.mode}async setFocus(){if(this.groupEl){this.groupEl.focus()}}toggleDropdown(){this.dropdownOpen=!this.dropdownOpen}showDropdown(){if(!this.dropdownOpen){this.toggleDropdown()}}hideDropdown(){document.removeEventListener("keydown",this.handleKeydown);if(this.dropdownOpen){this.toggleDropdown()}}setGroupedLinksElementHeight(i,t){i.style.setProperty("--navigation-child-items-height",t)}render(){const{label:i,dropdownOpen:o,inTopNavSideMenu:s,expandable:n}=this;return t(e,{class:{["in-side-menu"]:s,expanded:this.expanded,collapsed:!this.expanded,["navigation-group-side-nav"]:this.navigationType==="side"},role:"listitem"},t("button",{onMouseEnter:!s&&this.navigationType==="top"&&this.handleMouseEnter,onMouseLeave:this.navigationType==="top"&&this.handleMouseLeave,tabindex:s&&!n?"-1":"0",onBlur:this.handleBlur,onClick:n?this.handleClick:null,onKeyDown:this.handleKeydown,class:{["navigation-group"]:true,[this.focusStyle]:!s,["navigation-group-side-menu"]:s&&!n,["navigation-group-side-menu-collapsed"]:s&&n&&!o,["navigation-group-side-menu-expanded"]:s&&n&&o,["selected"]:o&&!s},ref:i=>this.groupEl=i,"aria-expanded":`${o||this.expanded}`,"aria-haspopup":`${!s&&this.navigationType==="top"}`},t("ic-typography",{variant:this.navigationType==="side"?"caption":"label"},i),this.navigationType==="side"&&n&&t("div",{class:{"chevron-toggle-icon-wrapper":true,"chevron-toggle-icon-closed":this.expanded},innerHTML:h})),this.renderNavigationItems())}static get delegatesFocus(){return true}get el(){return o(this)}};u.style=d;export{u as ic_navigation_group};
2
- //# sourceMappingURL=p-fbf4e9b7.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationGroupCss","NavigationGroup","constructor","hostRef","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","ev","newSize","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","focusStyle","getThemeForegroundColor","undefined","parentEl","label","disconnectedCallback","removeEventListener","componentWillLoad","getCurrentDeviceSize","navParentDetails","getNavItemParentDetails","navType","parent","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","themeChangeHandler","theme","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","Host","collapsed","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon","delegatesFocus"],"sources":["../web-components/dist/collection/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","../web-components/dist/collection/components/ic-navigation-group/ic-navigation-group.js"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput {\n /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect {\n /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font-style: inherit;\n vertical-align: baseline;\n}\n\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid var(--ic-architectural-200);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: -moz-fit-content;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:active,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-architectural-20);\n color: var(--ic-action-default);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-architectural-20);\n border-bottom: var(--ic-border-default);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .link,\n:host(.navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:hover,\n:host(.navigation-group-side-nav) .navigation-group:active,\n:host(.navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import { Host, h, } from \"@stencil/core\";\nimport { DEVICE_SIZES, getCurrentDeviceSize, getThemeForegroundColor, getNavItemParentDetails, } from \"../../utils/helpers\";\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\nexport class NavigationGroup {\n constructor() {\n this.allGroupedNavigationItems = [];\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n this.IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n this.mouseGate = false;\n this.nodeName = \"IC-NAVIGATION-GROUP\";\n this.GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n this.sideNavExpandHandler = (event) => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n if (!linkWrapper)\n return;\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }\n else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }\n else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n }\n };\n this.topNavResizedHandler = (ev) => {\n const newSize = ev.detail.size;\n if (newSize !== this.deviceSize) {\n this.deviceSize = newSize;\n this.inTopNavSideMenu = newSize <= DEVICE_SIZES.L;\n }\n };\n this.setGroupedNavItemTabIndex = (tabIndexValue) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem = navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n this.toggleGroupedLinkWrapperHeight = (wrapper, expanded) => {\n if (!wrapper)\n return;\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n }\n else {\n this.setGroupedLinksElementHeight(wrapper, this.collapsedNavItemsHeight);\n }\n this.setGroupedNavItemTabIndex(\"0\");\n }\n else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n this.toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n this.handleClick = (ev) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n }\n else {\n this.toggleExpanded();\n }\n };\n this.handleBlur = (ev) => {\n const target = ev.relatedTarget;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n this.handleTopNavKeydown = (ev) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n }\n else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n this.handleKeydown = (ev) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n this.handleMouseLeave = (ev) => {\n const relTarget = ev.relatedTarget;\n this.mouseGate = false;\n if (!this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n (relTarget === null || relTarget === void 0 ? void 0 : relTarget.nodeName) === this.nodeName &&\n this.dropdownOpen === true) {\n this.mouseGate = true;\n this.hideDropdown();\n }\n else if (!this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n this.handleMouseEnter = (ev) => {\n const relTarget = ev.relatedTarget;\n document.addEventListener(\"keydown\", this.handleKeydown);\n if ((relTarget === null || relTarget === void 0 ? void 0 : relTarget.nodeName) === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n }\n else if (this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n this.renderDropdownGroupedLinks = () => (h(\"div\", { class: {\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }, onMouseLeave: !this.inTopNavSideMenu ? this.handleMouseLeave : null, ref: (el) => (this.dropdown = el) }, h(\"nav\", { class: {\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n } }, h(\"ul\", null, h(\"slot\", null)))));\n this.renderGroupedLinks = () => (h(\"ul\", { class: \"grouped-links-wrapper\" }, h(\"slot\", null)));\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n this.getNavigationChildItemsHeight = () => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n return `${navigationChildItemsHeight}px`;\n };\n this.setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(this.GROUPED_LINKS_WRAPPER_CLASS);\n if (!linkWrapper)\n return;\n if (!this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.collapsedNavItemsHeight);\n }\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(linkWrapper, this.expandedNavItemsHeight);\n }\n };\n this.renderNavigationItems = () => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n return null;\n };\n this.deviceSize = DEVICE_SIZES.XL;\n this.dropdownOpen = false;\n this.expanded = true;\n this.focusStyle = getThemeForegroundColor();\n this.inTopNavSideMenu = false;\n this.navigationType = undefined;\n this.parentEl = undefined;\n this.expandable = false;\n this.label = undefined;\n }\n disconnectedCallback() {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\"sideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\"topNavResized\", this.topNavResizedHandler);\n }\n }\n componentWillLoad() {\n this.deviceSize = getCurrentDeviceSize();\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\"sideNavExpanded\", this.sideNavExpandHandler);\n }\n else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\"topNavResized\", this.topNavResizedHandler);\n }\n }\n componentDidLoad() {\n this.allGroupedNavigationItems = Array.from(this.el.querySelectorAll(this.IC_NAVIGATION_ITEM));\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(() => this.setInitialGroupedLinksWrapperHeight(), this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n childBlurHandler() {\n this.hideDropdown();\n }\n navItemClickHandler() {\n this.hideDropdown();\n }\n themeChangeHandler(ev) {\n const theme = ev.detail;\n this.focusStyle = theme.mode;\n }\n /**\n * Sets focus on the nav item.\n */\n async setFocus() {\n if (this.groupEl) {\n this.groupEl.focus();\n }\n }\n toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n setGroupedLinksElementHeight(groupedNavItemWrapper, height) {\n groupedNavItemWrapper.style.setProperty(\"--navigation-child-items-height\", height);\n }\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n return (h(Host, { class: {\n [\"in-side-menu\"]: inTopNavSideMenu,\n expanded: this.expanded,\n collapsed: !this.expanded,\n [\"navigation-group-side-nav\"]: this.navigationType === \"side\",\n }, role: \"listitem\" }, h(\"button\", { onMouseEnter: !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter, onMouseLeave: this.navigationType === \"top\" && this.handleMouseLeave, tabindex: inTopNavSideMenu && !expandable ? \"-1\" : \"0\", onBlur: this.handleBlur, onClick: expandable ? this.handleClick : null, onKeyDown: this.handleKeydown, class: {\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]: inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]: inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }, ref: (el) => (this.groupEl = el), \"aria-expanded\": `${dropdownOpen || this.expanded}`, \"aria-haspopup\": `${!inTopNavSideMenu && this.navigationType === \"top\"}` }, h(\"ic-typography\", { variant: this.navigationType === \"side\" ? \"caption\" : \"label\" }, label), this.navigationType === \"side\" && expandable && (h(\"div\", { class: {\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }, innerHTML: chevronIcon }))), this.renderNavigationItems()));\n }\n static get is() { return \"ic-navigation-group\"; }\n static get encapsulation() { return \"shadow\"; }\n static get delegatesFocus() { return true; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ic-navigation-group.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ic-navigation-group.css\"]\n };\n }\n static get properties() {\n return {\n \"expandable\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the group will be expandable in the side menu.\"\n },\n \"attribute\": \"expandable\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The label to display on the group.\"\n },\n \"attribute\": \"label\",\n \"reflect\": false\n }\n };\n }\n static get states() {\n return {\n \"deviceSize\": {},\n \"dropdownOpen\": {},\n \"expanded\": {},\n \"focusStyle\": {},\n \"inTopNavSideMenu\": {},\n \"navigationType\": {},\n \"parentEl\": {}\n };\n }\n static get methods() {\n return {\n \"setFocus\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Sets focus on the nav item.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"childBlur\",\n \"method\": \"childBlurHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"navItemClicked\",\n \"method\": \"navItemClickHandler\",\n \"target\": undefined,\n \"capture\": false,\n \"passive\": false\n }, {\n \"name\": \"themeChange\",\n \"method\": \"themeChangeHandler\",\n \"target\": \"document\",\n \"capture\": false,\n \"passive\": false\n }];\n }\n}\n//# sourceMappingURL=ic-navigation-group.js.map\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var a;(function(a){a["Warning"]="warning";a["Error"]="error";a["Success"]="success"})(a||(a={}));var r;(function(a){a["Default"]="default";a["Dark"]="dark";a["Light"]="light"})(r||(r={}));export{r as I,a};
2
- //# sourceMappingURL=p-fd186591.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["IcInformationStatus","IcThemeForegroundEnum"],"sources":["../web-components/dist/collection/utils/types.js"],"sourcesContent":["export var IcInformationStatus;\n(function (IcInformationStatus) {\n IcInformationStatus[\"Warning\"] = \"warning\";\n IcInformationStatus[\"Error\"] = \"error\";\n IcInformationStatus[\"Success\"] = \"success\";\n})(IcInformationStatus || (IcInformationStatus = {}));\nexport var IcThemeForegroundEnum;\n(function (IcThemeForegroundEnum) {\n IcThemeForegroundEnum[\"Default\"] = \"default\";\n IcThemeForegroundEnum[\"Dark\"] = \"dark\";\n IcThemeForegroundEnum[\"Light\"] = \"light\";\n})(IcThemeForegroundEnum || (IcThemeForegroundEnum = {}));\n//# sourceMappingURL=types.js.map\n"],"mappings":"AAAU,IAACA,GACX,SAAWA,GACPA,EAAoB,WAAa,UACjCA,EAAoB,SAAW,QAC/BA,EAAoB,WAAa,SACpC,EAJD,CAIGA,IAAwBA,EAAsB,KACvC,IAACC,GACX,SAAWA,GACPA,EAAsB,WAAa,UACnCA,EAAsB,QAAU,OAChCA,EAAsB,SAAW,OACpC,EAJD,CAIGA,IAA0BA,EAAwB,Y"}
@@ -1 +0,0 @@
1
- {"file":"helpers-7aa21b0a.js","mappings":"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","names":[],"sources":["../web-components/dist/collection/utils/constants.js","../web-components/dist/collection/utils/helpers.js"],"sourcesContent":["import errorIcon from \"../assets/error-icon.svg\";\nimport infoIcon from \"../assets/info-icon.svg\";\nimport neutralIcon from \"../assets/neutral-icon.svg\";\nimport successIcon from \"../assets/success-icon.svg\";\nimport warningIcon from \"../assets/warning-icon.svg\";\n// Global status icons\nexport const VARIANT_ICONS = {\n neutral: {\n icon: neutralIcon,\n ariaLabel: \"Neutral\",\n },\n info: {\n icon: infoIcon,\n ariaLabel: \"For your information\",\n },\n warning: {\n icon: warningIcon,\n ariaLabel: \"Warning\",\n },\n error: {\n icon: errorIcon,\n ariaLabel: \"Error\",\n },\n success: {\n icon: successIcon,\n ariaLabel: \"Success\",\n },\n};\n// Global ARIA attributes\nexport const IC_INHERITED_ARIA = [\n \"aria-atomic\",\n \"aria-autocomplete\",\n \"aria-busy\",\n \"aria-controls\",\n \"aria-current\",\n \"aria-describedby\",\n \"aria-description\",\n \"aria-details\",\n \"aria-disabled\",\n \"aria-dropeffect\",\n \"aria-errormessage\",\n \"aria-expanded\",\n \"aria-flowto\",\n \"aria-grabbed\",\n \"aria-haspopup\",\n \"aria-hidden\",\n \"aria-invalid\",\n \"aria-keyshortcuts\",\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-live\",\n \"aria-owns\",\n \"aria-relevant\",\n \"aria-roledescription\",\n];\nexport const IC_DEVICE_SIZES = {\n XS: 576,\n S: 768,\n M: 992,\n L: 1200,\n XL: 99999,\n};\nexport const IC_BLOCK_COLOR_COMPONENTS = [\n \"ic-hero\",\n \"ic-top-navigation\",\n \"ic-footer\",\n \"ic-side-navigation\",\n \"ic-alert\",\n];\nexport const IC_FIXED_COLOR_COMPONENTS = [\"ic-alert\"];\nexport const IC_BLOCK_COLOR_EXCEPTIONS = {\n \"ic-alert\": [\"ic-link\"],\n};\n/* Range within which the chosen theme colour would not have a sufficient brightness difference with either of the black or white foreground colours\n * The brightness difference must be greater than 125 to provide good colour visibility\n * Calculated by:\n * - Using the brightness formula for both colours: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding 125 to the brightness of the black foreground colour - RGB(11, 12, 12)\n * - Subtracting 125 from the brightness of the white foreground colour - RGB(255, 255, 255)\n */\nexport const BLACK_MIN_COLOR_BRIGHTNESS = 136.701;\nexport const WHITE_MAX_COLOR_BRIGHTNESS = 130;\n//# sourceMappingURL=constants.js.map\n","import { IcThemeForegroundEnum, } from \"../utils/types\";\nimport { IC_BLOCK_COLOR_COMPONENTS, IC_BLOCK_COLOR_EXCEPTIONS, IC_FIXED_COLOR_COMPONENTS, } from \"./constants\";\nconst DARK_MODE_THRESHOLD = 133.3505;\nconst icInput = \"ic-input\";\nconst linkIcInput = \"input.ic-input\";\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (theEnum) => {\n const arr = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val;\n arr.push(str);\n }\n });\n return arr;\n};\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (element, attributes = []) => {\n const attributeObject = {};\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = value;\n }\n element.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\nexport const debounceEvent = (event, wait) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = event._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n };\n};\nexport const debounce = (func, wait = 0) => {\n let timer;\n return (...args) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (always, container, name, value, disabled) => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n let input = filtered[0];\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n }\n else {\n input.value = value || \"\";\n }\n }\n};\n/**\n * This method is used to add a hidden file input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param event: The event that is emitted once a file is selected.\n * @param container The element where the input will be added\n * @param multiple If true, multiple files can be selected\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n * @param accept A string of the accepted files\n */\nexport const renderFileHiddenInput = (event, container, multiple, name, value, disabled, accept) => {\n if (name !== undefined && hasShadowDom(container)) {\n const inputs = container.querySelectorAll(linkIcInput);\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n let input = filtered[0];\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.classList.add(icInput);\n container.appendChild(input);\n }\n input.type = \"file\";\n input.hidden = true;\n input.multiple = multiple;\n input.name = name;\n input.files = value;\n input.disabled = disabled;\n input.accept = accept;\n input.onchange = () => {\n event.emit(input.files);\n };\n input.click();\n }\n};\nexport const removeHiddenInput = (container) => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0];\n input === null || input === void 0 ? void 0 : input.remove();\n};\nexport const hasShadowDom = (el) => !!el.shadowRoot && !!el.attachShadow;\nexport const getInputHelperTextID = (id) => id + \"-helper-text\";\nexport const getInputValidationTextID = (id) => id + \"-validation-text\";\nexport const getInputDescribedByText = (inputId, helperText, validationText) => `${helperText ? getInputHelperTextID(inputId) : \"\"} ${validationText ? getInputValidationTextID(inputId) : \"\"}`.trim();\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (el, themeFromEvent = null) => {\n var _a;\n const parentElement = el.parentElement || el.getRootNode().host.parentElement;\n const blockColorParent = parentElement.closest(IC_BLOCK_COLOR_COMPONENTS.join(\",\"));\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n if ((_a = IC_BLOCK_COLOR_EXCEPTIONS[parentTag]) === null || _a === void 0 ? void 0 : _a.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n }\n else if (themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)) {\n return themeFromEvent;\n }\n else if (blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)) {\n return IcThemeForegroundEnum.Dark;\n }\n return IcThemeForegroundEnum.Light;\n }\n return IcThemeForegroundEnum.Default;\n};\nexport const isMobileOrTablet = () => \"maxTouchPoints\" in navigator ? navigator.maxTouchPoints > 0 : false;\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (form, button) => {\n const hiddenFormButton = document.createElement(\"button\");\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n form.appendChild(hiddenFormButton);\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\nexport const isEmptyString = (value) => value ? value.trim().length === 0 : true;\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop) => prop !== undefined ? prop : null;\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (value, options, valueField = \"value\", labelField = \"label\") => {\n const ungroupedOptions = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => ungroupedOptions.push(option));\n }\n else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find((option) => option[valueField] === value);\n if (matchingValue !== undefined)\n return matchingValue[labelField];\n }\n return undefined;\n};\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (options, includeDescriptions, searchString, position, labelField = \"label\") => options.filter((option) => {\n var _a;\n const label = option[labelField].toLowerCase();\n const description = (_a = option.description) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n (description === null || description === void 0 ? void 0 : description.includes(lowerSearchString))\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n (description === null || description === void 0 ? void 0 : description.startsWith(lowerSearchString))\n : label.startsWith(lowerSearchString);\n});\nexport const deviceSizeMatches = (size) => window.matchMedia(`(max-width: ${size}px)`).matches;\nexport const getCurrentDeviceSize = () => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\nexport const getCssProperty = (cssVar) => getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = () => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return ((parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000);\n};\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = () => getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\nexport const getSlot = (element, name) => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\nexport const slotHasContent = (element, name) => getSlot(element, name) !== null;\nexport const getSlotContent = (element, name) => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n return null;\n};\nexport const getSlotElements = (slot) => {\n const slotContent = slot.firstElementChild;\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : null;\n }\n else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\nexport const getNavItemParentDetails = (el) => {\n let navType = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\nexport const hasValidationStatus = (status, disabled) => {\n return status !== \"\" && !disabled;\n};\nexport const isSlotUsed = (element, slotName) => Array.from(element.children).some((child) => child.getAttribute(\"slot\") === slotName);\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (oldValue, newValue, callback) => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\nexport const onComponentRequiredPropUndefined = (props, component) => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(`No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(propName)}' (react) required`);\n }\n }\n};\nexport const kebabToCamelCase = (kebabCase) => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\nexport const checkResizeObserver = (callbackFn) => {\n if (typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\") {\n callbackFn();\n }\n};\nconst hex2dec = function (v) {\n return parseInt(v, 16);\n};\nexport const hexToRgba = (hex) => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n }\n else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\nexport const rgbaStrToObj = (rgbaStr) => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n }\n else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n return colorRGBA;\n};\nexport const elementOverflowsX = (element) => element.scrollWidth > element.clientWidth;\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child) => child.parentElement.tagName;\nexport const getParentElement = (child) => child.parentElement;\nexport const hasClassificationBanner = () => !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\nexport const getForm = (el) => el.closest(\"FORM\");\nexport const addFormResetListener = (el, callbackFn) => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\nexport const removeFormResetListener = (el, callbackFn) => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\nexport const pxToRem = (px, base = 16) => `${(1 / base) * parseInt(px)}rem`;\nexport const removeDisabledFalse = (disabled, element) => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\nexport const isMacDevice = () => {\n return window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n};\nexport const isNumeric = (value) => {\n return /^-?\\d+$/.test(value);\n};\n//# sourceMappingURL=helpers.js.map\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"helpers-f328a7b6.js","mappings":"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","names":[],"sources":["src/utils/types.ts","src/utils/helpers.ts"],"sourcesContent":["export type IcFocusableComponents =\n | HTMLIcBreadcrumbElement\n | HTMLIcButtonElement\n | HTMLIcCardElement\n | HTMLIcCheckboxElement\n | HTMLIcChipElement\n | HTMLIcLinkElement\n | HTMLIcNavigationButtonElement\n | HTMLIcNavigationGroupElement\n | HTMLIcNavigationItemElement\n | HTMLIcRadioOptionElement\n | HTMLIcSearchBarElement\n | HTMLIcSelectElement\n | HTMLIcSwitchElement\n | HTMLIcTabElement\n | HTMLIcTextFieldElement;\n\nexport type IcStatusVariants =\n | \"neutral\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport enum IcInformationStatus {\n Warning = \"warning\",\n Error = \"error\",\n Success = \"success\",\n}\n\nexport type IcSearchMatchPositions = \"start\" | \"anywhere\";\n\nexport type IcSizes = \"default\" | \"large\" | \"small\";\n\nexport type IcSizesNoLarge = \"default\" | \"small\";\n\nexport type IcInformationStatusOrEmpty = \"warning\" | \"error\" | \"success\" | \"\";\n\nexport type IcNavType = \"side\" | \"top\" | \"page-header\";\n\n// From: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete\nexport type IcAutocompleteTypes =\n | \"on\"\n | \"off\"\n | \"name\"\n | \"honorific-prefix\"\n | \"given-name\"\n | \"additional-name\"\n | \"family-name\"\n | \"honorific-suffix\"\n | \"nickname\"\n | \"email\"\n | \"username\"\n | \"new-password\"\n | \"current-password\"\n | \"one-time-code\"\n | \"organization-title\"\n | \"organization\"\n | \"street-address\"\n | \"address-line1\"\n | \"address-line2\"\n | \"address-line3\"\n | \"address-level4\"\n | \"address-level3\"\n | \"address-level2\"\n | \"address-level1\"\n | \"country\"\n | \"country-name\"\n | \"postal-code\"\n | \"cc-name\"\n | \"cc-given-name\"\n | \"cc-additional-name\"\n | \"cc-family-name\"\n | \"cc-family-name\"\n | \"cc-number\"\n | \"cc-exp\"\n | \"cc-exp-month\"\n | \"cc-exp-year\"\n | \"cc-csc\"\n | \"cc-type\"\n | \"transaction-currency\"\n | \"transaction-amount\"\n | \"language\"\n | \"bday\"\n | \"bday-day\"\n | \"bday-month\"\n | \"bday-year\"\n | \"sex\"\n | \"tel\"\n | \"tel-country-code\"\n | \"tel-national\"\n | \"tel-area-code\"\n | \"tel-local\"\n | \"tel-extension\"\n | \"impp\"\n | \"url\"\n | \"photo\";\n\nexport type IcAlignment = \"left\" | \"center\" | \"full-width\";\n\nexport enum IcThemeForegroundEnum {\n Default = \"default\",\n Dark = \"dark\",\n Light = \"light\",\n}\n\nexport interface IcValueEventDetail {\n value: string | string[];\n keyPressed?: string;\n}\n\nexport type IcThemeForeground = \"default\" | \"dark\" | \"light\";\n\nexport type IcThemeForegroundNoDefault = \"dark\" | \"light\";\n\nexport type IcTheme = {\n mode: IcThemeForeground;\n color: IcColorRGB;\n};\n\nexport type IcAdditionalFieldTypes = \"static\" | \"dynamic\";\n\nexport type IcColorRGB = {\n r: number;\n g: number;\n b: number;\n};\n\nexport type IcColorRGBA = IcColorRGB & {\n a: number;\n};\n\nexport type IcActivationTypes = \"automatic\" | \"manual\";\n\nexport type IcAutocorrectStates = \"on\" | \"off\";\n\nexport type IcNavParentDetails = {\n navType: IcNavType | \"\";\n parent: HTMLElement;\n};\n\nexport type IcTypographyVariants =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"subtitle-large\"\n | \"subtitle-small\"\n | \"body\"\n | \"label\"\n | \"label-uppercase\"\n | \"caption\"\n | \"caption-uppercase\"\n | \"code-large\"\n | \"code-small\"\n | \"code-extra-small\"\n | \"badge\"\n | \"badge-small\";\n\n/**\n * @interface IcMenuOption\n * @field {string} A label field to options. Defaults to \"label\", but can have any custom name.\n * @field {string} A value field to options. Defaults to \"value\", but can have any custom name.\n */\nexport interface IcMenuOption {\n description?: string;\n disabled?: boolean;\n recommended?: boolean;\n children?: IcMenuOption[];\n loading?: boolean;\n timedOut?: boolean;\n [key: string]: any;\n element?: {\n component: any;\n ariaLabel: string;\n };\n icon?: any;\n}\n\nexport type IcCallbackFunctionNoReturn = (...args: unknown[]) => void;\n\nexport type IcDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\" | \"YYYY/MM/DD\";\n\nexport enum IcDateInputMonths {\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n}\n\nexport enum IcShortDayNames {\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\",\n}\n\nexport enum IcDayNames {\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n}\n\nexport enum IcWeekDays {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6,\n}\n","/**\n * To investigate:\n * IcColorRGBA works via @ukic/web-components but IcThemeForeground does not even though they are exported\n * from @ukic/web-components in the same file. Why?\n */\nimport {\n IcCallbackFunctionNoReturn,\n IcInformationStatusOrEmpty,\n IcNavParentDetails,\n IcPropObject,\n IcSearchMatchPositions,\n IcColorRGBA,\n} from \"@ukic/web-components\";\nimport {\n IC_BLOCK_COLOR_COMPONENTS,\n IC_BLOCK_COLOR_EXCEPTIONS,\n IC_FIXED_COLOR_COMPONENTS,\n} from \"./constants\"; // Using @ukic/web-components/dist/types/utils/constants does not work so duplicated constants into canary package\nimport {\n IcMenuOption,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"./types\"; // Using @ukic/web-components/dist/types/utils/types does not work so duplicated constants into canary package\nimport { EventEmitter } from \"@stencil/core\";\n\nconst DARK_MODE_THRESHOLD = 133.3505;\n\n/**\n * converts an enum of strings into an array of strings\n */\nexport const stringEnumToArray = (\n theEnum: Record<string, string | number>\n): string[] => {\n const arr: string[] = [];\n Object.values(theEnum).forEach((val) => {\n if (isNaN(Number(val))) {\n const str = val as string;\n arr.push(str);\n }\n });\n return arr;\n};\n\n/**\n * Used to inherit global attributes set on the host. Called in componentWillLoad and assigned\n * to a variable that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (\n element: HTMLElement,\n attributes: string[] = []\n): { [key: string]: unknown } => {\n const attributeObject: { [key: string]: unknown } = {};\n\n attributes.forEach((attr) => {\n if (element.hasAttribute(attr)) {\n const value = element.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = element.getAttribute(attr);\n }\n element.removeAttribute(attr);\n }\n });\n\n return attributeObject;\n};\n\nexport const debounceEvent = (\n event: EventEmitter,\n wait: number\n): EventEmitter => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const original = (event as any)._original || event;\n return {\n _original: event,\n emit: debounce(original.emit.bind(original), wait),\n } as EventEmitter;\n};\n\nexport const debounce = (\n func: (...args: unknown[]) => void,\n wait = 0\n): unknown => {\n let timer: ReturnType<typeof setTimeout>;\n return (...args: unknown[]) => {\n clearTimeout(timer);\n timer = setTimeout(func, wait, ...args);\n };\n};\n\n/**\n * This method is used to add a hidden input to a host element that contains\n * a Shadow DOM. It does not add the input inside of the Shadow root which\n * allows it to be picked up inside of forms. It should contain the same\n * values as the host element.\n *\n * @param always Add a hidden input even if the container does not use Shadow\n * @param container The element where the input will be added\n * @param name The name of the input\n * @param value The value of the input\n * @param disabled If true, the input is disabled\n */\nexport const renderHiddenInput = (\n always: boolean,\n container: HTMLElement,\n name: string,\n value: string | Date | undefined | null,\n disabled: boolean\n): void => {\n if (name !== undefined && (always || hasShadowDom(container))) {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n\n let input = filtered[0] as HTMLInputElement;\n if (input === null || input === undefined) {\n input = container.ownerDocument.createElement(\"input\");\n input.type = \"hidden\";\n input.classList.add(\"ic-input\");\n container.appendChild(input);\n }\n input.disabled = disabled;\n input.name = name;\n\n if (value instanceof Date) {\n input.value = value ? value.toISOString() : null;\n } else {\n input.value = value || \"\";\n }\n }\n};\n\nexport const removeHiddenInput = (container: HTMLElement): void => {\n const inputs = container.querySelectorAll(\"input.ic-input\");\n const inputEls = Array.from(inputs);\n const filtered = inputEls.filter((el) => container === el.parentElement);\n const input = filtered[0] as HTMLInputElement;\n input?.remove();\n};\n\n/**\n * This method helps to understand the context in which a component exists,\n * to assist with choosing appropriate foreground colours to use. For example,\n * this method will help you use the 'white' version of a button if it's within\n * a block colour element using white foreground text.\n *\n * This only works for components/elements passed via <slot> and not if they\n * are part of an IC component.\n *\n * \"\"\n * @returns IcThemeForeground depending on the context\n */\nexport const getThemeFromContext = (\n el: Element,\n themeFromEvent: IcThemeForeground = null\n): IcThemeForeground => {\n const parentElement =\n el.parentElement || (<ShadowRoot>el.getRootNode()).host.parentElement;\n const blockColorParent = parentElement.closest(\n IC_BLOCK_COLOR_COMPONENTS.join(\",\")\n );\n\n // If within a block color component\n if (blockColorParent !== null) {\n const parentTag = blockColorParent.tagName.toLowerCase();\n const currentTag = el.tagName.toLowerCase();\n\n if (IC_BLOCK_COLOR_EXCEPTIONS[parentTag]?.includes(currentTag)) {\n return IcThemeForegroundEnum.Default;\n } else if (\n themeFromEvent !== null &&\n !IC_FIXED_COLOR_COMPONENTS.includes(parentTag)\n ) {\n return themeFromEvent;\n } else if (\n blockColorParent.classList.contains(IcThemeForegroundEnum.Dark)\n ) {\n return IcThemeForegroundEnum.Dark;\n }\n\n return IcThemeForegroundEnum.Light;\n }\n\n return IcThemeForegroundEnum.Default;\n};\n\n/**\n * Will create a button within the lightDOM which interacts with the parent form.\n * This is required as buttons within the shadowDOM will not invoke a submit or reset\n *\n * @param form - parent form element which contains shadowDom button\n * @param button - shadowDOM button\n */\nexport const handleHiddenFormButtonClick = (\n form: HTMLFormElement,\n button: HTMLIcButtonElement | HTMLButtonElement\n): void => {\n const hiddenFormButton = document.createElement(\"button\");\n\n hiddenFormButton.setAttribute(\"type\", button.type);\n hiddenFormButton.style.display = \"none\";\n\n form.appendChild(hiddenFormButton);\n\n hiddenFormButton.click();\n hiddenFormButton.remove();\n};\n\nexport const isEmptyString = (value: string): boolean =>\n value ? value.trim().length === 0 : true;\n\n// A helper function that checks if a prop has been defined\nexport const isPropDefined = (prop: string): string | null =>\n prop !== undefined ? prop : null;\n\nexport const deviceSizeMatches = (size: number): boolean =>\n window.matchMedia(`(max-width: ${size}px)`).matches;\n\nexport const getCurrentDeviceSize = (): number => {\n if (deviceSizeMatches(DEVICE_SIZES.S)) {\n return DEVICE_SIZES.S;\n }\n if (deviceSizeMatches(DEVICE_SIZES.M)) {\n return DEVICE_SIZES.M;\n }\n if (deviceSizeMatches(DEVICE_SIZES.L)) {\n return DEVICE_SIZES.L;\n }\n if (deviceSizeMatches(DEVICE_SIZES.XL)) {\n return DEVICE_SIZES.XL;\n }\n //fallback needed as all of above get initialised to 0 in jest tests\n return DEVICE_SIZES.UNDEFINED;\n};\n\nexport const getCssProperty = (cssVar: string): string =>\n getComputedStyle(document.documentElement).getPropertyValue(cssVar);\n\n/**\n * Returns the brightness of the theme colour, calculated by using the theme RGB CSS values by:\n * - Multiplying each RGB value by a set number: https://www.w3.org/TR/AERT/#color-contrast\n * - Adding them together and dividing by 1000\n * This is a similar calculation to its CSS counterpart: \"--ic-theme-text\"\n * @returns number representing the brightness of the theme colour\n */\nexport const getThemeColorBrightness = (): number => {\n const themeRed = getCssProperty(\"--ic-theme-primary-r\");\n const themeGreen = getCssProperty(\"--ic-theme-primary-g\");\n const themeBlue = getCssProperty(\"--ic-theme-primary-b\");\n return (\n (parseInt(themeRed) * 299 +\n parseInt(themeGreen) * 587 +\n parseInt(themeBlue) * 114) /\n 1000\n );\n};\n\n/**\n * Returns if dark or light foreground colors should be used for color contrast reasons\n * @returns \"dark\" or \"light\"\n */\nexport const getThemeForegroundColor = (): IcThemeForeground =>\n getThemeColorBrightness() > DARK_MODE_THRESHOLD\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n\nexport const getSlot = (element: HTMLElement, name: string): Element | null => {\n if (element && element.querySelector) {\n return element.querySelector(`[slot=\"${name}\"]`);\n }\n return null;\n};\n\nexport const slotHasContent = (element: HTMLElement, name: string): boolean =>\n getSlot(element, name) !== null;\n\nexport const getSlotContent = (\n element: HTMLElement,\n name: string\n): Element[] | NodeListOf<ChildNode> | null => {\n const slot = getSlot(element, name);\n if (slot) {\n return getSlotElements(slot);\n }\n\n return null;\n};\n\nexport const getSlotElements = (\n slot: Element\n): NodeListOf<ChildNode> | Element[] => {\n const slotContent = slot.firstElementChild as HTMLSlotElement;\n\n if (slotContent !== null) {\n const elements = slotContent.assignedElements\n ? slotContent.assignedElements()\n : slotContent.childNodes;\n return elements.length ? elements : null;\n } else {\n //check for single element\n return slot === null ? null : [slot];\n }\n};\n\nexport const getNavItemParentDetails = (\n el: HTMLElement\n): IcNavParentDetails => {\n let navType: IcNavParentDetails = { navType: \"\", parent: null };\n switch (getParentElementType(el)) {\n case \"IC-NAVIGATION-GROUP\":\n navType = getNavItemParentDetails(el.parentElement);\n break;\n case \"IC-TOP-NAVIGATION\":\n navType = { navType: \"top\", parent: getParentElement(el) };\n break;\n case \"IC-SIDE-NAVIGATION\":\n navType = { navType: \"side\", parent: getParentElement(el) };\n break;\n case \"IC-PAGE-HEADER\":\n navType = { navType: \"page-header\", parent: null };\n break;\n }\n return navType;\n};\n\nexport const DEVICE_SIZES = {\n XS: Number(getCssProperty(\"--ic-breakpoint-xs\").replace(\"px\", \"\")), // 0\n S: Number(getCssProperty(\"--ic-breakpoint-sm\").replace(\"px\", \"\")), // 576\n M: Number(getCssProperty(\"--ic-breakpoint-md\").replace(\"px\", \"\")), // 768\n L: Number(getCssProperty(\"--ic-breakpoint-lg\").replace(\"px\", \"\")), // 992\n XL: Number(getCssProperty(\"--ic-breakpoint-xl\").replace(\"px\", \"\")), // 1200\n UNDEFINED: 1200,\n};\n\nexport const isSlotUsed = (element: HTMLElement, slotName: string): boolean =>\n Array.from(element.children).some(\n (child) => child.getAttribute(\"slot\") === slotName\n );\n\n// added as a common method to allow detection of gatsby hydration issue, where (camelCase) props are initially undefined & then update\n// with a value. Allows a callback function to be executed when this is the case\nexport const onComponentPropUndefinedChange = (\n oldValue: string | undefined,\n newValue: string | undefined,\n callback: IcCallbackFunctionNoReturn\n): void => {\n if (oldValue === undefined && newValue !== oldValue) {\n callback();\n }\n};\n\nexport const hasShadowDom = (el: HTMLElement): boolean =>\n !!el.shadowRoot && !!el.attachShadow;\n\nexport const getInputHelperTextID = (id: string): string => id + \"-helper-text\";\n\nexport const getInputValidationTextID = (id: string): string =>\n id + \"-validation-text\";\n\nexport const getInputDescribedByText = (\n inputId: string,\n helperText: boolean,\n validationText: boolean\n): string =>\n `${helperText ? getInputHelperTextID(inputId) : \"\"} ${\n validationText ? getInputValidationTextID(inputId) : \"\"\n }`.trim();\n\nexport const isMobileOrTablet = (): boolean =>\n \"maxTouchPoints\" in navigator ? navigator.maxTouchPoints > 0 : false;\n\n/**\n * Extracts the label using the value from an object. Requires the object to have a label and value property.\n * @param value - value from object\n * @param options - list of menu items\n * @returns - label corresponding to value\n */\nexport const getLabelFromValue = (\n value: string,\n options: IcMenuOption[],\n valueField = \"value\",\n labelField = \"label\"\n): string | undefined => {\n const ungroupedOptions: IcMenuOption[] = [];\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option: IcMenuOption) =>\n ungroupedOptions.push(option)\n );\n } else {\n ungroupedOptions.push(option);\n }\n });\n const matchingValue = ungroupedOptions.find(\n (option) => option[valueField] === value\n );\n if (matchingValue !== undefined) return matchingValue[labelField];\n }\n\n return undefined;\n};\n\n/**\n * Filters the options based on the search string.\n * @param options - array of options\n * @param includeDescriptions - determines whether option descriptions are included when filtering options\n * @param searchString - string used to filter the options\n * @param position - whether the search string matches the start of or anywhere in the options\n * @returns filtered array of options\n */\nexport const getFilteredMenuOptions = (\n options: IcMenuOption[],\n includeDescriptions: boolean,\n searchString: string,\n position: IcSearchMatchPositions,\n labelField = \"label\"\n): IcMenuOption[] =>\n options.filter((option) => {\n const label: string = option[labelField].toLowerCase();\n const description = option.description?.toLowerCase();\n const lowerSearchString = searchString.toLowerCase();\n\n return position === \"anywhere\"\n ? includeDescriptions\n ? label.includes(lowerSearchString) ||\n description?.includes(lowerSearchString)\n : label.includes(lowerSearchString)\n : includeDescriptions\n ? label.startsWith(lowerSearchString) ||\n description?.startsWith(lowerSearchString)\n : label.startsWith(lowerSearchString);\n });\n\n/**\n * Gets count of options where only group title \"parent\" options have been removed.\n * Disabled options are included in the count.\n * @param options - array of options\n * @returns number of options not including group titles\n */\nexport const getOptionsWithoutGroupTitlesCount = (\n options: IcMenuOption[]\n): number => {\n const optionsWithoutGroupTitles: IcMenuOption[] = [];\n\n if (options.length > 0 && options.map) {\n options.map((option) => {\n if (option.children) {\n option.children.map((option) => optionsWithoutGroupTitles.push(option));\n } else {\n optionsWithoutGroupTitles.push(option);\n }\n });\n }\n\n return optionsWithoutGroupTitles.length;\n};\n\nconst hex2dec = function (v: string) {\n return parseInt(v, 16);\n};\n\nexport const hexToRgba = (hex: string): IcColorRGBA => {\n let c;\n if (hex.length === 4) {\n c = hex.replace(\"#\", \"\").split(\"\");\n return {\n r: hex2dec(c[0] + c[0]),\n g: hex2dec(c[1] + c[1]),\n b: hex2dec(c[2] + c[2]),\n a: 1,\n };\n } else {\n return {\n r: hex2dec(hex.slice(1, 3)),\n g: hex2dec(hex.slice(3, 5)),\n b: hex2dec(hex.slice(5)),\n a: 1,\n };\n }\n};\n\nexport const rgbaStrToObj = (rgbaStr: string): IcColorRGBA => {\n const fourthChar = rgbaStr.slice(3, 4);\n let colorRGBA: IcColorRGBA;\n if (fourthChar.toLowerCase() === \"a\") {\n colorRGBA = { r: null, g: null, b: null, a: null };\n const rgba = rgbaStr\n .substring(5, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgba[0]);\n colorRGBA.g = Number(rgba[1]);\n colorRGBA.b = Number(rgba[2]);\n colorRGBA.a = Number(rgba[3]);\n } else {\n colorRGBA = { r: null, g: null, b: null, a: 1 };\n const rgb = rgbaStr\n .substring(4, rgbaStr.length - 1)\n .replace(/ /g, \"\")\n .split(\",\");\n colorRGBA.r = Number(rgb[0]);\n colorRGBA.g = Number(rgb[1]);\n colorRGBA.b = Number(rgb[2]);\n }\n\n return colorRGBA;\n};\n\nexport const elementOverflowsX = (element: HTMLElement): boolean =>\n element.scrollWidth > element.clientWidth;\n\n/**\n *\n * @param child - The child element\n * @returns string\n */\nexport const getParentElementType = (child: HTMLElement): string =>\n child.parentElement.tagName;\n\nexport const getParentElement = (child: HTMLElement): HTMLElement =>\n child.parentElement;\n\nexport const hasClassificationBanner = (): boolean =>\n !!document.querySelector(\"ic-classification-banner:not([inline='true'])\");\n\nexport const pxToRem = (px: string, base = 16): string =>\n `${(1 / base) * parseInt(px)}rem`;\n\nexport const isNumeric = (value: string) => {\n return /^-?\\d+$/.test(value);\n};\n\nexport const hasValidationStatus = (\n status: IcInformationStatusOrEmpty,\n disabled: boolean\n): boolean => {\n return status !== \"\" && !disabled;\n};\n\nexport const onComponentRequiredPropUndefined = (\n props: IcPropObject[],\n component: string\n): void => {\n for (let i = 0; i < props.length; i++) {\n const { prop, propName } = props[i];\n if (prop === null || prop === undefined) {\n console.error(\n `No ${propName} specified for ${component} component - prop '${propName}' (web components) / '${kebabToCamelCase(\n propName\n )}' (react) required`\n );\n }\n }\n};\n\nexport const kebabToCamelCase = (kebabCase: string): string => {\n kebabCase = kebabCase.toLowerCase();\n const individualWords: string[] = kebabCase.split(\"-\");\n let camelCase = individualWords[0];\n for (let i = 1; i < individualWords.length; i++) {\n camelCase +=\n individualWords[i].substring(0, 1).toUpperCase() +\n individualWords[i].substring(1);\n }\n return camelCase;\n};\n\nexport const checkResizeObserver = (\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n if (\n typeof window !== \"undefined\" &&\n typeof window.ResizeObserver !== \"undefined\"\n ) {\n callbackFn();\n }\n};\n\nexport const getForm = (el: HTMLElement): HTMLFormElement => el.closest(\"FORM\");\n\nexport const addFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.addEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeFormResetListener = (\n el: HTMLElement,\n callbackFn: IcCallbackFunctionNoReturn\n): void => {\n const form = getForm(el);\n if (form !== null) {\n form.removeEventListener(\"reset\", callbackFn);\n }\n};\n\nexport const removeDisabledFalse = (\n disabled: boolean,\n element: HTMLElement\n): void => {\n if (!disabled) {\n element.removeAttribute(\"disabled\");\n }\n};\n\nexport const isMacDevice = (): boolean => {\n return window.navigator.userAgent.toUpperCase().indexOf(\"MAC\") >= 0;\n};\n"],"version":3}