@medway-ui/native 1.9.2 → 1.10.1

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 (297) hide show
  1. package/README.md +2 -2
  2. package/lib/commonjs/components/Alert.js +36 -25
  3. package/lib/commonjs/components/Alert.js.map +1 -1
  4. package/lib/commonjs/components/AlertDialog.js +22 -23
  5. package/lib/commonjs/components/AlertDialog.js.map +1 -1
  6. package/lib/commonjs/components/Avatar.js +4 -4
  7. package/lib/commonjs/components/Badge.js +22 -15
  8. package/lib/commonjs/components/Badge.js.map +1 -1
  9. package/lib/commonjs/components/Button.js +56 -42
  10. package/lib/commonjs/components/Button.js.map +1 -1
  11. package/lib/commonjs/components/CardNews.js +18 -13
  12. package/lib/commonjs/components/CardNews.js.map +1 -1
  13. package/lib/commonjs/components/Carousel.js +12 -8
  14. package/lib/commonjs/components/Carousel.js.map +1 -1
  15. package/lib/commonjs/components/Checkbox.js +5 -5
  16. package/lib/commonjs/components/Checkbox.js.map +1 -1
  17. package/lib/commonjs/components/Chip.js +52 -23
  18. package/lib/commonjs/components/Chip.js.map +1 -1
  19. package/lib/commonjs/components/Choice.js +26 -12
  20. package/lib/commonjs/components/Choice.js.map +1 -1
  21. package/lib/commonjs/components/Dialog.js +16 -8
  22. package/lib/commonjs/components/Dialog.js.map +1 -1
  23. package/lib/commonjs/components/DropdownMenu.js +35 -14
  24. package/lib/commonjs/components/DropdownMenu.js.map +1 -1
  25. package/lib/commonjs/components/EmptyState.js +5 -5
  26. package/lib/commonjs/components/EmptyState.js.map +1 -1
  27. package/lib/commonjs/components/FallbackImage.js +42 -35
  28. package/lib/commonjs/components/FallbackImage.js.map +1 -1
  29. package/lib/commonjs/components/Feed.js +6 -5
  30. package/lib/commonjs/components/Feed.js.map +1 -1
  31. package/lib/commonjs/components/FeedNotice.js +3 -3
  32. package/lib/commonjs/components/Feedback.js +2 -4
  33. package/lib/commonjs/components/Feedback.js.map +1 -1
  34. package/lib/commonjs/components/Filter.js +6 -9
  35. package/lib/commonjs/components/Filter.js.map +1 -1
  36. package/lib/commonjs/components/IndexLevel.js +4 -4
  37. package/lib/commonjs/components/Input.js +25 -20
  38. package/lib/commonjs/components/Input.js.map +1 -1
  39. package/lib/commonjs/components/InvitePopover.js +19 -8
  40. package/lib/commonjs/components/InvitePopover.js.map +1 -1
  41. package/lib/commonjs/components/Label.js +2 -2
  42. package/lib/commonjs/components/LeaderboardCard.js +3 -2
  43. package/lib/commonjs/components/LeaderboardCard.js.map +1 -1
  44. package/lib/commonjs/components/Loading.js +18 -15
  45. package/lib/commonjs/components/Loading.js.map +1 -1
  46. package/lib/commonjs/components/LoadingOverlay.js +36 -43
  47. package/lib/commonjs/components/LoadingOverlay.js.map +1 -1
  48. package/lib/commonjs/components/MemberRow.js +7 -6
  49. package/lib/commonjs/components/MemberRow.js.map +1 -1
  50. package/lib/commonjs/components/PageHeader.js +3 -2
  51. package/lib/commonjs/components/PageHeader.js.map +1 -1
  52. package/lib/commonjs/components/Popover.js +1 -1
  53. package/lib/commonjs/components/PostForm.js +38 -24
  54. package/lib/commonjs/components/PostForm.js.map +1 -1
  55. package/lib/commonjs/components/PrizeCollection.js +5 -5
  56. package/lib/commonjs/components/PrizeCollection.js.map +1 -1
  57. package/lib/commonjs/components/RadioGroup.js +65 -15
  58. package/lib/commonjs/components/RadioGroup.js.map +1 -1
  59. package/lib/commonjs/components/SectionHeader.js +3 -2
  60. package/lib/commonjs/components/SectionHeader.js.map +1 -1
  61. package/lib/commonjs/components/SegmentControl.js +4 -4
  62. package/lib/commonjs/components/Select.js +7 -6
  63. package/lib/commonjs/components/Select.js.map +1 -1
  64. package/lib/commonjs/components/Separator.js +2 -2
  65. package/lib/commonjs/components/Separator.js.map +1 -1
  66. package/lib/commonjs/components/Sheet.js +17 -11
  67. package/lib/commonjs/components/Sheet.js.map +1 -1
  68. package/lib/commonjs/components/Skeleton.js +2 -2
  69. package/lib/commonjs/components/Skeleton.js.map +1 -1
  70. package/lib/commonjs/components/Switch.js +3 -3
  71. package/lib/commonjs/components/Tabs.js +3 -2
  72. package/lib/commonjs/components/Tabs.js.map +1 -1
  73. package/lib/commonjs/components/Tag.js +52 -32
  74. package/lib/commonjs/components/Tag.js.map +1 -1
  75. package/lib/commonjs/components/Text.js +1 -1
  76. package/lib/commonjs/components/ThemedIcon.js +1 -1
  77. package/lib/commonjs/components/Toast.js +12 -12
  78. package/lib/commonjs/components/Toast.js.map +1 -1
  79. package/lib/commonjs/components/Tooltip.js +2 -2
  80. package/lib/commonjs/editor/NoteEditor.js +190 -67
  81. package/lib/commonjs/editor/NoteEditor.js.map +1 -1
  82. package/lib/commonjs/editor/editorHtml.generated.js +1 -1
  83. package/lib/commonjs/editor/editorHtml.generated.js.map +1 -1
  84. package/lib/commonjs/editor/index.js.map +1 -1
  85. package/lib/commonjs/editor/protocol.js +1 -2
  86. package/lib/commonjs/editor/protocol.js.map +1 -1
  87. package/lib/commonjs/hooks/useThemeColor.js +41 -19
  88. package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
  89. package/lib/commonjs/index.js +46 -46
  90. package/lib/commonjs/lib/backdrop.js +18 -0
  91. package/lib/commonjs/lib/backdrop.js.map +1 -0
  92. package/lib/commonjs/lib/overlay-host.js +5 -3
  93. package/lib/commonjs/lib/overlay-host.js.map +1 -1
  94. package/lib/commonjs/lib/raised-surface.js +1 -1
  95. package/lib/module/components/Alert.js +36 -25
  96. package/lib/module/components/Alert.js.map +1 -1
  97. package/lib/module/components/AlertDialog.js +21 -22
  98. package/lib/module/components/AlertDialog.js.map +1 -1
  99. package/lib/module/components/Avatar.js +4 -4
  100. package/lib/module/components/Badge.js +22 -15
  101. package/lib/module/components/Badge.js.map +1 -1
  102. package/lib/module/components/Button.js +56 -42
  103. package/lib/module/components/Button.js.map +1 -1
  104. package/lib/module/components/CardNews.js +18 -13
  105. package/lib/module/components/CardNews.js.map +1 -1
  106. package/lib/module/components/Carousel.js +12 -8
  107. package/lib/module/components/Carousel.js.map +1 -1
  108. package/lib/module/components/Checkbox.js +5 -5
  109. package/lib/module/components/Checkbox.js.map +1 -1
  110. package/lib/module/components/Chip.js +52 -23
  111. package/lib/module/components/Chip.js.map +1 -1
  112. package/lib/module/components/Choice.js +26 -12
  113. package/lib/module/components/Choice.js.map +1 -1
  114. package/lib/module/components/Dialog.js +16 -8
  115. package/lib/module/components/Dialog.js.map +1 -1
  116. package/lib/module/components/DropdownMenu.js +36 -15
  117. package/lib/module/components/DropdownMenu.js.map +1 -1
  118. package/lib/module/components/EmptyState.js +5 -5
  119. package/lib/module/components/EmptyState.js.map +1 -1
  120. package/lib/module/components/FallbackImage.js +42 -35
  121. package/lib/module/components/FallbackImage.js.map +1 -1
  122. package/lib/module/components/Feed.js +6 -5
  123. package/lib/module/components/Feed.js.map +1 -1
  124. package/lib/module/components/FeedNotice.js +3 -3
  125. package/lib/module/components/Feedback.js +2 -4
  126. package/lib/module/components/Feedback.js.map +1 -1
  127. package/lib/module/components/Filter.js +6 -9
  128. package/lib/module/components/Filter.js.map +1 -1
  129. package/lib/module/components/IndexLevel.js +4 -4
  130. package/lib/module/components/Input.js +24 -18
  131. package/lib/module/components/Input.js.map +1 -1
  132. package/lib/module/components/InvitePopover.js +20 -9
  133. package/lib/module/components/InvitePopover.js.map +1 -1
  134. package/lib/module/components/Label.js +2 -2
  135. package/lib/module/components/LeaderboardCard.js +3 -2
  136. package/lib/module/components/LeaderboardCard.js.map +1 -1
  137. package/lib/module/components/Loading.js +18 -15
  138. package/lib/module/components/Loading.js.map +1 -1
  139. package/lib/module/components/LoadingOverlay.js +37 -44
  140. package/lib/module/components/LoadingOverlay.js.map +1 -1
  141. package/lib/module/components/MemberRow.js +7 -6
  142. package/lib/module/components/MemberRow.js.map +1 -1
  143. package/lib/module/components/PageHeader.js +3 -2
  144. package/lib/module/components/PageHeader.js.map +1 -1
  145. package/lib/module/components/Popover.js +1 -1
  146. package/lib/module/components/PostForm.js +38 -24
  147. package/lib/module/components/PostForm.js.map +1 -1
  148. package/lib/module/components/PrizeCollection.js +5 -5
  149. package/lib/module/components/PrizeCollection.js.map +1 -1
  150. package/lib/module/components/RadioGroup.js +65 -15
  151. package/lib/module/components/RadioGroup.js.map +1 -1
  152. package/lib/module/components/SectionHeader.js +3 -2
  153. package/lib/module/components/SectionHeader.js.map +1 -1
  154. package/lib/module/components/SegmentControl.js +4 -4
  155. package/lib/module/components/Select.js +6 -5
  156. package/lib/module/components/Select.js.map +1 -1
  157. package/lib/module/components/Separator.js +2 -2
  158. package/lib/module/components/Separator.js.map +1 -1
  159. package/lib/module/components/Sheet.js +17 -11
  160. package/lib/module/components/Sheet.js.map +1 -1
  161. package/lib/module/components/Skeleton.js +2 -2
  162. package/lib/module/components/Skeleton.js.map +1 -1
  163. package/lib/module/components/Switch.js +3 -3
  164. package/lib/module/components/Tabs.js +3 -2
  165. package/lib/module/components/Tabs.js.map +1 -1
  166. package/lib/module/components/Tag.js +52 -32
  167. package/lib/module/components/Tag.js.map +1 -1
  168. package/lib/module/components/Text.js +1 -1
  169. package/lib/module/components/ThemedIcon.js +1 -1
  170. package/lib/module/components/Toast.js +12 -12
  171. package/lib/module/components/Toast.js.map +1 -1
  172. package/lib/module/components/Tooltip.js +2 -2
  173. package/lib/module/editor/NoteEditor.js +193 -69
  174. package/lib/module/editor/NoteEditor.js.map +1 -1
  175. package/lib/module/editor/editorHtml.generated.js +1 -1
  176. package/lib/module/editor/editorHtml.generated.js.map +1 -1
  177. package/lib/module/editor/index.js.map +1 -1
  178. package/lib/module/editor/protocol.js +1 -2
  179. package/lib/module/editor/protocol.js.map +1 -1
  180. package/lib/module/hooks/useThemeColor.js +41 -19
  181. package/lib/module/hooks/useThemeColor.js.map +1 -1
  182. package/lib/module/index.js +46 -46
  183. package/lib/module/lib/backdrop.js +15 -0
  184. package/lib/module/lib/backdrop.js.map +1 -0
  185. package/lib/module/lib/overlay-host.js +6 -4
  186. package/lib/module/lib/overlay-host.js.map +1 -1
  187. package/lib/module/lib/raised-surface.js +1 -1
  188. package/lib/typescript/components/Alert.d.ts +1 -1
  189. package/lib/typescript/components/Alert.d.ts.map +1 -1
  190. package/lib/typescript/components/AlertDialog.d.ts +1 -1
  191. package/lib/typescript/components/AlertDialog.d.ts.map +1 -1
  192. package/lib/typescript/components/Badge.d.ts.map +1 -1
  193. package/lib/typescript/components/Button.d.ts +1 -0
  194. package/lib/typescript/components/Button.d.ts.map +1 -1
  195. package/lib/typescript/components/CardNews.d.ts +7 -2
  196. package/lib/typescript/components/CardNews.d.ts.map +1 -1
  197. package/lib/typescript/components/Checkbox.d.ts +3 -1
  198. package/lib/typescript/components/Checkbox.d.ts.map +1 -1
  199. package/lib/typescript/components/Chip.d.ts.map +1 -1
  200. package/lib/typescript/components/Choice.d.ts +4 -1
  201. package/lib/typescript/components/Choice.d.ts.map +1 -1
  202. package/lib/typescript/components/Dialog.d.ts +2 -1
  203. package/lib/typescript/components/Dialog.d.ts.map +1 -1
  204. package/lib/typescript/components/DropdownMenu.d.ts +3 -2
  205. package/lib/typescript/components/DropdownMenu.d.ts.map +1 -1
  206. package/lib/typescript/components/FallbackImage.d.ts.map +1 -1
  207. package/lib/typescript/components/Feed.d.ts.map +1 -1
  208. package/lib/typescript/components/Feedback.d.ts.map +1 -1
  209. package/lib/typescript/components/Filter.d.ts.map +1 -1
  210. package/lib/typescript/components/IndexLevel.d.ts +1 -1
  211. package/lib/typescript/components/Input.d.ts +5 -5
  212. package/lib/typescript/components/Input.d.ts.map +1 -1
  213. package/lib/typescript/components/InvitePopover.d.ts +1 -1
  214. package/lib/typescript/components/InvitePopover.d.ts.map +1 -1
  215. package/lib/typescript/components/LeaderboardCard.d.ts.map +1 -1
  216. package/lib/typescript/components/Loading.d.ts +1 -1
  217. package/lib/typescript/components/Loading.d.ts.map +1 -1
  218. package/lib/typescript/components/LoadingOverlay.d.ts +9 -9
  219. package/lib/typescript/components/LoadingOverlay.d.ts.map +1 -1
  220. package/lib/typescript/components/PageHeader.d.ts.map +1 -1
  221. package/lib/typescript/components/PostForm.d.ts.map +1 -1
  222. package/lib/typescript/components/RadioGroup.d.ts +4 -2
  223. package/lib/typescript/components/RadioGroup.d.ts.map +1 -1
  224. package/lib/typescript/components/SectionHeader.d.ts.map +1 -1
  225. package/lib/typescript/components/SegmentControl.d.ts +1 -1
  226. package/lib/typescript/components/Select.d.ts +2 -1
  227. package/lib/typescript/components/Select.d.ts.map +1 -1
  228. package/lib/typescript/components/Separator.d.ts.map +1 -1
  229. package/lib/typescript/components/Sheet.d.ts +2 -1
  230. package/lib/typescript/components/Sheet.d.ts.map +1 -1
  231. package/lib/typescript/components/Tabs.d.ts +4 -3
  232. package/lib/typescript/components/Tabs.d.ts.map +1 -1
  233. package/lib/typescript/components/Tag.d.ts +3 -1
  234. package/lib/typescript/components/Tag.d.ts.map +1 -1
  235. package/lib/typescript/components/ThemedIcon.d.ts +1 -1
  236. package/lib/typescript/components/Toast.d.ts +1 -1
  237. package/lib/typescript/components/Toast.d.ts.map +1 -1
  238. package/lib/typescript/editor/NoteEditor.d.ts +28 -8
  239. package/lib/typescript/editor/NoteEditor.d.ts.map +1 -1
  240. package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -1
  241. package/lib/typescript/editor/index.d.ts +1 -1
  242. package/lib/typescript/editor/index.d.ts.map +1 -1
  243. package/lib/typescript/editor/protocol.d.ts +4 -14
  244. package/lib/typescript/editor/protocol.d.ts.map +1 -1
  245. package/lib/typescript/hooks/use-toast.d.ts +1 -1
  246. package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -1
  247. package/lib/typescript/index.d.ts +91 -91
  248. package/lib/typescript/index.d.ts.map +1 -1
  249. package/lib/typescript/lib/backdrop.d.ts +4 -0
  250. package/lib/typescript/lib/backdrop.d.ts.map +1 -0
  251. package/lib/typescript/lib/overlay-host.d.ts +1 -0
  252. package/lib/typescript/lib/overlay-host.d.ts.map +1 -1
  253. package/package.json +9 -14
  254. package/setup/tailwind.js +16 -8
  255. package/setup/tokens.native.css +181 -80
  256. package/src/components/Alert.tsx +37 -20
  257. package/src/components/AlertDialog.tsx +18 -19
  258. package/src/components/Badge.tsx +16 -15
  259. package/src/components/Button.tsx +64 -31
  260. package/src/components/CardNews.tsx +17 -6
  261. package/src/components/Carousel.tsx +5 -5
  262. package/src/components/Checkbox.tsx +17 -7
  263. package/src/components/Chip.tsx +49 -21
  264. package/src/components/Choice.tsx +34 -14
  265. package/src/components/Dialog.tsx +15 -5
  266. package/src/components/DropdownMenu.tsx +62 -14
  267. package/src/components/EmptyState.tsx +3 -3
  268. package/src/components/FallbackImage.tsx +32 -23
  269. package/src/components/Feed.tsx +2 -1
  270. package/src/components/Feedback.tsx +0 -1
  271. package/src/components/Filter.tsx +2 -3
  272. package/src/components/Input.tsx +83 -64
  273. package/src/components/InvitePopover.tsx +11 -3
  274. package/src/components/LeaderboardCard.tsx +4 -1
  275. package/src/components/Loading.tsx +17 -14
  276. package/src/components/LoadingOverlay.tsx +33 -50
  277. package/src/components/MemberRow.tsx +3 -3
  278. package/src/components/PageHeader.tsx +4 -1
  279. package/src/components/PostForm.tsx +28 -16
  280. package/src/components/PrizeCollection.tsx +3 -3
  281. package/src/components/RadioGroup.tsx +69 -12
  282. package/src/components/SectionHeader.tsx +4 -1
  283. package/src/components/Select.tsx +4 -3
  284. package/src/components/Separator.tsx +2 -2
  285. package/src/components/Sheet.tsx +15 -8
  286. package/src/components/Skeleton.tsx +1 -1
  287. package/src/components/Tabs.tsx +5 -4
  288. package/src/components/Tag.tsx +56 -35
  289. package/src/components/Toast.tsx +10 -6
  290. package/src/editor/NoteEditor.tsx +246 -72
  291. package/src/editor/editorHtml.generated.ts +1 -1
  292. package/src/editor/index.ts +8 -4
  293. package/src/editor/protocol.ts +4 -12
  294. package/src/hooks/useThemeColor.ts +41 -19
  295. package/src/index.ts +1 -1
  296. package/src/lib/backdrop.ts +16 -0
  297. package/src/lib/overlay-host.tsx +5 -5
