@telefonica/mistica 16.60.0 → 16.61.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 (544) hide show
  1. package/css/mistica.css +1 -1
  2. package/dist/accordion.css-mistica.js +6 -6
  3. package/dist/align.css-mistica.js +1 -1
  4. package/dist/autocomplete.css-mistica.js +1 -1
  5. package/dist/avatar.css-mistica.js +1 -1
  6. package/dist/badge.css-mistica.js +1 -1
  7. package/dist/box.css-mistica.js +13 -13
  8. package/dist/boxed.css-mistica.js +24 -24
  9. package/dist/button-fixed-footer-layout.d.ts +2 -1
  10. package/dist/button-fixed-footer-layout.js +4 -3
  11. package/dist/button-group.css-mistica.js +1 -1
  12. package/dist/button-layout.css-mistica.js +14 -14
  13. package/dist/button.css-mistica.js +30 -30
  14. package/dist/callout.css-mistica.js +11 -11
  15. package/dist/card-internal.css-mistica.js +15 -15
  16. package/dist/carousel.css-mistica.js +8 -8
  17. package/dist/checkbox.css-mistica.js +11 -11
  18. package/dist/chip.css-mistica.js +15 -15
  19. package/dist/circle.css-mistica.js +1 -1
  20. package/dist/community/advanced-data-card.css-mistica.js +6 -6
  21. package/dist/community/blocks.css-mistica.js +1 -1
  22. package/dist/community/example-component.css-mistica.js +1 -1
  23. package/dist/counter.css-mistica.js +1 -1
  24. package/dist/cover-hero.css-mistica.js +2 -2
  25. package/dist/credit-card-number-field.css-mistica.js +3 -3
  26. package/dist/date-field.css-mistica.js +1 -1
  27. package/dist/date-time-picker.css-mistica.js +1 -1
  28. package/dist/dialog.css-mistica.js +4 -4
  29. package/dist/divider.css-mistica.js +5 -5
  30. package/dist/double-field.css-mistica.js +2 -2
  31. package/dist/drawer.css-mistica.js +1 -1
  32. package/dist/empty-state-card.css-mistica.js +1 -1
  33. package/dist/empty-state.css-mistica.js +5 -5
  34. package/dist/fade-in.css-mistica.js +1 -1
  35. package/dist/feedback.css-mistica.js +1 -1
  36. package/dist/file-upload.css-mistica.js +7 -7
  37. package/dist/fixed-footer-layout.css-mistica.js +2 -2
  38. package/dist/fixed-footer-layout.d.ts +6 -1
  39. package/dist/fixed-footer-layout.js +29 -28
  40. package/dist/form.css-mistica.js +1 -1
  41. package/dist/grid-layout.css-mistica.js +3 -3
  42. package/dist/grid.css-mistica.js +120 -120
  43. package/dist/header.css-mistica.js +1 -1
  44. package/dist/hero.css-mistica.js +2 -2
  45. package/dist/horizontal-scroll.css-mistica.js +1 -1
  46. package/dist/icon-button.css-mistica.js +53 -53
  47. package/dist/icons/icon-chevron.css-mistica.js +2 -2
  48. package/dist/icons/icon-error.css-mistica.js +1 -1
  49. package/dist/image.css-mistica.js +2 -2
  50. package/dist/image.js +8 -1
  51. package/dist/inline.css-mistica.js +9 -9
  52. package/dist/list.css-mistica.js +1 -1
  53. package/dist/loading-bar.css-mistica.js +1 -1
  54. package/dist/loading-screen.css-mistica.js +4 -4
  55. package/dist/logo.css-mistica.js +5 -5
  56. package/dist/menu.css-mistica.js +13 -13
  57. package/dist/mosaic.css-mistica.js +1 -1
  58. package/dist/navigation-bar.css-mistica.js +18 -18
  59. package/dist/navigation-breadcrumbs.css-mistica.js +1 -1
  60. package/dist/package-version.js +1 -1
  61. package/dist/pin-field.css-mistica.js +1 -1
  62. package/dist/popover.css-mistica.js +1 -1
  63. package/dist/progress-bar.css-mistica.js +6 -6
  64. package/dist/radio-button.css-mistica.js +19 -19
  65. package/dist/rating.css-mistica.js +2 -2
  66. package/dist/responsive-layout.css-mistica.js +6 -6
  67. package/dist/screen-reader-only.css-mistica.js +1 -1
  68. package/dist/select.css-mistica.js +15 -15
  69. package/dist/sheet-action-row.css-mistica.js +1 -1
  70. package/dist/sheet-common.css-mistica.js +1 -1
  71. package/dist/sheet-info.css-mistica.js +1 -1
  72. package/dist/skeletons.css-mistica.js +6 -6
  73. package/dist/skins/skin-contract.css-mistica.js +684 -684
  74. package/dist/skip-link.css-mistica.js +1 -1
  75. package/dist/slider.css-mistica.js +18 -18
  76. package/dist/snackbar.css-mistica.js +4 -4
  77. package/dist/spinner.css-mistica.js +1 -1
  78. package/dist/square.css-mistica.js +1 -1
  79. package/dist/stack.css-mistica.js +5 -5
  80. package/dist/stacking-group.css-mistica.js +1 -1
  81. package/dist/stepper.css-mistica.js +2 -2
  82. package/dist/switch-component.css-mistica.js +35 -35
  83. package/dist/table.css-mistica.js +9 -9
  84. package/dist/tabs.css-mistica.js +17 -17
  85. package/dist/tag.css-mistica.js +1 -1
  86. package/dist/text-field-base.css-mistica.js +15 -15
  87. package/dist/text-field-components.css-mistica.js +3 -3
  88. package/dist/text-link.css-mistica.js +6 -6
  89. package/dist/text.css-mistica.js +6 -6
  90. package/dist/theme-context.css-mistica.js +1 -1
  91. package/dist/timeline.css-mistica.js +9 -9
  92. package/dist/timer.css-mistica.js +6 -6
  93. package/dist/tooltip.css-mistica.js +1 -1
  94. package/dist/touchable.css-mistica.js +1 -1
  95. package/dist/utils/aspect-ratio-support.css-mistica.js +2 -2
  96. package/dist/video.css-mistica.js +1 -1
  97. package/dist/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  98. package/dist-es/accordion.css-mistica.js +6 -6
  99. package/dist-es/align.css-mistica.js +1 -1
  100. package/dist-es/autocomplete.css-mistica.js +1 -1
  101. package/dist-es/avatar.css-mistica.js +1 -1
  102. package/dist-es/badge.css-mistica.js +1 -1
  103. package/dist-es/box.css-mistica.js +13 -13
  104. package/dist-es/boxed.css-mistica.js +23 -23
  105. package/dist-es/button-fixed-footer-layout.js +12 -11
  106. package/dist-es/button-group.css-mistica.js +1 -1
  107. package/dist-es/button-layout.css-mistica.js +14 -14
  108. package/dist-es/button.css-mistica.js +30 -30
  109. package/dist-es/callout.css-mistica.js +11 -11
  110. package/dist-es/card-internal.css-mistica.js +15 -15
  111. package/dist-es/carousel.css-mistica.js +8 -8
  112. package/dist-es/checkbox.css-mistica.js +11 -11
  113. package/dist-es/chip.css-mistica.js +15 -15
  114. package/dist-es/circle.css-mistica.js +1 -1
  115. package/dist-es/community/advanced-data-card.css-mistica.js +6 -6
  116. package/dist-es/community/blocks.css-mistica.js +1 -1
  117. package/dist-es/community/example-component.css-mistica.js +1 -1
  118. package/dist-es/counter.css-mistica.js +1 -1
  119. package/dist-es/cover-hero.css-mistica.js +2 -2
  120. package/dist-es/credit-card-number-field.css-mistica.js +3 -3
  121. package/dist-es/date-field.css-mistica.js +1 -1
  122. package/dist-es/date-time-picker.css-mistica.js +1 -1
  123. package/dist-es/dialog.css-mistica.js +4 -4
  124. package/dist-es/divider.css-mistica.js +5 -5
  125. package/dist-es/double-field.css-mistica.js +2 -2
  126. package/dist-es/drawer.css-mistica.js +1 -1
  127. package/dist-es/empty-state-card.css-mistica.js +1 -1
  128. package/dist-es/empty-state.css-mistica.js +5 -5
  129. package/dist-es/fade-in.css-mistica.js +1 -1
  130. package/dist-es/feedback.css-mistica.js +1 -1
  131. package/dist-es/file-upload.css-mistica.js +7 -7
  132. package/dist-es/fixed-footer-layout.css-mistica.js +2 -2
  133. package/dist-es/fixed-footer-layout.js +57 -56
  134. package/dist-es/form.css-mistica.js +1 -1
  135. package/dist-es/grid-layout.css-mistica.js +3 -3
  136. package/dist-es/grid.css-mistica.js +120 -120
  137. package/dist-es/header.css-mistica.js +1 -1
  138. package/dist-es/hero.css-mistica.js +2 -2
  139. package/dist-es/horizontal-scroll.css-mistica.js +1 -1
  140. package/dist-es/icon-button.css-mistica.js +53 -53
  141. package/dist-es/icons/icon-chevron.css-mistica.js +2 -2
  142. package/dist-es/icons/icon-error.css-mistica.js +1 -1
  143. package/dist-es/image.css-mistica.js +2 -2
  144. package/dist-es/image.js +8 -1
  145. package/dist-es/inline.css-mistica.js +9 -9
  146. package/dist-es/list.css-mistica.js +1 -1
  147. package/dist-es/loading-bar.css-mistica.js +1 -1
  148. package/dist-es/loading-screen.css-mistica.js +4 -4
  149. package/dist-es/logo.css-mistica.js +5 -5
  150. package/dist-es/menu.css-mistica.js +13 -13
  151. package/dist-es/mosaic.css-mistica.js +1 -1
  152. package/dist-es/navigation-bar.css-mistica.js +18 -18
  153. package/dist-es/navigation-breadcrumbs.css-mistica.js +1 -1
  154. package/dist-es/package-version.js +1 -1
  155. package/dist-es/pin-field.css-mistica.js +1 -1
  156. package/dist-es/popover.css-mistica.js +1 -1
  157. package/dist-es/progress-bar.css-mistica.js +6 -6
  158. package/dist-es/radio-button.css-mistica.js +19 -19
  159. package/dist-es/rating.css-mistica.js +2 -2
  160. package/dist-es/responsive-layout.css-mistica.js +6 -6
  161. package/dist-es/screen-reader-only.css-mistica.js +1 -1
  162. package/dist-es/select.css-mistica.js +15 -15
  163. package/dist-es/sheet-action-row.css-mistica.js +1 -1
  164. package/dist-es/sheet-common.css-mistica.js +1 -1
  165. package/dist-es/sheet-info.css-mistica.js +1 -1
  166. package/dist-es/skeletons.css-mistica.js +6 -6
  167. package/dist-es/skins/skin-contract.css-mistica.js +684 -684
  168. package/dist-es/skip-link.css-mistica.js +1 -1
  169. package/dist-es/slider.css-mistica.js +18 -18
  170. package/dist-es/snackbar.css-mistica.js +4 -4
  171. package/dist-es/spinner.css-mistica.js +1 -1
  172. package/dist-es/square.css-mistica.js +1 -1
  173. package/dist-es/stack.css-mistica.js +5 -5
  174. package/dist-es/stacking-group.css-mistica.js +1 -1
  175. package/dist-es/stepper.css-mistica.js +2 -2
  176. package/dist-es/style.css +1 -1
  177. package/dist-es/switch-component.css-mistica.js +35 -35
  178. package/dist-es/table.css-mistica.js +9 -9
  179. package/dist-es/tabs.css-mistica.js +17 -17
  180. package/dist-es/tag.css-mistica.js +1 -1
  181. package/dist-es/text-field-base.css-mistica.js +15 -15
  182. package/dist-es/text-field-components.css-mistica.js +3 -3
  183. package/dist-es/text-link.css-mistica.js +6 -6
  184. package/dist-es/text.css-mistica.js +6 -6
  185. package/dist-es/theme-context.css-mistica.js +1 -1
  186. package/dist-es/timeline.css-mistica.js +9 -9
  187. package/dist-es/timer.css-mistica.js +6 -6
  188. package/dist-es/tooltip.css-mistica.js +1 -1
  189. package/dist-es/touchable.css-mistica.js +1 -1
  190. package/dist-es/utils/aspect-ratio-support.css-mistica.js +2 -2
  191. package/dist-es/video.css-mistica.js +1 -1
  192. package/dist-es/vivinho-loading-animation/vivinho-loading-animation.css-mistica.js +1 -1
  193. package/doc/llms.md +11 -0
  194. package/package.json +13 -1
  195. package/src/accordion.css.ts +121 -0
  196. package/src/accordion.tsx +366 -0
  197. package/src/align.css.ts +7 -0
  198. package/src/align.tsx +32 -0
  199. package/src/autocomplete.css.ts +62 -0
  200. package/src/autocomplete.tsx +239 -0
  201. package/src/avatar.css.ts +14 -0
  202. package/src/avatar.tsx +120 -0
  203. package/src/badge.css.ts +51 -0
  204. package/src/badge.tsx +79 -0
  205. package/src/box.css.ts +51 -0
  206. package/src/box.tsx +114 -0
  207. package/src/boxed.css.ts +132 -0
  208. package/src/boxed.tsx +153 -0
  209. package/src/button-fixed-footer-layout.tsx +65 -0
  210. package/src/button-group.css.ts +75 -0
  211. package/src/button-group.tsx +91 -0
  212. package/src/button-layout.css.ts +162 -0
  213. package/src/button-layout.tsx +91 -0
  214. package/src/button.css.ts +758 -0
  215. package/src/button.tsx +632 -0
  216. package/src/callout.css.ts +50 -0
  217. package/src/callout.tsx +147 -0
  218. package/src/card-cover.tsx +242 -0
  219. package/src/card-data.tsx +152 -0
  220. package/src/card-internal.css.ts +271 -0
  221. package/src/card-internal.tsx +1724 -0
  222. package/src/card-media.tsx +157 -0
  223. package/src/card-naked.tsx +63 -0
  224. package/src/carousel.css.ts +522 -0
  225. package/src/carousel.tsx +1300 -0
  226. package/src/checkbox.css.ts +94 -0
  227. package/src/checkbox.tsx +192 -0
  228. package/src/chip.css.ts +204 -0
  229. package/src/chip.tsx +191 -0
  230. package/src/circle.css.ts +14 -0
  231. package/src/circle.tsx +52 -0
  232. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-button-and-link-footer-image-false-1-snap.png +0 -0
  233. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-button-and-link-footer-image-true-1-snap.png +0 -0
  234. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-button-footer-image-false-1-snap.png +0 -0
  235. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-button-footer-image-true-1-snap.png +0 -0
  236. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-link-footer-image-false-1-snap.png +0 -0
  237. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-link-footer-image-true-1-snap.png +0 -0
  238. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-none-footer-image-false-1-snap.png +0 -0
  239. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-actions-none-footer-image-true-1-snap.png +0 -0
  240. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-extras-0-1-snap.png +0 -0
  241. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-extras-1-1-snap.png +0 -0
  242. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-extras-3-1-snap.png +0 -0
  243. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-extras-3-no-divider-1-snap.png +0 -0
  244. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-inside-carousel-1-snap.png +0 -0
  245. package/src/community/__screenshot_tests__/__image_snapshots__/advanced-data-card-screenshot-test-tsx-advanced-data-card-without-stacking-group-with-top-actions-and-too-long-title-1-snap.png +0 -0
  246. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-highlighted-value-block-1-snap.png +0 -0
  247. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-information-block-1-snap.png +0 -0
  248. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-progress-block-1-snap.png +0 -0
  249. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-progress-block-2-snap.png +0 -0
  250. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-row-block-1-snap.png +0 -0
  251. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-simple-block-1-snap.png +0 -0
  252. package/src/community/__screenshot_tests__/__image_snapshots__/blocks-screenshot-test-tsx-blocks-value-block-1-snap.png +0 -0
  253. package/src/community/__screenshot_tests__/advanced-data-card-screenshot-test.tsx +84 -0
  254. package/src/community/__screenshot_tests__/blocks-screenshot-test.tsx +72 -0
  255. package/src/community/__stories__/advanced-data-card-carousel-story.tsx +66 -0
  256. package/src/community/__stories__/advanced-data-card-story.tsx +158 -0
  257. package/src/community/__stories__/blocks-story.tsx +272 -0
  258. package/src/community/__stories__/example-component-story.tsx +15 -0
  259. package/src/community/__stories__/index-story.tsx +154 -0
  260. package/src/community/__type_tests__/advanced-data-card-type-test.tsx +40 -0
  261. package/src/community/advanced-data-card.css.ts +271 -0
  262. package/src/community/advanced-data-card.tsx +431 -0
  263. package/src/community/blocks.css.ts +12 -0
  264. package/src/community/blocks.tsx +290 -0
  265. package/src/community/example-component.css.ts +7 -0
  266. package/src/community/example-component.tsx +17 -0
  267. package/src/community/index.tsx +10 -0
  268. package/src/counter.css.ts +150 -0
  269. package/src/counter.tsx +215 -0
  270. package/src/cover-hero-media.tsx +39 -0
  271. package/src/cover-hero.css.ts +133 -0
  272. package/src/cover-hero.tsx +262 -0
  273. package/src/credit-card-expiration-field.tsx +187 -0
  274. package/src/credit-card-fields.tsx +56 -0
  275. package/src/credit-card-number-field.css.ts +47 -0
  276. package/src/credit-card-number-field.tsx +245 -0
  277. package/src/cvv-field.tsx +169 -0
  278. package/src/date-field.css.ts +14 -0
  279. package/src/date-field.tsx +130 -0
  280. package/src/date-time-field.tsx +141 -0
  281. package/src/date-time-picker.css.ts +126 -0
  282. package/src/date-time-picker.tsx +188 -0
  283. package/src/decimal-field.tsx +160 -0
  284. package/src/desktop-container-type-context.tsx +15 -0
  285. package/src/dialog-context.tsx +81 -0
  286. package/src/dialog.css.ts +155 -0
  287. package/src/dialog.tsx +423 -0
  288. package/src/divider.css.ts +10 -0
  289. package/src/divider.tsx +11 -0
  290. package/src/double-field.css.ts +33 -0
  291. package/src/double-field.tsx +71 -0
  292. package/src/drawer.css.ts +123 -0
  293. package/src/drawer.tsx +304 -0
  294. package/src/email-field.tsx +76 -0
  295. package/src/empty-state-card.css.ts +40 -0
  296. package/src/empty-state-card.tsx +92 -0
  297. package/src/empty-state.css.ts +119 -0
  298. package/src/empty-state.tsx +141 -0
  299. package/src/fade-in.css.ts +12 -0
  300. package/src/fade-in.tsx +40 -0
  301. package/src/feedback.css.ts +119 -0
  302. package/src/feedback.tsx +432 -0
  303. package/src/file-upload.css.ts +156 -0
  304. package/src/file-upload.tsx +612 -0
  305. package/src/fixed-footer-layout.css.ts +96 -0
  306. package/src/fixed-footer-layout.tsx +227 -0
  307. package/src/fixed-to-top.tsx +21 -0
  308. package/src/focus-trap.tsx +17 -0
  309. package/src/form-context.tsx +198 -0
  310. package/src/form.css.ts +5 -0
  311. package/src/form.tsx +287 -0
  312. package/src/grid-layout.css.ts +68 -0
  313. package/src/grid-layout.tsx +201 -0
  314. package/src/grid.css.ts +203 -0
  315. package/src/grid.tsx +241 -0
  316. package/src/header.css.ts +30 -0
  317. package/src/header.tsx +319 -0
  318. package/src/hero.css.ts +71 -0
  319. package/src/hero.tsx +318 -0
  320. package/src/hooks.tsx +313 -0
  321. package/src/horizontal-scroll.css.ts +43 -0
  322. package/src/horizontal-scroll.tsx +18 -0
  323. package/src/iban-field.tsx +218 -0
  324. package/src/icon-button.css.ts +561 -0
  325. package/src/icon-button.tsx +221 -0
  326. package/src/icons/__stories__/mistica-icons-story.tsx +192 -0
  327. package/src/icons/icon-amex.tsx +40 -0
  328. package/src/icons/icon-chevron.css.ts +23 -0
  329. package/src/icons/icon-chevron.tsx +150 -0
  330. package/src/icons/icon-cvv-amex.tsx +31 -0
  331. package/src/icons/icon-cvv-visa-mc.tsx +31 -0
  332. package/src/icons/icon-error.css.ts +27 -0
  333. package/src/icons/icon-error.tsx +207 -0
  334. package/src/icons/icon-info.tsx +86 -0
  335. package/src/icons/icon-mastercard.tsx +36 -0
  336. package/src/icons/icon-success-vivo-new.tsx +51 -0
  337. package/src/icons/icon-success-vivo.tsx +36 -0
  338. package/src/icons/icon-success.tsx +211 -0
  339. package/src/icons/icon-visa.tsx +32 -0
  340. package/src/image.css.ts +48 -0
  341. package/src/image.tsx +352 -0
  342. package/src/index.tsx +2466 -0
  343. package/src/inline.css.ts +131 -0
  344. package/src/inline.tsx +135 -0
  345. package/src/integer-field.tsx +93 -0
  346. package/src/list.css.ts +281 -0
  347. package/src/list.tsx +963 -0
  348. package/src/loading-bar.css.ts +69 -0
  349. package/src/loading-bar.tsx +25 -0
  350. package/src/loading-screen.css.ts +114 -0
  351. package/src/loading-screen.tsx +376 -0
  352. package/src/logo-blau-shell.tsx +30 -0
  353. package/src/logo-blau.tsx +60 -0
  354. package/src/logo-common.tsx +29 -0
  355. package/src/logo-esimflag-shell.tsx +30 -0
  356. package/src/logo-esimflag.tsx +56 -0
  357. package/src/logo-movistar-new-shell.tsx +30 -0
  358. package/src/logo-movistar-new.tsx +85 -0
  359. package/src/logo-movistar-shell.tsx +30 -0
  360. package/src/logo-movistar.tsx +63 -0
  361. package/src/logo-o2-new-shell.tsx +26 -0
  362. package/src/logo-o2-new.tsx +27 -0
  363. package/src/logo-o2-shell.tsx +26 -0
  364. package/src/logo-o2.tsx +27 -0
  365. package/src/logo-telefonica-shell.tsx +30 -0
  366. package/src/logo-telefonica.tsx +95 -0
  367. package/src/logo-tu-shell.tsx +26 -0
  368. package/src/logo-tu.tsx +28 -0
  369. package/src/logo-vivo-shell.tsx +30 -0
  370. package/src/logo-vivo.tsx +53 -0
  371. package/src/logo.css.ts +33 -0
  372. package/src/logo.tsx +313 -0
  373. package/src/master-detail-layout.tsx +28 -0
  374. package/src/maybe-dismissable.css.ts +37 -0
  375. package/src/maybe-dismissable.tsx +58 -0
  376. package/src/media-queries.css.ts +67 -0
  377. package/src/menu.css.ts +132 -0
  378. package/src/menu.tsx +468 -0
  379. package/src/meter.tsx +516 -0
  380. package/src/modal-context-provider.tsx +45 -0
  381. package/src/month-field.tsx +124 -0
  382. package/src/mosaic.css.ts +73 -0
  383. package/src/mosaic.tsx +205 -0
  384. package/src/navigation-bar.css.ts +558 -0
  385. package/src/navigation-bar.tsx +1637 -0
  386. package/src/navigation-breadcrumbs.css.ts +22 -0
  387. package/src/navigation-breadcrumbs.tsx +69 -0
  388. package/src/negative-box.tsx +15 -0
  389. package/src/nestable-context.tsx +139 -0
  390. package/src/overlay.tsx +86 -0
  391. package/src/overscroll-color-context.tsx +141 -0
  392. package/src/package-version.tsx +2 -0
  393. package/src/password-field.tsx +126 -0
  394. package/src/phone-number-field-lite.tsx +265 -0
  395. package/src/phone-number-field.tsx +171 -0
  396. package/src/pin-field.css.ts +90 -0
  397. package/src/pin-field.tsx +346 -0
  398. package/src/placeholder.tsx +41 -0
  399. package/src/popover.css.ts +8 -0
  400. package/src/popover.tsx +85 -0
  401. package/src/portal.tsx +43 -0
  402. package/src/progress-bar.css.ts +61 -0
  403. package/src/progress-bar.tsx +174 -0
  404. package/src/radio-button.css.ts +174 -0
  405. package/src/radio-button.tsx +322 -0
  406. package/src/rating.css.ts +128 -0
  407. package/src/rating.tsx +351 -0
  408. package/src/responsive-layout.css.ts +162 -0
  409. package/src/responsive-layout.tsx +106 -0
  410. package/src/screen-reader-only.css.ts +27 -0
  411. package/src/screen-reader-only.tsx +33 -0
  412. package/src/screen-size-context-provider.tsx +96 -0
  413. package/src/screen-size-context.tsx +23 -0
  414. package/src/search-field.tsx +126 -0
  415. package/src/select.css.ts +226 -0
  416. package/src/select.tsx +513 -0
  417. package/src/sheet-action-row.css.ts +33 -0
  418. package/src/sheet-actions-list.tsx +113 -0
  419. package/src/sheet-actions.tsx +95 -0
  420. package/src/sheet-common.css.ts +254 -0
  421. package/src/sheet-common.tsx +402 -0
  422. package/src/sheet-info.css.ts +19 -0
  423. package/src/sheet-info.tsx +127 -0
  424. package/src/sheet-native.tsx +189 -0
  425. package/src/sheet-radio-list.tsx +118 -0
  426. package/src/sheet-root.tsx +127 -0
  427. package/src/sheet-types.tsx +94 -0
  428. package/src/sheet-web.tsx +140 -0
  429. package/src/skeleton-base.tsx +38 -0
  430. package/src/skeletons.css.ts +56 -0
  431. package/src/skeletons.tsx +133 -0
  432. package/src/skins/blau.tsx +724 -0
  433. package/src/skins/constants.tsx +10 -0
  434. package/src/skins/defaults.tsx +104 -0
  435. package/src/skins/esimflag.tsx +728 -0
  436. package/src/skins/movistar-new.tsx +735 -0
  437. package/src/skins/movistar.tsx +740 -0
  438. package/src/skins/o2-new.tsx +731 -0
  439. package/src/skins/o2.tsx +727 -0
  440. package/src/skins/skin-contract.css.ts +380 -0
  441. package/src/skins/telefonica.tsx +768 -0
  442. package/src/skins/tu.tsx +741 -0
  443. package/src/skins/types/colors.tsx +286 -0
  444. package/src/skins/types/index.tsx +153 -0
  445. package/src/skins/utils.tsx +66 -0
  446. package/src/skins/vivo-new.tsx +745 -0
  447. package/src/skins/vivo.tsx +720 -0
  448. package/src/skip-link.css.ts +34 -0
  449. package/src/skip-link.tsx +52 -0
  450. package/src/slider.css.ts +181 -0
  451. package/src/slider.tsx +384 -0
  452. package/src/snackbar-context.tsx +98 -0
  453. package/src/snackbar-native.ts +37 -0
  454. package/src/snackbar.css.ts +176 -0
  455. package/src/snackbar.tsx +258 -0
  456. package/src/spinner.css.ts +66 -0
  457. package/src/spinner.tsx +136 -0
  458. package/src/sprinkles.css.ts +83 -0
  459. package/src/square.css.ts +15 -0
  460. package/src/square.tsx +55 -0
  461. package/src/stack.css.ts +44 -0
  462. package/src/stack.tsx +79 -0
  463. package/src/stacking-group.css.ts +15 -0
  464. package/src/stacking-group.tsx +82 -0
  465. package/src/stepper.css.ts +233 -0
  466. package/src/stepper.tsx +156 -0
  467. package/src/switch-component.css.ts +181 -0
  468. package/src/switch-component.tsx +187 -0
  469. package/src/tab-focus.tsx +68 -0
  470. package/src/table-actions-header.tsx +21 -0
  471. package/src/table-cell-text.tsx +35 -0
  472. package/src/table.css.ts +297 -0
  473. package/src/table.tsx +398 -0
  474. package/src/tabs.css.ts +212 -0
  475. package/src/tabs.tsx +263 -0
  476. package/src/tag.css.ts +42 -0
  477. package/src/tag.tsx +161 -0
  478. package/src/test-utils/environment/setup-ssr.tsx +10 -0
  479. package/src/test-utils/fail-test-on-console-error.tsx +22 -0
  480. package/src/test-utils/index.tsx +341 -0
  481. package/src/test-utils/setup-ssr-test-env.tsx +13 -0
  482. package/src/test-utils/ssr.tsx +197 -0
  483. package/src/text-field-base.css.ts +416 -0
  484. package/src/text-field-base.tsx +628 -0
  485. package/src/text-field-components.css.ts +165 -0
  486. package/src/text-field-components.tsx +230 -0
  487. package/src/text-field.tsx +118 -0
  488. package/src/text-link.css.ts +83 -0
  489. package/src/text-link.tsx +85 -0
  490. package/src/text-tokens.tsx +708 -0
  491. package/src/text.css.ts +60 -0
  492. package/src/text.tsx +516 -0
  493. package/src/theme-context-provider.tsx +370 -0
  494. package/src/theme-context.css.ts +3 -0
  495. package/src/theme-context.tsx +8 -0
  496. package/src/theme-variant-context.tsx +51 -0
  497. package/src/theme.tsx +184 -0
  498. package/src/time-field.tsx +99 -0
  499. package/src/timeline.css.ts +135 -0
  500. package/src/timeline.tsx +250 -0
  501. package/src/timer.css.ts +99 -0
  502. package/src/timer.tsx +420 -0
  503. package/src/title.tsx +119 -0
  504. package/src/tooltip-context-provider.tsx +57 -0
  505. package/src/tooltip.css.ts +106 -0
  506. package/src/tooltip.tsx +649 -0
  507. package/src/touchable.css.ts +56 -0
  508. package/src/touchable.tsx +355 -0
  509. package/src/types/font-face.d.ts +47 -0
  510. package/src/types/libs.d.ts +3 -0
  511. package/src/utils/__tests__/analytics-test.tsx +35 -0
  512. package/src/utils/__tests__/browser-test.tsx +28 -0
  513. package/src/utils/__tests__/dom-test.tsx +23 -0
  514. package/src/utils/__tests__/helpers-test.tsx +166 -0
  515. package/src/utils/analytics.tsx +28 -0
  516. package/src/utils/animation.tsx +201 -0
  517. package/src/utils/aspect-ratio-support.css.ts +28 -0
  518. package/src/utils/aspect-ratio-support.tsx +141 -0
  519. package/src/utils/browser.tsx +9 -0
  520. package/src/utils/color.tsx +46 -0
  521. package/src/utils/common.tsx +27 -0
  522. package/src/utils/credit-card.tsx +46 -0
  523. package/src/utils/css.tsx +25 -0
  524. package/src/utils/document-visibility.tsx +52 -0
  525. package/src/utils/dom.tsx +155 -0
  526. package/src/utils/environment.tsx +6 -0
  527. package/src/utils/headings.tsx +18 -0
  528. package/src/utils/helpers.tsx +182 -0
  529. package/src/utils/keys.tsx +8 -0
  530. package/src/utils/locale.tsx +27 -0
  531. package/src/utils/platform.tsx +94 -0
  532. package/src/utils/region-code.tsx +1 -0
  533. package/src/utils/renders-element.tsx +6 -0
  534. package/src/utils/time.tsx +22 -0
  535. package/src/utils/types.tsx +19 -0
  536. package/src/utils/utility-types.tsx +8 -0
  537. package/src/video.css.ts +11 -0
  538. package/src/video.tsx +355 -0
  539. package/src/vivinho-loading-animation/in-lottie.json +402 -0
  540. package/src/vivinho-loading-animation/index.tsx +90 -0
  541. package/src/vivinho-loading-animation/out-lottie.json +575 -0
  542. package/src/vivinho-loading-animation/pulse-lottie.json +551 -0
  543. package/src/vivinho-loading-animation/vivinho-loading-animation.css.ts +15 -0
  544. package/src/vivinho-loading-animation/wave-lottie.json +2829 -0
