@medway-ui/native 1.6.1 → 1.7.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 (223) hide show
  1. package/README.md +27 -2
  2. package/lib/commonjs/components/Alert.js +3 -1
  3. package/lib/commonjs/components/Alert.js.map +1 -1
  4. package/lib/commonjs/components/AlertDialog.js +5 -2
  5. package/lib/commonjs/components/AlertDialog.js.map +1 -1
  6. package/lib/commonjs/components/Badge.js +37 -2
  7. package/lib/commonjs/components/Badge.js.map +1 -1
  8. package/lib/commonjs/components/Button.js +32 -1
  9. package/lib/commonjs/components/Button.js.map +1 -1
  10. package/lib/commonjs/components/Carousel.js +12 -2
  11. package/lib/commonjs/components/Carousel.js.map +1 -1
  12. package/lib/commonjs/components/Checkbox.js +2 -0
  13. package/lib/commonjs/components/Checkbox.js.map +1 -1
  14. package/lib/commonjs/components/Chip.js +208 -0
  15. package/lib/commonjs/components/Chip.js.map +1 -0
  16. package/lib/commonjs/components/Choice.js +116 -0
  17. package/lib/commonjs/components/Choice.js.map +1 -0
  18. package/lib/commonjs/components/Dialog.js +27 -16
  19. package/lib/commonjs/components/Dialog.js.map +1 -1
  20. package/lib/commonjs/components/DropdownMenu.js +73 -57
  21. package/lib/commonjs/components/DropdownMenu.js.map +1 -1
  22. package/lib/commonjs/components/EmptyState.js +9 -2
  23. package/lib/commonjs/components/EmptyState.js.map +1 -1
  24. package/lib/commonjs/components/Feed.js +7 -3
  25. package/lib/commonjs/components/Feed.js.map +1 -1
  26. package/lib/commonjs/components/Feedback.js +77 -0
  27. package/lib/commonjs/components/Feedback.js.map +1 -0
  28. package/lib/commonjs/components/Filter.js +93 -0
  29. package/lib/commonjs/components/Filter.js.map +1 -0
  30. package/lib/commonjs/components/IndexLevel.js +4 -3
  31. package/lib/commonjs/components/IndexLevel.js.map +1 -1
  32. package/lib/commonjs/components/Input.js +149 -45
  33. package/lib/commonjs/components/Input.js.map +1 -1
  34. package/lib/commonjs/components/InvitePopover.js +4 -1
  35. package/lib/commonjs/components/InvitePopover.js.map +1 -1
  36. package/lib/commonjs/components/MemberRow.js +3 -4
  37. package/lib/commonjs/components/MemberRow.js.map +1 -1
  38. package/lib/commonjs/components/PostForm.js +18 -8
  39. package/lib/commonjs/components/PostForm.js.map +1 -1
  40. package/lib/commonjs/components/PrizeCollection.js +1 -1
  41. package/lib/commonjs/components/RadioGroup.js +7 -0
  42. package/lib/commonjs/components/RadioGroup.js.map +1 -1
  43. package/lib/commonjs/components/Select.js +1 -1
  44. package/lib/commonjs/components/Sheet.js +4 -1
  45. package/lib/commonjs/components/Sheet.js.map +1 -1
  46. package/lib/commonjs/components/Skeleton.js +55 -4
  47. package/lib/commonjs/components/Skeleton.js.map +1 -1
  48. package/lib/commonjs/components/Switch.js +2 -0
  49. package/lib/commonjs/components/Switch.js.map +1 -1
  50. package/lib/commonjs/components/Tabs.js +2 -0
  51. package/lib/commonjs/components/Tabs.js.map +1 -1
  52. package/lib/commonjs/components/Toast.js +355 -79
  53. package/lib/commonjs/components/Toast.js.map +1 -1
  54. package/lib/commonjs/editor/NoteEditor.js +36 -11
  55. package/lib/commonjs/editor/NoteEditor.js.map +1 -1
  56. package/lib/commonjs/editor/editorHtml.generated.js +1 -1
  57. package/lib/commonjs/editor/editorHtml.generated.js.map +1 -1
  58. package/lib/commonjs/hooks/useThemeColor.js +693 -65
  59. package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
  60. package/lib/commonjs/hooks/useTrackedText.js +21 -0
  61. package/lib/commonjs/hooks/useTrackedText.js.map +1 -0
  62. package/lib/commonjs/index.js +46 -0
  63. package/lib/commonjs/index.js.map +1 -1
  64. package/lib/commonjs/lib/optional-deps.js +20 -0
  65. package/lib/commonjs/lib/optional-deps.js.map +1 -0
  66. package/lib/commonjs/lib/touch-target.js +19 -0
  67. package/lib/commonjs/lib/touch-target.js.map +1 -0
  68. package/lib/module/components/Alert.js +3 -1
  69. package/lib/module/components/Alert.js.map +1 -1
  70. package/lib/module/components/AlertDialog.js +5 -2
  71. package/lib/module/components/AlertDialog.js.map +1 -1
  72. package/lib/module/components/Badge.js +36 -2
  73. package/lib/module/components/Badge.js.map +1 -1
  74. package/lib/module/components/Button.js +32 -1
  75. package/lib/module/components/Button.js.map +1 -1
  76. package/lib/module/components/Carousel.js +12 -2
  77. package/lib/module/components/Carousel.js.map +1 -1
  78. package/lib/module/components/Checkbox.js +2 -0
  79. package/lib/module/components/Checkbox.js.map +1 -1
  80. package/lib/module/components/Chip.js +204 -0
  81. package/lib/module/components/Chip.js.map +1 -0
  82. package/lib/module/components/Choice.js +112 -0
  83. package/lib/module/components/Choice.js.map +1 -0
  84. package/lib/module/components/Dialog.js +28 -17
  85. package/lib/module/components/Dialog.js.map +1 -1
  86. package/lib/module/components/DropdownMenu.js +74 -58
  87. package/lib/module/components/DropdownMenu.js.map +1 -1
  88. package/lib/module/components/EmptyState.js +9 -2
  89. package/lib/module/components/EmptyState.js.map +1 -1
  90. package/lib/module/components/Feed.js +7 -3
  91. package/lib/module/components/Feed.js.map +1 -1
  92. package/lib/module/components/Feedback.js +74 -0
  93. package/lib/module/components/Feedback.js.map +1 -0
  94. package/lib/module/components/Filter.js +89 -0
  95. package/lib/module/components/Filter.js.map +1 -0
  96. package/lib/module/components/IndexLevel.js +4 -3
  97. package/lib/module/components/IndexLevel.js.map +1 -1
  98. package/lib/module/components/Input.js +149 -45
  99. package/lib/module/components/Input.js.map +1 -1
  100. package/lib/module/components/InvitePopover.js +4 -1
  101. package/lib/module/components/InvitePopover.js.map +1 -1
  102. package/lib/module/components/MemberRow.js +3 -4
  103. package/lib/module/components/MemberRow.js.map +1 -1
  104. package/lib/module/components/PostForm.js +18 -8
  105. package/lib/module/components/PostForm.js.map +1 -1
  106. package/lib/module/components/PrizeCollection.js +1 -1
  107. package/lib/module/components/RadioGroup.js +7 -0
  108. package/lib/module/components/RadioGroup.js.map +1 -1
  109. package/lib/module/components/Select.js +1 -1
  110. package/lib/module/components/Sheet.js +4 -1
  111. package/lib/module/components/Sheet.js.map +1 -1
  112. package/lib/module/components/Skeleton.js +56 -5
  113. package/lib/module/components/Skeleton.js.map +1 -1
  114. package/lib/module/components/Switch.js +2 -0
  115. package/lib/module/components/Switch.js.map +1 -1
  116. package/lib/module/components/Tabs.js +2 -0
  117. package/lib/module/components/Tabs.js.map +1 -1
  118. package/lib/module/components/Toast.js +360 -84
  119. package/lib/module/components/Toast.js.map +1 -1
  120. package/lib/module/editor/NoteEditor.js +36 -11
  121. package/lib/module/editor/NoteEditor.js.map +1 -1
  122. package/lib/module/editor/editorHtml.generated.js +1 -1
  123. package/lib/module/editor/editorHtml.generated.js.map +1 -1
  124. package/lib/module/hooks/useThemeColor.js +693 -65
  125. package/lib/module/hooks/useThemeColor.js.map +1 -1
  126. package/lib/module/hooks/useTrackedText.js +18 -0
  127. package/lib/module/hooks/useTrackedText.js.map +1 -0
  128. package/lib/module/index.js +8 -0
  129. package/lib/module/index.js.map +1 -1
  130. package/lib/module/lib/optional-deps.js +16 -0
  131. package/lib/module/lib/optional-deps.js.map +1 -0
  132. package/lib/module/lib/touch-target.js +15 -0
  133. package/lib/module/lib/touch-target.js.map +1 -0
  134. package/lib/typescript/components/Alert.d.ts.map +1 -1
  135. package/lib/typescript/components/AlertDialog.d.ts.map +1 -1
  136. package/lib/typescript/components/Badge.d.ts +1 -1
  137. package/lib/typescript/components/Badge.d.ts.map +1 -1
  138. package/lib/typescript/components/Button.d.ts.map +1 -1
  139. package/lib/typescript/components/Carousel.d.ts +1 -1
  140. package/lib/typescript/components/Carousel.d.ts.map +1 -1
  141. package/lib/typescript/components/Checkbox.d.ts.map +1 -1
  142. package/lib/typescript/components/Chip.d.ts +30 -0
  143. package/lib/typescript/components/Chip.d.ts.map +1 -0
  144. package/lib/typescript/components/Choice.d.ts +17 -0
  145. package/lib/typescript/components/Choice.d.ts.map +1 -0
  146. package/lib/typescript/components/Dialog.d.ts.map +1 -1
  147. package/lib/typescript/components/DropdownMenu.d.ts +0 -7
  148. package/lib/typescript/components/DropdownMenu.d.ts.map +1 -1
  149. package/lib/typescript/components/EmptyState.d.ts +3 -2
  150. package/lib/typescript/components/EmptyState.d.ts.map +1 -1
  151. package/lib/typescript/components/Feed.d.ts.map +1 -1
  152. package/lib/typescript/components/Feedback.d.ts +17 -0
  153. package/lib/typescript/components/Feedback.d.ts.map +1 -0
  154. package/lib/typescript/components/Filter.d.ts +17 -0
  155. package/lib/typescript/components/Filter.d.ts.map +1 -0
  156. package/lib/typescript/components/IndexLevel.d.ts.map +1 -1
  157. package/lib/typescript/components/Input.d.ts +3 -3
  158. package/lib/typescript/components/Input.d.ts.map +1 -1
  159. package/lib/typescript/components/InvitePopover.d.ts.map +1 -1
  160. package/lib/typescript/components/MemberRow.d.ts.map +1 -1
  161. package/lib/typescript/components/PostForm.d.ts.map +1 -1
  162. package/lib/typescript/components/RadioGroup.d.ts.map +1 -1
  163. package/lib/typescript/components/Sheet.d.ts.map +1 -1
  164. package/lib/typescript/components/Skeleton.d.ts +1 -1
  165. package/lib/typescript/components/Skeleton.d.ts.map +1 -1
  166. package/lib/typescript/components/Switch.d.ts.map +1 -1
  167. package/lib/typescript/components/Tabs.d.ts.map +1 -1
  168. package/lib/typescript/components/Tag.d.ts +2 -2
  169. package/lib/typescript/components/ThemedIcon.d.ts +1 -1
  170. package/lib/typescript/components/ThemedIcon.d.ts.map +1 -1
  171. package/lib/typescript/components/Toast.d.ts +24 -13
  172. package/lib/typescript/components/Toast.d.ts.map +1 -1
  173. package/lib/typescript/editor/NoteEditor.d.ts.map +1 -1
  174. package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -1
  175. package/lib/typescript/hooks/useThemeColor.d.ts +0 -10
  176. package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -1
  177. package/lib/typescript/hooks/useTrackedText.d.ts +6 -0
  178. package/lib/typescript/hooks/useTrackedText.d.ts.map +1 -0
  179. package/lib/typescript/index.d.ts +9 -1
  180. package/lib/typescript/index.d.ts.map +1 -1
  181. package/lib/typescript/lib/optional-deps.d.ts +23 -0
  182. package/lib/typescript/lib/optional-deps.d.ts.map +1 -0
  183. package/lib/typescript/lib/touch-target.d.ts +5 -0
  184. package/lib/typescript/lib/touch-target.d.ts.map +1 -0
  185. package/package.json +6 -1
  186. package/setup/createMedwayUiNavigator.tsx +4 -7
  187. package/setup/metro.js +12 -3
  188. package/src/components/Alert.tsx +3 -1
  189. package/src/components/AlertDialog.tsx +8 -3
  190. package/src/components/Badge.tsx +51 -3
  191. package/src/components/Button.tsx +39 -1
  192. package/src/components/Carousel.tsx +17 -3
  193. package/src/components/Checkbox.tsx +2 -0
  194. package/src/components/Chip.tsx +227 -0
  195. package/src/components/Choice.tsx +139 -0
  196. package/src/components/Dialog.tsx +39 -23
  197. package/src/components/DropdownMenu.tsx +99 -87
  198. package/src/components/EmptyState.tsx +18 -3
  199. package/src/components/Feed.tsx +4 -3
  200. package/src/components/Feedback.tsx +111 -0
  201. package/src/components/Filter.tsx +106 -0
  202. package/src/components/IndexLevel.tsx +8 -10
  203. package/src/components/Input.tsx +142 -54
  204. package/src/components/InvitePopover.tsx +5 -1
  205. package/src/components/MemberRow.tsx +3 -5
  206. package/src/components/PostForm.tsx +16 -9
  207. package/src/components/PrizeCollection.tsx +1 -1
  208. package/src/components/RadioGroup.tsx +8 -0
  209. package/src/components/Select.tsx +1 -1
  210. package/src/components/Sheet.tsx +4 -1
  211. package/src/components/Skeleton.tsx +47 -6
  212. package/src/components/Switch.tsx +2 -0
  213. package/src/components/Tabs.tsx +2 -0
  214. package/src/components/ThemedIcon.tsx +1 -1
  215. package/src/components/Toast.tsx +489 -87
  216. package/src/editor/NoteEditor.tsx +47 -10
  217. package/src/editor/editorHtml.generated.ts +1 -1
  218. package/src/hooks/useThemeColor.ts +757 -64
  219. package/src/hooks/useTrackedText.ts +20 -0
  220. package/src/index.ts +36 -1
  221. package/src/lib/optional-deps.ts +27 -0
  222. package/src/lib/touch-target.ts +12 -0
  223. package/setup/index.tsx +0 -42
