@telefonica/mistica 17.3.0 → 17.5.0

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 (609) hide show
  1. package/css/blau.css +29 -16
  2. package/css/esimflag.css +40 -18
  3. package/css/mistica-common.css +5 -0
  4. package/css/mistica.css +1 -1
  5. package/css/movistar.css +34 -18
  6. package/css/o2.css +31 -18
  7. package/css/telefonica.css +43 -18
  8. package/css/vivo-evolution.css +71 -20
  9. package/css/vivo.css +31 -18
  10. package/dist/accordion.css-mistica.js +10 -10
  11. package/dist/align.css-mistica.js +1 -1
  12. package/dist/autocomplete.css-mistica.js +4 -4
  13. package/dist/avatar.css-mistica.js +1 -1
  14. package/dist/badge.css-mistica.js +1 -1
  15. package/dist/box.css-mistica.js +13 -13
  16. package/dist/boxed.css-mistica.js +24 -24
  17. package/dist/boxed.d.ts +9 -0
  18. package/dist/boxed.js +18 -15
  19. package/dist/button-group.css-mistica.js +1 -1
  20. package/dist/button-layout.css-mistica.js +19 -19
  21. package/dist/button.css-mistica.js +51 -51
  22. package/dist/callout.css-mistica.js +13 -13
  23. package/dist/card-internal.css-mistica.js +22 -22
  24. package/dist/carousel.css-mistica.js +30 -30
  25. package/dist/checkbox.css-mistica.js +15 -15
  26. package/dist/chip.css-mistica.js +18 -18
  27. package/dist/circle.css-mistica.js +2 -2
  28. package/dist/community/advanced-data-card.css-mistica.js +19 -19
  29. package/dist/community/ai-card.css-mistica.js +11 -11
  30. package/dist/community/blocks.css-mistica.js +1 -1
  31. package/dist/community/cyber/example-component.css-mistica.js +1 -1
  32. package/dist/community/example-component.css-mistica.js +1 -1
  33. package/dist/community/skins/cyber-skin.js +19 -17
  34. package/dist/counter.css-mistica.js +6 -6
  35. package/dist/cover-hero.css-mistica.js +7 -7
  36. package/dist/credit-card-number-field.css-mistica.js +3 -3
  37. package/dist/date-field.css-mistica.js +1 -1
  38. package/dist/date-time-picker.css-mistica.js +1 -1
  39. package/dist/dialog.css-mistica.js +10 -10
  40. package/dist/divider.css-mistica.js +5 -5
  41. package/dist/double-field.css-mistica.js +2 -2
  42. package/dist/drawer.css-mistica.js +4 -4
  43. package/dist/empty-state-card.css-mistica.js +1 -1
  44. package/dist/empty-state.css-mistica.js +8 -8
  45. package/dist/fade-in.css-mistica.js +1 -1
  46. package/dist/fade-out.css-mistica.js +11 -0
  47. package/dist/fade-out.css.d.ts +1 -0
  48. package/dist/fade-out.d.ts +11 -0
  49. package/dist/fade-out.js +88 -0
  50. package/dist/feedback.css-mistica.js +5 -5
  51. package/dist/file-upload.css-mistica.js +10 -10
  52. package/dist/fixed-footer-layout.css-mistica.js +6 -6
  53. package/dist/form.css-mistica.js +1 -1
  54. package/dist/generated/mistica-icons/icon-antenna-filled.js +40 -12
  55. package/dist/generated/mistica-icons/icon-antenna-light.js +37 -17
  56. package/dist/generated/mistica-icons/icon-antenna-regular.js +42 -14
  57. package/dist/generated/mistica-icons/icon-arrow-up-down-filled.js +26 -16
  58. package/dist/generated/mistica-icons/icon-arrow-up-down-light.js +22 -12
  59. package/dist/generated/mistica-icons/icon-arrow-up-down-regular.js +30 -20
  60. package/dist/generated/mistica-icons/icon-arrows-left-and-right-filled.js +26 -16
  61. package/dist/generated/mistica-icons/icon-arrows-left-and-right-light.js +24 -14
  62. package/dist/generated/mistica-icons/icon-arrows-left-and-right-regular.js +26 -16
  63. package/dist/generated/mistica-icons/icon-authentication-success-filled.js +31 -11
  64. package/dist/generated/mistica-icons/icon-authentication-success-light.js +33 -17
  65. package/dist/generated/mistica-icons/icon-authentication-success-regular.js +29 -13
  66. package/dist/generated/mistica-icons/icon-blog-filled.js +36 -16
  67. package/dist/generated/mistica-icons/icon-blog-light.js +34 -14
  68. package/dist/generated/mistica-icons/icon-blog-regular.js +32 -16
  69. package/dist/generated/mistica-icons/icon-book-filled.js +19 -9
  70. package/dist/generated/mistica-icons/icon-book-light.js +25 -15
  71. package/dist/generated/mistica-icons/icon-book-regular.js +16 -6
  72. package/dist/generated/mistica-icons/icon-box-filled.js +35 -19
  73. package/dist/generated/mistica-icons/icon-box-light.js +28 -18
  74. package/dist/generated/mistica-icons/icon-box-regular.js +26 -16
  75. package/dist/generated/mistica-icons/icon-box-star-filled.js +37 -17
  76. package/dist/generated/mistica-icons/icon-box-star-light.js +22 -6
  77. package/dist/generated/mistica-icons/icon-box-star-regular.js +30 -14
  78. package/dist/generated/mistica-icons/icon-briefcase-filled.js +28 -12
  79. package/dist/generated/mistica-icons/icon-briefcase-light.js +21 -11
  80. package/dist/generated/mistica-icons/icon-briefcase-regular.js +29 -19
  81. package/dist/generated/mistica-icons/icon-calendar-event-filled.js +23 -12
  82. package/dist/generated/mistica-icons/icon-calendar-event-light.js +28 -11
  83. package/dist/generated/mistica-icons/icon-calendar-event-regular.js +30 -13
  84. package/dist/generated/mistica-icons/icon-calendar-filled.js +32 -22
  85. package/dist/generated/mistica-icons/icon-calendar-light.js +39 -23
  86. package/dist/generated/mistica-icons/icon-calendar-month-filled.js +23 -12
  87. package/dist/generated/mistica-icons/icon-calendar-month-light.js +30 -13
  88. package/dist/generated/mistica-icons/icon-calendar-month-regular.js +30 -13
  89. package/dist/generated/mistica-icons/icon-calendar-regular.js +33 -17
  90. package/dist/generated/mistica-icons/icon-car-filled.js +25 -9
  91. package/dist/generated/mistica-icons/icon-car-light.js +24 -14
  92. package/dist/generated/mistica-icons/icon-car-regular.js +24 -14
  93. package/dist/generated/mistica-icons/icon-care-briefcase-filled.js +23 -12
  94. package/dist/generated/mistica-icons/icon-care-briefcase-light.js +25 -14
  95. package/dist/generated/mistica-icons/icon-care-briefcase-regular.js +18 -8
  96. package/dist/generated/mistica-icons/icon-care-filled.js +25 -15
  97. package/dist/generated/mistica-icons/icon-care-home-filled.js +24 -13
  98. package/dist/generated/mistica-icons/icon-care-home-light.js +24 -13
  99. package/dist/generated/mistica-icons/icon-care-home-regular.js +26 -16
  100. package/dist/generated/mistica-icons/icon-care-laptop-filled.js +22 -11
  101. package/dist/generated/mistica-icons/icon-care-laptop-light.js +24 -13
  102. package/dist/generated/mistica-icons/icon-care-laptop-regular.js +28 -18
  103. package/dist/generated/mistica-icons/icon-care-light.js +22 -12
  104. package/dist/generated/mistica-icons/icon-care-mobile-filled.js +22 -11
  105. package/dist/generated/mistica-icons/icon-care-mobile-light.js +29 -12
  106. package/dist/generated/mistica-icons/icon-care-mobile-regular.js +33 -17
  107. package/dist/generated/mistica-icons/icon-care-regular.js +23 -13
  108. package/dist/generated/mistica-icons/icon-care-shield-filled.js +24 -14
  109. package/dist/generated/mistica-icons/icon-care-shield-light.js +23 -13
  110. package/dist/generated/mistica-icons/icon-care-shield-regular.js +26 -16
  111. package/dist/generated/mistica-icons/icon-change-plan-filled.js +36 -16
  112. package/dist/generated/mistica-icons/icon-change-plan-light.js +38 -18
  113. package/dist/generated/mistica-icons/icon-change-plan-regular.js +30 -14
  114. package/dist/generated/mistica-icons/icon-chip-device-filled.js +32 -16
  115. package/dist/generated/mistica-icons/icon-chip-device-light.js +33 -17
  116. package/dist/generated/mistica-icons/icon-chip-device-regular.js +36 -20
  117. package/dist/generated/mistica-icons/icon-chip-sim-card-filled.js +25 -15
  118. package/dist/generated/mistica-icons/icon-chip-sim-card-light.js +36 -20
  119. package/dist/generated/mistica-icons/icon-chip-sim-card-regular.js +42 -26
  120. package/dist/generated/mistica-icons/icon-credit-card-filled.js +20 -10
  121. package/dist/generated/mistica-icons/icon-credit-card-light.js +18 -8
  122. package/dist/generated/mistica-icons/icon-credit-card-regular.js +23 -13
  123. package/dist/generated/mistica-icons/icon-document-information-filled.d.ts +3 -0
  124. package/dist/generated/mistica-icons/icon-document-information-light.d.ts +3 -0
  125. package/dist/generated/mistica-icons/icon-document-information-regular.d.ts +3 -0
  126. package/dist/generated/mistica-icons/icon-document-other-filled.js +25 -9
  127. package/dist/generated/mistica-icons/icon-document-other-light.js +33 -17
  128. package/dist/generated/mistica-icons/icon-document-other-regular.js +25 -9
  129. package/dist/generated/mistica-icons/icon-dollar-symbol-circle-filled.js +25 -15
  130. package/dist/generated/mistica-icons/icon-dollar-symbol-circle-light.js +30 -14
  131. package/dist/generated/mistica-icons/icon-dollar-symbol-circle-regular.js +29 -13
  132. package/dist/generated/mistica-icons/icon-error-filled.js +33 -17
  133. package/dist/generated/mistica-icons/icon-error-light.js +29 -13
  134. package/dist/generated/mistica-icons/icon-error-regular.js +32 -16
  135. package/dist/generated/mistica-icons/icon-esim-filled.js +33 -17
  136. package/dist/generated/mistica-icons/icon-esim-light.js +43 -23
  137. package/dist/generated/mistica-icons/icon-esim-regular.js +29 -9
  138. package/dist/generated/mistica-icons/icon-eye-filled.js +18 -8
  139. package/dist/generated/mistica-icons/icon-eye-light.js +31 -15
  140. package/dist/generated/mistica-icons/icon-eye-regular.js +29 -13
  141. package/dist/generated/mistica-icons/icon-file-ok-filled.js +30 -14
  142. package/dist/generated/mistica-icons/icon-file-ok-light.js +29 -13
  143. package/dist/generated/mistica-icons/icon-file-ok-regular.js +31 -15
  144. package/dist/generated/mistica-icons/icon-fingerprint-filled.js +36 -15
  145. package/dist/generated/mistica-icons/icon-fingerprint-light.js +35 -14
  146. package/dist/generated/mistica-icons/icon-fingerprint-regular.js +29 -9
  147. package/dist/generated/mistica-icons/icon-home-filled.js +17 -7
  148. package/dist/generated/mistica-icons/icon-home-light.js +21 -11
  149. package/dist/generated/mistica-icons/icon-home-regular.js +29 -19
  150. package/dist/generated/mistica-icons/icon-home-wifi-filled.js +39 -19
  151. package/dist/generated/mistica-icons/icon-home-wifi-light.js +30 -14
  152. package/dist/generated/mistica-icons/icon-home-wifi-regular.js +37 -17
  153. package/dist/generated/mistica-icons/icon-id-card-filled.js +32 -16
  154. package/dist/generated/mistica-icons/icon-id-card-light.js +27 -11
  155. package/dist/generated/mistica-icons/icon-id-card-regular.js +31 -15
  156. package/dist/generated/mistica-icons/icon-information-user-filled.js +32 -12
  157. package/dist/generated/mistica-icons/icon-information-user-light.js +37 -21
  158. package/dist/generated/mistica-icons/icon-information-user-regular.js +44 -28
  159. package/dist/generated/mistica-icons/icon-internet-filled.js +18 -8
  160. package/dist/generated/mistica-icons/icon-internet-light.js +21 -11
  161. package/dist/generated/mistica-icons/icon-internet-regular.js +19 -9
  162. package/dist/generated/mistica-icons/icon-internet-roaming-filled.d.ts +3 -0
  163. package/dist/generated/mistica-icons/icon-internet-roaming-light.d.ts +3 -0
  164. package/dist/generated/mistica-icons/icon-internet-roaming-regular.d.ts +3 -0
  165. package/dist/generated/mistica-icons/icon-key-filled.js +21 -11
  166. package/dist/generated/mistica-icons/icon-key-light.js +31 -15
  167. package/dist/generated/mistica-icons/icon-key-regular.js +32 -16
  168. package/dist/generated/mistica-icons/icon-list-filled.js +23 -12
  169. package/dist/generated/mistica-icons/icon-list-light.js +31 -15
  170. package/dist/generated/mistica-icons/icon-list-regular.js +34 -18
  171. package/dist/generated/mistica-icons/icon-location-filled.js +25 -15
  172. package/dist/generated/mistica-icons/icon-location-light.js +30 -14
  173. package/dist/generated/mistica-icons/icon-location-regular.js +30 -14
  174. package/dist/generated/mistica-icons/icon-lock-closed-filled.js +25 -15
  175. package/dist/generated/mistica-icons/icon-lock-closed-light.js +31 -15
  176. package/dist/generated/mistica-icons/icon-lock-closed-regular.js +35 -19
  177. package/dist/generated/mistica-icons/icon-message-filled.js +23 -12
  178. package/dist/generated/mistica-icons/icon-message-light.js +28 -11
  179. package/dist/generated/mistica-icons/icon-message-regular.js +27 -10
  180. package/dist/generated/mistica-icons/icon-mobile-device-filled.js +25 -15
  181. package/dist/generated/mistica-icons/icon-mobile-device-light.js +26 -10
  182. package/dist/generated/mistica-icons/icon-mobile-device-regular.js +32 -16
  183. package/dist/generated/mistica-icons/icon-mobile-information-filled.d.ts +3 -0
  184. package/dist/generated/mistica-icons/icon-mobile-information-light.d.ts +3 -0
  185. package/dist/generated/mistica-icons/icon-mobile-information-regular.d.ts +3 -0
  186. package/dist/generated/mistica-icons/icon-panel-collapse-regular.js +165 -0
  187. package/dist/generated/mistica-icons/icon-panel-expand-regular.js +159 -0
  188. package/dist/generated/mistica-icons/icons-keywords.js +57 -0
  189. package/dist/grid-layout.css-mistica.js +3 -3
  190. package/dist/grid.css-mistica.js +120 -120
  191. package/dist/header.css-mistica.js +1 -1
  192. package/dist/header.d.ts +3 -1
  193. package/dist/header.js +81 -73
  194. package/dist/hero.css-mistica.js +4 -4
  195. package/dist/horizontal-scroll.css-mistica.js +1 -1
  196. package/dist/icon-button.css-mistica.js +53 -53
  197. package/dist/icons/icon-chevron.css-mistica.js +2 -2
  198. package/dist/icons/icon-error.css-mistica.js +1 -1
  199. package/dist/image.css-mistica.js +6 -6
  200. package/dist/index.d.ts +6 -0
  201. package/dist/index.js +14 -1
  202. package/dist/inline.css-mistica.js +11 -11
  203. package/dist/list.css-mistica.js +40 -28
  204. package/dist/list.css.d.ts +2 -0
  205. package/dist/list.d.ts +3 -1
  206. package/dist/list.js +176 -165
  207. package/dist/loading-bar.css-mistica.js +1 -1
  208. package/dist/loading-screen.css-mistica.js +12 -12
  209. package/dist/logo.css-mistica.js +5 -5
  210. package/dist/menu.css-mistica.js +13 -13
  211. package/dist/mobile-navigation-menu.d.ts +26 -0
  212. package/dist/mobile-navigation-menu.js +145 -0
  213. package/dist/mosaic.css-mistica.js +1 -1
  214. package/dist/navigation-bar.css-mistica.js +31 -97
  215. package/dist/navigation-bar.css.d.ts +0 -24
  216. package/dist/navigation-bar.d.ts +3 -38
  217. package/dist/navigation-bar.js +399 -586
  218. package/dist/navigation-breadcrumbs.css-mistica.js +1 -1
  219. package/dist/navigation-shared.css-mistica.js +79 -0
  220. package/dist/navigation-shared.css.d.ts +26 -0
  221. package/dist/navigation-shared.d.ts +66 -0
  222. package/dist/navigation-shared.js +264 -0
  223. package/dist/package-version.js +1 -1
  224. package/dist/pagination.css-mistica.js +22 -22
  225. package/dist/pin-field.css-mistica.js +4 -4
  226. package/dist/popover.css-mistica.js +1 -1
  227. package/dist/portal.d.ts +1 -1
  228. package/dist/progress-bar.css-mistica.js +7 -7
  229. package/dist/radio-button.css-mistica.js +27 -27
  230. package/dist/rating.css-mistica.js +4 -4
  231. package/dist/responsive-layout.css-mistica.js +6 -6
  232. package/dist/screen-reader-only.css-mistica.js +1 -1
  233. package/dist/select.css-mistica.js +21 -21
  234. package/dist/sheet-action-row.css-mistica.js +1 -1
  235. package/dist/sheet-common.css-mistica.js +7 -7
  236. package/dist/sheet-info.css-mistica.js +1 -1
  237. package/dist/sidenav-bar-context.d.ts +25 -0
  238. package/dist/sidenav-bar-context.js +72 -0
  239. package/dist/sidenav-bar-data.d.ts +15 -0
  240. package/dist/sidenav-bar-data.js +38 -0
  241. package/dist/sidenav-bar-first-level-item.d.ts +42 -0
  242. package/dist/sidenav-bar-first-level-item.js +174 -0
  243. package/dist/sidenav-bar-keyboard.d.ts +13 -0
  244. package/dist/sidenav-bar-keyboard.js +314 -0
  245. package/dist/sidenav-bar-layout.css-mistica.js +28 -0
  246. package/dist/sidenav-bar-layout.css.d.ts +5 -0
  247. package/dist/sidenav-bar-layout.d.ts +22 -0
  248. package/dist/sidenav-bar-layout.js +103 -0
  249. package/dist/sidenav-bar-mobile.d.ts +24 -0
  250. package/dist/sidenav-bar-mobile.js +332 -0
  251. package/dist/sidenav-bar-motion.d.ts +32 -0
  252. package/dist/sidenav-bar-motion.js +84 -0
  253. package/dist/sidenav-bar-panel.d.ts +31 -0
  254. package/dist/sidenav-bar-panel.js +208 -0
  255. package/dist/sidenav-bar-row.d.ts +82 -0
  256. package/dist/sidenav-bar-row.js +230 -0
  257. package/dist/sidenav-bar-second-level-item.d.ts +43 -0
  258. package/dist/sidenav-bar-second-level-item.js +89 -0
  259. package/dist/sidenav-bar-section.d.ts +23 -0
  260. package/dist/sidenav-bar-section.js +167 -0
  261. package/dist/sidenav-bar-types.d.ts +192 -0
  262. package/dist/sidenav-bar-types.js +11 -0
  263. package/dist/sidenav-bar.css-mistica.js +325 -0
  264. package/dist/sidenav-bar.css.d.ts +93 -0
  265. package/dist/sidenav-bar.d.ts +102 -0
  266. package/dist/sidenav-bar.js +492 -0
  267. package/dist/skeletons.css-mistica.js +8 -8
  268. package/dist/skins/blau.js +23 -8
  269. package/dist/skins/defaults.js +11 -0
  270. package/dist/skins/esimflag.js +24 -9
  271. package/dist/skins/movistar.js +24 -9
  272. package/dist/skins/o2.js +24 -9
  273. package/dist/skins/skin-contract.css-mistica.js +740 -731
  274. package/dist/skins/skin-contract.css.d.ts +9 -0
  275. package/dist/skins/telefonica.js +24 -9
  276. package/dist/skins/types/colors.d.ts +2 -0
  277. package/dist/skins/types/index.d.ts +1 -0
  278. package/dist/skins/vivo-evolution.js +25 -10
  279. package/dist/skins/vivo.js +24 -9
  280. package/dist/skip-link.css-mistica.js +2 -2
  281. package/dist/slider.css-mistica.js +24 -24
  282. package/dist/snackbar.css-mistica.js +14 -14
  283. package/dist/spinner.css-mistica.js +1 -1
  284. package/dist/square.css-mistica.js +1 -1
  285. package/dist/stack.css-mistica.js +5 -5
  286. package/dist/stacking-group.css-mistica.js +1 -1
  287. package/dist/stepper.css-mistica.js +9 -9
  288. package/dist/switch-component.css-mistica.js +48 -42
  289. package/dist/switch-component.css.d.ts +2 -0
  290. package/dist/switch-component.js +18 -18
  291. package/dist/table.css-mistica.js +9 -9
  292. package/dist/tabs.css-mistica.js +22 -22
  293. package/dist/tag.css-mistica.js +3 -3
  294. package/dist/text-field-base.css-mistica.js +20 -20
  295. package/dist/text-field-components.css-mistica.js +10 -10
  296. package/dist/text-link.css-mistica.js +6 -6
  297. package/dist/text-tokens.d.ts +6 -0
  298. package/dist/text-tokens.js +157 -133
  299. package/dist/text.css-mistica.js +6 -6
  300. package/dist/timeline.css-mistica.js +11 -11
  301. package/dist/timer.css-mistica.js +6 -6
  302. package/dist/tooltip.css-mistica.js +2 -2
  303. package/dist/touchable.css-mistica.js +4 -4
  304. package/dist/utils/aspect-ratio-support.css-mistica.js +2 -2
  305. package/dist/video.css-mistica.js +1 -1
  306. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  307. package/dist-es/accordion.css-mistica.js +7 -7
  308. package/dist-es/align.css-mistica.js +1 -1
  309. package/dist-es/autocomplete.css-mistica.js +2 -2
  310. package/dist-es/avatar.css-mistica.js +1 -1
  311. package/dist-es/badge.css-mistica.js +1 -1
  312. package/dist-es/box.css-mistica.js +13 -13
  313. package/dist-es/boxed.css-mistica.js +23 -23
  314. package/dist-es/boxed.js +25 -25
  315. package/dist-es/button-group.css-mistica.js +1 -1
  316. package/dist-es/button-layout.css-mistica.js +16 -16
  317. package/dist-es/button.css-mistica.js +38 -38
  318. package/dist-es/callout.css-mistica.js +12 -12
  319. package/dist-es/card-internal.css-mistica.js +17 -17
  320. package/dist-es/carousel.css-mistica.js +10 -10
  321. package/dist-es/checkbox.css-mistica.js +13 -13
  322. package/dist-es/chip.css-mistica.js +17 -17
  323. package/dist-es/circle.css-mistica.js +2 -2
  324. package/dist-es/community/advanced-data-card.css-mistica.js +7 -7
  325. package/dist-es/community/ai-card.css-mistica.js +4 -4
  326. package/dist-es/community/blocks.css-mistica.js +1 -1
  327. package/dist-es/community/cyber/example-component.css-mistica.js +1 -1
  328. package/dist-es/community/example-component.css-mistica.js +1 -1
  329. package/dist-es/community/skins/cyber-skin.js +19 -17
  330. package/dist-es/counter.css-mistica.js +2 -2
  331. package/dist-es/cover-hero.css-mistica.js +4 -4
  332. package/dist-es/credit-card-number-field.css-mistica.js +3 -3
  333. package/dist-es/date-field.css-mistica.js +1 -1
  334. package/dist-es/date-time-picker.css-mistica.js +1 -1
  335. package/dist-es/dialog.css-mistica.js +5 -5
  336. package/dist-es/divider.css-mistica.js +5 -5
  337. package/dist-es/double-field.css-mistica.js +2 -2
  338. package/dist-es/drawer.css-mistica.js +2 -2
  339. package/dist-es/empty-state-card.css-mistica.js +1 -1
  340. package/dist-es/empty-state.css-mistica.js +7 -7
  341. package/dist-es/fade-in.css-mistica.js +1 -1
  342. package/dist-es/fade-out.css-mistica.js +2 -0
  343. package/dist-es/fade-out.js +79 -0
  344. package/dist-es/feedback.css-mistica.js +2 -2
  345. package/dist-es/file-upload.css-mistica.js +8 -8
  346. package/dist-es/fixed-footer-layout.css-mistica.js +3 -3
  347. package/dist-es/form.css-mistica.js +1 -1
  348. package/dist-es/generated/mistica-icons/icon-antenna-filled.js +50 -22
  349. package/dist-es/generated/mistica-icons/icon-antenna-light.js +47 -27
  350. package/dist-es/generated/mistica-icons/icon-antenna-regular.js +52 -24
  351. package/dist-es/generated/mistica-icons/icon-arrow-up-down-filled.js +29 -19
  352. package/dist-es/generated/mistica-icons/icon-arrow-up-down-light.js +26 -16
  353. package/dist-es/generated/mistica-icons/icon-arrow-up-down-regular.js +34 -24
  354. package/dist-es/generated/mistica-icons/icon-arrows-left-and-right-filled.js +30 -20
  355. package/dist-es/generated/mistica-icons/icon-arrows-left-and-right-light.js +32 -22
  356. package/dist-es/generated/mistica-icons/icon-arrows-left-and-right-regular.js +34 -24
  357. package/dist-es/generated/mistica-icons/icon-authentication-success-filled.js +42 -22
  358. package/dist-es/generated/mistica-icons/icon-authentication-success-light.js +44 -28
  359. package/dist-es/generated/mistica-icons/icon-authentication-success-regular.js +42 -26
  360. package/dist-es/generated/mistica-icons/icon-blog-filled.js +44 -24
  361. package/dist-es/generated/mistica-icons/icon-blog-light.js +45 -25
  362. package/dist-es/generated/mistica-icons/icon-blog-regular.js +45 -29
  363. package/dist-es/generated/mistica-icons/icon-book-filled.js +23 -13
  364. package/dist-es/generated/mistica-icons/icon-book-light.js +33 -23
  365. package/dist-es/generated/mistica-icons/icon-book-regular.js +22 -12
  366. package/dist-es/generated/mistica-icons/icon-box-filled.js +38 -22
  367. package/dist-es/generated/mistica-icons/icon-box-light.js +38 -28
  368. package/dist-es/generated/mistica-icons/icon-box-regular.js +37 -27
  369. package/dist-es/generated/mistica-icons/icon-box-star-filled.js +49 -29
  370. package/dist-es/generated/mistica-icons/icon-box-star-light.js +29 -13
  371. package/dist-es/generated/mistica-icons/icon-box-star-regular.js +33 -17
  372. package/dist-es/generated/mistica-icons/icon-briefcase-filled.js +32 -16
  373. package/dist-es/generated/mistica-icons/icon-briefcase-light.js +24 -14
  374. package/dist-es/generated/mistica-icons/icon-briefcase-regular.js +32 -22
  375. package/dist-es/generated/mistica-icons/icon-calendar-event-filled.js +28 -17
  376. package/dist-es/generated/mistica-icons/icon-calendar-event-light.js +34 -17
  377. package/dist-es/generated/mistica-icons/icon-calendar-event-regular.js +36 -19
  378. package/dist-es/generated/mistica-icons/icon-calendar-filled.js +42 -32
  379. package/dist-es/generated/mistica-icons/icon-calendar-light.js +45 -29
  380. package/dist-es/generated/mistica-icons/icon-calendar-month-filled.js +31 -20
  381. package/dist-es/generated/mistica-icons/icon-calendar-month-light.js +38 -21
  382. package/dist-es/generated/mistica-icons/icon-calendar-month-regular.js +38 -21
  383. package/dist-es/generated/mistica-icons/icon-calendar-regular.js +45 -29
  384. package/dist-es/generated/mistica-icons/icon-car-filled.js +26 -10
  385. package/dist-es/generated/mistica-icons/icon-car-light.js +33 -23
  386. package/dist-es/generated/mistica-icons/icon-car-regular.js +29 -19
  387. package/dist-es/generated/mistica-icons/icon-care-briefcase-filled.js +30 -19
  388. package/dist-es/generated/mistica-icons/icon-care-briefcase-light.js +28 -17
  389. package/dist-es/generated/mistica-icons/icon-care-briefcase-regular.js +24 -14
  390. package/dist-es/generated/mistica-icons/icon-care-filled.js +29 -19
  391. package/dist-es/generated/mistica-icons/icon-care-home-filled.js +32 -21
  392. package/dist-es/generated/mistica-icons/icon-care-home-light.js +31 -20
  393. package/dist-es/generated/mistica-icons/icon-care-home-regular.js +40 -30
  394. package/dist-es/generated/mistica-icons/icon-care-laptop-filled.js +29 -18
  395. package/dist-es/generated/mistica-icons/icon-care-laptop-light.js +31 -20
  396. package/dist-es/generated/mistica-icons/icon-care-laptop-regular.js +33 -23
  397. package/dist-es/generated/mistica-icons/icon-care-light.js +24 -14
  398. package/dist-es/generated/mistica-icons/icon-care-mobile-filled.js +30 -19
  399. package/dist-es/generated/mistica-icons/icon-care-mobile-light.js +35 -18
  400. package/dist-es/generated/mistica-icons/icon-care-mobile-regular.js +50 -34
  401. package/dist-es/generated/mistica-icons/icon-care-regular.js +38 -28
  402. package/dist-es/generated/mistica-icons/icon-care-shield-filled.js +33 -23
  403. package/dist-es/generated/mistica-icons/icon-care-shield-light.js +27 -17
  404. package/dist-es/generated/mistica-icons/icon-care-shield-regular.js +33 -23
  405. package/dist-es/generated/mistica-icons/icon-change-plan-filled.js +41 -21
  406. package/dist-es/generated/mistica-icons/icon-change-plan-light.js +42 -22
  407. package/dist-es/generated/mistica-icons/icon-change-plan-regular.js +35 -19
  408. package/dist-es/generated/mistica-icons/icon-chip-device-filled.js +37 -21
  409. package/dist-es/generated/mistica-icons/icon-chip-device-light.js +46 -30
  410. package/dist-es/generated/mistica-icons/icon-chip-device-regular.js +48 -32
  411. package/dist-es/generated/mistica-icons/icon-chip-sim-card-filled.js +26 -16
  412. package/dist-es/generated/mistica-icons/icon-chip-sim-card-light.js +43 -27
  413. package/dist-es/generated/mistica-icons/icon-chip-sim-card-regular.js +59 -43
  414. package/dist-es/generated/mistica-icons/icon-credit-card-filled.js +24 -14
  415. package/dist-es/generated/mistica-icons/icon-credit-card-light.js +19 -9
  416. package/dist-es/generated/mistica-icons/icon-credit-card-regular.js +26 -16
  417. package/dist-es/generated/mistica-icons/icon-document-other-filled.js +31 -15
  418. package/dist-es/generated/mistica-icons/icon-document-other-light.js +42 -26
  419. package/dist-es/generated/mistica-icons/icon-document-other-regular.js +32 -16
  420. package/dist-es/generated/mistica-icons/icon-dollar-symbol-circle-filled.js +28 -18
  421. package/dist-es/generated/mistica-icons/icon-dollar-symbol-circle-light.js +41 -25
  422. package/dist-es/generated/mistica-icons/icon-dollar-symbol-circle-regular.js +42 -26
  423. package/dist-es/generated/mistica-icons/icon-error-filled.js +44 -28
  424. package/dist-es/generated/mistica-icons/icon-error-light.js +37 -21
  425. package/dist-es/generated/mistica-icons/icon-error-regular.js +40 -24
  426. package/dist-es/generated/mistica-icons/icon-esim-filled.js +48 -32
  427. package/dist-es/generated/mistica-icons/icon-esim-light.js +58 -38
  428. package/dist-es/generated/mistica-icons/icon-esim-regular.js +35 -15
  429. package/dist-es/generated/mistica-icons/icon-eye-filled.js +24 -14
  430. package/dist-es/generated/mistica-icons/icon-eye-light.js +43 -27
  431. package/dist-es/generated/mistica-icons/icon-eye-regular.js +33 -17
  432. package/dist-es/generated/mistica-icons/icon-file-ok-filled.js +41 -25
  433. package/dist-es/generated/mistica-icons/icon-file-ok-light.js +37 -21
  434. package/dist-es/generated/mistica-icons/icon-file-ok-regular.js +41 -25
  435. package/dist-es/generated/mistica-icons/icon-fingerprint-filled.js +45 -24
  436. package/dist-es/generated/mistica-icons/icon-fingerprint-light.js +39 -18
  437. package/dist-es/generated/mistica-icons/icon-fingerprint-regular.js +32 -12
  438. package/dist-es/generated/mistica-icons/icon-home-filled.js +19 -9
  439. package/dist-es/generated/mistica-icons/icon-home-light.js +24 -14
  440. package/dist-es/generated/mistica-icons/icon-home-regular.js +30 -20
  441. package/dist-es/generated/mistica-icons/icon-home-wifi-filled.js +51 -31
  442. package/dist-es/generated/mistica-icons/icon-home-wifi-light.js +36 -20
  443. package/dist-es/generated/mistica-icons/icon-home-wifi-regular.js +51 -31
  444. package/dist-es/generated/mistica-icons/icon-id-card-filled.js +40 -24
  445. package/dist-es/generated/mistica-icons/icon-id-card-light.js +38 -22
  446. package/dist-es/generated/mistica-icons/icon-id-card-regular.js +42 -26
  447. package/dist-es/generated/mistica-icons/icon-information-user-filled.js +36 -16
  448. package/dist-es/generated/mistica-icons/icon-information-user-light.js +51 -35
  449. package/dist-es/generated/mistica-icons/icon-information-user-regular.js +58 -42
  450. package/dist-es/generated/mistica-icons/icon-internet-filled.js +22 -12
  451. package/dist-es/generated/mistica-icons/icon-internet-light.js +25 -15
  452. package/dist-es/generated/mistica-icons/icon-internet-regular.js +22 -12
  453. package/dist-es/generated/mistica-icons/icon-key-filled.js +23 -13
  454. package/dist-es/generated/mistica-icons/icon-key-light.js +40 -24
  455. package/dist-es/generated/mistica-icons/icon-key-regular.js +40 -24
  456. package/dist-es/generated/mistica-icons/icon-list-filled.js +29 -18
  457. package/dist-es/generated/mistica-icons/icon-list-light.js +38 -22
  458. package/dist-es/generated/mistica-icons/icon-list-regular.js +42 -26
  459. package/dist-es/generated/mistica-icons/icon-location-filled.js +29 -19
  460. package/dist-es/generated/mistica-icons/icon-location-light.js +37 -21
  461. package/dist-es/generated/mistica-icons/icon-location-regular.js +37 -21
  462. package/dist-es/generated/mistica-icons/icon-lock-closed-filled.js +28 -18
  463. package/dist-es/generated/mistica-icons/icon-lock-closed-light.js +35 -19
  464. package/dist-es/generated/mistica-icons/icon-lock-closed-regular.js +40 -24
  465. package/dist-es/generated/mistica-icons/icon-message-filled.js +29 -18
  466. package/dist-es/generated/mistica-icons/icon-message-light.js +36 -19
  467. package/dist-es/generated/mistica-icons/icon-message-regular.js +35 -18
  468. package/dist-es/generated/mistica-icons/icon-mobile-device-filled.js +30 -20
  469. package/dist-es/generated/mistica-icons/icon-mobile-device-light.js +34 -18
  470. package/dist-es/generated/mistica-icons/icon-mobile-device-regular.js +37 -21
  471. package/dist-es/generated/mistica-icons/icon-panel-collapse-regular.js +115 -0
  472. package/dist-es/generated/mistica-icons/icon-panel-expand-regular.js +109 -0
  473. package/dist-es/generated/mistica-icons/icons-keywords.js +57 -0
  474. package/dist-es/grid-layout.css-mistica.js +3 -3
  475. package/dist-es/grid.css-mistica.js +120 -120
  476. package/dist-es/header.css-mistica.js +1 -1
  477. package/dist-es/header.js +113 -105
  478. package/dist-es/hero.css-mistica.js +3 -3
  479. package/dist-es/horizontal-scroll.css-mistica.js +1 -1
  480. package/dist-es/icon-button.css-mistica.js +53 -53
  481. package/dist-es/icons/icon-chevron.css-mistica.js +2 -2
  482. package/dist-es/icons/icon-error.css-mistica.js +1 -1
  483. package/dist-es/image.css-mistica.js +4 -4
  484. package/dist-es/index.js +2349 -2345
  485. package/dist-es/inline.css-mistica.js +11 -11
  486. package/dist-es/list.css-mistica.js +8 -2
  487. package/dist-es/list.js +275 -264
  488. package/dist-es/loading-bar.css-mistica.js +1 -1
  489. package/dist-es/loading-screen.css-mistica.js +5 -5
  490. package/dist-es/logo.css-mistica.js +5 -5
  491. package/dist-es/menu.css-mistica.js +13 -13
  492. package/dist-es/mobile-navigation-menu.js +90 -0
  493. package/dist-es/mosaic.css-mistica.js +1 -1
  494. package/dist-es/navigation-bar.css-mistica.js +11 -20
  495. package/dist-es/navigation-bar.js +469 -656
  496. package/dist-es/navigation-breadcrumbs.css-mistica.js +1 -1
  497. package/dist-es/navigation-shared.css-mistica.js +11 -0
  498. package/dist-es/navigation-shared.js +192 -0
  499. package/dist-es/package-version.js +1 -1
  500. package/dist-es/pagination.css-mistica.js +19 -19
  501. package/dist-es/pin-field.css-mistica.js +2 -2
  502. package/dist-es/popover.css-mistica.js +1 -1
  503. package/dist-es/progress-bar.css-mistica.js +7 -7
  504. package/dist-es/radio-button.css-mistica.js +22 -22
  505. package/dist-es/rating.css-mistica.js +3 -3
  506. package/dist-es/responsive-layout.css-mistica.js +6 -6
  507. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  508. package/dist-es/select.css-mistica.js +18 -18
  509. package/dist-es/sheet-action-row.css-mistica.js +1 -1
  510. package/dist-es/sheet-common.css-mistica.js +2 -2
  511. package/dist-es/sheet-info.css-mistica.js +1 -1
  512. package/dist-es/sidenav-bar-context.js +14 -0
  513. package/dist-es/sidenav-bar-data.js +12 -0
  514. package/dist-es/sidenav-bar-first-level-item.js +124 -0
  515. package/dist-es/sidenav-bar-keyboard.js +253 -0
  516. package/dist-es/sidenav-bar-layout.css-mistica.js +2 -0
  517. package/dist-es/sidenav-bar-layout.js +86 -0
  518. package/dist-es/sidenav-bar-mobile.js +277 -0
  519. package/dist-es/sidenav-bar-motion.js +26 -0
  520. package/dist-es/sidenav-bar-panel.js +146 -0
  521. package/dist-es/sidenav-bar-row.js +208 -0
  522. package/dist-es/sidenav-bar-second-level-item.js +72 -0
  523. package/dist-es/sidenav-bar-section.js +112 -0
  524. package/dist-es/sidenav-bar-types.js +2 -0
  525. package/dist-es/sidenav-bar.css-mistica.js +74 -0
  526. package/dist-es/sidenav-bar.js +429 -0
  527. package/dist-es/skeletons.css-mistica.js +7 -7
  528. package/dist-es/skins/blau.js +23 -8
  529. package/dist-es/skins/defaults.js +11 -0
  530. package/dist-es/skins/esimflag.js +24 -9
  531. package/dist-es/skins/movistar.js +24 -9
  532. package/dist-es/skins/o2.js +24 -9
  533. package/dist-es/skins/skin-contract.css-mistica.js +740 -731
  534. package/dist-es/skins/telefonica.js +24 -9
  535. package/dist-es/skins/vivo-evolution.js +25 -10
  536. package/dist-es/skins/vivo.js +24 -9
  537. package/dist-es/skip-link.css-mistica.js +2 -2
  538. package/dist-es/slider.css-mistica.js +20 -20
  539. package/dist-es/snackbar.css-mistica.js +5 -5
  540. package/dist-es/spinner.css-mistica.js +1 -1
  541. package/dist-es/square.css-mistica.js +1 -1
  542. package/dist-es/stack.css-mistica.js +5 -5
  543. package/dist-es/stacking-group.css-mistica.js +1 -1
  544. package/dist-es/stepper.css-mistica.js +3 -3
  545. package/dist-es/style.css +1 -1
  546. package/dist-es/switch-component.css-mistica.js +37 -37
  547. package/dist-es/switch-component.js +26 -26
  548. package/dist-es/table.css-mistica.js +9 -9
  549. package/dist-es/tabs.css-mistica.js +19 -19
  550. package/dist-es/tag.css-mistica.js +2 -2
  551. package/dist-es/text-field-base.css-mistica.js +17 -17
  552. package/dist-es/text-field-components.css-mistica.js +4 -4
  553. package/dist-es/text-link.css-mistica.js +6 -6
  554. package/dist-es/text-tokens.js +82 -67
  555. package/dist-es/text.css-mistica.js +6 -6
  556. package/dist-es/timeline.css-mistica.js +10 -10
  557. package/dist-es/timer.css-mistica.js +6 -6
  558. package/dist-es/tooltip.css-mistica.js +2 -2
  559. package/dist-es/touchable.css-mistica.js +2 -2
  560. package/dist-es/utils/aspect-ratio-support.css-mistica.js +2 -2
  561. package/dist-es/video.css-mistica.js +1 -1
  562. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  563. package/package.json +2 -1
  564. package/src/boxed.css.ts +1 -0
  565. package/src/boxed.tsx +18 -5
  566. package/src/callout.css.ts +4 -2
  567. package/src/community/skins/cyber-skin.tsx +19 -16
  568. package/src/fade-out.css.ts +12 -0
  569. package/src/fade-out.tsx +50 -0
  570. package/src/header.tsx +39 -17
  571. package/src/index.tsx +15 -0
  572. package/src/list.css.ts +36 -1
  573. package/src/list.tsx +370 -344
  574. package/src/mobile-navigation-menu.tsx +168 -0
  575. package/src/navigation-bar.css.ts +2 -267
  576. package/src/navigation-bar.tsx +77 -370
  577. package/src/navigation-shared.css.ts +289 -0
  578. package/src/navigation-shared.tsx +262 -0
  579. package/src/package-version.tsx +1 -1
  580. package/src/portal.tsx +1 -1
  581. package/src/sidenav-bar-context.tsx +41 -0
  582. package/src/sidenav-bar-data.ts +49 -0
  583. package/src/sidenav-bar-first-level-item.tsx +203 -0
  584. package/src/sidenav-bar-keyboard.tsx +393 -0
  585. package/src/sidenav-bar-layout.css.ts +89 -0
  586. package/src/sidenav-bar-layout.tsx +61 -0
  587. package/src/sidenav-bar-mobile.tsx +302 -0
  588. package/src/sidenav-bar-motion.tsx +70 -0
  589. package/src/sidenav-bar-panel.tsx +269 -0
  590. package/src/sidenav-bar-row.tsx +272 -0
  591. package/src/sidenav-bar-second-level-item.tsx +99 -0
  592. package/src/sidenav-bar-section.tsx +98 -0
  593. package/src/sidenav-bar-types.ts +224 -0
  594. package/src/sidenav-bar.css.ts +1018 -0
  595. package/src/sidenav-bar.tsx +821 -0
  596. package/src/skins/blau.tsx +17 -8
  597. package/src/skins/defaults.tsx +5 -0
  598. package/src/skins/esimflag.tsx +18 -9
  599. package/src/skins/movistar.tsx +18 -9
  600. package/src/skins/o2.tsx +18 -9
  601. package/src/skins/skin-contract.css.ts +3 -0
  602. package/src/skins/telefonica.tsx +18 -9
  603. package/src/skins/types/colors.tsx +2 -0
  604. package/src/skins/types/index.tsx +1 -0
  605. package/src/skins/vivo-evolution.tsx +19 -10
  606. package/src/skins/vivo.tsx +18 -9
  607. package/src/switch-component.css.ts +20 -0
  608. package/src/switch-component.tsx +9 -1
  609. package/src/text-tokens.tsx +24 -0