@@ -387,6 +387,7 @@
387
387
  --color-state-focus: var(--color-gray-70);
388
388
  --color-state-active: var(--color-primary-16);
389
389
  --color-state-error: var(--color-red-16);
390
+ --color-state-success: var(--color-green-16);
390
391
 
391
392
  /* === Base feedback success colors === */
392
393
  --color-feedback-success-foreground: var(--color-green-darken-3);
@@ -452,40 +453,68 @@
452
453
  --color-gray-background-soft-muted: var(--color-gray-30);
453
454
 
454
455
  /* === Base green colors === */
455
- --color-green-foreground: var(--color-green-darken-3);
456
- --color-green-foreground-emphasis: var(--color-green-darken-4);
457
- --color-green-foreground-onfill: var(--color-white);
458
- --color-green-stroke: var(--color-green);
459
- --color-green-stroke-emphasis: var(--color-green-darken-2);
460
- --color-green-background-fill: var(--color-green-darken-2);
461
- --color-green-background-fill-emphasis: var(--color-green-darken-3);
462
- --color-green-background-soft: var(--color-green-16);
463
- --color-green-background-soft-emphasis: var(--color-green-12);
464
- --color-green-background-soft-muted: var(--color-green-6);
456
+ --color-green-foreground: var(--color-feedback-success-foreground);
457
+ --color-green-foreground-emphasis: var(
458
+ --color-feedback-success-foreground-emphasis
459
+ );
460
+ --color-green-foreground-onfill: var(
461
+ --color-feedback-success-foreground-onfill
462
+ );
463
+ --color-green-stroke: var(--color-feedback-success-stroke);
464
+ --color-green-stroke-emphasis: var(--color-feedback-success-stroke-emphasis);
465
+ --color-green-background-fill: var(--color-feedback-success-background-fill);
466
+ --color-green-background-fill-emphasis: var(
467
+ --color-feedback-success-background-fill-emphasis
468
+ );
469
+ --color-green-background-soft: var(--color-feedback-success-background-soft);
470
+ --color-green-background-soft-emphasis: var(
471
+ --color-feedback-success-background-soft-emphasis
472
+ );
473
+ --color-green-background-soft-muted: var(
474
+ --color-feedback-success-background-soft-muted
475
+ );
465
476
 