@@ -4,88 +4,707 @@ import { useColorScheme, useUnstableNativeVariable } from 'nativewind';
4
4
 
5
5
  /** Token sem prefixo `--color-` (ex.: `gray-foreground`, `primary-background-fill`). */
6
6
 
7
- /** Fallback quando NativeWind não resolve cadeias `var()` — light mode. */
7
+ /**
8
+ * Cores base do sistema. Alpha variants (ex.: `primary-16`) são computadas
9
+ * dinamicamente a partir dessas bases via `resolvePaletteToken`.
10
+ */
11
+ const PALETTE = {
12
+ white: 'rgba(255, 255, 255, 1)',
13
+ black: 'rgba(0, 0, 0, 1)',
14
+ // Gray scale
15
+ 'gray-950': 'rgba(8, 10, 12, 1)',
16
+ 'gray-900': 'rgba(12, 14, 18, 1)',
17
+ 'gray-850': 'rgba(16, 19, 24, 1)',
18
+ 'gray-800': 'rgba(24, 29, 37, 1)',
19
+ 'gray-700': 'rgba(33, 38, 49, 1)',
20
+ 'gray-600': 'rgba(49, 57, 73, 1)',
21
+ 'gray-500': 'rgba(73, 86, 110, 1)',
22
+ 'gray-450': 'rgba(90, 105, 135, 1)',
23
+ 'gray-400': 'rgba(98, 114, 147, 1)',
24
+ 'gray-300': 'rgba(133, 146, 173, 1)',
25
+ 'gray-200': 'rgba(169, 179, 198, 1)',
26
+ 'gray-150': 'rgba(206, 211, 222, 1)',
27
+ 'gray-100': 'rgba(231, 233, 239, 1)',
28
+ 'gray-70': 'rgba(240, 241, 245, 1)',
29
+ 'gray-50': 'rgba(246, 247, 249, 1)',
30
+ 'gray-30': 'rgba(249, 250, 251, 1)',
31
+ 'gray-10': 'rgba(252, 252, 253, 1)',
32
+ 'gray-0': 'rgba(252, 252, 253, 0)',
33
+ // Primary
34
+ primary: 'rgba(0, 32, 91, 1)',
35
+ 'primary-darken-1': 'rgba(2, 22, 59, 1)',
36
+ 'primary-darken-2': 'rgba(2, 11, 28, 1)',
37
+ 'primary-lighten-1': 'rgba(4, 44, 118, 1)',
38
+ 'primary-lighten-2': 'rgba(11, 57, 142, 1)',
39
+ 'primary-lighten-3': 'rgba(19, 70, 164, 1)',
40
+ 'primary-lighten-4': 'rgba(29, 80, 185, 1)',
41
+ 'primary-lighten-5': 'rgba(39, 94, 206, 1)',
42
+ 'primary-lighten-6': 'rgba(64, 112, 212, 1)',
43
+ // Secondary
44
+ secondary: 'rgba(1, 208, 180, 1)',
45
+ 'secondary-darken-1': 'rgba(7, 171, 149, 1)',
46
+ 'secondary-darken-2': 'rgba(11, 137, 120, 1)',
47
+ 'secondary-darken-3': 'rgba(13, 104, 92, 1)',
48
+ 'secondary-darken-4': 'rgba(12, 75, 66, 1)',
49
+ 'secondary-darken-5': 'rgba(9, 47, 42, 1)',
50
+ 'secondary-darken-6': 'rgba(5, 21, 19, 1)',
51
+ 'secondary-lighten-1': 'rgba(10, 230, 201, 1)',
52
+ 'secondary-lighten-2': 'rgba(33, 237, 210, 1)',
53
+ 'secondary-lighten-3': 'rgba(69, 232, 210, 1)',
54
+ 'secondary-lighten-4': 'rgba(101, 230, 213, 1)',
55
+ 'secondary-lighten-5': 'rgba(132, 231, 217, 1)',
56
+ 'secondary-lighten-6': 'rgba(160, 233, 223, 1)',
57
+ // Green
58
+ green: 'rgba(12, 187, 102, 1)',
59
+ 'green-darken-1': 'rgba(16, 152, 86, 1)',
60
+ 'green-darken-2': 'rgba(17, 120, 71, 1)',
61
+ 'green-darken-3': 'rgba(16, 91, 55, 1)',
62
+ 'green-darken-4': 'rgba(14, 63, 39, 1)',
63
+ 'green-darken-5': 'rgba(9, 37, 23, 1)',
64
+ 'green-darken-6': 'rgba(3, 12, 8, 1)',
65
+ 'green-lighten-1': 'rgba(22, 208, 118, 1)',
66
+ 'green-lighten-2': 'rgba(36, 224, 133, 1)',
67
+ 'green-lighten-3': 'rgba(69, 222, 148, 1)',
68
+ 'green-lighten-4': 'rgba(100, 221, 163, 1)',
69
+ 'green-lighten-5': 'rgba(129, 223, 178, 1)',
70
+ 'green-lighten-6': 'rgba(156, 226, 192, 1)',
71
+ // Red
72
+ red: 'rgba(238, 32, 56, 1)',
73
+ 'red-darken-1': 'rgba(216, 24, 46, 1)',
74
+ 'red-darken-2': 'rgba(182, 27, 45, 1)',
75
+ 'red-darken-3': 'rgba(150, 29, 43, 1)',
76
+ 'red-darken-4': 'rgba(121, 27, 38, 1)',
77
+ 'red-darken-5': 'rgba(93, 25, 33, 1)',
78
+ 'red-darken-6': 'rgba(67, 20, 25, 1)',
79
+ 'red-darken-7': 'rgba(42, 14, 17, 1)',
80
+ 'red-lighten-1': 'rgba(234, 67, 86, 1)',
81
+ 'red-lighten-2': 'rgba(232, 100, 115, 1)',
82
+ 'red-lighten-3': 'rgba(231, 131, 142, 1)',
83
+ 'red-lighten-4': 'rgba(233, 159, 168, 1)',
84
+ 'red-lighten-5': 'rgba(237, 187, 192, 1)',
85
+ 'red-lighten-6': 'rgba(242, 212, 215, 1)',
86
+ // Yellow
87
+ yellow: 'rgba(241, 194, 4, 1)',
88
+ 'yellow-darken-1': 'rgba(203, 165, 11, 1)',
89
+ 'yellow-darken-2': 'rgba(168, 138, 16, 1)',
90
+ 'yellow-darken-3': 'rgba(135, 112, 18, 1)',
91
+ 'yellow-darken-4': 'rgba(105, 87, 18, 1)',
92
+ 'yellow-darken-5': 'rgba(76, 64, 16, 1)',
93
+ 'yellow-darken-6': 'rgba(49, 42, 12, 1)',
94
+ 'yellow-lighten-1': 'rgba(243, 201, 32, 1)',
95
+ 'yellow-lighten-2': 'rgba(238, 204, 68, 1)',
96
+ 'yellow-lighten-3': 'rgba(235, 208, 102, 1)',
97
+ 'yellow-lighten-4': 'rgba(234, 214, 133, 1)',
98
+ 'yellow-lighten-5': 'rgba(236, 221, 162, 1)',
99
+ 'yellow-lighten-6': 'rgba(239, 229, 189, 1)',
100
+ // CM (Clínica Médica)
101
+ cm: 'rgba(64, 126, 201, 1)',
102
+ 'cm-darken-1': 'rgba(56, 112, 178, 1)',
103
+ 'cm-darken-2': 'rgba(53, 97, 151, 1)',
104
+ 'cm-darken-3': 'rgba(49, 83, 125, 1)',
105
+ 'cm-darken-4': 'rgba(42, 69, 101, 1)',
106
+ 'cm-darken-5': 'rgba(35, 54, 77, 1)',
107
+ 'cm-darken-6': 'rgba(27, 39, 55, 1)',
108
+ 'cm-lighten-1': 'rgba(92, 143, 204, 1)',
109
+ 'cm-lighten-2': 'rgba(119, 159, 207, 1)',
110
+ 'cm-lighten-3': 'rgba(145, 175, 212, 1)',
111
+ 'cm-lighten-4': 'rgba(169, 191, 219, 1)',
112
+ 'cm-lighten-5': 'rgba(192, 207, 227, 1)',
113
+ 'cm-lighten-6': 'rgba(214, 223, 235, 1)',
114
+ // GO (Ginecologia e Obstetrícia)
115
+ go: 'rgba(172, 20, 90, 1)',
116
+ 'go-darken-1': 'rgba(141, 22, 77, 1)',
117
+ 'go-darken-2': 'rgba(111, 21, 63, 1)',
118
+ 'go-darken-3': 'rgba(83, 19, 48, 1)',
119
+ 'go-darken-4': 'rgba(56, 15, 34, 1)',
120
+ 'go-darken-5': 'rgba(31, 10, 20, 1)',
121
+ 'go-darken-6': 'rgba(8, 3, 5, 1)',
122
+ 'go-lighten-1': 'rgba(194, 30, 106, 1)',
123
+ 'go-lighten-2': 'rgba(214, 41, 121, 1)',
124
+ 'go-lighten-3': 'rgba(213, 72, 137, 1)',
125
+ 'go-lighten-4': 'rgba(214, 102, 154, 1)',
126
+ 'go-lighten-5': 'rgba(217, 130, 170, 1)',
127
+ 'go-lighten-6': 'rgba(221, 156, 186, 1)',
128
+ // CIR (Cirurgia)
129
+ cir: 'rgba(0, 239, 200, 1)',
130
+ 'cir-darken-1': 'rgba(7, 202, 170, 1)',
131
+ 'cir-darken-2': 'rgba(12, 166, 141, 1)',
132
+ 'cir-darken-3': 'rgba(16, 132, 113, 1)',
133
+ 'cir-darken-4': 'rgba(16, 101, 87, 1)',
134
+ 'cir-darken-5': 'rgba(14, 73, 63, 1)',
135
+ 'cir-darken-6': 'rgba(10, 46, 40, 1)',
136
+ 'cir-lighten-1': 'rgba(24, 247, 210, 1)',
137
+ 'cir-lighten-2': 'rgba(61, 240, 211, 1)',
138
+ 'cir-lighten-3': 'rgba(95, 236, 213, 1)',
139
+ 'cir-lighten-4': 'rgba(127, 235, 217, 1)',
140
+ 'cir-lighten-5': 'rgba(156, 236, 223, 1)',
141
+ 'cir-lighten-6': 'rgba(184, 239, 230, 1)',
142
+ // PED (Pediatria)
143
+ ped: 'rgba(255, 198, 73, 1)',
144
+ 'ped-darken-1': 'rgba(248, 185, 48, 1)',
145
+ 'ped-darken-2': 'rgba(238, 172, 27, 1)',
146
+ 'ped-darken-3': 'rgba(210, 152, 25, 1)',
147
+ 'ped-darken-4': 'rgba(176, 130, 28, 1)',
148
+ 'ped-darken-5': 'rgba(146, 109, 28, 1)',
149
+ 'ped-darken-6': 'rgba(116, 88, 26, 1)',
150
+ 'ped-darken-7': 'rgba(89, 68, 24, 1)',
151
+ 'ped-lighten-1': 'rgba(250, 205, 107, 1)',
152
+ 'ped-lighten-2': 'rgba(246, 213, 141, 1)',
153
+ 'ped-lighten-3': 'rgba(245, 223, 173, 1)',
154
+ 'ped-lighten-4': 'rgba(247, 233, 202, 1)',
155
+ 'ped-lighten-5': 'rgba(250, 244, 229, 1)',
156
+ 'ped-lighten-6': 'rgba(255, 255, 255, 1)',
157
+ // PREV (Preventiva)
158
+ prev: 'rgba(59, 63, 182, 1)',
159
+ 'prev-darken-1': 'rgba(55, 59, 154, 1)',
160
+ 'prev-darken-2': 'rgba(50, 53, 129, 1)',
161
+ 'prev-darken-3': 'rgba(44, 46, 104, 1)',
162
+ 'prev-darken-4': 'rgba(37, 38, 80, 1)',
163
+ 'prev-darken-5': 'rgba(28, 29, 59, 1)',
164
+ 'prev-darken-6': 'rgba(19, 20, 37, 1)',
165
+ 'prev-lighten-1': 'rgba(79, 82, 191, 1)',
166
+ 'prev-lighten-2': 'rgba(104, 107, 196, 1)',
167
+ 'prev-lighten-3': 'rgba(130, 132, 201, 1)',
168
+ 'prev-lighten-4': 'rgba(154, 155, 208, 1)',
169
+ 'prev-lighten-5': 'rgba(176, 177, 217, 1)',
170
+ 'prev-lighten-6': 'rgba(198, 199, 226, 1)',
171
+ // Drop shadow (valores do light; no dark viram alias de `black-*`)
172
+ 'drop-shadow-layer-a': 'rgba(33, 38, 49, 0.16)',
173
+ 'drop-shadow-layer-b': 'rgba(73, 85, 110, 0.16)',
174
+ // Gold
175
+ gold: 'rgba(217, 172, 104, 1)',
176
+ 'gold-darken-1': 'rgba(209, 154, 72, 1)',
177
+ 'gold-darken-2': 'rgba(191, 134, 49, 1)',
178
+ 'gold-darken-3': 'rgba(159, 111, 40, 1)',
179
+ 'gold-darken-4': 'rgba(126, 88, 32, 1)',
180
+ 'gold-darken-5': 'rgba(94, 66, 24, 1)',
181
+ 'gold-darken-6': 'rgba(61, 43, 15, 1)',
182
+ 'gold-lighten-1': 'rgba(221, 181, 121, 1)',
183
+ 'gold-lighten-2': 'rgba(229, 199, 153, 1)',
184
+ 'gold-lighten-3': 'rgba(233, 208, 170, 1)',
185
+ 'gold-lighten-4': 'rgba(237, 217, 186, 1)',
186
+ 'gold-lighten-5': 'rgba(242, 226, 202, 1)',
187
+ 'gold-lighten-6': 'rgba(246, 235, 218, 1)',
188
+ // Silver
189
+ silver: 'rgba(120, 120, 120, 1)',
190
+ 'silver-darken-1': 'rgba(99, 99, 99, 1)',
191
+ 'silver-darken-2': 'rgba(79, 79, 79, 1)',
192
+ 'silver-darken-3': 'rgba(69, 69, 69, 1)',
193
+ 'silver-darken-4': 'rgba(59, 59, 59, 1)',
194
+ 'silver-darken-5': 'rgba(48, 48, 48, 1)',
195
+ 'silver-darken-6': 'rgba(38, 38, 38, 1)',
196
+ 'silver-lighten-1': 'rgba(140, 140, 140, 1)',
197
+ 'silver-lighten-2': 'rgba(161, 161, 161, 1)',
198
+ 'silver-lighten-3': 'rgba(181, 181, 181, 1)',
199
+ 'silver-lighten-4': 'rgba(199, 199, 199, 1)',
200
+ 'silver-lighten-5': 'rgba(219, 219, 219, 1)',
201
+ 'silver-lighten-6': 'rgba(240, 240, 240, 1)',
202
+ // Bronze
203
+ bronze: 'rgba(199, 119, 87, 1)',
204
+ 'bronze-darken-1': 'rgba(184, 97, 61, 1)',
205
+ 'bronze-darken-2': 'rgba(153, 80, 51, 1)',
206
+ 'bronze-darken-3': 'rgba(122, 64, 41, 1)',
207
+ 'bronze-darken-4': 'rgba(92, 48, 31, 1)',
208
+ 'bronze-darken-5': 'rgba(61, 32, 20, 1)',
209
+ 'bronze-darken-6': 'rgba(31, 16, 10, 1)',
210
+ 'bronze-lighten-1': 'rgba(209, 144, 117, 1)',
211
+ 'bronze-lighten-2': 'rgba(219, 168, 148, 1)',
212
+ 'bronze-lighten-3': 'rgba(229, 193, 178, 1)',
213
+ 'bronze-lighten-4': 'rgba(240, 218, 209, 1)',
214
+ 'bronze-lighten-5': 'rgba(250, 243, 240, 1)',
215
+ // Backdrop / drop shadow subtle (`-dark` = valor do .dark)
216
+ 'drop-shadow-subtle-layer-a': 'rgba(33, 38, 49, 0.04)',
217
+ 'drop-shadow-subtle-layer-b': 'rgba(73, 85, 110, 0.08)',
218
+ backdrop: 'rgba(16, 19, 24, 0.3)',
219
+ 'backdrop-dark': 'rgba(16, 19, 24, 0.5)'
220
+ };
221
+
222
+ /** Alias semântico → token da paleta, para light mode (`:root` em tokens.native.css). */
8
223
  const LIGHT_COLOR_ALIAS_MAP = {
224
+ // Content
9
225
  'content-title': 'primary',
10
226
  'content-paragraph': 'gray-600',
11
- 'gray-foreground': 'gray-600',
12
- 'primary-foreground': 'primary',
13
- 'secondary-foreground': 'secondary-darken-3',
14
- 'secondary-stroke-emphasis': 'secondary-darken-1',
227
+ 'content-link': 'secondary-darken-2',
228
+ // State
229
+ 'state-hover': 'gray-50',
230
+ 'state-focus': 'gray-70',
231
+ 'state-active': 'primary-16',
232
+ 'state-error': 'red-16',
233
+ // Surface
234
+ 'surface-elevated': 'white',
15
235
  'surface-card': 'white',
236
+ 'surface-navigation': 'white',
237
+ 'surface-section': 'white',
238
+ 'surface-page': 'gray-30',
239
+ 'surface-disable': 'white-8',
240
+ 'surface-settings-on': 'white-80',
241
+ 'surface-settings-off': 'white-48',
242
+ // Gray
243
+ 'gray-foreground': 'gray-600',
244
+ 'gray-foreground-emphasis': 'gray-700',
16
245
  'gray-foreground-muted': 'gray-450',
246
+ 'gray-foreground-onfill': 'white',
247
+ 'gray-stroke': 'gray-150',
248
+ 'gray-stroke-emphasis': 'gray-200',
17
249
  'gray-stroke-muted': 'gray-100',
250
+ 'gray-background-fill': 'gray-700',
251
+ 'gray-background-fill-emphasis': 'gray-850',
18
252
  'gray-background-fill-muted': 'gray-400',
253
+ 'gray-background-soft': 'gray-70',
254
+ 'gray-background-soft-emphasis': 'gray-50',
19
255
  'gray-background-soft-muted': 'gray-30',
256
+ // Primary
257
+ 'primary-foreground': 'primary',
258
+ 'primary-foreground-emphasis': 'primary-darken-1',
259
+ 'primary-foreground-muted': 'primary-64',
20
260
  'primary-foreground-onfill': 'white',
261
+ 'primary-stroke': 'primary',
262
+ 'primary-stroke-emphasis': 'primary-darken-1',
21
263
  'primary-background-fill': 'primary',
264
+ 'primary-background-fill-emphasis': 'primary-darken-1',
265
+ 'primary-background-soft': 'primary-8',
266
+ 'primary-background-soft-emphasis': 'primary-6',
267
+ 'primary-background-soft-muted': 'primary-4',
268
+ // Secondary
269
+ 'secondary-foreground': 'secondary-darken-3',
270
+ 'secondary-foreground-emphasis': 'secondary-darken-4',
271
+ 'secondary-foreground-muted': 'secondary-darken-2',
272
+ 'secondary-foreground-onfill': 'white',
273
+ 'secondary-stroke': 'secondary',
274
+ 'secondary-stroke-emphasis': 'secondary-darken-1',
275
+ 'secondary-background-fill': 'secondary-darken-2',
276
+ 'secondary-background-fill-emphasis': 'secondary-darken-3',
277
+ 'secondary-background-soft': 'secondary-12',
278
+ 'secondary-background-soft-emphasis': 'secondary-8',
279
+ 'secondary-background-soft-muted': 'secondary-6',
280
+ // Green
281
+ 'green-foreground': 'green-darken-3',
282
+ 'green-foreground-emphasis': 'green-darken-4',
283
+ 'green-foreground-onfill': 'white',
284
+ 'green-stroke': 'green',
285
+ 'green-stroke-emphasis': 'green-darken-2',
286
+ 'green-background-fill': 'green-darken-2',
287
+ 'green-background-fill-emphasis': 'green-darken-3',
288
+ 'green-background-soft': 'green-16',
289
+ 'green-background-soft-emphasis': 'green-12',
290
+ 'green-background-soft-muted': 'green-6',
291
+ // Red
292
+ 'red-foreground': 'red-darken-2',
293
+ 'red-foreground-emphasis': 'red-darken-3',
294
+ 'red-foreground-onfill': 'white',
295
+ 'red-stroke': 'red',
296
+ 'red-stroke-emphasis': 'red-darken-1',
297
+ 'red-background-fill': 'red-darken-1',
298
+ 'red-background-fill-emphasis': 'red-darken-2',
299
+ 'red-background-soft': 'red-12',
300
+ 'red-background-soft-emphasis': 'red-8',
301
+ 'red-background-soft-muted': 'red-4',
302
+ // Yellow
303
+ 'yellow-foreground': 'yellow-darken-4',
304
+ 'yellow-foreground-emphasis': 'yellow-darken-5',
305
+ 'yellow-foreground-onfill': 'yellow-darken-5',
306
+ 'yellow-stroke': 'yellow-lighten-1',
307
+ 'yellow-stroke-emphasis': 'yellow',
308
+ 'yellow-background-fill': 'yellow-lighten-2',
309
+ 'yellow-background-fill-emphasis': 'yellow',
310
+ 'yellow-background-soft': 'yellow-24',
311
+ 'yellow-background-soft-emphasis': 'yellow-16',
312
+ 'yellow-background-soft-muted': 'yellow-8',
313
+ // CM
314
+ 'cm-foreground': 'cm-darken-2',
315
+ 'cm-foreground-emphasis': 'cm-darken-4',
316
+ 'cm-foreground-onfill': 'white',
22
317
  'cm-background-fill': 'cm-darken-1',
318
+ 'cm-background-fill-emphasis': 'cm-darken-3',
319
+ 'cm-background-soft': 'cm-8',
320
+ 'cm-background-soft-emphasis': 'cm-4',
321
+ // GO
322
+ 'go-foreground': 'go-darken-1',
323
+ 'go-foreground-emphasis': 'go-darken-3',
324
+ 'go-foreground-onfill': 'white',
23
325
  'go-background-fill': 'go',
326
+ 'go-background-fill-emphasis': 'go-darken-1',
327
+ 'go-background-soft': 'go-8',
328
+ 'go-background-soft-emphasis': 'go-4',
329
+ // CIR
330
+ 'cir-foreground': 'cir-darken-4',
331
+ 'cir-foreground-emphasis': 'cir-darken-5',
332
+ 'cir-foreground-onfill': 'cir-darken-6',
24
333
  'cir-background-fill': 'cir',
25
- 'ped-background-fill': 'ped',
334
+ 'cir-background-fill-emphasis': 'cir-darken-1',
335
+ 'cir-background-soft': 'cir-16',
336
+ 'cir-background-soft-emphasis': 'cir-8',
337
+ // PED
338
+ 'ped-foreground': 'ped-darken-6',
339
+ 'ped-foreground-emphasis': 'ped-darken-7',
340
+ 'ped-foreground-onfill': 'ped-darken-7',
341
+ 'ped-background-fill': 'ped-lighten-1',
342
+ 'ped-background-fill-emphasis': 'ped',
343
+ 'ped-background-soft': 'ped-16',
344
+ 'ped-background-soft-emphasis': 'ped-8',
345
+ // PREV
346
+ 'prev-foreground': 'prev',
347
+ 'prev-foreground-emphasis': 'prev-darken-2',
348
+ 'prev-foreground-onfill': 'white',
26
349
  'prev-background-fill': 'prev',
27
- 'red-foreground': 'red-darken-2',
28
- 'go-foreground': 'go-darken-1',
29
- // Not a real CSS var: `--color-backdrop` resolves directly, this alias only
30
- // keys the static fallback below (keep in sync with tokens.native.css).
31
- backdrop: 'backdrop-light'
350
+ 'prev-background-fill-emphasis': 'prev-darken-2',
351
+ 'prev-background-soft': 'prev-8',
352
+ 'prev-background-soft-emphasis': 'prev-4',
353
+ // Feedback — success
354
+ 'feedback-success-foreground': 'green-darken-3',
355
+ 'feedback-success-foreground-emphasis': 'green-darken-4',
356
+ 'feedback-success-foreground-onfill': 'white',
357
+ 'feedback-success-stroke': 'green',
358
+ 'feedback-success-stroke-emphasis': 'green-darken-2',
359
+ 'feedback-success-background-fill': 'green-darken-2',
360
+ 'feedback-success-background-fill-emphasis': 'green-darken-3',
361
+ 'feedback-success-background-soft': 'green-16',
362
+ 'feedback-success-background-soft-emphasis': 'green-12',
363
+ 'feedback-success-background-soft-muted': 'green-6',
364
+ // Feedback — error
365
+ 'feedback-error-foreground': 'red-darken-2',
366
+ 'feedback-error-foreground-emphasis': 'red-darken-3',
367
+ 'feedback-error-foreground-onfill': 'white',
368
+ 'feedback-error-stroke': 'red',
369
+ 'feedback-error-stroke-emphasis': 'red-darken-1',
370
+ 'feedback-error-background-fill': 'red-darken-1',
371
+ 'feedback-error-background-fill-emphasis': 'red-darken-2',
372
+ 'feedback-error-background-soft': 'red-12',
373
+ 'feedback-error-background-soft-emphasis': 'red-8',
374
+ 'feedback-error-background-soft-muted': 'red-4',
375
+ // Feedback — warning
376
+ 'feedback-warning-foreground': 'yellow-darken-4',
377
+ 'feedback-warning-foreground-emphasis': 'yellow-darken-5',
378
+ 'feedback-warning-foreground-onfill': 'yellow-darken-5',
379
+ 'feedback-warning-stroke': 'yellow-lighten-1',
380
+ 'feedback-warning-stroke-emphasis': 'yellow',
381
+ 'feedback-warning-background-fill': 'yellow-lighten-2',
382
+ 'feedback-warning-background-fill-emphasis': 'yellow',
383
+ 'feedback-warning-background-soft': 'yellow-24',
384
+ 'feedback-warning-background-soft-emphasis': 'yellow-16',
385
+ 'feedback-warning-background-soft-muted': 'yellow-8',
386
+ // Base
387
+ background: 'white',
388
+ foreground: 'gray-700',
389
+ ring: 'gray-150',
390
+ // Gradients
391
+ 'gradient-base-blur-1': 'primary-lighten-6',
392
+ 'gradient-base-blur-2': 'secondary-lighten-3',
393
+ 'gradient-base-blur-3': 'secondary-lighten-6',
394
+ 'gradient-base-bg-1': 'gray-50',
395
+ 'gradient-base-bg-2': 'gray-10',
396
+ 'gradient-cir-blur-1': 'cir-lighten-3',
397
+ 'gradient-cir-blur-2': 'secondary-lighten-1',
398
+ 'gradient-cir-blur-3': 'cir-darken-1',
399
+ 'gradient-cir-bg-1': 'cir-lighten-6',
400
+ 'gradient-cir-bg-2': 'gray-10',
401
+ 'gradient-cm-blur-1': 'cm-lighten-4',
402
+ 'gradient-cm-blur-2': 'cm-lighten-2',
403
+ 'gradient-cm-blur-3': 'cm',
404
+ 'gradient-cm-bg-1': 'cm-lighten-6',
405
+ 'gradient-cm-bg-2': 'gray-10',
406
+ 'gradient-go-blur-1': 'go-lighten-6',
407
+ 'gradient-go-blur-2': 'go-lighten-4',
408
+ 'gradient-go-blur-3': 'go-lighten-2',
409
+ 'gradient-go-bg-1': 'go-lighten-6',
410
+ 'gradient-go-bg-2': 'gray-10',
411
+ 'gradient-ped-blur-1': 'ped-lighten-4',
412
+ 'gradient-ped-blur-2': 'ped-lighten-2',
413
+ 'gradient-ped-blur-3': 'ped',
414
+ 'gradient-ped-bg-1': 'ped-lighten-5',
415
+ 'gradient-ped-bg-2': 'gray-10',
416
+ 'gradient-prev-blur-1': 'prev-lighten-5',
417
+ 'gradient-prev-blur-2': 'prev-lighten-3',
418
+ 'gradient-prev-blur-3': 'prev',
419
+ 'gradient-prev-bg-1': 'prev-lighten-6',
420
+ 'gradient-prev-bg-2': 'gray-10',
421
+ 'gradient-r1-blur-1': 'secondary',
422
+ 'gradient-r1-blur-2': 'primary-lighten-3',
423
+ 'gradient-r1-blur-3': 'primary-lighten-5',
424
+ 'gradient-r1-bg-1': 'primary',
425
+ 'gradient-r1-bg-2': 'primary-lighten-1',
426
+ 'gradient-rplus-blur-1': 'primary-lighten-1',
427
+ 'gradient-rplus-blur-2': 'primary-lighten-3',
428
+ 'gradient-rplus-blur-3': 'primary-lighten-5',
429
+ 'gradient-rplus-bg-1': 'primary-lighten-1',
430
+ 'gradient-rplus-bg-2': 'primary',
431
+ 'gradient-pt-blur-1': 'secondary',
432
+ 'gradient-pt-blur-2': 'secondary-darken-2',
433
+ 'gradient-pt-blur-3': 'secondary-darken-4',
434
+ 'gradient-pt-bg-1': 'gray-600',
435
+ 'gradient-pt-bg-2': 'gray-450',
436
+ // Gold
437
+ 'gold-foreground': 'gold-darken-4',
438
+ 'gold-foreground-emphasis': 'gold-darken-5',
439
+ 'gold-foreground-onfill': 'gold-darken-5',
440
+ 'gold-background-fill': 'gold',
441
+ 'gold-background-fill-emphasis': 'gold-darken-1',
442
+ 'gold-background-soft': 'gold-24',
443
+ 'gold-background-soft-emphasis': 'gold-16',
444
+ // Silver
445
+ 'silver-foreground': 'silver-darken-4',
446
+ 'silver-foreground-emphasis': 'silver-darken-6',
447
+ 'silver-foreground-onfill': 'white',
448
+ 'silver-background-fill': 'silver',
449
+ 'silver-background-fill-emphasis': 'silver-darken-1',
450
+ 'silver-background-soft': 'silver-8',
451
+ 'silver-background-soft-emphasis': 'silver-4',
452
+ // Bronze
453
+ 'bronze-foreground': 'bronze-darken-3',
454
+ 'bronze-foreground-emphasis': 'bronze-darken-4',
455
+ 'bronze-foreground-onfill': 'white',
456
+ 'bronze-background-fill': 'bronze',
457
+ 'bronze-background-fill-emphasis': 'bronze-darken-1',
458
+ 'bronze-background-soft': 'bronze-24',
459
+ 'bronze-background-soft-emphasis': 'bronze-16'
32
460
  };
