@sibipro/sprinkles-native 0.1.8

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 (104) hide show
  1. package/README.md +101 -0
  2. package/dist/components/Avatar.d.ts +9 -0
  3. package/dist/components/Avatar.d.ts.map +1 -0
  4. package/dist/components/Avatar.js +27 -0
  5. package/dist/components/Avatar.js.map +1 -0
  6. package/dist/components/Badge.d.ts +10 -0
  7. package/dist/components/Badge.d.ts.map +1 -0
  8. package/dist/components/Badge.js +26 -0
  9. package/dist/components/Badge.js.map +1 -0
  10. package/dist/components/Banner.d.ts +8 -0
  11. package/dist/components/Banner.d.ts.map +1 -0
  12. package/dist/components/Banner.js +13 -0
  13. package/dist/components/Banner.js.map +1 -0
  14. package/dist/components/Button.d.ts +12 -0
  15. package/dist/components/Button.d.ts.map +1 -0
  16. package/dist/components/Button.js +43 -0
  17. package/dist/components/Button.js.map +1 -0
  18. package/dist/components/Card.d.ts +8 -0
  19. package/dist/components/Card.d.ts.map +1 -0
  20. package/dist/components/Card.js +11 -0
  21. package/dist/components/Card.js.map +1 -0
  22. package/dist/components/Checkbox.d.ts +9 -0
  23. package/dist/components/Checkbox.d.ts.map +1 -0
  24. package/dist/components/Checkbox.js +10 -0
  25. package/dist/components/Checkbox.js.map +1 -0
  26. package/dist/components/Chip.d.ts +8 -0
  27. package/dist/components/Chip.d.ts.map +1 -0
  28. package/dist/components/Chip.js +8 -0
  29. package/dist/components/Chip.js.map +1 -0
  30. package/dist/components/EmptyState.d.ts +11 -0
  31. package/dist/components/EmptyState.d.ts.map +1 -0
  32. package/dist/components/EmptyState.js +8 -0
  33. package/dist/components/EmptyState.js.map +1 -0
  34. package/dist/components/Input.d.ts +25 -0
  35. package/dist/components/Input.d.ts.map +1 -0
  36. package/dist/components/Input.js +28 -0
  37. package/dist/components/Input.js.map +1 -0
  38. package/dist/components/Label.d.ts +6 -0
  39. package/dist/components/Label.d.ts.map +1 -0
  40. package/dist/components/Label.js +7 -0
  41. package/dist/components/Label.js.map +1 -0
  42. package/dist/components/ProgressBar.d.ts +8 -0
  43. package/dist/components/ProgressBar.d.ts.map +1 -0
  44. package/dist/components/ProgressBar.js +8 -0
  45. package/dist/components/ProgressBar.js.map +1 -0
  46. package/dist/components/Separator.d.ts +7 -0
  47. package/dist/components/Separator.d.ts.map +1 -0
  48. package/dist/components/Separator.js +7 -0
  49. package/dist/components/Separator.js.map +1 -0
  50. package/dist/components/Skeleton.d.ts +6 -0
  51. package/dist/components/Skeleton.d.ts.map +1 -0
  52. package/dist/components/Skeleton.js +25 -0
  53. package/dist/components/Skeleton.js.map +1 -0
  54. package/dist/components/Switch.d.ts +7 -0
  55. package/dist/components/Switch.d.ts.map +1 -0
  56. package/dist/components/Switch.js +10 -0
  57. package/dist/components/Switch.js.map +1 -0
  58. package/dist/components/Text.d.ts +12 -0
  59. package/dist/components/Text.d.ts.map +1 -0
  60. package/dist/components/Text.js +27 -0
  61. package/dist/components/Text.js.map +1 -0
  62. package/dist/index.d.ts +34 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +21 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/theming/color-palettes.d.ts +82 -0
  67. package/dist/theming/color-palettes.d.ts.map +1 -0
  68. package/dist/theming/color-palettes.js +82 -0
  69. package/dist/theming/color-palettes.js.map +1 -0
  70. package/dist/theming/types.d.ts +81 -0
  71. package/dist/theming/types.d.ts.map +1 -0
  72. package/dist/theming/types.js +2 -0
  73. package/dist/theming/types.js.map +1 -0
  74. package/dist/utils/cn.d.ts +3 -0
  75. package/dist/utils/cn.d.ts.map +1 -0
  76. package/dist/utils/cn.js +6 -0
  77. package/dist/utils/cn.js.map +1 -0
  78. package/dist/utils/index.d.ts +2 -0
  79. package/dist/utils/index.d.ts.map +1 -0
  80. package/dist/utils/index.js +2 -0
  81. package/dist/utils/index.js.map +1 -0
  82. package/package.json +51 -0
  83. package/src/components/Avatar.tsx +58 -0
  84. package/src/components/Badge.tsx +70 -0
  85. package/src/components/Banner.tsx +34 -0
  86. package/src/components/Button.tsx +96 -0
  87. package/src/components/Card.tsx +28 -0
  88. package/src/components/Checkbox.tsx +43 -0
  89. package/src/components/Chip.tsx +38 -0
  90. package/src/components/EmptyState.tsx +41 -0
  91. package/src/components/Input.tsx +123 -0
  92. package/src/components/Label.tsx +16 -0
  93. package/src/components/ProgressBar.tsx +32 -0
  94. package/src/components/Separator.tsx +25 -0
  95. package/src/components/Skeleton.tsx +38 -0
  96. package/src/components/Switch.tsx +32 -0
  97. package/src/components/Text.tsx +57 -0
  98. package/src/index.ts +52 -0
  99. package/src/styles/global.css +245 -0
  100. package/src/theming/color-palettes.ts +81 -0
  101. package/src/theming/types.ts +82 -0
  102. package/src/types/react-native.d.ts +31 -0
  103. package/src/utils/cn.ts +6 -0
  104. package/src/utils/index.ts +1 -0
