@rojaostudio/ds 1.0.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 (291) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/brand/rojao-black-on-white.png +0 -0
  4. package/brand/rojao-black.png +0 -0
  5. package/brand/rojao-white-on-black.png +0 -0
  6. package/brand/rojao-white.png +0 -0
  7. package/dist/chunk-ORMEWXMH.js +37 -0
  8. package/dist/compat/generate.d.ts +6 -0
  9. package/dist/compat/generate.js +1 -0
  10. package/dist/compat/recipes.d.ts +1 -0
  11. package/dist/compat/recipes.js +1 -0
  12. package/dist/compat/themes.d.ts +1 -0
  13. package/dist/compat/themes.js +1 -0
  14. package/dist/compat/tokens.d.ts +1 -0
  15. package/dist/compat/tokens.js +1 -0
  16. package/dist/components/accordion.d.ts +35 -0
  17. package/dist/components/accordion.js +95 -0
  18. package/dist/components/alert.d.ts +24 -0
  19. package/dist/components/alert.js +72 -0
  20. package/dist/components/avatar.d.ts +45 -0
  21. package/dist/components/avatar.js +97 -0
  22. package/dist/components/badge.d.ts +45 -0
  23. package/dist/components/badge.js +114 -0
  24. package/dist/components/blocker-card.d.ts +42 -0
  25. package/dist/components/blocker-card.js +45 -0
  26. package/dist/components/bottom-sheet.d.ts +31 -0
  27. package/dist/components/bottom-sheet.js +120 -0
  28. package/dist/components/breadcrumb.d.ts +28 -0
  29. package/dist/components/breadcrumb.js +52 -0
  30. package/dist/components/button.d.ts +27 -0
  31. package/dist/components/button.js +124 -0
  32. package/dist/components/card.d.ts +27 -0
  33. package/dist/components/card.js +52 -0
  34. package/dist/components/chat-bubble.d.ts +16 -0
  35. package/dist/components/chat-bubble.js +55 -0
  36. package/dist/components/checkbox.d.ts +14 -0
  37. package/dist/components/checkbox.js +78 -0
  38. package/dist/components/chip-input.d.ts +26 -0
  39. package/dist/components/chip-input.js +182 -0
  40. package/dist/components/chips.d.ts +22 -0
  41. package/dist/components/chips.js +94 -0
  42. package/dist/components/choice-card.d.ts +16 -0
  43. package/dist/components/choice-card.js +60 -0
  44. package/dist/components/choice-carousel.d.ts +16 -0
  45. package/dist/components/choice-carousel.js +154 -0
  46. package/dist/components/choice-preview-card.d.ts +37 -0
  47. package/dist/components/choice-preview-card.js +39 -0
  48. package/dist/components/color-input.d.ts +20 -0
  49. package/dist/components/color-input.js +79 -0
  50. package/dist/components/combobox.d.ts +70 -0
  51. package/dist/components/combobox.js +213 -0
  52. package/dist/components/context-menu.d.ts +33 -0
  53. package/dist/components/context-menu.js +70 -0
  54. package/dist/components/copilot-hint.d.ts +18 -0
  55. package/dist/components/copilot-hint.js +63 -0
  56. package/dist/components/copy-field.d.ts +16 -0
  57. package/dist/components/copy-field.js +41 -0
  58. package/dist/components/currency-input.d.ts +32 -0
  59. package/dist/components/currency-input.js +138 -0
  60. package/dist/components/danger-zone.d.ts +20 -0
  61. package/dist/components/danger-zone.js +21 -0
  62. package/dist/components/data-table-header.d.ts +43 -0
  63. package/dist/components/data-table-header.js +205 -0
  64. package/dist/components/date-picker.d.ts +40 -0
  65. package/dist/components/date-picker.js +252 -0
  66. package/dist/components/divider.d.ts +20 -0
  67. package/dist/components/divider.js +47 -0
  68. package/dist/components/drawer.d.ts +26 -0
  69. package/dist/components/drawer.js +82 -0
  70. package/dist/components/dropzone.d.ts +19 -0
  71. package/dist/components/dropzone.js +65 -0
  72. package/dist/components/empty-state.d.ts +48 -0
  73. package/dist/components/empty-state.js +91 -0
  74. package/dist/components/fab.d.ts +38 -0
  75. package/dist/components/fab.js +100 -0
  76. package/dist/components/filter-chip.d.ts +54 -0
  77. package/dist/components/filter-chip.js +66 -0
  78. package/dist/components/floating-stepper.d.ts +44 -0
  79. package/dist/components/floating-stepper.js +53 -0
  80. package/dist/components/form-card-header.d.ts +13 -0
  81. package/dist/components/form-card-header.js +8 -0
  82. package/dist/components/icon-button.d.ts +17 -0
  83. package/dist/components/icon-button.js +80 -0
  84. package/dist/components/image-crop-modal.d.ts +59 -0
  85. package/dist/components/image-crop-modal.js +240 -0
  86. package/dist/components/image-upload.d.ts +72 -0
  87. package/dist/components/image-upload.js +271 -0
  88. package/dist/components/index.d.ts +85 -0
  89. package/dist/components/index.js +200 -0
  90. package/dist/components/input.d.ts +25 -0
  91. package/dist/components/input.js +136 -0
  92. package/dist/components/insight-card.d.ts +19 -0
  93. package/dist/components/insight-card.js +27 -0
  94. package/dist/components/label.d.ts +16 -0
  95. package/dist/components/label.js +43 -0
  96. package/dist/components/media-tile.d.ts +24 -0
  97. package/dist/components/media-tile.js +28 -0
  98. package/dist/components/menu.d.ts +50 -0
  99. package/dist/components/menu.js +80 -0
  100. package/dist/components/modal.d.ts +25 -0
  101. package/dist/components/modal.js +71 -0
  102. package/dist/components/notice.d.ts +50 -0
  103. package/dist/components/notice.js +103 -0
  104. package/dist/components/option-tile.d.ts +60 -0
  105. package/dist/components/option-tile.js +144 -0
  106. package/dist/components/page-shell.d.ts +29 -0
  107. package/dist/components/page-shell.js +36 -0
  108. package/dist/components/page-skeleton.d.ts +35 -0
  109. package/dist/components/page-skeleton.js +12 -0
  110. package/dist/components/page-tabs.d.ts +35 -0
  111. package/dist/components/page-tabs.js +55 -0
  112. package/dist/components/pagination.d.ts +31 -0
  113. package/dist/components/pagination.js +80 -0
  114. package/dist/components/paywall-banner.d.ts +37 -0
  115. package/dist/components/paywall-banner.js +42 -0
  116. package/dist/components/paywall.d.ts +44 -0
  117. package/dist/components/paywall.js +55 -0
  118. package/dist/components/phone-frame.d.ts +9 -0
  119. package/dist/components/phone-frame.js +18 -0
  120. package/dist/components/phone-input.d.ts +24 -0
  121. package/dist/components/phone-input.js +92 -0
  122. package/dist/components/pix-icon.d.ts +8 -0
  123. package/dist/components/pix-icon.js +24 -0
  124. package/dist/components/popover.d.ts +44 -0
  125. package/dist/components/popover.js +140 -0
  126. package/dist/components/pricing-card.d.ts +42 -0
  127. package/dist/components/pricing-card.js +29 -0
  128. package/dist/components/qr-display.d.ts +19 -0
  129. package/dist/components/qr-display.js +24 -0
  130. package/dist/components/radio.d.ts +33 -0
  131. package/dist/components/radio.js +97 -0
  132. package/dist/components/row-actions.d.ts +24 -0
  133. package/dist/components/row-actions.js +76 -0
  134. package/dist/components/saving-bar-context.d.ts +40 -0
  135. package/dist/components/saving-bar-context.js +125 -0
  136. package/dist/components/saving-bar.d.ts +18 -0
  137. package/dist/components/saving-bar.js +72 -0
  138. package/dist/components/search.d.ts +30 -0
  139. package/dist/components/search.js +81 -0
  140. package/dist/components/section-card.d.ts +14 -0
  141. package/dist/components/section-card.js +49 -0
  142. package/dist/components/section-header.d.ts +29 -0
  143. package/dist/components/section-header.js +7 -0
  144. package/dist/components/select.d.ts +21 -0
  145. package/dist/components/select.js +140 -0
  146. package/dist/components/selectable-card.d.ts +35 -0
  147. package/dist/components/selectable-card.js +27 -0
  148. package/dist/components/setting-row.d.ts +33 -0
  149. package/dist/components/setting-row.js +19 -0
  150. package/dist/components/settings-list.d.ts +25 -0
  151. package/dist/components/settings-list.js +22 -0
  152. package/dist/components/skeleton.d.ts +24 -0
  153. package/dist/components/skeleton.js +49 -0
  154. package/dist/components/slider.d.ts +32 -0
  155. package/dist/components/slider.js +79 -0
  156. package/dist/components/spinner.d.ts +14 -0
  157. package/dist/components/spinner.js +36 -0
  158. package/dist/components/step-progress.d.ts +12 -0
  159. package/dist/components/step-progress.js +24 -0
  160. package/dist/components/summary-bar.d.ts +31 -0
  161. package/dist/components/summary-bar.js +54 -0
  162. package/dist/components/table.d.ts +23 -0
  163. package/dist/components/table.js +80 -0
  164. package/dist/components/textarea.d.ts +21 -0
  165. package/dist/components/textarea.js +95 -0
  166. package/dist/components/themed.d.ts +36 -0
  167. package/dist/components/themed.js +22 -0
  168. package/dist/components/time-picker.d.ts +34 -0
  169. package/dist/components/time-picker.js +213 -0
  170. package/dist/components/toaster.d.ts +84 -0
  171. package/dist/components/toaster.js +284 -0
  172. package/dist/components/toggle-card-compact.d.ts +21 -0
  173. package/dist/components/toggle-card-compact.js +99 -0
  174. package/dist/components/toggle-card.d.ts +15 -0
  175. package/dist/components/toggle-card.js +76 -0
  176. package/dist/components/toggle-group.d.ts +67 -0
  177. package/dist/components/toggle-group.js +80 -0
  178. package/dist/components/toggle.d.ts +13 -0
  179. package/dist/components/toggle.js +64 -0
  180. package/dist/components/tooltip.d.ts +17 -0
  181. package/dist/components/tooltip.js +89 -0
  182. package/dist/components/typing-indicator.d.ts +8 -0
  183. package/dist/components/typing-indicator.js +27 -0
  184. package/dist/components/use-dismiss.d.ts +9 -0
  185. package/dist/components/use-dismiss.js +28 -0
  186. package/dist/components/use-focus-trap.d.ts +5 -0
  187. package/dist/components/use-focus-trap.js +54 -0
  188. package/dist/icons/index.d.ts +1 -0
  189. package/dist/icons/index.js +89 -0
  190. package/dist/targets/native/components/accordion.d.ts +18 -0
  191. package/dist/targets/native/components/accordion.js +122 -0
  192. package/dist/targets/native/components/alert.d.ts +16 -0
  193. package/dist/targets/native/components/alert.js +58 -0
  194. package/dist/targets/native/components/avatar.d.ts +25 -0
  195. package/dist/targets/native/components/avatar.js +88 -0
  196. package/dist/targets/native/components/badge.d.ts +27 -0
  197. package/dist/targets/native/components/badge.js +59 -0
  198. package/dist/targets/native/components/button.d.ts +18 -0
  199. package/dist/targets/native/components/button.js +84 -0
  200. package/dist/targets/native/components/card.d.ts +6 -0
  201. package/dist/targets/native/components/card.js +36 -0
  202. package/dist/targets/native/components/checkbox.d.ts +12 -0
  203. package/dist/targets/native/components/checkbox.js +59 -0
  204. package/dist/targets/native/components/chips.d.ts +17 -0
  205. package/dist/targets/native/components/chips.js +77 -0
  206. package/dist/targets/native/components/choice-card.d.ts +11 -0
  207. package/dist/targets/native/components/choice-card.js +52 -0
  208. package/dist/targets/native/components/context-menu.d.ts +11 -0
  209. package/dist/targets/native/components/context-menu.js +19 -0
  210. package/dist/targets/native/components/currency-input.d.ts +22 -0
  211. package/dist/targets/native/components/currency-input.js +105 -0
  212. package/dist/targets/native/components/danger-zone.d.ts +13 -0
  213. package/dist/targets/native/components/danger-zone.js +27 -0
  214. package/dist/targets/native/components/date-picker.d.ts +13 -0
  215. package/dist/targets/native/components/date-picker.js +185 -0
  216. package/dist/targets/native/components/divider.d.ts +9 -0
  217. package/dist/targets/native/components/divider.js +36 -0
  218. package/dist/targets/native/components/empty-state.d.ts +13 -0
  219. package/dist/targets/native/components/empty-state.js +10 -0
  220. package/dist/targets/native/components/fab.d.ts +25 -0
  221. package/dist/targets/native/components/fab.js +112 -0
  222. package/dist/targets/native/components/filter-chip.d.ts +22 -0
  223. package/dist/targets/native/components/filter-chip.js +70 -0
  224. package/dist/targets/native/components/form-field.d.ts +13 -0
  225. package/dist/targets/native/components/form-field.js +29 -0
  226. package/dist/targets/native/components/form-screen.d.ts +19 -0
  227. package/dist/targets/native/components/form-screen.js +88 -0
  228. package/dist/targets/native/components/google-icon.d.ts +8 -0
  229. package/dist/targets/native/components/google-icon.js +32 -0
  230. package/dist/targets/native/components/icon-button.d.ts +18 -0
  231. package/dist/targets/native/components/icon-button.js +80 -0
  232. package/dist/targets/native/components/icon.d.ts +11 -0
  233. package/dist/targets/native/components/icon.js +9 -0
  234. package/dist/targets/native/components/image-upload.d.ts +12 -0
  235. package/dist/targets/native/components/image-upload.js +95 -0
  236. package/dist/targets/native/components/index.d.ts +45 -0
  237. package/dist/targets/native/components/index.js +100 -0
  238. package/dist/targets/native/components/input.d.ts +17 -0
  239. package/dist/targets/native/components/input.js +103 -0
  240. package/dist/targets/native/components/list-item.d.ts +20 -0
  241. package/dist/targets/native/components/list-item.js +71 -0
  242. package/dist/targets/native/components/menu.d.ts +24 -0
  243. package/dist/targets/native/components/menu.js +71 -0
  244. package/dist/targets/native/components/modal.d.ts +15 -0
  245. package/dist/targets/native/components/modal.js +110 -0
  246. package/dist/targets/native/components/paywall-banner.d.ts +11 -0
  247. package/dist/targets/native/components/paywall-banner.js +46 -0
  248. package/dist/targets/native/components/paywall.d.ts +18 -0
  249. package/dist/targets/native/components/paywall.js +61 -0
  250. package/dist/targets/native/components/radio.d.ts +20 -0
  251. package/dist/targets/native/components/radio.js +71 -0
  252. package/dist/targets/native/components/search.d.ts +22 -0
  253. package/dist/targets/native/components/search.js +92 -0
  254. package/dist/targets/native/components/select.d.ts +17 -0
  255. package/dist/targets/native/components/select.js +86 -0
  256. package/dist/targets/native/components/sheet.d.ts +11 -0
  257. package/dist/targets/native/components/sheet.js +51 -0
  258. package/dist/targets/native/components/skeleton.d.ts +18 -0
  259. package/dist/targets/native/components/skeleton.js +52 -0
  260. package/dist/targets/native/components/slider.d.ts +18 -0
  261. package/dist/targets/native/components/slider.js +153 -0
  262. package/dist/targets/native/components/spinner.d.ts +7 -0
  263. package/dist/targets/native/components/spinner.js +10 -0
  264. package/dist/targets/native/components/stepper.d.ts +10 -0
  265. package/dist/targets/native/components/stepper.js +33 -0
  266. package/dist/targets/native/components/switch.d.ts +20 -0
  267. package/dist/targets/native/components/switch.js +68 -0
  268. package/dist/targets/native/components/text.d.ts +12 -0
  269. package/dist/targets/native/components/text.js +31 -0
  270. package/dist/targets/native/components/textarea.d.ts +13 -0
  271. package/dist/targets/native/components/textarea.js +92 -0
  272. package/dist/targets/native/components/theme.d.ts +18 -0
  273. package/dist/targets/native/components/theme.js +20 -0
  274. package/dist/targets/native/components/toaster.d.ts +35 -0
  275. package/dist/targets/native/components/toaster.js +159 -0
  276. package/dist/targets/native/fonts.d.ts +9 -0
  277. package/dist/targets/native/fonts.js +10 -0
  278. package/dist/targets/native/icons.d.ts +1 -0
  279. package/dist/targets/native/icons.js +1 -0
  280. package/dist/targets/native/index.d.ts +3 -0
  281. package/dist/targets/native/index.js +11 -0
  282. package/dist/targets/native/preset.cjs +69 -0
  283. package/dist/targets/native/resolve.d.ts +22 -0
  284. package/dist/targets/native/resolve.js +85 -0
  285. package/dist/targets/native/theme.css +118 -0
  286. package/dist/targets/native/theme.d.ts +117 -0
  287. package/dist/targets/native/theme.js +118 -0
  288. package/package.json +194 -0
  289. package/styles/_primitives.generated.css +284 -0
  290. package/styles/base.css +950 -0
  291. package/styles/themes/rojao.css +107 -0
