@ukic/web-components 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (425) hide show
  1. package/dist/cjs/{close-icon-8ccb0163.js → close-icon-04be4880.js} +2 -2
  2. package/dist/cjs/close-icon-04be4880.js.map +1 -0
  3. package/dist/cjs/core.cjs.js +1 -1
  4. package/dist/cjs/{helpers-eb53c416.js → helpers-3811d14b.js} +17 -12
  5. package/dist/cjs/helpers-3811d14b.js.map +1 -0
  6. package/dist/cjs/ic-alert.cjs.entry.js +3 -3
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
  9. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
  10. package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
  11. package/dist/cjs/ic-button_3.cjs.entry.js +128 -38
  12. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  13. package/dist/cjs/ic-card.cjs.entry.js +1 -1
  14. package/dist/cjs/ic-checkbox-group.cjs.entry.js +3 -2
  15. package/dist/cjs/ic-checkbox-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-checkbox.cjs.entry.js +9 -3
  17. package/dist/cjs/ic-checkbox.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  19. package/dist/cjs/ic-chip.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-dialog.cjs.entry.js +3 -3
  22. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  23. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-empty-state.cjs.entry.js +37 -0
  25. package/dist/cjs/ic-empty-state.cjs.entry.js.map +1 -0
  26. package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer.cjs.entry.js +5 -2
  29. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-hero.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
  33. package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-link.cjs.entry.js +1 -1
  36. package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
  37. package/dist/cjs/ic-navigation-button.cjs.entry.js +3 -3
  38. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  39. package/dist/cjs/ic-navigation-group.cjs.entry.js +30 -12
  40. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/ic-navigation-item.cjs.entry.js +4 -5
  42. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
  44. package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
  45. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  46. package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
  47. package/dist/cjs/ic-popover-menu.cjs.entry.js +65 -13
  48. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  50. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  51. package/dist/cjs/ic-search-bar.cjs.entry.js +4 -3
  52. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-select.cjs.entry.js +1 -1
  54. package/dist/cjs/ic-side-navigation.cjs.entry.js +15 -6
  55. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  56. package/dist/cjs/ic-status-tag.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  59. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  60. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  61. package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  63. package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
  64. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  65. package/dist/cjs/ic-toast.cjs.entry.js +3 -3
  66. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  67. package/dist/cjs/ic-top-navigation.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  69. package/dist/cjs/ic-typography.cjs.entry.js +11 -3
  70. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  71. package/dist/cjs/index-2a0c6769.js +4 -0
  72. package/dist/cjs/loader.cjs.js +1 -1
  73. package/dist/cjs/types-3eb02246.js.map +1 -1
  74. package/dist/collection/assets/close-icon.svg +1 -1
  75. package/dist/collection/assets/error-icon.svg +3 -2
  76. package/dist/collection/assets/hamburger-menu-icon.svg +1 -1
  77. package/dist/collection/assets/info-icon.svg +3 -2
  78. package/dist/collection/assets/neutral-icon.svg +4 -3
  79. package/dist/collection/assets/success-icon.svg +3 -2
  80. package/dist/collection/assets/warning-icon.svg +3 -2
  81. package/dist/collection/collection-manifest.json +1 -0
  82. package/dist/collection/components/ic-alert/ic-alert.css +9 -9
  83. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  84. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  85. package/dist/collection/components/ic-button/ic-button.css +19 -3
  86. package/dist/collection/components/ic-button/ic-button.js +25 -8
  87. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  88. package/dist/collection/components/ic-button/ic-button.types.js.map +1 -1
  89. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +17 -2
  90. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  91. package/dist/collection/components/ic-checkbox/ic-checkbox.css +34 -0
  92. package/dist/collection/components/ic-checkbox/ic-checkbox.js +34 -3
  93. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  94. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js +30 -3
  95. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  96. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js +28 -0
  97. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.spec.js.map +1 -1
  98. package/dist/collection/components/ic-chip/ic-chip.js +3 -3
  99. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  100. package/dist/collection/components/ic-chip/ic-chip.types.js.map +1 -1
  101. package/dist/collection/components/ic-dialog/ic-dialog.js +1 -1
  102. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  103. package/dist/collection/components/ic-empty-state/ic-empty-state.css +49 -0
  104. package/dist/collection/components/ic-empty-state/ic-empty-state.js +158 -0
  105. package/dist/collection/components/ic-empty-state/ic-empty-state.js.map +1 -0
  106. package/dist/collection/components/ic-empty-state/ic-empty-state.types.js +2 -0
  107. package/dist/collection/components/ic-empty-state/ic-empty-state.types.js.map +1 -0
  108. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js +38 -0
  109. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js.map +1 -0
  110. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +86 -0
  111. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +1 -0
  112. package/dist/collection/components/ic-footer/ic-footer.js +4 -1
  113. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  114. package/dist/collection/components/ic-input-validation/ic-input-validation.css +1 -1
  115. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +1 -0
  116. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +1 -1
  117. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  118. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +1 -1
  119. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  120. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +6 -2
  121. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +28 -10
  122. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  123. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js +3 -3
  124. package/dist/collection/components/ic-navigation-group/test/basic/ic-navigation-group.spec.js.map +1 -1
  125. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +4 -1
  126. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +2 -3
  127. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  128. package/dist/collection/components/ic-popover-menu/ic-popover-menu.css +12 -0
  129. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +63 -11
  130. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  131. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +14 -0
  132. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -1
  133. package/dist/collection/components/ic-search-bar/ic-search-bar.js +3 -2
  134. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  135. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +19 -0
  136. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  137. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +4 -0
  138. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +30 -3
  139. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  140. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +20 -0
  141. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
  142. package/dist/collection/components/ic-status-tag/ic-status-tag.css +4 -4
  143. package/dist/collection/components/ic-switch/ic-switch.css +1 -1
  144. package/dist/collection/components/ic-toast/ic-toast.css +2 -2
  145. package/dist/collection/components/ic-tooltip/ic-tooltip.css +9 -0
  146. package/dist/collection/components/ic-tooltip/ic-tooltip.js +108 -33
  147. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  148. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js +2 -0
  149. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.e2e.js.map +1 -1
  150. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +160 -1
  151. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  152. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +1 -1
  153. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  154. package/dist/collection/components/ic-typography/ic-typography.css +21 -1
  155. package/dist/collection/components/ic-typography/ic-typography.js +81 -1
  156. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  157. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +28 -0
  158. package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
  159. package/dist/collection/utils/types.js.map +1 -1
  160. package/dist/components/close-icon.js +1 -1
  161. package/dist/components/helpers.js +16 -11
  162. package/dist/components/helpers.js.map +1 -1
  163. package/dist/components/ic-alert2.js +1 -1
  164. package/dist/components/ic-alert2.js.map +1 -1
  165. package/dist/components/ic-button2.js +20 -5
  166. package/dist/components/ic-button2.js.map +1 -1
  167. package/dist/components/ic-checkbox-group.js +3 -1
  168. package/dist/components/ic-checkbox-group.js.map +1 -1
  169. package/dist/components/ic-checkbox.js +9 -2
  170. package/dist/components/ic-checkbox.js.map +1 -1
  171. package/dist/components/ic-chip.js.map +1 -1
  172. package/dist/components/ic-dialog.js +1 -1
  173. package/dist/components/ic-dialog.js.map +1 -1
  174. package/dist/components/ic-empty-state.d.ts +11 -0
  175. package/dist/components/ic-empty-state.js +63 -0
  176. package/dist/components/ic-empty-state.js.map +1 -0
  177. package/dist/components/ic-footer.js +4 -1
  178. package/dist/components/ic-footer.js.map +1 -1
  179. package/dist/components/ic-input-validation2.js +1 -1
  180. package/dist/components/ic-input-validation2.js.map +1 -1
  181. package/dist/components/ic-navigation-button.js +2 -2
  182. package/dist/components/ic-navigation-button.js.map +1 -1
  183. package/dist/components/ic-navigation-group.js +29 -11
  184. package/dist/components/ic-navigation-group.js.map +1 -1
  185. package/dist/components/ic-navigation-item.js +3 -4
  186. package/dist/components/ic-navigation-item.js.map +1 -1
  187. package/dist/components/ic-popover-menu.js +64 -12
  188. package/dist/components/ic-popover-menu.js.map +1 -1
  189. package/dist/components/ic-search-bar.js +3 -2
  190. package/dist/components/ic-search-bar.js.map +1 -1
  191. package/dist/components/ic-side-navigation.js +15 -5
  192. package/dist/components/ic-side-navigation.js.map +1 -1
  193. package/dist/components/ic-status-tag.js +1 -1
  194. package/dist/components/ic-status-tag.js.map +1 -1
  195. package/dist/components/ic-switch.js +1 -1
  196. package/dist/components/ic-switch.js.map +1 -1
  197. package/dist/components/ic-toast.js +1 -1
  198. package/dist/components/ic-toast.js.map +1 -1
  199. package/dist/components/ic-tooltip2.js +109 -34
  200. package/dist/components/ic-tooltip2.js.map +1 -1
  201. package/dist/components/ic-top-navigation.js +1 -1
  202. package/dist/components/ic-top-navigation.js.map +1 -1
  203. package/dist/components/ic-typography2.js +14 -2
  204. package/dist/components/ic-typography2.js.map +1 -1
  205. package/dist/components/types.js.map +1 -1
  206. package/dist/core/core.css +26 -26
  207. package/dist/core/core.esm.js +1 -1
  208. package/dist/core/core.esm.js.map +1 -1
  209. package/dist/core/{p-b698b8ad.entry.js → p-07601b81.entry.js} +2 -2
  210. package/dist/core/{p-5c9c940f.entry.js → p-07877eb8.entry.js} +2 -2
  211. package/dist/core/p-103c761f.entry.js +2 -0
  212. package/dist/core/p-103c761f.entry.js.map +1 -0
  213. package/dist/core/{p-f923d11b.entry.js → p-14bea6c0.entry.js} +2 -2
  214. package/dist/core/p-14bea6c0.entry.js.map +1 -0
  215. package/dist/core/{p-f7695299.entry.js → p-1ac44a4e.entry.js} +2 -2
  216. package/dist/core/{p-ca6d834e.entry.js → p-1b1dbb53.entry.js} +2 -2
  217. package/dist/core/{p-1b9b8355.entry.js → p-20fafec4.entry.js} +2 -2
  218. package/dist/core/{p-5c846d0a.entry.js → p-24b88371.entry.js} +2 -2
  219. package/dist/core/{p-ce791694.entry.js → p-2f5a9d91.entry.js} +2 -2
  220. package/dist/core/{p-ce791694.entry.js.map → p-2f5a9d91.entry.js.map} +1 -1
  221. package/dist/core/{p-8991f656.entry.js → p-389c3913.entry.js} +2 -2
  222. package/dist/core/{p-9e551fe9.entry.js → p-43b529a5.entry.js} +2 -2
  223. package/dist/core/{p-9e551fe9.entry.js.map → p-43b529a5.entry.js.map} +1 -1
  224. package/dist/core/p-4dc6a83d.entry.js +2 -0
  225. package/dist/core/p-4dc6a83d.entry.js.map +1 -0
  226. package/dist/core/{p-adceb0cf.entry.js → p-4fa9c6eb.entry.js} +2 -2
  227. package/dist/core/p-4fa9c6eb.entry.js.map +1 -0
  228. package/dist/core/{p-a8b94619.entry.js → p-50019c47.entry.js} +2 -2
  229. package/dist/core/{p-d2215b72.entry.js → p-516fd246.entry.js} +2 -2
  230. package/dist/core/p-5e3a09d7.entry.js +2 -0
  231. package/dist/core/p-5e3a09d7.entry.js.map +1 -0
  232. package/dist/core/{p-cef93d12.entry.js → p-5e685037.entry.js} +2 -2
  233. package/dist/core/{p-0330cb21.entry.js → p-69c1f172.entry.js} +2 -2
  234. package/dist/core/p-6f57b13c.js.map +1 -1
  235. package/dist/core/{p-e0ee714a.entry.js → p-736489c6.entry.js} +2 -2
  236. package/dist/core/p-736489c6.entry.js.map +1 -0
  237. package/dist/core/{p-8c45ab61.entry.js → p-75ac2fbf.entry.js} +2 -2
  238. package/dist/core/{p-f665242d.entry.js → p-8acd7207.entry.js} +2 -2
  239. package/dist/core/{p-429e4d24.entry.js → p-919059e8.entry.js} +2 -2
  240. package/dist/core/{p-332690f0.entry.js → p-92868735.entry.js} +2 -2
  241. package/dist/core/{p-ee11e185.entry.js → p-93ee130d.entry.js} +2 -2
  242. package/dist/core/{p-ee11e185.entry.js.map → p-93ee130d.entry.js.map} +1 -1
  243. package/dist/core/{p-a588886f.entry.js → p-98d488aa.entry.js} +2 -2
  244. package/dist/core/{p-5144e840.entry.js → p-9bde930d.entry.js} +2 -2
  245. package/dist/core/{p-c5716cbc.entry.js → p-9e896463.entry.js} +2 -2
  246. package/dist/core/{p-7536dd31.entry.js → p-ab4919d6.entry.js} +2 -2
  247. package/dist/core/{p-83d5bcae.entry.js → p-adf65f4a.entry.js} +2 -2
  248. package/dist/core/p-adf65f4a.entry.js.map +1 -0
  249. package/dist/core/p-b5d084c2.entry.js +2 -0
  250. package/dist/core/p-b5d084c2.entry.js.map +1 -0
  251. package/dist/core/{p-26d5fd0f.entry.js → p-bbdd9770.entry.js} +2 -2
  252. package/dist/core/p-bbdd9770.entry.js.map +1 -0
  253. package/dist/core/p-c2fc2b77.entry.js +2 -0
  254. package/dist/core/p-c2fc2b77.entry.js.map +1 -0
  255. package/dist/core/{p-65750560.entry.js → p-c3da58eb.entry.js} +2 -2
  256. package/dist/core/p-c3da58eb.entry.js.map +1 -0
  257. package/dist/core/p-c4b81d32.entry.js +2 -0
  258. package/dist/core/p-c4b81d32.entry.js.map +1 -0
  259. package/dist/core/p-cfb87422.entry.js +2 -0
  260. package/dist/core/p-cfb87422.entry.js.map +1 -0
  261. package/dist/core/{p-cbbf4b05.entry.js → p-d2994a71.entry.js} +2 -2
  262. package/dist/core/p-d592006b.entry.js +2 -0
  263. package/dist/core/p-d592006b.entry.js.map +1 -0
  264. package/dist/core/{p-90d3a41b.entry.js → p-da3bd896.entry.js} +2 -2
  265. package/dist/core/{p-892d9d9f.entry.js → p-da5fc036.entry.js} +2 -2
  266. package/dist/core/p-da5fc036.entry.js.map +1 -0
  267. package/dist/core/p-dd980be4.js +2 -0
  268. package/dist/core/{p-5dd0b02e.js.map → p-dd980be4.js.map} +1 -1
  269. package/dist/core/{p-27d42378.entry.js → p-e14bc195.entry.js} +2 -2
  270. package/dist/core/p-e2fdb944.entry.js +2 -0
  271. package/dist/core/p-e2fdb944.entry.js.map +1 -0
  272. package/dist/core/{p-1959ec8d.entry.js → p-e328bd2d.entry.js} +2 -2
  273. package/dist/core/{p-c012b867.entry.js → p-e9c864ac.entry.js} +2 -2
  274. package/dist/core/p-f2c6a143.js +2 -0
  275. package/dist/core/{p-6840589f.entry.js → p-fb86da80.entry.js} +2 -2
  276. package/dist/core/{p-7ae091ef.entry.js → p-fbd3c432.entry.js} +2 -2
  277. package/dist/core/p-fbd3c432.entry.js.map +1 -0
  278. package/dist/esm/{close-icon-2f02b42a.js → close-icon-2ce5d375.js} +2 -2
  279. package/dist/esm/close-icon-2ce5d375.js.map +1 -0
  280. package/dist/esm/core.js +1 -1
  281. package/dist/esm/{helpers-85903813.js → helpers-d7d5bd08.js} +18 -13
  282. package/dist/esm/helpers-d7d5bd08.js.map +1 -0
  283. package/dist/esm/ic-alert.entry.js +3 -3
  284. package/dist/esm/ic-alert.entry.js.map +1 -1
  285. package/dist/esm/ic-back-to-top.entry.js +1 -1
  286. package/dist/esm/ic-breadcrumb-group.entry.js +1 -1
  287. package/dist/esm/ic-breadcrumb.entry.js +1 -1
  288. package/dist/esm/ic-button_3.entry.js +128 -38
  289. package/dist/esm/ic-button_3.entry.js.map +1 -1
  290. package/dist/esm/ic-card.entry.js +1 -1
  291. package/dist/esm/ic-checkbox-group.entry.js +3 -2
  292. package/dist/esm/ic-checkbox-group.entry.js.map +1 -1
  293. package/dist/esm/ic-checkbox.entry.js +9 -3
  294. package/dist/esm/ic-checkbox.entry.js.map +1 -1
  295. package/dist/esm/ic-chip.entry.js +1 -1
  296. package/dist/esm/ic-chip.entry.js.map +1 -1
  297. package/dist/esm/ic-data-row.entry.js +1 -1
  298. package/dist/esm/ic-dialog.entry.js +3 -3
  299. package/dist/esm/ic-dialog.entry.js.map +1 -1
  300. package/dist/esm/ic-divider.entry.js +1 -1
  301. package/dist/esm/ic-empty-state.entry.js +33 -0
  302. package/dist/esm/ic-empty-state.entry.js.map +1 -0
  303. package/dist/esm/ic-footer-link-group.entry.js +1 -1
  304. package/dist/esm/ic-footer-link.entry.js +1 -1
  305. package/dist/esm/ic-footer.entry.js +5 -2
  306. package/dist/esm/ic-footer.entry.js.map +1 -1
  307. package/dist/esm/ic-hero.entry.js +1 -1
  308. package/dist/esm/ic-horizontal-scroll.entry.js +1 -1
  309. package/dist/esm/ic-input-component-container_3.entry.js +1 -1
  310. package/dist/esm/ic-input-label_2.entry.js +2 -2
  311. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  312. package/dist/esm/ic-link.entry.js +1 -1
  313. package/dist/esm/ic-menu-item.entry.js +1 -1
  314. package/dist/esm/ic-navigation-button.entry.js +3 -3
  315. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  316. package/dist/esm/ic-navigation-group.entry.js +30 -12
  317. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  318. package/dist/esm/ic-navigation-item.entry.js +4 -5
  319. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  320. package/dist/esm/ic-navigation-menu.entry.js +1 -1
  321. package/dist/esm/ic-page-header.entry.js +1 -1
  322. package/dist/esm/ic-pagination-item.entry.js +1 -1
  323. package/dist/esm/ic-pagination.entry.js +1 -1
  324. package/dist/esm/ic-popover-menu.entry.js +65 -13
  325. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  326. package/dist/esm/ic-radio-group.entry.js +1 -1
  327. package/dist/esm/ic-radio-option.entry.js +1 -1
  328. package/dist/esm/ic-search-bar.entry.js +4 -3
  329. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  330. package/dist/esm/ic-select.entry.js +1 -1
  331. package/dist/esm/ic-side-navigation.entry.js +15 -6
  332. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  333. package/dist/esm/ic-status-tag.entry.js +2 -2
  334. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  335. package/dist/esm/ic-stepper.entry.js +1 -1
  336. package/dist/esm/ic-switch.entry.js +2 -2
  337. package/dist/esm/ic-switch.entry.js.map +1 -1
  338. package/dist/esm/ic-tab-group.entry.js +1 -1
  339. package/dist/esm/ic-tab.entry.js +1 -1
  340. package/dist/esm/ic-text-field.entry.js +1 -1
  341. package/dist/esm/ic-theme.entry.js +1 -1
  342. package/dist/esm/ic-toast.entry.js +3 -3
  343. package/dist/esm/ic-toast.entry.js.map +1 -1
  344. package/dist/esm/ic-top-navigation.entry.js +2 -2
  345. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  346. package/dist/esm/ic-typography.entry.js +11 -3
  347. package/dist/esm/ic-typography.entry.js.map +1 -1
  348. package/dist/esm/index-fd30b77e.js +4 -0
  349. package/dist/esm/loader.js +1 -1
  350. package/dist/esm/types-dd515332.js.map +1 -1
  351. package/dist/types/components/ic-alert/ic-alert.d.ts +1 -1
  352. package/dist/types/components/ic-button/ic-button.d.ts +8 -4
  353. package/dist/types/components/ic-button/ic-button.types.d.ts +0 -1
  354. package/dist/types/components/ic-checkbox/ic-checkbox.d.ts +6 -2
  355. package/dist/types/components/ic-checkbox-group/ic-checkbox-group.d.ts +6 -2
  356. package/dist/types/components/ic-chip/ic-chip.d.ts +3 -2
  357. package/dist/types/components/ic-chip/ic-chip.types.d.ts +0 -1
  358. package/dist/types/components/ic-empty-state/ic-empty-state.d.ts +35 -0
  359. package/dist/types/components/ic-empty-state/ic-empty-state.types.d.ts +1 -0
  360. package/dist/types/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.d.ts +1 -0
  361. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -0
  362. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +3 -0
  363. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +5 -0
  364. package/dist/types/components/ic-tooltip/ic-tooltip.d.ts +5 -0
  365. package/dist/types/components/ic-typography/ic-typography.d.ts +17 -0
  366. package/dist/types/components.d.ts +135 -16
  367. package/dist/types/utils/types.d.ts +1 -0
  368. package/hydrate/index.js +346 -99
  369. package/package.json +4 -5
  370. package/dist/cjs/close-icon-8ccb0163.js.map +0 -1
  371. package/dist/cjs/helpers-eb53c416.js.map +0 -1
  372. package/dist/core/p-03d1a4a1.entry.js +0 -2
  373. package/dist/core/p-03d1a4a1.entry.js.map +0 -1
  374. package/dist/core/p-26d5fd0f.entry.js.map +0 -1
  375. package/dist/core/p-39adc795.entry.js +0 -2
  376. package/dist/core/p-39adc795.entry.js.map +0 -1
  377. package/dist/core/p-44512ebe.js +0 -2
  378. package/dist/core/p-48301eff.entry.js +0 -2
  379. package/dist/core/p-48301eff.entry.js.map +0 -1
  380. package/dist/core/p-5dd0b02e.js +0 -2
  381. package/dist/core/p-65750560.entry.js.map +0 -1
  382. package/dist/core/p-7ae091ef.entry.js.map +0 -1
  383. package/dist/core/p-7c46caf2.entry.js +0 -2
  384. package/dist/core/p-7c46caf2.entry.js.map +0 -1
  385. package/dist/core/p-83d5bcae.entry.js.map +0 -1
  386. package/dist/core/p-892d9d9f.entry.js.map +0 -1
  387. package/dist/core/p-96b71172.entry.js +0 -2
  388. package/dist/core/p-96b71172.entry.js.map +0 -1
  389. package/dist/core/p-adceb0cf.entry.js.map +0 -1
  390. package/dist/core/p-b6c538ea.entry.js +0 -2
  391. package/dist/core/p-b6c538ea.entry.js.map +0 -1
  392. package/dist/core/p-e0ee714a.entry.js.map +0 -1
  393. package/dist/core/p-e6370b7e.entry.js +0 -2
  394. package/dist/core/p-e6370b7e.entry.js.map +0 -1
  395. package/dist/core/p-f24814b8.entry.js +0 -2
  396. package/dist/core/p-f24814b8.entry.js.map +0 -1
  397. package/dist/core/p-f923d11b.entry.js.map +0 -1
  398. package/dist/esm/close-icon-2f02b42a.js.map +0 -1
  399. package/dist/esm/helpers-85903813.js.map +0 -1
  400. /package/dist/core/{p-b698b8ad.entry.js.map → p-07601b81.entry.js.map} +0 -0
  401. /package/dist/core/{p-5c9c940f.entry.js.map → p-07877eb8.entry.js.map} +0 -0
  402. /package/dist/core/{p-f7695299.entry.js.map → p-1ac44a4e.entry.js.map} +0 -0
  403. /package/dist/core/{p-ca6d834e.entry.js.map → p-1b1dbb53.entry.js.map} +0 -0
  404. /package/dist/core/{p-1b9b8355.entry.js.map → p-20fafec4.entry.js.map} +0 -0
  405. /package/dist/core/{p-5c846d0a.entry.js.map → p-24b88371.entry.js.map} +0 -0
  406. /package/dist/core/{p-8991f656.entry.js.map → p-389c3913.entry.js.map} +0 -0
  407. /package/dist/core/{p-a8b94619.entry.js.map → p-50019c47.entry.js.map} +0 -0
  408. /package/dist/core/{p-d2215b72.entry.js.map → p-516fd246.entry.js.map} +0 -0
  409. /package/dist/core/{p-cef93d12.entry.js.map → p-5e685037.entry.js.map} +0 -0
  410. /package/dist/core/{p-0330cb21.entry.js.map → p-69c1f172.entry.js.map} +0 -0
  411. /package/dist/core/{p-8c45ab61.entry.js.map → p-75ac2fbf.entry.js.map} +0 -0
  412. /package/dist/core/{p-f665242d.entry.js.map → p-8acd7207.entry.js.map} +0 -0
  413. /package/dist/core/{p-429e4d24.entry.js.map → p-919059e8.entry.js.map} +0 -0
  414. /package/dist/core/{p-332690f0.entry.js.map → p-92868735.entry.js.map} +0 -0
  415. /package/dist/core/{p-a588886f.entry.js.map → p-98d488aa.entry.js.map} +0 -0
  416. /package/dist/core/{p-5144e840.entry.js.map → p-9bde930d.entry.js.map} +0 -0
  417. /package/dist/core/{p-c5716cbc.entry.js.map → p-9e896463.entry.js.map} +0 -0
  418. /package/dist/core/{p-7536dd31.entry.js.map → p-ab4919d6.entry.js.map} +0 -0
  419. /package/dist/core/{p-cbbf4b05.entry.js.map → p-d2994a71.entry.js.map} +0 -0
  420. /package/dist/core/{p-90d3a41b.entry.js.map → p-da3bd896.entry.js.map} +0 -0
  421. /package/dist/core/{p-27d42378.entry.js.map → p-e14bc195.entry.js.map} +0 -0
  422. /package/dist/core/{p-1959ec8d.entry.js.map → p-e328bd2d.entry.js.map} +0 -0
  423. /package/dist/core/{p-c012b867.entry.js.map → p-e9c864ac.entry.js.map} +0 -0
  424. /package/dist/core/{p-44512ebe.js.map → p-f2c6a143.js.map} +0 -0
  425. /package/dist/core/{p-6840589f.entry.js.map → p-fb86da80.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-navigation-group/test/basic/ic-navigation-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { waitForNavGroupLoad } from \"../../../../testspec.setup\";\nimport { NavigationItem } from \"../../../ic-navigation-item/ic-navigation-item\";\nimport { SideNavigation } from \"../../../ic-side-navigation/ic-side-navigation\";\nimport { TopNavigation } from \"../../../ic-top-navigation/ic-top-navigation\";\nimport { DEVICE_SIZES } from \"../../../../utils/helpers\";\nimport { NavigationGroup } from \"./../../ic-navigation-group\";\nimport * as helpers from \"../../../../utils/helpers\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nconst ev = {\n relatedTarget: {\n nodeName: \"IC-NAVIGATION-GROUP\",\n },\n target: {\n nodeName: \"IC-NAVIGATION-GROUP\",\n },\n};\n\nconst timeOut = 1000;\n\ndescribe(\"ic-navigation-group\", () => {\n it(\"should render with label\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n expect(page.root).toMatchSnapshot(\"renders-with-label\");\n });\n\n it(\"should test handleMouseEnter\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n page.rootInstance.mouseGate = true;\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.hideDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n\n ev.relatedTarget.nodeName = \"ANOTHER-NAME\";\n page.rootInstance.mouseGate = false;\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.mouseGate).toBe(true);\n\n jest.spyOn(document, \"addEventListener\");\n\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n\n expect(document.addEventListener).toHaveBeenCalledTimes(1);\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n\n await page.rootInstance.childBlurHandler();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n\n await page.rootInstance.navItemClickHandler();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n ev.relatedTarget.nodeName = \"IC-NAVIGATION-GROUP\";\n });\n\n it(\"should test toggleExpanded\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(true);\n });\n\n it(\"should test click handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.handleClick();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n page.rootInstance.navigationType = \"top\";\n await page.rootInstance.handleClick({ detail: { something: \"set\" } });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test top nav key down handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleTopNavKeydown({ key: \"Escape\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.handleTopNavKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test handleBlur function\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"andAway\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"closerEachDay\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n\n await waitForNavGroupLoad();\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleBlur(ev);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n });\n\n it(\"should test handleMouseLeave function\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"andAway\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n ev.target.nodeName = \"IC-NOT-NAV-GROUP\";\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(600);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n // check other branch of 'if'\n ev.relatedTarget.nodeName = \"IC-NOT-NAV-GROUP\";\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n // check if null value called\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n ev.relatedTarget.nodeName = \"IC-NAVIGATION-GROUP\";\n ev.target.nodeName = \"IC-NAVIGATION-GROUP\";\n });\n\n it(\"should test key down handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.handleKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n\n page.rootInstance.navigationType = \"side\";\n await page.rootInstance.handleKeydown({\n key: \" \",\n preventDefault: (): void => null,\n });\n await page.waitForChanges();\n await waitForTimeout(600);\n expect(page.rootInstance.expanded).toBe(true);\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n page.rootInstance.navigationType = \"top\";\n await page.waitForChanges();\n await page.rootInstance.handleKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test theme change\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n expect(page.rootInstance.focusStyle).toBe(\"dark\");\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n expect(page.rootInstance.focusStyle).toBe(\"light\");\n });\n\n it(\"should test inside side navigation\", async () => {\n const page = await newSpecPage({\n components: [SideNavigation, NavigationGroup, NavigationItem],\n html: `<ic-side-navigation version=\"v0.0.0\" app-title=\"ACME\" status=\"BETA\" collapsed-icon-labels=\"true\">\n <ic-navigation-group\n slot=\"primary-navigation\"\n label=\"Second navigation group\"\n expandable=\"true\"\n >\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>\n </ic-side-navigation>`,\n });\n await waitForNavGroupLoad();\n\n // test disconnected callback\n page.setContent(\"\");\n });\n\n it(\"should test top nav resize handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n await page.rootInstance.topNavResizedHandler({\n detail: { size: DEVICE_SIZES.S },\n });\n await page.waitForChanges();\n expect(page.rootInstance.deviceSize).toBe(DEVICE_SIZES.S);\n expect(page.rootInstance.inTopNavSideMenu).toBe(true);\n });\n\n it(\"should test side nav expand handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n await page.rootInstance.sideNavExpandHandler();\n await page.waitForChanges();\n await waitForNavGroupLoad();\n const style = page.root.shadowRoot\n .querySelector(\".grouped-links-wrapper\")\n .getAttribute(\"style\");\n expect(style).toBe(\"--navigation-child-items-height: auto;\");\n });\n\n it(\"should test setting nav item tab index\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group\n label=\"Navigation group\"\n >\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n let navItemLink = page.root\n .querySelector(\"ic-navigation-item\")\n .shadowRoot.querySelector(\"a\");\n expect(navItemLink.tabIndex).toBe(-1);\n\n await page.rootInstance.setGroupedNavItemTabIndex(\"0\");\n await page.waitForChanges();\n navItemLink = page.root\n .querySelector(\"ic-navigation-item\")\n .shadowRoot.querySelector(\"a\");\n\n expect(navItemLink.tabIndex).toBe(0);\n });\n\n it(\"should call other methods \", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n await page.root.setFocus();\n });\n\n // NOTE: This must go last as mocks getCurrentDeviceSize function, which will apply to all subsequent tests\n it(\"should test inside top navigation\", async () => {\n const myfunc = jest.fn().mockReturnValue(DEVICE_SIZES.S);\n Object.defineProperty(helpers, \"getCurrentDeviceSize\", {\n value: myfunc,\n });\n\n const page = await newSpecPage({\n components: [TopNavigation, NavigationGroup, NavigationItem],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n >\n <ic-navigation-group\n slot=\"navigation\"\n label=\"Navigation group\"\n expandable=\"true\"\n >\n <ic-navigation-item label=\"Navigation 1\" href=\"/\"></ic-navigation-item>\n </ic-navigation-group>\n </ic-top-navigation>`,\n });\n await waitForNavGroupLoad();\n\n // test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
1
+ {"version":3,"file":"ic-navigation-group.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-navigation-group/test/basic/ic-navigation-group.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { waitForNavGroupLoad } from \"../../../../testspec.setup\";\nimport { NavigationItem } from \"../../../ic-navigation-item/ic-navigation-item\";\nimport { SideNavigation } from \"../../../ic-side-navigation/ic-side-navigation\";\nimport { TopNavigation } from \"../../../ic-top-navigation/ic-top-navigation\";\nimport { DEVICE_SIZES } from \"../../../../utils/helpers\";\nimport { NavigationGroup } from \"./../../ic-navigation-group\";\nimport * as helpers from \"../../../../utils/helpers\";\nimport { waitForTimeout } from \"../../../../testspec.setup\";\n\nconst ev = {\n relatedTarget: {\n nodeName: \"IC-NAVIGATION-GROUP\",\n },\n target: {\n nodeName: \"IC-NAVIGATION-GROUP\",\n },\n};\n\nconst timeOut = 1000;\n\ndescribe(\"ic-navigation-group\", () => {\n it(\"should render with label\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n expect(page.root).toMatchSnapshot(\"renders-with-label\");\n });\n\n it(\"should test handleMouseEnter\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n page.rootInstance.mouseGate = true;\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.hideDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n\n ev.relatedTarget.nodeName = \"ANOTHER-NAME\";\n page.rootInstance.mouseGate = false;\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.mouseGate).toBe(true);\n\n jest.spyOn(document, \"addEventListener\");\n\n await page.rootInstance.handleMouseEnter(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n\n expect(document.addEventListener).toHaveBeenCalledTimes(1);\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n\n await page.rootInstance.childBlurHandler();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n\n await page.rootInstance.navItemClickHandler();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n ev.relatedTarget.nodeName = \"IC-NAVIGATION-GROUP\";\n });\n\n it(\"should test toggleExpanded\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n await page.rootInstance.toggleExpanded();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(true);\n });\n\n it(\"should test click handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.handleClick();\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n page.rootInstance.navigationType = \"top\";\n await page.rootInstance.handleClick({ detail: { something: \"set\" } });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test top nav key down handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleTopNavKeydown({ key: \"Escape\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n await page.rootInstance.handleTopNavKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test handleBlur function\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"andAway\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"closerEachDay\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n\n await waitForNavGroupLoad();\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleBlur(ev);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n });\n\n it(\"should test handleMouseLeave function\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n <ic-navigation-item href=\"/\" label=\"andAway\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n ev.target.nodeName = \"IC-NOT-NAV-GROUP\";\n\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(600);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n // check other branch of 'if'\n ev.relatedTarget.nodeName = \"IC-NOT-NAV-GROUP\";\n await page.rootInstance.showDropdown();\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n // check if null value called\n await page.rootInstance.handleMouseLeave(ev);\n await waitForTimeout(timeOut);\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(false);\n ev.relatedTarget.nodeName = \"IC-NAVIGATION-GROUP\";\n ev.target.nodeName = \"IC-NAVIGATION-GROUP\";\n });\n\n it(\"should test key down handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group label=\"Group label\">\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n expect(page.rootInstance.expanded).toBe(true);\n await page.rootInstance.handleKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.expanded).toBe(false);\n\n page.rootInstance.navigationType = \"side\";\n await page.rootInstance.handleKeydown({\n key: \" \",\n preventDefault: (): void => null,\n });\n await page.waitForChanges();\n await waitForTimeout(600);\n expect(page.rootInstance.expanded).toBe(true);\n\n expect(page.rootInstance.dropdownOpen).toBe(false);\n page.rootInstance.navigationType = \"top\";\n await page.waitForChanges();\n await page.rootInstance.handleKeydown({ key: \"Enter\" });\n await page.waitForChanges();\n expect(page.rootInstance.dropdownOpen).toBe(true);\n });\n\n it(\"should test theme change\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n expect(page.rootInstance.focusStyle).toBe(\"dark\");\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n expect(page.rootInstance.focusStyle).toBe(\"light\");\n });\n\n it(\"should test inside side navigation\", async () => {\n const page = await newSpecPage({\n components: [SideNavigation, NavigationGroup, NavigationItem],\n html: `<ic-side-navigation version=\"v0.0.0\" app-title=\"ACME\" status=\"BETA\" collapsed-icon-labels=\"true\">\n <ic-navigation-group\n slot=\"primary-navigation\"\n label=\"Second navigation group\"\n expandable=\"true\"\n >\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>\n </ic-side-navigation>`,\n });\n await waitForNavGroupLoad();\n\n // test disconnected callback\n page.setContent(\"\");\n });\n\n it(\"should test top nav resize handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n await page.rootInstance.topNavResizedHandler({\n detail: { size: DEVICE_SIZES.S },\n });\n await page.waitForChanges();\n expect(page.rootInstance.deviceSize).toBe(DEVICE_SIZES.S);\n expect(page.rootInstance.inTopNavSideMenu).toBe(true);\n });\n\n it(\"should test side nav expand handler\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n const eventSpy = jest.fn();\n page.win.addEventListener(\"waitForNavGroupLoad\", eventSpy);\n await page.waitForChanges();\n await waitForNavGroupLoad();\n const style = page.root.shadowRoot\n .querySelector(\".grouped-links-wrapper\")\n .getAttribute(\"style\");\n expect(style).toBe(\"--navigation-child-items-height: 0px;\");\n });\n\n it(\"should test setting nav item tab index\", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup, NavigationItem],\n html: `<ic-navigation-group\n label=\"Navigation group\"\n >\n <ic-navigation-item href=\"/\" label=\"Home\"></ic-navigation-item>\n </ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n\n let navItemLink = page.root\n .querySelector(\"ic-navigation-item\")\n .shadowRoot.querySelector(\"a\");\n expect(navItemLink.tabIndex).toBe(-1);\n\n await page.rootInstance.setGroupedNavItemTabIndex(\"0\");\n await page.waitForChanges();\n navItemLink = page.root\n .querySelector(\"ic-navigation-item\")\n .shadowRoot.querySelector(\"a\");\n\n expect(navItemLink.tabIndex).toBe(0);\n });\n\n it(\"should call other methods \", async () => {\n const page = await newSpecPage({\n components: [NavigationGroup],\n html: `<ic-navigation-group label=\"Group label\"></ic-navigation-group>`,\n });\n await waitForNavGroupLoad();\n await page.root.setFocus();\n });\n\n // NOTE: This must go last as mocks getCurrentDeviceSize function, which will apply to all subsequent tests\n it(\"should test inside top navigation\", async () => {\n const myfunc = jest.fn().mockReturnValue(DEVICE_SIZES.S);\n Object.defineProperty(helpers, \"getCurrentDeviceSize\", {\n value: myfunc,\n });\n\n const page = await newSpecPage({\n components: [TopNavigation, NavigationGroup, NavigationItem],\n html: `<ic-top-navigation\n app-title=\"ApplicationName\"\n >\n <ic-navigation-group\n slot=\"navigation\"\n label=\"Navigation group\"\n expandable=\"true\"\n >\n <ic-navigation-item label=\"Navigation 1\" href=\"/\"></ic-navigation-item>\n </ic-navigation-group>\n </ic-top-navigation>`,\n });\n await waitForNavGroupLoad();\n\n // test disconnected callback\n page.setContent(\"\");\n });\n});\n"]}
@@ -781,6 +781,8 @@ svg {
781
781
  .link
782
782
  ic-typography {
783
783
  opacity: 1;
784
+ min-width: -moz-min-content;
785
+ min-width: min-content;
784
786
  }
785
787
 
786
788
  :host(.navigation-item-side-nav-collapsed) svg,
@@ -864,9 +866,10 @@ svg {
864
866
  .navigation-item-side-nav-slotted-text {
865
867
  opacity: var(--navigation-item-label-opacity);
866
868
  transition: opacity var(--ic-easing-transition-slow);
867
- white-space: nowrap;
869
+ white-space: wrap;
868
870
  text-overflow: ellipsis;
869
871
  overflow: hidden;
872
+ min-width: 256px;
870
873
  }
871
874
 
872
875
  :host(.navigation-item-side-nav.navigation-item-selected) .link,
@@ -10,13 +10,12 @@ export class NavigationItem {
10
10
  this.isInitialRender = true;
11
11
  this.displayDefaultNavigationItem = (href, hreflang, target, rel, referrerpolicy, download, label) => {
12
12
  const variant = this.isTopNavChild || this.inTopNavSideMenu ? "body" : "label";
13
- const tooltipId = "ic-tooltip-navigation-item";
14
13
  const ChevronIconComponent = this.expandable && (h("div", { class: { svg: true }, innerHTML: chevronIcon }));
15
14
  const IconComponent = this.el.querySelector('[slot="icon"]') && (h("div", { class: "icon" }, " ", h("slot", { name: "icon" }), " "));
16
15
  if (href !== "") {
17
- return (h("a", { href: href, target: target, rel: rel, hreflang: hreflang, referrerPolicy: referrerpolicy, download: download !== false ? download : null, class: "link", ref: (el) => (this.itemEl = el), part: "link", "aria-labelledby": tooltipId }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent, target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew }))));
16
+ return (h("a", { href: href, target: target, rel: rel, hreflang: hreflang, referrerPolicy: referrerpolicy, download: download !== false ? download : null, class: "link", ref: (el) => (this.itemEl = el), part: "link" }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent, target === "_blank" && (h("span", { class: "open-in-new-icon", innerHTML: OpenInNew }))));
18
17
  }
19
- return (h("div", { tabindex: "0", class: "link", ref: (el) => (this.itemEl = el), "aria-labelledby": tooltipId }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent));
18
+ return (h("div", { tabindex: "0", class: "link", ref: (el) => (this.itemEl = el) }, IconComponent, h("ic-typography", { variant: variant }, label), ChevronIconComponent));
20
19
  };