@@ -0,0 +1,245 @@
1
+ @import 'tailwindcss';
2
+ @import 'uniwind';
3
+
4
+ @theme {
5
+ /* Brand Colors - Primary UI actions */
6
+ --color-brand-25: #f0f1fd;
7
+ --color-brand-50: #dddff9;
8
+ --color-brand-100: #c1c4ee;
9
+ --color-brand-200: #a2a6e5;
10
+ --color-brand-300: #8388dd;
11
+ --color-brand-400: #646bd4;
12
+ --color-brand-500: #454dcc;
13
+ --color-brand-600: #3a40aa;
14
+ --color-brand-700: #2e3388;
15
+ --color-brand-800: #232766;
16
+ --color-brand-900: #171a44;
17
+
18
+ /* Neutral Colors - Grays and backgrounds */
19
+ --color-neutral-25: #fcfcff;
20
+ --color-neutral-50: #f8f9ff;
21
+ --color-neutral-100: #f1f5f9;
22
+ --color-neutral-200: #e2e8f0;
23
+ --color-neutral-300: #cbd5e1;
24
+ --color-neutral-400: #a9b6c9;
25
+ --color-neutral-500: #64748b;
26
+ --color-neutral-600: #475569;
27
+ --color-neutral-700: #334155;
28
+ --color-neutral-800: #1e293b;
29
+ --color-neutral-900: #0f172a;
30
+
31
+ /* Info Colors - Informative states */
32
+ --color-info-25: #ebf2ff;
33
+ --color-info-50: #d8e6fd;
34
+ --color-info-100: #bed5fc;
35
+ --color-info-200: #9dc0fb;
36
+ --color-info-300: #7cacf9;
37
+ --color-info-400: #5c97f8;
38
+ --color-info-500: #3b82f6;
39
+ --color-info-600: #316ccd;
40
+ --color-info-700: #2757a4;
41
+ --color-info-800: #1d417b;
42
+ --color-info-900: #142b52;
43
+
44
+ /* Success Colors - Success states */
45
+ --color-success-25: #e4f9f2;
46
+ --color-success-50: #d3f4e9;
47
+ --color-success-100: #b5ecda;
48
+ --color-success-200: #90e2c7;
49
+ --color-success-300: #6bd9b4;
50
+ --color-success-400: #46d0a2;
51
+ --color-success-500: #21c68f;
52
+ --color-success-600: #1ca577;
53
+ --color-success-700: #16845f;
54
+ --color-success-800: #106347;
55
+ --color-success-900: #0b4230;
56
+
57
+ /* Warn Colors - Warning states */
58
+ --color-warn-25: #fff7eb;
59
+ --color-warn-50: #fef1db;
60
+ --color-warn-100: #fee7c2;
61
+ --color-warn-200: #ffe1b1;
62
+ --color-warn-300: #ffd797;
63
+ --color-warn-400: #ffcd7d;
64
+ --color-warn-500: #ffc363;
65
+ --color-warn-600: #d29d49;
66
+ --color-warn-700: #806131;
67
+ --color-warn-800: #6c4b15;
68
+ --color-warn-900: #554121;
69
+
70
+ /* Danger Colors - Error and danger states */
71
+ --color-danger-25: #ffe7f1;
72
+ --color-danger-50: #fbd5e5;
73
+ --color-danger-100: #f9b9d4;
74
+ --color-danger-200: #f696be;
75
+ --color-danger-300: #f374a9;
76
+ --color-danger-400: #f05193;
77
+ --color-danger-500: #ef3f89;
78
+ --color-danger-600: #cf4880;
79
+ --color-danger-700: #a1285b;
80
+ --color-danger-800: #791e44;
81
+ --color-danger-900: #51142d;
82
+
83
+ /* Font Families */
84
+ --font-sans: NunitoSans_400Regular;
85
+ --font-sans-regular: NunitoSans_400Regular;
86
+ --font-sans-semibold: NunitoSans_600SemiBold;
87
+ --font-sans-bold: NunitoSans_700Bold;
88
+ --font-mono: SpaceMono;
89
+ }
90
+
91
+ @layer theme {
92
+ :root {
93
+ @variant light {
94
+ /* Background */
95
+ --color-background: #ffffff;
96
+ --color-background-secondary: #f8f9ff;
97
+ --color-background-tertiary: #f1f5f9;
98
+ --color-background-quaternary: #e2e8f0;
99
+
100
+ /* Foreground (text) */
101
+ --color-foreground: #334155;
102
+ --color-foreground-heading: #0f172a;
103
+ --color-foreground-label: #64748b;
104
+
105
+ /* Border */
106
+ --color-border: #cbd5e1;
107
+ --color-border-alt: #f1f5f9;
108
+ --color-border-secondary: #e2e8f0;
109
+ --color-border-tertiary: #f1f5f9;
110
+
111
+ /* Link */
112
+ --color-link: #454dcc;
113
+
114
+ /* Ring (focus) */
115
+ --color-ring: #646bd4;
116
+
117
+ /* Shadow */
118
+ --color-shadow: #0f172a;
119
+
120
+ /* Outline */
121
+ --color-outline: #cbd5e1;
122
+
123
+ /* Accent */
124
+ --color-accent: #f8f9ff;
125
+ --color-accent-foreground: #334155;
126
+
127
+ /* Button - Primary */
128
+ --color-button-primary: #454dcc;
129
+ --color-button-primary-foreground: #ffffff;
130
+ --color-button-primary-hover: #3a40aa;
131
+
132
+ /* Button - Secondary */
133
+ --color-button-secondary: #ffffff;
134
+ --color-button-secondary-foreground: #475569;
135
+ --color-button-secondary-hover: #f8f9ff;
136
+
137
+ /* Button - Tertiary */
138
+ --color-button-tertiary-foreground: #475569;
139
+ --color-button-tertiary-hover: #f8f9ff;
140
+
141
+ /* Popover */
142
+ --color-popover: #ffffff;
143
+ --color-popover-foreground: #334155;
144
+
145
+ /* Tooltip */
146
+ --color-tooltip: #171a44;
147
+ --color-tooltip-foreground: #ffffff;
148
+
149
+ /* Toast */
150
+ --color-toast: #171a44;
151
+ --color-toast-foreground: #ffffff;
152
+ --color-toast-danger: #cf4880;
153
+ --color-toast-danger-foreground: #ffffff;
154
+
155
+ /* Actionbar */
156
+ --color-actionbar: #0f172a;
157
+ --color-actionbar-foreground: #ffffff;
158
+
159
+ /* Dialog */
160
+ --color-dialog: #ffffff;
161
+ --color-dialog-foreground: #334155;
162
+ --color-dialog-backdrop: #1e293b66;
163
+
164
+ /* Card */
165
+ --color-card-shadow-from: #fcfcff;
166
+ --color-card-shadow-to: #334155;
167
+ }
168
+
169
+ @variant dark {
170
+ /* Backgrounds */
171
+ --color-background: #0f172a;
172
+ --color-background-secondary: #1e293b;
173
+ --color-background-tertiary: #334155;
174
+ --color-background-quaternary: #475569;
175
+
176
+ /* Foreground (text) */
177
+ --color-foreground: #e2e8f0;
178
+ --color-foreground-heading: #f8f9ff;
179
+ --color-foreground-label: #a9b6c9;
180
+
181
+ /* Border */
182
+ --color-border: #475569;
183
+ --color-border-alt: #1e293b;
184
+ --color-border-secondary: #334155;
185
+ --color-border-tertiary: #1e293b;
186
+
187
+ /* Link */
188
+ --color-link: #8388dd;
189
+
190
+ /* Ring (focus) */
191
+ --color-ring: #8388dd;
192
+
193
+ /* Shadow */
194
+ --color-shadow: #f8f9ff;
195
+
196
+ /* Outline */
197
+ --color-outline: #475569;
198
+
199
+ /* Accent */
200
+ --color-accent: #1e293b;
201
+ --color-accent-foreground: #e2e8f0;
202
+
203
+ /* Button - Primary */
204
+ --color-button-primary: #646bd4;
205
+ --color-button-primary-foreground: #ffffff;
206
+ --color-button-primary-hover: #8388dd;
207
+
208
+ /* Button - Secondary */
209
+ --color-button-secondary: #1e293b;
210
+ --color-button-secondary-foreground: #cbd5e1;
211
+ --color-button-secondary-hover: #334155;
212
+
213
+ /* Button - Tertiary */
214
+ --color-button-tertiary-foreground: #cbd5e1;
215
+ --color-button-tertiary-hover: #334155;
216
+
217
+ /* Popover */
218
+ --color-popover: #1e293b;
219
+ --color-popover-foreground: #e2e8f0;
220
+
221
+ /* Tooltip */
222
+ --color-tooltip: #ffffff;
223
+ --color-tooltip-foreground: #0f172a;
224
+
225
+ /* Toast */
226
+ --color-toast: #e2e8f0;
227
+ --color-toast-foreground: #0f172a;
228
+ --color-toast-danger: #f696be;
229
+ --color-toast-danger-foreground: #0f172a;
230
+
231
+ /* Actionbar */
232
+ --color-actionbar: #ffffff;
233
+ --color-actionbar-foreground: #0f172a;
234
+
235
+ /* Dialog */
236
+ --color-dialog: #1e293b;
237
+ --color-dialog-foreground: #e2e8f0;
238
+ --color-dialog-backdrop: #0f172a99;
239
+
240
+ /* Card */
241
+ --color-card-shadow-from: #0f172a;
242
+ --color-card-shadow-to: #e2e8f0;
243
+ }
244
+ }
245
+ }
@@ -0,0 +1,81 @@
1
+ export const palettes = {
2
+ white: '#ffffff',
3
+ neutral: {
4
+ 25: '#fcfcff',
5
+ 50: '#f8f9ff',
6
+ 100: '#f1f5f9',
7
+ 200: '#e2e8f0',
8
+ 300: '#cbd5e1',
9
+ 400: '#a9b6c9',
10
+ 500: '#64748b',
11
+ 600: '#475569',
12
+ 700: '#334155',
13
+ 800: '#1e293b',
14
+ 900: '#0f172a',
15
+ },
16
+ purple: {
17
+ 25: '#f0f1fd',
18
+ 50: '#dddff9',
19
+ 100: '#c1c4ee',
20
+ 200: '#a2a6e5',
21
+ 300: '#8388dd',
22
+ 400: '#646bd4',
23
+ 500: '#454dcc',
24
+ 600: '#3a40aa',
25
+ 700: '#2e3388',
26
+ 800: '#232766',
27
+ 900: '#171a44',
28
+ },
29
+ magenta: {
30
+ 25: '#ffe7f1',
31
+ 50: '#fbd5e5',
32
+ 100: '#f9b9d4',
33
+ 200: '#f696be',
34
+ 300: '#f374a9',
35
+ 400: '#f05193',
36
+ 500: '#ef3f89',
37
+ 600: '#cf4880',
38
+ 700: '#a1285b',
39
+ 800: '#791e44',
40
+ 900: '#51142d',
41
+ },
42
+ emerald: {
43
+ 25: '#e4f9f2',
44
+ 50: '#d3f4e9',
45
+ 100: '#b5ecda',
46
+ 200: '#90e2c7',
47
+ 300: '#6bd9b4',
48
+ 400: '#46d0a2',
49
+ 500: '#21c68f',
50
+ 600: '#1ca577',
51
+ 700: '#16845f',
52
+ 800: '#106347',
53
+ 900: '#0b4230',
54
+ },
55
+ amber: {
56
+ 25: '#fff7eb',
57
+ 50: '#fef1db',
58
+ 100: '#fee7c2',
59
+ 200: '#ffe1b1',
60
+ 300: '#ffd797',
61
+ 400: '#ffcd7d',
62
+ 500: '#ffc363',
63
+ 600: '#D29D49',
64
+ 700: '#806131',
65
+ 800: '#6C4B15',
66
+ 900: '#554121',
67
+ },
68
+ blue: {
69
+ 25: '#ebf2ff',
70
+ 50: '#d8e6fd',
71
+ 100: '#bed5fc',
72
+ 200: '#9dc0fb',
73
+ 300: '#7cacf9',
74
+ 400: '#5c97f8',
75
+ 500: '#3b82f6',
76
+ 600: '#316ccd',
77
+ 700: '#2757a4',
78
+ 800: '#1d417b',
79
+ 900: '#142b52',
80
+ },
81
+ };
@@ -0,0 +1,82 @@
1
+ export interface SprinklesColorPalette {
2
+ DEFAULT: string;
3
+ background: {
4
+ DEFAULT: string;
5
+ hover: string;
6
+ alt: string;
7
+ };
8
+ foreground: {
9
+ DEFAULT: string;
10
+ heading: string;
11
+ label: string;
12
+ inverted: string;
13
+ };
14
+ outline: string;
15
+ }
16
+
17
+ export interface SprinklesTheme {
18
+ background: {
19
+ DEFAULT: string;
20
+ secondary: string;
21
+ tertiary: string;
22
+ quaternary: string;
23
+ };
24
+ foreground: {
25
+ DEFAULT: string;
26
+ heading: string;
27
+ label: string;
28
+ };
29
+ border: {
30
+ DEFAULT: string;
31
+ alt: string;
32
+ secondary: string;
33
+ tertiary: string;
34
+ };
35
+ popover: {
36
+ DEFAULT: string;
37
+ foreground: string;
38
+ };
39
+ tooltip: {
40
+ DEFAULT: string;
41
+ foreground: string;
42
+ };
43
+ toast: {
44
+ DEFAULT: string;
45
+ foreground: string;
46
+ danger: {
47
+ DEFAULT: string;
48
+ foreground: string;
49
+ };
50
+ };
51
+ actionbar: {
52
+ DEFAULT: string;
53
+ foreground: string;
54
+ };
55
+ dialog: {
56
+ DEFAULT: string;
57
+ foreground: string;
58
+ backdrop: string;
59
+ };
60
+ ring: string;
61
+ shadow: string;
62
+ outline: string;
63
+ accent: {
64
+ DEFAULT: string;
65
+ foreground: string;
66
+ };
67
+ primary: SprinklesColorPalette;
68
+ brand: SprinklesColorPalette;
69
+ success: SprinklesColorPalette;
70
+ info: SprinklesColorPalette;
71
+ warn: SprinklesColorPalette;
72
+ danger: SprinklesColorPalette;
73
+ stock: {
74
+ available: string;
75
+ substitution: string;
76
+ unavailable: string;
77
+ unknown: string;
78
+ };
79
+ }
80
+
81
+ export const TONES = [25, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900] as const;
82
+ export type Tone = (typeof TONES)[number];
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Augment React Native component props with className support.
3
+ * At build time, uniwind resolves className to style objects via its metro plugin.
4
+ * This declaration ensures TypeScript accepts className on RN primitives
5
+ * even when building this library without a metro/uniwind context.
6
+ */
7
+ import 'react-native';
8
+
9
+ declare module 'react-native' {
10
+ interface ViewProps {
11
+ className?: string;
12
+ }
13
+ interface TextProps {
14
+ className?: string;
15
+ }
16
+ interface TextInputProps {
17
+ className?: string;
18
+ }
19
+ interface PressableProps {
20
+ className?: string | ((state: { pressed: boolean }) => string);
21
+ }
22
+ interface ImageProps {
23
+ className?: string;
24
+ }
25
+ interface ScrollViewProps {
26
+ className?: string;
27
+ }
28
+ interface FlatListProps<ItemT> {
29
+ className?: string;
30
+ }
31
+ }
@@ -0,0 +1,6 @@
1
+ import { clsx, type ClassValue } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs));
6
+ }
@@ -0,0 +1 @@
1
+ export { cn } from './cn';