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.
Files changed (116) hide show
  1. package/dist/Fonts-Black-U4YX6GHD.ttf +0 -0
  2. package/dist/Fonts-Bold-QAA2AGZS.ttf +0 -0
  3. package/dist/Fonts-ExtraBold-OVZKTNJI.ttf +0 -0
  4. package/dist/Fonts-Light-RMQAEPUP.ttf +0 -0
  5. package/dist/Fonts-Medium-UUWQX4EV.ttf +0 -0
  6. package/dist/Fonts-Regular-JNHL4IDV.ttf +0 -0
  7. package/dist/PopupMenuExample-DAAku8nG.d.mts +11 -0
  8. package/dist/PopupMenuExample-DAAku8nG.d.ts +11 -0
  9. package/dist/avatarF1-C47EE65Y.png +0 -0
  10. package/dist/avatarF2-TZPKSMDG.png +0 -0
  11. package/dist/avatarF3-OSDX6E7J.png +0 -0
  12. package/dist/avatarF4-CASWRGNJ.png +0 -0
  13. package/dist/avatarM1-3XV4KE4H.png +0 -0
  14. package/dist/avatarM2-ZMN26Y2Y.png +0 -0
  15. package/dist/avatarM3-XIDLYITU.png +0 -0
  16. package/dist/avatarM4-DYW5DSZC.png +0 -0
  17. package/dist/avatarM5-YP66OPXT.png +0 -0
  18. package/dist/components.d.mts +3286 -0
  19. package/dist/components.d.ts +3286 -0
  20. package/dist/components.js +21401 -0
  21. package/dist/components.mjs +21246 -0
  22. package/dist/config.d.mts +7 -0
  23. package/dist/config.d.ts +7 -0
  24. package/dist/config.js +213 -0
  25. package/dist/config.mjs +210 -0
  26. package/dist/context.d.mts +11 -0
  27. package/dist/context.d.ts +11 -0
  28. package/dist/context.js +150 -0
  29. package/dist/context.mjs +148 -0
  30. package/dist/examples.d.mts +30 -0
  31. package/dist/examples.d.ts +30 -0
  32. package/dist/examples.js +30785 -0
  33. package/dist/examples.mjs +30748 -0
  34. package/dist/hooks.d.mts +15 -0
  35. package/dist/hooks.d.ts +15 -0
  36. package/dist/hooks.js +750 -0
  37. package/dist/hooks.mjs +739 -0
  38. package/dist/icAppleNegative-E3OORB4A.png +0 -0
  39. package/dist/icAppleOriginal-M7FOSDZ4.png +0 -0
  40. package/dist/icBlueskyNegative-QXHPLARU.png +0 -0
  41. package/dist/icBlueskyOriginal-D2GX35RV.png +0 -0
  42. package/dist/icDiscordNegative-EWGZJJ27.png +0 -0
  43. package/dist/icDiscordOriginal-5ODPKZ6S.png +0 -0
  44. package/dist/icDribbbleNegative-GOLJS6SO.png +0 -0
  45. package/dist/icDribbbleOriginal-ONQLW62I.png +0 -0
  46. package/dist/icError404-Z6PQK64J.png +0 -0
  47. package/dist/icFacebookNegative-DIFRSSJJ.png +0 -0
  48. package/dist/icFacebookOriginal-PK7CGUNB.png +0 -0
  49. package/dist/icFigmaNegative-X6P3DVCQ.png +0 -0
  50. package/dist/icFigmaOriginal-VGD7LQVQ.png +0 -0
  51. package/dist/icGithubNegative-G7XH6J7V.png +0 -0
  52. package/dist/icGithubOriginal-BOXVXICL.png +0 -0
  53. package/dist/icGoogleNegative-UFNCEWM7.png +0 -0
  54. package/dist/icGoogleOriginal-WCDLPRSH.png +0 -0
  55. package/dist/icInstagramNegative-47CG4IHG.png +0 -0
  56. package/dist/icInstagramOriginal-SGRJTPEH.png +0 -0
  57. package/dist/icLinkedInNegative-4EHL223U.png +0 -0
  58. package/dist/icLinkedInOriginal-CQXTAW56.png +0 -0
  59. package/dist/icMediumNegative-YMS7U46C.png +0 -0
  60. package/dist/icMediumOriginal-TRTNJBN4.png +0 -0
  61. package/dist/icMessengerNegative-SIFKBM2Y.png +0 -0
  62. package/dist/icMessengerOriginal-PNN2SB3Z.png +0 -0
  63. package/dist/icNoData-JQB7KCKJ.png +0 -0
  64. package/dist/icPinterestNegative-LPDQYRD3.png +0 -0
  65. package/dist/icPinterestOriginal-7AWYJQBQ.png +0 -0
  66. package/dist/icRedditNegative-BBV3R7UA.png +0 -0
  67. package/dist/icRedditOriginal-BIKS3S2I.png +0 -0
  68. package/dist/icRestriction-JFCJAQ5L.png +0 -0
  69. package/dist/icSadMen-6HAFJHIQ.png +0 -0
  70. package/dist/icSignalNegative-DVBANSGJ.png +0 -0
  71. package/dist/icSignalOriginal-FQEXGCKX.png +0 -0
  72. package/dist/icSnapchatNegative-VQFVKRPC.png +0 -0
  73. package/dist/icSnapchatOriginal-ZK4T4CLL.png +0 -0
  74. package/dist/icSpotifyNegative-UGDBMFNS.png +0 -0
  75. package/dist/icSpotifyOriginal-ZFNO4BJO.png +0 -0
  76. package/dist/icTelegramNegative-GDSFFYME.png +0 -0
  77. package/dist/icTelegramOriginal-DMTCZCGP.png +0 -0
  78. package/dist/icThreadsNegative-4NIM4AOP.png +0 -0
  79. package/dist/icThreadsOriginal-OYU6UKN2.png +0 -0
  80. package/dist/icTikTokNegative-WYI3PQGD.png +0 -0
  81. package/dist/icTikTokOriginal-26SKYCIO.png +0 -0
  82. package/dist/icTumblrNegative-CYBTEYAG.png +0 -0
  83. package/dist/icTumblrOriginal-MZ7RV5ZY.png +0 -0
  84. package/dist/icTwitchNegative-GK3VVFL7.png +0 -0
  85. package/dist/icTwitchOriginal-GOENLOGB.png +0 -0
  86. package/dist/icVKNegative-FCXPFYDV.png +0 -0
  87. package/dist/icVKOriginal-NCWB7WYH.png +0 -0
  88. package/dist/icWhatsAppNegative-FJHYFUMA.png +0 -0
  89. package/dist/icWhatsAppOriginal-MWQWQC56.png +0 -0
  90. package/dist/icXTwitterNegative-VS3UXBLN.png +0 -0
  91. package/dist/icXTwitterOriginal-WJ2IFMZL.png +0 -0
  92. package/dist/icYouTubeNegative-LUSZ7OD4.png +0 -0
  93. package/dist/icYouTubeOriginal-6Y2SNMC7.png +0 -0
  94. package/dist/index-tIixPl5M.d.mts +214 -0
  95. package/dist/index-tIixPl5M.d.ts +214 -0
  96. package/dist/index.d.mts +32 -0
  97. package/dist/index.d.ts +32 -0
  98. package/dist/index.js +32215 -0
  99. package/dist/index.mjs +32022 -0
  100. package/dist/theme.d.mts +297 -0
  101. package/dist/theme.d.ts +297 -0
  102. package/dist/theme.js +472 -0
  103. package/dist/theme.mjs +458 -0
  104. package/dist/types-cxHozHqF.d.mts +92 -0
  105. package/dist/types-cxHozHqF.d.ts +92 -0
  106. package/dist/ui.d.mts +400 -0
  107. package/dist/ui.d.ts +400 -0
  108. package/dist/ui.js +1469 -0
  109. package/dist/ui.mjs +1461 -0
  110. package/dist/ui_config-LKHwCbDD.d.mts +102 -0
  111. package/dist/ui_config-LKHwCbDD.d.ts +102 -0
  112. package/dist/utils.d.mts +7 -0
  113. package/dist/utils.d.ts +7 -0
  114. package/dist/utils.js +89 -0
  115. package/dist/utils.mjs +83 -0
  116. 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 };