21
20
  this.topNavResizedHandler = (ev) => {
22
21
  const newSize = ev.detail.size;
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-item.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-item/ic-navigation-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getParentElementType,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationItem {\n private navigationSlot: HTMLElement;\n private isInitialRender: boolean = true;\n private itemEl: HTMLElement;\n\n @Element() el: HTMLIcNavigationItemElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle = getThemeForegroundColor();\n @State() inTopNavSideMenu: boolean = false;\n @State() isSideNavMobile: boolean = false;\n @State() isTopNavChild: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n @State() sideNavExpanded: boolean = false;\n\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel: boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip: boolean = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href: string = \"\";\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label: string;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected: boolean = false;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() navItemClicked: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentWillLoad(): void {\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n\n if (\n getParentElementType(this.el) === \"IC-NAVIGATION-GROUP\" &&\n this.navigationType === \"top\"\n ) {\n this.isTopNavChild = true;\n }\n\n this.deviceSize = getCurrentDeviceSize();\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel = this.navigationSlot.textContent.trim();\n }\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.itemEl) {\n this.itemEl.focus();\n }\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n hreflang: string,\n target: string,\n rel: string,\n referrerpolicy: ReferrerPolicy,\n download: string | boolean,\n label: string\n ): HTMLElement => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const tooltipId = \"ic-tooltip-navigation-item\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n {\" \"}\n <slot name=\"icon\"></slot>{\" \"}\n </div>\n );\n\n if (href !== \"\") {\n return (\n <a\n href={href}\n target={target}\n rel={rel}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n download={download !== false ? download : null}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n aria-labelledby={tooltipId}\n >\n {IconComponent}\n\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n );\n }\n\n return (\n <div\n tabindex=\"0\"\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n aria-labelledby={tooltipId}\n >\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n </div>\n );\n };\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\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\n private sideNavExpandHandler = (ev: CustomEvent): void => {\n const { sideNavExpanded, sideNavMobile } = ev.detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n };\n\n private handleBlur = (ev: FocusEvent) => {\n if (ev.relatedTarget !== null) {\n const target = ev.relatedTarget as HTMLElement;\n if (target.tagName === \"IC-NAVIGATION-ITEM\") {\n return;\n }\n }\n this.childBlur.emit();\n };\n\n private handleClick = () => {\n this.navItemClicked.emit();\n };\n\n render() {\n const {\n href,\n hreflang,\n target,\n rel,\n referrerpolicy,\n download,\n label,\n inTopNavSideMenu,\n isTopNavChild,\n selected,\n navigationSlot,\n } = this;\n\n return (\n <Host\n class={{\n [\"navigation-item\"]: true,\n [\"navigation-item-top-nav\"]:\n !inTopNavSideMenu && this.navigationType === \"top\",\n [\"navigation-item-top-nav-child-selected\"]:\n isTopNavChild && !inTopNavSideMenu && selected,\n [this.focusStyle]:\n (!inTopNavSideMenu && !isTopNavChild) ||\n (this.navigationType === \"side\" && isTopNavChild),\n [\"navigation-item-selected\"]: !isTopNavChild && selected,\n [\"navigation-item-side-menu\"]: inTopNavSideMenu,\n [\"navigation-item-side-menu-selected\"]: inTopNavSideMenu && selected,\n [\"navigation-item-top-nav-child\"]: isTopNavChild && !inTopNavSideMenu,\n [\"navigation-item-page-header\"]:\n this.navigationType === \"page-header\",\n [\"with-transition\"]: !this.isInitialRender,\n [\"navigation-item-side-nav\"]: this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed-with-label\"]:\n !this.sideNavExpanded &&\n this.navigationType === \"side\" &&\n this.collapsedIconLabel &&\n !this.isSideNavMobile,\n [\"expandable\"]: this.expandable,\n }}\n onBlur={isTopNavChild && !inTopNavSideMenu ? this.handleBlur : null}\n onClick={this.handleClick}\n aria-current={selected ? \"page\" : null}\n role=\"listitem\"\n >\n {/* Tooltip enabled by applying navigation-item-side-nav-collapsed class to host */}\n <ic-tooltip\n label={label || navigationSlot.textContent}\n target=\"navigation-item\"\n placement=\"right\"\n class={{\n [\"tooltip-navigation-item\"]: true,\n [\"tooltip-navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"tooltip-long-label-navigation-item-side-nav-expanded\"]:\n this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n }}\n >\n {navigationSlot ? (\n <slot name=\"navigation-item\"></slot>\n ) : (\n this.displayDefaultNavigationItem(\n href,\n hreflang,\n target,\n rel,\n referrerpolicy,\n download,\n label\n )\n )}\n </ic-tooltip>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-navigation-item.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-item/ic-navigation-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Listen,\n Method,\n h,\n Host,\n Prop,\n State,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getParentElementType,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n\nimport OpenInNew from \"../../assets/OpenInNew.svg\";\n\n/**\n * @part link - The `<a>` within ic-navigation-item\n */\n\n@Component({\n tag: \"ic-navigation-item\",\n styleUrl: \"ic-navigation-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationItem {\n private navigationSlot: HTMLElement;\n private isInitialRender: boolean = true;\n private itemEl: HTMLElement;\n\n @Element() el: HTMLIcNavigationItemElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() focusStyle = getThemeForegroundColor();\n @State() inTopNavSideMenu: boolean = false;\n @State() isSideNavMobile: boolean = false;\n @State() isTopNavChild: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n @State() sideNavExpanded: boolean = false;\n\n /**\n * @internal If `true`, the icon and label will be displayed when side navigation is collapsed.\n */\n @Prop() collapsedIconLabel: boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be displayed within a tooltip.\n */\n @Prop() displayNavigationTooltip: boolean = false;\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * @internal If `true`, the navigation item will be expandable.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The destination of the navigation item.\n */\n @Prop() href: string = \"\";\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label of the navigation item.\n */\n @Prop() label: string;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * If `true`, the navigation item will be set in a selected state.\n */\n @Prop() selected: boolean = false;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * @internal - Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal - Emitted when navigation item clicked.\n */\n @Event() navItemClicked: EventEmitter<void>;\n\n disconnectedCallback(): void {\n if (this.navigationType === \"side\") {\n this.parentEl.removeEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.removeEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n }\n\n componentWillLoad(): void {\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n\n if (this.navigationType === \"side\") {\n this.parentEl.addEventListener(\n \"sideNavExpanded\",\n this.sideNavExpandHandler\n );\n } else if (this.navigationType === \"top\") {\n this.parentEl.addEventListener(\n \"topNavResized\",\n this.topNavResizedHandler\n );\n }\n\n if (\n getParentElementType(this.el) === \"IC-NAVIGATION-GROUP\" &&\n this.navigationType === \"top\"\n ) {\n this.isTopNavChild = true;\n }\n\n this.deviceSize = getCurrentDeviceSize();\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\n this.navigationSlot = this.el.querySelector('[slot=\"navigation-item\"]');\n if (this.navigationSlot) {\n this.navigationSlot.ariaLabel = this.navigationSlot.textContent.trim();\n }\n }\n\n componentDidUpdate(): void {\n this.isInitialRender = false;\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.focusStyle = theme.mode;\n }\n\n /**\n * Sets focus on the nav item.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.itemEl) {\n this.itemEl.focus();\n }\n }\n\n private displayDefaultNavigationItem = (\n href: string,\n hreflang: string,\n target: string,\n rel: string,\n referrerpolicy: ReferrerPolicy,\n download: string | boolean,\n label: string\n ): HTMLElement => {\n const variant =\n this.isTopNavChild || this.inTopNavSideMenu ? \"body\" : \"label\";\n const ChevronIconComponent = this.expandable && (\n <div class={{ svg: true }} innerHTML={chevronIcon}></div>\n );\n const IconComponent = this.el.querySelector('[slot=\"icon\"]') && (\n <div class=\"icon\">\n {\" \"}\n <slot name=\"icon\"></slot>{\" \"}\n </div>\n );\n\n if (href !== \"\") {\n return (\n <a\n href={href}\n target={target}\n rel={rel}\n hreflang={hreflang}\n referrerPolicy={referrerpolicy}\n download={download !== false ? download : null}\n class=\"link\"\n ref={(el) => (this.itemEl = el)}\n part=\"link\"\n >\n {IconComponent}\n\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n {target === \"_blank\" && (\n <span class=\"open-in-new-icon\" innerHTML={OpenInNew} />\n )}\n </a>\n );\n }\n\n return (\n <div tabindex=\"0\" class=\"link\" ref={(el) => (this.itemEl = el)}>\n {IconComponent}\n <ic-typography variant={variant}>{label}</ic-typography>\n {ChevronIconComponent}\n </div>\n );\n };\n\n private topNavResizedHandler = (ev: CustomEvent): void => {\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\n private sideNavExpandHandler = (ev: CustomEvent): void => {\n const { sideNavExpanded, sideNavMobile } = ev.detail;\n this.sideNavExpanded = sideNavExpanded;\n this.isSideNavMobile = sideNavMobile;\n };\n\n private handleBlur = (ev: FocusEvent) => {\n if (ev.relatedTarget !== null) {\n const target = ev.relatedTarget as HTMLElement;\n if (target.tagName === \"IC-NAVIGATION-ITEM\") {\n return;\n }\n }\n this.childBlur.emit();\n };\n\n private handleClick = () => {\n this.navItemClicked.emit();\n };\n\n render() {\n const {\n href,\n hreflang,\n target,\n rel,\n referrerpolicy,\n download,\n label,\n inTopNavSideMenu,\n isTopNavChild,\n selected,\n navigationSlot,\n } = this;\n\n return (\n <Host\n class={{\n [\"navigation-item\"]: true,\n [\"navigation-item-top-nav\"]:\n !inTopNavSideMenu && this.navigationType === \"top\",\n [\"navigation-item-top-nav-child-selected\"]:\n isTopNavChild && !inTopNavSideMenu && selected,\n [this.focusStyle]:\n (!inTopNavSideMenu && !isTopNavChild) ||\n (this.navigationType === \"side\" && isTopNavChild),\n [\"navigation-item-selected\"]: !isTopNavChild && selected,\n [\"navigation-item-side-menu\"]: inTopNavSideMenu,\n [\"navigation-item-side-menu-selected\"]: inTopNavSideMenu && selected,\n [\"navigation-item-top-nav-child\"]: isTopNavChild && !inTopNavSideMenu,\n [\"navigation-item-page-header\"]:\n this.navigationType === \"page-header\",\n [\"with-transition\"]: !this.isInitialRender,\n [\"navigation-item-side-nav\"]: this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"navigation-item-side-nav-collapsed-with-label\"]:\n !this.sideNavExpanded &&\n this.navigationType === \"side\" &&\n this.collapsedIconLabel &&\n !this.isSideNavMobile,\n [\"expandable\"]: this.expandable,\n }}\n onBlur={isTopNavChild && !inTopNavSideMenu ? this.handleBlur : null}\n onClick={this.handleClick}\n aria-current={selected ? \"page\" : null}\n role=\"listitem\"\n >\n {/* Tooltip enabled by applying navigation-item-side-nav-collapsed class to host */}\n <ic-tooltip\n label={label || navigationSlot.textContent}\n target=\"navigation-item\"\n placement=\"right\"\n class={{\n [\"tooltip-navigation-item\"]: true,\n [\"tooltip-navigation-item-side-nav-collapsed\"]:\n (!this.sideNavExpanded || this.displayNavigationTooltip) &&\n this.navigationType === \"side\",\n [\"tooltip-long-label-navigation-item-side-nav-expanded\"]:\n this.el.hasAttribute(\"[display-navigation-tooltip = 'true']\"),\n }}\n >\n {navigationSlot ? (\n <slot name=\"navigation-item\"></slot>\n ) : (\n this.displayDefaultNavigationItem(\n href,\n hreflang,\n target,\n rel,\n referrerpolicy,\n download,\n label\n )\n )}\n </ic-tooltip>\n </Host>\n );\n }\n}\n"]}
@@ -468,6 +468,18 @@ video {
468
468
  display: none;
469
469
  }