@@ -0,0 +1,27 @@
1
+ import {style, keyframes} from '@vanilla-extract/css';
2
+
3
+ const shake = keyframes({
4
+ '10%, 90%': {
5
+ transform: 'translate(3px, 0)',
6
+ },
7
+ '20%, 80%': {
8
+ transform: 'translate(6px, 0)',
9
+ },
10
+
11
+ '30%, 50%, 70%': {
12
+ transform: 'translate(0px, 0)',
13
+ },
14
+
15
+ '40%, 60%': {
16
+ transform: 'translate(8px, 0)',
17
+ },
18
+ });
19
+
20
+ export const outerAnimation = style({
21
+ animation: `${shake} 0.82s cubic-bezier(.36,.07,.19,.97) both`,
22
+ animationDelay: '0.84s',
23
+ });
24
+ export const innerAnimation = style({
25
+ animation: `${shake} 0.82s cubic-bezier(.36,.07,.19,.97) both`,
26
+ animationDelay: '0.8s',
27
+ });
@@ -0,0 +1,207 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {getAnimateDrawLineProps, getAnimateFadeInProps} from '../utils/animation';
4
+ import {useTheme} from '../hooks';
5
+ import {O2_SKIN, O2_NEW_SKIN, VIVO_NEW_SKIN} from '../skins/constants';
6
+ import {vars} from '../skins/skin-contract.css';
7
+ import * as styles from './icon-error.css';
8
+
9
+ type Props = {
10
+ size?: number | string;
11
+ };
12
+
13
+ const IconErrorO2 = ({size = 48}: Props): JSX.Element => {
14
+ const {platformOverrides} = useTheme();
15
+
16
+ return (
17
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" overflow="visible">
18
+ <g
19
+ stroke={vars.colors.error}
20
+ fill={vars.colors.error}
21
+ strokeLinecap="round"
22
+ strokeLinejoin="round"
23
+ >
24
+ <g className={styles.outerAnimation}>
25
+ <path
26
+ strokeWidth="2"
27
+ fill="none"
28
+ d="M48.24,57.99c-4.71,2.95-10.27,4.65-16.24,4.65C15.08,62.64,1.36,48.92,1.36,32S15.08,1.36,32,1.36 S62.64,15.08,62.64,32c0,6.11-1.79,11.8-4.87,16.58"
29
+ {...getAnimateDrawLineProps('202', '0.3s', platformOverrides)}
30
+ />
31
+ <circle
32
+ cx="53.64"
33
+ cy="53.54"
34
+ r="1.06"
35
+ {...getAnimateFadeInProps('0.2s', platformOverrides)}
36
+ />
37
+ </g>
38
+ <g className={styles.innerAnimation}>
39
+ <line
40
+ strokeWidth="2"
41
+ fill="none"
42
+ x1="32"
43
+ y1="14.86"
44
+ x2="32"
45
+ y2="39.08"
46
+ {...getAnimateDrawLineProps('110', '0.6s', platformOverrides)}
47
+ />
48
+ <circle
49
+ strokeWidth="0"
50
+ cx="32"
51
+ cy="46.25"
52
+ r="1.72"
53
+ {...getAnimateFadeInProps('0.8s', platformOverrides)}
54
+ />
55
+ </g>
56
+ </g>
57
+ </svg>
58
+ );
59
+ };
60
+
61
+ const IconErrorO2New = ({size = 48}: Props): JSX.Element => {
62
+ const {platformOverrides} = useTheme();
63
+
64
+ return (
65
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" overflow="visible">
66
+ <g
67
+ stroke={vars.colors.error}
68
+ fill={vars.colors.error}
69
+ strokeLinecap="round"
70
+ strokeLinejoin="round"
71
+ >
72
+ <g className={styles.outerAnimation}>
73
+ <circle
74
+ strokeWidth="4"
75
+ fill="none"
76
+ cx="32"
77
+ cy="32"
78
+ r="30"
79
+ {...getAnimateDrawLineProps('202', '0.3s', platformOverrides)}
80
+ />
81
+ </g>
82
+ <g className={styles.innerAnimation}>
83
+ <line
84
+ strokeWidth="4"
85
+ fill="none"
86
+ x1="32"
87
+ y1="16.5"
88
+ x2="32"
89
+ y2="39.08"
90
+ {...getAnimateDrawLineProps('110', '0.6s', platformOverrides)}
91
+ />
92
+ <circle
93
+ strokeWidth="0"
94
+ cx="32"
95
+ cy="47.5"
96
+ r="3"
97
+ {...getAnimateFadeInProps('0.8s', platformOverrides)}
98
+ />
99
+ </g>
100
+ </g>
101
+ </svg>
102
+ );
103
+ };
104
+
105
+ const IconErrorVivo = ({size = 48}: Props): JSX.Element => {
106
+ const {platformOverrides} = useTheme();
107
+
108
+ return (
109
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" overflow="visible">
110
+ <g
111
+ stroke={vars.colors.error}
112
+ fill="none"
113
+ strokeWidth="2"
114
+ strokeLinecap="round"
115
+ strokeLinejoin="round"
116
+ strokeMiterlimit="10"
117
+ >
118
+ <g className={styles.outerAnimation}>
119
+ <path
120
+ fill="none"
121
+ strokeWidth="2"
122
+ strokeMiterlimit="10"
123
+ d="M 31.9 0.9 C 52.5 0.9 62.9 11.4 62.9 31.9 C 62.9 52.5 52.5 62.9 31.9 62.9 C 11.3 62.9 0.9 52.5 0.9 31.9 C 0.9 11.3 11.3 0.9 31.9 0.9 Z"
124
+ transform="rotate(90 32 32)"
125
+ {...getAnimateDrawLineProps('202', '0.3s', platformOverrides)}
126
+ />
127
+ </g>
128
+ <g className={styles.innerAnimation}>
129
+ <line
130
+ x1="31.9"
131
+ y1="20.9"
132
+ x2="31.9"
133
+ y2="36.9"
134
+ {...getAnimateDrawLineProps('17', '0.7s', platformOverrides)}
135
+ />
136
+ <circle
137
+ stroke={vars.colors.error}
138
+ fill={vars.colors.error}
139
+ strokeWidth="1"
140
+ cx="31.9"
141
+ cy="43.9"
142
+ r="1.5"
143
+ {...getAnimateFadeInProps('1s', platformOverrides)}
144
+ />
145
+ </g>
146
+ </g>
147
+ </svg>
148
+ );
149
+ };
150
+
151
+ const IconErrorDefault = ({size = 48}: Props): JSX.Element => {
152
+ const {platformOverrides} = useTheme();
153
+
154
+ return (
155
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" overflow="visible">
156
+ <g
157
+ stroke={vars.colors.error}
158
+ fill="none"
159
+ strokeWidth="4"
160
+ strokeLinecap="round"
161
+ strokeLinejoin="round"
162
+ strokeMiterlimit="10"
163
+ >
164
+ <g className={styles.outerAnimation}>
165
+ <circle
166
+ fill="none"
167
+ cx="32"
168
+ cy="32"
169
+ r="30"
170
+ {...getAnimateDrawLineProps('202', '0.3s', platformOverrides)}
171
+ />
172
+ </g>
173
+ <g className={styles.innerAnimation}>
174
+ <path
175
+ d="M32 17.9375V32.9375"
176
+ {...getAnimateDrawLineProps('17', '0.7s', platformOverrides)}
177
+ />
178
+ <circle
179
+ stroke={vars.colors.error}
180
+ fill={vars.colors.error}
181
+ cx="32"
182
+ cy="45.1289"
183
+ r="1.5"
184
+ {...getAnimateFadeInProps('1s', platformOverrides)}
185
+ />
186
+ </g>
187
+ </g>
188
+ </svg>
189
+ );
190
+ };
191
+
192
+ const IconError = (props: Props): JSX.Element => {
193
+ const {skinName} = useTheme();
194
+
195
+ switch (skinName) {
196
+ case O2_SKIN:
197
+ return <IconErrorO2 {...props} />;
198
+ case O2_NEW_SKIN:
199
+ return <IconErrorO2New {...props} />;
200
+ case VIVO_NEW_SKIN:
201
+ return <IconErrorVivo {...props} />;
202
+ default:
203
+ return <IconErrorDefault {...props} />;
204
+ }
205
+ };
206
+
207
+ export default IconError;
@@ -0,0 +1,86 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {useTheme} from '../hooks';
4
+ import {O2_SKIN, O2_NEW_SKIN, VIVO_NEW_SKIN} from '../skins/constants';
5
+ import {vars} from '../skins/skin-contract.css';
6
+
7
+ type Props = {
8
+ size?: number | string;
9
+ };
10
+
11
+ const IconInfoO2 = ({size = 48}: Props): JSX.Element => {
12
+ return (
13
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
14
+ <g
15
+ stroke={vars.colors.brand}
16
+ fill={vars.colors.brand}
17
+ strokeLinecap="round"
18
+ strokeLinejoin="round"
19
+ >
20
+ <path
21
+ fill="none"
22
+ strokeWidth="2"
23
+ d="M48.24,57.99c-4.71,2.95-10.27,4.65-16.24,4.65C15.08,62.64,1.36,48.92,1.36,32S15.08,1.36,32,1.36 S62.64,15.08,62.64,32c0,6.11-1.79,11.8-4.87,16.58"
24
+ />
25
+ <line fill="none" strokeWidth="2" x1="32" y1="47.96" x2="32" y2="23.74" />
26
+ <circle cx="53.64" cy="53.54" r="1.06" />
27
+ <circle strokeWidth="0" cx="32" cy="16.58" r="1.72" />
28
+ </g>
29
+ </svg>
30
+ );
31
+ };
32
+
33
+ const IconInfoO2New = ({size = 48}: Props): JSX.Element => {
34
+ return (
35
+ <svg role="presentation" width={size} height={size} viewBox="0 0 48 48">
36
+ <g fill={vars.colors.brand}>
37
+ <path d="M24 36.8544C23.0592 36.8544 22.2816 36.0864 22.2816 35.136V18.8544C22.2816 17.9136 23.0496 17.136 24 17.136C24.9408 17.136 25.7184 17.904 25.7184 18.8544V35.136C25.7184 36.0864 24.9408 36.8544 24 36.8544Z" />
38
+ <path d="M24 14.5728C25.1823 14.5728 26.1408 13.6143 26.1408 12.432C26.1408 11.2497 25.1823 10.2912 24 10.2912C22.8177 10.2912 21.8592 11.2497 21.8592 12.432C21.8592 13.6143 22.8177 14.5728 24 14.5728Z" />
39
+ <path d="M0 24C0 37.2 10.8 48 24 48C37.2 48 48 37.2 48 24C48 10.8 37.2 0 24 0C10.8 0 0 10.8 0 24ZM3.4272 24C3.4272 12.6816 12.6816 3.4272 24 3.4272C35.3184 3.4272 44.5728 12.6816 44.5728 24C44.5728 35.3184 35.3184 44.5728 24 44.5728C12.6816 44.5728 3.4272 35.3184 3.4272 24Z" />
40
+ </g>
41
+ </svg>
42
+ );
43
+ };
44
+
45
+ const IconInfoVivo = ({size = 48}: Props): JSX.Element => {
46
+ return (
47
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
48
+ <g fill={vars.colors.brand}>
49
+ <path
50
+ fillRule="nonzero"
51
+ strokeWidth="0"
52
+ d="M31.991 0c21.24 0 32.01 10.77 32.01 32.01C64 53.235 53.23 64 31.99 64 10.763 64 .001 53.236.001 32.01 0 10.77 10.762 0 31.99 0zm0 2c-20.18 0-29.99 9.816-29.99 30.01C2 52.19 11.81 62 31.99 62c20.192 0 30.01-9.81 30.01-29.99C62 11.815 52.182 2 31.99 2zM32 27a1 1 0 0 1 1 1v16a1 1 0 0 1-2 0V28a1 1 0 0 1 1-1zm0-7.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3z"
53
+ />
54
+ </g>
55
+ </svg>
56
+ );
57
+ };
58
+
59
+ const IconInfoDefault = ({size = 48}: Props): JSX.Element => {
60
+ return (
61
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
62
+ <g fill={vars.colors.brand}>
63
+ <path d="M32 29.1797C33.0354 29.1797 33.8867 29.9663 33.9893 30.9746L34 31.1797V45.9492C34 47.0538 33.1046 47.9492 32 47.9492C30.8954 47.9492 30 47.0538 30 45.9492V31.1797L30.0107 30.9746C30.1133 29.9663 30.9646 29.1797 32 29.1797Z" />
64
+ <path d="M32 15.5889C33.8127 15.5889 35.2822 17.0584 35.2822 18.8711C35.2822 20.6838 33.8127 22.1533 32 22.1533C30.1873 22.1533 28.7178 20.6838 28.7178 18.8711C28.7178 17.0584 30.1873 15.5889 32 15.5889Z" />
65
+ <path d="M32 0.459961C36.1418 0.459966 40.2428 1.27637 44.0693 2.86133C47.8959 4.44636 51.373 6.76948 54.3018 9.69824C57.2305 12.627 59.5536 16.1041 61.1387 19.9307C62.7236 23.7572 63.54 27.8582 63.54 32C63.54 36.1419 62.7237 40.2437 61.1387 44.0703C59.5537 47.8967 57.2304 51.3732 54.3018 54.3018C51.373 57.2305 47.8959 59.5546 44.0693 61.1396C40.2429 62.7245 36.1417 63.54 32 63.54C27.8581 63.54 23.7563 62.7247 19.9297 61.1396C16.1032 59.5546 12.6269 57.2305 9.69824 54.3018C6.76954 51.3731 4.44538 47.8968 2.86035 44.0703C1.27532 40.2437 0.459966 36.1419 0.459961 32C0.459966 27.8583 1.27549 23.7571 2.86035 19.9307C4.44538 16.1041 6.7695 12.627 9.69824 9.69824C12.6268 6.76965 16.1033 4.44635 19.9297 2.86133C23.7563 1.2763 27.8581 0.459965 32 0.459961ZM32 4.45996C28.3834 4.45996 24.8022 5.17263 21.4609 6.55664C18.1197 7.94065 15.0837 9.96907 12.5264 12.5264C9.96909 15.0837 7.94065 18.1197 6.55664 21.4609C5.17264 24.8022 4.45997 28.3834 4.45996 32C4.45997 35.6166 5.17263 39.1978 6.55664 42.5391C7.94065 45.8803 9.96906 48.9163 12.5264 51.4736C15.0837 54.0309 18.1197 56.0593 21.4609 57.4434C24.8022 58.8274 28.3834 59.54 32 59.54C35.6166 59.54 39.1978 58.8274 42.5391 57.4434C45.8803 56.0594 48.9163 54.0309 51.4736 51.4736C54.0309 48.9163 56.0594 45.8803 57.4434 42.5391C58.8274 39.1978 59.54 35.6166 59.54 32C59.54 28.3834 58.8274 24.8022 57.4434 21.4609C56.0593 18.1197 54.0309 15.0837 51.4736 12.5264C48.9163 9.96906 45.8803 7.94065 42.5391 6.55664C39.1978 5.17263 35.6166 4.45997 32 4.45996Z" />
66
+ </g>
67
+ </svg>
68
+ );
69
+ };
70
+
71
+ const IconInfo = (props: Props): JSX.Element => {
72
+ const {skinName} = useTheme();
73
+
74
+ switch (skinName) {
75
+ case O2_SKIN:
76
+ return <IconInfoO2 {...props} />;
77
+ case O2_NEW_SKIN:
78
+ return <IconInfoO2New {...props} />;
79
+ case VIVO_NEW_SKIN:
80
+ return <IconInfoVivo {...props} />;
81
+ default:
82
+ return <IconInfoDefault {...props} />;
83
+ }
84
+ };
85
+
86
+ export default IconInfo;
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+
3
+ type Props = {
4
+ role?: string;
5
+ size?: number | string;
6
+ };
7
+
8
+ const IconMastercard = ({role = 'presentation', size = 24}: Props): JSX.Element => (
9
+ <svg width={size} height={size} role={role} viewBox="0 0 20 20" fill="none">
10
+ <g clipPath="url(#clip0_10652_7684)">
11
+ <path
12
+ d="M19 -2H1C-0.656854 -2 -2 -0.656854 -2 1V19C-2 20.6569 -0.656854 22 1 22H19C20.6569 22 22 20.6569 22 19V1C22 -0.656854 20.6569 -2 19 -2Z"
13
+ fill="white"
14
+ />
15
+ <path
16
+ d="M7.057 14.614C9.57376 14.614 11.614 12.5738 11.614 10.057C11.614 7.54024 9.57376 5.5 7.057 5.5C4.54024 5.5 2.5 7.54024 2.5 10.057C2.5 12.5738 4.54024 14.614 7.057 14.614Z"
17
+ fill="#EA021B"
18
+ />
19
+ <path
20
+ d="M12.943 14.614C15.4597 14.614 17.5 12.5738 17.5 10.057C17.5 7.54024 15.4597 5.5 12.943 5.5C10.4262 5.5 8.38599 7.54024 8.38599 10.057C8.38599 12.5738 10.4262 14.614 12.943 14.614Z"
21
+ fill="#F79F19"
22
+ />
23
+ <path
24
+ d="M9.9625 6.54474C11.0058 7.38024 11.671 8.64324 11.671 10.057C11.671 11.4707 11.0058 12.7345 9.9625 13.5692C8.9185 12.7337 8.2525 11.4707 8.2525 10.057C8.2525 8.65974 8.90275 7.40949 9.9265 6.57324L9.9625 6.54474Z"
25
+ fill="#FF5F00"
26
+ />
27
+ </g>
28
+ <defs>
29
+ <clipPath id="clip0_10652_7684">
30
+ <rect width="20" height="20" fill="white" />
31
+ </clipPath>
32
+ </defs>
33
+ </svg>
34
+ );
35
+
36
+ export default IconMastercard;
@@ -0,0 +1,51 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {useTheme} from '../hooks';
4
+ import {getAnimateCircleScaleInProps, getAnimateDrawLineProps} from '../utils/animation';
5
+
6
+ type Props = {
7
+ size?: number | string;
8
+ };
9
+
10
+ const IconSuccessVivoNew = ({size = 48}: Props): JSX.Element => {
11
+ const {platformOverrides} = useTheme();
12
+ const gradientId = React.useId();
13
+
14
+ return (
15
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" fill="none">
16
+ <circle
17
+ cx="32"
18
+ cy="32"
19
+ r="31"
20
+ stroke={`url(#${gradientId})`}
21
+ {...getAnimateCircleScaleInProps('31', platformOverrides)}
22
+ />
23
+
24
+ <polyline
25
+ fill="none"
26
+ stroke="white"
27
+ strokeWidth="1.5"
28
+ strokeLinecap="round"
29
+ strokeLinejoin="round"
30
+ points="24,32.75 30,39 40.5,24.5"
31
+ {...getAnimateDrawLineProps('44', '0.4s', platformOverrides, '0.5 0 0.83 0.83')}
32
+ />
33
+
34
+ <defs>
35
+ <linearGradient
36
+ id={gradientId}
37
+ x1="6.66663"
38
+ y1="6.66669"
39
+ x2="58.3441"
40
+ y2="7.98638"
41
+ gradientUnits="userSpaceOnUse"
42
+ >
43
+ <stop stopColor="#E5B9FF" />
44
+ <stop offset="1" stopColor="#FF6ACE" />
45
+ </linearGradient>
46
+ </defs>
47
+ </svg>
48
+ );
49
+ };
50
+
51
+ export default IconSuccessVivoNew;
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {useTheme} from '../hooks';
4
+ import {getAnimateSweepInProps} from '../utils/animation';
5
+ import {useThemeVariant} from '../theme-variant-context';
6
+ import {vars} from '../skins/skin-contract.css';
7
+
8
+ type Props = {
9
+ size?: number | string;
10
+ };
11
+
12
+ const IconSuccessVivo = ({size = 48}: Props): JSX.Element => {
13
+ const themeVariant = useThemeVariant();
14
+ const {platformOverrides} = useTheme();
15
+
16
+ const color =
17
+ themeVariant === 'brand' || themeVariant === 'media'
18
+ ? vars.colors.neutralHighBrand
19
+ : themeVariant === 'negative'
20
+ ? vars.colors.neutralHighNegative
21
+ : vars.colors.brand;
22
+
23
+ return (
24
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64" overflow="visible">
25
+ <g fill={color} stroke={color}>
26
+ <path
27
+ fillRule="nonzero"
28
+ d="M14.8832276,0 C10.2293915,0.0191737965 6.86229932,3.79747692 6.87644677,7.70928648 C6.89025737,11.6228714 9.24614399,14.2258918 11.0573539,15.1980743 C12.084728,15.7491434 11.7559683,16.7408548 11.7559683,16.7408548 C11.7559683,16.7408548 11.5093985,17.7055808 10.4274557,17.44922 C9.3458498,17.1875332 4.10725261,15.8961425 4.10725261,15.8961425 C4.10725261,15.8961425 0.947319469,15.2651826 0.18436791,18.6252129 C-0.579931024,21.9873736 1.196584,23.2652716 2.5001701,23.5816393 C3.80375621,23.8972968 8.2116962,25.0470144 8.2116962,25.0470144 C8.2116962,25.0470144 9.52370341,25.7443725 9.57490369,27.1742406 C9.60656702,28.0203732 9.60825124,28.7209269 8.78163618,29.9800062 C7.95670533,31.2394406 2.82589821,37.6825463 2.82589821,37.6825463 C2.82589821,37.6825463 1.06218326,39.9379529 3.61781834,41.9710855 C6.17345343,44.0045731 7.61110343,43.5309094 9.12824861,41.6575584 C10.6440464,39.7845626 13.6392629,35.862456 13.6392629,35.862456 C13.6392629,35.862456 14.0525704,35.0099322 14.8956908,35.0610623 C15.7388112,35.1136127 15.985381,35.5961532 16.2710247,35.9650713 C16.5580157,36.3339893 20.7318492,41.7285725 21.0164823,42.0786718 C21.297747,42.4326769 22.0782145,43.0806802 22.9364929,43.2042447 C23.7937607,43.3263889 24.7338922,43.1396219 25.3358324,42.6712841 C25.9360883,42.2022363 26.698703,41.5641749 26.9664939,41.1388007 C27.2326007,40.7134265 27.6863295,40.1034157 27.6027922,39.0996319 C27.5182443,38.0986887 27.3144537,37.574605 26.5878813,36.7149798 C25.8613089,35.8564198 21.565538,30.4178079 20.7567756,29.3742563 C20.7567756,29.3742563 20.022119,28.4461025 20.1285616,27.1341177 C20.2353412,25.8192924 20.7874284,25.2334264 21.9495401,24.9067617 C23.1099675,24.5815173 27.6499503,23.3980679 27.6499503,23.3980679 C27.6499503,23.3980679 30.2487014,22.0733006 29.6595614,19.4472006 L29.3210332,18.1046798 C29.3210332,18.1046798 28.7551353,15.0407782 25.0208833,15.989526 C21.2835996,16.9411144 19.2079671,17.5014154 19.2079671,17.5014154 C19.2079671,17.5014154 18.0185711,17.6235596 17.8477912,16.777427 C17.6797061,15.9302293 17.9003389,15.4934928 18.4258155,15.257016 C18.9516289,15.0208942 22.2685313,13.3144263 22.6939652,8.70064277 C23.121757,4.09538091 19.5505374,0 14.9128698,0 L14.8832276,0"
29
+ {...getAnimateSweepInProps('0.2s', platformOverrides)}
30
+ />
31
+ </g>
32
+ </svg>
33
+ );
34
+ };
35
+
36
+ export default IconSuccessVivo;
@@ -0,0 +1,211 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ import {O2_SKIN, O2_NEW_SKIN, VIVO_NEW_SKIN} from '../skins/constants';
4
+ import {
5
+ getAnimateDrawLineProps,
6
+ getAnimateFadeInProps,
7
+ getAnimateHopInProps,
8
+ mergeProperties,
9
+ } from '../utils/animation';
10
+ import {useTheme} from '../hooks';
11
+ import {vars} from '../skins/skin-contract.css';
12
+ import {useThemeVariant} from '../theme-variant-context';
13
+
14
+ type Props = {
15
+ size?: number | string;
16
+ color?: string;
17
+ skipAnimation?: boolean;
18
+ };
19
+
20
+ const IconSuccessO2 = ({size = 48, color, skipAnimation = false}: Props): JSX.Element => {
21
+ const {platformOverrides} = useTheme();
22
+
23
+ const themeVariant = useThemeVariant();
24
+ const defaultColor =
25
+ themeVariant === 'brand' || themeVariant === 'media'
26
+ ? vars.colors.neutralHighBrand
27
+ : themeVariant === 'negative'
28
+ ? vars.colors.neutralHighNegative
29
+ : vars.colors.brand;
30
+
31
+ return (
32
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
33
+ <g
34
+ stroke={color ? undefined : defaultColor}
35
+ fill={color ? undefined : defaultColor}
36
+ strokeLinecap="round"
37
+ strokeLinejoin="round"
38
+ >
39
+ <path
40
+ fill="none"
41
+ strokeWidth="2"
42
+ stroke={color ? color : undefined}
43
+ d="M48.24,57.99c-4.71,2.95-10.27,4.65-16.24,4.65C15.08,62.64,1.36,48.92,1.36,32S15.08,1.36,32,1.36 S62.64,15.08,62.64,32c0,6.11-1.79,11.8-4.87,16.58"
44
+ {...(!skipAnimation && getAnimateDrawLineProps('202', '0.3s', platformOverrides))}
45
+ />
46
+ <polyline
47
+ fill="none"
48
+ strokeWidth="2"
49
+ stroke={color ? color : undefined}
50
+ points="16.92,30.08 28.68,43.12 50.26,20.22"
51
+ {...(!skipAnimation &&
52
+ mergeProperties(
53
+ getAnimateDrawLineProps('50', '0.6s', platformOverrides),
54
+ getAnimateHopInProps('0.6', platformOverrides)
55
+ ))}
56
+ />
57
+ <circle
58
+ stroke={color ? color : undefined}
59
+ cx="53.64"
60
+ cy="53.54"
61
+ r="1.06"
62
+ {...(!skipAnimation && getAnimateFadeInProps('0.2s', platformOverrides))}
63
+ />
64
+ </g>
65
+ </svg>
66
+ );
67
+ };
68
+
69
+ const IconSuccessO2New = ({size = 48, color, skipAnimation = false}: Props): JSX.Element => {
70
+ const {platformOverrides} = useTheme();
71
+
72
+ const themeVariant = useThemeVariant();
73
+ const defaultColor =
74
+ themeVariant === 'brand' || themeVariant === 'media'
75
+ ? vars.colors.neutralHighBrand
76
+ : themeVariant === 'negative'
77
+ ? vars.colors.neutralHighNegative
78
+ : vars.colors.brand;
79
+
80
+ return (
81
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
82
+ <g
83
+ stroke={color ? undefined : defaultColor}
84
+ fill={color ? undefined : defaultColor}
85
+ strokeLinecap="round"
86
+ strokeWidth="4"
87
+ >
88
+ <circle
89
+ stroke={color ? color : undefined}
90
+ fill="none"
91
+ cx="32"
92
+ cy="32"
93
+ r="30"
94
+ {...(!skipAnimation && getAnimateDrawLineProps('202', '0.3s', platformOverrides))}
95
+ />
96
+ <polyline
97
+ fill="none"
98
+ stroke={color ? color : undefined}
99
+ points="18,32.67 27.33,42 49.33,20.67"
100
+ {...(!skipAnimation &&
101
+ mergeProperties(
102
+ getAnimateDrawLineProps('50', '0.6s', platformOverrides),
103
+ getAnimateHopInProps('0.6', platformOverrides)
104
+ ))}
105
+ />
106
+ </g>
107
+ </svg>
108
+ );
109
+ };
110
+
111
+ const IconSuccessVivo = ({size = 48, color, skipAnimation = false}: Props): JSX.Element => {
112
+ const {platformOverrides} = useTheme();
113
+
114
+ const themeVariant = useThemeVariant();
115
+ const defaultColor =
116
+ themeVariant === 'brand' || themeVariant === 'media'
117
+ ? vars.colors.neutralHighBrand
118
+ : themeVariant === 'negative'
119
+ ? vars.colors.neutralHighNegative
120
+ : vars.colors.brand;
121
+
122
+ return (
123
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
124
+ <g stroke={color ? undefined : defaultColor}>
125
+ <path
126
+ vectorEffect="non-scaling-stroke"
127
+ fill="none"
128
+ stroke={color ? color : undefined}
129
+ strokeWidth="2"
130
+ strokeMiterlimit="10"
131
+ d="M61.4,32c0,19.5-10,29.4-29.4,29.4C12.5,61.4,2.6,51.5,2.6,32S12.5,2.6,32,2.6S61.4,12.5,61.4,32z"
132
+ transform="rotate(90 32 32)"
133
+ {...(!skipAnimation && getAnimateDrawLineProps('202', '0.2s', platformOverrides))}
134
+ />
135
+ <polyline
136
+ vectorEffect="non-scaling-stroke"
137
+ fill="none"
138
+ stroke={color ? color : undefined}
139
+ strokeWidth="2"
140
+ strokeMiterlimit="10"
141
+ strokeLinecap="round"
142
+ strokeLinejoin="round"
143
+ points="20,34.9 27.4,44.3 45.6,21"
144
+ {...(!skipAnimation &&
145
+ mergeProperties(
146
+ getAnimateDrawLineProps('44', '0.6s', platformOverrides),
147
+ getAnimateHopInProps('0.6s', platformOverrides)
148
+ ))}
149
+ />
150
+ </g>
151
+ </svg>
152
+ );
153
+ };
154
+
155
+ const IconSuccessDefault = ({size = 48, color, skipAnimation = false}: Props): JSX.Element => {
156
+ const {platformOverrides} = useTheme();
157
+
158
+ const themeVariant = useThemeVariant();
159
+ const defaultColor =
160
+ themeVariant === 'brand' || themeVariant === 'media'
161
+ ? vars.colors.neutralHighBrand
162
+ : themeVariant === 'negative'
163
+ ? vars.colors.neutralHighNegative
164
+ : vars.colors.brand;
165
+
166
+ return (
167
+ <svg role="presentation" width={size} height={size} viewBox="0 0 64 64">
168
+ <g stroke={color ? undefined : defaultColor}>
169
+ <path
170
+ fill="none"
171
+ stroke={color ? color : undefined}
172
+ strokeWidth="4"
173
+ strokeMiterlimit="10"
174
+ d="M4.71002 43.3039C3.22557 39.7201 2.46154 35.879 2.46154 32C2.46154 28.121 3.22557 24.2799 4.71002 20.6961C6.19447 17.1124 8.37025 13.8561 11.1132 11.1132C13.8561 8.37026 17.1124 6.19447 20.6961 4.71002C24.2799 3.22558 28.121 2.46154 32 2.46154C35.879 2.46154 39.7201 3.22558 43.3039 4.71002C46.8877 6.19447 50.1439 8.37026 52.8868 11.1132C55.6297 13.8561 57.8055 17.1124 59.29 20.6961C60.7744 24.2799 61.5385 28.121 61.5385 32C61.5385 35.879 60.7744 39.7201 59.29 43.3039C57.8055 46.8877 55.6297 50.1439 52.8868 52.8868C50.1439 55.6297 46.8877 57.8055 43.3039 59.29C39.7201 60.7744 35.879 61.5385 32 61.5385C28.121 61.5385 24.2799 60.7744 20.6961 59.29C17.1124 57.8055 13.8561 55.6297 11.1132 52.8868C8.37025 50.1439 6.19447 46.8877 4.71002 43.3039Z"
175
+ {...(!skipAnimation && getAnimateDrawLineProps('202', '0.2s', platformOverrides))}
176
+ />
177
+ <path
178
+ fill="none"
179
+ stroke={color ? color : undefined}
180
+ strokeWidth="4"
181
+ strokeMiterlimit="10"
182
+ strokeLinecap="round"
183
+ strokeLinejoin="round"
184
+ d="M18.8718 32L28.7179 41.8462L45.1282 23.7949"
185
+ {...(!skipAnimation &&
186
+ mergeProperties(
187
+ getAnimateDrawLineProps('44', '0.6s', platformOverrides),
188
+ getAnimateHopInProps('0.6s', platformOverrides)
189
+ ))}
190
+ />
191
+ </g>
192
+ </svg>
193
+ );
194
+ };
195
+
196
+ const IconSuccess = ({size, color, skipAnimation}: Props): JSX.Element => {
197
+ const {skinName} = useTheme();
198
+
199
+ switch (skinName) {
200
+ case O2_SKIN:
201
+ return <IconSuccessO2 size={size} color={color} skipAnimation={skipAnimation} />;
202
+ case O2_NEW_SKIN:
203
+ return <IconSuccessO2New size={size} color={color} skipAnimation={skipAnimation} />;
204
+ case VIVO_NEW_SKIN:
205
+ return <IconSuccessVivo size={size} color={color} skipAnimation={skipAnimation} />;
206
+ default:
207
+ return <IconSuccessDefault size={size} color={color} skipAnimation={skipAnimation} />;
208
+ }
209
+ };
210
+
211
+ export default IconSuccess;