466
477
  /* === Base red colors === */
467
- --color-red-foreground: var(--color-red-darken-2);
468
- --color-red-foreground-emphasis: var(--color-red-darken-3);
469
- --color-red-foreground-onfill: var(--color-white);
470
- --color-red-stroke: var(--color-red);
471
- --color-red-stroke-emphasis: var(--color-red-darken-1);
472
- --color-red-background-fill: var(--color-red-darken-1);
473
- --color-red-background-fill-emphasis: var(--color-red-darken-2);
474
- --color-red-background-soft: var(--color-red-12);
475
- --color-red-background-soft-emphasis: var(--color-red-8);
476
- --color-red-background-soft-muted: var(--color-red-4);
478
+ --color-red-foreground: var(--color-feedback-error-foreground);
479
+ --color-red-foreground-emphasis: var(
480
+ --color-feedback-error-foreground-emphasis
481
+ );
482
+ --color-red-foreground-onfill: var(--color-feedback-error-foreground-onfill);
483
+ --color-red-stroke: var(--color-feedback-error-stroke);
484
+ --color-red-stroke-emphasis: var(--color-feedback-error-stroke-emphasis);
485
+ --color-red-background-fill: var(--color-feedback-error-background-fill);
486
+ --color-red-background-fill-emphasis: var(
487
+ --color-feedback-error-background-fill-emphasis
488
+ );
489
+ --color-red-background-soft: var(--color-feedback-error-background-soft);
490
+ --color-red-background-soft-emphasis: var(
491
+ --color-feedback-error-background-soft-emphasis
492
+ );
493
+ --color-red-background-soft-muted: var(
494
+ --color-feedback-error-background-soft-muted
495
+ );
477
496
 