470
470
 
471
+ :host(.on-dialog) {
472
+ inset: auto !important;
473
+ }
474
+
475
+ :host(.on-dialog-fix-translate) {
476
+ transform: translate(0, var(--ic-space-xs)) !important;
477
+ }
478
+
479
+ :host(.on-dialog-translate-y) {
480
+ transform: translate(0, calc(-1 * var(--translate-y))) !important;
481
+ }
482
+
471
483
  .menu {
472
484
  border: var(--ic-border-default);
473
485
  border-radius: var(--ic-border-radius);
@@ -4,6 +4,7 @@ import { createPopper } from "@popperjs/core";
4
4
  export class PopoverMenu {
5
5
  constructor() {
6
6
  this.ARIA_LABEL = "aria-label";
7
+ this.firstRender = true;
7
8
  this.popoverMenuEls = [];
8
9
  this.setButtonFocus = () => {
9
10
  var _a;
@@ -97,6 +98,11 @@ export class PopoverMenu {
97
98
  setTimeout(this.setButtonFocus, 50);
98
99
  }
99
100
  }
101
+ disconnectedCallback() {
102
+ if (this.popperInstance !== undefined) {
103
+ this.popperInstance.destroy();
104
+ }
105
+ }
100
106
  componentDidLoad() {
101
107
  const slotWrapper = this.host.shadowRoot.querySelector("ul.button");
102
108
  const popoverMenuElements = getSlotElements(slotWrapper);
@@ -112,18 +118,64 @@ export class PopoverMenu {
112
118
  this.anchorEl = this.findAnchorEl(this.anchor);
113
119
  }
114
120
  componentDidRender() {
115
- if (this.open) {
116
- createPopper(this.anchorEl, this.host, {
117
- placement: "bottom-start",
118
- modifiers: [
119
- {
120
- name: "offset",
121
- options: {
122
- offset: [0, 4],
121
+ if (this.firstRender && this.open) {
122
+ this.firstRender = false;
123
+ let adjust = false;
124
+ const dialogEl = this.host.closest("ic-dialog");
125
+ const onDialog = dialogEl !== null;
126
+ if (onDialog) {
127
+ this.host.classList.add("on-dialog");
128
+ const menu = this.host.getBoundingClientRect();
129
+ const dialogBottom = dialogEl.getBoundingClientRect().bottom;
130
+ const anchorHeight = this.anchorEl.getBoundingClientRect().height;
131
+ let offset;
132
+ if (dialogEl.getAttribute("data-overflow") === "false") {
133
+ if (dialogBottom - menu.top < menu.height) {
134
+ adjust = true;
135
+ offset = menu.height + anchorHeight + 8;
136
+ }
137
+ }
138
+ else {
139
+ adjust = true;
140
+ // 100 added here as that's the offset when data-overflow is true
141
+ offset = menu.height + anchorHeight + 8 + 100;
142
+ }
143
+ if (adjust === false) {
144
+ this.host.classList.add("on-dialog-fix-translate");
145
+ }
146
+ else {
147
+ this.host.style.setProperty("--translate-y", `${offset}px`, "important");
148
+ this.host.classList.add("on-dialog-translate-y");
149
+ }
150
+ }
151
+ if (adjust) {
152
+ this.popperInstance = createPopper(this.anchorEl, this.host, {
153
+ placement: "top",
154
+ });
155
+ }
156
+ else {
157
+ this.popperInstance = createPopper(this.anchorEl, this.host, {
158
+ placement: "bottom-start",
159
+ modifiers: [
160
+ {
161
+ name: "offset",
162
+ options: {
163
+ offset: [0, 4],
164
+ },
123
165
  },
124
- },
125
- ],
126
- });
166
+ {
167
+ name: "flip",
168
+ options: {
169
+ fallbackPlacements: ["top-start", "top-end", "bottom-end"],
170
+ rootBoundary: "viewport",
171
+ },
172
+ },
173
+ ],
174
+ });
175
+ }
176
+ }
177
+ else if (this.open) {
178
+ this.popperInstance.update();
127
179
  }
128
180
  }
129
181
  handleMenuItemClick(ev) {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n} from \"@stencil/core\";\nimport { getSlotElements } from \"../../utils/helpers\";\nimport { createPopper } from \"@popperjs/core\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton: HTMLIcMenuItemElement;\n private currentFocus: number;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n\n @Element() host: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel: number = 1;\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = this.submenuId !== undefined ? 1 : 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.host.shadowRoot.querySelector(\"ul.button\");\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n\n if (\n this.submenuId === undefined &&\n this.host.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.open) {\n createPopper(this.anchorEl, this.host, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n ],\n });\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent): void {\n if (!ev.detail.hasSubMenu && ev.detail.label !== \"Back\") {\n this.closeMenu();\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.host;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.host.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, true);\n this.setButtonFocus();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, false);\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n if (this.open) {\n this.closeMenu();\n this.host.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string): HTMLElement => {\n let anchorElement: HTMLElement = null;\n if (anchor === null || anchor === undefined) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const target = ev.target as HTMLElement;\n return (\n target.id !== this.anchor &&\n target.tagName !== \"IC-MENU-ITEM\" &&\n target.tagName !== \"IC-MENU-GROUP\" &&\n target.tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n private closeMenu = () => {\n this.open = false;\n this.anchorEl?.focus();\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot.querySelector(\"ul\");\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n\n this.addMenuItems(menuGroupElements);\n }\n }\n };\n\n private getMenuAriaLabel = (): string => {\n const ariaLabel = this.host.getAttribute(this.ARIA_LABEL);\n\n if (this.submenuId !== undefined) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover.openFromChild();\n this.open = false;\n };\n\n render() {\n return (\n <Host class={{ open: this.open }}>\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n tabindex={open ? \"0\" : \"-1\"}\n >\n <div\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {this.submenuId !== undefined && (\n <div>\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </div>\n )}\n <ul\n class=\"button\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n aria-owns={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n aria-controls={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n >\n <slot></slot>\n </ul>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-popover-menu.js","sourceRoot":"","sources":["../../../src/components/ic-popover-menu/ic-popover-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n h,\n Prop,\n Listen,\n Watch,\n State,\n Method,\n} from \"@stencil/core\";\nimport { getSlotElements } from \"../../utils/helpers\";\nimport { createPopper, Instance as PopperInstance } from \"@popperjs/core\";\n\n@Component({\n tag: \"ic-popover-menu\",\n styleUrl: \"ic-popover-menu.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class PopoverMenu {\n private anchorEl: HTMLElement;\n private ARIA_LABEL: string = \"aria-label\";\n private backButton: HTMLIcMenuItemElement;\n private currentFocus: number;\n private firstRender: boolean = true;\n private popoverMenuEls: HTMLIcMenuItemElement[] = [];\n private popperInstance: PopperInstance;\n\n @Element() host: HTMLIcPopoverMenuElement;\n\n @State() openingFromChild: boolean = false;\n @State() openingFromParent: boolean = false;\n\n /**\n * The ID of the element the popover menu will anchor itself to. This is required unless the popover is a submenu.\n */\n @Prop() anchor: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentLabel?: string;\n\n /**\n * @internal The parent popover menu of a child popover menu.\n */\n @Prop() parentPopover?: HTMLIcPopoverMenuElement;\n\n /**\n * The unique identifier for a popover submenu.\n */\n @Prop() submenuId?: string;\n\n /**\n * @internal The level of menu being displayed.\n */\n @Prop() submenuLevel: number = 1;\n\n /**\n * If `true`, the popover menu will be displayed.\n */\n @Prop({ reflect: true, mutable: true }) open: boolean = undefined;\n\n @Watch(\"open\")\n watchOpenHandler(): void {\n if (this.open) {\n if (\n this.parentPopover !== undefined &&\n !this.popoverMenuEls.some((menuItem) => menuItem.id)\n ) {\n this.popoverMenuEls.unshift(this.backButton);\n }\n\n this.currentFocus = this.submenuId !== undefined ? 1 : 0;\n // Needed so that anchorEl isn't always focused\n setTimeout(this.setButtonFocus, 50);\n }\n }\n\n disconnectedCallback(): void {\n if (this.popperInstance !== undefined) {\n this.popperInstance.destroy();\n }\n }\n\n componentDidLoad(): void {\n const slotWrapper = this.host.shadowRoot.querySelector(\"ul.button\");\n const popoverMenuElements = getSlotElements(slotWrapper);\n\n if (popoverMenuElements !== null) {\n this.addMenuItems(popoverMenuElements);\n }\n\n if (\n this.submenuId === undefined &&\n this.host.getAttribute(this.ARIA_LABEL) === null\n ) {\n console.error(\n `No aria-label specified for popover menu component - aria-label required`\n );\n }\n }\n\n componentWillRender(): void {\n this.anchorEl = this.findAnchorEl(this.anchor);\n }\n\n componentDidRender(): void {\n if (this.firstRender && this.open) {\n this.firstRender = false;\n let adjust = false;\n\n const dialogEl = this.host.closest(\"ic-dialog\");\n const onDialog = dialogEl !== null;\n\n if (onDialog) {\n this.host.classList.add(\"on-dialog\");\n const menu = this.host.getBoundingClientRect();\n const dialogBottom = dialogEl.getBoundingClientRect().bottom;\n const anchorHeight = this.anchorEl.getBoundingClientRect().height;\n let offset;\n if (dialogEl.getAttribute(\"data-overflow\") === \"false\") {\n if (dialogBottom - menu.top < menu.height) {\n adjust = true;\n offset = menu.height + anchorHeight + 8;\n }\n } else {\n adjust = true;\n // 100 added here as that's the offset when data-overflow is true\n offset = menu.height + anchorHeight + 8 + 100;\n }\n if (adjust === false) {\n this.host.classList.add(\"on-dialog-fix-translate\");\n } else {\n this.host.style.setProperty(\n \"--translate-y\",\n `${offset}px`,\n \"important\"\n );\n this.host.classList.add(\"on-dialog-translate-y\");\n }\n }\n\n if (adjust) {\n this.popperInstance = createPopper(this.anchorEl, this.host, {\n placement: \"top\",\n });\n } else {\n this.popperInstance = createPopper(this.anchorEl, this.host, {\n placement: \"bottom-start\",\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [0, 4],\n },\n },\n {\n name: \"flip\",\n options: {\n fallbackPlacements: [\"top-start\", \"top-end\", \"bottom-end\"],\n rootBoundary: \"viewport\",\n },\n },\n ],\n });\n }\n } else if (this.open) {\n this.popperInstance.update();\n }\n }\n\n @Listen(\"handleMenuItemClick\")\n handleMenuItemClick(ev: CustomEvent): void {\n if (!ev.detail.hasSubMenu && ev.detail.label !== \"Back\") {\n this.closeMenu();\n }\n }\n\n // This is listening for the event emitted when a menu item is acting as a trigger button\n @Listen(\"triggerPopoverMenuInstance\", { capture: true })\n handleSubmenuChange(ev: Event): void {\n // Finds the trigger menu item that has emitted the event\n const target = ev.target as HTMLIcMenuItemElement;\n this.open = false;\n\n // Find the popover menu that the menu item triggers (i.e. submenu-trigger-for === submenu-id).\n const childEl = document.querySelector(\n `ic-popover-menu[submenu-id=${target.submenuTriggerFor}]`\n ) as HTMLIcPopoverMenuElement;\n // Set the parent popover menu of the submenu and open the submenu\n childEl.parentPopover = this.host;\n childEl.anchor = this.anchor;\n childEl.ariaLabel = this.host.getAttribute(this.ARIA_LABEL);\n childEl.openFromParent();\n childEl.submenuLevel = this.submenuLevel + 1;\n // Set the label in the submenu using the label of the menu item that has emitted the event\n childEl.parentLabel = target.label;\n }\n\n @Listen(\"click\", { target: \"document\" })\n handleClick(ev: Event): void {\n if (this.open && this.isNotPopoverMenuEl(ev)) {\n // If menu is open and the next click on the document is not a popover El, close the popover\n this.closeMenu();\n }\n }\n\n // Manages the keyboard navigation in the popover menu\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyDown(ev: KeyboardEvent): void {\n switch (ev.key) {\n case \"ArrowDown\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, true);\n this.setButtonFocus();\n break;\n case \"ArrowUp\":\n ev.preventDefault();\n this.currentFocus = this.getNextItemToSelect(this.currentFocus, false);\n this.setButtonFocus();\n break;\n case \"Home\":\n //Sets home focus as first element, or back button\n this.currentFocus = 0;\n this.setButtonFocus();\n break;\n case \"End\":\n //Sets end focus as last element\n this.currentFocus = this.popoverMenuEls.length - 1;\n this.setButtonFocus();\n break;\n case \"Escape\":\n case \"Tab\":\n if (this.open) {\n this.closeMenu();\n this.host.blur();\n }\n break;\n }\n }\n\n /**\n * @internal Opens the menu from the child menu.\n */\n @Method()\n async openFromChild(): Promise<void> {\n this.open = true;\n this.openingFromChild = true;\n\n setTimeout(() => (this.openingFromChild = false), 1000);\n }\n\n /**\n * @internal Opens the menu from the parent menu.\n */\n @Method()\n async openFromParent(): Promise<void> {\n this.open = true;\n this.openingFromParent = true;\n\n setTimeout(() => (this.openingFromParent = false), 1000);\n }\n\n private setButtonFocus = () => {\n this.popoverMenuEls[this.currentFocus]?.focus();\n };\n\n // Checks that the popover menu has an anchor\n private findAnchorEl = (anchor: string): HTMLElement => {\n let anchorElement: HTMLElement = null;\n if (anchor === null || anchor === undefined) {\n this.submenuId === undefined &&\n console.error(\"No anchor specified for popover component\");\n } else {\n anchorElement = document.querySelector(\n anchor.indexOf(\"#\") === 0 ? anchor : \"#\" + anchor\n );\n if (anchorElement === null) {\n console.error(`Popover anchor element '${anchor}' not found`);\n }\n }\n return anchorElement;\n };\n\n private isNotPopoverMenuEl = (ev: Event) => {\n const target = ev.target as HTMLElement;\n return (\n target.id !== this.anchor &&\n target.tagName !== \"IC-MENU-ITEM\" &&\n target.tagName !== \"IC-MENU-GROUP\" &&\n target.tagName !== \"IC-POPOVER-MENU\"\n );\n };\n\n private closeMenu = () => {\n this.open = false;\n this.anchorEl?.focus();\n };\n\n private getNextItemToSelect = (\n currentItem: number,\n movingDown: boolean\n ): number => {\n const numButtons = this.popoverMenuEls.length - 1;\n\n if (currentItem < 1) {\n currentItem = 0;\n }\n\n let nextItem = movingDown ? currentItem + 1 : currentItem - 1;\n\n // Check if wrap around necessary\n if (nextItem < 0) {\n nextItem = numButtons;\n } else if (nextItem > numButtons) {\n nextItem = 0;\n }\n\n return nextItem;\n };\n\n private addMenuItems = (elements: Element[] | NodeListOf<ChildNode>) => {\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i] as HTMLIcMenuItemElement;\n if (el.tagName === \"IC-MENU-ITEM\") {\n this.popoverMenuEls.push(el);\n } else if (el.tagName === \"IC-MENU-GROUP\") {\n const groupSlotWrapper = el.shadowRoot.querySelector(\"ul\");\n const menuGroupElements = getSlotElements(groupSlotWrapper);\n\n this.addMenuItems(menuGroupElements);\n }\n }\n };\n\n private getMenuAriaLabel = (): string => {\n const ariaLabel = this.host.getAttribute(this.ARIA_LABEL);\n\n if (this.submenuId !== undefined) {\n return `${ariaLabel}, within nested level ${this.submenuLevel} ${this.parentLabel} submenu,`;\n } else {\n return ariaLabel;\n }\n };\n\n private handleBackButtonClick = (): void => {\n this.parentPopover.openFromChild();\n this.open = false;\n };\n\n render() {\n return (\n <Host class={{ open: this.open }}>\n <div\n id={\n this.parentPopover === undefined\n ? `ic-popover-submenu-${this.submenuId}`\n : \"\"\n }\n class={{\n menu: true,\n }}\n tabindex={open ? \"0\" : \"-1\"}\n >\n <div\n class={{\n \"opening-from-parent\": this.openingFromParent,\n \"opening-from-child\": this.openingFromChild,\n }}\n >\n {this.submenuId !== undefined && (\n <div>\n <ic-menu-item\n class=\"ic-popover-submenu-back-button\"\n ref={(el) => (this.backButton = el)}\n label=\"Back\"\n onClick={this.handleBackButtonClick}\n id={`ic-popover-submenu-back-button-${this.submenuLevel}`}\n >\n <svg\n slot=\"icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"submenu-back-icon\"\n >\n <path\n d=\"M20 11H7.83L13.42 5.41L12 4L4 12L12 20L13.41 18.59L7.83 13H20V11Z\"\n fill=\"currentColor\"\n />\n </svg>\n </ic-menu-item>\n <ic-typography variant=\"subtitle-small\" class=\"parent-label\">\n {this.parentLabel}\n </ic-typography>\n </div>\n )}\n <ul\n class=\"button\"\n aria-label={this.getMenuAriaLabel()}\n role=\"menu\"\n aria-owns={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n aria-controls={\n this.submenuId !== undefined\n ? `ic-popover-submenu-back-button-${this.submenuLevel}`\n : false\n }\n >\n <slot></slot>\n </ul>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -3,6 +3,7 @@ import { MenuItem } from "../../../ic-menu-item/ic-menu-item";
3
3
  import { PopoverMenu } from "../../ic-popover-menu";
4
4
  import { waitForTimeout } from "../../../../testspec.setup";
5
5
  import { MenuGroup } from "../../../ic-menu-group/ic-menu-group";
6
+ import { Dialog } from "../../../ic-dialog/ic-dialog";
6
7
  describe("ic-popover-menu", () => {
7
8
  it("should render with anchor", async () => {
8
9
  const page = await newSpecPage({
@@ -44,6 +45,19 @@ describe("ic-popover-menu", () => {
44
45
  });
45
46
  expect(page.root).toMatchSnapshot("should render a back button when submenu-id is set");
46
47
  });
48
+ it("should render on a dialog", async () => {
49
+ const page = await newSpecPage({
50
+ components: [PopoverMenu, MenuItem, Dialog],
51
+ html: `<ic-dialog>
52
+ <ic-button id="anchorEl"></ic-button>
53
+ <ic-popover-menu anchor="#anchorEl" aria-label="popover-menu" open="true">
54
+ <ic-menu-item label="Button 1"></ic-menu-item>
55
+ <ic-menu-item label="Button 2"></ic-menu-item>
56
+ </ic-popover-menu>
57
+ </ic-dialog>`,
58
+ });
59
+ expect(page.root).toMatchSnapshot();
60
+ });
47
61
  it("should set openingFromChild to true when openFromChild method is called", async () => {
48
62
  const page = await newSpecPage({
49
63
  components: [PopoverMenu, MenuItem],