@rojaostudio/ds 1.0.0 → 1.0.2

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 (134) hide show
  1. package/dist/components/accordion.js +43 -37
  2. package/dist/components/alert.js +35 -28
  3. package/dist/components/avatar.js +41 -34
  4. package/dist/components/badge.js +21 -14
  5. package/dist/components/blocker-card.js +11 -2
  6. package/dist/components/bottom-sheet.js +60 -53
  7. package/dist/components/breadcrumb.js +32 -22
  8. package/dist/components/button.js +18 -11
  9. package/dist/components/card.js +24 -9
  10. package/dist/components/chat-bubble.js +6 -5
  11. package/dist/components/checkbox.js +61 -48
  12. package/dist/components/chip-input.js +98 -81
  13. package/dist/components/chips.js +36 -29
  14. package/dist/components/choice-card.js +48 -42
  15. package/dist/components/choice-carousel.js +79 -74
  16. package/dist/components/choice-preview-card.js +17 -6
  17. package/dist/components/color-input.js +41 -35
  18. package/dist/components/combobox.js +97 -75
  19. package/dist/components/context-menu.js +17 -13
  20. package/dist/components/copilot-hint.js +40 -31
  21. package/dist/components/copy-field.js +8 -5
  22. package/dist/components/currency-input.js +40 -32
  23. package/dist/components/danger-zone.js +19 -9
  24. package/dist/components/data-table-header.js +185 -135
  25. package/dist/components/date-picker.js +114 -95
  26. package/dist/components/divider.js +11 -8
  27. package/dist/components/drawer.js +40 -28
  28. package/dist/components/dropzone.js +23 -20
  29. package/dist/components/empty-state.js +26 -23
  30. package/dist/components/fab.js +38 -26
  31. package/dist/components/filter-chip.js +20 -16
  32. package/dist/components/floating-stepper.js +42 -32
  33. package/dist/components/form-card-header.js +9 -1
  34. package/dist/components/icon-button.js +19 -13
  35. package/dist/components/image-crop-modal.js +69 -48
  36. package/dist/components/image-upload.js +172 -128
  37. package/dist/components/input.js +90 -62
  38. package/dist/components/insight-card.js +12 -1
  39. package/dist/components/label.js +12 -7
  40. package/dist/components/media-tile.js +11 -8
  41. package/dist/components/menu.js +28 -25
  42. package/dist/components/modal.js +43 -28
  43. package/dist/components/notice.js +34 -16
  44. package/dist/components/option-tile.js +55 -49
  45. package/dist/components/page-shell.js +13 -6
  46. package/dist/components/page-skeleton.js +32 -2
  47. package/dist/components/page-tabs.js +39 -26
  48. package/dist/components/pagination.js +38 -33
  49. package/dist/components/paywall-banner.js +19 -3
  50. package/dist/components/paywall.js +18 -8
  51. package/dist/components/phone-frame.js +5 -4
  52. package/dist/components/phone-input.js +50 -31
  53. package/dist/components/pix-icon.js +11 -6
  54. package/dist/components/popover.js +27 -23
  55. package/dist/components/pricing-card.js +16 -1
  56. package/dist/components/qr-display.js +16 -11
  57. package/dist/components/radio.js +73 -56
  58. package/dist/components/row-actions.js +61 -53
  59. package/dist/components/saving-bar-context.js +35 -29
  60. package/dist/components/saving-bar.js +36 -33
  61. package/dist/components/search.js +49 -44
  62. package/dist/components/section-card.js +43 -35
  63. package/dist/components/section-header.js +11 -1
  64. package/dist/components/select.js +83 -62
  65. package/dist/components/selectable-card.js +10 -3
  66. package/dist/components/setting-row.js +11 -1
  67. package/dist/components/settings-list.js +9 -5
  68. package/dist/components/skeleton.js +6 -5
  69. package/dist/components/slider.js +52 -38
  70. package/dist/components/spinner.js +18 -12
  71. package/dist/components/step-progress.js +11 -10
  72. package/dist/components/summary-bar.js +33 -28
  73. package/dist/components/table.js +20 -15
  74. package/dist/components/textarea.js +40 -24
  75. package/dist/components/themed.d.ts +1 -1
  76. package/dist/components/themed.js +2 -1
  77. package/dist/components/time-picker.js +117 -97
  78. package/dist/components/toaster.js +80 -74
  79. package/dist/components/toggle-card-compact.js +79 -71
  80. package/dist/components/toggle-card.js +61 -53
  81. package/dist/components/toggle-group.js +35 -29
  82. package/dist/components/toggle.js +46 -36
  83. package/dist/components/tooltip.js +30 -25
  84. package/dist/components/typing-indicator.js +10 -7
  85. package/dist/targets/native/components/accordion.js +31 -25
  86. package/dist/targets/native/components/alert.js +22 -16
  87. package/dist/targets/native/components/avatar.js +36 -29
  88. package/dist/targets/native/components/badge.js +4 -3
  89. package/dist/targets/native/components/button.js +11 -4
  90. package/dist/targets/native/components/card.js +2 -1
  91. package/dist/targets/native/components/checkbox.js +18 -15
  92. package/dist/targets/native/components/chips.js +19 -16
  93. package/dist/targets/native/components/choice-card.js +29 -23
  94. package/dist/targets/native/components/context-menu.js +13 -9
  95. package/dist/targets/native/components/currency-input.js +28 -25
  96. package/dist/targets/native/components/danger-zone.js +10 -4
  97. package/dist/targets/native/components/date-picker.js +86 -70
  98. package/dist/targets/native/components/divider.js +3 -2
  99. package/dist/targets/native/components/empty-state.js +6 -1
  100. package/dist/targets/native/components/fab.js +32 -26
  101. package/dist/targets/native/components/filter-chip.js +9 -8
  102. package/dist/targets/native/components/form-field.js +20 -10
  103. package/dist/targets/native/components/form-screen.js +50 -45
  104. package/dist/targets/native/components/google-icon.js +31 -25
  105. package/dist/targets/native/components/icon-button.js +6 -4
  106. package/dist/targets/native/components/icon.js +2 -1
  107. package/dist/targets/native/components/image-upload.js +59 -50
  108. package/dist/targets/native/components/input.js +41 -34
  109. package/dist/targets/native/components/list-item.js +29 -23
  110. package/dist/targets/native/components/menu.js +12 -10
  111. package/dist/targets/native/components/modal.js +41 -32
  112. package/dist/targets/native/components/paywall-banner.js +13 -4
  113. package/dist/targets/native/components/paywall.js +11 -1
  114. package/dist/targets/native/components/radio.js +19 -16
  115. package/dist/targets/native/components/search.js +41 -38
  116. package/dist/targets/native/components/select.js +71 -63
  117. package/dist/targets/native/components/sheet.js +36 -30
  118. package/dist/targets/native/components/skeleton.js +6 -5
  119. package/dist/targets/native/components/slider.js +51 -43
  120. package/dist/targets/native/components/spinner.js +2 -1
  121. package/dist/targets/native/components/stepper.js +14 -9
  122. package/dist/targets/native/components/switch.js +15 -14
  123. package/dist/targets/native/components/text.js +2 -1
  124. package/dist/targets/native/components/textarea.js +2 -1
  125. package/dist/targets/native/components/theme.js +2 -1
  126. package/dist/targets/native/components/toaster.js +24 -21
  127. package/dist/targets/native/index.d.ts +1 -1
  128. package/dist/targets/native/index.js +1 -3
  129. package/package.json +190 -194
  130. package/styles/base.css +3 -3
  131. package/brand/rojao-black-on-white.png +0 -0
  132. package/brand/rojao-black.png +0 -0
  133. package/brand/rojao-white-on-black.png +0 -0
  134. package/brand/rojao-white.png +0 -0