478
497
  /* === Base yellow colors === */
479
- --color-yellow-foreground: var(--color-yellow-darken-4);
480
- --color-yellow-foreground-emphasis: var(--color-yellow-darken-5);
481
- --color-yellow-foreground-onfill: var(--color-yellow-darken-5);
482
- --color-yellow-stroke: var(--color-yellow-lighten-1);
483
- --color-yellow-stroke-emphasis: var(--color-yellow);
484
- --color-yellow-background-fill: var(--color-yellow-lighten-2);
485
- --color-yellow-background-fill-emphasis: var(--color-yellow);
486
- --color-yellow-background-soft: var(--color-yellow-24);
487
- --color-yellow-background-soft-emphasis: var(--color-yellow-16);
488
- --color-yellow-background-soft-muted: var(--color-yellow-8);
498
+ --color-yellow-foreground: var(--color-feedback-warning-foreground);
499
+ --color-yellow-foreground-emphasis: var(
500
+ --color-feedback-warning-foreground-emphasis
501
+ );
502
+ --color-yellow-foreground-onfill: var(
503
+ --color-feedback-warning-foreground-onfill
504
+ );
505
+ --color-yellow-stroke: var(--color-feedback-warning-stroke);
506
+ --color-yellow-stroke-emphasis: var(--color-feedback-warning-stroke-emphasis);
507
+ --color-yellow-background-fill: var(--color-feedback-warning-background-fill);
508
+ --color-yellow-background-fill-emphasis: var(
509
+ --color-feedback-warning-background-fill-emphasis
510
+ );
511
+ --color-yellow-background-soft: var(--color-feedback-warning-background-soft);
512
+ --color-yellow-background-soft-emphasis: var(
513
+ --color-feedback-warning-background-soft-emphasis
514
+ );
515
+ --color-yellow-background-soft-muted: var(
516
+ --color-feedback-warning-background-soft-muted
517
+ );
489
518
 
490
519
  /* === Base cm colors === */
491
520
  --color-cm-foreground: var(--color-cm-darken-2);
@@ -628,25 +657,39 @@
628
657
  --color-gradient-prev-bg-2: var(--color-gray-10);
629
658
 
630
659
  /* === Base gradient r1 === */
631
- --color-gradient-r1-blur-1: var(--color-secondary);
632
- --color-gradient-r1-blur-2: var(--color-primary-lighten-3);
660
+ --color-gradient-r1-blur-1: var(--color-secondary-lighten-1);
661
+ --color-gradient-r1-blur-2: var(--color-cm);
633
662
  --color-gradient-r1-blur-3: var(--color-primary-lighten-5);
634
- --color-gradient-r1-bg-1: var(--color-primary);
635
- --color-gradient-r1-bg-2: var(--color-primary-lighten-1);
663
+ --color-gradient-r1-bg-1: var(--color-primary-lighten-2);
664
+ --color-gradient-r1-bg-2: var(--color-primary-lighten-6);
636
665
 
637
666
  /* === Base gradient rplus === */
638
- --color-gradient-rplus-blur-1: var(--color-primary-lighten-1);
667
+ --color-gradient-rplus-blur-1: var(--color-prev);
639
668
  --color-gradient-rplus-blur-2: var(--color-primary-lighten-3);