@@ -0,0 +1,168 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {CSSTransition} from 'react-transition-group';
4
+ import FocusTrap from './focus-trap';
5
+ import {Portal} from './portal';
6
+ import {useTheme} from './hooks';
7
+ import {isRunningAcceptanceTest} from './utils/platform';
8
+ import * as tokens from './text-tokens';
9
+ import * as styles from './navigation-shared.css';
10
+
11
+ /**
12
+ * The panel that a burger menu opens on mobile. It holds two panes that slide horizontally: the first
13
+ * level, and the second level of the item the user pressed. `MainNavigationBar` and `SidenavBar` share it,
14
+ * so both keep the same animation, the same focus behavior and the same overlay.
15
+ *
16
+ * The panel is a shell: each component passes the content of the two panes, because their data models
17
+ * differ.
18
+ */
19
+
20
+ type MobileNavigationMenuStatus = 'opening' | 'opened' | 'closing' | 'closed';
21
+ type MobileNavigationMenuAction = 'open' | 'finishOpen' | 'close' | 'finishClose';
22
+
23
+ const mobileNavigationMenuTransitions: Record<
24
+ MobileNavigationMenuStatus,
25
+ Partial<Record<MobileNavigationMenuAction, MobileNavigationMenuStatus>>
26
+ > = {
27
+ opening: {
28
+ close: 'closing',
29
+ finishOpen: 'opened',
30
+ },
31
+ opened: {
32
+ close: 'closing',
33
+ },
34
+ closing: {
35
+ open: 'opening',
36
+ finishClose: 'closed',
37
+ },
38
+ closed: {
39
+ open: 'opening',
40
+ },
41
+ };
42
+
43
+ const secondLevelReducer = (state: MobileNavigationMenuStatus, action: MobileNavigationMenuAction) => {
44
+ return mobileNavigationMenuTransitions[state][action] || state;
45
+ };
46
+
47
+ type MobileNavigationMenuProps = {
48
+ /** True while the menu shows. The panel animates on every change of this prop. */
49
+ open: boolean;
50
+ /** Id of the panel, which the burger button points to with `aria-controls`. */
51
+ id: string;
52
+ /** Distance from the top of the viewport, which leaves the top bar visible. */
53
+ topOffset: number;
54
+ /** Content of the first pane. */
55
+ firstLevel: React.ReactNode;
56
+ /** Content of the second pane. */
57
+ secondLevel?: React.ReactNode;
58
+ /** True if the second pane must show. The panel slides both panes on every change of this prop. */
59
+ showSecondLevel?: boolean;
60
+ /** Called once the panel finished its exit, so the consumer resets its own state. */
61
+ onExited?: () => void;
62
+ /** Accessible name of the navigation landmark. */
63
+ 'aria-label'?: string;
64
+ /** Group of the focus trap, which the consumer shares with its own top bar. */
65
+ focusTrapGroup: string;
66
+ disableFocusTrap: boolean;
67
+ setDisableFocusTrap: (value: boolean) => void;
68
+ };
69
+
70
+ const MobileNavigationMenu = ({
71
+ open,
72
+ id,
73
+ topOffset,
74
+ firstLevel,
75
+ secondLevel,
76
+ showSecondLevel = false,
77
+ onExited,
78
+ 'aria-label': ariaLabel,
79
+ focusTrapGroup,
80
+ disableFocusTrap,
81
+ setDisableFocusTrap,
82
+ }: MobileNavigationMenuProps): JSX.Element => {
83
+ const {isDarkMode, texts, t} = useTheme();
84
+ const [secondLevelStatus, dispatch] = React.useReducer(secondLevelReducer, 'closed');
85
+ const menuRef = React.useRef<HTMLDivElement>(null);
86
+ const secondLevelRef = React.useRef<HTMLDivElement>(null);
87
+
88
+ const shadowAlpha = isDarkMode ? 1 : 0.2;
89
+ const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.BURGER_MENU_ANIMATION_DURATION_MS;
90
+
91
+ React.useEffect(() => {
92
+ let id: NodeJS.Timeout;
93
+
94
+ if (showSecondLevel) {
95
+ dispatch('open');
96
+ id = setTimeout(() => dispatch('finishOpen'), menuAnimationDuration);
97
+ } else {
98
+ dispatch('close');
99
+ id = setTimeout(() => dispatch('finishClose'), menuAnimationDuration);
100
+ }
101
+
102
+ return () => clearTimeout(id);
103
+ }, [showSecondLevel, menuAnimationDuration]);
104
+
105
+ React.useEffect(() => {
106
+ // Make screen reader focus on back button when opening any section's menu
107
+ if (secondLevelStatus === 'opening') {
108
+ const backButtonElement = secondLevelRef.current?.querySelector<HTMLButtonElement>(
109
+ `button[aria-label="${texts.backNavigationBar || t(tokens.backNavigationBar)}"]`
110
+ );
111
+
112
+ backButtonElement?.focus();
113
+ }
114
+ }, [secondLevelStatus, t, texts]);
115
+
116
+ return (
117
+ <Portal>
118
+ <FocusTrap disabled={disableFocusTrap} group={focusTrapGroup}>
119
+ <CSSTransition
120
+ onEntered={() => setDisableFocusTrap(false)}
121
+ onExiting={() => setDisableFocusTrap(true)}
122
+ onExited={onExited}
123
+ classNames={styles.burgerMenuTransition}
124
+ in={open}
125
+ nodeRef={menuRef}
126
+ timeout={menuAnimationDuration}
127
+ mountOnEnter
128
+ unmountOnExit
129
+ >
130
+ <nav
131
+ className={styles.burgerMenu}
132
+ style={{
133
+ boxShadow: `6px 0 4px -4px rgba(0, 0, 0, ${shadowAlpha})`,
134
+ top: topOffset,
135
+ }}
136
+ id={id}
137
+ ref={menuRef}
138
+ aria-label={ariaLabel}
139
+ >
140
+ <div className={styles.burgerMenuContainer}>
141
+ <div
142
+ className={styles.burgerMenuContentContainer}
143
+ style={{
144
+ transform: `translate(${showSecondLevel ? '-100vw' : '0'})`,
145
+ }}
146
+ >
147
+ {secondLevelStatus !== 'opened' && firstLevel}
148
+ </div>
149
+
150
+ <div
151
+ className={styles.burgerMenuContentContainer}
152
+ ref={secondLevelRef}
153
+ style={{
154
+ transform: `translate(${showSecondLevel ? '0' : '100vw'})`,
155
+ }}
156
+ >
157
+ {secondLevelStatus !== 'closed' && secondLevel}
158
+ </div>
159
+ </div>
160
+ </nav>
161
+ </CSSTransition>
162
+ </FocusTrap>
163
+ </Portal>
164
+ );
165
+ };
166
+
167
+ export {MobileNavigationMenu};
168
+ export type {MobileNavigationMenuProps};
@@ -1,121 +1,15 @@
1
1
  import {style, styleVariants} from '@vanilla-extract/css';