package/package.json CHANGED
@@ -1,194 +1,190 @@
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
- }
1
+ {
2
+ "name": "@rojaostudio/ds",
3
+ "version": "1.0.2",
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
+ "exports": {
34
+ "./styles/base.css": "./styles/base.css",
35
+ "./styles/themes/rojao.css": "./styles/themes/rojao.css",
36
+ "./tokens": {
37
+ "types": "./dist/compat/tokens.d.ts",
38
+ "import": "./dist/compat/tokens.js",
39
+ "default": "./dist/compat/tokens.js"
40
+ },
41
+ "./generate": {
42
+ "types": "./dist/compat/generate.d.ts",
43
+ "import": "./dist/compat/generate.js",
44
+ "default": "./dist/compat/generate.js"
45
+ },
46
+ "./recipes": {
47
+ "types": "./dist/compat/recipes.d.ts",
48
+ "import": "./dist/compat/recipes.js",
49
+ "default": "./dist/compat/recipes.js"
50
+ },
51
+ "./themes": {
52
+ "types": "./dist/compat/themes.d.ts",
53
+ "import": "./dist/compat/themes.js",
54
+ "default": "./dist/compat/themes.js"
55
+ },
56
+ "./native": {
57
+ "types": "./dist/targets/native/index.d.ts",
58
+ "import": "./dist/targets/native/index.js",
59
+ "default": "./dist/targets/native/index.js"
60
+ },
61
+ "./native/preset": "./dist/targets/native/preset.cjs",
62
+ "./native/nativewind-preset": "./dist/targets/native/preset.cjs",
63
+ "./native/theme.css": "./dist/targets/native/theme.css",
64
+ "./native/theme": {
65
+ "types": "./dist/targets/native/theme.d.ts",
66
+ "import": "./dist/targets/native/theme.js",
67
+ "default": "./dist/targets/native/theme.js"
68
+ },
69
+ "./native/tokens": {
70
+ "types": "./dist/targets/native/theme.d.ts",
71
+ "import": "./dist/targets/native/theme.js",
72
+ "default": "./dist/targets/native/theme.js"
73
+ },
74
+ "./native/components": {
75
+ "types": "./dist/targets/native/components/index.d.ts",
76
+ "import": "./dist/targets/native/components/index.js",
77
+ "default": "./dist/targets/native/components/index.js"
78
+ },
79
+ "./native/icons": {
80
+ "types": "./dist/targets/native/icons.d.ts",
81
+ "import": "./dist/targets/native/icons.js",
82
+ "default": "./dist/targets/native/icons.js"
83
+ },
84
+ "./components": {
85
+ "types": "./dist/components/index.d.ts",
86
+ "import": "./dist/components/index.js",
87
+ "default": "./dist/components/index.js"
88
+ },
89
+ "./components/*": {
90
+ "types": "./dist/components/*.d.ts",
91
+ "import": "./dist/components/*.js",
92
+ "default": "./dist/components/*.js"
93
+ },
94
+ "./icons": {
95
+ "types": "./dist/icons/index.d.ts",
96
+ "import": "./dist/icons/index.js",
97
+ "default": "./dist/icons/index.js"
98
+ }
99
+ },
100
+ "files": [
101
+ "LICENSE",
102
+ "README.md",
103
+ "dist",
104
+ "styles"
105
+ ],
106
+ "peerDependencies": {
107
+ "expo-image": ">=1.10",
108
+ "expo-image-picker": ">=15",
109
+ "lucide-react": ">=0.300.0",
110
+ "lucide-react-native": ">=0.300.0",
111
+ "next": ">=15",
112
+ "react": ">=19",
113
+ "react-dom": ">=19",
114
+ "react-image-crop": ">=11",
115
+ "react-international-phone": ">=4",
116
+ "react-native": ">=0.79",
117
+ "react-native-safe-area-context": ">=4",
118
+ "react-native-svg": ">=15",
119
+ "tailwindcss": ">=4"
120
+ },
121
+ "peerDependenciesMeta": {
122
+ "next": {
123
+ "optional": true
124
+ },
125
+ "lucide-react": {
126
+ "optional": true
127
+ },
128
+ "lucide-react-native": {
129
+ "optional": true
130
+ },
131
+ "react-image-crop": {
132
+ "optional": true
133
+ },
134
+ "react-international-phone": {
135
+ "optional": true
136
+ },
137
+ "react-native": {
138
+ "optional": true
139
+ },
140
+ "react-native-svg": {
141
+ "optional": true
142
+ },
143
+ "expo-image": {
144
+ "optional": true
145
+ },
146
+ "expo-image-picker": {
147
+ "optional": true
148
+ },
149
+ "react-native-safe-area-context": {
150
+ "optional": true
151
+ }
152
+ },
153
+ "publishConfig": {
154
+ "registry": "https://registry.npmjs.org",
155
+ "access": "public",
156
+ "provenance": true
157
+ },
158
+ "devDependencies": {
159
+ "@types/node": "^20.19.43",
160
+ "@types/react": "^19",
161
+ "@types/react-dom": "^19",
162
+ "@vitejs/plugin-react": "^6.0.2",
163
+ "eslint": "^9.18.0",
164
+ "next": "^16.2.7",
165
+ "react-image-crop": "^11.0.10",
166
+ "react-international-phone": "^4.8.0",
167
+ "tsx": "^4.21.0",
168
+ "typescript": "^5",
169
+ "vitest": "^4.1.7",
170
+ "tsup": "^8.5.1",
171
+ "@rojao/config": "0.0.0"
172
+ },
173
+ "dependencies": {
174
+ "@rojaostudio/ds-core": "1.0.0"
175
+ },
176
+ "scripts": {
177
+ "build": "pnpm run build:tokens && pnpm run build:themes && pnpm run build:native && tsup",
178
+ "build:tokens": "tsx scripts/build-tokens.ts",
179
+ "build:native": "tsx scripts/build-native.ts",
180
+ "pack:release": "pnpm run build:tokens && pnpm run build:native && pnpm pack",
181
+ "test": "vitest run",
182
+ "test:watch": "vitest",
183
+ "typecheck": "tsc --noEmit",
184
+ "detect": "tsx scripts/detect.ts",
185
+ "validate:themes": "tsx scripts/validate-themes.ts",
186
+ "build:themes": "tsx scripts/build-themes.ts",
187
+ "lint": "eslint .",
188
+ "build:brands": "tsx scripts/build-brands.ts"
189
+ }
190
+ }
package/styles/base.css CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  Then either override semantic vars in :root, or import a brand
9
9
  theme that already references primitives:
