@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,289 @@
1
+ import {style, styleVariants} from '@vanilla-extract/css';
2
+ import {sprinkles} from './sprinkles.css';
3
+ import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_MOBILE} from './theme';
4
+ import * as mq from './media-queries.css';
5
+ import {vars} from './skins/skin-contract.css';
6
+
7
+ /*
8
+ * Styles of the parts that every navigation surface shares: the header of a bar, the content of that
9
+ * header, the burger icon, the panel that the burger opens, and the spacer of a fixed bar. `NavigationBar`,
10
+ * `MainNavigationBar`, `FunnelNavigationBar` and `SidenavBar` all read them, so a change here reaches the
11
+ * four of them.
12
+ *
13
+ * The styles of the desktop menu of `MainNavigationBar` stay in `navigation-bar.css.ts`, because that menu
14
+ * belongs to that component alone.
15
+ */
16
+
17
+ export const NAVBAR_ZINDEX = 25;
18
+
19
+ export const BURGER_MENU_ANIMATION_DURATION_MS = 300;
20
+
21
+ const borderWidth = 1;
22
+
23
+ // Header ----------------------------------------------------------------------
24
+
25
+ export const topFixed = style([
26
+ sprinkles({
27
+ position: 'fixed',
28
+ top: 0,
29
+ left: 0,
30
+ right: 0,
31
+ }),
32
+ {
33
+ zIndex: NAVBAR_ZINDEX,
34
+ },
35
+ ]);
36
+
37
+ const navbarBase = style([
38
+ sprinkles({
39
+ display: 'flex',
40
+ alignItems: 'center',
41
+ width: '100%',
42
+ }),
43
+ {
44
+ borderWidth,
45
+ borderBottomStyle: 'solid',
46
+
47
+ '@media': {
48
+ [mq.tabletOrSmaller]: {
49
+ transition: 'border-color 300ms',
50
+ },
51
+ },
52
+ },
53
+ ]);
54
+
55
+ export const navbarBorderColorVariants = styleVariants({
56
+ default: [navbarBase, {borderColor: vars.colors.divider}],
57
+ noBorder: [navbarBase, {borderColor: 'transparent'}],
58
+ menuOpen: [
59
+ navbarBase,
60
+ {
61
+ borderColor: vars.colors.divider,
62
+
63
+ '@media': {
64
+ [mq.tabletOrSmaller]: {
65
+ borderColor: 'transparent',
66
+ },
67
+ },
68
+ },
69
+ ],
70
+ });
71
+
72
+ export const navigationBarContent = style([
73
+ sprinkles({
74
+ alignItems: 'center',
75
+ width: '100%',
76
+ display: 'flex',
77
+ }),
78
+ {
79
+ height: NAVBAR_HEIGHT_DESKTOP,
80
+ '@media': {
81
+ [mq.tabletOrSmaller]: {
82
+ height: NAVBAR_HEIGHT_MOBILE - borderWidth,
83
+ },
84
+ [mq.desktopOrBigger]: {
85
+ ':last-child': {
86
+ height: NAVBAR_HEIGHT_DESKTOP - borderWidth,
87
+ },
88
+ },
89
+ },
90
+ },
91
+ ]);
92
+
93
+ export const navigationBarContentRight = style([
94
+ sprinkles({
95
+ display: 'flex',
96
+ alignItems: 'center',
97
+ justifyContent: 'flex-end',
98
+ }),
99
+ {
100
+ height: NAVBAR_HEIGHT_DESKTOP,
101
+ '@media': {
102
+ [mq.tabletOrSmaller]: {
103
+ paddingLeft: 24,
104
+ flex: 1,
105
+ height: NAVBAR_HEIGHT_MOBILE - borderWidth,
106
+ },
107
+ [mq.desktopOrBigger]: {
108
+ ':last-child': {
109
+ height: NAVBAR_HEIGHT_DESKTOP - borderWidth,
110
+ },
111
+ },
112
+ },
113
+ },
114
+ ]);
115
+
116
+ export const navigationBarContentRightExpanded = style([
117
+ navigationBarContentRight,
118
+ sprinkles({
119
+ flex: 1,
120
+ }),
121
+ {
122
+ paddingLeft: 56,
123
+ },
124
+ ]);
125
+
126
+ export const desktopOnly = style({
127
+ '@media': {
128
+ [mq.tabletOrSmaller]: {
129
+ display: 'none',
130
+ },
131
+ },
132
+ });
133
+
134
+ export const logoContainer = style([
135
+ sprinkles({
136
+ display: 'flex',
137
+ justifyContent: 'center',
138
+ }),
139
+ {
140
+ '@media': {
141
+ [mq.tabletOrSmaller]: {
142
+ marginRight: 0,
143
+ },
144
+ },
145
+ },
146
+ ]);
147
+
148
+ // The spacer keeps the content of the page below a bar that is fixed to the top of the viewport.
149
+ export const spacerMobile = style({
150
+ '@media': {
151
+ [mq.tabletOrSmaller]: {
152
+ height: NAVBAR_HEIGHT_MOBILE,
153
+ },
154
+ },
155
+ });
156
+
157
+ export const spacer = style([
158
+ sprinkles({
159
+ height: NAVBAR_HEIGHT_DESKTOP,
160
+ }),
161
+ spacerMobile,
162
+ ]);
163
+
164
+ // Burger icon -----------------------------------------------------------------
165
+
166
+ export const burgerIconContainer = style([
167
+ sprinkles({
168
+ position: 'relative',
169
+ width: 24,
170
+ height: 24,
171
+ }),
172
+ {
173
+ verticalAlign: 'middle',
174
+ borderRadius: 50,
175
+ },
176
+ ]);
177
+
178
+ const iconBase = style([
179
+ sprinkles({
180
+ position: 'absolute',
181
+ }),
182
+ {
183
+ top: 0,
184
+ left: 0,
185
+ transition: 'transform 300ms, opacity 100ms',
186
+ },
187
+ ]);
188
+
189
+ export const iconCloseOpen = style([
190
+ iconBase,
191
+ {
192
+ opacity: 1,
193
+ transform: 'rotate(0) scale(1)',
194
+ },
195
+ ]);
196
+
197
+ export const iconCloseHidden = style([
198
+ iconBase,
199
+ {
200
+ opacity: 0,
201
+ transform: 'rotate(-45deg) scale(0.9)',
202
+ },
203
+ ]);
204
+
205
+ export const iconMenuOpen = style([
206
+ iconBase,
207
+ {
208
+ opacity: 1,
209
+ transform: 'scale(1)',
210
+ },
211
+ ]);
212
+
213
+ export const iconMenuHidden = style([
214
+ iconBase,
215
+ {
216
+ opacity: 0,
217
+ transform: 'scale(0.7)',
218
+ },
219
+ ]);
220
+
221
+ export const burgerMenuButton = style({
222
+ marginRight: 24,
223
+ width: 'fit-content',
224
+ '@media': {
225
+ [mq.desktopOrBigger]: {
226
+ display: 'none',
227
+ },
228
+ },
229
+ });
230
+
231
+ // Burger menu panel -----------------------------------------------------------
232
+
233
+ export const burgerMenu = sprinkles({
234
+ position: 'fixed',
235
+ left: 0,
236
+ right: 0,
237
+ bottom: 0,
238
+ background: vars.colors.background,
239
+ });
240
+
241
+ export const burgerMenuContainer = sprinkles({
242
+ height: '100%',
243
+ position: 'relative',
244
+ });
245
+
246
+ export const burgerMenuContentContainer = style([
247
+ sprinkles({
248
+ overflowY: 'auto',
249
+ width: '100%',
250
+ height: '100%',
251
+ position: 'absolute',
252
+ top: 0,
253
+ }),
254
+ {
255
+ transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
256
+ '@media': {
257
+ ['(prefers-reduced-motion)']: {
258
+ transition: 'none',
259
+ },
260
+ },
261
+ },
262
+ ]);
263
+
264
+ export const burgerMenuTransition = {
265
+ enter: style({
266
+ transform: 'translate(-100vw)',
267
+ }),
268
+ enterActive: style({
269
+ transform: 'translate(0)',
270
+ transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
271
+ '@media': {
272
+ ['(prefers-reduced-motion)']: {
273
+ transition: 'none',
274
+ },
275
+ },
276
+ }),
277
+ exit: style({
278
+ transform: 'translate(0)',
279
+ }),
280
+ exitActive: style({
281
+ transform: 'translate(-100vw)',
282
+ transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`,
283
+ '@media': {
284
+ ['(prefers-reduced-motion)']: {
285
+ transition: 'none',
286
+ },
287
+ },
288
+ }),
289
+ };
@@ -0,0 +1,262 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import classnames from 'classnames';
4
+ import ResponsiveLayout from './responsive-layout';
5
+ import Inline from './inline';
6
+ import Box from './box';
7
+ import {Text3} from './text';
8
+ import {IconButton} from './icon-button';
9
+ import IconMenuRegular from './generated/mistica-icons/icon-menu-regular';
10
+ import IconCloseRegular from './generated/mistica-icons/icon-close-regular';
11
+ import IconChevronLeftRegular from './generated/mistica-icons/icon-chevron-left-regular';
12
+ import {ThemeVariant, normalizeVariant} from './theme-variant-context';
13
+ import {useTheme} from './hooks';
14
+ import {vars} from './skins/skin-contract.css';
15
+ import {getPrefixedDataAttributes} from './utils/dom';
16
+ import * as tokens from './text-tokens';
17
+ import * as styles from './navigation-shared.css';
18
+
19
+ import type {BoxProps} from './box';
20
+ import type {NonDeprecatedVariant, Variant} from './theme-variant-context';
21
+ import type {DataAttributes, HeadingType} from './utils/types';
22
+ import type {ExclusifyUnion} from './utils/utility-types';
23
+
24
+ /*
25
+ * The parts that every navigation surface shares. `NavigationBar`, `MainNavigationBar` and
26
+ * `FunnelNavigationBar` build their bars with them, and so does the mobile `SidenavBar`. A change here
27
+ * reaches the four components, so every one of them carries screenshot tests.
28
+ *
29
+ * The desktop menu of `MainNavigationBar` stays in `navigation-bar.tsx`, because that menu belongs to that
30
+ * component alone. The panel of a burger menu lives in `mobile-navigation-menu.tsx`.
31
+ */
32
+
33
+ export const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}): JSX.Element => {
34
+ return (
35
+ <div className={styles.burgerIconContainer} role="presentation" data-testid="BurgerMenuIcon">
36
+ <div className={isOpen ? styles.iconCloseOpen : styles.iconCloseHidden}>
37
+ <IconCloseRegular />
38
+ </div>
39
+ <div className={isOpen ? styles.iconMenuHidden : styles.iconMenuOpen}>
40
+ <IconMenuRegular />
41
+ </div>
42
+ </div>
43
+ );
44
+ };
45
+
46
+ type HeaderProps = {
47
+ children: React.ReactNode;
48
+ topFixed?: boolean;
49
+ variant: NonDeprecatedVariant;
50
+ withBorder?: boolean;
51
+ isBurgerMenuOpen?: boolean;
52
+ dataAttributes?: DataAttributes;
53
+ isBottomRow?: boolean;
54
+ };
55
+
56
+ export const Header = ({
57
+ children,
58
+ topFixed,
59
+ withBorder,
60
+ isBurgerMenuOpen,
61
+ variant,
62
+ dataAttributes,
63
+ }: HeaderProps): JSX.Element => {
64
+ const {isDarkMode} = useTheme();
65
+
66
+ const getBorderClass = () => {
67
+ const isBrandVariant = (variant === 'brand' || variant === 'negative') && !isDarkMode;
68
+ if (isBrandVariant || !withBorder) return styles.navbarBorderColorVariants.noBorder;
69
+ if (isBurgerMenuOpen) return styles.navbarBorderColorVariants.menuOpen;
70
+
71
+ return styles.navbarBorderColorVariants.default;
72
+ };
73
+
74
+ const backgroundColor = {
75
+ default: vars.colors.background,
76
+ brand: vars.colors.navigationBarBackground,
77
+ negative: vars.colors.backgroundNegative,
78
+ alternative: vars.colors.backgroundAlternative,
79
+ media: vars.colors.navigationBarBackground,
80
+ } as const;
81
+
82
+ return (
83
+ <header
84
+ className={classnames(getBorderClass(), {[styles.topFixed]: topFixed})}
85
+ style={{
86
+ background: backgroundColor[variant],
87
+ }}
88
+ {...getPrefixedDataAttributes(dataAttributes)}
89
+ >
90
+ {children}
91
+ </header>
92
+ );
93
+ };
94
+
95
+ type NavigationBarContentContainerProps = {
96
+ right?: React.ReactNode;
97
+ children?: React.ReactNode;
98
+ desktopOnly?: boolean;
99
+ expandRightContent?: boolean;
100
+ };
101
+
102
+ export const NavigationBarContentContainer = React.forwardRef<
103
+ HTMLDivElement,
104
+ NavigationBarContentContainerProps
105
+ >(({right, children, desktopOnly, expandRightContent}, ref) => {
106
+ return (
107
+ <div
108
+ ref={ref}
109
+ className={classnames(styles.navigationBarContent, {[styles.desktopOnly]: desktopOnly})}
110
+ >
111
+ {children}
112
+ {right && (
113
+ <div
114
+ className={
115
+ expandRightContent
116
+ ? styles.navigationBarContentRightExpanded
117
+ : styles.navigationBarContentRight
118
+ }
119
+ >
120
+ {right}
121
+ </div>
122
+ )}
123
+ </div>
124
+ );
125
+ });
126
+
127
+ type WideConfig = {
128
+ paddingX: BoxProps['paddingX'];
129
+ };
130
+
131
+ export const NavigationBarSideMargins = ({
132
+ children,
133
+ wide,
134
+ backgroundColor,
135
+ }: {
136
+ children: React.ReactNode;
137
+ wide: boolean | WideConfig;
138
+ backgroundColor?: string;
139
+ }): JSX.Element => {
140
+ if (!wide) {
141
+ return <ResponsiveLayout backgroundColor={backgroundColor}>{children}</ResponsiveLayout>;
142
+ }
143
+
144
+ const defaultWidePaddingX: BoxProps['paddingX'] = {
145
+ mobile: 16,
146
+ tablet: 24,
147
+ desktop: 24,
148
+ };
149
+
150
+ return (
151
+ <Box
152
+ width="100%"
153
+ paddingX={
154
+ wide === true
155
+ ? defaultWidePaddingX
156
+ : typeof wide.paddingX === 'number'
157
+ ? wide.paddingX
158
+ : {
159
+ ...defaultWidePaddingX,
160
+ ...wide.paddingX,
161
+ }
162
+ }
163
+ background={backgroundColor}
164
+ >
165
+ {children}
166
+ </Box>
167
+ );
168
+ };
169
+
170
+ type InteractiveProps = ExclusifyUnion<{href: string} | {to: string} | {onPress: () => void}>;
171
+
172
+ type MaybeInteractiveProps = ExclusifyUnion<{href?: string} | {to?: string} | {onPress?: () => void}>;
173
+
174
+ interface NavigationBarCommonProps {
175
+ variant?: Variant;
176
+ onBack?: () => void;
177
+ title?: string;
178
+ titleAs?: HeadingType;
179
+ right?: React.ReactElement;
180
+ withBorder?: boolean;
181
+ children?: undefined;
182
+ wide?: boolean | WideConfig;
183
+ }
184
+
185
+ interface NavigationBarTopFixedProps extends NavigationBarCommonProps {
186
+ topFixed?: true;
187
+ }
188
+
189
+ interface NavigationBarNotFixedProps extends NavigationBarCommonProps {
190
+ topFixed: false;
191
+ }
192
+
193
+ type NavigationBarProps = NavigationBarTopFixedProps | NavigationBarNotFixedProps;
194
+
195
+ export const NavigationBar = ({
196
+ onBack,
197
+ title,
198
+ titleAs,
199
+ right,
200
+ variant = 'default',
201
+ topFixed = true,
202
+ withBorder = true,
203
+ wide = false,
204
+ }: NavigationBarProps): JSX.Element => {
205
+ const {texts, t} = useTheme();
206
+ const content = (
207
+ <NavigationBarContentContainer right={right} expandRightContent>
208
+ <Inline space={24} alignItems="center">
209
+ {onBack && (
210
+ <IconButton
211
+ aria-label={texts.backNavigationBar || t(tokens.backNavigationBar)}
212
+ onPress={onBack}
213
+ Icon={IconChevronLeftRegular}
214
+ bleedLeft
215
+ bleedRight
216
+ />
217
+ )}
218
+ <Text3 regular truncate as={titleAs}>
219
+ {title}
220
+ </Text3>
221
+ </Inline>
222
+ </NavigationBarContentContainer>
223
+ );
224
+
225
+ const calcPaddingXWhenNotTopFixed = (): BoxProps['paddingX'] => {
226
+ if (typeof wide !== 'object') {
227
+ return 0;
228
+ }
229
+ return wide.paddingX ?? 0;
230
+ };
231
+
232
+ const normalizedVariant = normalizeVariant(variant);
233
+
234
+ return (
235
+ <ThemeVariant variant={normalizedVariant}>
236
+ <Header
237
+ topFixed={topFixed}
238
+ withBorder={withBorder}
239
+ variant={normalizedVariant}
240
+ dataAttributes={{testid: 'NavigationBar'}}
241
+ >
242
+ {topFixed ? (
243
+ <NavigationBarSideMargins wide={wide}>{content}</NavigationBarSideMargins>
244
+ ) : (
245
+ <Box width="100%" paddingX={calcPaddingXWhenNotTopFixed()}>
246
+ {content}
247
+ </Box>
248
+ )}
249
+ </Header>
250
+ {topFixed && <div className={styles.spacer} />}
251
+ </ThemeVariant>
252
+ );
253
+ };
254
+
255
+ export type {
256
+ HeaderProps,
257
+ NavigationBarContentContainerProps,
258
+ WideConfig,
259
+ NavigationBarProps,
260
+ InteractiveProps,
261
+ MaybeInteractiveProps,
262
+ };
@@ -1,2 +1,2 @@
1
1
  // DO NOT EDIT THIS FILE. It's autogenerated by set-version.js
2
- export const PACKAGE_VERSION = '17.3.0' as string;
2
+ export const PACKAGE_VERSION = '17.5.0' as string;
package/src/portal.tsx CHANGED
@@ -8,7 +8,7 @@ import ReactDOM from 'react-dom';
8
8
  * This is useful for components that need position fixed, for example
9
9
  * for menus, alerts, overlays, etc.
10
10
  *
11
- * See https://reactjs.org/docs/portals.html
11
+ * @see https://react.dev/reference/react-dom/createPortal#usage
12
12
  */
13
13
 
14
14
  type Props = {
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+
4
+ import type {SidenavCollapseState} from './sidenav-bar-types';
5
+
6
+ type SidenavBarContextValue = {
7
+ /** Target collapsed state. It flips at the first frame of the motion. */
8
+ collapsed: boolean;
9
+ /** Phase of the collapse motion, for the parts of a row that must wait until the rail rests. */
10
+ collapseState: SidenavCollapseState;
11
+ /** True when every movement of the sidenav takes zero time. See `useIsMotionOff`. */
12
+ isMotionOff: boolean;
13
+ doublePanel: boolean;
14
+ /** The first-level item whose children show in the panel. One panel opens at a time. */
15
+ panelOpenForItemId: string | null;
16
+ setPanelOpenForItemId: (id: string | null) => void;
17
+ /**
18
+ * The press of an item that navigates: it closes the open panel, then it reports the item as the
19
+ * new selection. One call does both, because the selection alone would reopen the second column that
20
+ * the press just closed. The item passes `null` when it has no id.
21
+ */
22
+ selectItemAndClosePanel: (itemId: string | null) => void;
23
+ containerRef: React.RefObject<HTMLElement | null>;
24
+ selectedItemId: string | null;
25
+ };
26
+
27
+ const SidenavBarContext = React.createContext<SidenavBarContextValue>({
28
+ collapsed: false,
29
+ collapseState: 'expanded',
30
+ isMotionOff: false,
31
+ doublePanel: false,
32
+ panelOpenForItemId: null,
33
+ setPanelOpenForItemId: () => {},
34
+ selectItemAndClosePanel: () => {},
35
+ containerRef: React.createRef(),
36
+ selectedItemId: null,
37
+ });
38
+
39
+ const useSidenavBarContext = (): SidenavBarContextValue => React.useContext(SidenavBarContext);
40
+
41
+ export {SidenavBarContext, useSidenavBarContext};
@@ -0,0 +1,49 @@
1
+ import type {
2
+ SidenavEntry,
3
+ SidenavFirstLevelItem,
4
+ SidenavLogo,
5
+ SidenavSection,
6
+ SidenavSectionTitle,
7
+ SidenavSlot,
8
+ SidenavSlotRenderProps,
9
+ } from './sidenav-bar-types';
10
+
11
+ /** Tells a first-level section apart from a first-level stand-alone item. */
12
+ const isSidenavSection = (entry: SidenavEntry): entry is SidenavSection =>
13
+ Array.isArray((entry as SidenavSection).items);
14
+
15
+ /** The items of the first level, in order: the items of every section, and every stand-alone item. */
16
+ const getFirstLevelItems = (entries: ReadonlyArray<SidenavEntry>): Array<SidenavFirstLevelItem> =>
17
+ entries.flatMap((entry) =>
18
+ isSidenavSection(entry) ? [...entry.items] : [entry as SidenavFirstLevelItem]
19
+ );
20
+
21
+ /** Reads the two shapes of a section title as one pair: the text, and the visibility of the heading. */
22
+ const getSidenavSectionTitle = (title: SidenavSectionTitle): {text: string; isHeadingVisible: boolean} =>
23
+ typeof title === 'string'
24
+ ? {text: title, isHeadingVisible: true}
25
+ : {text: title.text, isHeadingVisible: !title.hidden};
26
+
27
+ /** Resolves the function form of a slot with the props of the current state. */
28
+ const renderSidenavSlot = (slot: SidenavSlot, props: SidenavSlotRenderProps): React.ReactNode =>
29
+ typeof slot === 'function' ? slot(props) : slot;
30
+
31
+ /** Resolves the four forms of the logo prop. `defaultLogo` is the logo of the skin, sized by the caller. */
32
+ const renderSidenavLogo = (
33
+ logo: SidenavLogo | undefined,
34
+ props: SidenavSlotRenderProps,
35
+ defaultLogo: React.ReactNode
36
+ ): React.ReactNode => {
37
+ if (logo === false) {
38
+ return null;
39
+ }
40
+ if (typeof logo === 'function') {
41
+ return logo(props);
42
+ }
43
+ if (logo === undefined || logo === true) {
44
+ return defaultLogo;
45
+ }
46
+ return logo;
47
+ };
48
+
49
+ export {isSidenavSection, getFirstLevelItems, getSidenavSectionTitle, renderSidenavSlot, renderSidenavLogo};