640
669
  --color-gradient-rplus-blur-3: var(--color-primary-lighten-5);
641
- --color-gradient-rplus-bg-1: var(--color-primary-lighten-1);
642
- --color-gradient-rplus-bg-2: var(--color-primary);
670
+ --color-gradient-rplus-bg-1: var(--color-primary-lighten-4);
671
+ --color-gradient-rplus-bg-2: var(--color-prev-lighten-3);
643
672
 
644
673
  /* === Base gradient pt === */
645
- --color-gradient-pt-blur-1: var(--color-secondary);
646
- --color-gradient-pt-blur-2: var(--color-secondary-darken-2);
647
- --color-gradient-pt-blur-3: var(--color-secondary-darken-4);
674
+ --color-gradient-pt-blur-1: var(--color-cir);
675
+ --color-gradient-pt-blur-2: var(--color-secondary-darken-1);
676
+ --color-gradient-pt-blur-3: var(--color-secondary-darken-2);
648
677
  --color-gradient-pt-bg-1: var(--color-gray-600);
649
- --color-gradient-pt-bg-2: var(--color-gray-450);
678
+ --color-gradient-pt-bg-2: var(--color-gray-300);
679
+
680
+ /* === Base gradient default === */
681
+ --color-gradient-default-blur-1: var(--color-gray-10);
682
+ --color-gradient-default-blur-2: var(--color-secondary-lighten-5);
683
+ --color-gradient-default-blur-3: var(--color-primary-lighten-6);
684
+ --color-gradient-default-bg-1: var(--color-gray-150);
685
+ --color-gradient-default-bg-2: var(--color-gray-50);
686
+
687
+ /* === Base gradient neutral === */
688
+ --color-gradient-neutral-blur-1: var(--color-white);
689
+ --color-gradient-neutral-blur-2: var(--color-gray-70);
690
+ --color-gradient-neutral-blur-3: var(--color-gray-150);
691
+ --color-gradient-neutral-bg-1: var(--color-gray-50);
692
+ --color-gradient-neutral-bg-2: var(--color-gray-30);
650
693
 
651
694
  /* === Typography fontfamily === */
652
695
  /* RN: single family name (loaded via expo-font as "Montserrat"). */
@@ -662,7 +705,7 @@
662
705
  --font-weight-medium: 500;
663
706
  --font-weight-semibold: 600;
664
707
  --font-weight-bold: 700;
665
- --font-weight-extrabold: 900;
708
+ --font-weight-extrabold: 800;
666
709
 
667
710
  /* === Typography size === */
668
711
  --text-xxs: 10px;
@@ -702,6 +745,7 @@
702
745
  --radius-sm: 4px;
703
746
  --radius-md: 8px;
704
747
  --radius-lg: 16px;
748
+ --radius-xl: 32px;
705
749
  --radius-pill: 320px;
706
750
  --radius-circular: 1600px;
707
751
  --radius-full: 9999px;
@@ -745,6 +789,7 @@
745
789
  --color-state-focus: var(--color-gray-700);
746
790
  --color-state-active: var(--color-white-16);
747
791
  --color-state-error: var(--color-red-16);
792
+ --color-state-success: var(--color-green-16);
748
793
 
749
794
  /* === Base feedback success colors === */
750
795
  --color-feedback-success-foreground: var(--color-green-lighten-4);
@@ -794,7 +839,7 @@
794
839
  /* === Dark surface colors === */
795
840
  --color-surface-elevated: var(--color-gray-800);
796
841
  --color-surface-card: var(--color-gray-850);
797
- --color-surface-navigation: var(--color-gray-850);
842
+ --color-surface-navigation: var(--color-gray-900);
798
843
  --color-surface-section: var(--color-gray-850);
799
844
  --color-surface-page: var(--color-gray-950);
800
845
  --color-surface-disable: var(--color-black-8);
@@ -823,40 +868,82 @@
823
868
  --color-gray-background-soft-muted: var(--color-gray-700);
824
869
 
825
870
  /* === Dark green colors === */
826
- --color-green-foreground: var(--color-green-lighten-4);
827
- --color-green-foreground-emphasis: var(--color-green-lighten-6);
828
- --color-green-foreground-onfill: var(--color-white);
829
- --color-green-stroke: var(--color-green-darken-2);
830
- --color-green-stroke-emphasis: var(--color-green);
831
- --color-green-background-fill: var(--color-green-darken-3);
832
- --color-green-background-fill-emphasis: var(--color-green-darken-2);
833
- --color-green-background-soft: var(--color-green-8);
834
- --color-green-background-soft-emphasis: var(--color-green-24);
835
- --color-green-background-soft-muted: var(--color-green-16);
871
+ --color-green-foreground: var(--color-feedback-success-foreground);
872
+ --color-green-foreground-emphasis: var(
873
+ --color-feedback-success-foreground-emphasis
874
+ );
875
+ --color-green-foreground-onfill: var(
876
+ --color-feedback-success-foreground-onfill
877
+ );
878
+ --color-green-stroke: var(--color-feedback-success-stroke);
879
+ --color-green-stroke-emphasis: var(
880
+ --color-feedback-success-stroke-emphasis
881
+ );
882
+ --color-green-background-fill: var(
883
+ --color-feedback-success-background-fill
884
+ );
885
+ --color-green-background-fill-emphasis: var(
886
+ --color-feedback-success-background-fill-emphasis
887
+ );
888
+ --color-green-background-soft: var(
889
+ --color-feedback-success-background-soft
890
+ );
891
+ --color-green-background-soft-emphasis: var(
892
+ --color-feedback-success-background-soft-emphasis
893
+ );
894
+ --color-green-background-soft-muted: var(
895
+ --color-feedback-success-background-soft-muted
896
+ );
836
897
 
837
898
  /* === Dark red colors === */
838
- --color-red-foreground: var(--color-red-lighten-3);
839
- --color-red-foreground-emphasis: var(--color-red-lighten-4);
840
- --color-red-foreground-onfill: var(--color-white);
841
- --color-red-stroke: var(--color-red-darken-1);
842
- --color-red-stroke-emphasis: var(--color-red);
843
- --color-red-background-fill: var(--color-red-darken-2);
844
- --color-red-background-fill-emphasis: var(--color-red-darken-1);
845
- --color-red-background-soft: var(--color-red-12);
846
- --color-red-background-soft-emphasis: var(--color-red-24);
847
- --color-red-background-soft-muted: var(--color-red-16);
899
+ --color-red-foreground: var(--color-feedback-error-foreground);
900
+ --color-red-foreground-emphasis: var(
901
+ --color-feedback-error-foreground-emphasis
902
+ );
903
+ --color-red-foreground-onfill: var(
904
+ --color-feedback-error-foreground-onfill
905
+ );
906
+ --color-red-stroke: var(--color-feedback-error-stroke);
907
+ --color-red-stroke-emphasis: var(--color-feedback-error-stroke-emphasis);
908
+ --color-red-background-fill: var(--color-feedback-error-background-fill);
909
+ --color-red-background-fill-emphasis: var(
910
+ --color-feedback-error-background-fill-emphasis
911
+ );
912
+ --color-red-background-soft: var(--color-feedback-error-background-soft);
913
+ --color-red-background-soft-emphasis: var(
914
+ --color-feedback-error-background-soft-emphasis
915
+ );
916
+ --color-red-background-soft-muted: var(
917
+ --color-feedback-error-background-soft-muted
918
+ );
848
919
 