10
- @import "@rojaostudio/ds/styles/themes/taiq.css";
10
+ @import "@rojaostudio/ds/styles/themes/rojao.css";
11
11
 
12
12
  Primitives (--color-cream-900, --color-cobalt-700, etc) come from
13
13
  _primitives.generated.css, which is built from tokens/index.ts.
@@ -270,7 +270,7 @@
270
270
  *
271
271
  * Cada componente tem seus tokens definidos aqui com valores semânticos como defaults.
272
272
  * Os themes (styles/themes/*.css) sobrescrevem APENAS os tokens cujo comportamento
273
- * de marca desvia do semântico (ex: taiq dark usa zinc-100, não --brand-primary).
273
+ * de marca desvia do semântico (ex.: um dark que usa zinc-100, não --brand-primary).
274
274
  * Nunca referenciar primitivos diretamente aqui — sempre via vars semânticas.
275
275
  */
276
276
 
@@ -375,7 +375,7 @@
375
375
  MESMA FAMÍLIA visual do ChoiceCard (os dois single-choice): casca idle suave
376
376
  (border-default, hover border-strong) e selecionado = fill SÓLIDO, derivado dos
377
377
  tokens SEMÂNTICOS de seleção (--selection-fill-active/--selection-on-fill-active) —
378
- temas que sobrescrevem a camada de seleção (ex. taiq dark → zinc-100) propagam pra
378
+ temas que sobrescrevem a camada de seleção (ex.: um dark → zinc-100) propagam pra
379
379
  cá sem redeclarar cada token de componente. Baixa visão: a seleção é distinguível
380
380
  por MAIS que cor (fill sólido de alto contraste + check redundante — o check
381
381
  inverte: badge on-fill, glifo fill). Todo conteúdo sobre o fill ativo usa o par
Binary file
Binary file
Binary file
Binary file