33
461
 
34
- /** Fallback — dark mode (espelha tokens.css `.dark`). */
462
+ /** Alias semântico → token da paleta, para dark mode (`.dark` em tokens.native.css). */
35
463
  const DARK_COLOR_ALIAS_MAP = {
464
+ // Content
36
465
  'content-title': 'white',
37
466
  'content-paragraph': 'gray-150',
38
- 'gray-foreground': 'gray-100',
39
- 'primary-foreground': 'gray-100',
40
- 'secondary-foreground': 'secondary-lighten-1',
41
- 'secondary-stroke-emphasis': 'secondary',
467
+ 'content-link': 'secondary',
468
+ // State
469
+ 'state-hover': 'gray-800',
470
+ 'state-focus': 'gray-700',
471
+ 'state-active': 'white-16',
472
+ 'state-error': 'red-16',
473
+ // Surface
474
+ 'surface-elevated': 'gray-800',
42
475
  'surface-card': 'gray-850',
476
+ 'surface-navigation': 'gray-850',
477
+ 'surface-section': 'gray-900',
478
+ 'surface-page': 'gray-950',
479
+ 'surface-disable': 'black-8',
480
+ 'surface-settings-on': 'black-48',
481
+ 'surface-settings-off': 'gray-950',
482
+ // Gray
483
+ 'gray-foreground': 'gray-100',
484
+ 'gray-foreground-emphasis': 'white',
43
485
  'gray-foreground-muted': 'gray-150',
486
+ 'gray-foreground-onfill': 'gray-700',
487
+ 'gray-stroke': 'gray-600',
488
+ 'gray-stroke-emphasis': 'gray-500',
44
489
  'gray-stroke-muted': 'gray-700',
490
+ 'gray-background-fill': 'gray-100',
491
+ 'gray-background-fill-emphasis': 'gray-30',
45
492
  'gray-background-fill-muted': 'gray-300',
493
+ 'gray-background-soft': 'gray-800',
494
+ 'gray-background-soft-emphasis': 'gray-600',
46
495
  'gray-background-soft-muted': 'gray-700',
496
+ // Primary
497
+ 'primary-foreground': 'gray-100',
498
+ 'primary-foreground-emphasis': 'white',
499
+ 'primary-foreground-muted': 'gray-200',
47
500
  'primary-foreground-onfill': 'primary',
501
+ 'primary-stroke': 'gray-100',
502
+ 'primary-stroke-emphasis': 'white',
48
503
  'primary-background-fill': 'gray-70',
49
- 'cm-background-fill': 'cm-darken-1',
50
- 'go-background-fill': 'go-darken-1',
51
- 'cir-background-fill': 'cir',
52
- 'ped-background-fill': 'ped',
53
- 'prev-background-fill': 'prev',
504
+ 'primary-background-fill-emphasis': 'white',
505
+ 'primary-background-soft': 'white-8',
506
+ 'primary-background-soft-emphasis': 'white-16',
507
+ 'primary-background-soft-muted': 'white-12',
508
+ // Secondary
509
+ 'secondary-foreground': 'secondary-lighten-1',
510
+ 'secondary-foreground-emphasis': 'secondary-lighten-2',
511
+ 'secondary-foreground-muted': 'secondary',
512
+ 'secondary-foreground-onfill': 'secondary-darken-6',
513
+ 'secondary-stroke': 'secondary-darken-1',
514
+ 'secondary-stroke-emphasis': 'secondary',
515
+ 'secondary-background-fill': 'secondary-darken-1',
516
+ 'secondary-background-fill-emphasis': 'secondary',
517
+ 'secondary-background-soft': 'secondary-8',
518
+ 'secondary-background-soft-emphasis': 'secondary-24',
519
+ 'secondary-background-soft-muted': 'secondary-12',
520
+ // Green
521
+ 'green-foreground': 'green-lighten-4',
522
+ 'green-foreground-emphasis': 'green-lighten-6',
523
+ 'green-foreground-onfill': 'white',
524
+ 'green-stroke': 'green-darken-2',
525
+ 'green-stroke-emphasis': 'green',
526
+ 'green-background-fill': 'green-darken-3',
527
+ 'green-background-fill-emphasis': 'green-darken-2',
528
+ 'green-background-soft': 'green-8',
529
+ 'green-background-soft-emphasis': 'green-24',
530
+ 'green-background-soft-muted': 'green-16',
531
+ // Red
54
532
  'red-foreground': 'red-lighten-3',
533
+ 'red-foreground-emphasis': 'red-lighten-4',
534
+ 'red-foreground-onfill': 'white',
535
+ 'red-stroke': 'red-darken-1',
536
+ 'red-stroke-emphasis': 'red',
537
+ 'red-background-fill': 'red-darken-2',
538
+ 'red-background-fill-emphasis': 'red-darken-1',
539
+ 'red-background-soft': 'red-12',
540
+ 'red-background-soft-emphasis': 'red-24',
541
+ 'red-background-soft-muted': 'red-16',
542
+ // Yellow
543
+ 'yellow-foreground': 'yellow-lighten-2',
544
+ 'yellow-foreground-emphasis': 'yellow-lighten-4',
545
+ 'yellow-foreground-onfill': 'yellow-darken-5',
546
+ 'yellow-stroke': 'yellow',
547
+ 'yellow-stroke-emphasis': 'yellow-lighten-1',
548
+ 'yellow-background-fill': 'yellow',
549
+ 'yellow-background-fill-emphasis': 'yellow-lighten-2',
550
+ 'yellow-background-soft': 'yellow-8',
551
+ 'yellow-background-soft-emphasis': 'yellow-24',
552
+ 'yellow-background-soft-muted': 'yellow-16',
553
+ // CM
554
+ 'cm-foreground': 'cm-lighten-4',
555
+ 'cm-foreground-emphasis': 'cm-lighten-6',
556
+ 'cm-foreground-onfill': 'white',
557
+ 'cm-background-fill': 'cm-darken-2',
558
+ 'cm-background-fill-emphasis': 'cm',
559
+ 'cm-background-soft': 'cm-12',
560
+ 'cm-background-soft-emphasis': 'cm-24',
561
+ // GO
55
562
  'go-foreground': 'go-lighten-5',
56
- // Fallback key only, see LIGHT_COLOR_ALIAS_MAP.
563
+ 'go-foreground-emphasis': 'go-lighten-6',
564
+ 'go-foreground-onfill': 'white',
565
+ 'go-background-fill': 'go-darken-1',
566
+ 'go-background-fill-emphasis': 'go',
567
+ 'go-background-soft': 'go-16',
568
+ 'go-background-soft-emphasis': 'go-24',
569
+ // CIR
570
+ 'cir-foreground': 'cir',
571
+ 'cir-foreground-emphasis': 'cir-lighten-3',
572
+ 'cir-foreground-onfill': 'cir-darken-6',
573
+ 'cir-background-fill': 'cir-darken-1',
574
+ 'cir-background-fill-emphasis': 'cir',
575
+ 'cir-background-soft': 'cir-8',
576
+ 'cir-background-soft-emphasis': 'cir-16',
577
+ // PED
578
+ 'ped-foreground': 'ped',
579
+ 'ped-foreground-emphasis': 'ped-lighten-1',
580
+ 'ped-foreground-onfill': 'ped-darken-7',
581
+ 'ped-background-fill': 'ped',
582
+ 'ped-background-fill-emphasis': 'ped-lighten-1',
583
+ 'ped-background-soft': 'ped-8',
584
+ 'ped-background-soft-emphasis': 'ped-16',
585
+ // PREV
586
+ 'prev-foreground': 'prev-lighten-5',
587
+ 'prev-foreground-emphasis': 'prev-lighten-6',
588
+ 'prev-foreground-onfill': 'white',
589
+ 'prev-background-fill': 'prev-darken-1',
590
+ 'prev-background-fill-emphasis': 'prev',
591
+ 'prev-background-soft': 'prev-24',
592
+ 'prev-background-soft-emphasis': 'prev-48',
593
+ // Feedback — success
594
+ 'feedback-success-foreground': 'green-lighten-4',
595
+ 'feedback-success-foreground-emphasis': 'green-lighten-6',
596
+ 'feedback-success-foreground-onfill': 'white',
597
+ 'feedback-success-stroke': 'green-darken-2',
598
+ 'feedback-success-stroke-emphasis': 'green',
599
+ 'feedback-success-background-fill': 'green-darken-3',
600
+ 'feedback-success-background-fill-emphasis': 'green-darken-2',
601
+ 'feedback-success-background-soft': 'green-8',
602
+ 'feedback-success-background-soft-emphasis': 'green-24',
603
+ 'feedback-success-background-soft-muted': 'green-16',
604
+ // Feedback — error
605
+ 'feedback-error-foreground': 'red-lighten-3',
606
+ 'feedback-error-foreground-emphasis': 'red-lighten-4',
607
+ 'feedback-error-foreground-onfill': 'white',
608
+ 'feedback-error-stroke': 'red-darken-1',
609
+ 'feedback-error-stroke-emphasis': 'red',
610
+ 'feedback-error-background-fill': 'red-darken-2',
611
+ 'feedback-error-background-fill-emphasis': 'red-darken-1',
612
+ 'feedback-error-background-soft': 'red-12',
613
+ 'feedback-error-background-soft-emphasis': 'red-24',
614
+ 'feedback-error-background-soft-muted': 'red-16',
615
+ // Feedback — warning
616
+ 'feedback-warning-foreground': 'yellow-lighten-2',
617
+ 'feedback-warning-foreground-emphasis': 'yellow-lighten-4',
618
+ 'feedback-warning-foreground-onfill': 'yellow-darken-5',
619
+ 'feedback-warning-stroke': 'yellow',
620
+ 'feedback-warning-stroke-emphasis': 'yellow-lighten-1',
621
+ 'feedback-warning-background-fill': 'yellow',
622
+ 'feedback-warning-background-fill-emphasis': 'yellow-lighten-2',
623
+ 'feedback-warning-background-soft': 'yellow-8',
624
+ 'feedback-warning-background-soft-emphasis': 'yellow-24',
625
+ 'feedback-warning-background-soft-muted': 'yellow-16',
626
+ // Base
627
+ background: 'gray-850',
628
+ foreground: 'white',
629
+ ring: 'gray-500',
630
+ // Drop shadow
631
+ 'drop-shadow-layer-a': 'black-24',
632
+ 'drop-shadow-layer-b': 'black-16',
633
+ // Gradients
634
+ 'gradient-base-blur-1': 'primary-lighten-3',
635
+ 'gradient-base-blur-2': 'secondary-darken-1',
636
+ 'gradient-base-blur-3': 'secondary',
637
+ 'gradient-base-bg-1': 'primary-darken-1',
638
+ 'gradient-base-bg-2': 'primary-darken-2',
639
+ 'gradient-cir-blur-1': 'cir-darken-1',
640
+ 'gradient-cir-blur-2': 'cir-darken-2',
641
+ 'gradient-cir-blur-3': 'cir-darken-3',
642
+ 'gradient-cir-bg-1': 'cir-darken-5',
643
+ 'gradient-cir-bg-2': 'cir-darken-6',
644
+ 'gradient-cm-blur-1': 'cm',
645
+ 'gradient-cm-blur-2': 'cm-darken-1',
646
+ 'gradient-cm-blur-3': 'cm-darken-2',
647
+ 'gradient-cm-bg-1': 'cm-darken-4',
648
+ 'gradient-cm-bg-2': 'cm-darken-6',
649
+ 'gradient-go-blur-1': 'go-lighten-2',
650
+ 'gradient-go-blur-2': 'go',
651
+ 'gradient-go-blur-3': 'go-darken-2',
652
+ 'gradient-go-bg-1': 'go-darken-3',
653
+ 'gradient-go-bg-2': 'go-darken-5',
654
+ 'gradient-ped-blur-1': 'ped',
655
+ 'gradient-ped-blur-2': 'ped-darken-3',
656
+ 'gradient-ped-blur-3': 'ped-darken-5',
657
+ 'gradient-ped-bg-1': 'ped-darken-4',
658
+ 'gradient-ped-bg-2': 'yellow-darken-6',
659
+ 'gradient-prev-blur-1': 'prev-lighten-1',
660
+ 'gradient-prev-blur-2': 'prev',
661
+ 'gradient-prev-blur-3': 'prev-darken-1',
662
+ 'gradient-prev-bg-1': 'prev-darken-2',
663
+ 'gradient-prev-bg-2': 'prev-darken-4',
664
+ 'gradient-r1-blur-1': 'secondary',
665
+ 'gradient-r1-blur-2': 'primary-lighten-1',
666
+ 'gradient-r1-blur-3': 'primary-lighten-2',
667
+ 'gradient-r1-bg-1': 'primary',
668
+ 'gradient-r1-bg-2': 'primary-darken-2',
669
+ 'gradient-rplus-blur-1': 'primary-lighten-5',
670
+ 'gradient-rplus-blur-2': 'primary-lighten-3',
671
+ 'gradient-rplus-blur-3': 'primary-lighten-1',
672
+ 'gradient-rplus-bg-1': 'primary',
673
+ 'gradient-rplus-bg-2': 'primary-darken-2',
674
+ 'gradient-pt-blur-1': 'secondary',
675
+ 'gradient-pt-blur-2': 'secondary-darken-1',
676
+ 'gradient-pt-blur-3': 'secondary-darken-3',
677
+ 'gradient-pt-bg-1': 'gray-800',
678
+ 'gradient-pt-bg-2': 'gray-900',
679
+ // Gold (herdado do :root)
680
+ 'gold-foreground': 'gold-darken-4',
681
+ 'gold-foreground-emphasis': 'gold-darken-5',
682
+ 'gold-foreground-onfill': 'gold-darken-5',
683
+ 'gold-background-fill': 'gold',
684
+ 'gold-background-fill-emphasis': 'gold-darken-1',
685
+ 'gold-background-soft': 'gold-24',
686
+ 'gold-background-soft-emphasis': 'gold-16',
687
+ // Silver (herdado do :root)
688
+ 'silver-foreground': 'silver-darken-4',
689
+ 'silver-foreground-emphasis': 'silver-darken-6',
690
+ 'silver-foreground-onfill': 'white',
691
+ 'silver-background-fill': 'silver',
692
+ 'silver-background-fill-emphasis': 'silver-darken-1',
693
+ 'silver-background-soft': 'silver-8',
694
+ 'silver-background-soft-emphasis': 'silver-4',
695
+ // Bronze (herdado do :root)
696
+ 'bronze-foreground': 'bronze-darken-3',
697
+ 'bronze-foreground-emphasis': 'bronze-darken-4',
698
+ 'bronze-foreground-onfill': 'white',
699
+ 'bronze-background-fill': 'bronze',
700
+ 'bronze-background-fill-emphasis': 'bronze-darken-1',
701
+ 'bronze-background-soft': 'bronze-24',
702
+ 'bronze-background-soft-emphasis': 'bronze-16',
703
+ // Backdrop / drop shadow subtle
704
+ 'drop-shadow-subtle-layer-a': 'black-24',
705
+ 'drop-shadow-subtle-layer-b': 'black-16',
57
706
  backdrop: 'backdrop-dark'
58
707
  };
