custom-mobile-ui 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Fonts-Black-U4YX6GHD.ttf +0 -0
- package/dist/Fonts-Bold-QAA2AGZS.ttf +0 -0
- package/dist/Fonts-ExtraBold-OVZKTNJI.ttf +0 -0
- package/dist/Fonts-Light-RMQAEPUP.ttf +0 -0
- package/dist/Fonts-Medium-UUWQX4EV.ttf +0 -0
- package/dist/Fonts-Regular-JNHL4IDV.ttf +0 -0
- package/dist/PopupMenuExample-DAAku8nG.d.mts +11 -0
- package/dist/PopupMenuExample-DAAku8nG.d.ts +11 -0
- package/dist/avatarF1-C47EE65Y.png +0 -0
- package/dist/avatarF2-TZPKSMDG.png +0 -0
- package/dist/avatarF3-OSDX6E7J.png +0 -0
- package/dist/avatarF4-CASWRGNJ.png +0 -0
- package/dist/avatarM1-3XV4KE4H.png +0 -0
- package/dist/avatarM2-ZMN26Y2Y.png +0 -0
- package/dist/avatarM3-XIDLYITU.png +0 -0
- package/dist/avatarM4-DYW5DSZC.png +0 -0
- package/dist/avatarM5-YP66OPXT.png +0 -0
- package/dist/components.d.mts +3286 -0
- package/dist/components.d.ts +3286 -0
- package/dist/components.js +21401 -0
- package/dist/components.mjs +21246 -0
- package/dist/config.d.mts +7 -0
- package/dist/config.d.ts +7 -0
- package/dist/config.js +213 -0
- package/dist/config.mjs +210 -0
- package/dist/context.d.mts +11 -0
- package/dist/context.d.ts +11 -0
- package/dist/context.js +150 -0
- package/dist/context.mjs +148 -0
- package/dist/examples.d.mts +30 -0
- package/dist/examples.d.ts +30 -0
- package/dist/examples.js +30785 -0
- package/dist/examples.mjs +30748 -0
- package/dist/hooks.d.mts +15 -0
- package/dist/hooks.d.ts +15 -0
- package/dist/hooks.js +750 -0
- package/dist/hooks.mjs +739 -0
- package/dist/icAppleNegative-E3OORB4A.png +0 -0
- package/dist/icAppleOriginal-M7FOSDZ4.png +0 -0
- package/dist/icBlueskyNegative-QXHPLARU.png +0 -0
- package/dist/icBlueskyOriginal-D2GX35RV.png +0 -0
- package/dist/icDiscordNegative-EWGZJJ27.png +0 -0
- package/dist/icDiscordOriginal-5ODPKZ6S.png +0 -0
- package/dist/icDribbbleNegative-GOLJS6SO.png +0 -0
- package/dist/icDribbbleOriginal-ONQLW62I.png +0 -0
- package/dist/icError404-Z6PQK64J.png +0 -0
- package/dist/icFacebookNegative-DIFRSSJJ.png +0 -0
- package/dist/icFacebookOriginal-PK7CGUNB.png +0 -0
- package/dist/icFigmaNegative-X6P3DVCQ.png +0 -0
- package/dist/icFigmaOriginal-VGD7LQVQ.png +0 -0
- package/dist/icGithubNegative-G7XH6J7V.png +0 -0
- package/dist/icGithubOriginal-BOXVXICL.png +0 -0
- package/dist/icGoogleNegative-UFNCEWM7.png +0 -0
- package/dist/icGoogleOriginal-WCDLPRSH.png +0 -0
- package/dist/icInstagramNegative-47CG4IHG.png +0 -0
- package/dist/icInstagramOriginal-SGRJTPEH.png +0 -0
- package/dist/icLinkedInNegative-4EHL223U.png +0 -0
- package/dist/icLinkedInOriginal-CQXTAW56.png +0 -0
- package/dist/icMediumNegative-YMS7U46C.png +0 -0
- package/dist/icMediumOriginal-TRTNJBN4.png +0 -0
- package/dist/icMessengerNegative-SIFKBM2Y.png +0 -0
- package/dist/icMessengerOriginal-PNN2SB3Z.png +0 -0
- package/dist/icNoData-JQB7KCKJ.png +0 -0
- package/dist/icPinterestNegative-LPDQYRD3.png +0 -0
- package/dist/icPinterestOriginal-7AWYJQBQ.png +0 -0
- package/dist/icRedditNegative-BBV3R7UA.png +0 -0
- package/dist/icRedditOriginal-BIKS3S2I.png +0 -0
- package/dist/icRestriction-JFCJAQ5L.png +0 -0
- package/dist/icSadMen-6HAFJHIQ.png +0 -0
- package/dist/icSignalNegative-DVBANSGJ.png +0 -0
- package/dist/icSignalOriginal-FQEXGCKX.png +0 -0
- package/dist/icSnapchatNegative-VQFVKRPC.png +0 -0
- package/dist/icSnapchatOriginal-ZK4T4CLL.png +0 -0
- package/dist/icSpotifyNegative-UGDBMFNS.png +0 -0
- package/dist/icSpotifyOriginal-ZFNO4BJO.png +0 -0
- package/dist/icTelegramNegative-GDSFFYME.png +0 -0
- package/dist/icTelegramOriginal-DMTCZCGP.png +0 -0
- package/dist/icThreadsNegative-4NIM4AOP.png +0 -0
- package/dist/icThreadsOriginal-OYU6UKN2.png +0 -0
- package/dist/icTikTokNegative-WYI3PQGD.png +0 -0
- package/dist/icTikTokOriginal-26SKYCIO.png +0 -0
- package/dist/icTumblrNegative-CYBTEYAG.png +0 -0
- package/dist/icTumblrOriginal-MZ7RV5ZY.png +0 -0
- package/dist/icTwitchNegative-GK3VVFL7.png +0 -0
- package/dist/icTwitchOriginal-GOENLOGB.png +0 -0
- package/dist/icVKNegative-FCXPFYDV.png +0 -0
- package/dist/icVKOriginal-NCWB7WYH.png +0 -0
- package/dist/icWhatsAppNegative-FJHYFUMA.png +0 -0
- package/dist/icWhatsAppOriginal-MWQWQC56.png +0 -0
- package/dist/icXTwitterNegative-VS3UXBLN.png +0 -0
- package/dist/icXTwitterOriginal-WJ2IFMZL.png +0 -0
- package/dist/icYouTubeNegative-LUSZ7OD4.png +0 -0
- package/dist/icYouTubeOriginal-6Y2SNMC7.png +0 -0
- package/dist/index-tIixPl5M.d.mts +214 -0
- package/dist/index-tIixPl5M.d.ts +214 -0
- package/dist/index.d.mts +32 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +32215 -0
- package/dist/index.mjs +32022 -0
- package/dist/theme.d.mts +297 -0
- package/dist/theme.d.ts +297 -0
- package/dist/theme.js +472 -0
- package/dist/theme.mjs +458 -0
- package/dist/types-cxHozHqF.d.mts +92 -0
- package/dist/types-cxHozHqF.d.ts +92 -0
- package/dist/ui.d.mts +400 -0
- package/dist/ui.d.ts +400 -0
- package/dist/ui.js +1469 -0
- package/dist/ui.mjs +1461 -0
- package/dist/ui_config-LKHwCbDD.d.mts +102 -0
- package/dist/ui_config-LKHwCbDD.d.ts +102 -0
- package/dist/utils.d.mts +7 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.js +89 -0
- package/dist/utils.mjs +83 -0
- package/package.json +78 -0
package/dist/theme.mjs
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
import { Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
// src/theme/colors.ts
|
|
4
|
+
var Colors = {
|
|
5
|
+
primary: {
|
|
6
|
+
50: "#EFF6FF",
|
|
7
|
+
100: "#DBEAFE",
|
|
8
|
+
200: "#BFDBFE",
|
|
9
|
+
300: "#93C5FD",
|
|
10
|
+
400: "#60A5FA",
|
|
11
|
+
500: "#3B82F6",
|
|
12
|
+
600: "#2563EB",
|
|
13
|
+
700: "#1D4ED8",
|
|
14
|
+
800: "#1E40AF",
|
|
15
|
+
900: "#1E3A8A"
|
|
16
|
+
},
|
|
17
|
+
primaryColor: "#2563EB",
|
|
18
|
+
gray: {
|
|
19
|
+
50: "#F9FAFB",
|
|
20
|
+
100: "#F3F4F6",
|
|
21
|
+
200: "#E5E7EB",
|
|
22
|
+
300: "#D1D5DB",
|
|
23
|
+
400: "#9CA3AF",
|
|
24
|
+
500: "#6B7280",
|
|
25
|
+
600: "#4B5563",
|
|
26
|
+
700: "#374151",
|
|
27
|
+
800: "#1F2937",
|
|
28
|
+
900: "#111827"
|
|
29
|
+
},
|
|
30
|
+
white: "#ffffff",
|
|
31
|
+
black: "#000000",
|
|
32
|
+
green: { 500: "#22C55E" },
|
|
33
|
+
orange: { 500: "#F97316" },
|
|
34
|
+
red: { 50: "#FEE2E2", 500: "#EF4444" },
|
|
35
|
+
status: {
|
|
36
|
+
success: {
|
|
37
|
+
light: "#DCFCE7",
|
|
38
|
+
default: "#22C55E",
|
|
39
|
+
dark: "#15803D"
|
|
40
|
+
},
|
|
41
|
+
warning: {
|
|
42
|
+
light: "#FFEDD5",
|
|
43
|
+
default: "#F97316",
|
|
44
|
+
dark: "#C2410C"
|
|
45
|
+
},
|
|
46
|
+
error: {
|
|
47
|
+
light: "#FEE2E2",
|
|
48
|
+
default: "#EF4444",
|
|
49
|
+
dark: "#B91C1C"
|
|
50
|
+
},
|
|
51
|
+
info: {
|
|
52
|
+
light: "#DBEAFE",
|
|
53
|
+
default: "#3B82F6",
|
|
54
|
+
dark: "#1D4ED8"
|
|
55
|
+
},
|
|
56
|
+
pending: {
|
|
57
|
+
light: "#FEF3C7",
|
|
58
|
+
default: "#EAB308",
|
|
59
|
+
dark: "#A16207"
|
|
60
|
+
},
|
|
61
|
+
disabled: {
|
|
62
|
+
light: "#F3F4F6",
|
|
63
|
+
default: "#9CA3AF",
|
|
64
|
+
dark: "#6B7280"
|
|
65
|
+
},
|
|
66
|
+
// Uppercase aliases for basic statuses
|
|
67
|
+
SUCCESS: {
|
|
68
|
+
light: "#DCFCE7",
|
|
69
|
+
default: "#22C55E",
|
|
70
|
+
dark: "#15803D"
|
|
71
|
+
},
|
|
72
|
+
WARNING: {
|
|
73
|
+
light: "#FFEDD5",
|
|
74
|
+
default: "#F97316",
|
|
75
|
+
dark: "#C2410C"
|
|
76
|
+
},
|
|
77
|
+
ERROR: {
|
|
78
|
+
light: "#FEE2E2",
|
|
79
|
+
default: "#EF4444",
|
|
80
|
+
dark: "#B91C1C"
|
|
81
|
+
},
|
|
82
|
+
INFO: {
|
|
83
|
+
light: "#DBEAFE",
|
|
84
|
+
default: "#3B82F6",
|
|
85
|
+
dark: "#1D4ED8"
|
|
86
|
+
},
|
|
87
|
+
PENDING: {
|
|
88
|
+
light: "#FEF3C7",
|
|
89
|
+
default: "#EAB308",
|
|
90
|
+
dark: "#A16207"
|
|
91
|
+
},
|
|
92
|
+
DISABLED: {
|
|
93
|
+
light: "#F3F4F6",
|
|
94
|
+
default: "#9CA3AF",
|
|
95
|
+
dark: "#6B7280"
|
|
96
|
+
},
|
|
97
|
+
// Complaint Statuses
|
|
98
|
+
OPEN: {
|
|
99
|
+
light: "#DBEAFE",
|
|
100
|
+
default: "#3B82F6",
|
|
101
|
+
dark: "#1D4ED8"
|
|
102
|
+
},
|
|
103
|
+
ASSIGNED: {
|
|
104
|
+
light: "#E0E7FF",
|
|
105
|
+
default: "#6366F1",
|
|
106
|
+
dark: "#4338CA"
|
|
107
|
+
},
|
|
108
|
+
IN_PROGRESS: {
|
|
109
|
+
light: "#FEF3C7",
|
|
110
|
+
default: "#EAB308",
|
|
111
|
+
dark: "#A16207"
|
|
112
|
+
},
|
|
113
|
+
ON_HOLD: {
|
|
114
|
+
light: "#FFEDD5",
|
|
115
|
+
default: "#F97316",
|
|
116
|
+
dark: "#C2410C"
|
|
117
|
+
},
|
|
118
|
+
RESOLVED: {
|
|
119
|
+
light: "#DCFCE7",
|
|
120
|
+
default: "#22C55E",
|
|
121
|
+
dark: "#15803D"
|
|
122
|
+
},
|
|
123
|
+
CLOSED: {
|
|
124
|
+
light: "#F3F4F6",
|
|
125
|
+
default: "#6B7280",
|
|
126
|
+
dark: "#374151"
|
|
127
|
+
},
|
|
128
|
+
REJECTED: {
|
|
129
|
+
light: "#FEE2E2",
|
|
130
|
+
default: "#EF4444",
|
|
131
|
+
dark: "#B91C1C"
|
|
132
|
+
},
|
|
133
|
+
CANCELLED: {
|
|
134
|
+
light: "#F3F4F6",
|
|
135
|
+
default: "#9CA3AF",
|
|
136
|
+
dark: "#6B7280"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var AVATAR_COLORS = [
|
|
141
|
+
"#2563EB",
|
|
142
|
+
// Blue
|
|
143
|
+
"#9333EA",
|
|
144
|
+
// Purple
|
|
145
|
+
"#16A34A",
|
|
146
|
+
// Green
|
|
147
|
+
"#EA580C",
|
|
148
|
+
// Orange
|
|
149
|
+
"#DC2626",
|
|
150
|
+
// Red
|
|
151
|
+
"#0891B2",
|
|
152
|
+
// Cyan
|
|
153
|
+
"#CA8A04",
|
|
154
|
+
// Yellow
|
|
155
|
+
"#4F46E5",
|
|
156
|
+
// Indigo
|
|
157
|
+
"#BE185D",
|
|
158
|
+
// Pink
|
|
159
|
+
"#374151"
|
|
160
|
+
// Dark Gray
|
|
161
|
+
];
|
|
162
|
+
var colors_default = Colors;
|
|
163
|
+
var FontFamily = (style) => {
|
|
164
|
+
const weight = style?.fontWeight ?? "400";
|
|
165
|
+
let fontFamily = "Fonts-Regular";
|
|
166
|
+
let numericWeight = "400";
|
|
167
|
+
switch (weight) {
|
|
168
|
+
case "100":
|
|
169
|
+
case "200":
|
|
170
|
+
fontFamily = "Fonts-Light";
|
|
171
|
+
numericWeight = "300";
|
|
172
|
+
break;
|
|
173
|
+
case "300":
|
|
174
|
+
case "light":
|
|
175
|
+
fontFamily = "Fonts-Light";
|
|
176
|
+
numericWeight = "300";
|
|
177
|
+
break;
|
|
178
|
+
case "400":
|
|
179
|
+
case "normal":
|
|
180
|
+
case "regular":
|
|
181
|
+
fontFamily = "Fonts-Regular";
|
|
182
|
+
numericWeight = "400";
|
|
183
|
+
break;
|
|
184
|
+
case "500":
|
|
185
|
+
case "medium":
|
|
186
|
+
fontFamily = "Fonts-Medium";
|
|
187
|
+
numericWeight = "500";
|
|
188
|
+
break;
|
|
189
|
+
case "600":
|
|
190
|
+
case "semibold":
|
|
191
|
+
fontFamily = "Fonts-Bold";
|
|
192
|
+
numericWeight = "600";
|
|
193
|
+
break;
|
|
194
|
+
case "700":
|
|
195
|
+
case "bold":
|
|
196
|
+
fontFamily = "Fonts-Bold";
|
|
197
|
+
numericWeight = "700";
|
|
198
|
+
break;
|
|
199
|
+
case "800":
|
|
200
|
+
case "heavy":
|
|
201
|
+
fontFamily = "Fonts-ExtraBold";
|
|
202
|
+
numericWeight = "800";
|
|
203
|
+
break;
|
|
204
|
+
case "900":
|
|
205
|
+
case "black":
|
|
206
|
+
fontFamily = "Fonts-Black";
|
|
207
|
+
numericWeight = "900";
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
fontFamily,
|
|
212
|
+
fontWeight: Platform.OS === "android" ? "normal" : numericWeight
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
|
|
216
|
+
// src/theme/theme.ts
|
|
217
|
+
var BaseTheme = {
|
|
218
|
+
primary: {
|
|
219
|
+
default: colors_default.primary[600],
|
|
220
|
+
hover: colors_default.primary[500]
|
|
221
|
+
},
|
|
222
|
+
background: {
|
|
223
|
+
screen: colors_default.gray[50],
|
|
224
|
+
surface: "#FFFFFF",
|
|
225
|
+
selected: colors_default.primary[50],
|
|
226
|
+
secondary: colors_default.gray[100],
|
|
227
|
+
design: colors_default.primary[50]
|
|
228
|
+
},
|
|
229
|
+
input: {
|
|
230
|
+
background: colors_default.gray[50]
|
|
231
|
+
},
|
|
232
|
+
text: {
|
|
233
|
+
primary: colors_default.gray[900],
|
|
234
|
+
secondary: colors_default.gray[600],
|
|
235
|
+
muted: colors_default.gray[400],
|
|
236
|
+
inverse: "#FFFFFF"
|
|
237
|
+
},
|
|
238
|
+
border: {
|
|
239
|
+
default: colors_default.gray[300],
|
|
240
|
+
focused: colors_default.primary[600],
|
|
241
|
+
success: colors_default.green[500],
|
|
242
|
+
warning: colors_default.orange[500],
|
|
243
|
+
error: colors_default.red[500]
|
|
244
|
+
},
|
|
245
|
+
status: {
|
|
246
|
+
success: colors_default.green[500],
|
|
247
|
+
warning: colors_default.orange[500],
|
|
248
|
+
error: colors_default.red[500],
|
|
249
|
+
validating: colors_default.primary[600]
|
|
250
|
+
},
|
|
251
|
+
icon: {
|
|
252
|
+
default: colors_default.gray[500],
|
|
253
|
+
active: colors_default.primary[600],
|
|
254
|
+
disabled: colors_default.gray[400]
|
|
255
|
+
},
|
|
256
|
+
tabContent: {
|
|
257
|
+
active: colors_default.primary[600],
|
|
258
|
+
inactive: colors_default.gray[400]
|
|
259
|
+
},
|
|
260
|
+
skeleton: {
|
|
261
|
+
background: colors_default.gray[200],
|
|
262
|
+
componentBg: colors_default.gray[300],
|
|
263
|
+
highlight: "#ffffff99"
|
|
264
|
+
},
|
|
265
|
+
primaryContent: {
|
|
266
|
+
color: colors_default.primaryColor
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
var LightTheme = {
|
|
270
|
+
...BaseTheme
|
|
271
|
+
};
|
|
272
|
+
var DarkTheme = {
|
|
273
|
+
...BaseTheme,
|
|
274
|
+
primary: {
|
|
275
|
+
default: colors_default.primary[500],
|
|
276
|
+
hover: colors_default.primary[400]
|
|
277
|
+
},
|
|
278
|
+
background: {
|
|
279
|
+
...BaseTheme.background,
|
|
280
|
+
screen: colors_default.gray[900],
|
|
281
|
+
surface: colors_default.gray[800],
|
|
282
|
+
selected: colors_default.primary[900],
|
|
283
|
+
secondary: colors_default.gray[900],
|
|
284
|
+
design: colors_default.primaryColor + 10
|
|
285
|
+
},
|
|
286
|
+
input: {
|
|
287
|
+
background: colors_default.gray[700]
|
|
288
|
+
},
|
|
289
|
+
text: {
|
|
290
|
+
...BaseTheme.text,
|
|
291
|
+
primary: "#FFFFFF",
|
|
292
|
+
secondary: colors_default.gray[200],
|
|
293
|
+
muted: colors_default.gray[500],
|
|
294
|
+
inverse: colors_default.gray[900]
|
|
295
|
+
},
|
|
296
|
+
border: {
|
|
297
|
+
...BaseTheme.border,
|
|
298
|
+
default: colors_default.gray[700]
|
|
299
|
+
},
|
|
300
|
+
icon: {
|
|
301
|
+
...BaseTheme.icon,
|
|
302
|
+
default: colors_default.gray[400],
|
|
303
|
+
disabled: colors_default.gray[600]
|
|
304
|
+
},
|
|
305
|
+
tabContent: {
|
|
306
|
+
active: colors_default.white,
|
|
307
|
+
inactive: colors_default.gray[500]
|
|
308
|
+
},
|
|
309
|
+
skeleton: {
|
|
310
|
+
background: colors_default.gray[700],
|
|
311
|
+
componentBg: colors_default.gray[800],
|
|
312
|
+
highlight: "#ffffff14"
|
|
313
|
+
},
|
|
314
|
+
primaryContent: {
|
|
315
|
+
color: colors_default.primary[400]
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
// src/theme/spacing.ts
|
|
320
|
+
var Spacing = {
|
|
321
|
+
/** 2px — hairline gaps, icon nudges */
|
|
322
|
+
xxs: 2,
|
|
323
|
+
/** 4px — tight internal padding */
|
|
324
|
+
xs: 4,
|
|
325
|
+
/** 8px — compact spacing between elements */
|
|
326
|
+
sm: 8,
|
|
327
|
+
/** 12px — default internal padding */
|
|
328
|
+
md: 12,
|
|
329
|
+
/** 16px — section padding, card padding */
|
|
330
|
+
lg: 16,
|
|
331
|
+
/** 24px — generous padding between sections */
|
|
332
|
+
xl: 24,
|
|
333
|
+
/** 32px — large section gaps */
|
|
334
|
+
xxl: 32,
|
|
335
|
+
/** 48px — page-level vertical spacing */
|
|
336
|
+
xxxl: 48
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
// src/theme/typography.ts
|
|
340
|
+
var FontSize = {
|
|
341
|
+
/** 11px — small badges, captions, overlines */
|
|
342
|
+
xs: 11,
|
|
343
|
+
/** 13px — labels, secondary text, button small */
|
|
344
|
+
sm: 13,
|
|
345
|
+
/** 15px — body text, default input */
|
|
346
|
+
md: 15,
|
|
347
|
+
/** 17px — section headings, large labels */
|
|
348
|
+
lg: 17,
|
|
349
|
+
/** 20px — page sub-headings */
|
|
350
|
+
xl: 20,
|
|
351
|
+
/** 24px — page headings */
|
|
352
|
+
xxl: 24,
|
|
353
|
+
/** 28px — hero / display text */
|
|
354
|
+
display: 28
|
|
355
|
+
};
|
|
356
|
+
var LineHeight = {
|
|
357
|
+
/** Tight line-height for xs */
|
|
358
|
+
xs: 15,
|
|
359
|
+
/** Tight line-height for sm */
|
|
360
|
+
sm: 18,
|
|
361
|
+
/** Default line-height for md */
|
|
362
|
+
md: 22,
|
|
363
|
+
/** Line-height for lg */
|
|
364
|
+
lg: 24,
|
|
365
|
+
/** Line-height for xl */
|
|
366
|
+
xl: 28,
|
|
367
|
+
/** Line-height for xxl */
|
|
368
|
+
xxl: 32,
|
|
369
|
+
/** Line-height for display */
|
|
370
|
+
display: 36
|
|
371
|
+
};
|
|
372
|
+
var Shadow = {
|
|
373
|
+
/** Subtle shadow — cards, inputs */
|
|
374
|
+
sm: Platform.select({
|
|
375
|
+
ios: {
|
|
376
|
+
shadowColor: "#000",
|
|
377
|
+
shadowOffset: { width: 0, height: 1 },
|
|
378
|
+
shadowOpacity: 0.06,
|
|
379
|
+
shadowRadius: 4
|
|
380
|
+
},
|
|
381
|
+
android: { elevation: 2 },
|
|
382
|
+
default: {}
|
|
383
|
+
}),
|
|
384
|
+
/** Medium shadow — dropdowns, popups */
|
|
385
|
+
md: Platform.select({
|
|
386
|
+
ios: {
|
|
387
|
+
shadowColor: "#000",
|
|
388
|
+
shadowOffset: { width: 0, height: 4 },
|
|
389
|
+
shadowOpacity: 0.1,
|
|
390
|
+
shadowRadius: 8
|
|
391
|
+
},
|
|
392
|
+
android: { elevation: 5 },
|
|
393
|
+
default: {}
|
|
394
|
+
}),
|
|
395
|
+
/** Strong shadow — modals, floating elements */
|
|
396
|
+
lg: Platform.select({
|
|
397
|
+
ios: {
|
|
398
|
+
shadowColor: "#000",
|
|
399
|
+
shadowOffset: { width: 0, height: 8 },
|
|
400
|
+
shadowOpacity: 0.15,
|
|
401
|
+
shadowRadius: 16
|
|
402
|
+
},
|
|
403
|
+
android: { elevation: 10 },
|
|
404
|
+
default: {}
|
|
405
|
+
}),
|
|
406
|
+
/** Extra strong — overlays */
|
|
407
|
+
xl: Platform.select({
|
|
408
|
+
ios: {
|
|
409
|
+
shadowColor: "#000",
|
|
410
|
+
shadowOffset: { width: 0, height: 12 },
|
|
411
|
+
shadowOpacity: 0.2,
|
|
412
|
+
shadowRadius: 24
|
|
413
|
+
},
|
|
414
|
+
android: { elevation: 16 },
|
|
415
|
+
default: {}
|
|
416
|
+
}),
|
|
417
|
+
/** No shadow */
|
|
418
|
+
none: {}
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
// src/theme/animations.ts
|
|
422
|
+
var Duration = {
|
|
423
|
+
/** 100ms — micro-interactions (press feedback, check toggle) */
|
|
424
|
+
instant: 100,
|
|
425
|
+
/** 150ms — quick transitions (button press, icon swap) */
|
|
426
|
+
fast: 150,
|
|
427
|
+
/** 250ms — default transitions (modal, popup, focus ring) */
|
|
428
|
+
normal: 250,
|
|
429
|
+
/** 350ms — deliberate transitions (page slide, bottom sheet) */
|
|
430
|
+
slow: 350,
|
|
431
|
+
/** 500ms — emphasis transitions (celebration, onboarding) */
|
|
432
|
+
slower: 500
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
// src/theme/zindex.ts
|
|
436
|
+
var ZIndex = {
|
|
437
|
+
/** Base content layer */
|
|
438
|
+
base: 0,
|
|
439
|
+
/** Sticky headers, FABs */
|
|
440
|
+
sticky: 100,
|
|
441
|
+
/** Dropdown menus, select popups */
|
|
442
|
+
dropdown: 1e3,
|
|
443
|
+
/** Bottom sheets, drawers */
|
|
444
|
+
drawer: 1100,
|
|
445
|
+
/** Modals, dialogs */
|
|
446
|
+
modal: 2e3,
|
|
447
|
+
/** Popup menus, tooltips */
|
|
448
|
+
popup: 2500,
|
|
449
|
+
/** Toast notifications */
|
|
450
|
+
toast: 3e3,
|
|
451
|
+
/** Highest priority overlays (loading screens, critical alerts) */
|
|
452
|
+
overlay: 4e3
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
// src/theme/index.ts
|
|
456
|
+
var getTheme = (mode) => mode === "dark" ? DarkTheme : LightTheme;
|
|
457
|
+
|
|
458
|
+
export { AVATAR_COLORS, BaseTheme, colors_default as Colors, DarkTheme, Duration, FontFamily, FontSize, LightTheme, LineHeight, Shadow, Spacing, ZIndex, getTheme };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const useTheme: () => {
|
|
5
|
+
primary: {
|
|
6
|
+
default: string;
|
|
7
|
+
hover: string;
|
|
8
|
+
};
|
|
9
|
+
background: {
|
|
10
|
+
screen: string;
|
|
11
|
+
surface: string;
|
|
12
|
+
selected: string;
|
|
13
|
+
secondary: string;
|
|
14
|
+
design: string;
|
|
15
|
+
};
|
|
16
|
+
input: {
|
|
17
|
+
background: string;
|
|
18
|
+
};
|
|
19
|
+
text: {
|
|
20
|
+
primary: string;
|
|
21
|
+
secondary: string;
|
|
22
|
+
muted: string;
|
|
23
|
+
inverse: string;
|
|
24
|
+
};
|
|
25
|
+
border: {
|
|
26
|
+
default: string;
|
|
27
|
+
focused: string;
|
|
28
|
+
success: string;
|
|
29
|
+
warning: string;
|
|
30
|
+
error: string;
|
|
31
|
+
};
|
|
32
|
+
status: {
|
|
33
|
+
success: string;
|
|
34
|
+
warning: string;
|
|
35
|
+
error: string;
|
|
36
|
+
validating: string;
|
|
37
|
+
};
|
|
38
|
+
icon: {
|
|
39
|
+
default: string;
|
|
40
|
+
active: string;
|
|
41
|
+
disabled: string;
|
|
42
|
+
};
|
|
43
|
+
tabContent: {
|
|
44
|
+
active: string;
|
|
45
|
+
inactive: string;
|
|
46
|
+
};
|
|
47
|
+
skeleton: {
|
|
48
|
+
background: string;
|
|
49
|
+
componentBg: string;
|
|
50
|
+
highlight: string;
|
|
51
|
+
};
|
|
52
|
+
primaryContent: {
|
|
53
|
+
color: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
interface AlertButton {
|
|
58
|
+
text?: string;
|
|
59
|
+
onPress?: () => void | Promise<void>;
|
|
60
|
+
style?: "default" | "cancel" | "destructive";
|
|
61
|
+
}
|
|
62
|
+
interface AlertContextType {
|
|
63
|
+
alert: (title: string, message?: string, buttons?: AlertButton[], options?: {
|
|
64
|
+
type?: AlertType;
|
|
65
|
+
}) => void;
|
|
66
|
+
}
|
|
67
|
+
declare const Alert: {
|
|
68
|
+
alert: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
69
|
+
warning: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
70
|
+
error: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
71
|
+
info: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
72
|
+
success: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
73
|
+
};
|
|
74
|
+
declare const AlertProvider: React__default.FC<{
|
|
75
|
+
children: ReactNode;
|
|
76
|
+
}>;
|
|
77
|
+
declare const useAlert: () => AlertContextType;
|
|
78
|
+
|
|
79
|
+
type AlertType = "warning" | "danger" | "info" | "success";
|
|
80
|
+
interface AlertModalProps {
|
|
81
|
+
visible: boolean;
|
|
82
|
+
title: string;
|
|
83
|
+
message: string;
|
|
84
|
+
type?: AlertType;
|
|
85
|
+
buttons?: AlertButton[];
|
|
86
|
+
isLoading?: boolean;
|
|
87
|
+
onButtonPress?: (button: AlertButton) => void;
|
|
88
|
+
onCancel?: () => void;
|
|
89
|
+
style?: StyleProp<ViewStyle>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { Alert as A, type AlertModalProps as a, AlertProvider as b, type AlertType as c, useTheme as d, useAlert as u };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
declare const useTheme: () => {
|
|
5
|
+
primary: {
|
|
6
|
+
default: string;
|
|
7
|
+
hover: string;
|
|
8
|
+
};
|
|
9
|
+
background: {
|
|
10
|
+
screen: string;
|
|
11
|
+
surface: string;
|
|
12
|
+
selected: string;
|
|
13
|
+
secondary: string;
|
|
14
|
+
design: string;
|
|
15
|
+
};
|
|
16
|
+
input: {
|
|
17
|
+
background: string;
|
|
18
|
+
};
|
|
19
|
+
text: {
|
|
20
|
+
primary: string;
|
|
21
|
+
secondary: string;
|
|
22
|
+
muted: string;
|
|
23
|
+
inverse: string;
|
|
24
|
+
};
|
|
25
|
+
border: {
|
|
26
|
+
default: string;
|
|
27
|
+
focused: string;
|
|
28
|
+
success: string;
|
|
29
|
+
warning: string;
|
|
30
|
+
error: string;
|
|
31
|
+
};
|
|
32
|
+
status: {
|
|
33
|
+
success: string;
|
|
34
|
+
warning: string;
|
|
35
|
+
error: string;
|
|
36
|
+
validating: string;
|
|
37
|
+
};
|
|
38
|
+
icon: {
|
|
39
|
+
default: string;
|
|
40
|
+
active: string;
|
|
41
|
+
disabled: string;
|
|
42
|
+
};
|
|
43
|
+
tabContent: {
|
|
44
|
+
active: string;
|
|
45
|
+
inactive: string;
|
|
46
|
+
};
|
|
47
|
+
skeleton: {
|
|
48
|
+
background: string;
|
|
49
|
+
componentBg: string;
|
|
50
|
+
highlight: string;
|
|
51
|
+
};
|
|
52
|
+
primaryContent: {
|
|
53
|
+
color: string;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
interface AlertButton {
|
|
58
|
+
text?: string;
|
|
59
|
+
onPress?: () => void | Promise<void>;
|
|
60
|
+
style?: "default" | "cancel" | "destructive";
|
|
61
|
+
}
|
|
62
|
+
interface AlertContextType {
|
|
63
|
+
alert: (title: string, message?: string, buttons?: AlertButton[], options?: {
|
|
64
|
+
type?: AlertType;
|
|
65
|
+
}) => void;
|
|
66
|
+
}
|
|
67
|
+
declare const Alert: {
|
|
68
|
+
alert: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
69
|
+
warning: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
70
|
+
error: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
71
|
+
info: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
72
|
+
success: (title: string, message?: string, buttons?: AlertButton[]) => void;
|
|
73
|
+
};
|
|
74
|
+
declare const AlertProvider: React__default.FC<{
|
|
75
|
+
children: ReactNode;
|
|
76
|
+
}>;
|
|
77
|
+
declare const useAlert: () => AlertContextType;
|
|
78
|
+
|
|
79
|
+
type AlertType = "warning" | "danger" | "info" | "success";
|
|
80
|
+
interface AlertModalProps {
|
|
81
|
+
visible: boolean;
|
|
82
|
+
title: string;
|
|
83
|
+
message: string;
|
|
84
|
+
type?: AlertType;
|
|
85
|
+
buttons?: AlertButton[];
|
|
86
|
+
isLoading?: boolean;
|
|
87
|
+
onButtonPress?: (button: AlertButton) => void;
|
|
88
|
+
onCancel?: () => void;
|
|
89
|
+
style?: StyleProp<ViewStyle>;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export { Alert as A, type AlertModalProps as a, AlertProvider as b, type AlertType as c, useTheme as d, useAlert as u };
|