@ukic/web-components 3.0.0-alpha.4 → 3.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (565) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{helpers-69219f14.js → helpers-529aaa3a.js} +5 -4
  3. package/dist/cjs/helpers-529aaa3a.js.map +1 -0
  4. package/dist/cjs/ic-accordion-group.cjs.entry.js +1 -1
  5. package/dist/cjs/ic-accordion.cjs.entry.js +1 -1
  6. package/dist/cjs/ic-alert.cjs.entry.js +3 -3
  7. package/dist/cjs/ic-alert.cjs.entry.js.map +1 -1
  8. package/dist/cjs/ic-back-to-top.cjs.entry.js +8 -5
  9. package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
  10. package/dist/cjs/ic-badge.cjs.entry.js +2 -2
  11. package/dist/cjs/ic-badge.cjs.entry.js.map +1 -1
  12. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +43 -20
  13. package/dist/cjs/ic-breadcrumb-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/ic-breadcrumb.cjs.entry.js +2 -2
  15. package/dist/cjs/ic-breadcrumb.cjs.entry.js.map +1 -1
  16. package/dist/cjs/ic-button_3.cjs.entry.js +11 -13
  17. package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
  18. package/dist/cjs/ic-card-vertical.cjs.entry.js +7 -6
  19. package/dist/cjs/ic-card-vertical.cjs.entry.js.map +1 -1
  20. package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
  21. package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
  22. package/dist/cjs/ic-chip.cjs.entry.js +1 -1
  23. package/dist/cjs/ic-data-row.cjs.entry.js +1 -1
  24. package/dist/cjs/ic-dialog.cjs.entry.js +2 -2
  25. package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
  26. package/dist/cjs/ic-divider.cjs.entry.js +1 -1
  27. package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
  28. package/dist/cjs/ic-footer-link-group.cjs.entry.js +3 -3
  29. package/dist/cjs/ic-footer-link-group.cjs.entry.js.map +1 -1
  30. package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
  31. package/dist/cjs/ic-footer.cjs.entry.js +1 -1
  32. package/dist/cjs/ic-hero.cjs.entry.js +2 -2
  33. package/dist/cjs/ic-hero.cjs.entry.js.map +1 -1
  34. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +12 -5
  35. package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
  36. package/dist/cjs/ic-input-component-container_3.cjs.entry.js +11 -23
  37. package/dist/cjs/ic-input-component-container_3.cjs.entry.js.map +1 -1
  38. package/dist/cjs/ic-input-label_2.cjs.entry.js +21 -25
  39. package/dist/cjs/ic-input-label_2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/ic-link.cjs.entry.js +3 -8
  41. package/dist/cjs/ic-link.cjs.entry.js.map +1 -1
  42. package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
  43. package/dist/cjs/ic-menu-item.cjs.entry.js +10 -9
  44. package/dist/cjs/ic-menu-item.cjs.entry.js.map +1 -1
  45. package/dist/cjs/ic-navigation-button.cjs.entry.js +7 -3
  46. package/dist/cjs/ic-navigation-button.cjs.entry.js.map +1 -1
  47. package/dist/cjs/ic-navigation-group.cjs.entry.js +4 -2
  48. package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/ic-navigation-item.cjs.entry.js +29 -4
  50. package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
  51. package/dist/cjs/ic-navigation-menu.cjs.entry.js +5 -4
  52. package/dist/cjs/ic-navigation-menu.cjs.entry.js.map +1 -1
  53. package/dist/cjs/ic-page-header.cjs.entry.js +5 -3
  54. package/dist/cjs/ic-page-header.cjs.entry.js.map +1 -1
  55. package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
  56. package/dist/cjs/ic-pagination.cjs.entry.js +5 -23
  57. package/dist/cjs/ic-pagination.cjs.entry.js.map +1 -1
  58. package/dist/cjs/ic-popover-menu.cjs.entry.js +6 -6
  59. package/dist/cjs/ic-popover-menu.cjs.entry.js.map +1 -1
  60. package/dist/cjs/ic-radio-group.cjs.entry.js +1 -1
  61. package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
  62. package/dist/cjs/ic-search-bar.cjs.entry.js +4 -4
  63. package/dist/cjs/ic-search-bar.cjs.entry.js.map +1 -1
  64. package/dist/cjs/ic-select.cjs.entry.js +10 -12
  65. package/dist/cjs/ic-select.cjs.entry.js.map +1 -1
  66. package/dist/cjs/ic-side-navigation.cjs.entry.js +11 -7
  67. package/dist/cjs/ic-side-navigation.cjs.entry.js.map +1 -1
  68. package/dist/cjs/ic-status-tag.cjs.entry.js +5 -4
  69. package/dist/cjs/ic-status-tag.cjs.entry.js.map +1 -1
  70. package/dist/cjs/ic-step.cjs.entry.js +1 -1
  71. package/dist/cjs/ic-stepper.cjs.entry.js +1 -1
  72. package/dist/cjs/ic-switch.cjs.entry.js +2 -2
  73. package/dist/cjs/ic-switch.cjs.entry.js.map +1 -1
  74. package/dist/cjs/ic-tab-group.cjs.entry.js +3 -19
  75. package/dist/cjs/ic-tab-group.cjs.entry.js.map +1 -1
  76. package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
  77. package/dist/cjs/ic-tab.cjs.entry.js +1 -1
  78. package/dist/cjs/ic-text-field.cjs.entry.js +18 -15
  79. package/dist/cjs/ic-text-field.cjs.entry.js.map +1 -1
  80. package/dist/cjs/ic-theme.cjs.entry.js +1 -1
  81. package/dist/cjs/ic-toast.cjs.entry.js +1 -1
  82. package/dist/cjs/ic-toggle-button-group.cjs.entry.js +28 -4
  83. package/dist/cjs/ic-toggle-button-group.cjs.entry.js.map +1 -1
  84. package/dist/cjs/ic-toggle-button.cjs.entry.js +9 -6
  85. package/dist/cjs/ic-toggle-button.cjs.entry.js.map +1 -1
  86. package/dist/cjs/ic-top-navigation.cjs.entry.js +6 -4
  87. package/dist/cjs/ic-top-navigation.cjs.entry.js.map +1 -1
  88. package/dist/cjs/ic-typography.cjs.entry.js +2 -2
  89. package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
  90. package/dist/cjs/loader.cjs.js +1 -1
  91. package/dist/collection/components/ic-alert/ic-alert.css +7 -1
  92. package/dist/collection/components/ic-alert/ic-alert.js +1 -1
  93. package/dist/collection/components/ic-alert/ic-alert.js.map +1 -1
  94. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js +1 -1
  95. package/dist/collection/components/ic-alert/test/basic/ic-alert.spec.js.map +1 -1
  96. package/dist/collection/components/ic-back-to-top/ic-back-to-top.css +5 -2
  97. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js +31 -4
  98. package/dist/collection/components/ic-back-to-top/ic-back-to-top.js.map +1 -1
  99. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js +14 -0
  100. package/dist/collection/components/ic-back-to-top/test/basic/ic-back-to-top.spec.js.map +1 -1
  101. package/dist/collection/components/ic-badge/ic-badge.css +3 -3
  102. package/dist/collection/components/ic-breadcrumb/ic-breadcrumb.css +4 -7
  103. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js +44 -19
  104. package/dist/collection/components/ic-breadcrumb-group/ic-breadcrumb-group.js.map +1 -1
  105. package/dist/collection/components/ic-button/ic-button.css +658 -421
  106. package/dist/collection/components/ic-button/ic-button.js +51 -35
  107. package/dist/collection/components/ic-button/ic-button.js.map +1 -1
  108. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js +3 -3
  109. package/dist/collection/components/ic-button/test/basic/ic-button.spec.js.map +1 -1
  110. package/dist/collection/components/ic-card-vertical/ic-card-vertical.css +18 -18
  111. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js +7 -6
  112. package/dist/collection/components/ic-card-vertical/ic-card-vertical.js.map +1 -1
  113. package/dist/collection/components/ic-dialog/ic-dialog.css +1 -1
  114. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.css +4 -0
  115. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js +1 -1
  116. package/dist/collection/components/ic-footer-link-group/ic-footer-link-group.js.map +1 -1
  117. package/dist/collection/components/ic-hero/ic-hero.css +7 -7
  118. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +0 -4
  119. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js +59 -4
  120. package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.js.map +1 -1
  121. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js +43 -0
  122. package/dist/collection/components/ic-horizontal-scroll/test/basic/ic-horizontal-scroll.spec.js.map +1 -1
  123. package/dist/collection/components/ic-input-component-container/ic-input-component-container.css +38 -17
  124. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js +8 -38
  125. package/dist/collection/components/ic-input-component-container/ic-input-component-container.js.map +1 -1
  126. package/dist/collection/components/ic-input-label/ic-input-label.css +6 -19
  127. package/dist/collection/components/ic-input-label/ic-input-label.js +11 -33
  128. package/dist/collection/components/ic-input-label/ic-input-label.js.map +1 -1
  129. package/dist/collection/components/ic-input-validation/ic-input-validation.css +9 -4
  130. package/dist/collection/components/ic-input-validation/ic-input-validation.js +7 -7
  131. package/dist/collection/components/ic-input-validation/ic-input-validation.js.map +1 -1
  132. package/dist/collection/components/ic-link/ic-link.css +0 -24
  133. package/dist/collection/components/ic-link/ic-link.js +3 -8
  134. package/dist/collection/components/ic-link/ic-link.js.map +1 -1
  135. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js +2 -2
  136. package/dist/collection/components/ic-link/test/basic/ic-link.spec.js.map +1 -1
  137. package/dist/collection/components/ic-menu/ic-menu.css +31 -19
  138. package/dist/collection/components/ic-menu-item/ic-menu-item.js +48 -15
  139. package/dist/collection/components/ic-menu-item/ic-menu-item.js.map +1 -1
  140. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js +1 -1
  141. package/dist/collection/components/ic-menu-item/test/basic/ic-menu-item.spec.js.map +1 -1
  142. package/dist/collection/components/ic-navigation-button/ic-navigation-button.css +14 -0
  143. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js +29 -1
  144. package/dist/collection/components/ic-navigation-button/ic-navigation-button.js.map +1 -1
  145. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js +1 -1
  146. package/dist/collection/components/ic-navigation-button/test/basic/ic-navigation-button.spec.js.map +1 -1
  147. package/dist/collection/components/ic-navigation-group/ic-navigation-group.css +13 -8
  148. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +26 -0
  149. package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
  150. package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +20 -18
  151. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +52 -3
  152. package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
  153. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.css +9 -6
  154. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js +27 -2
  155. package/dist/collection/components/ic-navigation-menu/ic-navigation-menu.js.map +1 -1
  156. package/dist/collection/components/ic-page-header/ic-page-header.css +2 -1
  157. package/dist/collection/components/ic-page-header/ic-page-header.js +27 -1
  158. package/dist/collection/components/ic-page-header/ic-page-header.js.map +1 -1
  159. package/dist/collection/components/ic-pagination/ic-pagination.js +4 -22
  160. package/dist/collection/components/ic-pagination/ic-pagination.js.map +1 -1
  161. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js +22 -9
  162. package/dist/collection/components/ic-popover-menu/ic-popover-menu.js.map +1 -1
  163. package/dist/collection/components/ic-search-bar/ic-search-bar.css +3 -1
  164. package/dist/collection/components/ic-search-bar/ic-search-bar.js +2 -3
  165. package/dist/collection/components/ic-search-bar/ic-search-bar.js.map +1 -1
  166. package/dist/collection/components/ic-select/ic-select.css +49 -36
  167. package/dist/collection/components/ic-select/ic-select.js +34 -12
  168. package/dist/collection/components/ic-select/ic-select.js.map +1 -1
  169. package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +48 -31
  170. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +9 -5
  171. package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
  172. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +3 -3
  173. package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
  174. package/dist/collection/components/ic-status-tag/ic-status-tag.css +5 -5
  175. package/dist/collection/components/ic-status-tag/ic-status-tag.js +21 -2
  176. package/dist/collection/components/ic-status-tag/ic-status-tag.js.map +1 -1
  177. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js +15 -32
  178. package/dist/collection/components/ic-status-tag/test/basic/ic-status-tag.spec.js.map +1 -1
  179. package/dist/collection/components/ic-switch/ic-switch.css +3 -0
  180. package/dist/collection/components/ic-tab-group/ic-tab-group.css +8 -0
  181. package/dist/collection/components/ic-tab-group/ic-tab-group.js +1 -17
  182. package/dist/collection/components/ic-tab-group/ic-tab-group.js.map +1 -1
  183. package/dist/collection/components/ic-text-field/ic-text-field.css +60 -9
  184. package/dist/collection/components/ic-text-field/ic-text-field.js +40 -13
  185. package/dist/collection/components/ic-text-field/ic-text-field.js.map +1 -1
  186. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js +2 -2
  187. package/dist/collection/components/ic-text-field/test/basic/ic-text-field.textarea.spec.js.map +1 -1
  188. package/dist/collection/components/ic-toggle-button/ic-toggle-button.css +189 -54
  189. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js +53 -32
  190. package/dist/collection/components/ic-toggle-button/ic-toggle-button.js.map +1 -1
  191. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.css +23 -16
  192. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js +76 -27
  193. package/dist/collection/components/ic-toggle-button-group/ic-toggle-button-group.js.map +1 -1
  194. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js +17 -0
  195. package/dist/collection/components/ic-toggle-button-group/test/ic-toggle-button-group.spec.js.map +1 -1
  196. package/dist/collection/components/ic-top-navigation/ic-top-navigation.css +41 -17
  197. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js +28 -2
  198. package/dist/collection/components/ic-top-navigation/ic-top-navigation.js.map +1 -1
  199. package/dist/collection/components/ic-typography/ic-typography.css +4 -6
  200. package/dist/collection/utils/helpers.js +4 -3
  201. package/dist/collection/utils/helpers.js.map +1 -1
  202. package/dist/components/helpers.js +5 -4
  203. package/dist/components/helpers.js.map +1 -1
  204. package/dist/components/ic-alert.js +2 -2
  205. package/dist/components/ic-alert.js.map +1 -1
  206. package/dist/components/ic-back-to-top.js +9 -5
  207. package/dist/components/ic-back-to-top.js.map +1 -1
  208. package/dist/components/ic-badge.js +1 -1
  209. package/dist/components/ic-badge.js.map +1 -1
  210. package/dist/components/ic-breadcrumb-group.js +43 -19
  211. package/dist/components/ic-breadcrumb-group.js.map +1 -1
  212. package/dist/components/ic-breadcrumb2.js +1 -1
  213. package/dist/components/ic-breadcrumb2.js.map +1 -1
  214. package/dist/components/ic-button2.js +12 -13
  215. package/dist/components/ic-button2.js.map +1 -1
  216. package/dist/components/ic-card-vertical.js +8 -7
  217. package/dist/components/ic-card-vertical.js.map +1 -1
  218. package/dist/components/ic-dialog.js +1 -1
  219. package/dist/components/ic-dialog.js.map +1 -1
  220. package/dist/components/ic-footer-link-group.js +2 -2
  221. package/dist/components/ic-footer-link-group.js.map +1 -1
  222. package/dist/components/ic-hero.js +1 -1
  223. package/dist/components/ic-hero.js.map +1 -1
  224. package/dist/components/ic-horizontal-scroll2.js +13 -4
  225. package/dist/components/ic-horizontal-scroll2.js.map +1 -1
  226. package/dist/components/ic-input-component-container2.js +9 -22
  227. package/dist/components/ic-input-component-container2.js.map +1 -1
  228. package/dist/components/ic-input-label2.js +12 -17
  229. package/dist/components/ic-input-label2.js.map +1 -1
  230. package/dist/components/ic-input-validation2.js +8 -8
  231. package/dist/components/ic-input-validation2.js.map +1 -1
  232. package/dist/components/ic-link2.js +4 -9
  233. package/dist/components/ic-link2.js.map +1 -1
  234. package/dist/components/ic-menu-item2.js +11 -10
  235. package/dist/components/ic-menu-item2.js.map +1 -1
  236. package/dist/components/ic-menu2.js +1 -1
  237. package/dist/components/ic-menu2.js.map +1 -1
  238. package/dist/components/ic-navigation-button.js +7 -2
  239. package/dist/components/ic-navigation-button.js.map +1 -1
  240. package/dist/components/ic-navigation-group.js +4 -1
  241. package/dist/components/ic-navigation-group.js.map +1 -1
  242. package/dist/components/ic-navigation-item.js +30 -4
  243. package/dist/components/ic-navigation-item.js.map +1 -1
  244. package/dist/components/ic-navigation-menu2.js +6 -4
  245. package/dist/components/ic-navigation-menu2.js.map +1 -1
  246. package/dist/components/ic-page-header.js +5 -2
  247. package/dist/components/ic-page-header.js.map +1 -1
  248. package/dist/components/ic-pagination-item2.js +1 -1
  249. package/dist/components/ic-pagination.js +4 -22
  250. package/dist/components/ic-pagination.js.map +1 -1
  251. package/dist/components/ic-popover-menu.js +5 -5
  252. package/dist/components/ic-popover-menu.js.map +1 -1
  253. package/dist/components/ic-search-bar.js +4 -4
  254. package/dist/components/ic-search-bar.js.map +1 -1
  255. package/dist/components/ic-select.js +11 -12
  256. package/dist/components/ic-select.js.map +1 -1
  257. package/dist/components/ic-side-navigation.js +11 -7
  258. package/dist/components/ic-side-navigation.js.map +1 -1
  259. package/dist/components/ic-status-tag.js +5 -3
  260. package/dist/components/ic-status-tag.js.map +1 -1
  261. package/dist/components/ic-switch.js +1 -1
  262. package/dist/components/ic-switch.js.map +1 -1
  263. package/dist/components/ic-tab-group.js +2 -18
  264. package/dist/components/ic-tab-group.js.map +1 -1
  265. package/dist/components/ic-text-field2.js +19 -15
  266. package/dist/components/ic-text-field2.js.map +1 -1
  267. package/dist/components/ic-toast.js +1 -1
  268. package/dist/components/ic-toggle-button-group.js +35 -6
  269. package/dist/components/ic-toggle-button-group.js.map +1 -1
  270. package/dist/components/ic-toggle-button.js +11 -7
  271. package/dist/components/ic-toggle-button.js.map +1 -1
  272. package/dist/components/ic-top-navigation.js +7 -4
  273. package/dist/components/ic-top-navigation.js.map +1 -1
  274. package/dist/components/ic-typography2.js +1 -1
  275. package/dist/components/ic-typography2.js.map +1 -1
  276. package/dist/core/core.css +844 -88
  277. package/dist/core/core.esm.js +1 -1
  278. package/dist/core/core.esm.js.map +1 -1
  279. package/dist/core/{p-29767574.entry.js → p-03dc6b93.entry.js} +2 -2
  280. package/dist/core/p-04339c98.entry.js +2 -0
  281. package/dist/core/p-04339c98.entry.js.map +1 -0
  282. package/dist/core/p-0aec7fab.entry.js +2 -0
  283. package/dist/core/p-0aec7fab.entry.js.map +1 -0
  284. package/dist/core/{p-37dea10d.entry.js → p-0cef50b7.entry.js} +2 -2
  285. package/dist/core/{p-4a3b1f06.entry.js → p-12f72d83.entry.js} +2 -2
  286. package/dist/core/p-12f72d83.entry.js.map +1 -0
  287. package/dist/core/{p-f5b2b26d.entry.js → p-15fd6539.entry.js} +2 -2
  288. package/dist/core/p-175baf98.entry.js +2 -0
  289. package/dist/core/p-175baf98.entry.js.map +1 -0
  290. package/dist/core/{p-806a0fab.entry.js → p-2223c7ee.entry.js} +2 -2
  291. package/dist/core/p-274b1ed7.entry.js +2 -0
  292. package/dist/core/p-274b1ed7.entry.js.map +1 -0
  293. package/dist/core/p-2a300ec7.entry.js +2 -0
  294. package/dist/core/p-2a300ec7.entry.js.map +1 -0
  295. package/dist/core/{p-f0ae2b99.entry.js → p-303307bb.entry.js} +2 -2
  296. package/dist/core/p-3317f083.entry.js +2 -0
  297. package/dist/core/p-3317f083.entry.js.map +1 -0
  298. package/dist/core/p-35bd9d76.entry.js +2 -0
  299. package/dist/core/p-35bd9d76.entry.js.map +1 -0
  300. package/dist/core/p-36f4e0bd.entry.js +2 -0
  301. package/dist/core/p-36f4e0bd.entry.js.map +1 -0
  302. package/dist/core/p-3a4000d8.entry.js +2 -0
  303. package/dist/core/p-3a4000d8.entry.js.map +1 -0
  304. package/dist/core/{p-5cd016e1.entry.js → p-48463a79.entry.js} +2 -2
  305. package/dist/core/p-48463a79.entry.js.map +1 -0
  306. package/dist/core/{p-d4a83e25.entry.js → p-4fea4610.entry.js} +2 -2
  307. package/dist/core/{p-2ef46ead.entry.js → p-60d458e5.entry.js} +2 -2
  308. package/dist/core/{p-690c5e80.entry.js → p-685d6aa9.entry.js} +2 -2
  309. package/dist/core/p-6bb3ef22.entry.js +2 -0
  310. package/dist/core/p-6bb3ef22.entry.js.map +1 -0
  311. package/dist/core/{p-2140431c.entry.js → p-6cb1f1da.entry.js} +2 -2
  312. package/dist/core/{p-c9cf932c.entry.js → p-78f46cf8.entry.js} +2 -2
  313. package/dist/core/p-78f46cf8.entry.js.map +1 -0
  314. package/dist/core/p-79c132e3.entry.js +2 -0
  315. package/dist/core/p-79c132e3.entry.js.map +1 -0
  316. package/dist/core/p-7cba80ac.entry.js +2 -0
  317. package/dist/core/p-7cba80ac.entry.js.map +1 -0
  318. package/dist/core/p-81f80487.entry.js +2 -0
  319. package/dist/core/p-81f80487.entry.js.map +1 -0
  320. package/dist/core/p-85be0268.entry.js +2 -0
  321. package/dist/core/p-85be0268.entry.js.map +1 -0
  322. package/dist/core/p-85d33e38.entry.js +2 -0
  323. package/dist/core/p-85d33e38.entry.js.map +1 -0
  324. package/dist/core/{p-d93bac01.entry.js → p-88810080.entry.js} +2 -2
  325. package/dist/core/p-88810080.entry.js.map +1 -0
  326. package/dist/core/p-97e8246c.entry.js +2 -0
  327. package/dist/core/p-97e8246c.entry.js.map +1 -0
  328. package/dist/core/p-98816f52.entry.js +2 -0
  329. package/dist/core/p-98816f52.entry.js.map +1 -0
  330. package/dist/core/{p-bbeb03ef.entry.js → p-a01841e2.entry.js} +2 -2
  331. package/dist/core/p-a6be333f.entry.js +2 -0
  332. package/dist/core/p-a6be333f.entry.js.map +1 -0
  333. package/dist/core/p-a91b0212.entry.js +2 -0
  334. package/dist/core/p-a91b0212.entry.js.map +1 -0
  335. package/dist/core/p-ae42affc.entry.js +2 -0
  336. package/dist/core/p-ae42affc.entry.js.map +1 -0
  337. package/dist/core/{p-a9341313.entry.js → p-b06939fa.entry.js} +2 -2
  338. package/dist/core/{p-95f603dd.entry.js → p-ba37e169.entry.js} +2 -2
  339. package/dist/core/p-ba55afea.entry.js +2 -0
  340. package/dist/core/p-ba55afea.entry.js.map +1 -0
  341. package/dist/core/p-bbd2febe.entry.js +2 -0
  342. package/dist/core/p-bbd2febe.entry.js.map +1 -0
  343. package/dist/core/p-c0d5043e.entry.js +2 -0
  344. package/dist/core/p-c0d5043e.entry.js.map +1 -0
  345. package/dist/core/p-c43d676b.entry.js +2 -0
  346. package/dist/core/p-c43d676b.entry.js.map +1 -0
  347. package/dist/core/p-c4f32f77.entry.js +2 -0
  348. package/dist/core/p-c4f32f77.entry.js.map +1 -0
  349. package/dist/core/{p-7bff1e96.entry.js → p-c563d479.entry.js} +2 -2
  350. package/dist/core/{p-922984cb.entry.js → p-c5d3c71e.entry.js} +2 -2
  351. package/dist/core/{p-cedc375e.entry.js → p-c7e01fcd.entry.js} +2 -2
  352. package/dist/core/p-c82240b7.entry.js +2 -0
  353. package/dist/core/p-c82240b7.entry.js.map +1 -0
  354. package/dist/core/{p-7b35de65.entry.js → p-cdbc3414.entry.js} +2 -2
  355. package/dist/core/{p-705eb610.entry.js → p-d3263ed9.entry.js} +2 -2
  356. package/dist/core/{p-fdd0b732.entry.js → p-d43e0f4b.entry.js} +2 -2
  357. package/dist/core/{p-ef78bebc.entry.js → p-d987bdc0.entry.js} +2 -2
  358. package/dist/core/p-d987bdc0.entry.js.map +1 -0
  359. package/dist/core/p-e107f362.entry.js +2 -0
  360. package/dist/core/p-e107f362.entry.js.map +1 -0
  361. package/dist/core/{p-ee6dd94c.entry.js → p-ec097c1f.entry.js} +2 -2
  362. package/dist/core/{p-428f95f8.entry.js → p-f069f50e.entry.js} +2 -2
  363. package/dist/core/p-f069f50e.entry.js.map +1 -0
  364. package/dist/core/{p-acbd15ab.entry.js → p-f580f0ce.entry.js} +2 -2
  365. package/dist/core/{p-b7eb8ef9.js → p-f99576e0.js} +2 -2
  366. package/dist/core/p-f99576e0.js.map +1 -0
  367. package/dist/esm/core.js +1 -1
  368. package/dist/esm/{helpers-e8797e8d.js → helpers-7bf8c67f.js} +6 -5
  369. package/dist/esm/helpers-7bf8c67f.js.map +1 -0
  370. package/dist/esm/ic-accordion-group.entry.js +1 -1
  371. package/dist/esm/ic-accordion.entry.js +1 -1
  372. package/dist/esm/ic-alert.entry.js +3 -3
  373. package/dist/esm/ic-alert.entry.js.map +1 -1
  374. package/dist/esm/ic-back-to-top.entry.js +9 -6
  375. package/dist/esm/ic-back-to-top.entry.js.map +1 -1
  376. package/dist/esm/ic-badge.entry.js +2 -2
  377. package/dist/esm/ic-badge.entry.js.map +1 -1
  378. package/dist/esm/ic-breadcrumb-group.entry.js +43 -20
  379. package/dist/esm/ic-breadcrumb-group.entry.js.map +1 -1
  380. package/dist/esm/ic-breadcrumb.entry.js +2 -2
  381. package/dist/esm/ic-breadcrumb.entry.js.map +1 -1
  382. package/dist/esm/ic-button_3.entry.js +11 -13
  383. package/dist/esm/ic-button_3.entry.js.map +1 -1
  384. package/dist/esm/ic-card-vertical.entry.js +7 -6
  385. package/dist/esm/ic-card-vertical.entry.js.map +1 -1
  386. package/dist/esm/ic-checkbox-group.entry.js +1 -1
  387. package/dist/esm/ic-checkbox.entry.js +1 -1
  388. package/dist/esm/ic-chip.entry.js +1 -1
  389. package/dist/esm/ic-data-row.entry.js +1 -1
  390. package/dist/esm/ic-dialog.entry.js +2 -2
  391. package/dist/esm/ic-dialog.entry.js.map +1 -1
  392. package/dist/esm/ic-divider.entry.js +1 -1
  393. package/dist/esm/ic-empty-state.entry.js +1 -1
  394. package/dist/esm/ic-footer-link-group.entry.js +3 -3
  395. package/dist/esm/ic-footer-link-group.entry.js.map +1 -1
  396. package/dist/esm/ic-footer-link.entry.js +1 -1
  397. package/dist/esm/ic-footer.entry.js +1 -1
  398. package/dist/esm/ic-hero.entry.js +2 -2
  399. package/dist/esm/ic-hero.entry.js.map +1 -1
  400. package/dist/esm/ic-horizontal-scroll.entry.js +12 -5
  401. package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
  402. package/dist/esm/ic-input-component-container_3.entry.js +11 -23
  403. package/dist/esm/ic-input-component-container_3.entry.js.map +1 -1
  404. package/dist/esm/ic-input-label_2.entry.js +21 -25
  405. package/dist/esm/ic-input-label_2.entry.js.map +1 -1
  406. package/dist/esm/ic-link.entry.js +3 -8
  407. package/dist/esm/ic-link.entry.js.map +1 -1
  408. package/dist/esm/ic-menu-group.entry.js +1 -1
  409. package/dist/esm/ic-menu-item.entry.js +10 -9
  410. package/dist/esm/ic-menu-item.entry.js.map +1 -1
  411. package/dist/esm/ic-navigation-button.entry.js +7 -3
  412. package/dist/esm/ic-navigation-button.entry.js.map +1 -1
  413. package/dist/esm/ic-navigation-group.entry.js +4 -2
  414. package/dist/esm/ic-navigation-group.entry.js.map +1 -1
  415. package/dist/esm/ic-navigation-item.entry.js +29 -4
  416. package/dist/esm/ic-navigation-item.entry.js.map +1 -1
  417. package/dist/esm/ic-navigation-menu.entry.js +5 -4
  418. package/dist/esm/ic-navigation-menu.entry.js.map +1 -1
  419. package/dist/esm/ic-page-header.entry.js +5 -3
  420. package/dist/esm/ic-page-header.entry.js.map +1 -1
  421. package/dist/esm/ic-pagination-item.entry.js +1 -1
  422. package/dist/esm/ic-pagination.entry.js +5 -23
  423. package/dist/esm/ic-pagination.entry.js.map +1 -1
  424. package/dist/esm/ic-popover-menu.entry.js +6 -6
  425. package/dist/esm/ic-popover-menu.entry.js.map +1 -1
  426. package/dist/esm/ic-radio-group.entry.js +1 -1
  427. package/dist/esm/ic-radio-option.entry.js +1 -1
  428. package/dist/esm/ic-search-bar.entry.js +4 -4
  429. package/dist/esm/ic-search-bar.entry.js.map +1 -1
  430. package/dist/esm/ic-select.entry.js +10 -12
  431. package/dist/esm/ic-select.entry.js.map +1 -1
  432. package/dist/esm/ic-side-navigation.entry.js +11 -7
  433. package/dist/esm/ic-side-navigation.entry.js.map +1 -1
  434. package/dist/esm/ic-status-tag.entry.js +5 -4
  435. package/dist/esm/ic-status-tag.entry.js.map +1 -1
  436. package/dist/esm/ic-step.entry.js +1 -1
  437. package/dist/esm/ic-stepper.entry.js +1 -1
  438. package/dist/esm/ic-switch.entry.js +2 -2
  439. package/dist/esm/ic-switch.entry.js.map +1 -1
  440. package/dist/esm/ic-tab-group.entry.js +3 -19
  441. package/dist/esm/ic-tab-group.entry.js.map +1 -1
  442. package/dist/esm/ic-tab-panel.entry.js +1 -1
  443. package/dist/esm/ic-tab.entry.js +1 -1
  444. package/dist/esm/ic-text-field.entry.js +18 -15
  445. package/dist/esm/ic-text-field.entry.js.map +1 -1
  446. package/dist/esm/ic-theme.entry.js +1 -1
  447. package/dist/esm/ic-toast.entry.js +1 -1
  448. package/dist/esm/ic-toggle-button-group.entry.js +28 -4
  449. package/dist/esm/ic-toggle-button-group.entry.js.map +1 -1
  450. package/dist/esm/ic-toggle-button.entry.js +9 -6
  451. package/dist/esm/ic-toggle-button.entry.js.map +1 -1
  452. package/dist/esm/ic-top-navigation.entry.js +6 -4
  453. package/dist/esm/ic-top-navigation.entry.js.map +1 -1
  454. package/dist/esm/ic-typography.entry.js +2 -2
  455. package/dist/esm/ic-typography.entry.js.map +1 -1
  456. package/dist/esm/loader.js +1 -1
  457. package/dist/types/components/ic-back-to-top/ic-back-to-top.d.ts +5 -0
  458. package/dist/types/components/ic-breadcrumb-group/ic-breadcrumb-group.d.ts +1 -0
  459. package/dist/types/components/ic-button/ic-button.d.ts +9 -5
  460. package/dist/types/components/ic-card-vertical/ic-card-vertical.d.ts +2 -2
  461. package/dist/types/components/ic-horizontal-scroll/ic-horizontal-scroll.d.ts +7 -1
  462. package/dist/types/components/ic-input-component-container/ic-input-component-container.d.ts +0 -4
  463. package/dist/types/components/ic-input-label/ic-input-label.d.ts +0 -4
  464. package/dist/types/components/ic-menu-item/ic-menu-item.d.ts +10 -4
  465. package/dist/types/components/ic-navigation-button/ic-navigation-button.d.ts +5 -1
  466. package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +5 -1
  467. package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +7 -1
  468. package/dist/types/components/ic-navigation-menu/ic-navigation-menu.d.ts +5 -0
  469. package/dist/types/components/ic-page-header/ic-page-header.d.ts +5 -1
  470. package/dist/types/components/ic-pagination/ic-pagination.d.ts +0 -4
  471. package/dist/types/components/ic-popover-menu/ic-popover-menu.d.ts +3 -6
  472. package/dist/types/components/ic-select/ic-select.d.ts +6 -2
  473. package/dist/types/components/ic-status-tag/ic-status-tag.d.ts +4 -0
  474. package/dist/types/components/ic-tab-group/ic-tab-group.d.ts +0 -4
  475. package/dist/types/components/ic-text-field/ic-text-field.d.ts +5 -1
  476. package/dist/types/components/ic-toggle-button/ic-toggle-button.d.ts +9 -5
  477. package/dist/types/components/ic-toggle-button-group/ic-toggle-button-group.d.ts +12 -5
  478. package/dist/types/components/ic-top-navigation/ic-top-navigation.d.ts +5 -1
  479. package/dist/types/components.d.ts +152 -48
  480. package/hydrate/index.js +297 -236
  481. package/package.json +2 -2
  482. package/vscode-data.json +201 -70
  483. package/dist/cjs/helpers-69219f14.js.map +0 -1
  484. package/dist/core/p-13d5875c.entry.js +0 -2
  485. package/dist/core/p-13d5875c.entry.js.map +0 -1
  486. package/dist/core/p-19872973.entry.js +0 -2
  487. package/dist/core/p-19872973.entry.js.map +0 -1
  488. package/dist/core/p-2e909738.entry.js +0 -2
  489. package/dist/core/p-2e909738.entry.js.map +0 -1
  490. package/dist/core/p-2eae9b27.entry.js +0 -2
  491. package/dist/core/p-2eae9b27.entry.js.map +0 -1
  492. package/dist/core/p-3d9726a3.entry.js +0 -2
  493. package/dist/core/p-3d9726a3.entry.js.map +0 -1
  494. package/dist/core/p-428f95f8.entry.js.map +0 -1
  495. package/dist/core/p-4973c563.entry.js +0 -2
  496. package/dist/core/p-4973c563.entry.js.map +0 -1
  497. package/dist/core/p-4a3b1f06.entry.js.map +0 -1
  498. package/dist/core/p-5cd016e1.entry.js.map +0 -1
  499. package/dist/core/p-5ef8e106.entry.js +0 -2
  500. package/dist/core/p-5ef8e106.entry.js.map +0 -1
  501. package/dist/core/p-5f4a6555.entry.js +0 -2
  502. package/dist/core/p-5f4a6555.entry.js.map +0 -1
  503. package/dist/core/p-605c0c92.entry.js +0 -2
  504. package/dist/core/p-605c0c92.entry.js.map +0 -1
  505. package/dist/core/p-655a9e0f.entry.js +0 -2
  506. package/dist/core/p-655a9e0f.entry.js.map +0 -1
  507. package/dist/core/p-65a16de9.entry.js +0 -2
  508. package/dist/core/p-65a16de9.entry.js.map +0 -1
  509. package/dist/core/p-76263187.entry.js +0 -2
  510. package/dist/core/p-76263187.entry.js.map +0 -1
  511. package/dist/core/p-78c1f1cc.entry.js +0 -2
  512. package/dist/core/p-78c1f1cc.entry.js.map +0 -1
  513. package/dist/core/p-79d0be03.entry.js +0 -2
  514. package/dist/core/p-79d0be03.entry.js.map +0 -1
  515. package/dist/core/p-85173458.entry.js +0 -2
  516. package/dist/core/p-85173458.entry.js.map +0 -1
  517. package/dist/core/p-979c2792.entry.js +0 -2
  518. package/dist/core/p-979c2792.entry.js.map +0 -1
  519. package/dist/core/p-97fb2bdf.entry.js +0 -2
  520. package/dist/core/p-97fb2bdf.entry.js.map +0 -1
  521. package/dist/core/p-9ec7f96c.entry.js +0 -2
  522. package/dist/core/p-9ec7f96c.entry.js.map +0 -1
  523. package/dist/core/p-9fa93dfe.entry.js +0 -2
  524. package/dist/core/p-9fa93dfe.entry.js.map +0 -1
  525. package/dist/core/p-ae0775aa.entry.js +0 -2
  526. package/dist/core/p-ae0775aa.entry.js.map +0 -1
  527. package/dist/core/p-b7eb8ef9.js.map +0 -1
  528. package/dist/core/p-ba6ecc15.entry.js +0 -2
  529. package/dist/core/p-ba6ecc15.entry.js.map +0 -1
  530. package/dist/core/p-c0fc3d02.entry.js +0 -2
  531. package/dist/core/p-c0fc3d02.entry.js.map +0 -1
  532. package/dist/core/p-c396bd4d.entry.js +0 -2
  533. package/dist/core/p-c396bd4d.entry.js.map +0 -1
  534. package/dist/core/p-c9cf932c.entry.js.map +0 -1
  535. package/dist/core/p-d93bac01.entry.js.map +0 -1
  536. package/dist/core/p-eb3b4935.entry.js +0 -2
  537. package/dist/core/p-eb3b4935.entry.js.map +0 -1
  538. package/dist/core/p-ebafab37.entry.js +0 -2
  539. package/dist/core/p-ebafab37.entry.js.map +0 -1
  540. package/dist/core/p-ef78bebc.entry.js.map +0 -1
  541. package/dist/core/p-f24984c5.entry.js +0 -2
  542. package/dist/core/p-f24984c5.entry.js.map +0 -1
  543. package/dist/core/p-f71c00ce.entry.js +0 -2
  544. package/dist/core/p-f71c00ce.entry.js.map +0 -1
  545. package/dist/esm/helpers-e8797e8d.js.map +0 -1
  546. /package/dist/core/{p-29767574.entry.js.map → p-03dc6b93.entry.js.map} +0 -0
  547. /package/dist/core/{p-37dea10d.entry.js.map → p-0cef50b7.entry.js.map} +0 -0
  548. /package/dist/core/{p-f5b2b26d.entry.js.map → p-15fd6539.entry.js.map} +0 -0
  549. /package/dist/core/{p-806a0fab.entry.js.map → p-2223c7ee.entry.js.map} +0 -0
  550. /package/dist/core/{p-f0ae2b99.entry.js.map → p-303307bb.entry.js.map} +0 -0
  551. /package/dist/core/{p-d4a83e25.entry.js.map → p-4fea4610.entry.js.map} +0 -0
  552. /package/dist/core/{p-2ef46ead.entry.js.map → p-60d458e5.entry.js.map} +0 -0
  553. /package/dist/core/{p-690c5e80.entry.js.map → p-685d6aa9.entry.js.map} +0 -0
  554. /package/dist/core/{p-2140431c.entry.js.map → p-6cb1f1da.entry.js.map} +0 -0
  555. /package/dist/core/{p-bbeb03ef.entry.js.map → p-a01841e2.entry.js.map} +0 -0
  556. /package/dist/core/{p-a9341313.entry.js.map → p-b06939fa.entry.js.map} +0 -0
  557. /package/dist/core/{p-95f603dd.entry.js.map → p-ba37e169.entry.js.map} +0 -0
  558. /package/dist/core/{p-7bff1e96.entry.js.map → p-c563d479.entry.js.map} +0 -0
  559. /package/dist/core/{p-922984cb.entry.js.map → p-c5d3c71e.entry.js.map} +0 -0
  560. /package/dist/core/{p-cedc375e.entry.js.map → p-c7e01fcd.entry.js.map} +0 -0
  561. /package/dist/core/{p-7b35de65.entry.js.map → p-cdbc3414.entry.js.map} +0 -0
  562. /package/dist/core/{p-705eb610.entry.js.map → p-d3263ed9.entry.js.map} +0 -0
  563. /package/dist/core/{p-fdd0b732.entry.js.map → p-d43e0f4b.entry.js.map} +0 -0
  564. /package/dist/core/{p-ee6dd94c.entry.js.map → p-ec097c1f.entry.js.map} +0 -0
  565. /package/dist/core/{p-acbd15ab.entry.js.map → p-f580f0ce.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ic-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-link/test/basic/ic-link.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../../ic-alert/ic-alert\";\nimport { Link } from \"../../ic-link\";\n\ndescribe(\"ic-link component\", () => {\n it(\"should render a link by default with the correct text\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link\");\n });\n\n it(\"should apply the 'download' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link download=\"test-download\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"download-link\");\n });\n\n it(\"should apply the 'href' attribute and ic-link styling to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-href\");\n });\n\n it(\"should apply the 'dark' theme styling and ic-link styling\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\" theme=\"dark\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"link-dark-theme\");\n });\n\n it(\"should apply the 'hreflang' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link hreflang=\"test-hreflang\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-hreflang\");\n });\n\n it(\"should apply the 'referrerpolicy' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link referrerpolicy=\"no-referrer\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-referrerpolicy\");\n });\n\n it(\"should apply the 'rel' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link rel=\"test-rel\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-rel\");\n });\n\n it(\"should apply the 'target' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"test-target\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-target\");\n });\n\n it(\"should render an 'open in new' icon when target is blank\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"_blank\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-target-blank\");\n });\n\n it(\"should render a slotted link\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>\n <ic-link slot=\"router-item\">Slotted Link</ic-link>\n </ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"slotted-link\");\n });\n\n it(\"should get theme from context\", async () => {\n const page = await newSpecPage({\n components: [Alert, Link],\n html: `<ic-alert message=\"This has an action\"><ic-link slot=\"action\">Theme context link</ic-link></ic-alert>`,\n });\n\n expect(page.root).toMatchSnapshot(\"alert-theme-context\");\n });\n\n it(\"should correctly set variant on theme change\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-hero heading=\"Hero heading\" subheading=\"Hero description\">\n <ic-link slot=\"interaction\">Link</ic-link>\n </ic-hero>\n`,\n });\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.theme).toBe(\"light\");\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.theme).toBe(\"dark\");\n });\n\n it(\"should call 'setFocus' when link is focused\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should update any attributes that are inherited from the root element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBeNull();\n\n page.root.setAttribute(\"aria-label\", \"new-label\");\n page.rootInstance.hostMutationCallback([{ attributeName: \"aria-label\" }]);\n await page.waitForChanges();\n\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBe(\"new-label\");\n page.rootInstance.disconnectedCallback();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-link.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-link/test/basic/ic-link.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,iCAAiC;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,0DAA0D;SACjE,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,kDAAkD;SACzD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,gEAAgE;SACvE,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,0DAA0D;SACjE,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,uBAAuB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,8DAA8D;SACrE,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,6BAA6B,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,gDAAgD;SACvD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,sDAAsD;SAC7D,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,iDAAiD;SACxD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,2BAA2B,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE;;iBAEK;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;YACzB,IAAI,EAAE,uGAAuG;SAC9G,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE;;;CAGX;SACI,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,iCAAiC;SACxC,CAAC,CAAC;QAEH,6EAA6E;QAC7E,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;YAC7B,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,IAAI,EAAE,iCAAiC;SACxC,CAAC,CAAC;QACH,MAAM,CACJ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CACnE,CAAC,QAAQ,EAAE,CAAC;QAEb,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,CACJ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CACnE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpB,IAAI,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Alert } from \"../../../ic-alert/ic-alert\";\nimport { Link } from \"../../ic-link\";\n\ndescribe(\"ic-link component\", () => {\n it(\"should render a link by default with the correct text\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link\");\n });\n\n it(\"should apply the 'download' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link download=\"test-download\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"download-link\");\n });\n\n it(\"should apply the 'href' attribute and ic-link styling to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-href\");\n });\n\n it(\"should apply the 'dark' theme styling and ic-link styling\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link href=\"test-href\" theme=\"dark\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"link-dark-theme\");\n });\n\n it(\"should apply the 'hreflang' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link hreflang=\"test-hreflang\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-hreflang\");\n });\n\n it(\"should apply the 'referrerpolicy' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link referrerpolicy=\"no-referrer\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-referrerpolicy\");\n });\n\n it(\"should apply the 'rel' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link rel=\"test-rel\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-rel\");\n });\n\n it(\"should apply the 'target' attribute to the anchor element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"test-target\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-target\");\n });\n\n it(\"should render an 'open in new' icon when target is blank\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link target=\"_blank\">IC Link Test</ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"default-link-target-blank\");\n });\n\n it(\"should render a slotted link\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>\n <ic-link slot=\"router-item\">Slotted Link</ic-link>\n </ic-link>`,\n });\n\n expect(page.root).toMatchSnapshot(\"slotted-link\");\n });\n\n it(\"should get theme from context\", async () => {\n const page = await newSpecPage({\n components: [Alert, Link],\n html: `<ic-alert message=\"This has an action\"><ic-link slot=\"action\">Theme context link</ic-link></ic-alert>`,\n });\n\n expect(page.root).toMatchSnapshot(\"alert-theme-context\");\n });\n\n it(\"should correctly set variant on theme change\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-hero heading=\"Hero heading\" subheading=\"Hero description\">\n <ic-link slot=\"interaction\">Link</ic-link>\n </ic-hero>\n`,\n });\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.theme).toBe(\"dark\");\n\n page.rootInstance.themeChangeHandler({ detail: { mode: \"light\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.theme).toBe(\"light\");\n });\n\n it(\"should call 'setFocus' when link is focused\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n\n //Can't expect anything in this test - this is to increase code coverage only\n await page.rootInstance.setFocus().toHaveBeenCalled;\n });\n\n it(\"should update any attributes that are inherited from the root element\", async () => {\n const page = await newSpecPage({\n components: [Link],\n html: `<ic-link>IC Link Test</ic-link>`,\n });\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBeNull();\n\n page.root.setAttribute(\"aria-label\", \"new-label\");\n page.rootInstance.hostMutationCallback([{ attributeName: \"aria-label\" }]);\n await page.waitForChanges();\n\n expect(\n page.root.shadowRoot.querySelector(\"a\").getAttribute(\"aria-label\")\n ).toBe(\"new-label\");\n page.rootInstance.disconnectedCallback();\n });\n});\n"]}