59
-
60
- /** Fallback estático quando NativeWind não resolve `var(--color-*)` encadeado. */
61
- const THEME_COLOR_FALLBACKS = {
62
- white: '#FFFFFF',
63
- primary: 'rgba(0, 32, 91, 1)',
64
- 'cm-darken-1': 'rgba(56, 112, 178, 1)',
65
- go: 'rgba(172, 20, 90, 1)',
66
- cir: 'rgba(0, 239, 200, 1)',
67
- ped: 'rgba(255, 198, 73, 1)',
68
- prev: 'rgba(59, 63, 182, 1)',
69
- 'gray-600': 'rgba(49, 57, 73, 1)',
70
- 'gray-450': 'rgba(90, 105, 135, 1)',
71
- 'gray-400': 'rgba(122, 133, 151, 1)',
72
- 'gray-100': 'rgba(231, 233, 239, 1)',
73
- 'gray-30': 'rgba(249, 250, 251, 1)',
74
- 'gray-150': 'rgba(206, 211, 222, 1)',
75
- 'gray-300': 'rgba(133, 146, 173, 1)',
76
- 'gray-700': 'rgba(33, 38, 49, 1)',
77
- 'gray-850': 'rgba(16, 19, 24, 1)',
78
- 'gray-70': 'rgba(240, 241, 245, 1)',
79
- 'red-darken-2': 'rgba(182, 27, 45, 1)',
80
- 'red-lighten-3': 'rgba(231, 131, 142, 1)',
81
- 'go-darken-1': 'rgba(141, 22, 77, 1)',
82
- 'go-lighten-5': 'rgba(237, 187, 192, 1)',
83
- 'secondary-darken-1': 'rgba(7, 171, 149, 1)',
84
- 'secondary-darken-3': 'rgba(13, 104, 92, 1)',
85
- 'secondary-lighten-1': 'rgba(22, 208, 118, 1)',
86
- 'backdrop-light': 'rgba(16, 19, 24, 0.3)',
87
- 'backdrop-dark': 'rgba(16, 19, 24, 0.5)'
88
- };
89
708
  const DEFAULT_COLOR = '#3B4958';