2
2
  import {sprinkles} from './sprinkles.css';
3
- import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE, NAVBAR_HEIGHT_MOBILE} from './theme';
3
+ import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE} from './theme';
4
4
  import * as mq from './media-queries.css';
5
5
  import {vars} from './skins/skin-contract.css';
6
-
7
- const NAVBAR_ZINDEX = 25;
6
+ import {NAVBAR_ZINDEX, spacerMobile} from './navigation-shared.css';
8
7
 
9
8
  export const DESKTOP_SMALL_MENU_WIDTH = 184;
10
9
 
11
- export const BURGER_MENU_ANIMATION_DURATION_MS = 300;
12
10
  export const DESKTOP_MENU_ANIMATION_DURATION_MS = 400;
13
11
  const DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS = 800;
14
12
 
15
- export const burgerIconContainer = style([
16
- sprinkles({
17
- position: 'relative',
18
- width: 24,
19
- height: 24,
20
- }),
21
- {
22
- verticalAlign: 'middle',
23
- borderRadius: 50,
24
- },
25
- ]);
26
-
27
- const iconBase = style([
28
- sprinkles({
29
- position: 'absolute',
30
- }),
31
- {
32
- top: 0,
33
- left: 0,
34
- transition: 'transform 300ms, opacity 100ms',
35
- },
36
- ]);
37
-
38
- export const iconCloseOpen = style([
39
- iconBase,
40
- {
41
- opacity: 1,
42
- transform: 'rotate(0) scale(1)',
43
- },
44
- ]);
45
-
46
- export const iconCloseHidden = style([
47
- iconBase,
48
- {
49
- opacity: 0,
50
- transform: 'rotate(-45deg) scale(0.9)',
51
- },
52
- ]);
53
-
54
- export const iconMenuOpen = style([
55
- iconBase,
56
- {
57
- opacity: 1,
58
- transform: 'scale(1)',
59
- },
60
- ]);
61
-
62
- export const iconMenuHidden = style([
63
- iconBase,
64
- {
65
- opacity: 0,
66
- transform: 'scale(0.7)',
67
- },
68
- ]);
69
-
70
- export const topFixed = style([
71
- sprinkles({
72
- position: 'fixed',
73
- top: 0,
74
- left: 0,
75
- right: 0,
76
- }),
77
- {
78
- zIndex: NAVBAR_ZINDEX,
79
- },
80
- ]);
81
-
82
- const borderWidth = 1;
83
-
84
- const navbarBase = style([
85
- sprinkles({
86
- display: 'flex',
87
- alignItems: 'center',
88
- width: '100%',
89
- }),
90
- {
91
- borderWidth,
92
- borderBottomStyle: 'solid',
93
-
94
- '@media': {
95
- [mq.tabletOrSmaller]: {
96
- transition: 'border-color 300ms',
97
- },
98
- },
99
- },
100
- ]);
101
-
102
- export const navbarBorderColorVariants = styleVariants({
103
- default: [navbarBase, {borderColor: vars.colors.divider}],
104
- noBorder: [navbarBase, {borderColor: 'transparent'}],
105
- menuOpen: [
106
- navbarBase,
107
- {
108
- borderColor: vars.colors.divider,
109
-
110
- '@media': {
111
- [mq.tabletOrSmaller]: {
112
- borderColor: 'transparent',
113
- },
114
- },
115
- },
116
- ],
117
- });
118
-
119
13
  export const desktopMenuFirstSection = style({});
