@ukic/web-components 2.10.0 → 2.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (516) hide show
  1. package/dist/cjs/core.cjs.js +3 -3
  2. package/dist/cjs/core.cjs.js.map +1 -1
  3. package/dist/cjs/{helpers-3f91f63a.js → helpers-56e80cc9.js} +6 -6
  4. package/dist/cjs/{helpers-3f91f63a.js.map → helpers-56e80cc9.js.map} +1 -1
  5. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-accordion.cjs.entry.js +2 -2
  7. package/dist/cjs/ic-alert.cjs.entry.js +3 -3
  8. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js +5 -9
  10. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  11. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +2 -2
  13. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  14. package/dist/cjs/ic-button_3.cjs.entry.js +62 -33
  15. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-card.cjs.entry.js +2 -2
  17. package/dist/cjs/ic-checkbox-group.cjs.entry.js +2 -2
  18. package/dist/cjs/ic-checkbox.cjs.entry.js +2 -2
  19. package/dist/cjs/ic-chip.cjs.entry.js +2 -2
  20. package/dist/cjs/ic-classification-banner.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-data-entity.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-data-row.cjs.entry.js +2 -2
  23. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  24. package/dist/cjs/ic-divider.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-empty-state.cjs.entry.js +2 -2
  26. package/dist/cjs/ic-footer-link-group.cjs.entry.js +2 -2
  27. package/dist/cjs/ic-footer-link.cjs.entry.js +3 -3
  28. package/dist/cjs/ic-footer-link.cjs.entry.js.map +1 -1
  29. package/dist/cjs/ic-footer.cjs.entry.js +3 -3
  30. package/dist/cjs/ic-footer.cjs.entry.js.map +1 -1
  31. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  32. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  35. package/dist/cjs/ic-input-label_2.cjs.entry.js +2 -2
  36. package/dist/cjs/ic-link.cjs.entry.js +2 -2
  37. package/dist/cjs/ic-menu-group.cjs.entry.js +2 -2
  38. package/dist/cjs/ic-menu-item.cjs.entry.js +3 -3
  39. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-navigation-button.cjs.entry.js +2 -2
  41. package/dist/cjs/ic-navigation-group.cjs.entry.js +6 -9
  42. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  43. package/dist/cjs/ic-navigation-item.cjs.entry.js +2 -2
  44. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-menu.cjs.entry.js +2 -2
  46. package/dist/cjs/ic-page-header.cjs.entry.js +3 -3
  47. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  48. package/dist/cjs/ic-pagination-item.cjs.entry.js +2 -2
  49. package/dist/cjs/ic-pagination.cjs.entry.js +2 -2
  50. package/dist/cjs/ic-popover-menu.cjs.entry.js +11 -5
  51. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/ic-radio-group.cjs.entry.js +2 -2
  53. package/dist/cjs/ic-radio-option.cjs.entry.js +2 -2
  54. package/dist/cjs/ic-search-bar.cjs.entry.js +2 -2
  55. package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-select.cjs.entry.js +2 -2
  57. package/dist/cjs/ic-side-navigation.cjs.entry.js +39 -62
  58. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  59. package/dist/cjs/ic-skeleton.cjs.entry.js +1 -1
  60. package/dist/cjs/ic-status-tag.cjs.entry.js +4 -3
  61. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  62. package/dist/cjs/ic-step.cjs.entry.js +2 -2
  63. package/dist/cjs/ic-stepper.cjs.entry.js +2 -2
  64. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  65. package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
  66. package/dist/cjs/ic-tab-group.cjs.entry.js +2 -2
  67. package/dist/cjs/ic-tab-panel.cjs.entry.js +2 -2
  68. package/dist/cjs/ic-tab.cjs.entry.js +2 -2
  69. package/dist/cjs/ic-text-field.cjs.entry.js +49 -12
  70. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  71. package/dist/cjs/ic-theme.cjs.entry.js +2 -2
  72. package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
  73. package/dist/cjs/ic-toast.cjs.entry.js +13 -16
  74. package/dist/cjs/ic-toast.cjs.entry.js.map +1 -1
  75. package/dist/cjs/ic-toggle-button.cjs.entry.js +69 -0
  76. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -0
  77. package/dist/cjs/ic-top-navigation.cjs.entry.js +4 -3
  78. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  79. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  80. package/dist/cjs/{index-152d1fe5.js → index-f982899d.js} +6 -12
  81. package/dist/cjs/index-f982899d.js.map +1 -0
  82. package/dist/cjs/loader.cjs.js +2 -2
  83. package/dist/collection/collection-manifest.json +3 -2
  84. package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -1
  85. package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -1
  86. package/dist/collection/components/ic-alert/ic-alert.css +0 -1
  87. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +3 -7
  88. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  89. package/dist/collection/components/ic-badge/ic-badge.js.map +1 -1
  90. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.js.map +1 -1
  91. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  92. package/dist/collection/components/ic-button/ic-button.css +11 -1
  93. package/dist/collection/components/ic-button/ic-button.js +28 -3
  94. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  95. package/dist/collection/components/ic-card/ic-card.js.map +1 -1
  96. package/dist/collection/components/ic-checkbox/ic-checkbox.js.map +1 -1
  97. package/dist/collection/components/ic-checkbox-group/ic-checkbox-group.js.map +1 -1
  98. package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
  99. package/dist/collection/components/ic-data-entity/ic-data-entity.js.map +1 -1
  100. package/dist/collection/components/ic-data-row/ic-data-row.js.map +1 -1
  101. package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
  102. package/dist/collection/components/ic-footer/ic-footer.js +1 -1
  103. package/dist/collection/components/ic-footer/ic-footer.js.map +1 -1
  104. package/dist/collection/components/ic-footer-link/ic-footer-link.css +2 -3
  105. package/dist/collection/components/ic-footer-link/ic-footer-link.js.map +1 -1
  106. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  107. package/dist/collection/components/ic-hero/ic-hero.js.map +1 -1
  108. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  109. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  110. package/dist/collection/components/ic-loading-indicator/ic-loading-indicator.js.map +1 -1
  111. package/dist/collection/components/ic-menu/ic-menu.js.map +1 -1
  112. package/dist/collection/components/ic-menu-item/ic-menu-item.css +16 -16
  113. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  114. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  115. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +4 -7
  116. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  117. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +28 -7
  118. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  119. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  120. package/dist/collection/components/ic-page-header/ic-page-header.css +1 -1
  121. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  122. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  123. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js +8 -1
  124. package/dist/collection/components/ic-pagination/test/a11y/ic-pagination.test.a11y.js.map +1 -1
  125. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +9 -3
  126. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  127. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js +3 -0
  128. package/dist/collection/components/ic-popover-menu/test/basic/ic-popover-menu.spec.js.map +1 -1
  129. package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
  130. package/dist/collection/components/ic-radio-option/ic-radio-option.js.map +1 -1
  131. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  132. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js +8 -1
  133. package/dist/collection/components/ic-search-bar/test/a11y/ic-search-bar.test.a11y.js.map +1 -1
  134. package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
  135. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  136. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +41 -61
  137. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  138. package/dist/collection/components/ic-skeleton/ic-skeleton.js.map +1 -1
  139. package/dist/collection/components/ic-status-tag/ic-status-tag.css +9 -0
  140. package/dist/collection/components/ic-status-tag/ic-status-tag.js +1 -0
  141. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  142. package/dist/collection/components/ic-step/ic-step.js.map +1 -1
  143. package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
  144. package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
  145. package/dist/collection/components/ic-switch/ic-switch.js.map +1 -1
  146. package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
  147. package/dist/collection/components/ic-tab-context/ic-tab-context.js.map +1 -1
  148. package/dist/collection/components/ic-tab-panel/ic-tab-panel.js.map +1 -1
  149. package/dist/collection/components/ic-text-field/ic-text-field.js +87 -11
  150. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  151. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js +20 -0
  152. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.input.spec.js.map +1 -1
  153. package/dist/collection/components/ic-theme/ic-theme.js.map +1 -1
  154. package/dist/collection/components/ic-toast/ic-toast.js +11 -14
  155. package/dist/collection/components/ic-toast/ic-toast.js.map +1 -1
  156. package/dist/collection/components/ic-toast-region/ic-toast-region.js.map +1 -1
  157. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +555 -0
  158. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +291 -0
  159. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -0
  160. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js +116 -0
  161. package/dist/collection/components/ic-toggle-button/test/basic/ic-toggle-button.spec.js.map +1 -0
  162. package/dist/collection/components/ic-tooltip/ic-tooltip.js +32 -27
  163. package/dist/collection/components/ic-tooltip/ic-tooltip.js.map +1 -1
  164. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js +11 -0
  165. package/dist/collection/components/ic-tooltip/test/basic/ic-tooltip.spec.js.map +1 -1
  166. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +2 -1
  167. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  168. package/dist/collection/components/ic-typography/ic-typography.js.map +1 -1
  169. package/dist/collection/utils/helpers.js +5 -5
  170. package/dist/collection/utils/helpers.js.map +1 -1
  171. package/dist/components/helpers.js +5 -5
  172. package/dist/components/ic-alert2.js +1 -1
  173. package/dist/components/ic-alert2.js.map +1 -1
  174. package/dist/components/ic-back-to-top.js +3 -7
  175. package/dist/components/ic-back-to-top.js.map +1 -1
  176. package/dist/components/ic-button2.js +28 -4
  177. package/dist/components/ic-button2.js.map +1 -1
  178. package/dist/components/ic-footer-link.js +1 -1
  179. package/dist/components/ic-footer-link.js.map +1 -1
  180. package/dist/components/ic-footer.js +1 -1
  181. package/dist/components/ic-footer.js.map +1 -1
  182. package/dist/components/ic-menu-item2.js +1 -1
  183. package/dist/components/ic-menu-item2.js.map +1 -1
  184. package/dist/components/ic-menu2.js.map +1 -1
  185. package/dist/components/ic-navigation-group.js +4 -7
  186. package/dist/components/ic-navigation-group.js.map +1 -1
  187. package/dist/components/ic-navigation-item.js.map +1 -1
  188. package/dist/components/ic-page-header.js +1 -1
  189. package/dist/components/ic-page-header.js.map +1 -1
  190. package/dist/components/ic-popover-menu.js +9 -3
  191. package/dist/components/ic-popover-menu.js.map +1 -1
  192. package/dist/components/ic-side-navigation.js +40 -61
  193. package/dist/components/ic-side-navigation.js.map +1 -1
  194. package/dist/components/ic-status-tag.js +2 -1
  195. package/dist/components/ic-status-tag.js.map +1 -1
  196. package/dist/components/ic-text-field2.js +52 -10
  197. package/dist/components/ic-text-field2.js.map +1 -1
  198. package/dist/components/ic-toast.js +11 -14
  199. package/dist/components/ic-toast.js.map +1 -1
  200. package/dist/components/ic-toggle-button.d.ts +11 -0
  201. package/dist/components/ic-toggle-button.js +117 -0
  202. package/dist/components/ic-toggle-button.js.map +1 -0
  203. package/dist/components/ic-tooltip2.js +32 -27
  204. package/dist/components/ic-tooltip2.js.map +1 -1
  205. package/dist/components/ic-top-navigation.js +2 -1
  206. package/dist/components/ic-top-navigation.js.map +1 -1
  207. package/dist/core/core.esm.js +1 -1
  208. package/dist/core/core.esm.js.map +1 -1
  209. package/dist/core/{p-daebb58a.entry.js → p-003c44bd.entry.js} +2 -2
  210. package/dist/core/{p-b6a575c3.entry.js → p-049bf5e3.entry.js} +2 -2
  211. package/dist/core/p-0713230f.entry.js +2 -0
  212. package/dist/core/p-0713230f.entry.js.map +1 -0
  213. package/dist/core/{p-ea17e371.entry.js → p-0a0b748c.entry.js} +2 -2
  214. package/dist/core/{p-d18450f9.entry.js → p-0d2eb765.entry.js} +2 -2
  215. package/dist/core/{p-6d3f9501.entry.js → p-0ee13da0.entry.js} +2 -2
  216. package/dist/core/{p-15466b42.entry.js → p-1145e33c.entry.js} +2 -2
  217. package/dist/core/{p-056f8a67.entry.js → p-171e25c9.entry.js} +2 -2
  218. package/dist/core/{p-c2452388.entry.js → p-19c28c65.entry.js} +2 -2
  219. package/dist/core/p-19c28c65.entry.js.map +1 -0
  220. package/dist/core/{p-51f9f329.entry.js → p-1e809ecd.entry.js} +2 -2
  221. package/dist/core/p-1e809ecd.entry.js.map +1 -0
  222. package/dist/core/{p-85026377.entry.js → p-23980b58.entry.js} +2 -2
  223. package/dist/core/p-23980b58.entry.js.map +1 -0
  224. package/dist/core/{p-ad36a704.entry.js → p-26334b3a.entry.js} +2 -2
  225. package/dist/core/{p-dbb5b008.entry.js → p-29b812c0.entry.js} +2 -2
  226. package/dist/core/{p-b9736cf4.entry.js → p-2e7f22af.entry.js} +2 -2
  227. package/dist/core/{p-5f9d69ef.entry.js → p-32a480d5.entry.js} +2 -2
  228. package/dist/core/p-32a480d5.entry.js.map +1 -0
  229. package/dist/core/{p-94e88827.entry.js → p-330e1439.entry.js} +2 -2
  230. package/dist/core/p-330e1439.entry.js.map +1 -0
  231. package/dist/core/{p-aa0a9870.entry.js → p-357eaebe.entry.js} +2 -2
  232. package/dist/core/{p-9639e33f.entry.js → p-38bf02aa.entry.js} +2 -2
  233. package/dist/core/{p-b99f9e89.entry.js → p-3c752bca.entry.js} +2 -2
  234. package/dist/core/{p-3a0ef91e.entry.js → p-3cc52cbc.entry.js} +2 -2
  235. package/dist/core/{p-592c783e.entry.js → p-3ebe5fa3.entry.js} +2 -2
  236. package/dist/core/p-3ebe5fa3.entry.js.map +1 -0
  237. package/dist/core/{p-5c7e339f.entry.js → p-3f07c471.entry.js} +2 -2
  238. package/dist/core/p-3f07c471.entry.js.map +1 -0
  239. package/dist/core/{p-c770e7a2.entry.js → p-42c0e318.entry.js} +2 -2
  240. package/dist/core/{p-2b24b4bf.entry.js → p-4421203e.entry.js} +2 -2
  241. package/dist/core/{p-11736fbe.entry.js → p-4f1792a6.entry.js} +2 -2
  242. package/dist/core/{p-b39ecae2.entry.js → p-4f8b7aa3.entry.js} +2 -2
  243. package/dist/core/{p-8a83f391.entry.js → p-525323ab.entry.js} +2 -2
  244. package/dist/core/{p-e9738c74.entry.js → p-59c4bc0a.entry.js} +2 -2
  245. package/dist/core/{p-60c4604f.entry.js → p-5e6ad4a5.entry.js} +2 -2
  246. package/dist/core/{p-60c4604f.entry.js.map → p-5e6ad4a5.entry.js.map} +1 -1
  247. package/dist/core/{p-95a864bf.js → p-671b7cac.js} +1 -1
  248. package/dist/core/p-6b5e91e2.js +3 -0
  249. package/dist/core/p-6b5e91e2.js.map +1 -0
  250. package/dist/core/p-6bbe0550.entry.js +2 -0
  251. package/dist/core/p-6bbe0550.entry.js.map +1 -0
  252. package/dist/core/{p-fdb4b48f.entry.js → p-783c2ced.entry.js} +2 -2
  253. package/dist/core/{p-f2e6b9ef.entry.js → p-7b720034.entry.js} +2 -2
  254. package/dist/core/{p-22c024ee.entry.js → p-7c724f2c.entry.js} +2 -2
  255. package/dist/core/{p-335fc5e4.entry.js → p-8146336b.entry.js} +2 -2
  256. package/dist/core/{p-cd8de4c5.entry.js → p-8931210a.entry.js} +2 -2
  257. package/dist/core/{p-529d8955.entry.js → p-8a66cab4.entry.js} +2 -2
  258. package/dist/core/{p-ca48e97a.entry.js → p-8be3ec3d.entry.js} +2 -2
  259. package/dist/core/{p-180e36b1.entry.js → p-8c2322a9.entry.js} +2 -2
  260. package/dist/core/{p-31969be6.entry.js → p-8f97463f.entry.js} +2 -2
  261. package/dist/core/p-8f97463f.entry.js.map +1 -0
  262. package/dist/core/{p-edd29edc.entry.js → p-9184e385.entry.js} +2 -2
  263. package/dist/core/p-9808f7c9.entry.js +2 -0
  264. package/dist/core/p-9808f7c9.entry.js.map +1 -0
  265. package/dist/core/p-9e4c8a09.entry.js +2 -0
  266. package/dist/core/p-9e4c8a09.entry.js.map +1 -0
  267. package/dist/core/{p-366bcb17.entry.js → p-9ee138e7.entry.js} +2 -2
  268. package/dist/core/{p-15ef0674.entry.js → p-b74f92b6.entry.js} +2 -2
  269. package/dist/core/p-b74f92b6.entry.js.map +1 -0
  270. package/dist/core/{p-e5abfadd.entry.js → p-b7a2e604.entry.js} +2 -2
  271. package/dist/core/p-bb1a0018.entry.js +2 -0
  272. package/dist/core/p-bb1a0018.entry.js.map +1 -0
  273. package/dist/core/{p-b0088956.entry.js → p-bb41b637.entry.js} +2 -2
  274. package/dist/core/{p-a46130c8.entry.js → p-bf93455b.entry.js} +2 -2
  275. package/dist/core/{p-a46130c8.entry.js.map → p-bf93455b.entry.js.map} +1 -1
  276. package/dist/core/p-c1109ec7.entry.js +2 -0
  277. package/dist/core/p-c1109ec7.entry.js.map +1 -0
  278. package/dist/core/{p-cfc930f6.entry.js → p-c75d6022.entry.js} +2 -2
  279. package/dist/core/{p-f0809037.entry.js → p-c786d62f.entry.js} +2 -2
  280. package/dist/core/{p-edec0936.entry.js → p-c7a08024.entry.js} +2 -2
  281. package/dist/core/{p-6eb0421d.entry.js → p-cf798ea7.entry.js} +2 -2
  282. package/dist/core/{p-a908e7a9.entry.js → p-d3e54a29.entry.js} +2 -2
  283. package/dist/core/{p-287ab47c.entry.js → p-de87d585.entry.js} +2 -2
  284. package/dist/core/{p-15624e08.entry.js → p-e4d827d4.entry.js} +2 -2
  285. package/dist/core/{p-765bdd98.entry.js → p-e9723eaa.entry.js} +2 -2
  286. package/dist/core/{p-498eb7ad.entry.js → p-eb2d06c1.entry.js} +2 -2
  287. package/dist/esm/core.js +4 -4
  288. package/dist/esm/core.js.map +1 -1
  289. package/dist/esm/{helpers-c597f246.js → helpers-821dcdf2.js} +6 -6
  290. package/dist/esm/{helpers-c597f246.js.map → helpers-821dcdf2.js.map} +1 -1
  291. package/dist/esm/ic-accordion-group.entry.js +1 -1
  292. package/dist/esm/ic-accordion.entry.js +2 -2
  293. package/dist/esm/ic-alert.entry.js +3 -3
  294. package/dist/esm/ic-alert.entry.js.map +1 -1
  295. package/dist/esm/ic-back-to-top.entry.js +5 -9
  296. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  297. package/dist/esm/ic-badge.entry.js +2 -2
  298. package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
  299. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  300. package/dist/esm/ic-button_3.entry.js +62 -33
  301. package/dist/esm/ic-button_3.entry.js.map +1 -1
  302. package/dist/esm/ic-card.entry.js +2 -2
  303. package/dist/esm/ic-checkbox-group.entry.js +2 -2
  304. package/dist/esm/ic-checkbox.entry.js +2 -2
  305. package/dist/esm/ic-chip.entry.js +2 -2
  306. package/dist/esm/ic-classification-banner.entry.js +1 -1
  307. package/dist/esm/ic-data-entity.entry.js +1 -1
  308. package/dist/esm/ic-data-row.entry.js +2 -2
  309. package/dist/esm/ic-dialog.entry.js +2 -2
  310. package/dist/esm/ic-divider.entry.js +2 -2
  311. package/dist/esm/ic-empty-state.entry.js +2 -2
  312. package/dist/esm/ic-footer-link-group.entry.js +2 -2
  313. package/dist/esm/ic-footer-link.entry.js +3 -3
  314. package/dist/esm/ic-footer-link.entry.js.map +1 -1
  315. package/dist/esm/ic-footer.entry.js +3 -3
  316. package/dist/esm/ic-footer.entry.js.map +1 -1
  317. package/dist/esm/ic-hero.entry.js +2 -2
  318. package/dist/esm/ic-horizontal-scroll.entry.js +2 -2
  319. package/dist/esm/ic-input-component-container_3.entry.js +2 -2
  320. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  321. package/dist/esm/ic-input-label_2.entry.js +2 -2
  322. package/dist/esm/ic-link.entry.js +2 -2
  323. package/dist/esm/ic-menu-group.entry.js +2 -2
  324. package/dist/esm/ic-menu-item.entry.js +3 -3
  325. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  326. package/dist/esm/ic-navigation-button.entry.js +2 -2
  327. package/dist/esm/ic-navigation-group.entry.js +6 -9
  328. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  329. package/dist/esm/ic-navigation-item.entry.js +2 -2
  330. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  331. package/dist/esm/ic-navigation-menu.entry.js +2 -2
  332. package/dist/esm/ic-page-header.entry.js +3 -3
  333. package/dist/esm/ic-page-header.entry.js.map +1 -1
  334. package/dist/esm/ic-pagination-item.entry.js +2 -2
  335. package/dist/esm/ic-pagination.entry.js +2 -2
  336. package/dist/esm/ic-popover-menu.entry.js +11 -5
  337. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  338. package/dist/esm/ic-radio-group.entry.js +2 -2
  339. package/dist/esm/ic-radio-option.entry.js +2 -2
  340. package/dist/esm/ic-search-bar.entry.js +2 -2
  341. package/dist/esm/ic-section-container.entry.js +1 -1
  342. package/dist/esm/ic-select.entry.js +2 -2
  343. package/dist/esm/ic-side-navigation.entry.js +39 -62
  344. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  345. package/dist/esm/ic-skeleton.entry.js +1 -1
  346. package/dist/esm/ic-status-tag.entry.js +4 -3
  347. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  348. package/dist/esm/ic-step.entry.js +2 -2
  349. package/dist/esm/ic-stepper.entry.js +2 -2
  350. package/dist/esm/ic-switch.entry.js +2 -2
  351. package/dist/esm/ic-tab-context.entry.js +1 -1
  352. package/dist/esm/ic-tab-group.entry.js +2 -2
  353. package/dist/esm/ic-tab-panel.entry.js +2 -2
  354. package/dist/esm/ic-tab.entry.js +2 -2
  355. package/dist/esm/ic-text-field.entry.js +49 -12
  356. package/dist/esm/ic-text-field.entry.js.map +1 -1
  357. package/dist/esm/ic-theme.entry.js +2 -2
  358. package/dist/esm/ic-toast-region.entry.js +1 -1
  359. package/dist/esm/ic-toast.entry.js +13 -16
  360. package/dist/esm/ic-toast.entry.js.map +1 -1
  361. package/dist/esm/ic-toggle-button.entry.js +65 -0
  362. package/dist/esm/ic-toggle-button.entry.js.map +1 -0
  363. package/dist/esm/ic-top-navigation.entry.js +4 -3
  364. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  365. package/dist/esm/ic-typography.entry.js +2 -2
  366. package/dist/esm/{index-05003e1c.js → index-d1d2c456.js} +6 -12
  367. package/dist/esm/index-d1d2c456.js.map +1 -0
  368. package/dist/esm/loader.js +3 -3
  369. package/dist/types/components/ic-button/ic-button.d.ts +3 -0
  370. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +4 -0
  371. package/dist/types/components/ic-side-navigation/ic-side-navigation.d.ts +3 -2
  372. package/dist/types/components/ic-text-field/ic-text-field.d.ts +13 -0
  373. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +60 -0
  374. package/dist/types/components.d.ts +134 -2
  375. package/hydrate/index.d.ts +1 -1
  376. package/hydrate/index.js +311 -183
  377. package/package.json +23 -16
  378. package/vscode-data.json +100 -2
  379. package/dist/cjs/index-152d1fe5.js.map +0 -1
  380. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js +0 -21
  381. package/dist/collection/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.js.map +0 -1
  382. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group-test-examples.js +0 -35
  383. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group-test-examples.js.map +0 -1
  384. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js +0 -41
  385. package/dist/collection/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group.e2e.js.map +0 -1
  386. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js +0 -11
  387. package/dist/collection/components/ic-button/test/a11y/ic-button.test.a11y.js.map +0 -1
  388. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js +0 -198
  389. package/dist/collection/components/ic-button/test/basic/ic-button.e2e.js.map +0 -1
  390. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js +0 -21
  391. package/dist/collection/components/ic-card/test/a11y/ic-card.test.a11y.js.map +0 -1
  392. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js +0 -23
  393. package/dist/collection/components/ic-card/test/basic/ic-card.e2e.js.map +0 -1
  394. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js +0 -16
  395. package/dist/collection/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.js.map +0 -1
  396. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js +0 -201
  397. package/dist/collection/components/ic-checkbox-group/test/basic/ic-checkbox-group.e2e.js.map +0 -1
  398. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js +0 -11
  399. package/dist/collection/components/ic-chip/test/a11y/ic-chip.test.a11y.js.map +0 -1
  400. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js +0 -11
  401. package/dist/collection/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.js.map +0 -1
  402. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js +0 -28
  403. package/dist/collection/components/ic-dialog/test/a11y/ic-dialog.test.a11y.js.map +0 -1
  404. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js +0 -288
  405. package/dist/collection/components/ic-dialog/test/basic/ic-dialog.e2e.js.map +0 -1
  406. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js +0 -38
  407. package/dist/collection/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.js.map +0 -1
  408. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js +0 -86
  409. package/dist/collection/components/ic-empty-state/test/basic/ic-empty-state.spec.js.map +0 -1
  410. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js +0 -23
  411. package/dist/collection/components/ic-footer/test/a11y/ic-footer.test.a11y.js.map +0 -1
  412. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js +0 -50
  413. package/dist/collection/components/ic-footer/test/basic/ic-footer.e2e.js.map +0 -1
  414. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js +0 -21
  415. package/dist/collection/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.js.map +0 -1
  416. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js +0 -21
  417. package/dist/collection/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.js.map +0 -1
  418. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js +0 -11
  419. package/dist/collection/components/ic-link/test/a11y/ic-link.test.a11y.js.map +0 -1
  420. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js +0 -28
  421. package/dist/collection/components/ic-select/test/a11y/ic-select.test.a11y.js.map +0 -1
  422. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +0 -1825
  423. package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +0 -1
  424. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js +0 -14
  425. package/dist/collection/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.js.map +0 -1
  426. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js +0 -582
  427. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js.map +0 -1
  428. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +0 -475
  429. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +0 -1
  430. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js +0 -32
  431. package/dist/collection/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.js.map +0 -1
  432. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js +0 -61
  433. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.js.map +0 -1
  434. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +0 -244
  435. package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +0 -1
  436. package/dist/core/p-1338c9df.entry.js +0 -2
  437. package/dist/core/p-1338c9df.entry.js.map +0 -1
  438. package/dist/core/p-15ef0674.entry.js.map +0 -1
  439. package/dist/core/p-31969be6.entry.js.map +0 -1
  440. package/dist/core/p-4d413a72.entry.js +0 -2
  441. package/dist/core/p-4d413a72.entry.js.map +0 -1
  442. package/dist/core/p-51f9f329.entry.js.map +0 -1
  443. package/dist/core/p-52e063d3.js +0 -3
  444. package/dist/core/p-52e063d3.js.map +0 -1
  445. package/dist/core/p-592c783e.entry.js.map +0 -1
  446. package/dist/core/p-5c7e339f.entry.js.map +0 -1
  447. package/dist/core/p-5f9d69ef.entry.js.map +0 -1
  448. package/dist/core/p-776232f4.entry.js +0 -2
  449. package/dist/core/p-776232f4.entry.js.map +0 -1
  450. package/dist/core/p-85026377.entry.js.map +0 -1
  451. package/dist/core/p-94e88827.entry.js.map +0 -1
  452. package/dist/core/p-96da1e85.entry.js +0 -2
  453. package/dist/core/p-96da1e85.entry.js.map +0 -1
  454. package/dist/core/p-9c30720d.entry.js +0 -2
  455. package/dist/core/p-9c30720d.entry.js.map +0 -1
  456. package/dist/core/p-c2452388.entry.js.map +0 -1
  457. package/dist/esm/index-05003e1c.js.map +0 -1
  458. package/dist/types/components/ic-breadcrumb-group/test/a11y/ic-breadcrumb-group.test.a11y.d.ts +0 -1
  459. package/dist/types/components/ic-breadcrumb-group/test/basic/ic-breadcrumb-group-test-examples.d.ts +0 -2
  460. package/dist/types/components/ic-button/test/a11y/ic-button.test.a11y.d.ts +0 -1
  461. package/dist/types/components/ic-card/test/a11y/ic-card.test.a11y.d.ts +0 -1
  462. package/dist/types/components/ic-checkbox-group/test/a11y/ic-checkbox-group.test.a11y.d.ts +0 -1
  463. package/dist/types/components/ic-chip/test/a11y/ic-chip.test.a11y.d.ts +0 -1
  464. package/dist/types/components/ic-data-entity/test/a11y/ic-data-entity.test.a11y.d.ts +0 -1
  465. package/dist/types/components/ic-dialog/test/a11y/ic-dialog.test.a11y.d.ts +0 -1
  466. package/dist/types/components/ic-empty-state/test/a11y/ic-empty-state.test.a11y.d.ts +0 -1
  467. package/dist/types/components/ic-footer/test/a11y/ic-footer.test.a11y.d.ts +0 -1
  468. package/dist/types/components/ic-footer-link/test/a11y/ic-footer-link.test.a11y.d.ts +0 -1
  469. package/dist/types/components/ic-footer-link-group/test/a11y/ic-footer-link-group.test.a11y.d.ts +0 -1
  470. package/dist/types/components/ic-link/test/a11y/ic-link.test.a11y.d.ts +0 -1
  471. package/dist/types/components/ic-select/test/a11y/ic-select.test.a11y.d.ts +0 -1
  472. package/dist/types/components/ic-side-navigation/test/a11y/ic-side-navigation.test.a11y.d.ts +0 -1
  473. package/dist/types/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.d.ts +0 -8
  474. package/dist/types/components/ic-top-navigation/test/a11y/ic-top-navigation.test.a11y.d.ts +0 -1
  475. /package/dist/core/{p-daebb58a.entry.js.map → p-003c44bd.entry.js.map} +0 -0
  476. /package/dist/core/{p-b6a575c3.entry.js.map → p-049bf5e3.entry.js.map} +0 -0
  477. /package/dist/core/{p-ea17e371.entry.js.map → p-0a0b748c.entry.js.map} +0 -0
  478. /package/dist/core/{p-d18450f9.entry.js.map → p-0d2eb765.entry.js.map} +0 -0
  479. /package/dist/core/{p-6d3f9501.entry.js.map → p-0ee13da0.entry.js.map} +0 -0
  480. /package/dist/core/{p-15466b42.entry.js.map → p-1145e33c.entry.js.map} +0 -0
  481. /package/dist/core/{p-056f8a67.entry.js.map → p-171e25c9.entry.js.map} +0 -0
  482. /package/dist/core/{p-ad36a704.entry.js.map → p-26334b3a.entry.js.map} +0 -0
  483. /package/dist/core/{p-dbb5b008.entry.js.map → p-29b812c0.entry.js.map} +0 -0
  484. /package/dist/core/{p-b9736cf4.entry.js.map → p-2e7f22af.entry.js.map} +0 -0
  485. /package/dist/core/{p-aa0a9870.entry.js.map → p-357eaebe.entry.js.map} +0 -0
  486. /package/dist/core/{p-9639e33f.entry.js.map → p-38bf02aa.entry.js.map} +0 -0
  487. /package/dist/core/{p-b99f9e89.entry.js.map → p-3c752bca.entry.js.map} +0 -0
  488. /package/dist/core/{p-3a0ef91e.entry.js.map → p-3cc52cbc.entry.js.map} +0 -0
  489. /package/dist/core/{p-c770e7a2.entry.js.map → p-42c0e318.entry.js.map} +0 -0
  490. /package/dist/core/{p-2b24b4bf.entry.js.map → p-4421203e.entry.js.map} +0 -0
  491. /package/dist/core/{p-11736fbe.entry.js.map → p-4f1792a6.entry.js.map} +0 -0
  492. /package/dist/core/{p-b39ecae2.entry.js.map → p-4f8b7aa3.entry.js.map} +0 -0
  493. /package/dist/core/{p-8a83f391.entry.js.map → p-525323ab.entry.js.map} +0 -0
  494. /package/dist/core/{p-e9738c74.entry.js.map → p-59c4bc0a.entry.js.map} +0 -0
  495. /package/dist/core/{p-95a864bf.js.map → p-671b7cac.js.map} +0 -0
  496. /package/dist/core/{p-fdb4b48f.entry.js.map → p-783c2ced.entry.js.map} +0 -0
  497. /package/dist/core/{p-f2e6b9ef.entry.js.map → p-7b720034.entry.js.map} +0 -0
  498. /package/dist/core/{p-22c024ee.entry.js.map → p-7c724f2c.entry.js.map} +0 -0
  499. /package/dist/core/{p-335fc5e4.entry.js.map → p-8146336b.entry.js.map} +0 -0
  500. /package/dist/core/{p-cd8de4c5.entry.js.map → p-8931210a.entry.js.map} +0 -0
  501. /package/dist/core/{p-529d8955.entry.js.map → p-8a66cab4.entry.js.map} +0 -0
  502. /package/dist/core/{p-ca48e97a.entry.js.map → p-8be3ec3d.entry.js.map} +0 -0
  503. /package/dist/core/{p-180e36b1.entry.js.map → p-8c2322a9.entry.js.map} +0 -0
  504. /package/dist/core/{p-edd29edc.entry.js.map → p-9184e385.entry.js.map} +0 -0
  505. /package/dist/core/{p-366bcb17.entry.js.map → p-9ee138e7.entry.js.map} +0 -0
  506. /package/dist/core/{p-e5abfadd.entry.js.map → p-b7a2e604.entry.js.map} +0 -0
  507. /package/dist/core/{p-b0088956.entry.js.map → p-bb41b637.entry.js.map} +0 -0
  508. /package/dist/core/{p-cfc930f6.entry.js.map → p-c75d6022.entry.js.map} +0 -0
  509. /package/dist/core/{p-f0809037.entry.js.map → p-c786d62f.entry.js.map} +0 -0
  510. /package/dist/core/{p-edec0936.entry.js.map → p-c7a08024.entry.js.map} +0 -0
  511. /package/dist/core/{p-6eb0421d.entry.js.map → p-cf798ea7.entry.js.map} +0 -0
  512. /package/dist/core/{p-a908e7a9.entry.js.map → p-d3e54a29.entry.js.map} +0 -0
  513. /package/dist/core/{p-287ab47c.entry.js.map → p-de87d585.entry.js.map} +0 -0
  514. /package/dist/core/{p-15624e08.entry.js.map → p-e4d827d4.entry.js.map} +0 -0
  515. /package/dist/core/{p-765bdd98.entry.js.map → p-e9723eaa.entry.js.map} +0 -0
  516. /package/dist/core/{p-498eb7ad.entry.js.map → p-eb2d06c1.entry.js.map} +0 -0