849
920
  /* === Dark yellow colors === */
850
- --color-yellow-foreground: var(--color-yellow-lighten-2);
851
- --color-yellow-foreground-emphasis: var(--color-yellow-lighten-4);
852
- --color-yellow-foreground-onfill: var(--color-yellow-darken-5);
853
- --color-yellow-stroke: var(--color-yellow);
854
- --color-yellow-stroke-emphasis: var(--color-yellow-lighten-1);
855
- --color-yellow-background-fill: var(--color-yellow);
856
- --color-yellow-background-fill-emphasis: var(--color-yellow-lighten-2);
857
- --color-yellow-background-soft: var(--color-yellow-8);
858
- --color-yellow-background-soft-emphasis: var(--color-yellow-24);
859
- --color-yellow-background-soft-muted: var(--color-yellow-16);
921
+ --color-yellow-foreground: var(--color-feedback-warning-foreground);
922
+ --color-yellow-foreground-emphasis: var(
923
+ --color-feedback-warning-foreground-emphasis
924
+ );
925
+ --color-yellow-foreground-onfill: var(
926
+ --color-feedback-warning-foreground-onfill
927
+ );
928
+ --color-yellow-stroke: var(--color-feedback-warning-stroke);
929
+ --color-yellow-stroke-emphasis: var(
930
+ --color-feedback-warning-stroke-emphasis
931
+ );
932
+ --color-yellow-background-fill: var(
933
+ --color-feedback-warning-background-fill
934
+ );
935
+ --color-yellow-background-fill-emphasis: var(
936
+ --color-feedback-warning-background-fill-emphasis
937
+ );
938
+ --color-yellow-background-soft: var(
939
+ --color-feedback-warning-background-soft
940
+ );
941
+ --color-yellow-background-soft-emphasis: var(
942
+ --color-feedback-warning-background-soft-emphasis
943
+ );
944
+ --color-yellow-background-soft-muted: var(
945
+ --color-feedback-warning-background-soft-muted
946
+ );
860
947
 
861
948
  /* === Dark cm colors === */
862
949
  --color-cm-foreground: var(--color-cm-lighten-4);
@@ -1000,23 +1087,37 @@
1000
1087
 
1001
1088
  /* === Dark gradient r1 === */
1002
1089
  --color-gradient-r1-blur-1: var(--color-secondary);
1003
- --color-gradient-r1-blur-2: var(--color-primary-lighten-1);
1090
+ --color-gradient-r1-blur-2: var(--color-primary-lighten-2);
1004
1091
  --color-gradient-r1-blur-3: var(--color-primary-lighten-2);
1005
1092
  --color-gradient-r1-bg-1: var(--color-primary);
1006
- --color-gradient-r1-bg-2: var(--color-primary-darken-2);
1093
+ --color-gradient-r1-bg-2: var(--color-primary-darken-1);
1007
1094
 
1008
1095
  /* === Dark gradient rplus === */
1009
- --color-gradient-rplus-blur-1: var(--color-primary-lighten-5);
1096
+ --color-gradient-rplus-blur-1: var(--color-prev-darken-1);
1010
1097
  --color-gradient-rplus-blur-2: var(--color-primary-lighten-3);
1011
1098
  --color-gradient-rplus-blur-3: var(--color-primary-lighten-1);
1012
1099
  --color-gradient-rplus-bg-1: var(--color-primary);
1013
- --color-gradient-rplus-bg-2: var(--color-primary-darken-2);
1100
+ --color-gradient-rplus-bg-2: var(--color-prev-darken-6);
1014
1101
 
1015
1102
  /* === Dark gradient pt === */
1016
- --color-gradient-pt-blur-1: var(--color-secondary);
1017
- --color-gradient-pt-blur-2: var(--color-secondary-darken-1);
1018
- --color-gradient-pt-blur-3: var(--color-secondary-darken-3);
1103
+ --color-gradient-pt-blur-1: var(--color-cir-darken-1);
1104
+ --color-gradient-pt-blur-2: var(--color-secondary-darken-2);
1105
+ --color-gradient-pt-blur-3: var(--color-secondary-darken-4);
1019
1106
  --color-gradient-pt-bg-1: var(--color-gray-800);
1020
1107
  --color-gradient-pt-bg-2: var(--color-gray-900);
1108
+
1109
+ /* === Dark gradient default === */
1110
+ --color-gradient-default-blur-1: var(--color-primary-lighten-1);
1111
+ --color-gradient-default-blur-2: var(--color-secondary-lighten-2);
1112
+ --color-gradient-default-blur-3: var(--color-primary-lighten-3);
1113
+ --color-gradient-default-bg-1: var(--color-gray-850);
1114
+ --color-gradient-default-bg-2: var(--color-gray-900);
1115
+
1116
+ /* === Dark gradient neutral === */
1117
+ --color-gradient-neutral-blur-1: var(--color-gray-900);
1118
+ --color-gradient-neutral-blur-2: var(--color-gray-850);
1119
+ --color-gradient-neutral-blur-3: var(--color-gray-800);
1120
+ --color-gradient-neutral-bg-1: var(--color-gray-850);
1121
+ --color-gradient-neutral-bg-2: var(--color-gray-950);
1021
1122
  }
1022
1123
  }
@@ -29,15 +29,17 @@ const AlertContext = createContext<{
29
29
  onClose?: () => void;
30
30
  } | null>(null);
31
31
 
32
+ const alertBackgroundClassName: Record<AlertVariant, string> = {
33
+ regular: "bg-primary-background-soft",
34
+ emphasis: "bg-secondary-background-soft",
35
+ success: "bg-feedback-success-background-soft",
36
+ warning: "bg-feedback-warning-background-soft",
37
+ error: "bg-feedback-error-background-soft",
38
+ };
39
+
32
40
  const alertVariants = cva("relative w-full rounded-md px-4 py-3 flex-col gap-1", {
33
41
  variants: {
34
- variant: {
35
- regular: "bg-primary-background-soft",
36
- emphasis: "bg-secondary-background-soft",
37
- success: "bg-green-background-soft",
38
- warning: "bg-yellow-background-soft",
39
- error: "bg-red-background-soft",
40
- },
42
+ variant: alertBackgroundClassName,
41
43
  },
42
44
  defaultVariants: { variant: "regular" },
43
45
  });