@@ -454,14 +454,17 @@ video {
454
454
  :host {
455
455
  max-height: 0;
456
456
  width: var(--menu-width, var(--input-width, 20rem));
457
- color: var(--menu-item-text-color, var(--ic-color-text-primary));
457
+ color: var(--menu-item-text-color, var(--ic-menu-list-option-text-color));
458
458
 
459
459
  --ic-typography-color: var(
460
460
  --menu-item-text-color,
461
- var(--ic-color-text-primary)
461
+ var(--ic-menu-list-option-text-color)
462
462
  );
463
463
 
464
- background-color: var(--menu-bg-color, var(--ic-architectural-white));
464
+ background-color: var(
465
+ --menu-bg-color,
466
+ var(--ic-menu-list-option-background-color)
467
+ );
465
468
  position: relative;
466
469
  z-index: var(--ic-z-index-menu);
467
470
  box-sizing: border-box;
@@ -494,7 +497,10 @@ video {
494
497
  text-decoration: none;
495
498
  list-style-type: none;
496
499
  border-radius: 1px;
497
- background-color: var(--menu-bg-color, var(--ic-architectural-white));
500
+ background-color: var(
501
+ --menu-bg-color,
502
+ var(--ic-menu-list-option-background-color)
503
+ );
498
504
  visibility: hidden;
499
505
  max-height: 0;
500
506
  overflow-y: hidden;
@@ -517,7 +523,7 @@ video {
517
523
  display: flex;
518
524
  flex-direction: column-reverse;
519
525
  border: var(--ic-border-width) solid
520
- var(--menu-border-color, var(--ic-architectural-400));
526
+ var(--menu-border-color, var(--ic-menu-border-color));
521
527
  transition: box-shadow var(--ic-easing-transition-fast);
522
528
  }
523
529
 
@@ -570,11 +576,11 @@ video {
570
576
  }
571
577
 
572
578
  .option:not(.disabled-option):hover {
573
- background-color: var(--ic-action-dark-bg-hover);
579
+ background-color: var(--ic-menu-list-option-hover-background-color);
574
580
  }
575
581
 
576
582
  .option:not(.disabled-option):active {
577
- background-color: var(--ic-action-dark-bg-pressed);
583
+ background-color: var(--ic-menu-list-option-pressed-background-color);
578
584
  }
579
585
 
580
586
  .option:focus-visible {
@@ -582,7 +588,10 @@ video {
582
588
  }
583
589
 
584
590
  .option:not(.disabled-option) .option-description {
585
- --ic-typography-color: var(--ic-color-text-secondary);
591
+ --ic-typography-color: var(
592
+ --menu-item-desc-text-color,
593
+ var(--ic-menu-list-option-description-text-color)
594
+ );
586
595
  }
587
596
 
588
597
  .option .option-label {
@@ -618,15 +627,15 @@ video {
618
627
 
619
628
  .option.loading-option .option-text-container {
620
629
  margin-left: calc(var(--ic-space-xs) + var(--ic-space-xxxs));
621
- color: var(--ic-color-text-secondary);
630
+ color: var(--ic-menu-loading-list-option-text-color);
622
631
 
623
- --ic-typography-color: var(--ic-color-text-secondary);
632
+ --ic-typography-color: var(--ic-menu-loading-list-option-text-color);
624
633
  }
625
634
 
626
635
  .error-icon-svg {
627
636
  height: var(--ic-space-md);
628
637
  width: var(--ic-space-md);
629
- fill: var(--ic-status-error-default);
638
+ fill: var(--ic-atoms-status-icon-error);
630
639
  align-self: center;
631
640
  display: flex;
632
641
  margin-right: calc(var(--ic-space-xxs) * 1.2);
@@ -652,7 +661,7 @@ video {
652
661
  padding: var(--ic-space-lg) calc(var(--ic-space-xs) - var(--ic-space-1px))
653
662
  var(--ic-space-xs);
654
663
 
655
- --ic-typography-color: var(--ic-color-text-tertiary);
664
+ --ic-typography-color: var(--ic-menu-option-group-label-text-color);
656
665
  }
657
666
 
658
667
  :host(.ic-menu-small) .option-group-title {
@@ -661,13 +670,13 @@ video {
661
670
  }
662
671
 
663
672
  .last-recommended-option {
664
- border-bottom: var(--ic-border-default);
673
+ border-bottom: var(--ic-menu-last-recommended-option-border);
665
674
  }
666
675
 
667
676
  .disabled-option {
668
- color: var(--ic-architectural-200);
677
+ color: var(--ic-atoms-list-option-text-disabled-light);
669
678
 
670
- --ic-typography-color: var(--ic-architectural-200);
679
+ --ic-typography-color: var(--ic-atoms-list-option-text-disabled-light);
671
680
 
672
681
  cursor: default;
673
682
  pointer-events: none;
@@ -676,9 +685,11 @@ video {
676
685
  .focused-option,
677
686
  .focused-option .option-description {
678
687
  background-color: var(--ic-color-focus-inner) !important;
679
- color: var(--ic-architectural-white) !important;
688
+ color: var(--ic-atoms-list-option-text-focused-light) !important;
680
689
 
681
- --ic-typography-color: var(--ic-architectural-white) !important;
690
+ --ic-typography-color: var(
691
+ --ic-atoms-list-option-text-focused-light
692
+ ) !important;
682
693
  }
683
694
 
684
695
  :host(.no-results) li {
@@ -694,9 +705,10 @@ video {
694
705
  display: flex;
695
706
  align-items: center;
696
707
  justify-content: space-between;
697
- background-color: var(--ic-architectural-40);
708
+ background-color: var(--ic-menu-option-bar-background-color);
698
709
  visibility: hidden;
699
- border-bottom: var(--ic-border-width) solid var(--ic-architectural-400);
710
+ border-bottom: var(--ic-border-width) solid
711
+ var(--ic-menu-option-bar-divider-color);
700
712
  border-radius: 1px 1px 0 0;
701
713
  }
702
714
 
@@ -13,12 +13,12 @@ export class MenuItem {
13
13
  }
14
14
  else if (this.variant === "toggle") {
15
15
  e.preventDefault();
16
- this.toggleChecked = !this.toggleChecked;
16
+ this.checked = !this.checked;
17
+ this.icToggleChecked.emit({
18
+ checked: this.checked,
19
+ });
17
20
  }
18
- this.handleMenuItemClick.emit({
19
- label: this.label,
20
- hasSubMenu: !!this.el.submenuTriggerFor,
21
- });
21
+ this.handleMenuItemClick.emit(this.el);
22
22
  };
23
23
  this.getMenuItemAriaLabel = () => {
24
24
  let ariaLabel = this.label;
@@ -46,7 +46,7 @@ export class MenuItem {
46
46
  return ariaLabel;
47
47
  }
48
48
  };
49
- this.toggleChecked = false;
49
+ this.checked = false;
50
50
  this.description = undefined;
51
51
  this.disabled = false;
52
52
  this.href = undefined;
@@ -82,7 +82,7 @@ export class MenuItem {
82
82
  return (h(Host, { class: {
83
83
  ["ic-menu-item-disabled"]: this.disabled,
84
84
  } }, h("li", { role: this.variant === "toggle" ? "menuitemcheckbox" : "menuitem", "aria-disabled": `${this.disabled}`, "aria-checked": this.variant === "toggle"
85
- ? this.toggleChecked
85
+ ? this.checked
86
86
  ? "true"
87
87
  : "false"
88
88
  : undefined }, h("ic-button", { fullWidth: true, variant: "tertiary", onClick: this.handleClick, href: isPropDefined(this.href), hreflang: isPropDefined(this.hreflang), target: isPropDefined(this.target), rel: isPropDefined(this.rel), referrerpolicy: this.referrerpolicy !== undefined ? this.referrerpolicy : null, "aria-disabled": `${this.disabled}`, "aria-label": this.getMenuItemAriaLabel(), "aria-haspopup": isPropDefined(this.submenuTriggerFor) ||
@@ -90,7 +90,7 @@ export class MenuItem {
90
90
  ? "menu"
91
91
  : false }, h("div", { class: "focus-border" }, isSlotUsed(this.el, "icon") && (h("span", { class: "icon" }, h("slot", { name: "icon" }))), h(MenuItemInformation, null), this.variant === "toggle" && (h("span", { class: {
92
92
  ["check-icon"]: true,
93
- ["hide"]: !this.toggleChecked,
93
+ ["hide"]: !this.checked,
94
94
  }, "aria-hidden": "true", innerHTML: Check })), isPropDefined(this.submenuTriggerFor) && (h("span", { class: { ["submenu-icon"]: true }, "aria-hidden": "true", innerHTML: Chevron })))))));
95
95
  }
96
96
  static get is() { return "ic-menu-item"; }
@@ -108,6 +108,24 @@ export class MenuItem {
108
108
  }
109
109
  static get properties() {
110
110
  return {
111
+ "checked": {
112
+ "type": "boolean",
113
+ "mutable": true,
114
+ "complexType": {
115
+ "original": "boolean",
116
+ "resolved": "boolean",
117
+ "references": {}
118
+ },
119
+ "required": false,
120
+ "optional": false,
121
+ "docs": {
122
+ "tags": [],
123
+ "text": "If `true`, the menu item will be in a checked state. This is only applicable when variant is set to `toggle`."
124
+ },
125
+ "attribute": "checked",
126
+ "reflect": true,
127
+ "defaultValue": "false"
128
+ },
111
129
  "description": {
112
130
  "type": "string",
113
131
  "mutable": false,
@@ -310,11 +328,6 @@ export class MenuItem {
310
328
  }
311
329
  };
312
330
  }
313
- static get states() {
314
- return {
315
- "toggleChecked": {}
316
- };
317
- }
318
331
  static get events() {
319
332
  return [{
320
333
  "method": "childBlur",
@@ -348,8 +361,28 @@ export class MenuItem {
348
361
  "text": ""
349
362
  },
350
363
  "complexType": {
351
- "original": "{\n label: string;\n hasSubMenu: boolean;\n }",
352
- "resolved": "{ label: string; hasSubMenu: boolean; }",
364
+ "original": "HTMLIcMenuItemElement",
365
+ "resolved": "HTMLIcMenuItemElement",
366
+ "references": {
367
+ "HTMLIcMenuItemElement": {
368
+ "location": "global",
369
+ "id": "global::HTMLIcMenuItemElement"
370
+ }
371
+ }
372
+ }
373
+ }, {
374
+ "method": "icToggleChecked",
375
+ "name": "icToggleChecked",
376
+ "bubbles": true,
377
+ "cancelable": true,
378
+ "composed": true,
379
+ "docs": {
380
+ "tags": [],
381
+ "text": "Emitted when the user clicks a menu item that is set to the toggle variant."
382
+ },
383
+ "complexType": {
384
+ "original": "{\n checked: boolean;\n }",
385
+ "resolved": "{ checked: boolean; }",
353
386
  "references": {}
354
387
  }
355
388
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"ic-menu-item.js","sourceRoot":"","sources":["../../../src/components/ic-menu-item/ic-menu-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n State,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport { IcMenuItemVariants } from \"./ic-menu-item.types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Chevron from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot icon - Content will be placed to the left of the menu item label.\n */\n\n@Component({\n tag: \"ic-menu-item\",\n styleUrl: \"ic-menu-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class MenuItem {\n @Element() el: HTMLIcMenuItemElement;\n\n @State() toggleChecked: boolean = false;\n\n /**\n * The description displayed in the menu item, below the label.\n */\n @Prop() description?: string;\n\n /**\n * If `true`, the menu item will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The URL that the link points to. This will render the menu item as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label describing the keyboard shortcut for a menu item's action.\n */\n @Prop() keyboardShortcutLabel?: string;\n\n /**\n * The label to display in the menu item.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * This references the popover menu instance that the menu item is a trigger for. If this prop is set, then the variant will always be default.\n */\n @Prop() submenuTriggerFor?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The variant of the menu item.\n */\n @Prop({ mutable: true, reflect: true }) variant: IcMenuItemVariants =\n \"default\";\n\n /**\n * @internal Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal Emitted when the user clicks a menu item.\n */\n @Event() handleMenuItemClick: EventEmitter<{\n label: string;\n hasSubMenu: boolean;\n }>;\n\n /**\n * @internal Emitted when the user clicks a menu item that triggers a popover menu instance.\n */\n @Event() triggerPopoverMenuInstance: EventEmitter<void>;\n\n componentWillLoad(): void {\n // This ensures that trigger menu items are always set to the default variant\n if (isPropDefined(this.submenuTriggerFor) && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Menu Item\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n }\n\n private handleClick = (e: Event): void => {\n if (isPropDefined(this.submenuTriggerFor)) {\n this.triggerPopoverMenuInstance.emit();\n } else if (this.variant === \"toggle\") {\n e.preventDefault();\n this.toggleChecked = !this.toggleChecked;\n }\n this.handleMenuItemClick.emit({\n label: this.label,\n hasSubMenu: !!this.el.submenuTriggerFor,\n });\n };\n\n private getMenuItemAriaLabel = (): string => {\n let ariaLabel = this.label;\n\n if (isPropDefined(this.description)) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n\n if (isPropDefined(this.keyboardShortcutLabel)) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcutLabel}`;\n }\n\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n\n if (isPropDefined(this.submenuTriggerFor)) {\n ariaLabel = `${ariaLabel}, triggers submenu`;\n }\n\n if (this.el.classList.contains(\"ic-popover-submenu-back-button\")) {\n ariaLabel = \"Go back to parent menu\";\n }\n const parentEl = this.el.parentElement;\n\n if (\n parentEl.tagName === \"IC-MENU-GROUP\" &&\n (parentEl as HTMLIcMenuGroupElement).label\n ) {\n return `${ariaLabel}, ${\n (parentEl as HTMLIcMenuGroupElement).label\n } menu group`;\n } else {\n return ariaLabel;\n }\n };\n\n render() {\n // A sub-component to layout the menu information correctly in ic-button\n const MenuItemInformation = () => {\n return (\n <div class=\"menu-item-info\">\n <div class=\"menu-labels\">\n <ic-typography class=\"menu-item-label\">{this.label}</ic-typography>\n {this.keyboardShortcutLabel && (\n <ic-typography variant=\"caption\" class=\"shortcut\">\n {this.keyboardShortcutLabel}\n </ic-typography>\n )}\n </div>\n {this.description && (\n <ic-typography class=\"menu-item-description\" variant=\"caption\">\n {this.description}\n </ic-typography>\n )}\n </div>\n );\n };\n\n return (\n <Host\n class={{\n [\"ic-menu-item-disabled\"]: this.disabled,\n }}\n >\n <li\n role={this.variant === \"toggle\" ? \"menuitemcheckbox\" : \"menuitem\"}\n aria-disabled={`${this.disabled}`}\n aria-checked={\n this.variant === \"toggle\"\n ? this.toggleChecked\n ? \"true\"\n : \"false\"\n : undefined\n }\n >\n <ic-button\n fullWidth\n variant=\"tertiary\"\n onClick={this.handleClick}\n href={isPropDefined(this.href)}\n hreflang={isPropDefined(this.hreflang)}\n target={isPropDefined(this.target)}\n rel={isPropDefined(this.rel)}\n referrerpolicy={\n this.referrerpolicy !== undefined ? this.referrerpolicy : null\n }\n aria-disabled={`${this.disabled}`}\n aria-label={this.getMenuItemAriaLabel()}\n aria-haspopup={\n isPropDefined(this.submenuTriggerFor) ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\n : false\n }\n >\n <div class=\"focus-border\">\n {isSlotUsed(this.el, \"icon\") && (\n <span class=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n )}\n <MenuItemInformation />\n {this.variant === \"toggle\" && (\n <span\n class={{\n [\"check-icon\"]: true,\n [\"hide\"]: !this.toggleChecked,\n }}\n aria-hidden=\"true\"\n innerHTML={Check}\n />\n )}\n {isPropDefined(this.submenuTriggerFor) && (\n <span\n class={{ [\"submenu-icon\"]: true }}\n aria-hidden=\"true\"\n innerHTML={Chevron}\n />\n )}\n </div>\n </ic-button>\n </li>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-menu-item.js","sourceRoot":"","sources":["../../../src/components/ic-menu-item/ic-menu-item.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n h,\n Event,\n EventEmitter,\n Listen,\n} from \"@stencil/core\";\nimport {\n isSlotUsed,\n onComponentRequiredPropUndefined,\n removeDisabledFalse,\n isPropDefined,\n} from \"../../utils/helpers\";\nimport { IcMenuItemVariants } from \"./ic-menu-item.types\";\nimport Check from \"../../assets/check-icon.svg\";\nimport Chevron from \"../../assets/chevron-icon.svg\";\n\n/**\n * @slot icon - Content will be placed to the left of the menu item label.\n */\n\n@Component({\n tag: \"ic-menu-item\",\n styleUrl: \"ic-menu-item.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class MenuItem {\n @Element() el: HTMLIcMenuItemElement;\n\n /**\n * If `true`, the menu item will be in a checked state. This is only applicable when variant is set to `toggle`.\n */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /**\n * The description displayed in the menu item, below the label.\n */\n @Prop() description?: string;\n\n /**\n * If `true`, the menu item will be in disabled state.\n */\n @Prop() disabled?: boolean = false;\n\n /**\n * The URL that the link points to. This will render the menu item as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label describing the keyboard shortcut for a menu item's action.\n */\n @Prop() keyboardShortcutLabel?: string;\n\n /**\n * The label to display in the menu item.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * This references the popover menu instance that the menu item is a trigger for. If this prop is set, then the variant will always be default.\n */\n @Prop() submenuTriggerFor?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * The variant of the menu item.\n */\n @Prop({ mutable: true, reflect: true }) variant: IcMenuItemVariants =\n \"default\";\n\n /**\n * @internal Emitted when item loses focus.\n */\n @Event() childBlur: EventEmitter<void>;\n\n /**\n * @internal Emitted when the user clicks a menu item.\n */\n @Event() handleMenuItemClick: EventEmitter<HTMLIcMenuItemElement>;\n\n /**\n * Emitted when the user clicks a menu item that is set to the toggle variant.\n */\n @Event() icToggleChecked: EventEmitter<{\n checked: boolean;\n }>;\n\n /**\n * @internal Emitted when the user clicks a menu item that triggers a popover menu instance.\n */\n @Event() triggerPopoverMenuInstance: EventEmitter<void>;\n\n componentWillLoad(): void {\n // This ensures that trigger menu items are always set to the default variant\n if (isPropDefined(this.submenuTriggerFor) && this.variant !== \"default\") {\n this.variant = \"default\";\n }\n removeDisabledFalse(this.disabled, this.el);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Menu Item\"\n );\n }\n\n @Listen(\"click\", { capture: true })\n handleHostClick(e: Event): void {\n if (this.disabled) {\n e.stopImmediatePropagation();\n }\n }\n\n private handleClick = (e: Event): void => {\n if (isPropDefined(this.submenuTriggerFor)) {\n this.triggerPopoverMenuInstance.emit();\n } else if (this.variant === \"toggle\") {\n e.preventDefault();\n this.checked = !this.checked;\n this.icToggleChecked.emit({\n checked: this.checked,\n });\n }\n this.handleMenuItemClick.emit(this.el);\n };\n\n private getMenuItemAriaLabel = (): string => {\n let ariaLabel = this.label;\n\n if (isPropDefined(this.description)) {\n ariaLabel = `${ariaLabel}, ${this.description}`;\n }\n\n if (isPropDefined(this.keyboardShortcutLabel)) {\n ariaLabel = `${ariaLabel}, ${this.keyboardShortcutLabel}`;\n }\n\n if (this.variant === \"destructive\") {\n ariaLabel = `${ariaLabel}, destructive`;\n }\n\n if (isPropDefined(this.submenuTriggerFor)) {\n ariaLabel = `${ariaLabel}, triggers submenu`;\n }\n\n if (this.el.classList.contains(\"ic-popover-submenu-back-button\")) {\n ariaLabel = \"Go back to parent menu\";\n }\n const parentEl = this.el.parentElement;\n\n if (\n parentEl.tagName === \"IC-MENU-GROUP\" &&\n (parentEl as HTMLIcMenuGroupElement).label\n ) {\n return `${ariaLabel}, ${\n (parentEl as HTMLIcMenuGroupElement).label\n } menu group`;\n } else {\n return ariaLabel;\n }\n };\n\n render() {\n // A sub-component to layout the menu information correctly in ic-button\n const MenuItemInformation = () => {\n return (\n <div class=\"menu-item-info\">\n <div class=\"menu-labels\">\n <ic-typography class=\"menu-item-label\">{this.label}</ic-typography>\n {this.keyboardShortcutLabel && (\n <ic-typography variant=\"caption\" class=\"shortcut\">\n {this.keyboardShortcutLabel}\n </ic-typography>\n )}\n </div>\n {this.description && (\n <ic-typography class=\"menu-item-description\" variant=\"caption\">\n {this.description}\n </ic-typography>\n )}\n </div>\n );\n };\n\n return (\n <Host\n class={{\n [\"ic-menu-item-disabled\"]: this.disabled,\n }}\n >\n <li\n role={this.variant === \"toggle\" ? \"menuitemcheckbox\" : \"menuitem\"}\n aria-disabled={`${this.disabled}`}\n aria-checked={\n this.variant === \"toggle\"\n ? this.checked\n ? \"true\"\n : \"false\"\n : undefined\n }\n >\n <ic-button\n fullWidth\n variant=\"tertiary\"\n onClick={this.handleClick}\n href={isPropDefined(this.href)}\n hreflang={isPropDefined(this.hreflang)}\n target={isPropDefined(this.target)}\n rel={isPropDefined(this.rel)}\n referrerpolicy={\n this.referrerpolicy !== undefined ? this.referrerpolicy : null\n }\n aria-disabled={`${this.disabled}`}\n aria-label={this.getMenuItemAriaLabel()}\n aria-haspopup={\n isPropDefined(this.submenuTriggerFor) ||\n this.el.classList.contains(\"ic-popover-submenu-back-button\")\n ? \"menu\"\n : false\n }\n >\n <div class=\"focus-border\">\n {isSlotUsed(this.el, \"icon\") && (\n <span class=\"icon\">\n <slot name=\"icon\"></slot>\n </span>\n )}\n <MenuItemInformation />\n {this.variant === \"toggle\" && (\n <span\n class={{\n [\"check-icon\"]: true,\n [\"hide\"]: !this.checked,\n }}\n aria-hidden=\"true\"\n innerHTML={Check}\n />\n )}\n {isPropDefined(this.submenuTriggerFor) && (\n <span\n class={{ [\"submenu-icon\"]: true }}\n aria-hidden=\"true\"\n innerHTML={Chevron}\n />\n )}\n </div>\n </ic-button>\n </li>\n </Host>\n );\n }\n}\n"]}
@@ -42,7 +42,7 @@ describe("menu item variants", () => {
42
42
  });
43
43
  expect(page.root).toMatchSnapshot();
44
44
  expect(page.rootInstance.variant).toMatch("toggle");
45
- expect(page.rootInstance.toggleChecked).toBeFalsy();
45
+ expect(page.rootInstance.checked).toBeFalsy();
46
46
  const button = page.root.shadowRoot
47
47
  .querySelector("li > ic-button")
48
48
  .shadowRoot.querySelector("button");
@@ -1 +1 @@
1
- {"version":3,"file":"ic-menu-item.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-menu-item/test/basic/ic-menu-item.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { MenuItem } from \"../../ic-menu-item\";\nimport { Button } from \"../../../ic-button/ic-button\";\n\ndescribe(\"menu item variants\", () => {\n it(\"should render the default variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Default variant\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a menu item with a description\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Default variant\"\n description=\"This is the default variant of the menu item with a description\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with keyboard shortcut\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Toggle variant\"\n keyboard-shortcut-label=\"Cmd+\"\n />`,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render the toggle variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem, Button],\n html: `<ic-menu-item\n variant=\"toggle\"\n label=\"Toggle variant\"\n id=\"test-menu-item\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n expect(page.rootInstance.variant).toMatch(\"toggle\");\n expect(page.rootInstance.toggleChecked).toBeFalsy();\n\n const button = page.root.shadowRoot\n .querySelector(\"li > ic-button\")\n .shadowRoot.querySelector(\"button\");\n\n button.click();\n await page.waitForChanges;\n });\n\n it(\"should render the destructive variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n variant=\"destructive\"\n label=\"Destructive variant\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a menu item that triggers a popover menu instance\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n variant=\"destructive\"\n submenu-trigger-for=\"submenu-1\"\n label=\"Destructive variant\"\n />`,\n });\n\n expect(page.rootInstance.submenuTriggerFor).not.toBeUndefined();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n });\n\n it('should emit the triggerPopoverMenuInstance event when the menu item has the prop: \"submenu-trigger-for\" and is clicked', async () => {\n const page = await newSpecPage({\n components: [MenuItem, Button],\n html: `<ic-menu-item\n id=\"test-menu-item\"\n submenu-trigger-for=\"submenu-1\"\n label=\"I emit an event\"\n />`,\n });\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"triggerPopoverMenuInstance\", eventSpy);\n expect(page.rootInstance.submenuTriggerFor).not.toBeUndefined();\n\n const element = await document.getElementById(\"test-menu-item\");\n\n await element.click();\n\n await page.waitForChanges();\n\n await page.rootInstance.handleClick;\n });\n\n it(\"should prevent default action on click if variant is 'toggle'\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n id=\"test-menu-item\"\n label=\"I emit an event\"\n variant=\"toggle\"\n />`,\n });\n\n const eventSpy = jest.fn();\n\n const mockEvent = {\n preventDefault: eventSpy,\n };\n\n await page.rootInstance.handleClick(mockEvent as unknown as MouseEvent);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n});\n"]}
1
+ {"version":3,"file":"ic-menu-item.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-menu-item/test/basic/ic-menu-item.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { MenuItem } from \"../../ic-menu-item\";\nimport { Button } from \"../../../ic-button/ic-button\";\n\ndescribe(\"menu item variants\", () => {\n it(\"should render the default variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Default variant\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a menu item with a description\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Default variant\"\n description=\"This is the default variant of the menu item with a description\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render with keyboard shortcut\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n label=\"Toggle variant\"\n keyboard-shortcut-label=\"Cmd+\"\n />`,\n });\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render the toggle variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem, Button],\n html: `<ic-menu-item\n variant=\"toggle\"\n label=\"Toggle variant\"\n id=\"test-menu-item\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n expect(page.rootInstance.variant).toMatch(\"toggle\");\n expect(page.rootInstance.checked).toBeFalsy();\n\n const button = page.root.shadowRoot\n .querySelector(\"li > ic-button\")\n .shadowRoot.querySelector(\"button\");\n\n button.click();\n await page.waitForChanges;\n });\n\n it(\"should render the destructive variant\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n variant=\"destructive\"\n label=\"Destructive variant\"\n />`,\n });\n\n expect(page.root).toMatchSnapshot();\n });\n\n it(\"should render a menu item that triggers a popover menu instance\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n variant=\"destructive\"\n submenu-trigger-for=\"submenu-1\"\n label=\"Destructive variant\"\n />`,\n });\n\n expect(page.rootInstance.submenuTriggerFor).not.toBeUndefined();\n\n expect(page.rootInstance.variant).toMatch(\"default\");\n });\n\n it('should emit the triggerPopoverMenuInstance event when the menu item has the prop: \"submenu-trigger-for\" and is clicked', async () => {\n const page = await newSpecPage({\n components: [MenuItem, Button],\n html: `<ic-menu-item\n id=\"test-menu-item\"\n submenu-trigger-for=\"submenu-1\"\n label=\"I emit an event\"\n />`,\n });\n\n const eventSpy = jest.fn();\n page.win.addEventListener(\"triggerPopoverMenuInstance\", eventSpy);\n expect(page.rootInstance.submenuTriggerFor).not.toBeUndefined();\n\n const element = await document.getElementById(\"test-menu-item\");\n\n await element.click();\n\n await page.waitForChanges();\n\n await page.rootInstance.handleClick;\n });\n\n it(\"should prevent default action on click if variant is 'toggle'\", async () => {\n const page = await newSpecPage({\n components: [MenuItem],\n html: `<ic-menu-item\n id=\"test-menu-item\"\n label=\"I emit an event\"\n variant=\"toggle\"\n />`,\n });\n\n const eventSpy = jest.fn();\n\n const mockEvent = {\n preventDefault: eventSpy,\n };\n\n await page.rootInstance.handleClick(mockEvent as unknown as MouseEvent);\n\n expect(eventSpy).toHaveBeenCalled();\n });\n});\n"]}
@@ -455,3 +455,17 @@ video {
455
455
  height: 100%;
456
456
  min-height: 2.5rem;
457
457
  }
458
+
459
+ :host(.in-side-menu) ::part(button) {
460
+ color: var(--ic-top-navigation-icon-active);
461
+ }
462
+
463
+ :host(.in-side-menu) ::part(button):hover {
464
+ color: var(--ic-top-navigation-icon-hover);
465
+ background-color: var(--ic-top-navigation-icon-hover-background);
466
+ }
467
+
468
+ :host(.in-side-menu) ::part(button):active {
469
+ color: var(--ic-top-navigation-icon-pressed);
470
+ background-color: var(--ic-top-navigation-icon-pressed-background);
471
+ }
@@ -34,6 +34,7 @@ export class NavigationButton {
34
34
  this.referrerpolicy = undefined;
35
35
  this.rel = undefined;
36
36
  this.target = undefined;
37
+ this.theme = "inherit";
37
38
  }
38
39
  componentWillLoad() {
39
40
  this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);
@@ -101,7 +102,10 @@ export class NavigationButton {
101
102
  fullWidth,
102
103
  disableTooltip,
103
104
  };
104
- return (h(Host, { class: { ["in-side-menu"]: this.mode === "menu" } }, h("ic-button", Object.assign({ class: className, "aria-label": variant == "icon" ? this.label : null, ref: (el) => (this.buttonEl = el) }, buttonProps, this.inheritedAttributes), label, h("slot", { slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && variant === "icon" && (h("slot", { name: "badge" })))));
105
+ return (h(Host, { class: {
106
+ ["in-side-menu"]: this.mode === "menu",
107
+ [`ic-theme-${this.theme}`]: this.theme !== "inherit",
108
+ } }, h("ic-button", Object.assign({ class: className, "aria-label": variant == "icon" ? this.label : null, ref: (el) => (this.buttonEl = el) }, buttonProps, this.inheritedAttributes, { monochrome: this.mode !== "menu", theme: getThemeForegroundColor() == "light" ? "light" : "dark" }), label, h("slot", { slot: "left-icon", name: "icon" }), isSlotUsed(this.el, "badge") && variant === "icon" && (h("slot", { name: "badge" })))));
105
109
  }
106
110
  static get is() { return "ic-navigation-button"; }
107
111
  static get encapsulation() { return "shadow"; }
@@ -242,6 +246,30 @@ export class NavigationButton {
242
246
  },
243
247
  "attribute": "target",
244
248
  "reflect": false
249
+ },
250
+ "theme": {
251
+ "type": "string",
252
+ "mutable": false,
253
+ "complexType": {
254
+ "original": "IcThemeMode",
255
+ "resolved": "\"dark\" | \"inherit\" | \"light\"",
256
+ "references": {
257
+ "IcThemeMode": {
258
+ "location": "import",
259
+ "path": "../../utils/types",
260
+ "id": "src/utils/types.ts::IcThemeMode"
261
+ }
262
+ }
263
+ },
264
+ "required": false,
265
+ "optional": true,
266
+ "docs": {
267
+ "tags": [],
268
+ "text": "Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component."
269
+ },
270
+ "attribute": "theme",
271
+ "reflect": false,
272
+ "defaultValue": "\"inherit\""
245
273
  }
246
274
  };
247
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n h,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getThemeForegroundColor,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n @State() initialAppearance: IcThemeForegroundNoDefault | IcThemeForeground =\n getThemeForegroundColor();\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n iconEl !== null && iconEl.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.initialAppearance = theme.mode;\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { href, target, rel, download, referrerpolicy } = this;\n\n let label = \"\";\n let className = \"\";\n let variant: \"icon\" | \"tertiary\" = \"icon\";\n let appearance: IcThemeForeground | IcThemeForegroundEnum.Default =\n this.initialAppearance;\n let size: \"medium\" | \"large\" = \"large\";\n let fullWidth = false;\n let disableTooltip = false;\n\n if (this.mode === \"menu\") {\n label = this.label;\n variant = \"tertiary\";\n appearance = IcThemeForegroundEnum.Default;\n size = \"medium\";\n fullWidth = true;\n className = \"popout-menu-button\";\n disableTooltip = true;\n }\n\n const buttonProps = {\n variant,\n appearance,\n size,\n href,\n target,\n rel,\n download,\n referrerpolicy,\n fullWidth,\n disableTooltip,\n };\n\n return (\n <Host class={{ [\"in-side-menu\"]: this.mode === \"menu\" }}>\n <ic-button\n class={className}\n aria-label={variant == \"icon\" ? this.label : null}\n ref={(el) => (this.buttonEl = el)}\n {...buttonProps}\n {...this.inheritedAttributes}\n >\n {label}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && variant === \"icon\" && (\n <slot name=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ic-navigation-button.js","sourceRoot":"","sources":["../../../src/components/ic-navigation-button/ic-navigation-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Prop,\n State,\n h,\n Listen,\n Method,\n forceUpdate,\n} from \"@stencil/core\";\n\nimport {\n getThemeForegroundColor,\n inheritAttributes,\n onComponentRequiredPropUndefined,\n isSlotUsed,\n} from \"../../utils/helpers\";\nimport { IC_INHERITED_ARIA } from \"../../utils/constants\";\nimport {\n IcTheme,\n IcThemeForeground,\n IcThemeForegroundEnum,\n IcThemeForegroundNoDefault,\n IcThemeMode,\n} from \"../../utils/types\";\nimport { IcNavButtonModes } from \"./ic-navigation-button.types\";\n\nconst MUTABLE_ATTRIBUTES = [...IC_INHERITED_ARIA, \"title\"];\n\n/**\n * @slot icon - Content will be placed to the left of the button label.\n * @slot badge - Badge component overlaying the top right of the button.\n */\n\n@Component({\n tag: \"ic-navigation-button\",\n styleUrl: \"ic-navigation-button.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class NavigationButton {\n private buttonEl: HTMLIcButtonElement;\n private inheritedAttributes: { [k: string]: string } = {};\n private hostMutationObserver: MutationObserver = null;\n\n @Element() el: HTMLIcNavigationButtonElement;\n\n @State() initialAppearance: IcThemeForegroundNoDefault | IcThemeForeground =\n getThemeForegroundColor();\n /**\n * The display mode.\n */\n @State() mode: IcNavButtonModes = \"navbar\";\n\n /**\n * If `true`, the user can save the linked URL instead of navigating to it.\n */\n @Prop() download?: string | boolean = false;\n\n /**\n * The URL that the link points to. This will render the button as an \"a\" tag.\n */\n @Prop() href?: string;\n\n /**\n * The human language of the linked URL.\n */\n @Prop() hreflang?: string;\n\n /**\n * The label info to display.\n */\n @Prop() label!: string;\n\n /**\n * How much of the referrer to send when following the link.\n */\n @Prop() referrerpolicy?: ReferrerPolicy;\n\n /**\n * The relationship of the linked URL as space-separated link types.\n */\n @Prop() rel?: string;\n\n /**\n * The place to display the linked URL, as the name for a browsing context (a tab, window, or iframe).\n */\n @Prop() target?: string;\n\n /**\n * Sets the theme color to the dark or light theme color. \"inherit\" will set the color based on the system settings or ic-theme component.\n */\n @Prop() theme?: IcThemeMode = \"inherit\";\n\n componentWillLoad(): void {\n this.inheritedAttributes = inheritAttributes(this.el, MUTABLE_ATTRIBUTES);\n }\n\n componentDidLoad(): void {\n onComponentRequiredPropUndefined(\n [{ prop: this.label, propName: \"label\" }],\n \"Navigation Button\"\n );\n\n this.hostMutationObserver = new MutationObserver(this.hostMutationCallback);\n this.hostMutationObserver.observe(this.el, {\n attributes: true,\n });\n }\n\n componentWillRender(): void {\n const iconEl = this.el.querySelector(`[slot=\"icon\"]`);\n iconEl !== null && iconEl.setAttribute(\"viewBox\", \"0 0 24 24\");\n }\n\n disconnectedCallback(): void {\n this.hostMutationObserver?.disconnect();\n }\n\n @Listen(\"icNavigationMenuOpened\", { target: \"document\" })\n navBarMenuOpenHandler(): void {\n this.mode = \"menu\";\n }\n\n @Listen(\"icNavigationMenuClosed\", { target: \"document\" })\n navBarMenuCloseHandler(): void {\n this.mode = \"navbar\";\n }\n\n @Listen(\"themeChange\", { target: \"document\" })\n themeChangeHandler(ev: CustomEvent): void {\n const theme: IcTheme = ev.detail;\n this.initialAppearance = theme.mode;\n }\n\n /**\n * Sets focus on the native `button`.\n */\n @Method()\n async setFocus(): Promise<void> {\n if (this.buttonEl) {\n this.buttonEl.focus();\n }\n }\n\n // triggered when attributes of host element change\n private hostMutationCallback = (mutationList: MutationRecord[]): void => {\n let forceComponentUpdate = false;\n mutationList.forEach(({ attributeName }) => {\n if (MUTABLE_ATTRIBUTES.includes(attributeName)) {\n this.inheritedAttributes[attributeName] =\n this.el.getAttribute(attributeName);\n forceComponentUpdate = true;\n }\n });\n if (forceComponentUpdate) {\n forceUpdate(this);\n }\n };\n\n render() {\n const { href, target, rel, download, referrerpolicy } = this;\n\n let label = \"\";\n let className = \"\";\n let variant: \"icon\" | \"tertiary\" = \"icon\";\n let appearance: IcThemeForeground | IcThemeForegroundEnum.Default =\n this.initialAppearance;\n let size: \"medium\" | \"large\" = \"large\";\n let fullWidth = false;\n let disableTooltip = false;\n\n if (this.mode === \"menu\") {\n label = this.label;\n variant = \"tertiary\";\n appearance = IcThemeForegroundEnum.Default;\n size = \"medium\";\n fullWidth = true;\n className = \"popout-menu-button\";\n disableTooltip = true;\n }\n\n const buttonProps = {\n variant,\n appearance,\n size,\n href,\n target,\n rel,\n download,\n referrerpolicy,\n fullWidth,\n disableTooltip,\n };\n\n return (\n <Host\n class={{\n [\"in-side-menu\"]: this.mode === \"menu\",\n [`ic-theme-${this.theme}`]: this.theme !== \"inherit\",\n }}\n >\n <ic-button\n class={className}\n aria-label={variant == \"icon\" ? this.label : null}\n ref={(el) => (this.buttonEl = el)}\n {...buttonProps}\n {...this.inheritedAttributes}\n monochrome={this.mode !== \"menu\"}\n theme={getThemeForegroundColor() == \"light\" ? \"light\" : \"dark\"}\n >\n {label}\n <slot slot=\"left-icon\" name=\"icon\"></slot>\n {isSlotUsed(this.el, \"badge\") && variant === \"icon\" && (\n <slot name=\"badge\"></slot>\n )}\n </ic-button>\n </Host>\n );\n }\n}\n"]}
@@ -27,7 +27,7 @@ describe("ic-navigation-button", () => {
27
27
  expect(page.root).toEqualHtml(`
28
28
  <ic-navigation-button label="button1" onclick="alert('test')">
29
29
  <mock:shadow-root>
30
- <ic-button aria-label="button1" appearance="light" size="large" variant="icon">
30
+ <ic-button appearance="light" aria-label="button1" monochrome="" size="large" theme="light" variant="icon">
31
31
  <slot name="icon" slot="left-icon"></slot>
32
32
  </ic-button>
33
33
  </mock:shadow-root>
@@ -1 +1 @@
1
- {"version":3,"file":"ic-navigation-button.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-navigation-button/test/basic/ic-navigation-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { NavigationButton } from \"../../ic-navigation-button\";\n\ndescribe(\"ic-navigation-button\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button\n label=\"button1\"\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 });\n expect(page.root).toEqualHtml(`\n <ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n <mock:shadow-root>\n <ic-button aria-label=\"button1\" appearance=\"light\" size=\"large\" variant=\"icon\">\n <slot name=\"icon\" slot=\"left-icon\"></slot>\n </ic-button>\n </mock:shadow-root>\n <svg fill=\"#000000\" height=\"24px\" slot=\"icon\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\n <path 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\"></path>\n </svg>\n </ic-navigation-button>\n `);\n });\n\n it(\"should render differently if mode is menu\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n page.rootInstance.mode = \"menu\";\n const el = page.root.shadowRoot.querySelector(\"ic-button\");\n\n await page.waitForChanges();\n expect(el.className).toEqual(\"popout-menu-button\");\n });\n\n it(\"should correctly set mode on menu open and close\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.navBarMenuOpenHandler();\n await page.waitForChanges();\n\n expect(page.rootInstance.mode).toEqual(\"menu\");\n\n await page.rootInstance.navBarMenuCloseHandler();\n await page.waitForChanges();\n\n expect(page.rootInstance.mode).toEqual(\"navbar\");\n });\n\n it(\"should correctly set appearance on theme change\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.initialAppearance).toBe(\"dark\");\n });\n\n it(\"should correctly set focus\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton, Button],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.setFocus();\n });\n\n it(\"should update any attributes that are inherited from the root element\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton, Button],\n html: `<ic-navigation-button label=\"button1\"></ic-navigation-button>`,\n });\n expect(\n page.root.shadowRoot.querySelector(\"ic-button\").getAttribute(\"aria-label\")\n ).toBeNull();\n\n page.root.setAttribute(\"aria-label\", \"new-label\");\n page.rootInstance.hostMutationCallback([{ attributeName: \"aria-label\" }]);\n await page.waitForChanges();\n\n expect(\n page.root.shadowRoot.querySelector(\"ic-button\").getAttribute(\"aria-label\")\n ).toBe(\"new-label\");\n });\n});\n"]}
1
+ {"version":3,"file":"ic-navigation-button.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-navigation-button/test/basic/ic-navigation-button.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { NavigationButton } from \"../../ic-navigation-button\";\n\ndescribe(\"ic-navigation-button\", () => {\n it(\"should render\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button\n label=\"button1\"\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 });\n expect(page.root).toEqualHtml(`\n <ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n <mock:shadow-root>\n <ic-button appearance=\"light\" aria-label=\"button1\" monochrome=\"\" size=\"large\" theme=\"light\" variant=\"icon\">\n <slot name=\"icon\" slot=\"left-icon\"></slot>\n </ic-button>\n </mock:shadow-root>\n <svg fill=\"#000000\" height=\"24px\" slot=\"icon\" viewBox=\"0 0 24 24\" width=\"24px\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\n <path 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\"></path>\n </svg>\n </ic-navigation-button>\n `);\n });\n\n it(\"should render differently if mode is menu\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n page.rootInstance.mode = \"menu\";\n const el = page.root.shadowRoot.querySelector(\"ic-button\");\n\n await page.waitForChanges();\n expect(el.className).toEqual(\"popout-menu-button\");\n });\n\n it(\"should correctly set mode on menu open and close\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.navBarMenuOpenHandler();\n await page.waitForChanges();\n\n expect(page.rootInstance.mode).toEqual(\"menu\");\n\n await page.rootInstance.navBarMenuCloseHandler();\n await page.waitForChanges();\n\n expect(page.rootInstance.mode).toEqual(\"navbar\");\n });\n\n it(\"should correctly set appearance on theme change\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.themeChangeHandler({ detail: { mode: \"dark\" } });\n await page.waitForChanges();\n\n expect(page.rootInstance.initialAppearance).toBe(\"dark\");\n });\n\n it(\"should correctly set focus\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton, Button],\n html: `<ic-navigation-button label=\"button1\" onclick=\"alert('test')\">\n </ic-navigation-button>`,\n });\n\n await page.rootInstance.setFocus();\n });\n\n it(\"should update any attributes that are inherited from the root element\", async () => {\n const page = await newSpecPage({\n components: [NavigationButton, Button],\n html: `<ic-navigation-button label=\"button1\"></ic-navigation-button>`,\n });\n expect(\n page.root.shadowRoot.querySelector(\"ic-button\").getAttribute(\"aria-label\")\n ).toBeNull();\n\n page.root.setAttribute(\"aria-label\", \"new-label\");\n page.rootInstance.hostMutationCallback([{ attributeName: \"aria-label\" }]);\n await page.waitForChanges();\n\n expect(\n page.root.shadowRoot.querySelector(\"ic-button\").getAttribute(\"aria-label\")\n ).toBe(\"new-label\");\n });\n});\n"]}