120
14
  export const desktopMenuLastSection = style({});
121
15
 
@@ -248,89 +142,12 @@ export const textWrapperVariants = styleVariants({
248
142
  },
249
143
  });
250
144
 
251
- export const navigationBarContent = style([
252
- sprinkles({
253
- alignItems: 'center',
254
- width: '100%',
255
- display: 'flex',
256
- }),
257
- {
258
- height: NAVBAR_HEIGHT_DESKTOP,
259
- '@media': {
260
- [mq.tabletOrSmaller]: {
261
- height: NAVBAR_HEIGHT_MOBILE - borderWidth,
262
- },
263
- [mq.desktopOrBigger]: {
264
- ':last-child': {
265
- height: NAVBAR_HEIGHT_DESKTOP - borderWidth,
266
- },
267
- },
268
- },
269
- },
270
- ]);
271
-
272
145
  export const navigationBarAction = sprinkles({
273
146
  border: 'none',
274
147
  background: 'transparent',
275
148
  padding: 0,
276
149
  });
277
150
 
278
- export const desktopOnly = style({
279
- '@media': {
280
- [mq.tabletOrSmaller]: {
281
- display: 'none',
282
- },
283
- },
284
- });
285
-
286
- export const navigationBarContentRight = style([
287
- sprinkles({
288
- display: 'flex',
289
- alignItems: 'center',
290
- justifyContent: 'flex-end',
291
- }),
292
- {
293
- height: NAVBAR_HEIGHT_DESKTOP,
294
- '@media': {
295
- [mq.tabletOrSmaller]: {
296
- paddingLeft: 24,
297
- flex: 1,
298
- height: NAVBAR_HEIGHT_MOBILE - borderWidth,
299
- },
300
- [mq.desktopOrBigger]: {
301
- ':last-child': {
302
- height: NAVBAR_HEIGHT_DESKTOP - borderWidth,
303
- },
304
- },
305
- },
306
- },
307
- ]);
308
-
309
- export const navigationBarContentRightExpanded = style([
310
- navigationBarContentRight,
311
- sprinkles({
312
- flex: 1,
313
- }),
314
- {
315
- paddingLeft: 56,
316
- },
317
- ]);
318
-
319
- const spacerMobile = style({
320
- '@media': {
321
- [mq.tabletOrSmaller]: {
322
- height: NAVBAR_HEIGHT_MOBILE,
323
- },
324
- },
325
- });
326
-
327
- export const spacer = style([
328
- sprinkles({
329
- height: NAVBAR_HEIGHT_DESKTOP,
330
- }),
331
- spacerMobile,
332
- ]);
333
-
334
151
  export const spacerLarge = style([
335
152
  {
336
153
  height: NAVBAR_HEIGHT_DESKTOP_LARGE,
@@ -338,33 +155,6 @@ export const spacerLarge = style([
338
155
  spacerMobile,
339
156
  ]);
340
157
 
341
- export const burgerMenuTransition = {
342
- enter: style({
343
- transform: 'translate(-100vw)',
344
- }),
345
- enterActive: style({
346
- transform: 'translate(0)',
347
- transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
348
- '@media': {
349
- ['(prefers-reduced-motion)']: {
350
- transition: 'none',
351
- },
352
- },
353
- }),
354
- exit: style({
355
- transform: 'translate(0)',
356
- }),
357
- exitActive: style({
358
- transform: 'translate(-100vw)',
359
- transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
360
- '@media': {
361
- ['(prefers-reduced-motion)']: {
362
- transition: 'none',
363
- },
364
- },
365
- }),
366
- };
367
-
368
158
  export const mainNavbarContent = sprinkles({
369
159
  display: 'flex',
370
160
  alignItems: 'center',
@@ -375,61 +165,6 @@ export const mainNavBarSectionsContainer = style([
375
165
  {minWidth: 'fit-content'},
376
166
  ]);
377
167
 
378
- export const logoContainer = style([
379
- sprinkles({
380
- display: 'flex',
381
- justifyContent: 'center',
382
- }),
383
- {
384
- '@media': {
385
- [mq.tabletOrSmaller]: {
386
- marginRight: 0,
387
- },
388
- },
389
- },
390
- ]);
391
-
392
- export const burgerMenuButton = style({
393
- marginRight: 24,
394
- width: 'fit-content',
395
- '@media': {
396
- [mq.desktopOrBigger]: {
397
- display: 'none',
398
- },
399
- },
400
- });
401
-
402
- export const burgerMenu = sprinkles({
403
- position: 'fixed',
404
- left: 0,
405
- right: 0,
406
- bottom: 0,
407
- background: vars.colors.background,
408
- });
409
-
410
- export const burgerMenuContainer = sprinkles({
411
- height: '100%',
412
- position: 'relative',
413
- });
414
-
415
- export const burgerMenuContentContainer = style([
416
- sprinkles({
417
- overflowY: 'auto',
418
- width: '100%',
419
- height: '100%',
420
- position: 'absolute',
421
- top: 0,
422
- }),
423
- {
424
- transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
425
- '@media': {
426
- ['(prefers-reduced-motion)']: {
427
- transition: 'none',
428
- },
429
- },
430
- },
431
- ]);
432
-
433
168
  export const iconButtonVariants = styleVariants({
434
169
  default: [
435
170
  sprinkles({color: vars.colors.neutralHigh}),