@@ -47,30 +49,45 @@ const alertTextColorVariants = cva("", {
47
49
  variant: {
48
50
  regular: "text-primary-foreground",
49
51
  emphasis: "text-secondary-foreground",
50
- success: "text-green-foreground",
51
- warning: "text-yellow-foreground",
52
- error: "text-red-foreground",
52
+ success: "text-feedback-success-foreground",
53
+ warning: "text-feedback-warning-foreground",
54
+ error: "text-feedback-error-foreground",
53
55
  },
54
56
  },
55
57
  defaultVariants: { variant: "regular" },
56
58
  });
57
59
 
60
+ const alertDescriptionColorClassName: Record<AlertVariant, string> = {
61
+ regular: "text-primary-foreground-emphasis",
62
+ emphasis: "text-secondary-foreground-emphasis",
63
+ success: "text-feedback-success-foreground-emphasis",
64
+ warning: "text-feedback-warning-foreground-emphasis",
65
+ error: "text-feedback-error-foreground-emphasis",
66
+ };
67
+
58
68
  const alertButtonVariants = cva(
59
- "flex-row items-center justify-center rounded-pill px-3 min-h-10",
69
+ "flex-row items-center justify-center rounded-pill px-3 min-h-10 disabled:opacity-50",
60
70
  {
61
71
  variants: {
62
72
  variant: {
63
73
  regular: "",
64
- basic: "bg-transparent",
74
+ basic: "",
65
75
  },
66
76
  alertVariant: {
67
- regular: "bg-primary-background-soft",
68
- emphasis: "bg-secondary-background-soft",
69
- success: "bg-green-background-soft",
70
- warning: "bg-yellow-background-soft",
71
- error: "bg-red-background-soft",
77
+ regular: "active:bg-primary-background-soft-emphasis",
78
+ emphasis: "active:bg-secondary-background-soft-emphasis",
79
+ success: "active:bg-feedback-success-background-soft-emphasis",
80
+ warning: "active:bg-feedback-warning-background-soft-emphasis",
81
+ error: "active:bg-feedback-error-background-soft-emphasis",
72
82
  },
73
83
  },
84
+ compoundVariants: (Object.keys(alertBackgroundClassName) as AlertVariant[]).map(
85
+ (alertVariant) => ({
86
+ variant: "regular" as const,
87
+ alertVariant,
88
+ className: alertBackgroundClassName[alertVariant],
89
+ })
90
+ ),
74
91
  defaultVariants: { variant: "regular", alertVariant: "regular" },
75
92
  }
76
93
  );