@@ -1,61 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- const pageWidth = 1200;
3
- const pageHeight = 600;
4
- describe("ic-top-navigation", () => {
5
- it("renders", async () => {
6
- const page = await newE2EPage();
7
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
8
- version="v0.0.7"></ic-top-navigation>`);
9
- const element = await page.find("ic-top-navigation");
10
- expect(element).toHaveClass("hydrated");
11
- });
12
- it("should hide dropdown menu when nav item clicked", async () => {
13
- const page = await newE2EPage();
14
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
15
- version="v0.0.7">
16
- <ic-navigation-group slot="navigation" label="Navigation group" expandable="true">
17
- <ic-navigation-item
18
- label="Navigation"
19
- slot="navigation"
20
- ></ic-navigation-item>
21
- </ic-navigation-group>
22
- </ic-top-navigation>`);
23
- await page.setViewport({
24
- width: pageWidth,
25
- height: pageHeight,
26
- });
27
- await page.waitForChanges();
28
- const navGroup = await page.find("ic-top-navigation ic-navigation-group");
29
- await navGroup.press("Enter");
30
- await page.waitForChanges();
31
- let dropDownDiv = await page.find("ic-navigation-group >>> .navigation-group-dropdown");
32
- expect(dropDownDiv).not.toBeNull();
33
- await page.evaluate(() => {
34
- const navItemComp = document.querySelector("ic-navigation-item");
35
- navItemComp.click();
36
- });
37
- await page.waitForChanges();
38
- dropDownDiv = await page.find("ic-navigation-group >>> .navigation-group-dropdown");
39
- expect(dropDownDiv).toBeNull();
40
- });
41
- it("should toggle to short title at small screen sizes", async () => {
42
- const page = await newE2EPage();
43
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" short-app-title="AppName">
44
- </ic-top-navigation>`);
45
- await page.setViewport({
46
- width: 576,
47
- height: pageHeight,
48
- });
49
- await page.waitForChanges();
50
- let appTitle = await page.find("ic-top-navigation >>> .title-link ic-typography");
51
- expect(appTitle.textContent).toBe("AppName");
52
- await page.setViewport({
53
- width: 1200,
54
- height: pageHeight,
55
- });
56
- await page.waitForChanges();
57
- appTitle = await page.find("ic-top-navigation >>> .title-link ic-typography");
58
- expect(appTitle.textContent).toBe("ApplicationName");
59
- });
60
- });
61
- //# sourceMappingURL=ic-top-navigation.e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-top-navigation.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/basic/ic-top-navigation.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,UAAU,GAAG,GAAG,CAAC;AAEvB,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACvB,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC;0CACgB,CAAC,CAAC;QAExC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAErD,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;yBAQD,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,WAAW,CAAC;YACrB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAE1E,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE9B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAC/B,oDAAoD,CACrD,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACvB,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;YACjE,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAC3B,oDAAoD,CACrD,CAAC;QACF,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC;yBACD,CAAC,CAAC;QAEvB,MAAM,IAAI,CAAC,WAAW,CAAC;YACrB,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,iDAAiD,CAClD,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7C,MAAM,IAAI,CAAC,WAAW,CAAC;YACrB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CACxB,iDAAiD,CAClD,CAAC;QAEF,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nconst pageWidth = 1200;\nconst pageHeight = 600;\n\ndescribe(\"ic-top-navigation\", () => {\n it(\"renders\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\"></ic-top-navigation>`);\n\n const element = await page.find(\"ic-top-navigation\");\n\n expect(element).toHaveClass(\"hydrated\");\n });\n\n it(\"should hide dropdown menu when nav item clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-navigation-group slot=\"navigation\" label=\"Navigation group\" expandable=\"true\">\n <ic-navigation-item\n label=\"Navigation\"\n slot=\"navigation\"\n ></ic-navigation-item>\n </ic-navigation-group>\n </ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n await page.waitForChanges();\n\n const navGroup = await page.find(\"ic-top-navigation ic-navigation-group\");\n\n await navGroup.press(\"Enter\");\n\n await page.waitForChanges();\n\n let dropDownDiv = await page.find(\n \"ic-navigation-group >>> .navigation-group-dropdown\"\n );\n expect(dropDownDiv).not.toBeNull();\n\n await page.evaluate(() => {\n const navItemComp = document.querySelector(\"ic-navigation-item\");\n navItemComp.click();\n });\n\n await page.waitForChanges();\n\n dropDownDiv = await page.find(\n \"ic-navigation-group >>> .navigation-group-dropdown\"\n );\n expect(dropDownDiv).toBeNull();\n });\n\n it(\"should toggle to short title at small screen sizes\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" short-app-title=\"AppName\">\n </ic-top-navigation>`);\n\n await page.setViewport({\n width: 576,\n height: pageHeight,\n });\n\n await page.waitForChanges();\n\n let appTitle = await page.find(\n \"ic-top-navigation >>> .title-link ic-typography\"\n );\n\n expect(appTitle.textContent).toBe(\"AppName\");\n\n await page.setViewport({\n width: 1200,\n height: pageHeight,\n });\n\n await page.waitForChanges();\n\n appTitle = await page.find(\n \"ic-top-navigation >>> .title-link ic-typography\"\n );\n\n expect(appTitle.textContent).toBe(\"ApplicationName\");\n });\n});\n"]}
@@ -1,244 +0,0 @@
1
- import { newE2EPage } from "@stencil/core/testing";
2
- const pageWidth = 640;
3
- const pageHeight = 480;
4
- const searchBarVisibleHeight = 40;
5
- const searchBarHiddenHeight = 0;
6
- describe("ic-top-navigation on mobile", () => {
7
- it("renders", async () => {
8
- const page = await newE2EPage();
9
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
10
- version="v0.0.7"></ic-top-navigation>`);
11
- await page.setViewport({
12
- width: pageWidth,
13
- height: pageHeight,
14
- });
15
- const menuBtn = await page.find("ic-top-navigation >>> .menu-button-container ic-button");
16
- expect(menuBtn).not.toBeNull();
17
- });
18
- it("should open and close menu", async () => {
19
- const page = await newE2EPage();
20
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
21
- version="v0.0.7"></ic-top-navigation>`);
22
- await page.setViewport({
23
- width: pageWidth,
24
- height: pageHeight,
25
- });
26
- const menuBtn = await page.find("ic-top-navigation >>> .menu-button-container ic-button");
27
- expect(menuBtn).not.toBeNull();
28
- const icNavigationMenuOpened = await page.spyOnEvent("icNavigationMenuOpened");
29
- await menuBtn.click();
30
- await page.waitForChanges();
31
- let menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
32
- expect(menu).not.toBeNull();
33
- expect(icNavigationMenuOpened).toHaveReceivedEvent();
34
- const activeElId = await page.$eval("ic-top-navigation", (el) => {
35
- const menu = el.shadowRoot.querySelector("ic-navigation-menu");
36
- return menu.shadowRoot.activeElement.id;
37
- });
38
- expect(activeElId).toBe("menu-close-button");
39
- const icNavigationMenuClosed = await page.spyOnEvent("icNavigationMenuClosed");
40
- await page.evaluate(() => {
41
- const navbar = document.querySelector("ic-top-navigation");
42
- const menu = navbar.shadowRoot.querySelector("ic-navigation-menu");
43
- const closeBtn = menu.shadowRoot.querySelector("ic-button");
44
- closeBtn.click();
45
- });
46
- await page.waitForChanges();
47
- menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
48
- expect(menu).toBeNull();
49
- expect(icNavigationMenuClosed).toHaveReceivedEvent();
50
- });
51
- it("should close menu when nav item clicked", async () => {
52
- const page = await newE2EPage();
53
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
54
- version="v0.0.7">
55
- <ic-navigation-item
56
- label="Navigation"
57
- slot="navigation"
58
- href="#"
59
- ></ic-navigation-item>
60
- </ic-top-navigation>`);
61
- await page.setViewport({
62
- width: pageWidth,
63
- height: pageHeight,
64
- });
65
- const menuBtn = await page.find("ic-top-navigation >>> .menu-button-container ic-button");
66
- expect(menuBtn).not.toBeNull();
67
- const icNavigationMenuOpened = await page.spyOnEvent("icNavigationMenuOpened");
68
- await menuBtn.click();
69
- await page.waitForChanges();
70
- let menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
71
- expect(menu).not.toBeNull();
72
- expect(icNavigationMenuOpened).toHaveReceivedEvent();
73
- const icNavigationMenuClosed = await page.spyOnEvent("icNavigationMenuClosed");
74
- const navItem = await page.find("ic-navigation-item");
75
- await page.waitForTimeout(5000);
76
- await navItem.click();
77
- await page.waitForChanges();
78
- menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
79
- expect(menu).toBeNull();
80
- expect(icNavigationMenuClosed).toHaveReceivedEvent();
81
- });
82
- it("should keep tab focus in menu - button as last el", async () => {
83
- const page = await newE2EPage();
84
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
85
- version="v0.0.7">
86
- <ic-navigation-button
87
- label="button1"
88
- slot="buttons"
89
- onclick="alert('test')"
90
- >
91
- <svg
92
- slot="icon"
93
- xmlns="http://www.w3.org/2000/svg"
94
- height="24px"
95
- viewBox="0 0 24 24"
96
- width="24px"
97
- fill="#000000"
98
- >
99
- <path d="M0 0h24v24H0V0z" fill="none" />
100
- <path
101
- d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z"
102
- />
103
- </svg>
104
- </ic-navigation-button>
105
- </ic-top-navigation>`);
106
- await page.setViewport({
107
- width: pageWidth,
108
- height: pageHeight,
109
- });
110
- const menuBtn = await page.find("ic-top-navigation >>> .menu-button-container ic-button");
111
- expect(menuBtn).not.toBeNull();
112
- await menuBtn.click();
113
- await page.waitForChanges();
114
- const menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
115
- expect(menu).not.toBeNull();
116
- let activeElId = await page.$eval("ic-top-navigation", (el) => {
117
- const menu = el.shadowRoot.querySelector("ic-navigation-menu");
118
- return menu.shadowRoot.activeElement.id;
119
- });
120
- expect(activeElId).toBe("menu-close-button");
121
- await page.keyboard.press("Tab");
122
- await page.waitForChanges();
123
- activeElId = await page.$eval("ic-navigation-button", (el) => {
124
- const button = el.shadowRoot.querySelector("ic-button");
125
- return button.shadowRoot.activeElement.getAttribute("aria-label");
126
- });
127
- expect(activeElId).toBe("button1");
128
- await page.keyboard.press("Tab");
129
- await page.waitForChanges();
130
- activeElId = await page.$eval("ic-top-navigation", (el) => {
131
- const menu = el.shadowRoot.querySelector("ic-navigation-menu");
132
- return menu.shadowRoot.activeElement.id;
133
- });
134
- expect(activeElId).toBe("menu-close-button");
135
- page.keyboard.down("Shift");
136
- await page.keyboard.press("Tab");
137
- await page.waitForChanges();
138
- activeElId = await page.$eval("ic-navigation-button", (el) => {
139
- const button = el.shadowRoot.querySelector("ic-button");
140
- return button.shadowRoot.activeElement.getAttribute("aria-label");
141
- });
142
- expect(activeElId).toBe("button1");
143
- });
144
- it("should keep tab focus in menu - nav item as last el", async () => {
145
- const page = await newE2EPage();
146
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
147
- version="v0.0.7">
148
- <ic-navigation-item
149
- label="Navigation"
150
- href="/"
151
- slot="navigation"
152
- ></ic-navigation-item>
153
- </ic-top-navigation>`);
154
- await page.setViewport({
155
- width: pageWidth,
156
- height: pageHeight,
157
- });
158
- const menuBtn = await page.find("ic-top-navigation >>> .menu-button-container ic-button");
159
- expect(menuBtn).not.toBeNull();
160
- await menuBtn.click();
161
- await page.waitForChanges();
162
- const menu = await page.find("ic-top-navigation >>> ic-navigation-menu");
163
- expect(menu).not.toBeNull();
164
- let activeElId = await page.$eval("ic-top-navigation", (el) => {
165
- const menu = el.shadowRoot.querySelector("ic-navigation-menu");
166
- return menu.shadowRoot.activeElement.id;
167
- });
168
- expect(activeElId).toBe("menu-close-button");
169
- await page.keyboard.press("Tab");
170
- await page.waitForChanges();
171
- activeElId = await page.$eval("ic-navigation-item", (el) => {
172
- return el.shadowRoot.activeElement.textContent;
173
- });
174
- expect(activeElId).toBe("Navigation");
175
- await page.keyboard.press("Tab");
176
- await page.waitForChanges();
177
- activeElId = await page.$eval("ic-top-navigation", (el) => {
178
- const menu = el.shadowRoot.querySelector("ic-navigation-menu");
179
- return menu.shadowRoot.activeElement.id;
180
- });
181
- expect(activeElId).toBe("menu-close-button");
182
- page.keyboard.down("Shift");
183
- await page.keyboard.press("Tab");
184
- await page.waitForChanges();
185
- activeElId = await page.$eval("ic-navigation-item", (el) => {
186
- return el.shadowRoot.activeElement.textContent;
187
- });
188
- expect(activeElId).toBe("Navigation");
189
- });
190
- it("should toggle search bar when clicking on button", async () => {
191
- const page = await newE2EPage();
192
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
193
- version="v0.0.7">
194
- <ic-search-bar slot="search" label="Search" placeholder="Search" focusOnLoad="true"></ic-search-bar>
195
- </ic-top-navigation>`);
196
- await page.setViewport({
197
- width: pageWidth,
198
- height: pageHeight,
199
- });
200
- const searchBtn = await page.find("ic-top-navigation >>> .search-actions-container ic-button");
201
- expect(searchBtn).not.toBeNull();
202
- await searchBtn.click();
203
- await page.waitForChanges();
204
- let searchBarHeight = await page.$eval("ic-search-bar", (el) => {
205
- return el.clientHeight;
206
- });
207
- expect(searchBarHeight).toBe(searchBarVisibleHeight);
208
- await searchBtn.click();
209
- await page.waitForChanges();
210
- searchBarHeight = await page.$eval("ic-search-bar", (el) => {
211
- return el.clientHeight;
212
- });
213
- expect(searchBarHeight).toBe(searchBarHiddenHeight);
214
- });
215
- it("should hide search bar when loses focus", async () => {
216
- const page = await newE2EPage();
217
- await page.setContent(`<ic-top-navigation app-title="ApplicationName" status="alpha"
218
- version="v0.0.7">
219
- <ic-search-bar slot="search" label="Search" placeholder="Search" focusOnLoad="true"></ic-search-bar>
220
- </ic-top-navigation>
221
- <span id='othercontent'>some other content</span>`);
222
- await page.setViewport({
223
- width: pageWidth,
224
- height: pageHeight,
225
- });
226
- const searchBtn = await page.find("ic-top-navigation >>> .search-actions-container ic-button");
227
- expect(searchBtn).not.toBeNull();
228
- await searchBtn.click();
229
- await page.waitForChanges();
230
- let searchBarHeight = await page.$eval("ic-search-bar", (el) => {
231
- return el.clientHeight;
232
- });
233
- expect(searchBarHeight).toBe(searchBarVisibleHeight);
234
- // Test hides when another page element clicked
235
- const spanEl = await page.find("#othercontent");
236
- await spanEl.click();
237
- await page.waitForChanges();
238
- searchBarHeight = await page.$eval("ic-search-bar", (el) => {
239
- return el.clientHeight;
240
- });
241
- expect(searchBarHeight).toBe(searchBarHiddenHeight);
242
- });
243
- });
244
- //# sourceMappingURL=ic-top-navigation.mobile.e2e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ic-top-navigation.mobile.e2e.js","sourceRoot":"","sources":["../../../../../src/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.ts"],"names":[],"mappings":"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","sourcesContent":["import { newE2EPage } from \"@stencil/core/testing\";\n\nconst pageWidth = 640;\nconst pageHeight = 480;\nconst searchBarVisibleHeight = 40;\nconst searchBarHiddenHeight = 0;\n\ndescribe(\"ic-top-navigation on mobile\", () => {\n it(\"renders\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\"></ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const menuBtn = await page.find(\n \"ic-top-navigation >>> .menu-button-container ic-button\"\n );\n expect(menuBtn).not.toBeNull();\n });\n\n it(\"should open and close menu\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\"></ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const menuBtn = await page.find(\n \"ic-top-navigation >>> .menu-button-container ic-button\"\n );\n expect(menuBtn).not.toBeNull();\n\n const icNavigationMenuOpened = await page.spyOnEvent(\n \"icNavigationMenuOpened\"\n );\n await menuBtn.click();\n await page.waitForChanges();\n let menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).not.toBeNull();\n expect(icNavigationMenuOpened).toHaveReceivedEvent();\n\n const activeElId = await page.$eval(\"ic-top-navigation\", (el) => {\n const menu = el.shadowRoot.querySelector(\"ic-navigation-menu\");\n return menu.shadowRoot.activeElement.id;\n });\n\n expect(activeElId).toBe(\"menu-close-button\");\n\n const icNavigationMenuClosed = await page.spyOnEvent(\n \"icNavigationMenuClosed\"\n );\n\n await page.evaluate(() => {\n const navbar = document.querySelector(\"ic-top-navigation\");\n const menu = navbar.shadowRoot.querySelector(\"ic-navigation-menu\");\n const closeBtn = menu.shadowRoot.querySelector(\"ic-button\");\n closeBtn.click();\n });\n\n await page.waitForChanges();\n menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).toBeNull();\n expect(icNavigationMenuClosed).toHaveReceivedEvent();\n });\n\n it(\"should close menu when nav item clicked\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-navigation-item\n label=\"Navigation\"\n slot=\"navigation\"\n href=\"#\"\n ></ic-navigation-item>\n </ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const menuBtn = await page.find(\n \"ic-top-navigation >>> .menu-button-container ic-button\"\n );\n expect(menuBtn).not.toBeNull();\n\n const icNavigationMenuOpened = await page.spyOnEvent(\n \"icNavigationMenuOpened\"\n );\n await menuBtn.click();\n await page.waitForChanges();\n\n let menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).not.toBeNull();\n expect(icNavigationMenuOpened).toHaveReceivedEvent();\n\n const icNavigationMenuClosed = await page.spyOnEvent(\n \"icNavigationMenuClosed\"\n );\n\n const navItem = await page.find(\"ic-navigation-item\");\n await page.waitForTimeout(5000);\n await navItem.click();\n await page.waitForChanges();\n\n menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).toBeNull();\n expect(icNavigationMenuClosed).toHaveReceivedEvent();\n });\n\n it(\"should keep tab focus in menu - button as last el\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-navigation-button\n label=\"button1\"\n slot=\"buttons\"\n onclick=\"alert('test')\"\n >\n <svg\n slot=\"icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24px\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n fill=\"#000000\"\n >\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\" />\n <path\n d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-5.5-2.5l7.51-3.49L17.5 6.5 9.99 9.99 6.5 17.5zm5.5-6.6c.61 0 1.1.49 1.1 1.1s-.49 1.1-1.1 1.1-1.1-.49-1.1-1.1.49-1.1 1.1-1.1z\"\n />\n </svg>\n </ic-navigation-button>\n </ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const menuBtn = await page.find(\n \"ic-top-navigation >>> .menu-button-container ic-button\"\n );\n expect(menuBtn).not.toBeNull();\n\n await menuBtn.click();\n await page.waitForChanges();\n const menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).not.toBeNull();\n\n let activeElId = await page.$eval(\"ic-top-navigation\", (el) => {\n const menu = el.shadowRoot.querySelector(\"ic-navigation-menu\");\n return menu.shadowRoot.activeElement.id;\n });\n\n expect(activeElId).toBe(\"menu-close-button\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-navigation-button\", (el) => {\n const button = el.shadowRoot.querySelector(\"ic-button\");\n return button.shadowRoot.activeElement.getAttribute(\"aria-label\");\n });\n\n expect(activeElId).toBe(\"button1\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-top-navigation\", (el) => {\n const menu = el.shadowRoot.querySelector(\"ic-navigation-menu\");\n return menu.shadowRoot.activeElement.id;\n });\n\n expect(activeElId).toBe(\"menu-close-button\");\n\n page.keyboard.down(\"Shift\");\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-navigation-button\", (el) => {\n const button = el.shadowRoot.querySelector(\"ic-button\");\n return button.shadowRoot.activeElement.getAttribute(\"aria-label\");\n });\n\n expect(activeElId).toBe(\"button1\");\n });\n\n it(\"should keep tab focus in menu - nav item as last el\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-navigation-item\n label=\"Navigation\"\n href=\"/\"\n slot=\"navigation\"\n ></ic-navigation-item> \n </ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const menuBtn = await page.find(\n \"ic-top-navigation >>> .menu-button-container ic-button\"\n );\n expect(menuBtn).not.toBeNull();\n\n await menuBtn.click();\n await page.waitForChanges();\n const menu = await page.find(\"ic-top-navigation >>> ic-navigation-menu\");\n expect(menu).not.toBeNull();\n\n let activeElId = await page.$eval(\"ic-top-navigation\", (el) => {\n const menu = el.shadowRoot.querySelector(\"ic-navigation-menu\");\n return menu.shadowRoot.activeElement.id;\n });\n\n expect(activeElId).toBe(\"menu-close-button\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-navigation-item\", (el) => {\n return el.shadowRoot.activeElement.textContent;\n });\n\n expect(activeElId).toBe(\"Navigation\");\n\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-top-navigation\", (el) => {\n const menu = el.shadowRoot.querySelector(\"ic-navigation-menu\");\n return menu.shadowRoot.activeElement.id;\n });\n\n expect(activeElId).toBe(\"menu-close-button\");\n\n page.keyboard.down(\"Shift\");\n await page.keyboard.press(\"Tab\");\n await page.waitForChanges();\n\n activeElId = await page.$eval(\"ic-navigation-item\", (el) => {\n return el.shadowRoot.activeElement.textContent;\n });\n\n expect(activeElId).toBe(\"Navigation\");\n });\n\n it(\"should toggle search bar when clicking on button\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\" focusOnLoad=\"true\"></ic-search-bar>\n </ic-top-navigation>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const searchBtn = await page.find(\n \"ic-top-navigation >>> .search-actions-container ic-button\"\n );\n expect(searchBtn).not.toBeNull();\n\n await searchBtn.click();\n await page.waitForChanges();\n\n let searchBarHeight = await page.$eval(\"ic-search-bar\", (el) => {\n return el.clientHeight;\n });\n\n expect(searchBarHeight).toBe(searchBarVisibleHeight);\n\n await searchBtn.click();\n await page.waitForChanges();\n\n searchBarHeight = await page.$eval(\"ic-search-bar\", (el) => {\n return el.clientHeight;\n });\n\n expect(searchBarHeight).toBe(searchBarHiddenHeight);\n });\n\n it(\"should hide search bar when loses focus\", async () => {\n const page = await newE2EPage();\n await page.setContent(`<ic-top-navigation app-title=\"ApplicationName\" status=\"alpha\"\n version=\"v0.0.7\">\n <ic-search-bar slot=\"search\" label=\"Search\" placeholder=\"Search\" focusOnLoad=\"true\"></ic-search-bar>\n </ic-top-navigation>\n <span id='othercontent'>some other content</span>`);\n\n await page.setViewport({\n width: pageWidth,\n height: pageHeight,\n });\n\n const searchBtn = await page.find(\n \"ic-top-navigation >>> .search-actions-container ic-button\"\n );\n expect(searchBtn).not.toBeNull();\n\n await searchBtn.click();\n await page.waitForChanges();\n\n let searchBarHeight = await page.$eval(\"ic-search-bar\", (el) => {\n return el.clientHeight;\n });\n\n expect(searchBarHeight).toBe(searchBarVisibleHeight);\n\n // Test hides when another page element clicked\n const spanEl = await page.find(\"#othercontent\");\n await spanEl.click();\n await page.waitForChanges();\n\n searchBarHeight = await page.$eval(\"ic-search-bar\", (el) => {\n return el.clientHeight;\n });\n\n expect(searchBarHeight).toBe(searchBarHiddenHeight);\n });\n});\n"]}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,H as s,g as a}from"./p-52e063d3.js";import{a as n}from"./p-26b7b18f.js";import{M as o,m as r,w as l,l as h,j as c,a as d,q as u,n as p,i as b,G as m,x as f}from"./p-95a864bf.js";const y='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block}:host(.fullwidth){width:100%}::-moz-placeholder{color:var(--ic-color-tertiary-text);opacity:1}::placeholder{color:var(--ic-color-tertiary-text);opacity:1}input,textarea{border:0;border-radius:var(--ic-border-radius);background-color:var(--ic-architectural-white);line-height:1.5rem;letter-spacing:0.005rem;width:100%;padding-right:var(--ic-space-xs);padding-left:var(--ic-space-xs)}textarea{min-height:var(--ic-space-lg);resize:vertical;padding-top:0.375rem}input:focus,textarea:focus{border:0;outline:0}input:disabled,textarea:disabled{color:var(--ic-architectural-200)}input.readonly,textarea.readonly{color:var(--ic-color-primary-text)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type="number"]{-moz-appearance:textfield}textarea.no-resize{resize:none}.maxlengthtext{color:var(--ic-color-secondary-text)}.no-left-pad{padding-left:0}::slotted([slot="icon"]){fill:var(--ic-color-tertiary-text)}.has-value ::slotted([slot="icon"]){fill:var(--ic-color-primary-text)}.charcount{margin-right:calc(-1 * var(--ic-space-xxxs))}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-results-button,input[type="search"]::-webkit-search-results-decoration{display:none}input[type="search"].truncate-value{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (forced-colors: active){input.readonly,textarea.readonly{color:canvastext}.has-value ::slotted([slot="icon"]){fill:currentcolor}}';let x=0;const g=class{constructor(i){t(this,i);this.getValidationText=e(this,"getValidationText",7);this.icBlur=e(this,"icBlur",7);this.icChange=e(this,"icChange",7);this.icFocus=e(this,"icFocus",7);this.icInput=e(this,"icInput",7);this.icKeydown=e(this,"icKeydown",7);this.inheritedAttributes={};this.showLeftIcon=this.hasLeftIconSlot();this.getMaxLengthExceeded=t=>{this.numChars=t.length;if(this.type==="number"){this.minValueUnattained=t&&Number(t)<Number(this.min)?true:false;this.maxValueExceeded=Number(t)>Number(this.max)?true:false}if(this.maxLength>0){this.maxLengthExceeded=t.length>this.maxLength?true:false}};this.onInput=t=>{this.value=t.target.value;this.icInput.emit({value:this.value})};this.onBlur=t=>{const e=t.target.value;this.icBlur.emit({value:e})};this.onFocus=t=>{const e=t.target.value;this.icFocus.emit({value:e})};this.isTextArea=()=>this.rows>1;this.getInlineValidationText=()=>{this.getValidationText.emit({value:this.validationText})};this.hasStatus=t=>t!==""&&!this.disabled;this.showStatusText=t=>this.hasStatus(t)&&!(t==n.Success&&this.validationInline)&&!this.validationInlineInternal;this.handleFormReset=()=>{this.value=this.initialValue};this.numChars=0;this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false;this.ariaActiveDescendant=undefined;this.ariaAutocomplete=undefined;this.ariaExpanded=undefined;this.ariaOwns=undefined;this.autocapitalize="off";this.autocomplete="off";this.autocorrect="off";this.autoFocus=false;this.disabled=false;this.fullWidth=false;this.helperText="";this.hideLabel=false;this.hiddenInput=true;this.inputId=`ic-text-field-input-${x++}`;this.inputmode="text";this.label=undefined;this.max=undefined;this.maxLength=0;this.min=undefined;this.name=this.inputId;this.placeholder="";this.readonly=false;this.required=false;this.resize=false;this.role=undefined;this.rows=1;this.size="default";this.small=false;this.spellcheck=false;this.truncateValue=undefined;this.type="text";this.validationInline=false;this.validationInlineInternal=false;this.validationStatus="";this.validationText="";this.debounce=0;this.value="";this.initialValue=this.value}debounceChanged(){this.icChange=o(this.icChange,this.debounce)}watchValueHandler(t){if(this.inputEl&&this.inputEl.value!==t){this.inputEl.value=t}this.getMaxLengthExceeded(t);this.icChange.emit({value:t})}connectedCallback(){this.debounceChanged()}disconnectedCallback(){r(this.el,this.handleFormReset)}componentWillLoad(){if(this.value!==this.initialValue){this.watchValueHandler(this.value)}this.getMaxLengthExceeded(this.value);this.inheritedAttributes=l(this.el,[...f,"title"]);if(this.readonly){this.maxLengthExceeded=false;this.maxValueExceeded=false;this.minValueUnattained=false}h(this.el,this.handleFormReset);c(this.disabled,this.el)}componentDidLoad(){d([{prop:this.label,propName:"label"}],"Text Field");if(this.validationInlineInternal){this.getInlineValidationText()}}handleKeyDown(t){this.icKeydown.emit({event:t})}async setFocus(){if(this.inputEl){this.inputEl.focus()}}hasLeftIconSlot(){const t=this.el.querySelector(`[slot="icon"]`);return t!==null}render(){const{inputId:t,name:e,label:a,required:o,size:r,small:l,placeholder:h,helperText:c,rows:d,resize:f,disabled:y,value:x,min:g,max:v,maxLength:w,numChars:k,readonly:z,maxLengthExceeded:I,minValueUnattained:j,maxValueExceeded:F,validationStatus:L,validationText:q,validationInline:T,validationInlineInternal:C,spellcheck:M,inputmode:V,fullWidth:N,truncateValue:B,hiddenInput:W}=this;const $=z?true:y;const H=y?"":h;const S=I||F||j?n.Error:L;const D=I?"Maximum length exceeded":F?`Maximum value of ${v} exceeded`:j?`Minimum value of ${g} not met`:q;const E=z?0:w;const K=I||F||j||w===0&&S===n.Error?"assertive":"polite";const O=this.showStatusText(S);const _=this.isTextArea();const G=w>0?t+"-charcount-desc":"";const U=(G+" "+u(t,c!=="",O)).trim();if(this.showLeftIcon&&!z&&$){this.showLeftIcon=false}const A=S===n.Error?"true":"false";const J=$&&!z;if(W){p(true,this.el,e,x,$)}return i(s,{class:{["fullwidth"]:N}},i("ic-input-container",{readonly:z,disabled:$},!this.hideLabel&&i("ic-input-label",{for:t,label:a,helperText:c,required:o,disabled:J,readonly:z}),i("ic-input-component-container",{size:l?"small":r,validationStatus:S,multiLine:_,disabled:$,readonly:z,validationInline:T,fullWidth:N},this.showLeftIcon&&i("span",{class:{["readonly"]:z,["has-value"]:x.length>0},slot:"left-icon"},i("slot",{name:"icon"})),!_&&i("input",Object.assign({id:t,name:e,ref:t=>this.inputEl=t,type:this.type,min:g,max:v,value:x,class:{["no-left-pad"]:!this.showLeftIcon&&z,["readonly"]:z,["truncate-value"]:B},placeholder:H,required:o,disabled:$,readonly:z,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":U,"aria-invalid":A,"aria-activedescendant":this.ariaActiveDescendant,"aria-expanded":this.ariaExpanded,"aria-owns":this.ariaOwns,autocomplete:this.autocomplete,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:M,inputmode:V,role:this.role},this.inheritedAttributes)),_&&i("textarea",Object.assign({id:t,class:{["no-resize"]:f===false||z,["no-left-pad"]:!this.showLeftIcon&&z,["readonly"]:z},name:e,ref:t=>this.inputEl=t,value:x,rows:d,required:o,disabled:$,placeholder:H,readonly:z,onInput:this.onInput,onBlur:this.onBlur,onFocus:this.onFocus,"aria-label":a,"aria-describedby":U,"aria-invalid":A,autocapitalize:this.autocapitalize,autoFocus:this.autoFocus,spellcheck:M,inputmode:V},this.inheritedAttributes)),b(this.el,"clear-button")&&i("slot",{name:"clear-button"}),b(this.el,"search-submit-button")&&i("slot",{name:"search-submit-button"})),b(this.el,"menu")&&i("slot",{name:"menu"}),(!m(L)||!m(q)||E>0||F||j)&&!C&&i("ic-input-validation",{status:this.hasStatus(S)===false||S===n.Success&&T||C?"":S,message:O?D:"",ariaLiveMode:K,for:t,fullWidth:N},!z&&E>0&&i("div",{slot:"validation-message-adornment"},i("ic-typography",{variant:"caption",class:{["maxlengthtext"]:true,["error"]:I,["disabled"]:J}},i("span",{"aria-live":"polite",id:`${t}-charcount`,class:"charcount"},k,"/",E),i("span",{hidden:true,id:G},"Field can contain a maximum of ",E," characters."))))))}get el(){return a(this)}static get watchers(){return{debounce:["debounceChanged"],value:["watchValueHandler"]}}};g.style=y;export{g as ic_text_field};
2
- //# sourceMappingURL=p-1338c9df.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["icTextFieldCss","inputIds","TextField","this","inheritedAttributes","showLeftIcon","hasLeftIconSlot","getMaxLengthExceeded","value","numChars","length","type","minValueUnattained","Number","min","maxValueExceeded","max","maxLength","maxLengthExceeded","onInput","ev","target","icInput","emit","onBlur","icBlur","onFocus","icFocus","isTextArea","rows","getInlineValidationText","getValidationText","validationText","hasStatus","status","disabled","showStatusText","IcInformationStatus","Success","validationInline","validationInlineInternal","handleFormReset","initialValue","undefined","inputId","debounceChanged","icChange","debounceEvent","debounce","watchValueHandler","newValue","inputEl","connectedCallback","disconnectedCallback","removeFormResetListener","el","componentWillLoad","inheritAttributes","IC_INHERITED_ARIA","readonly","addFormResetListener","removeDisabledFalse","componentDidLoad","onComponentRequiredPropUndefined","prop","label","propName","handleKeyDown","icKeydown","event","setFocus","focus","iconEl","querySelector","render","name","required","size","small","placeholder","helperText","resize","validationStatus","spellcheck","inputmode","fullWidth","truncateValue","hiddenInput","disabledMode","placeholderText","currentStatus","Error","currentValidationText","maxNumChars","messageAriaLive","multiline","hiddenCharCountDescId","describedBy","getInputDescribedByText","trim","invalid","disabledText","renderHiddenInput","h","Host","class","hideLabel","for","multiLine","slot","Object","assign","id","ref","ariaActiveDescendant","ariaExpanded","ariaOwns","autocomplete","autocapitalize","autoFocus","role","isSlotUsed","isEmptyString","message","ariaLiveMode","variant","hidden"],"sources":["src/components/ic-text-field/ic-text-field.css?tag=ic-text-field&encapsulation=shadow","src/components/ic-text-field/ic-text-field.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n:host {\n /**\n * @prop --input-width: Width of the input field\n */\n display: block;\n}\n\n:host(.fullwidth) {\n width: 100%;\n}\n\n::placeholder {\n color: var(--ic-color-tertiary-text);\n opacity: 1;\n}\n\ninput,\ntextarea {\n border: 0;\n border-radius: var(--ic-border-radius);\n background-color: var(--ic-architectural-white);\n line-height: 1.5rem;\n letter-spacing: 0.005rem;\n width: 100%;\n padding-right: var(--ic-space-xs);\n padding-left: var(--ic-space-xs);\n}\n\ntextarea {\n min-height: var(--ic-space-lg);\n resize: vertical;\n padding-top: 0.375rem;\n}\n\ninput:focus,\ntextarea:focus {\n border: 0;\n outline: 0;\n}\n\ninput:disabled,\ntextarea:disabled {\n color: var(--ic-architectural-200);\n}\n\ninput.readonly,\ntextarea.readonly {\n color: var(--ic-color-primary-text);\n}\n\n/* Chrome, Safari, Edge */\ninput::-webkit-outer-spin-button,\ninput::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n\n/* Firefox */\ninput[type=\"number\"] {\n -moz-appearance: textfield;\n}\n\ntextarea.no-resize {\n resize: none;\n}\n\n.maxlengthtext {\n color: var(--ic-color-secondary-text);\n}\n\n.no-left-pad {\n padding-left: 0;\n}\n\n::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-tertiary-text);\n}\n\n.has-value ::slotted([slot=\"icon\"]) {\n fill: var(--ic-color-primary-text);\n}\n\n.charcount {\n margin-right: calc(-1 * var(--ic-space-xxxs));\n}\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration,\ninput[type=\"search\"]::-webkit-search-results-button,\ninput[type=\"search\"]::-webkit-search-results-decoration {\n display: none;\n}\n\ninput[type=\"search\"].truncate-value {\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@media (forced-colors: active) {\n input.readonly,\n textarea.readonly {\n color: canvastext;\n }\n\n .has-value ::slotted([slot=\"icon\"]) {\n fill: currentcolor;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n Listen,\n Prop,\n State,\n Watch,\n Method,\n h,\n} from \"@stencil/core\";\nimport {\n IcInformationStatus,\n IcAutocompleteTypes,\n IcAutocorrectStates,\n IcInformationStatusOrEmpty,\n IcValueEventDetail,\n IcSizesNoLarge,\n} from \"../../utils/types\";\nimport {\n inheritAttributes,\n debounceEvent,\n getInputDescribedByText,\n renderHiddenInput,\n isEmptyString,\n onComponentRequiredPropUndefined,\n addFormResetListener,\n removeFormResetListener,\n isSlotUsed,\n removeDisabledFalse,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcAriaAutocompleteTypes,\n IcTextFieldInputModes,\n IcTextFieldTypes,\n} from \"./ic-text-field.types\";\n\nlet inputIds = 0;\n\n/**\n * @slot icon - Content will be placed to the left of the text input.\n */\n@Component({\n tag: \"ic-text-field\",\n styleUrl: \"ic-text-field.css\",\n shadow: true,\n})\nexport class TextField {\n private inheritedAttributes: { [k: string]: unknown } = {};\n private inputEl: HTMLInputElement | HTMLTextAreaElement;\n private showLeftIcon: boolean = this.hasLeftIconSlot();\n\n @Element() el: HTMLIcTextFieldElement;\n\n @State() numChars: number = 0;\n @State() maxLengthExceeded: boolean = false;\n @State() maxValueExceeded: boolean = false;\n @State() minValueUnattained: boolean = false;\n\n /**\n * @slot clear-button - an ic-button clear component will render as an end adornment to the input.\n * @slot search-submit-button - an ic-button search submit component will render as an end adornment to the input.\n * @slot menu - an ic-menu component will appear below the input.\n */\n\n /**\n * @internal The active element when focus is on the ic-menu items.\n */\n @Prop() ariaActiveDescendant?: string;\n\n /**\n * @internal Used to identify whether inputting any text triggers more predictions\n */\n @Prop() ariaAutocomplete: IcAriaAutocompleteTypes = undefined;\n\n /**\n * @internal Used to identify if the slotted menu is rendered\n */\n @Prop() ariaExpanded: string;\n\n /**\n * @internal Used to identify any related child component\n */\n @Prop() ariaOwns: string;\n\n /**\n * The automatic capitalisation of the text value as it is entered/edited by the user.\n * Available options: \"off\", \"none\", \"on\", \"sentences\", \"words\", \"characters\".\n */\n @Prop() autocapitalize = \"off\";\n\n /**\n * The state of autocompletion the browser can apply on the text value.\n */\n @Prop() autocomplete: IcAutocompleteTypes = \"off\";\n\n /**\n * The state of autocorrection the browser can apply when the user is entering/editing the text value.\n */\n @Prop() autocorrect: IcAutocorrectStates = \"off\";\n\n /**\n * If `true`, the form control will have input focus when the page loads.\n */\n @Prop() autoFocus = false;\n\n /**\n * If `true`, the disabled state will be set.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Specify whether the text field fills the full width of the container.\n * If `true`, this overrides the --input-width CSS variable.\n */\n @Prop() fullWidth: boolean = false;\n\n /**\n * The helper text that will be displayed for additional field guidance.\n */\n @Prop() helperText: string = \"\";\n\n /**\n * If `true`, the label will be hidden and the required label value will be applied as an aria-label.\n */\n @Prop() hideLabel: boolean = false;\n\n /**\n * @internal If `true`, the hidden form input will stop rendering for form submission.\n */\n @Prop() hiddenInput: boolean = true;\n\n /**\n * The ID for the input.\n */\n @Prop() inputId?: string = `ic-text-field-input-${inputIds++}`;\n\n /**\n * A hint to the browser for which keyboard to display.\n * Possible values: `\"none\"`, `\"text\"`, `\"tel\"`, `\"url\"`,\n * `\"email\"`, `\"numeric\"`, `\"decimal\"`, and `\"search\"`.\n */\n @Prop() inputmode: IcTextFieldInputModes = \"text\";\n\n /**\n * The label for the input.\n */\n @Prop() label!: string;\n\n /**\n * The maximum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of max value in `helperText` or `label`)\n */\n @Prop() max: string | number = undefined;\n\n /**\n * The maximum number of characters that can be entered in the field.\n */\n @Prop() maxLength: number = 0;\n\n /**\n * The minimum number that can be accepted as a value, when `type` is `number` and `rows` is `1`. (NOTE: Ensure to include visual indication of min value in `helperText` or `label`)\n */\n @Prop() min: string | number = undefined;\n\n /**\n * The name of the control, which is submitted with the form data.\n */\n @Prop() name: string = this.inputId;\n\n /**\n * The placeholder value to be displayed.\n */\n @Prop() placeholder: string = \"\";\n\n /**\n * If `true`, the read only state will be set.\n */\n @Prop({ reflect: true }) readonly: boolean = false;\n\n /**\n * If `true`, the input will require a value.\n */\n @Prop() required: boolean = false;\n\n /**\n * If `true`, the multiline text area will be resizeable.\n */\n @Prop() resize: boolean = false;\n\n /**\n * @internal Used to set the role if not default textbox;\n */\n @Prop() role: string;\n\n /**\n * The number of rows to transform the text field into a text area with a specific height.\n */\n @Prop() rows: number = 1;\n\n /**\n * The size of the text field component.\n */\n @Prop() size?: IcSizesNoLarge = \"default\";\n\n /**\n * @deprecated This prop should not be used anymore. Set prop `size` to \"small\" instead.\n */\n @Prop() small?: boolean = false;\n\n /**\n * If `true`, the value of the text field will have its spelling and grammar checked.\n */\n @Prop() spellcheck: boolean = false;\n /**\n * @internal If `true`, an ellipsis will be displayed at the end of the value if the value is longer than the container.\n */\n @Prop() truncateValue?: boolean;\n\n /**\n * The type of control to display. The default type is text.\n */\n @Prop() type: IcTextFieldTypes = \"text\";\n\n /**\n * If `true`, the icon in input control will be displayed - only applies when validationStatus ='success'.\n */\n @Prop() validationInline: boolean = false;\n\n /**\n * @internal If `true`, the validation will display inline.\n */\n @Prop() validationInlineInternal: boolean = false;\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationStatus: IcInformationStatusOrEmpty = \"\";\n\n /**\n * The validation state - e.g. 'error' | 'warning' | 'success'.\n */\n @Prop() validationText: string = \"\";\n\n /**\n * The amount of time, in milliseconds, to wait to trigger the `icChange` event after each keystroke.\n */\n @Prop() debounce: number = 0;\n\n @Watch(\"debounce\")\n private debounceChanged() {\n this.icChange = debounceEvent(this.icChange, this.debounce);\n }\n\n /**\n * The value of the text field.\n */\n @Prop({ reflect: true, mutable: true }) value: string = \"\";\n @State() initialValue = this.value;\n\n @Watch(\"value\")\n private watchValueHandler(newValue: string): void {\n if (this.inputEl && this.inputEl.value !== newValue) {\n this.inputEl.value = newValue;\n }\n\n this.getMaxLengthExceeded(newValue);\n\n this.icChange.emit({ value: newValue });\n }\n\n /**\n * @internal Emitted when the validationInlineInternal is `true`\n */\n @Event() getValidationText: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input loses focus.\n */\n @Event() icBlur: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when the value has changed.\n */\n @Event() icChange: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when input gains focus.\n */\n @Event() icFocus: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keyboard input occurred.\n */\n @Event() icInput: EventEmitter<IcValueEventDetail>;\n\n /**\n * Emitted when a keydown event occurred.\n */\n @Event() icKeydown: EventEmitter<{ event: KeyboardEvent }>;\n\n connectedCallback(): void {\n this.debounceChanged();\n }\n\n disconnectedCallback(): void {\n removeFormResetListener(this.el, this.handleFormReset);\n }\n\n componentWillLoad(): void {\n if (this.value !== this.initialValue) {\n this.watchValueHandler(this.value);\n }\n\n this.getMaxLengthExceeded(this.value);\n\n this.inheritedAttributes = inheritAttributes(this.el, [\n ...IC_INHERITED_ARIA,\n \"title\",\n ]);\n\n if (this.readonly) {\n this.maxLengthExceeded = false;\n this.maxValueExceeded = false;\n this.minValueUnattained = false;\n }\n\n addFormResetListener(this.el, this.handleFormReset);\n\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Text Field\"\n );\n if (this.validationInlineInternal) {\n this.getInlineValidationText();\n }\n }\n\n @Listen(\"keydown\", {})\n handleKeyDown(ev: KeyboardEvent): void {\n this.icKeydown.emit({ event: ev });\n }\n\n /**\n * Sets focus on the native `input`.\n */\n\n @Method()\n async setFocus(): Promise<void> {\n if (this.inputEl) {\n this.inputEl.focus();\n }\n }\n\n private getMaxLengthExceeded = (value: string) => {\n this.numChars = value.length;\n\n if (this.type === \"number\") {\n this.minValueUnattained =\n value && Number(value) < Number(this.min) ? true : false;\n this.maxValueExceeded = Number(value) > Number(this.max) ? true : false;\n }\n\n if (this.maxLength > 0) {\n this.maxLengthExceeded = value.length > this.maxLength ? true : false;\n }\n };\n\n private onInput = (ev: Event) => {\n this.value = (ev.target as HTMLInputElement).value;\n this.icInput.emit({ value: this.value });\n };\n\n private onBlur = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icBlur.emit({ value: value });\n };\n\n private onFocus = (ev: Event) => {\n const value = (ev.target as HTMLInputElement).value;\n this.icFocus.emit({ value: value });\n };\n\n private isTextArea = (): boolean => {\n return this.rows > 1;\n };\n\n private getInlineValidationText = () => {\n this.getValidationText.emit({ value: this.validationText });\n };\n\n private hasLeftIconSlot(): boolean {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n return iconEl !== null;\n }\n\n private hasStatus = (status: IcInformationStatusOrEmpty): boolean => {\n return status !== \"\" && !this.disabled;\n };\n\n private showStatusText = (status: IcInformationStatusOrEmpty): boolean => {\n return (\n this.hasStatus(status) &&\n !(status == IcInformationStatus.Success && this.validationInline) &&\n !this.validationInlineInternal\n );\n };\n\n private handleFormReset = (): void => {\n this.value = this.initialValue;\n };\n\n render() {\n const {\n inputId,\n name,\n label,\n required,\n size,\n small,\n placeholder,\n helperText,\n rows,\n resize,\n disabled,\n value,\n min,\n max,\n maxLength,\n numChars,\n readonly,\n maxLengthExceeded,\n minValueUnattained,\n maxValueExceeded,\n validationStatus,\n validationText,\n validationInline,\n validationInlineInternal,\n spellcheck,\n inputmode,\n fullWidth,\n truncateValue,\n hiddenInput,\n } = this;\n\n const disabledMode = readonly ? true : disabled;\n\n const placeholderText = disabled ? \"\" : placeholder;\n\n const currentStatus =\n maxLengthExceeded || maxValueExceeded || minValueUnattained\n ? IcInformationStatus.Error\n : validationStatus;\n\n const currentValidationText = maxLengthExceeded\n ? \"Maximum length exceeded\"\n : maxValueExceeded\n ? `Maximum value of ${max} exceeded`\n : minValueUnattained\n ? `Minimum value of ${min} not met`\n : validationText;\n\n const maxNumChars = readonly ? 0 : maxLength;\n\n const messageAriaLive =\n maxLengthExceeded ||\n maxValueExceeded ||\n minValueUnattained ||\n (maxLength === 0 && currentStatus === IcInformationStatus.Error)\n ? \"assertive\"\n : \"polite\";\n\n const showStatusText = this.showStatusText(currentStatus);\n const multiline = this.isTextArea();\n const hiddenCharCountDescId =\n maxLength > 0 ? inputId + \"-charcount-desc\" : \"\";\n const describedBy = (\n hiddenCharCountDescId +\n \" \" +\n getInputDescribedByText(inputId, helperText !== \"\", showStatusText)\n ).trim();\n\n if (this.showLeftIcon && !readonly && disabledMode) {\n this.showLeftIcon = false;\n }\n\n const invalid =\n currentStatus === IcInformationStatus.Error ? \"true\" : \"false\";\n const disabledText = disabledMode && !readonly;\n\n if (hiddenInput) {\n renderHiddenInput(true, this.el, name, value, disabledMode);\n }\n return (\n <Host class={{ [\"fullwidth\"]: fullWidth }}>\n <ic-input-container readonly={readonly} disabled={disabledMode}>\n {!this.hideLabel && (\n <ic-input-label\n for={inputId}\n label={label}\n helperText={helperText}\n required={required}\n disabled={disabledText}\n readonly={readonly}\n ></ic-input-label>\n )}\n\n <ic-input-component-container\n size={small ? \"small\" : size}\n validationStatus={currentStatus}\n multiLine={multiline}\n disabled={disabledMode}\n readonly={readonly}\n validationInline={validationInline}\n fullWidth={fullWidth}\n >\n {this.showLeftIcon && (\n <span\n class={{\n [\"readonly\"]: readonly,\n [\"has-value\"]: value.length > 0,\n }}\n slot=\"left-icon\"\n >\n <slot name=\"icon\" />\n </span>\n )}\n\n {!multiline && (\n <input\n id={inputId}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLInputElement)}\n type={this.type}\n min={min}\n max={max}\n value={value}\n class={{\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n [\"truncate-value\"]: truncateValue,\n }}\n placeholder={placeholderText}\n required={required}\n disabled={disabledMode}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n aria-activedescendant={this.ariaActiveDescendant}\n aria-expanded={this.ariaExpanded}\n aria-owns={this.ariaOwns}\n autocomplete={this.autocomplete}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n role={this.role}\n {...this.inheritedAttributes}\n ></input>\n )}\n {multiline && (\n <textarea\n id={inputId}\n class={{\n [\"no-resize\"]: resize === false || readonly,\n [\"no-left-pad\"]: !this.showLeftIcon && readonly,\n [\"readonly\"]: readonly,\n }}\n name={name}\n ref={(el) => (this.inputEl = el as HTMLTextAreaElement)}\n value={value}\n rows={rows}\n required={required}\n disabled={disabledMode}\n placeholder={placeholderText}\n readonly={readonly}\n onInput={this.onInput}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n aria-label={label}\n aria-describedby={describedBy}\n aria-invalid={invalid}\n autocapitalize={this.autocapitalize}\n autoFocus={this.autoFocus}\n spellcheck={spellcheck}\n inputmode={inputmode}\n {...this.inheritedAttributes}\n ></textarea>\n )}\n {isSlotUsed(this.el, \"clear-button\") && (\n <slot name=\"clear-button\"></slot>\n )}\n {isSlotUsed(this.el, \"search-submit-button\") && (\n <slot name=\"search-submit-button\"></slot>\n )}\n </ic-input-component-container>\n {isSlotUsed(this.el, \"menu\") && <slot name=\"menu\"></slot>}\n {(!isEmptyString(validationStatus) ||\n !isEmptyString(validationText) ||\n maxNumChars > 0 ||\n maxValueExceeded ||\n minValueUnattained) &&\n !validationInlineInternal && (\n <ic-input-validation\n status={\n this.hasStatus(currentStatus) === false ||\n (currentStatus === IcInformationStatus.Success &&\n validationInline) ||\n validationInlineInternal\n ? \"\"\n : currentStatus\n }\n message={showStatusText ? currentValidationText : \"\"}\n ariaLiveMode={messageAriaLive}\n for={inputId}\n fullWidth={fullWidth}\n >\n {!readonly && maxNumChars > 0 && (\n <div slot=\"validation-message-adornment\">\n <ic-typography\n variant=\"caption\"\n class={{\n [\"maxlengthtext\"]: true,\n [\"error\"]: maxLengthExceeded,\n [\"disabled\"]: disabledText,\n }}\n >\n <span\n aria-live=\"polite\"\n id={`${inputId}-charcount`}\n class=\"charcount\"\n >\n {numChars}/{maxNumChars}\n </span>\n <span hidden={true} id={hiddenCharCountDescId}>\n Field can contain a maximum of {maxNumChars} characters.\n </span>\n </ic-typography>\n </div>\n )}\n </ic-input-validation>\n )}\n </ic-input-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icToastCss","AUTO_DISMISS_TIMER_REFRESH_RATE_MS","TOAST_HEADING_CHAR_LIMIT","TOAST_MESSAGE_CHAR_LIMIT","Toast","this","interactiveElements","dismissAction","icDismiss","emit","handleProgressChange","timerProgress","autoDismissTimeout","disconnectedCallback","window","clearTimeout","dismissTimeout","clearInterval","timerRefreshInterval","componentWillLoad","handleLongText","heading","length","_a","message","isSlotUsed","el","dismissMode","isManual","variant","neutralVariantLabel","_b","neutralIconAriaLabel","VARIANT_ICONS","ariaLabel","toastMessage","isPropDefined","setAttribute","componentDidLoad","onComponentRequiredPropUndefined","prop","propName","actionContent","getSlot","dismissButton","shadowRoot","querySelector","push","handleDismiss","visible","handleKeyboard","ev","key","preventDefault","findNextInteractiveElement","shiftKey","setFocus","repeat","stopImmediatePropagation","handleTimer","type","setTimeout","setInterval","setVisible","document","activeElement","headingTooLong","messageTooLong","console","error","isBackwards","first","last","source","target","isActive","currentIndex","found","some","index","targetEl","render","dismissButtonAriaLabel","h","Host","class","role","name","innerHTML","icon","appearance","size","progress","id","closeIcon","onClick","IcThemeForegroundEnum","Light"],"sources":["src/components/ic-toast/ic-toast.css?tag=ic-toast&encapsulation=shadow","src/components/ic-toast/ic-toast.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-toast: z-index of toast\n */\n\n:host {\n --bottom-position: var(--ic-space-xl);\n\n position: fixed;\n bottom: var(--bottom-position);\n left: 50%;\n transform: translate(-50%);\n animation: fadein var(--ic-transition-duration-slow) ease-in-out;\n z-index: var(--ic-z-index-toast);\n}\n\n:host(.hidden) {\n display: none;\n animation: fadeout var(--ic-transition-duration-slow) ease-in-out;\n}\n\n.container {\n max-width: 32.5rem;\n min-width: 18rem;\n box-shadow: var(--ic-elevation-overlay);\n min-height: 3.5rem;\n background-color: var(--ic-architectural-800);\n color: var(--ic-color-white-text);\n display: flex;\n align-items: center;\n position: relative;\n border-radius: var(--ic-border-radius);\n}\n\n.toast-icon-container {\n height: 100%;\n display: flex;\n align-items: center;\n}\n\n.divider {\n height: 100%;\n width: var(--ic-space-xs);\n position: absolute;\n border-radius: var(--ic-space-xxxs) 0 0 var(--ic-space-xxxs);\n}\n\n.divider-neutral {\n background-color: var(--ic-status-unknown);\n}\n\n.divider-info {\n background-color: var(--ic-status-info-contrast);\n}\n\n.divider-warning {\n background-color: var(--ic-status-warning-contrast);\n}\n\n.divider-error {\n background-color: var(--ic-status-error-contrast);\n}\n\n.divider-success {\n background-color: var(--ic-status-success-contrast);\n}\n\n.toast-icon,\n::slotted(svg) {\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n margin-left: var(--ic-space-md);\n}\n\n:host([variant=\"neutral\"]) .toast-icon svg,\n::slotted(svg) {\n fill: var(--ic-status-unknown);\n}\n\n:host([variant=\"info\"]) .toast-icon svg {\n fill: var(--ic-status-info-contrast);\n}\n\n:host([variant=\"warning\"]) .toast-icon svg {\n fill: var(--ic-status-warning-contrast);\n}\n\n:host([variant=\"error\"]) .toast-icon svg {\n fill: var(--ic-status-error-contrast);\n}\n\n:host([variant=\"success\"]) .toast-icon svg {\n fill: var(--ic-status-success-contrast);\n}\n\n.toast-content {\n margin-left: var(--ic-space-xs);\n width: 100%;\n}\n\n.no-icon {\n margin-left: var(--ic-space-md);\n}\n\n.toast-message {\n padding: var(--ic-space-xs) var(--ic-space-xs) var(--ic-space-xs) 0;\n}\n\n.toast-action-container {\n padding-bottom: var(--ic-space-md);\n}\n\nic-button,\n.toast-dismiss-timer {\n padding: var(--ic-space-xs);\n}\n\n@media (max-width: 576px) {\n :host {\n --bottom-position: var(--ic-space-lg);\n\n width: calc(100% - 2 * var(--ic-space-md));\n }\n}\n\n@media (min-width: 993px) {\n :host {\n --bottom-position: calc(var(--ic-space-xl) + var(--ic-space-xs));\n }\n}\n\n@media (forced-colors: active) {\n .container {\n border: var(--ic-hc-border);\n }\n}\n\n@keyframes fadein {\n from {\n bottom: 0;\n opacity: 0;\n }\n\n to {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n}\n\n@keyframes fadeout {\n from {\n bottom: var(--bottom-position);\n opacity: 1;\n }\n\n to {\n bottom: 0;\n opacity: 0;\n }\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from \"@stencil/core\";\nimport closeIcon from \"../../assets/close-icon.svg\";\nimport { VARIANT_ICONS } from \"../../utils/constants\";\nimport {\n getSlot,\n isPropDefined,\n isSlotUsed,\n onComponentRequiredPropUndefined,\n} from \"../../utils/helpers\";\nimport {\n IcActivationTypes,\n IcStatusVariants,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport { ActionAreaElementTypes } from \"./ic-toast.types\";\n\nconst AUTO_DISMISS_TIMER_REFRESH_RATE_MS = 1000;\nconst TOAST_HEADING_CHAR_LIMIT = 70;\nconst TOAST_MESSAGE_CHAR_LIMIT = 140;\n\n/**\n * @slot action - IcButton or IcLink is placed below header and message. If used will default toast to manual `dismiss` type.\n * @slot neutral-icon - A custom neutral icon is placed on the left side of the component. If used will default toast to `neutral` variant.\n */\n@Component({\n tag: \"ic-toast\",\n styleUrl: \"ic-toast.css\",\n shadow: true,\n})\nexport class Toast {\n private dismissTimeout: number;\n private interactiveElements: ActionAreaElementTypes[] = [];\n private isManual: boolean;\n private neutralVariantLabel: string;\n private timerRefreshInterval: number;\n\n @Element() el: HTMLIcToastElement;\n\n @State() timerProgress = 100;\n @State() visible = false;\n\n /**\n * If toast dismissMode is set to `automatic`, use this prop to define the time before the toast dismisses (in MILLISECONDS)\n * (NOTE: Has a minimum value of `5000ms`)\n */\n @Prop({ mutable: true }) autoDismissTimeout? = 5000;\n\n /**\n * If toast can be manually dismissed, this prop sets a custom aria-label for the ic-button component\n */\n @Prop() dismissButtonAriaLabel? = \"dismiss\";\n\n /**\n * How the toast will be dismissed. If manual will display a dismiss button.\n */\n @Prop({ mutable: true }) dismissMode?: IcActivationTypes = \"manual\";\n\n /**\n * The title to display at the start of the toast. (NOTE: Should be no more than `70` characters)\n */\n @Prop() heading!: string;\n\n /**\n * The main body message of the toast. (NOTE: Should be no more than `140` characters)\n */\n @Prop() message?: string;\n\n /**\n * Provides a custom alt-text to be announced to screen readers, if slotting a custom neutral icon\n */\n @Prop() neutralIconAriaLabel?: string;\n\n /**\n * The variant of the toast being rendered\n */\n @Prop({ mutable: true }) variant?: IcStatusVariants;\n\n /**\n * Is emitted when the user dismisses the toast\n */\n @Event() icDismiss: EventEmitter<void>;\n\n disconnectedCallback(): void {\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n }\n\n componentWillLoad(): void {\n this.handleLongText(\n this.heading.length > TOAST_HEADING_CHAR_LIMIT,\n this.message?.length > TOAST_MESSAGE_CHAR_LIMIT\n );\n\n if (this.autoDismissTimeout < 5000) this.autoDismissTimeout = 5000;\n\n if (isSlotUsed(this.el, \"action\")) this.dismissMode = \"manual\";\n this.isManual = this.dismissMode === \"manual\";\n\n if (isSlotUsed(this.el, \"neutral-icon\")) this.variant = \"neutral\";\n if (this.variant === \"neutral\") {\n this.neutralVariantLabel =\n this.neutralIconAriaLabel ?? VARIANT_ICONS[this.variant].ariaLabel;\n }\n\n if (this.isManual) {\n const toastMessage: string = isPropDefined(this.message)\n ? `. ${this.message}`\n : \"\";\n this.el.setAttribute(\n \"aria-label\",\n this.variant\n ? this.neutralVariantLabel || VARIANT_ICONS[this.variant].ariaLabel\n : this.heading\n );\n (this.variant || this.message) &&\n this.el.setAttribute(\n \"aria-description\",\n this.variant ? `${this.heading}${toastMessage}` : this.message\n );\n }\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.heading, propName: \"heading\" }],\n \"Toast\"\n );\n const actionContent = getSlot(this.el, \"action\") as ActionAreaElementTypes;\n const dismissButton = this.el.shadowRoot.querySelector(\"ic-button\");\n if (actionContent) this.interactiveElements.push(actionContent);\n if (dismissButton) this.interactiveElements.push(dismissButton);\n }\n\n @Listen(\"icDismiss\", { capture: true })\n handleDismiss(): void {\n this.visible = false;\n clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n }\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeyboard(ev: KeyboardEvent): void {\n if (this.isManual && this.visible) {\n switch (ev.key) {\n case \"Tab\":\n ev.preventDefault();\n this.findNextInteractiveElement(ev.shiftKey).setFocus();\n break;\n case \"Escape\":\n !ev.repeat && this.dismissAction();\n ev.stopImmediatePropagation();\n break;\n }\n }\n }\n\n @Listen(\"mouseenter\")\n @Listen(\"mouseleave\")\n handleTimer(ev: MouseEvent): void {\n if (!this.isManual) {\n switch (ev.type) {\n case \"mouseenter\":\n window.clearTimeout(this.dismissTimeout);\n window.clearInterval(this.timerRefreshInterval);\n this.timerProgress = 100;\n break;\n case \"mouseleave\":\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n break;\n }\n }\n }\n\n /**\n * @internal Used to display the individual toast.\n * @returns The element that previously had focus before the toast appeared\n */\n @Method()\n async setVisible(): Promise<HTMLElement> {\n if (!this.visible) this.visible = true;\n if (!this.isManual) {\n this.dismissTimeout = window.setTimeout(\n this.dismissAction,\n this.autoDismissTimeout\n );\n this.timerRefreshInterval = window.setInterval(\n this.handleProgressChange,\n AUTO_DISMISS_TIMER_REFRESH_RATE_MS\n );\n return null;\n } else {\n window.setTimeout(() => this.interactiveElements[0].setFocus(), 200);\n return document.activeElement as HTMLElement;\n }\n }\n\n private dismissAction = (): void => {\n this.icDismiss.emit();\n };\n\n private handleProgressChange = () => {\n this.timerProgress -=\n (AUTO_DISMISS_TIMER_REFRESH_RATE_MS / this.autoDismissTimeout) * 100;\n };\n\n private handleLongText(\n headingTooLong: boolean,\n messageTooLong?: boolean\n ): void {\n if (messageTooLong || headingTooLong) {\n console.error(\n `Too many characters in toast ${headingTooLong ? \"heading\" : \"\"}${\n headingTooLong && messageTooLong ? \" and \" : \"\"\n }${\n messageTooLong ? \"message\" : \"\"\n }. Refer to character limits specified in the prop description`\n );\n }\n }\n\n private findNextInteractiveElement(\n isBackwards: boolean\n ): ActionAreaElementTypes {\n const first = this.interactiveElements[0];\n const last = this.interactiveElements[this.interactiveElements.length - 1];\n\n const source = isBackwards ? first : last;\n const target = isBackwards ? last : first;\n if (this.isActive(source)) return target;\n\n let currentIndex: number;\n const found = this.interactiveElements.some((el, index) => {\n if (!this.isActive(el)) return false;\n currentIndex = index;\n return true;\n });\n\n if (!found) return first;\n return this.interactiveElements[currentIndex + (isBackwards ? -1 : 1)];\n }\n\n private isActive(targetEl: HTMLElement): boolean {\n if (targetEl === this.el) return !!this.el.shadowRoot.activeElement;\n return document.activeElement === targetEl;\n }\n\n render() {\n const {\n variant,\n heading,\n message,\n visible,\n isManual,\n dismissButtonAriaLabel,\n } = this;\n return (\n <Host\n class={{ [\"hidden\"]: !visible }}\n role={isManual ? \"dialog\" : \"status\"}\n >\n <div class=\"container\">\n {variant && visible && (\n <div class=\"toast-icon-container\">\n <div\n class={{\n [\"divider\"]: true,\n [`divider-${variant}`]: true,\n }}\n ></div>\n {variant === \"neutral\" ? (\n <slot name=\"neutral-icon\" />\n ) : (\n <span\n class=\"toast-icon\"\n innerHTML={VARIANT_ICONS[variant].icon}\n ></span>\n )}\n </div>\n )}\n <div\n class={{\n [\"toast-content\"]: true,\n [\"no-icon\"]:\n variant === \"neutral\" && !isSlotUsed(this.el, \"neutral-icon\"),\n }}\n >\n <div class=\"toast-message\">\n <ic-typography variant=\"subtitle-large\">\n {visible && <h5>{heading}</h5>}\n </ic-typography>\n {message && (\n <ic-typography variant=\"body\">\n {visible && <p>{message}</p>}\n </ic-typography>\n )}\n </div>\n {isSlotUsed(this.el, \"action\") && (\n <div class=\"toast-action-container\">\n <slot name=\"action\" />\n </div>\n )}\n </div>\n {!isManual ? (\n <ic-loading-indicator\n class=\"toast-dismiss-timer\"\n appearance=\"light\"\n size=\"icon\"\n progress={this.timerProgress}\n ></ic-loading-indicator>\n ) : (\n <ic-button\n id=\"dismiss-button\"\n innerHTML={closeIcon}\n onClick={this.dismissAction}\n variant=\"icon\"\n appearance={IcThemeForegroundEnum.Light}\n aria-label={dismissButtonAriaLabel}\n ></ic-button>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"wMAAA,MAAMA,EAAa,qpJC2BnB,MAAMC,EAAqC,IAC3C,MAAMC,EAA2B,GACjC,MAAMC,EAA2B,I,MAWpBC,EAAK,M,8DAERC,KAAAC,oBAAgD,GA4KhDD,KAAAE,cAAgB,KACtBF,KAAKG,UAAUC,MAAM,EAGfJ,KAAAK,qBAAuB,KAC7BL,KAAKM,eACFV,EAAqCI,KAAKO,mBAAsB,GAAG,E,mBA3K/C,I,aACN,M,wBAM4B,I,4BAKb,U,iBAKyB,S,yGA2B3D,oBAAAC,GACEC,OAAOC,aAAaV,KAAKW,gBACzBF,OAAOG,cAAcZ,KAAKa,qB,CAG5B,iBAAAC,G,QACEd,KAAKe,eACHf,KAAKgB,QAAQC,OAASpB,IACtBqB,EAAAlB,KAAKmB,WAAO,MAAAD,SAAA,SAAAA,EAAED,QAASnB,GAGzB,GAAIE,KAAKO,mBAAqB,IAAMP,KAAKO,mBAAqB,IAE9D,GAAIa,EAAWpB,KAAKqB,GAAI,UAAWrB,KAAKsB,YAAc,SACtDtB,KAAKuB,SAAWvB,KAAKsB,cAAgB,SAErC,GAAIF,EAAWpB,KAAKqB,GAAI,gBAAiBrB,KAAKwB,QAAU,UACxD,GAAIxB,KAAKwB,UAAY,UAAW,CAC9BxB,KAAKyB,qBACHC,EAAA1B,KAAK2B,wBAAoB,MAAAD,SAAA,EAAAA,EAAIE,EAAc5B,KAAKwB,SAASK,S,CAG7D,GAAI7B,KAAKuB,SAAU,CACjB,MAAMO,EAAuBC,EAAc/B,KAAKmB,SAC5C,KAAKnB,KAAKmB,UACV,GACJnB,KAAKqB,GAAGW,aACN,aACAhC,KAAKwB,QACDxB,KAAKyB,qBAAuBG,EAAc5B,KAAKwB,SAASK,UACxD7B,KAAKgB,UAEVhB,KAAKwB,SAAWxB,KAAKmB,UACpBnB,KAAKqB,GAAGW,aACN,mBACAhC,KAAKwB,QAAU,GAAGxB,KAAKgB,UAAUc,IAAiB9B,KAAKmB,Q,EAK/D,gBAAAc,GACEC,EACE,CAAC,CAAEC,KAAMnC,KAAKgB,QAASoB,SAAU,YACjC,SAEF,MAAMC,EAAgBC,EAAQtC,KAAKqB,GAAI,UACvC,MAAMkB,EAAgBvC,KAAKqB,GAAGmB,WAAWC,cAAc,aACvD,GAAIJ,EAAerC,KAAKC,oBAAoByC,KAAKL,GACjD,GAAIE,EAAevC,KAAKC,oBAAoByC,KAAKH,E,CAInD,aAAAI,GACE3C,KAAK4C,QAAU,MACfhC,cAAcZ,KAAKa,sBACnBb,KAAKM,cAAgB,G,CAIvB,cAAAuC,CAAeC,GACb,GAAI9C,KAAKuB,UAAYvB,KAAK4C,QAAS,CACjC,OAAQE,EAAGC,KACT,IAAK,MACHD,EAAGE,iBACHhD,KAAKiD,2BAA2BH,EAAGI,UAAUC,WAC7C,MACF,IAAK,UACFL,EAAGM,QAAUpD,KAAKE,gBACnB4C,EAAGO,2BACH,M,EAOR,WAAAC,CAAYR,GACV,IAAK9C,KAAKuB,SAAU,CAClB,OAAQuB,EAAGS,MACT,IAAK,aACH9C,OAAOC,aAAaV,KAAKW,gBACzBF,OAAOG,cAAcZ,KAAKa,sBAC1Bb,KAAKM,cAAgB,IACrB,MACF,IAAK,aACHN,KAAKW,eAAiBF,OAAO+C,WAC3BxD,KAAKE,cACLF,KAAKO,oBAEPP,KAAKa,qBAAuBJ,OAAOgD,YACjCzD,KAAKK,qBACLT,GAEF,M,EAUR,gBAAM8D,GACJ,IAAK1D,KAAK4C,QAAS5C,KAAK4C,QAAU,KAClC,IAAK5C,KAAKuB,SAAU,CAClBvB,KAAKW,eAAiBF,OAAO+C,WAC3BxD,KAAKE,cACLF,KAAKO,oBAEPP,KAAKa,qBAAuBJ,OAAOgD,YACjCzD,KAAKK,qBACLT,GAEF,OAAO,I,KACF,CACLa,OAAO+C,YAAW,IAAMxD,KAAKC,oBAAoB,GAAGkD,YAAY,KAChE,OAAOQ,SAASC,a,EAaZ,cAAA7C,CACN8C,EACAC,GAEA,GAAIA,GAAkBD,EAAgB,CACpCE,QAAQC,MACN,gCAAgCH,EAAiB,UAAY,KAC3DA,GAAkBC,EAAiB,QAAU,KAE7CA,EAAiB,UAAY,kE,EAM7B,0BAAAb,CACNgB,GAEA,MAAMC,EAAQlE,KAAKC,oBAAoB,GACvC,MAAMkE,EAAOnE,KAAKC,oBAAoBD,KAAKC,oBAAoBgB,OAAS,GAExE,MAAMmD,EAASH,EAAcC,EAAQC,EACrC,MAAME,EAASJ,EAAcE,EAAOD,EACpC,GAAIlE,KAAKsE,SAASF,GAAS,OAAOC,EAElC,IAAIE,EACJ,MAAMC,EAAQxE,KAAKC,oBAAoBwE,MAAK,CAACpD,EAAIqD,KAC/C,IAAK1E,KAAKsE,SAASjD,GAAK,OAAO,MAC/BkD,EAAeG,EACf,OAAO,IAAI,IAGb,IAAKF,EAAO,OAAON,EACnB,OAAOlE,KAAKC,oBAAoBsE,GAAgBN,GAAe,EAAI,G,CAG7D,QAAAK,CAASK,GACf,GAAIA,IAAa3E,KAAKqB,GAAI,QAASrB,KAAKqB,GAAGmB,WAAWoB,cACtD,OAAOD,SAASC,gBAAkBe,C,CAGpC,MAAAC,GACE,MAAMpD,QACJA,EAAOR,QACPA,EAAOG,QACPA,EAAOyB,QACPA,EAAOrB,SACPA,EAAQsD,uBACRA,GACE7E,KACJ,OACE8E,EAACC,EAAI,CACHC,MAAO,CAAE,CAAC,WAAYpC,GACtBqC,KAAM1D,EAAW,SAAW,UAE5BuD,EAAA,OAAKE,MAAM,aACRxD,GAAWoB,GACVkC,EAAA,OAAKE,MAAM,wBACTF,EAAA,OACEE,MAAO,CACL,CAAC,WAAY,KACb,CAAC,WAAWxD,KAAY,QAG3BA,IAAY,UACXsD,EAAA,QAAMI,KAAK,iBAEXJ,EAAA,QACEE,MAAM,aACNG,UAAWvD,EAAcJ,GAAS4D,QAK1CN,EAAA,OACEE,MAAO,CACL,CAAC,iBAAkB,KACnB,CAAC,WACCxD,IAAY,YAAcJ,EAAWpB,KAAKqB,GAAI,kBAGlDyD,EAAA,OAAKE,MAAM,iBACTF,EAAA,iBAAetD,QAAQ,kBACpBoB,GAAWkC,EAAA,UAAK9D,IAElBG,GACC2D,EAAA,iBAAetD,QAAQ,QACpBoB,GAAWkC,EAAA,SAAI3D,KAIrBC,EAAWpB,KAAKqB,GAAI,WACnByD,EAAA,OAAKE,MAAM,0BACTF,EAAA,QAAMI,KAAK,cAIf3D,EACAuD,EAAA,wBACEE,MAAM,sBACNK,WAAW,QACXC,KAAK,OACLC,SAAUvF,KAAKM,gBAGjBwE,EAAA,aACEU,GAAG,iBACHL,UAAWM,EACXC,QAAS1F,KAAKE,cACdsB,QAAQ,OACR6D,WAAYM,EAAsBC,MAAK,aAC3Bf,K"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["icNavigationGroupCss","NavigationGroup","this","allGroupedNavigationItems","DYNAMIC_GROUPED_LINKS_HEIGHT_MS","IC_NAVIGATION_ITEM","mouseGate","nodeName","GROUPED_LINKS_WRAPPER_CLASS","sideNavExpandHandler","event","isSideNavExpanded","detail","sideNavExpanded","linkWrapper","el","shadowRoot","querySelector","expanded","expandedNavItemsHeight","setGroupedLinksElementHeight","setTimeout","getNavigationChildItemsHeight","collapsedNavItemsHeight","topNavResizedHandler","ev","newSize","size","deviceSize","inTopNavSideMenu","DEVICE_SIZES","L","setGroupedNavItemTabIndex","tabIndexValue","querySelectorAll","forEach","navigationItem","navItem","setAttribute","toggleGroupedLinkWrapperHeight","wrapper","style","setProperty","toggleExpanded","handleClick","navigationType","toggleDropdown","handleBlur","target","relatedTarget","contains","hideDropdown","handleTopNavKeydown","key","handleKeydown","preventDefault","handleMouseLeave","relTarget","dropdown","document","activeElement","dropdownOpen","handleMouseEnter","addEventListener","showDropdown","renderDropdownGroupedLinks","h","class","onMouseLeave","ref","renderGroupedLinks","navigationChildItemsHeight","offsetHeight","setInitialGroupedLinksWrapperHeight","renderNavigationItems","expandable","XL","getThemeForegroundColor","disconnectedCallback","parentEl","removeEventListener","componentWillLoad","getCurrentDeviceSize","navParentDetails","getNavItemParentDetails","navType","parent","componentDidLoad","Array","from","childBlurHandler","navItemClickHandler","themeChangeHandler","theme","focusStyle","mode","setFocus","groupEl","focus","groupedNavItemWrapper","height","render","label","NavigationGroupElement","Host","collapsed","role","onMouseEnter","tabindex","onBlur","onClick","onKeyDown","variant","innerHTML","chevronIcon"],"sources":["src/components/ic-navigation-group/ic-navigation-group.css?tag=ic-navigation-group&encapsulation=shadow","src/components/ic-navigation-group/ic-navigation-group.tsx"],"sourcesContent":["@import \"../../global/normalize.css\";\n\n/**\n * @prop --ic-z-index-navigation-item: z-index of navigation group item\n */\n\n:host {\n display: block;\n}\n\n:host(.in-side-menu) {\n border-bottom: var(--ic-border-width) solid var(--ic-architectural-200);\n padding: var(--ic-space-md) 0;\n}\n\n:host .navigation-group {\n height: 100%;\n width: fit-content;\n color: var(--ic-theme-text);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 var(--ic-space-md);\n transition: var(--ic-easing-transition-slow);\n position: relative;\n background: none;\n border: none;\n}\n\n:host(.in-side-menu) .navigation-group {\n height: 2.5rem;\n width: 100%;\n text-align: left;\n}\n\n:host(.in-side-menu) .navigation-group .ic-typography-label {\n width: 11.875rem;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding: 0 var(--ic-space-md) 0 var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed,\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n color: var(--ic-action-default);\n justify-content: flex-start;\n padding-left: var(--ic-space-md);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded {\n margin-bottom: var(--ic-space-xs);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-collapsed::after,\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n border-style: solid;\n border-width: 0.125em 0.125em 0 0;\n content: \"\";\n display: inline-block;\n height: 0.45em;\n left: 0.75em;\n position: relative;\n top: -0.1em;\n transform: rotate(135deg);\n vertical-align: top;\n width: 0.45em;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded::after {\n top: 0.15em;\n transform: rotate(-45deg);\n}\n\n:host .navigation-group:hover,\n:host .navigation-group:active,\n:host .selected {\n background-color: var(--ic-architectural-20);\n color: var(--ic-color-primary-text);\n outline: none;\n cursor: pointer;\n}\n\n:host(:not(.in-side-menu)) .navigation-group:focus {\n box-shadow: var(--ic-border-focus);\n border-radius: var(--ic-border-radius);\n outline: var(--ic-hc-focus-outline);\n z-index: var(--ic-z-index-navigation-item);\n transition: box-shadow var(--ic-easing-transition-fast);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:hover,\n:host(.in-side-menu) .navigation-group-side-menu:active,\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n background-color: var(--ic-architectural-20);\n color: var(--ic-action-default);\n cursor: auto;\n box-shadow: none;\n outline: none;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu:focus {\n outline: var(--ic-hc-focus-outline);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:hover:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:hover:not(:focus) {\n background-color: var(--ic-action-dark-bg-hover);\n color: var(--ic-action-default);\n cursor: pointer;\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:active:not(:focus),\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:active:not(:focus) {\n background-color: var(--ic-action-dark-bg-active);\n color: var(--ic-action-default);\n}\n\n:host(.in-side-menu) .navigation-group-side-menu-expanded:focus,\n:host(.in-side-menu) .navigation-group-side-menu-collapsed:focus {\n color: var(--ic-action-default);\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n outline: var(--ic-hc-focus-outline);\n}\n\n:host .navigation-group-dropdown {\n background-color: var(--ic-architectural-20);\n border-bottom: var(--ic-border-default);\n position: absolute;\n left: 0;\n right: 0;\n padding: var(--ic-space-xs) var(--ic-space-md);\n box-shadow: 0 0.375rem 0.5rem -0.375rem rgba(0 0 0 / 20%);\n z-index: calc(var(--ic-z-index-navigation-item) - 1);\n}\n\n:host .navigation-group-dropdown-items-list {\n list-style: none;\n display: flex;\n flex-flow: column wrap;\n align-content: flex-start;\n padding-left: var(--ic-space-md);\n max-height: 16.5rem;\n}\n\n:host .chevron-toggle-icon-wrapper {\n display: flex;\n align-items: center;\n}\n\n:host .chevron-toggle-icon-wrapper svg {\n transform: rotate(90deg);\n height: var(--ic-space-lg);\n width: var(--ic-space-lg);\n}\n\n:host .chevron-toggle-icon-closed svg {\n transform: rotate(-90deg);\n}\n\n:host(.expanded) .grouped-links-wrapper {\n height: var(--navigation-child-items-height, auto) !important;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .link,\n:host(.navigation-group-side-nav) ::slotted(a) {\n height: var(--navigation-child-items-height, auto);\n}\n\n:host(.collapsed) .grouped-links-wrapper {\n height: 0;\n transition: var(--ic-easing-transition-slow);\n overflow: hidden;\n}\n\n:host(.navigation-group-side-nav) .navigation-group {\n height: var(--navigation-group-height);\n width: var(--navigation-group-width);\n justify-content: var(--navigation-group-justify-content);\n padding-right: var(--navigation-group-expand-toggle-padding);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:hover,\n:host(.navigation-group-side-nav) .navigation-group:active,\n:host(.navigation-group-side-nav) .selected {\n background-color: var(--navigation-group-hover);\n color: var(--navigation-group-text-hover);\n}\n\n:host(.navigation-group-side-nav) .navigation-group:focus {\n box-shadow: var(--ic-border-focus-inset);\n border-radius: var(--ic-border-radius-inset);\n background: none;\n}\n\n:host(.navigation-group-side-nav) .ic-typography-caption {\n position: var(--navigation-group-title-position);\n left: var(--navigation-group-title-position-left);\n white-space: nowrap;\n}\n","import {\n Component,\n Element,\n Host,\n Prop,\n State,\n Listen,\n h,\n Method,\n} from \"@stencil/core\";\n\nimport {\n DEVICE_SIZES,\n getCurrentDeviceSize,\n getThemeForegroundColor,\n getNavItemParentDetails,\n} from \"../../utils/helpers\";\nimport { IcNavType, IcTheme } from \"../../utils/types\";\n\nimport chevronIcon from \"../../assets/chevron-icon.svg\";\n@Component({\n tag: \"ic-navigation-group\",\n styleUrl: \"ic-navigation-group.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationGroup {\n private allGroupedNavigationItems: HTMLIcNavigationItemElement[] = [];\n private collapsedNavItemsHeight: string;\n private dropdown: HTMLElement;\n private DYNAMIC_GROUPED_LINKS_HEIGHT_MS = 100;\n private expandedNavItemsHeight: string;\n private groupEl: HTMLElement;\n private IC_NAVIGATION_ITEM = \"ic-navigation-item\";\n private isSideNavExpanded: boolean;\n private mouseGate: boolean = false;\n private nodeName = \"IC-NAVIGATION-GROUP\";\n private GROUPED_LINKS_WRAPPER_CLASS = \".grouped-links-wrapper\";\n\n @Element() el: HTMLIcNavigationGroupElement;\n\n @State() deviceSize: number = DEVICE_SIZES.XL;\n @State() dropdownOpen: boolean = false;\n @State() expanded: boolean = true;\n @State() focusStyle = getThemeForegroundColor();\n @State() inTopNavSideMenu: boolean = false;\n @State() navigationType: IcNavType | \"\";\n @State() parentEl: HTMLElement;\n\n /**\n * If `true`, the group will be expandable in the side menu.\n */\n @Prop() expandable: boolean = false;\n\n /**\n * The label to display on the group.\n */\n @Prop() label: string;\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 this.deviceSize = getCurrentDeviceSize();\n const navParentDetails = getNavItemParentDetails(this.el);\n this.navigationType = navParentDetails.navType;\n this.parentEl = navParentDetails.parent;\n if (this.deviceSize <= DEVICE_SIZES.L && this.navigationType === \"top\") {\n this.inTopNavSideMenu = true;\n }\n\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\n componentDidLoad(): void {\n this.allGroupedNavigationItems = Array.from(\n this.el.querySelectorAll(this.IC_NAVIGATION_ITEM)\n );\n\n /**\n * debounce is required as the incorrect height was retrieved instantly after\n * componentDidLoad is invoked.\n */\n setTimeout(\n () => this.setInitialGroupedLinksWrapperHeight(),\n this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS\n );\n }\n\n @Listen(\"childBlur\")\n childBlurHandler(): void {\n this.hideDropdown();\n }\n\n @Listen(\"navItemClicked\")\n navItemClickHandler(): void {\n this.hideDropdown();\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.groupEl) {\n this.groupEl.focus();\n }\n }\n\n private sideNavExpandHandler = (event?: CustomEvent): void => {\n this.isSideNavExpanded = event.detail.sideNavExpanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (this.isSideNavExpanded) {\n if (this.expanded && this.expandedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\n } else {\n if (this.expanded && this.collapsedNavItemsHeight) {\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n } else if (this.expanded) {\n setTimeout(() => {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }, this.DYNAMIC_GROUPED_LINKS_HEIGHT_MS);\n }\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 toggleDropdown() {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n private setGroupedNavItemTabIndex = (tabIndexValue: string) => {\n this.el\n .querySelectorAll(this.IC_NAVIGATION_ITEM)\n .forEach((navigationItem) => {\n const navItem =\n navigationItem.shadowRoot.querySelector(\"a\") ||\n navigationItem.querySelector(\"a\");\n if (navItem) {\n navItem.setAttribute(\"tabindex\", tabIndexValue);\n }\n });\n };\n\n private toggleGroupedLinkWrapperHeight = (\n wrapper: HTMLElement,\n expanded: boolean\n ) => {\n if (!wrapper) return;\n\n if (expanded) {\n if (this.isSideNavExpanded) {\n this.setGroupedLinksElementHeight(wrapper, this.expandedNavItemsHeight);\n } else {\n this.setGroupedLinksElementHeight(\n wrapper,\n this.collapsedNavItemsHeight\n );\n }\n this.setGroupedNavItemTabIndex(\"0\");\n } else {\n wrapper.style.setProperty(\"--navigation-child-items-height\", \"0\");\n this.setGroupedNavItemTabIndex(\"-1\");\n }\n };\n\n private toggleExpanded = () => {\n this.expanded = !this.expanded;\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n this.toggleGroupedLinkWrapperHeight(linkWrapper, this.expanded);\n };\n\n private showDropdown() {\n if (!this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private hideDropdown() {\n document.removeEventListener(\"keydown\", this.handleKeydown);\n if (this.dropdownOpen) {\n this.toggleDropdown();\n }\n }\n\n private handleClick = (ev: MouseEvent) => {\n if (this.navigationType === \"top\" && ev.detail) {\n this.toggleDropdown();\n } else {\n this.toggleExpanded();\n }\n };\n\n private handleBlur = (ev: FocusEvent) => {\n const target = ev.relatedTarget as HTMLElement;\n if (!this.el.contains(target)) {\n this.hideDropdown();\n }\n };\n\n private handleTopNavKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \" \" || ev.key === \"Enter\") {\n this.toggleDropdown();\n } else if (!this.inTopNavSideMenu && ev.key === \"Escape\") {\n this.hideDropdown();\n }\n };\n\n private handleKeydown = (ev: KeyboardEvent) => {\n if (ev.key === \"Enter\" || ev.key === \" \" || ev.key === \"Escape\") {\n switch (this.navigationType) {\n case \"top\":\n this.handleTopNavKeydown(ev as KeyboardEvent);\n break;\n case \"side\":\n this.toggleExpanded();\n ev.preventDefault();\n break;\n default:\n this.toggleExpanded();\n break;\n }\n }\n };\n\n private handleMouseLeave = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n\n this.mouseGate = false;\n\n if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n document.activeElement !== this.el &&\n !this.el.contains(document.activeElement) &&\n relTarget.nodeName === this.nodeName &&\n this.dropdownOpen === true\n ) {\n this.mouseGate = true;\n this.hideDropdown();\n } else if (\n !this.el.contains(relTarget) &&\n relTarget !== this.dropdown &&\n !this.el.contains(document.activeElement)\n ) {\n this.mouseGate = false;\n setTimeout(() => {\n this.dropdownOpen ? this.hideDropdown() : null;\n }, 500);\n }\n };\n\n private handleMouseEnter = (ev: MouseEvent) => {\n const relTarget = ev.relatedTarget as HTMLElement;\n document.addEventListener(\"keydown\", this.handleKeydown);\n\n if (relTarget.nodeName === this.nodeName && this.mouseGate === true) {\n this.showDropdown();\n } else if (\n this.dropdownOpen === false &&\n relTarget !== null &&\n this.mouseGate === false\n ) {\n this.mouseGate = true;\n setTimeout(() => {\n this.mouseGate && this.showDropdown();\n }, 500);\n }\n };\n\n private renderDropdownGroupedLinks = (): HTMLDivElement => (\n <div\n class={{\n [\"navigation-group-dropdown\"]: !this.inTopNavSideMenu,\n [\"navigation-group-dropdown-side-menu\"]: this.inTopNavSideMenu,\n [\"selected\"]: this.dropdownOpen && !this.inTopNavSideMenu,\n }}\n onMouseLeave={!this.inTopNavSideMenu ? this.handleMouseLeave : null}\n ref={(el) => (this.dropdown = el)}\n >\n <nav\n class={{\n [\"navigation-group-dropdown-items\"]: !this.inTopNavSideMenu,\n }}\n >\n <ul>\n <slot></slot>\n </ul>\n </nav>\n </div>\n );\n\n private renderGroupedLinks = (): HTMLDivElement => (\n <ul class=\"grouped-links-wrapper\">\n <slot></slot>\n </ul>\n );\n\n /**\n * Gets the total height of navigation links to improve\n * smoothness of expand/collapse animations\n */\n private getNavigationChildItemsHeight = (): string => {\n let navigationChildItemsHeight = 0;\n this.allGroupedNavigationItems.forEach((navItem) => {\n navigationChildItemsHeight += navItem.offsetHeight;\n });\n\n return `${navigationChildItemsHeight}px`;\n };\n\n private setInitialGroupedLinksWrapperHeight = () => {\n const linkWrapper = this.el.shadowRoot.querySelector(\n this.GROUPED_LINKS_WRAPPER_CLASS\n ) as HTMLElement;\n\n if (!linkWrapper) return;\n\n if (\n !this.isSideNavExpanded &&\n !this.collapsedNavItemsHeight &&\n this.expanded\n ) {\n this.collapsedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.collapsedNavItemsHeight\n );\n }\n\n if (this.isSideNavExpanded && this.expanded) {\n this.expandedNavItemsHeight = this.getNavigationChildItemsHeight();\n this.setGroupedLinksElementHeight(\n linkWrapper,\n this.expandedNavItemsHeight\n );\n }\n };\n\n private renderNavigationItems = (): HTMLDivElement | null => {\n if (this.dropdownOpen || (this.inTopNavSideMenu && !this.expandable)) {\n return this.renderDropdownGroupedLinks();\n }\n\n if (this.navigationType !== \"top\") {\n return this.renderGroupedLinks();\n }\n\n return null;\n };\n\n private setGroupedLinksElementHeight(\n groupedNavItemWrapper: HTMLElement,\n height: string\n ) {\n groupedNavItemWrapper.style.setProperty(\n \"--navigation-child-items-height\",\n height\n );\n }\n\n render() {\n const { label, dropdownOpen, inTopNavSideMenu, expandable } = this;\n const NavigationGroupElement =\n !inTopNavSideMenu || expandable ? \"button\" : \"div\";\n return (\n <Host\n class={{\n [\"in-side-menu\"]: inTopNavSideMenu,\n expanded: this.expanded,\n collapsed: !this.expanded,\n [\"navigation-group-side-nav\"]: this.navigationType === \"side\",\n }}\n role=\"listitem\"\n >\n <NavigationGroupElement\n onMouseEnter={\n !inTopNavSideMenu &&\n this.navigationType === \"top\" &&\n this.handleMouseEnter\n }\n onMouseLeave={this.navigationType === \"top\" && this.handleMouseLeave}\n tabindex={inTopNavSideMenu && !expandable ? \"-1\" : \"0\"}\n onBlur={this.handleBlur}\n onClick={expandable ? this.handleClick : null}\n onKeyDown={this.handleKeydown}\n class={{\n [\"navigation-group\"]: true,\n [this.focusStyle]: !inTopNavSideMenu,\n [\"navigation-group-side-menu\"]: inTopNavSideMenu && !expandable,\n [\"navigation-group-side-menu-collapsed\"]:\n inTopNavSideMenu && expandable && !dropdownOpen,\n [\"navigation-group-side-menu-expanded\"]:\n inTopNavSideMenu && expandable && dropdownOpen,\n [\"selected\"]: dropdownOpen && !inTopNavSideMenu,\n }}\n ref={(el) => (this.groupEl = el)}\n aria-expanded={dropdownOpen || this.expanded ? \"true\" : \"false\"}\n aria-haspopup={\n !inTopNavSideMenu && this.navigationType === \"top\"\n ? \"true\"\n : \"false\"\n }\n >\n <ic-typography\n variant={this.navigationType === \"side\" ? \"caption\" : \"label\"}\n >\n {label}\n </ic-typography>\n {this.navigationType === \"side\" && expandable && (\n <div\n class={{\n \"chevron-toggle-icon-wrapper\": true,\n \"chevron-toggle-icon-closed\": this.expanded,\n }}\n innerHTML={chevronIcon}\n ></div>\n )}\n </NavigationGroupElement>\n {this.renderNavigationItems()}\n </Host>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,H as i,g as a}from"./p-52e063d3.js";import{i as s,e as n,D as o,f as r}from"./p-95a864bf.js";import"./p-26b7b18f.js";const l='/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%;}body{margin:0}main{display:block}h1{font-size:2em;margin:0.67em 0}hr{box-sizing:content-box;height:0;overflow:visible;}pre{font-family:monospace, monospace;font-size:1em;}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace, monospace;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;}button,input{overflow:visible}button,select{text-transform:none}button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type="button"]:-moz-focusring,[type="reset"]:-moz-focusring,[type="submit"]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:0.35em 0.75em 0.625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal;}progress{vertical-align:baseline}textarea{overflow:auto}[type="checkbox"],[type="radio"]{box-sizing:border-box;padding:0;}[type="number"]::-webkit-inner-spin-button,[type="number"]::-webkit-outer-spin-button{height:auto}[type="search"]{-webkit-appearance:textfield;outline-offset:-2px;}[type="search"]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font-style:inherit;vertical-align:baseline}:host{display:block;z-index:var(--ic-z-index-page-header)}:host(.sticky){position:sticky;top:0;box-shadow:var(--ic-elevation-overlay);z-index:var(--ic-z-index-sticky-page-header)}header{background-color:var(--ic-architectural-40)}header.border-bottom{border-bottom:var(--ic-border-default)}header.tabs{padding-top:var(--ic-space-md)}.breadcrumb-area{margin-bottom:var(--ic-space-md)}.main-content{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"title-area action-area"\n "input-area action-area";-moz-column-gap:var(--ic-space-md);column-gap:var(--ic-space-md);justify-content:space-between;width:100%}.title-area{display:flex;flex-direction:column;flex:1;min-width:19rem;grid-area:title-area}.header-content{display:flex;align-items:center;width:100%;flex-wrap:wrap;row-gap:var(--ic-space-xs);-moz-column-gap:var(--ic-space-md);column-gap:var(--ic-space-md)}.heading{display:inline-block;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.subheading.small{margin-top:var(--ic-space-xs)}.action-area{display:flex;gap:var(--ic-space-md);flex-flow:row wrap;justify-self:end;justify-content:flex-end;height:-moz-fit-content;height:fit-content;grid-area:action-area}.input-area,.navigation-area{margin-top:var(--ic-space-md);width:100%}.tabs-slot{display:flex;overflow-x:auto;padding:0.5rem;margin:-0.5rem}.tabs-slot::-webkit-scrollbar{display:none}.input-area{grid-area:input-area}@media screen and (max-width: 576px){::slotted(ic-text-field){--input-width:100%;max-width:20rem}.main-content{grid-template-areas:"title-area"\n "action-area"\n "input-area";justify-content:flex-start}.title-area{min-width:0}.action-area{min-width:100%;margin-top:var(--ic-space-md);justify-content:start}}@media screen and (min-width: 992px){:host(.sticky-desktop){position:sticky;top:0;box-shadow:var(--ic-elevation-overlay);z-index:var(--ic-z-index-sticky-page-header)}}';const d=class{constructor(e){t(this,e);this.resizeObserver=null;this.resizeObserverCallback=()=>{if(this.reverseOrder&&s(this.el,"actions")){this.applyReverseOrder()}};this.runResizeObserver=()=>{this.resizeObserver=new ResizeObserver((()=>{this.resizeObserverCallback()}));this.resizeObserver.observe(this.el)};this.applyReverseOrder=()=>{const t=n();if(t!==this.deviceSize){this.deviceSize=t}const e=this.el.shadowRoot.querySelector("div.action-area");const i=[];for(let t=0;t<this.actionContent.length;t++){const e=this.actionContent[t];let a=e.offsetHeight;if(a===undefined){a=0}i.push(a)}const a=Math.max(...i);let s=e.offsetHeight;if(s===undefined){s=0}const r=()=>{this.actionContent=this.actionContent.reverse();this.actionContent.forEach((t=>{this.el.append(t)}));this.areButtonsReversed=!this.areButtonsReversed};if(this.deviceSize>o.S&&s<=a&&!this.areButtonsReversed||(this.deviceSize>o.S&&s>a||this.deviceSize<=o.S)&&this.areButtonsReversed){r()}};this.actionContent=undefined;this.areButtonsReversed=false;this.deviceSize=o.XL;this.aligned="left";this.border=true;this.heading=undefined;this.reverseOrder=false;this.size="default";this.small=false;this.sticky=false;this.stickyDesktopOnly=false;this.subheading=undefined}disconnectedCallback(){if(this.resizeObserver!==null){this.resizeObserver.disconnect()}}componentWillLoad(){this.actionContent=Array.from(this.el.querySelectorAll(`[slot="actions"]`))}componentDidLoad(){r(this.runResizeObserver)}render(){const{small:t,size:a,border:n,heading:o,subheading:r,aligned:l,sticky:d,stickyDesktopOnly:c}=this;const p=o?`${o} page sections`:"navigation-landmark-page-header";return e(i,{class:{["sticky"]:d,["sticky-desktop"]:!d&&c}},e("header",{class:{["border-bottom"]:n,["tabs"]:s(this.el,"tabs")}},e("ic-section-container",{aligned:l,fullHeight:s(this.el,"tabs")},s(this.el,"breadcrumbs")&&e("div",{class:"breadcrumb-area"},e("slot",{name:"breadcrumbs"})),e("div",{class:"main-content"},e("div",{class:"title-area"},e("div",{class:"header-content"},e("slot",{name:"heading"},e("ic-typography",{variant:t||a==="small"?"h4":"h2",class:"heading"},e("h2",null,o))),e("slot",{name:"heading-adornment"})),e("div",null,e("slot",{name:"subheading"},r&&e("ic-typography",{variant:"body",class:{["subheading"]:true,["small"]:t||a==="small"}},r)))),s(this.el,"actions")&&e("div",{class:"action-area"},e("slot",{name:"actions"})),s(this.el,"input")&&e("div",{class:"input-area"},e("slot",{name:"input"}))),(s(this.el,"stepper")||s(this.el,"tabs"))&&e("div",{class:"navigation-area"},s(this.el,"stepper")&&!s(this.el,"tabs")&&e("slot",{name:"stepper"}),s(this.el,"tabs")&&e("nav",{"aria-label":p},e("ic-horizontal-scroll",null,e("ul",{class:"tabs-slot"},e("slot",{name:"tabs"}))))))))}get el(){return a(this)}};d.style=l;export{d as ic_page_header};
2
- //# sourceMappingURL=p-4d413a72.entry.js.map