@@ -0,0 +1,118 @@
1
+ /* AUTO-GERADO por scripts/build-native.ts — não editar à mão. */
2
+
3
+ /* Tema rojao resolvido (hex/rgba) para React Native via NativeWind. */
4
+
5
+ :root {
6
+ --ds-border-control: #737373;
7
+ --ds-border-default: #d6d6d6;
8
+ --ds-border-focus: #0d0d0d;
9
+ --ds-border-strong: #b9b9b9;
10
+ --ds-border-subtle: #ededed;
11
+ --ds-brand-accent: #379c3d;
12
+ --ds-brand-accent-light: #f0ffef;
13
+ --ds-brand-hover: #3c3c3c;
14
+ --ds-brand-on-accent: #ffffff;
15
+ --ds-brand-on-primary: #ffffff;
16
+ --ds-brand-on-secondary: #0d0d0d;
17
+ --ds-brand-primary: #0d0d0d;
18
+ --ds-brand-primary-100: #ededed;
19
+ --ds-brand-primary-200: #d6d6d6;
20
+ --ds-brand-primary-300: #b9b9b9;
21
+ --ds-brand-primary-400: #979797;
22
+ --ds-brand-primary-50: #fafafa;
23
+ --ds-brand-primary-500: #737373;
24
+ --ds-brand-primary-600: #575757;
25
+ --ds-brand-primary-700: #3c3c3c;
26
+ --ds-brand-primary-800: #232323;
27
+ --ds-brand-primary-900: #0d0d0d;
28
+ --ds-brand-secondary: #ffffff;
29
+ --ds-brand-secondary-band: var(--brand-secondary);
30
+ --ds-brand-secondary-surface: var(--brand-secondary);
31
+ --ds-brand-text: #0d0d0d;
32
+ --ds-danger: #f44336;
33
+ --ds-danger-border: #ef9a9a;
34
+ --ds-danger-soft: #ffcdd2;
35
+ --ds-danger-text: #991b1b;
36
+ --ds-icon-default: #232323;
37
+ --ds-info: #2196f3;
38
+ --ds-info-border: #90caf9;
39
+ --ds-info-soft: #bbdefb;
40
+ --ds-info-text: #1e40af;
41
+ --ds-success: #4caf50;
42
+ --ds-success-border: #a5d6a7;
43
+ --ds-success-soft: #c8e6c9;
44
+ --ds-success-text: #1b5e20;
45
+ --ds-surface-default: #ffffff;
46
+ --ds-surface-invert: #0d0d0d;
47
+ --ds-surface-overlay: #0d0d0d;
48
+ --ds-surface-page: #fafafa;
49
+ --ds-surface-raised: #ededed;
50
+ --ds-text-disabled: #979797;
51
+ --ds-text-inverse: #ffffff;
52
+ --ds-text-muted: #575757;
53
+ --ds-text-placeholder: #575757;
54
+ --ds-text-primary: #0d0d0d;
55
+ --ds-text-secondary: #3c3c3c;
56
+ --ds-warning: #ffc107;
57
+ --ds-warning-border: #ffe082;
58
+ --ds-warning-soft: #ffecb3;
59
+ --ds-warning-text: #92400e;
60
+ }
61
+
62
+ .dark {
63
+ --ds-border-control: rgba(255, 255, 255, 0.4);
64
+ --ds-border-default: rgba(255, 255, 255, 0.14);
65
+ --ds-border-focus: #979797;
66
+ --ds-border-strong: rgba(255, 255, 255, 0.22);
67
+ --ds-border-subtle: rgba(255, 255, 255, 0.08);
68
+ --ds-brand-accent: #379c3d;
69
+ --ds-brand-accent-light: #f0ffef;
70
+ --ds-brand-hover: #ededed;
71
+ --ds-brand-on-accent: #ffffff;
72
+ --ds-brand-on-primary: #0d0d0d;
73
+ --ds-brand-on-secondary: #ffffff;
74
+ --ds-brand-primary: #ffffff;
75
+ --ds-brand-primary-100: #ededed;
76
+ --ds-brand-primary-200: #d6d6d6;
77
+ --ds-brand-primary-300: #b9b9b9;
78
+ --ds-brand-primary-400: #979797;
79
+ --ds-brand-primary-50: #fafafa;
80
+ --ds-brand-primary-500: #737373;
81
+ --ds-brand-primary-600: #575757;
82
+ --ds-brand-primary-700: #3c3c3c;
83
+ --ds-brand-primary-800: #232323;
84
+ --ds-brand-primary-900: #0d0d0d;
85
+ --ds-brand-secondary: #0d0d0d;
86
+ --ds-brand-secondary-band: transparent;
87
+ --ds-brand-secondary-surface: var(--surface-page);
88
+ --ds-brand-text: #fafafa;
89
+ --ds-danger: #f44336;
90
+ --ds-danger-border: rgba(244, 67, 54, 0.4);
91
+ --ds-danger-soft: rgba(244, 67, 54, 0.2);
92
+ --ds-danger-text: #ef9a9a;
93
+ --ds-icon-default: #979797;
94
+ --ds-info: #2196f3;
95
+ --ds-info-border: rgba(33, 150, 243, 0.4);
96
+ --ds-info-soft: rgba(33, 150, 243, 0.2);
97
+ --ds-info-text: #90caf9;
98
+ --ds-success: #4caf50;
99
+ --ds-success-border: rgba(76, 175, 80, 0.4);
100
+ --ds-success-soft: rgba(76, 175, 80, 0.2);
101
+ --ds-success-text: #a5d6a7;
102
+ --ds-surface-default: #232323;
103
+ --ds-surface-invert: #fafafa;
104
+ --ds-surface-overlay: #d6d6d6;
105
+ --ds-surface-page: #0d0d0d;
106
+ --ds-surface-raised: #3c3c3c;
107
+ --ds-text-disabled: #575757;
108
+ --ds-text-inverse: #0d0d0d;
109
+ --ds-text-muted: #b9b9b9;
110
+ --ds-text-placeholder: #b9b9b9;
111
+ --ds-text-primary: #fafafa;
112
+ --ds-text-secondary: #d6d6d6;
113
+ --ds-warning: #ffc107;
114
+ --ds-warning-border: rgba(255, 193, 7, 0.4);
115
+ --ds-warning-soft: rgba(255, 193, 7, 0.2);
116
+ --ds-warning-text: #ffe082;
117
+ }
118
+
@@ -0,0 +1,117 @@
1
+ declare const dsTheme: {
2
+ readonly light: {
3
+ readonly "--danger": "#f44336";
4
+ readonly "--danger-soft": "#ffcdd2";
5
+ readonly "--danger-border": "#ef9a9a";
6
+ readonly "--danger-text": "#991b1b";
7
+ readonly "--success": "#4caf50";
8
+ readonly "--success-soft": "#c8e6c9";
9
+ readonly "--success-border": "#a5d6a7";
10
+ readonly "--success-text": "#1b5e20";
11
+ readonly "--warning": "#ffc107";
12
+ readonly "--warning-soft": "#ffecb3";
13
+ readonly "--warning-border": "#ffe082";
14
+ readonly "--warning-text": "#92400e";
15
+ readonly "--info": "#2196f3";
16
+ readonly "--info-soft": "#bbdefb";
17
+ readonly "--info-border": "#90caf9";
18
+ readonly "--info-text": "#1e40af";
19
+ readonly "--brand-primary-50": "#fafafa";
20
+ readonly "--brand-primary-100": "#ededed";
21
+ readonly "--brand-primary-200": "#d6d6d6";
22
+ readonly "--brand-primary-300": "#b9b9b9";
23
+ readonly "--brand-primary-400": "#979797";
24
+ readonly "--brand-primary-500": "#737373";
25
+ readonly "--brand-primary-600": "#575757";
26
+ readonly "--brand-primary-700": "#3c3c3c";
27
+ readonly "--brand-primary-800": "#232323";
28
+ readonly "--brand-primary-900": "#0d0d0d";
29
+ readonly "--brand-primary": "#0d0d0d";
30
+ readonly "--brand-hover": "#3c3c3c";
31
+ readonly "--brand-on-primary": "#ffffff";
32
+ readonly "--brand-secondary": "#ffffff";
33
+ readonly "--brand-on-secondary": "#0d0d0d";
34
+ readonly "--brand-secondary-surface": "var(--brand-secondary)";
35
+ readonly "--brand-secondary-band": "var(--brand-secondary)";
36
+ readonly "--brand-accent": "#379c3d";
37
+ readonly "--brand-accent-light": "#f0ffef";
38
+ readonly "--brand-on-accent": "#ffffff";
39
+ readonly "--surface-page": "#fafafa";
40
+ readonly "--surface-default": "#ffffff";
41
+ readonly "--surface-raised": "#ededed";
42
+ readonly "--surface-overlay": "#0d0d0d";
43
+ readonly "--surface-invert": "#0d0d0d";
44
+ readonly "--border-subtle": "#ededed";
45
+ readonly "--border-default": "#d6d6d6";
46
+ readonly "--border-strong": "#b9b9b9";
47
+ readonly "--border-control": "#737373";
48
+ readonly "--border-focus": "#0d0d0d";
49
+ readonly "--brand-text": "#0d0d0d";
50
+ readonly "--text-primary": "#0d0d0d";
51
+ readonly "--text-secondary": "#3c3c3c";
52
+ readonly "--text-muted": "#575757";
53
+ readonly "--text-disabled": "#979797";
54
+ readonly "--text-inverse": "#ffffff";
55
+ readonly "--text-placeholder": "#575757";
56
+ readonly "--icon-default": "#232323";
57
+ };
58
+ readonly dark: {
59
+ readonly "--danger": "#f44336";
60
+ readonly "--danger-soft": "rgba(244, 67, 54, 0.2)";
61
+ readonly "--danger-border": "rgba(244, 67, 54, 0.4)";
62
+ readonly "--danger-text": "#ef9a9a";
63
+ readonly "--success": "#4caf50";
64
+ readonly "--success-soft": "rgba(76, 175, 80, 0.2)";
65
+ readonly "--success-border": "rgba(76, 175, 80, 0.4)";
66
+ readonly "--success-text": "#a5d6a7";
67
+ readonly "--warning": "#ffc107";
68
+ readonly "--warning-soft": "rgba(255, 193, 7, 0.2)";
69
+ readonly "--warning-border": "rgba(255, 193, 7, 0.4)";
70
+ readonly "--warning-text": "#ffe082";
71
+ readonly "--info": "#2196f3";
72
+ readonly "--info-soft": "rgba(33, 150, 243, 0.2)";
73
+ readonly "--info-border": "rgba(33, 150, 243, 0.4)";
74
+ readonly "--info-text": "#90caf9";
75
+ readonly "--brand-primary-50": "#fafafa";
76
+ readonly "--brand-primary-100": "#ededed";
77
+ readonly "--brand-primary-200": "#d6d6d6";
78
+ readonly "--brand-primary-300": "#b9b9b9";
79
+ readonly "--brand-primary-400": "#979797";
80
+ readonly "--brand-primary-500": "#737373";
81
+ readonly "--brand-primary-600": "#575757";
82
+ readonly "--brand-primary-700": "#3c3c3c";
83
+ readonly "--brand-primary-800": "#232323";
84
+ readonly "--brand-primary-900": "#0d0d0d";
85
+ readonly "--brand-primary": "#ffffff";
86
+ readonly "--brand-hover": "#ededed";
87
+ readonly "--brand-on-primary": "#0d0d0d";
88
+ readonly "--brand-secondary": "#0d0d0d";
89
+ readonly "--brand-on-secondary": "#ffffff";
90
+ readonly "--brand-secondary-surface": "var(--surface-page)";
91
+ readonly "--brand-secondary-band": "transparent";
92
+ readonly "--brand-accent": "#379c3d";
93
+ readonly "--brand-accent-light": "#f0ffef";
94
+ readonly "--brand-on-accent": "#ffffff";
95
+ readonly "--surface-page": "#0d0d0d";
96
+ readonly "--surface-default": "#232323";
97
+ readonly "--surface-raised": "#3c3c3c";
98
+ readonly "--surface-overlay": "#d6d6d6";
99
+ readonly "--surface-invert": "#fafafa";
100
+ readonly "--border-subtle": "rgba(255, 255, 255, 0.08)";
101
+ readonly "--border-default": "rgba(255, 255, 255, 0.14)";
102
+ readonly "--border-strong": "rgba(255, 255, 255, 0.22)";
103
+ readonly "--border-control": "rgba(255, 255, 255, 0.4)";
104
+ readonly "--border-focus": "#979797";
105
+ readonly "--brand-text": "#fafafa";
106
+ readonly "--text-primary": "#fafafa";
107
+ readonly "--text-secondary": "#d6d6d6";
108
+ readonly "--text-muted": "#b9b9b9";
109
+ readonly "--text-disabled": "#575757";
110
+ readonly "--text-inverse": "#0d0d0d";
111
+ readonly "--text-placeholder": "#b9b9b9";
112
+ readonly "--icon-default": "#979797";
113
+ };
114
+ };
115
+ type ThemeMap = Record<string, string>;
116
+
117
+ export { type ThemeMap, dsTheme };
@@ -0,0 +1,118 @@
1
+ import "../../chunk-ORMEWXMH.js";
2
+ const dsTheme = {
3
+ light: {
4
+ "--danger": "#f44336",
5
+ "--danger-soft": "#ffcdd2",
6
+ "--danger-border": "#ef9a9a",
7
+ "--danger-text": "#991b1b",
8
+ "--success": "#4caf50",
9
+ "--success-soft": "#c8e6c9",
10
+ "--success-border": "#a5d6a7",
11
+ "--success-text": "#1b5e20",
12
+ "--warning": "#ffc107",
13
+ "--warning-soft": "#ffecb3",
14
+ "--warning-border": "#ffe082",
15
+ "--warning-text": "#92400e",
16
+ "--info": "#2196f3",
17
+ "--info-soft": "#bbdefb",
18
+ "--info-border": "#90caf9",
19
+ "--info-text": "#1e40af",
20
+ "--brand-primary-50": "#fafafa",
21
+ "--brand-primary-100": "#ededed",
22
+ "--brand-primary-200": "#d6d6d6",
23
+ "--brand-primary-300": "#b9b9b9",
24
+ "--brand-primary-400": "#979797",
25
+ "--brand-primary-500": "#737373",
26
+ "--brand-primary-600": "#575757",
27
+ "--brand-primary-700": "#3c3c3c",
28
+ "--brand-primary-800": "#232323",
29
+ "--brand-primary-900": "#0d0d0d",
30
+ "--brand-primary": "#0d0d0d",
31
+ "--brand-hover": "#3c3c3c",
32
+ "--brand-on-primary": "#ffffff",
33
+ "--brand-secondary": "#ffffff",
34
+ "--brand-on-secondary": "#0d0d0d",
35
+ "--brand-secondary-surface": "var(--brand-secondary)",
36
+ "--brand-secondary-band": "var(--brand-secondary)",
37
+ "--brand-accent": "#379c3d",
38
+ "--brand-accent-light": "#f0ffef",
39
+ "--brand-on-accent": "#ffffff",
40
+ "--surface-page": "#fafafa",
41
+ "--surface-default": "#ffffff",
42
+ "--surface-raised": "#ededed",
43
+ "--surface-overlay": "#0d0d0d",
44
+ "--surface-invert": "#0d0d0d",
45
+ "--border-subtle": "#ededed",
46
+ "--border-default": "#d6d6d6",
47
+ "--border-strong": "#b9b9b9",
48
+ "--border-control": "#737373",
49
+ "--border-focus": "#0d0d0d",
50
+ "--brand-text": "#0d0d0d",
51
+ "--text-primary": "#0d0d0d",
52
+ "--text-secondary": "#3c3c3c",
53
+ "--text-muted": "#575757",
54
+ "--text-disabled": "#979797",
55
+ "--text-inverse": "#ffffff",
56
+ "--text-placeholder": "#575757",
57
+ "--icon-default": "#232323"
58
+ },
59
+ dark: {
60
+ "--danger": "#f44336",
61
+ "--danger-soft": "rgba(244, 67, 54, 0.2)",
62
+ "--danger-border": "rgba(244, 67, 54, 0.4)",
63
+ "--danger-text": "#ef9a9a",
64
+ "--success": "#4caf50",
65
+ "--success-soft": "rgba(76, 175, 80, 0.2)",
66
+ "--success-border": "rgba(76, 175, 80, 0.4)",
67
+ "--success-text": "#a5d6a7",
68
+ "--warning": "#ffc107",
69
+ "--warning-soft": "rgba(255, 193, 7, 0.2)",
70
+ "--warning-border": "rgba(255, 193, 7, 0.4)",
71
+ "--warning-text": "#ffe082",
72
+ "--info": "#2196f3",
73
+ "--info-soft": "rgba(33, 150, 243, 0.2)",
74
+ "--info-border": "rgba(33, 150, 243, 0.4)",
75
+ "--info-text": "#90caf9",
76
+ "--brand-primary-50": "#fafafa",
77
+ "--brand-primary-100": "#ededed",
78
+ "--brand-primary-200": "#d6d6d6",
79
+ "--brand-primary-300": "#b9b9b9",
80
+ "--brand-primary-400": "#979797",
81
+ "--brand-primary-500": "#737373",
82
+ "--brand-primary-600": "#575757",
83
+ "--brand-primary-700": "#3c3c3c",
84
+ "--brand-primary-800": "#232323",
85
+ "--brand-primary-900": "#0d0d0d",
86
+ "--brand-primary": "#ffffff",
87
+ "--brand-hover": "#ededed",
88
+ "--brand-on-primary": "#0d0d0d",
89
+ "--brand-secondary": "#0d0d0d",
90
+ "--brand-on-secondary": "#ffffff",
91
+ "--brand-secondary-surface": "var(--surface-page)",
92
+ "--brand-secondary-band": "transparent",
93
+ "--brand-accent": "#379c3d",
94
+ "--brand-accent-light": "#f0ffef",
95
+ "--brand-on-accent": "#ffffff",
96
+ "--surface-page": "#0d0d0d",
97
+ "--surface-default": "#232323",
98
+ "--surface-raised": "#3c3c3c",
99
+ "--surface-overlay": "#d6d6d6",
100
+ "--surface-invert": "#fafafa",
101
+ "--border-subtle": "rgba(255, 255, 255, 0.08)",
102
+ "--border-default": "rgba(255, 255, 255, 0.14)",
103
+ "--border-strong": "rgba(255, 255, 255, 0.22)",
104
+ "--border-control": "rgba(255, 255, 255, 0.4)",
105
+ "--border-focus": "#979797",
106
+ "--brand-text": "#fafafa",
107
+ "--text-primary": "#fafafa",
108
+ "--text-secondary": "#d6d6d6",
109
+ "--text-muted": "#b9b9b9",
110
+ "--text-disabled": "#575757",
111
+ "--text-inverse": "#0d0d0d",
112
+ "--text-placeholder": "#b9b9b9",
113
+ "--icon-default": "#979797"
114
+ }
115
+ };
116
+ export {
117
+ dsTheme
118
+ };
package/package.json ADDED
@@ -0,0 +1,194 @@
1
+ {
2
+ "name": "@rojaostudio/ds",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "Rojão Design System — componentes React, estilos e alvo React Native. O motor vive em @rojaostudio/ds-core.",
6
+ "license": "MIT",
7
+ "author": "Rojão Studio (https://rojao.studio)",
8
+ "homepage": "https://ds.rojao.ai",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/rojaostudio/ds.git",
12
+ "directory": "packages/ds"
13
+ },
14
+ "bugs": {
15
+ "url": "https://github.com/rojaostudio/ds/issues"
16
+ },
17
+ "keywords": [
18
+ "design-system",
19
+ "design-tokens",
20
+ "theme",
21
+ "tailwind",
22
+ "css-variables",
23
+ "wcag",
24
+ "accessibility",
25
+ "react",
26
+ "oklch",
27
+ "brand"
28
+ ],
29
+ "sideEffects": [
30
+ "**/*.css",
31
+ "./styles/**"
32
+ ],
33
+ "scripts": {
34
+ "build": "pnpm run build:tokens && pnpm run build:themes && pnpm run build:native && tsup",
35
+ "build:tokens": "tsx scripts/build-tokens.ts",
36
+ "build:native": "tsx scripts/build-native.ts",
37
+ "prepack": "pnpm run build",
38
+ "pack:release": "pnpm run build:tokens && pnpm run build:native && pnpm pack",
39
+ "test": "vitest run",
40
+ "test:watch": "vitest",
41
+ "typecheck": "tsc --noEmit",
42
+ "detect": "tsx scripts/detect.ts",
43
+ "validate:themes": "tsx scripts/validate-themes.ts",
44
+ "build:themes": "tsx scripts/build-themes.ts",
45
+ "seed:ds": "tsx scripts/seed-ds.ts",
46
+ "lint": "eslint .",
47
+ "build:brands": "tsx scripts/build-brands.ts && tsx scripts/build-native.ts --brand=taiq"
48
+ },
49
+ "exports": {
50
+ "./styles/base.css": "./styles/base.css",
51
+ "./styles/themes/rojao.css": "./styles/themes/rojao.css",
52
+ "./tokens": {
53
+ "types": "./dist/compat/tokens.d.ts",
54
+ "import": "./dist/compat/tokens.js",
55
+ "default": "./dist/compat/tokens.js"
56
+ },
57
+ "./generate": {
58
+ "types": "./dist/compat/generate.d.ts",
59
+ "import": "./dist/compat/generate.js",
60
+ "default": "./dist/compat/generate.js"
61
+ },
62
+ "./recipes": {
63
+ "types": "./dist/compat/recipes.d.ts",
64
+ "import": "./dist/compat/recipes.js",
65
+ "default": "./dist/compat/recipes.js"
66
+ },
67
+ "./themes": {
68
+ "types": "./dist/compat/themes.d.ts",
69
+ "import": "./dist/compat/themes.js",
70
+ "default": "./dist/compat/themes.js"
71
+ },
72
+ "./native": {
73
+ "types": "./dist/targets/native/index.d.ts",
74
+ "import": "./dist/targets/native/index.js",
75
+ "default": "./dist/targets/native/index.js"
76
+ },
77
+ "./native/preset": "./dist/targets/native/preset.cjs",
78
+ "./native/nativewind-preset": "./dist/targets/native/preset.cjs",
79
+ "./native/theme.css": "./dist/targets/native/theme.css",
80
+ "./native/theme": {
81
+ "types": "./dist/targets/native/theme.d.ts",
82
+ "import": "./dist/targets/native/theme.js",
83
+ "default": "./dist/targets/native/theme.js"
84
+ },
85
+ "./native/tokens": {
86
+ "types": "./dist/targets/native/theme.d.ts",
87
+ "import": "./dist/targets/native/theme.js",
88
+ "default": "./dist/targets/native/theme.js"
89
+ },
90
+ "./native/components": {
91
+ "types": "./dist/targets/native/components/index.d.ts",
92
+ "import": "./dist/targets/native/components/index.js",
93
+ "default": "./dist/targets/native/components/index.js"
94
+ },
95
+ "./native/icons": {
96
+ "types": "./dist/targets/native/icons.d.ts",
97
+ "import": "./dist/targets/native/icons.js",
98
+ "default": "./dist/targets/native/icons.js"
99
+ },
100
+ "./components": {
101
+ "types": "./dist/components/index.d.ts",
102
+ "import": "./dist/components/index.js",
103
+ "default": "./dist/components/index.js"
104
+ },
105
+ "./components/*": {
106
+ "types": "./dist/components/*.d.ts",
107
+ "import": "./dist/components/*.js",
108
+ "default": "./dist/components/*.js"
109
+ },
110
+ "./icons": {
111
+ "types": "./dist/icons/index.d.ts",
112
+ "import": "./dist/icons/index.js",
113
+ "default": "./dist/icons/index.js"
114
+ }
115
+ },
116
+ "files": [
117
+ "LICENSE",
118
+ "README.md",
119
+ "dist",
120
+ "styles",
121
+ "brand"
122
+ ],
123
+ "peerDependencies": {
124
+ "expo-image": ">=1.10",
125
+ "expo-image-picker": ">=15",
126
+ "lucide-react": ">=0.300.0",
127
+ "lucide-react-native": ">=0.300.0",
128
+ "next": ">=15",
129
+ "react": ">=19",
130
+ "react-dom": ">=19",
131
+ "react-image-crop": ">=11",
132
+ "react-international-phone": ">=4",
133
+ "react-native": ">=0.79",
134
+ "react-native-safe-area-context": ">=4",
135
+ "react-native-svg": ">=15",
136
+ "tailwindcss": ">=4"
137
+ },
138
+ "peerDependenciesMeta": {
139
+ "next": {
140
+ "optional": true
141
+ },
142
+ "lucide-react": {
143
+ "optional": true
144
+ },
145
+ "lucide-react-native": {
146
+ "optional": true
147
+ },
148
+ "react-image-crop": {
149
+ "optional": true
150
+ },
151
+ "react-international-phone": {
152
+ "optional": true
153
+ },
154
+ "react-native": {
155
+ "optional": true
156
+ },
157
+ "react-native-svg": {
158
+ "optional": true
159
+ },
160
+ "expo-image": {
161
+ "optional": true
162
+ },
163
+ "expo-image-picker": {
164
+ "optional": true
165
+ },
166
+ "react-native-safe-area-context": {
167
+ "optional": true
168
+ }
169
+ },
170
+ "publishConfig": {
171
+ "registry": "https://registry.npmjs.org",
172
+ "access": "public",
173
+ "provenance": true
174
+ },
175
+ "devDependencies": {
176
+ "@rojao/config": "workspace:*",
177
+ "@supabase/supabase-js": "^2.108.1",
178
+ "@types/node": "^20.19.43",
179
+ "@types/react": "^19",
180
+ "@types/react-dom": "^19",
181
+ "@vitejs/plugin-react": "^6.0.2",
182
+ "eslint": "^9.18.0",
183
+ "next": "^16.2.7",
184
+ "react-image-crop": "^11.0.10",
185
+ "react-international-phone": "^4.8.0",
186
+ "tsx": "^4.21.0",
187
+ "typescript": "^5",
188
+ "vitest": "^4.1.7",
189
+ "tsup": "^8.5.1"
190
+ },
191
+ "dependencies": {
192
+ "@rojaostudio/ds-core": "workspace:*"
193
+ }
194
+ }