@@ -89,7 +106,7 @@ function Alert({ className, variant = "regular", onClose, children, ...props }:
89
106
  <AlertContext.Provider value={ctx}>
90
107
  <View
91
108
  accessibilityRole="alert"
92
- className={cn(alertVariants({ variant }), className)}
109
+ className={cn(alertVariants({ variant }), onClose && "pr-12", className)}
93
110
  {...props}
94
111
  >
95
112
  {children}
@@ -131,7 +148,7 @@ function AlertTitle({ className, children, ...props }: ViewProps & { children?:
131
148
  <View className={cn("", className)} {...props}>
132
149
  <Text
133
150
  numberOfLines={1}
134
- className={cn("text-md font-medium", alertTextColorVariants({ variant }))}
151
+ className={cn("text-md font-semibold", alertTextColorVariants({ variant }))}
135
152
  >
136
153
  {children}
137
154
  </Text>
@@ -145,7 +162,7 @@ function AlertDescription({ className, children, ...props }: ViewProps & { child
145
162
  <View className={cn("", className)} {...props}>
146
163
  <Text
147
164
  numberOfLines={3}
148
- className={cn("text-sm font-medium leading-5", alertTextColorVariants({ variant }))}
165
+ className={cn("text-sm font-medium leading-sm", alertDescriptionColorClassName[variant])}
149
166
  >
150
167
  {children}
151
168
  </Text>
@@ -1,10 +1,12 @@
1
1
  import { createContext, useContext, useMemo, type ReactNode } from "react";
2
- import { View, Text, type ViewProps } from "react-native";
2
+ import { View, type ViewProps } from "react-native";
3
3
  import * as AlertDialogPrimitive from "@rn-primitives/alert-dialog";
4
4
  import { cva } from "class-variance-authority";
5
5
  import { CloseMd } from "@medway-ui/icons/native";
6
6
  import { useThemeColor } from "@/hooks/useThemeColor";
7
+ import { useBackdropStyle } from "@/lib/backdrop";
7
8
  import { cn } from "@/lib/utils";
9
+ import { Text } from "@/components/Text";
8
10
  import { Button, type ButtonProps } from "@/components/Button";
9
11
  import { Tag, type TagProps } from "@/components/Tag";
10
12
 
@@ -66,9 +68,9 @@ const alertDialogIconContainerVariants = cva(
66
68
  variant: {
67
69
  regular: "bg-primary-background-fill",
68
70
  emphasis: "bg-secondary-background-fill",
69
- warning: "bg-yellow-background-fill",
70
- error: "bg-red-background-fill",
71
- success: "bg-green-background-fill",
71
+ warning: "bg-feedback-warning-background-fill",
72
+ error: "bg-feedback-error-background-fill",
73
+ success: "bg-feedback-success-background-fill",
72
74
  },
73
75
  },
74
76
  defaultVariants: { variant: DEFAULT_VARIANT },
@@ -80,9 +82,9 @@ const alertDialogIconTextVariants = cva("", {
80
82
  variant: {
81
83
  regular: "text-primary-foreground-onfill",
82
84
  emphasis: "text-secondary-foreground-onfill",
83
- warning: "text-yellow-foreground-onfill",
84
- error: "text-red-foreground-onfill",
85
- success: "text-green-foreground-onfill",
85
+ warning: "text-feedback-warning-foreground-onfill",
86
+ error: "text-feedback-error-foreground-onfill",
87
+ success: "text-feedback-success-foreground-onfill",
86
88
  },
87
89
  },
88
90
  defaultVariants: { variant: DEFAULT_VARIANT },
@@ -96,14 +98,6 @@ const alertDialogTagVariantMap: Record<AlertDialogVariant, TagProps["variant"]>
96
98
  success: "success-soft",
97
99
  };
98
100
 
99
- const actionVariantMap: Record<AlertDialogVariant, NonNullable<ButtonProps["variant"]>> = {
100
- regular: "regular",
101
- emphasis: "emphasis",
102
- warning: "warning",
103
- error: "error",
104
- success: "success",
105
- };
106
-
107
101
  function AlertDialog({ variant = DEFAULT_VARIANT, ...props }: AlertDialogProps) {
108
102
  const ctx = useMemo(() => ({ variant }), [variant]);
109
103
  return (
@@ -122,9 +116,12 @@ function AlertDialogPortal({ ...props }: AlertDialogPrimitive.PortalProps) {
122
116
  }
123
117
 
124
118
  function AlertDialogOverlay({ className, ...props }: AlertDialogPrimitive.OverlayProps) {
119
+ const backdropStyle = useBackdropStyle(className);
120
+
125
121
  return (
126
122
  <AlertDialogPrimitive.Overlay
127
- className={cn("absolute inset-0 bg-black-48", className)}
123
+ className={cn("absolute inset-0", className)}
124
+ style={backdropStyle}
128
125
  {...props}
129
126
  />
130
127
  );
@@ -138,11 +135,13 @@ function AlertDialogContent({
138
135
  ...props
139
136
  }: AlertDialogContentProps) {
140
137
  const closeIconColor = useThemeColor("gray-foreground");
138
+ const backdropStyle = useBackdropStyle(overlayClassName);
141
139
 
142
140
  return (
143
141
  <AlertDialogPrimitive.Portal>
144
142
  <AlertDialogPrimitive.Overlay
145
- className={cn("absolute inset-0 bg-black-48", overlayClassName)}
143
+ className={cn("absolute inset-0", overlayClassName)}
144
+ style={backdropStyle}
146
145
  />
147
146
  <AlertDialogPrimitive.Content
148
147
  className="absolute inset-0 items-center justify-center px-4"
@@ -150,7 +149,7 @@ function AlertDialogContent({
150
149
  >
151
150
  <View
152
151
  className={cn(
153
- "relative flex-col w-full rounded-xl bg-background shadow-lg overflow-hidden",
152
+ "relative flex-col w-full rounded-lg bg-surface-elevated shadow-lg overflow-hidden",
154
153
  className
155
154
  )}
156
155
  >
@@ -247,7 +246,7 @@ function AlertDialogAction({
247
246
  }: AlertDialogActionProps) {
248
247
  const ctx = useContext(AlertDialogContext);
249
248
  const primitiveCtx = AlertDialogPrimitive.useRootContext();
250
- const resolvedVariant = variant ?? actionVariantMap[ctx?.variant ?? DEFAULT_VARIANT];
249
+ const resolvedVariant = variant ?? ctx?.variant ?? DEFAULT_VARIANT;
251
250
 
252
251
  return (
253
252
  <View className={cn("flex-1", className)}>
@@ -57,13 +57,13 @@ const badgeVariants = cva("flex-row items-center justify-center rounded-pill", {
57
57
  cir: "bg-cir-background-fill",
58
58
  "cir-soft": "bg-surface-card",
59
59
  // The design paints pediatrics with the warning tokens, all but the filled label.
60
- ped: "bg-yellow-background-fill",
60
+ ped: "bg-feedback-warning-background-fill",
61
61
  "ped-soft": "bg-surface-card",
62
62
  prev: "bg-prev-background-fill",
63
63
  "prev-soft": "bg-surface-card",
64
64
  freemium: "bg-primary",
65
- error: "bg-red-background-soft",
66
- warning: "bg-yellow-background-soft",
65
+ error: "bg-feedback-error-background-soft",
66
+ warning: "bg-feedback-warning-background-soft",
67
67
  neutral: "bg-gray-background-soft",
68
68
  },
69
69
  size: {
@@ -93,7 +93,7 @@ const SOFT_TINT: Partial<Record<BadgeVariant, string>> = {
93
93
  "cm-soft": "bg-cm-background-soft",
94
94
  "go-soft": "bg-go-background-soft",
95
95
  "cir-soft": "bg-cir-background-soft",
96
- "ped-soft": "bg-yellow-background-soft",
96
+ "ped-soft": "bg-feedback-warning-background-soft",
97
97
  "prev-soft": "bg-prev-background-soft",
98
98
  };
99
99
 
@@ -112,13 +112,13 @@ const badgeTextVariants = cva("font-bold", {
112
112
  cir: "text-cir-foreground-onfill",
113
113
  "cir-soft": "text-cir-foreground",
114
114
  ped: "text-ped-foreground-onfill",
115
- "ped-soft": "text-yellow-foreground",
115
+ "ped-soft": "text-feedback-warning-foreground",
116
116
  prev: "text-prev-foreground-onfill",
117
117
  "prev-soft": "text-prev-foreground",
118
118
  // White, not the design's onfill token: that one turns dark in dark mode, on a fill that stays navy.
119
119
  freemium: "font-semibold text-white",
120
- error: "text-red-stroke-emphasis",
121
- warning: "text-yellow-foreground",
120
+ error: "text-feedback-error-foreground",
121
+ warning: "text-feedback-warning-foreground",
122
122
  neutral: "text-primary-foreground",
123
123
  },
124
124
  size: {
@@ -151,13 +151,13 @@ const badgeDotVariants = cva("rounded-circular", {
151
151
  "go-soft": "bg-go-background-fill",
152
152
  cir: "bg-cir-background-fill",
153
153
  "cir-soft": "bg-cir-background-fill",
154
- ped: "bg-yellow-background-fill",
155
- "ped-soft": "bg-yellow-background-fill",
154
+ ped: "bg-feedback-warning-background-fill",
155
+ "ped-soft": "bg-feedback-warning-background-fill",
156
156
  prev: "bg-prev-background-fill",
157
157
  "prev-soft": "bg-prev-background-fill",
158
158
  freemium: "bg-primary",
159
- error: "bg-red-background-fill",
160
- warning: "bg-yellow-background-fill",
159
+ error: "bg-feedback-error-background-fill",
160
+ warning: "bg-feedback-warning-background-fill",
161
161
  neutral: "bg-gray-background-fill",
162
162
  },
163
163
  size: {
@@ -197,6 +197,8 @@ const FREEMIUM_GRADIENT: ViewStyle = {
197
197
 
198
198
  const SHINE_DURATION_MS = 2000;
199
199
 
200
+ const SHINE_BAND_FRAME: ViewStyle = { position: "absolute", top: 0, bottom: 0 };
201
+
200
202
  function BadgeShine() {
201
203
  const progress = useSharedValue(0);
202
204
  const width = useSharedValue(0);
@@ -234,10 +236,9 @@ function BadgeShine() {
234
236
  className="absolute inset-0 overflow-hidden rounded-pill"
235
237
  onLayout={handleLayout}
236
238
  >
237
- <Animated.View
238
- className="absolute bottom-0 top-0 bg-white-24"
239
- style={bandStyle}
240
- />
239
+ <Animated.View style={[SHINE_BAND_FRAME, bandStyle]}>
240
+ <View className="flex-1 bg-white-24" />
241
+ </Animated.View>
241
242
  </View>
242
243
  );
243
244
  }