90
709
  function toCssVariable(token) {
91
710
  return token.startsWith('--') ? token : `--color-${token}`;
@@ -100,17 +719,32 @@ function toResolvedCssVariable(token, aliasMap) {
100
719
  function isResolvedColor(value) {
101
720
  return typeof value === 'string' && !value.startsWith('var(');
102
721
  }
722
+
723
+ /**
724
+ * Resolve tokens da paleta com sufixo numérico (`primary-16`, `red-8`) para o
725
+ * mesmo tom base com alpha aplicada. Ex.: `primary-16` = base `primary` com
726
+ * alpha 0.16.
727
+ */
728
+ function resolvePaletteToken(paletteToken) {
729
+ if (PALETTE[paletteToken]) return PALETTE[paletteToken];
730
+ const alphaMatch = paletteToken.match(/^(.+)-(\d+)$/);
731
+ if (!alphaMatch) return null;
732
+ const [, base, alphaStr] = alphaMatch;
733
+ const baseColor = PALETTE[base];
734
+ if (!baseColor) return null;
735
+ const alphaPercent = Number(alphaStr);
736
+ if (alphaPercent > 100) return null;
737
+ const alphaValue = alphaPercent / 100;
738
+ return baseColor.replace(/,\s*1\)$/, `, ${alphaValue})`);
739
+ }
103
740
  function getFallbackColor(token, aliasMap) {
104
741
  const tokenName = toTokenName(token);
105
742
  const aliasToken = aliasMap[tokenName] ?? tokenName;
106
- return THEME_COLOR_FALLBACKS[tokenName] ?? THEME_COLOR_FALLBACKS[aliasToken] ?? DEFAULT_COLOR;
107
- }
108
743
 
109
- /**
110
- * Aplica alpha na cor já resolvida (`rgba` ou hex). `transparent` no
111
- * LinearGradient do Expo interpola via preto no Android.
112
- * `alpha` é clamado em 0–1 para não gerar hex inválido (ex. `#RRGGBB132`).
113
- */
744
+ // Alias primeiro: ele é específico do color scheme e deve vencer valores
745
+ // literais da paleta (ex.: `drop-shadow-layer-a` no dark → `black-24`).
746
+ return resolvePaletteToken(aliasToken) ?? resolvePaletteToken(tokenName) ?? DEFAULT_COLOR;
747
+ }
114
748
  function withAlpha(color, alpha) {
115
749
  const clamped = Math.min(1, Math.max(0, alpha));
116
750
  const rgba = color.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)(?:\s*,\s*[\d.]+)?\s*\)/i);
@@ -130,12 +764,6 @@ function withAlpha(color, alpha) {
130
764
  }
131
765
  return color;
132
766
  }
133
-
134
- /**
135
- * Resolve uma cor semântica do design system (tokens.native.css) em runtime.
136
- * Use quando a prop `color` for obrigatória (SVG, stroke Reanimated, etc.).
137
- * `alpha` (0–1) aplica a opacidade na cor resolvida.
138
- */
139
767
  function useThemeColor(token, alpha) {
140
768
  const {
141
769
  colorScheme