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.d.mts
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { TextStyle, ViewStyle } from 'react-native';
|
|
2
|
+
export { A as AppTheme, B as BaseTheme, D as DarkTheme, L as LightTheme, T as ThemeMode, a as ThemePreference, g as getTheme } from './index-tIixPl5M.mjs';
|
|
3
|
+
|
|
4
|
+
declare const Colors: {
|
|
5
|
+
primary: {
|
|
6
|
+
50: string;
|
|
7
|
+
100: string;
|
|
8
|
+
200: string;
|
|
9
|
+
300: string;
|
|
10
|
+
400: string;
|
|
11
|
+
500: string;
|
|
12
|
+
600: string;
|
|
13
|
+
700: string;
|
|
14
|
+
800: string;
|
|
15
|
+
900: string;
|
|
16
|
+
};
|
|
17
|
+
primaryColor: string;
|
|
18
|
+
gray: {
|
|
19
|
+
50: string;
|
|
20
|
+
100: string;
|
|
21
|
+
200: string;
|
|
22
|
+
300: string;
|
|
23
|
+
400: string;
|
|
24
|
+
500: string;
|
|
25
|
+
600: string;
|
|
26
|
+
700: string;
|
|
27
|
+
800: string;
|
|
28
|
+
900: string;
|
|
29
|
+
};
|
|
30
|
+
white: string;
|
|
31
|
+
black: string;
|
|
32
|
+
green: {
|
|
33
|
+
500: string;
|
|
34
|
+
};
|
|
35
|
+
orange: {
|
|
36
|
+
500: string;
|
|
37
|
+
};
|
|
38
|
+
red: {
|
|
39
|
+
50: string;
|
|
40
|
+
500: string;
|
|
41
|
+
};
|
|
42
|
+
status: {
|
|
43
|
+
success: {
|
|
44
|
+
light: string;
|
|
45
|
+
default: string;
|
|
46
|
+
dark: string;
|
|
47
|
+
};
|
|
48
|
+
warning: {
|
|
49
|
+
light: string;
|
|
50
|
+
default: string;
|
|
51
|
+
dark: string;
|
|
52
|
+
};
|
|
53
|
+
error: {
|
|
54
|
+
light: string;
|
|
55
|
+
default: string;
|
|
56
|
+
dark: string;
|
|
57
|
+
};
|
|
58
|
+
info: {
|
|
59
|
+
light: string;
|
|
60
|
+
default: string;
|
|
61
|
+
dark: string;
|
|
62
|
+
};
|
|
63
|
+
pending: {
|
|
64
|
+
light: string;
|
|
65
|
+
default: string;
|
|
66
|
+
dark: string;
|
|
67
|
+
};
|
|
68
|
+
disabled: {
|
|
69
|
+
light: string;
|
|
70
|
+
default: string;
|
|
71
|
+
dark: string;
|
|
72
|
+
};
|
|
73
|
+
SUCCESS: {
|
|
74
|
+
light: string;
|
|
75
|
+
default: string;
|
|
76
|
+
dark: string;
|
|
77
|
+
};
|
|
78
|
+
WARNING: {
|
|
79
|
+
light: string;
|
|
80
|
+
default: string;
|
|
81
|
+
dark: string;
|
|
82
|
+
};
|
|
83
|
+
ERROR: {
|
|
84
|
+
light: string;
|
|
85
|
+
default: string;
|
|
86
|
+
dark: string;
|
|
87
|
+
};
|
|
88
|
+
INFO: {
|
|
89
|
+
light: string;
|
|
90
|
+
default: string;
|
|
91
|
+
dark: string;
|
|
92
|
+
};
|
|
93
|
+
PENDING: {
|
|
94
|
+
light: string;
|
|
95
|
+
default: string;
|
|
96
|
+
dark: string;
|
|
97
|
+
};
|
|
98
|
+
DISABLED: {
|
|
99
|
+
light: string;
|
|
100
|
+
default: string;
|
|
101
|
+
dark: string;
|
|
102
|
+
};
|
|
103
|
+
OPEN: {
|
|
104
|
+
light: string;
|
|
105
|
+
default: string;
|
|
106
|
+
dark: string;
|
|
107
|
+
};
|
|
108
|
+
ASSIGNED: {
|
|
109
|
+
light: string;
|
|
110
|
+
default: string;
|
|
111
|
+
dark: string;
|
|
112
|
+
};
|
|
113
|
+
IN_PROGRESS: {
|
|
114
|
+
light: string;
|
|
115
|
+
default: string;
|
|
116
|
+
dark: string;
|
|
117
|
+
};
|
|
118
|
+
ON_HOLD: {
|
|
119
|
+
light: string;
|
|
120
|
+
default: string;
|
|
121
|
+
dark: string;
|
|
122
|
+
};
|
|
123
|
+
RESOLVED: {
|
|
124
|
+
light: string;
|
|
125
|
+
default: string;
|
|
126
|
+
dark: string;
|
|
127
|
+
};
|
|
128
|
+
CLOSED: {
|
|
129
|
+
light: string;
|
|
130
|
+
default: string;
|
|
131
|
+
dark: string;
|
|
132
|
+
};
|
|
133
|
+
REJECTED: {
|
|
134
|
+
light: string;
|
|
135
|
+
default: string;
|
|
136
|
+
dark: string;
|
|
137
|
+
};
|
|
138
|
+
CANCELLED: {
|
|
139
|
+
light: string;
|
|
140
|
+
default: string;
|
|
141
|
+
dark: string;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
declare const AVATAR_COLORS: string[];
|
|
146
|
+
|
|
147
|
+
type FontWeight = "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "normal" | "bold" | "light" | "regular" | "medium" | "semibold" | "heavy" | "black";
|
|
148
|
+
/**
|
|
149
|
+
* Maps a semantic or numeric font weight to the correct fontFamily.
|
|
150
|
+
*
|
|
151
|
+
* **Android quirk**: Android ignores `fontFamily` when `fontWeight` is anything
|
|
152
|
+
* other than `"normal"` / `undefined`. So we always set `fontWeight: "normal"`
|
|
153
|
+
* on Android after resolving the right family file.
|
|
154
|
+
*
|
|
155
|
+
* On iOS both `fontFamily` and `fontWeight` are respected, so we keep the
|
|
156
|
+
* numeric weight for finer control (iOS can synthesise intermediate weights).
|
|
157
|
+
*/
|
|
158
|
+
declare const FontFamily: (style?: TextStyle & {
|
|
159
|
+
fontWeight?: FontWeight;
|
|
160
|
+
}) => TextStyle;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Centralized spacing scale.
|
|
164
|
+
* Use these tokens instead of hardcoded pixel values throughout the app.
|
|
165
|
+
*
|
|
166
|
+
* Usage: `import { Spacing } from '@/theme/spacing'`
|
|
167
|
+
* `padding: Spacing.md`
|
|
168
|
+
*/
|
|
169
|
+
declare const Spacing: {
|
|
170
|
+
/** 2px — hairline gaps, icon nudges */
|
|
171
|
+
readonly xxs: 2;
|
|
172
|
+
/** 4px — tight internal padding */
|
|
173
|
+
readonly xs: 4;
|
|
174
|
+
/** 8px — compact spacing between elements */
|
|
175
|
+
readonly sm: 8;
|
|
176
|
+
/** 12px — default internal padding */
|
|
177
|
+
readonly md: 12;
|
|
178
|
+
/** 16px — section padding, card padding */
|
|
179
|
+
readonly lg: 16;
|
|
180
|
+
/** 24px — generous padding between sections */
|
|
181
|
+
readonly xl: 24;
|
|
182
|
+
/** 32px — large section gaps */
|
|
183
|
+
readonly xxl: 32;
|
|
184
|
+
/** 48px — page-level vertical spacing */
|
|
185
|
+
readonly xxxl: 48;
|
|
186
|
+
};
|
|
187
|
+
type SpacingKey = keyof typeof Spacing;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Centralized typography scale.
|
|
191
|
+
* Use these tokens instead of hardcoded font sizes throughout the app.
|
|
192
|
+
*
|
|
193
|
+
* Usage: `import { FontSize, LineHeight } from '@/theme/typography'`
|
|
194
|
+
* `fontSize: FontSize.md`
|
|
195
|
+
*/
|
|
196
|
+
declare const FontSize: {
|
|
197
|
+
/** 11px — small badges, captions, overlines */
|
|
198
|
+
readonly xs: 11;
|
|
199
|
+
/** 13px — labels, secondary text, button small */
|
|
200
|
+
readonly sm: 13;
|
|
201
|
+
/** 15px — body text, default input */
|
|
202
|
+
readonly md: 15;
|
|
203
|
+
/** 17px — section headings, large labels */
|
|
204
|
+
readonly lg: 17;
|
|
205
|
+
/** 20px — page sub-headings */
|
|
206
|
+
readonly xl: 20;
|
|
207
|
+
/** 24px — page headings */
|
|
208
|
+
readonly xxl: 24;
|
|
209
|
+
/** 28px — hero / display text */
|
|
210
|
+
readonly display: 28;
|
|
211
|
+
};
|
|
212
|
+
declare const LineHeight: {
|
|
213
|
+
/** Tight line-height for xs */
|
|
214
|
+
readonly xs: 15;
|
|
215
|
+
/** Tight line-height for sm */
|
|
216
|
+
readonly sm: 18;
|
|
217
|
+
/** Default line-height for md */
|
|
218
|
+
readonly md: 22;
|
|
219
|
+
/** Line-height for lg */
|
|
220
|
+
readonly lg: 24;
|
|
221
|
+
/** Line-height for xl */
|
|
222
|
+
readonly xl: 28;
|
|
223
|
+
/** Line-height for xxl */
|
|
224
|
+
readonly xxl: 32;
|
|
225
|
+
/** Line-height for display */
|
|
226
|
+
readonly display: 36;
|
|
227
|
+
};
|
|
228
|
+
type FontSizeKey = keyof typeof FontSize;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Centralized shadow/elevation tokens.
|
|
232
|
+
* iOS uses shadow* properties, Android uses elevation.
|
|
233
|
+
*
|
|
234
|
+
* Usage: `import { Shadow } from '@/theme/shadows'`
|
|
235
|
+
* `style={Shadow.md}`
|
|
236
|
+
*/
|
|
237
|
+
declare const Shadow: {
|
|
238
|
+
/** Subtle shadow — cards, inputs */
|
|
239
|
+
readonly sm: ViewStyle;
|
|
240
|
+
/** Medium shadow — dropdowns, popups */
|
|
241
|
+
readonly md: ViewStyle;
|
|
242
|
+
/** Strong shadow — modals, floating elements */
|
|
243
|
+
readonly lg: ViewStyle;
|
|
244
|
+
/** Extra strong — overlays */
|
|
245
|
+
readonly xl: ViewStyle;
|
|
246
|
+
/** No shadow */
|
|
247
|
+
readonly none: ViewStyle;
|
|
248
|
+
};
|
|
249
|
+
type ShadowLevel = keyof typeof Shadow;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Centralized animation duration and easing tokens.
|
|
253
|
+
*
|
|
254
|
+
* Usage: `import { Duration } from '@/theme/animations'`
|
|
255
|
+
* `Animated.timing(anim, { duration: Duration.normal, ... })`
|
|
256
|
+
*/
|
|
257
|
+
declare const Duration: {
|
|
258
|
+
/** 100ms — micro-interactions (press feedback, check toggle) */
|
|
259
|
+
readonly instant: 100;
|
|
260
|
+
/** 150ms — quick transitions (button press, icon swap) */
|
|
261
|
+
readonly fast: 150;
|
|
262
|
+
/** 250ms — default transitions (modal, popup, focus ring) */
|
|
263
|
+
readonly normal: 250;
|
|
264
|
+
/** 350ms — deliberate transitions (page slide, bottom sheet) */
|
|
265
|
+
readonly slow: 350;
|
|
266
|
+
/** 500ms — emphasis transitions (celebration, onboarding) */
|
|
267
|
+
readonly slower: 500;
|
|
268
|
+
};
|
|
269
|
+
type DurationKey = keyof typeof Duration;
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Centralized z-index scale for consistent layering.
|
|
273
|
+
*
|
|
274
|
+
* Usage: `import { ZIndex } from '@/theme/zindex'`
|
|
275
|
+
* `style={{ zIndex: ZIndex.modal }}`
|
|
276
|
+
*/
|
|
277
|
+
declare const ZIndex: {
|
|
278
|
+
/** Base content layer */
|
|
279
|
+
readonly base: 0;
|
|
280
|
+
/** Sticky headers, FABs */
|
|
281
|
+
readonly sticky: 100;
|
|
282
|
+
/** Dropdown menus, select popups */
|
|
283
|
+
readonly dropdown: 1000;
|
|
284
|
+
/** Bottom sheets, drawers */
|
|
285
|
+
readonly drawer: 1100;
|
|
286
|
+
/** Modals, dialogs */
|
|
287
|
+
readonly modal: 2000;
|
|
288
|
+
/** Popup menus, tooltips */
|
|
289
|
+
readonly popup: 2500;
|
|
290
|
+
/** Toast notifications */
|
|
291
|
+
readonly toast: 3000;
|
|
292
|
+
/** Highest priority overlays (loading screens, critical alerts) */
|
|
293
|
+
readonly overlay: 4000;
|
|
294
|
+
};
|
|
295
|
+
type ZIndexKey = keyof typeof ZIndex;
|
|
296
|
+
|
|
297
|
+
export { AVATAR_COLORS, Colors, Duration, type DurationKey, FontFamily, FontSize, type FontSizeKey, type FontWeight, LineHeight, Shadow, type ShadowLevel, Spacing, type SpacingKey, ZIndex, type ZIndexKey };
|
package/dist/theme.d.ts
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import { TextStyle, ViewStyle } from 'react-native';
|
|
2
|
+
export { A as AppTheme, B as BaseTheme, D as DarkTheme, L as LightTheme, T as ThemeMode, a as ThemePreference, g as getTheme } from './index-tIixPl5M.js';
|
|
3
|
+
|
|
4
|
+
declare const Colors: {
|
|
5
|
+
primary: {
|
|
6
|
+
50: string;
|
|
7
|
+
100: string;
|
|
8
|
+
200: string;
|
|
9
|
+
300: string;
|
|
10
|
+
400: string;
|
|
11
|
+
500: string;
|
|
12
|
+
600: string;
|
|
13
|
+
700: string;
|
|
14
|
+
800: string;
|
|
15
|
+
900: string;
|
|
16
|
+
};
|
|
17
|
+
primaryColor: string;
|
|
18
|
+
gray: {
|
|
19
|
+
50: string;
|
|
20
|
+
100: string;
|
|
21
|
+
200: string;
|
|
22
|
+
300: string;
|
|
23
|
+
400: string;
|
|
24
|
+
500: string;
|
|
25
|
+
600: string;
|
|
26
|
+
700: string;
|
|
27
|
+
800: string;
|
|
28
|
+
900: string;
|
|
29
|
+
};
|
|
30
|
+
white: string;
|
|
31
|
+
black: string;
|
|
32
|
+
green: {
|
|
33
|
+
500: string;
|
|
34
|
+
};
|
|
35
|
+
orange: {
|
|
36
|
+
500: string;
|
|
37
|
+
};
|
|
38
|
+
red: {
|
|
39
|
+
50: string;
|
|
40
|
+
500: string;
|
|
41
|
+
};
|
|
42
|
+
status: {
|
|
43
|
+
success: {
|
|
44
|
+
light: string;
|
|
45
|
+
default: string;
|
|
46
|
+
dark: string;
|
|
47
|
+
};
|
|
48
|
+
warning: {
|
|
49
|
+
light: string;
|
|
50
|
+
default: string;
|
|
51
|
+
dark: string;
|
|
52
|
+
};
|
|
53
|
+
error: {
|
|
54
|
+
light: string;
|
|
55
|
+
default: string;
|
|
56
|
+
dark: string;
|
|
57
|
+
};
|
|
58
|
+
info: {
|
|
59
|
+
light: string;
|
|
60
|
+
default: string;
|
|
61
|
+
dark: string;
|
|
62
|
+
};
|
|
63
|
+
pending: {
|
|
64
|
+
light: string;
|
|
65
|
+
default: string;
|
|
66
|
+
dark: string;
|
|
67
|
+
};
|
|
68
|
+
disabled: {
|
|
69
|
+
light: string;
|
|
70
|
+
default: string;
|
|
71
|
+
dark: string;
|
|
72
|
+
};
|
|
73
|
+
SUCCESS: {
|
|
74
|
+
light: string;
|
|
75
|
+
default: string;
|
|
76
|
+
dark: string;
|
|
77
|
+
};
|
|
78
|
+
WARNING: {
|
|
79
|
+
light: string;
|
|
80
|
+
default: string;
|
|
81
|
+
dark: string;
|
|
82
|
+
};
|
|
83
|
+
ERROR: {
|
|
84
|
+
light: string;
|
|
85
|
+
default: string;
|
|
86
|
+
dark: string;
|
|
87
|
+
};
|
|
88
|
+
INFO: {
|
|
89
|
+
light: string;
|
|
90
|
+
default: string;
|
|
91
|
+
dark: string;
|
|
92
|
+
};
|
|
93
|
+
PENDING: {
|
|
94
|
+
light: string;
|
|
95
|
+
default: string;
|
|
96
|
+
dark: string;
|
|
97
|
+
};
|
|
98
|
+
DISABLED: {
|
|
99
|
+
light: string;
|
|
100
|
+
default: string;
|
|
101
|
+
dark: string;
|
|
102
|
+
};
|
|
103
|
+
OPEN: {
|
|
104
|
+
light: string;
|
|
105
|
+
default: string;
|
|
106
|
+
dark: string;
|
|
107
|
+
};
|
|
108
|
+
ASSIGNED: {
|
|
109
|
+
light: string;
|
|
110
|
+
default: string;
|
|
111
|
+
dark: string;
|
|
112
|
+
};
|
|
113
|
+
IN_PROGRESS: {
|
|
114
|
+
light: string;
|
|
115
|
+
default: string;
|
|
116
|
+
dark: string;
|
|
117
|
+
};
|
|
118
|
+
ON_HOLD: {
|
|
119
|
+
light: string;
|
|
120
|
+
default: string;
|
|
121
|
+
dark: string;
|
|
122
|
+
};
|
|
123
|
+
RESOLVED: {
|
|
124
|
+
light: string;
|
|
125
|
+
default: string;
|
|
126
|
+
dark: string;
|
|
127
|
+
};
|
|
128
|
+
CLOSED: {
|
|
129
|
+
light: string;
|
|
130
|
+
default: string;
|
|
131
|
+
dark: string;
|
|
132
|
+
};
|
|
133
|
+
REJECTED: {
|
|
134
|
+
light: string;
|
|
135
|
+
default: string;
|
|
136
|
+
dark: string;
|
|
137
|
+
};
|
|
138
|
+
CANCELLED: {
|
|
139
|
+
light: string;
|
|
140
|
+
default: string;
|
|
141
|
+
dark: string;
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
declare const AVATAR_COLORS: string[];
|
|
146
|
+
|
|
147
|
+
type FontWeight = "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "normal" | "bold" | "light" | "regular" | "medium" | "semibold" | "heavy" | "black";
|
|
148
|
+
/**
|
|
149
|
+
* Maps a semantic or numeric font weight to the correct fontFamily.
|
|
150
|
+
*
|
|
151
|
+
* **Android quirk**: Android ignores `fontFamily` when `fontWeight` is anything
|
|
152
|
+
* other than `"normal"` / `undefined`. So we always set `fontWeight: "normal"`
|
|
153
|
+
* on Android after resolving the right family file.
|
|
154
|
+
*
|
|
155
|
+
* On iOS both `fontFamily` and `fontWeight` are respected, so we keep the
|
|
156
|
+
* numeric weight for finer control (iOS can synthesise intermediate weights).
|
|
157
|
+
*/
|
|
158
|
+
declare const FontFamily: (style?: TextStyle & {
|
|
159
|
+
fontWeight?: FontWeight;
|
|
160
|
+
}) => TextStyle;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Centralized spacing scale.
|
|
164
|
+
* Use these tokens instead of hardcoded pixel values throughout the app.
|
|
165
|
+
*
|
|
166
|
+
* Usage: `import { Spacing } from '@/theme/spacing'`
|
|
167
|
+
* `padding: Spacing.md`
|
|
168
|
+
*/
|
|
169
|
+
declare const Spacing: {
|
|
170
|
+
/** 2px — hairline gaps, icon nudges */
|
|
171
|
+
readonly xxs: 2;
|
|
172
|
+
/** 4px — tight internal padding */
|
|
173
|
+
readonly xs: 4;
|
|
174
|
+
/** 8px — compact spacing between elements */
|
|
175
|
+
readonly sm: 8;
|
|
176
|
+
/** 12px — default internal padding */
|
|
177
|
+
readonly md: 12;
|
|
178
|
+
/** 16px — section padding, card padding */
|
|
179
|
+
readonly lg: 16;
|
|
180
|
+
/** 24px — generous padding between sections */
|
|
181
|
+
readonly xl: 24;
|
|
182
|
+
/** 32px — large section gaps */
|
|
183
|
+
readonly xxl: 32;
|
|
184
|
+
/** 48px — page-level vertical spacing */
|
|
185
|
+
readonly xxxl: 48;
|
|
186
|
+
};
|
|
187
|
+
type SpacingKey = keyof typeof Spacing;
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Centralized typography scale.
|
|
191
|
+
* Use these tokens instead of hardcoded font sizes throughout the app.
|
|
192
|
+
*
|
|
193
|
+
* Usage: `import { FontSize, LineHeight } from '@/theme/typography'`
|
|
194
|
+
* `fontSize: FontSize.md`
|
|
195
|
+
*/
|
|
196
|
+
declare const FontSize: {
|
|
197
|
+
/** 11px — small badges, captions, overlines */
|
|
198
|
+
readonly xs: 11;
|
|
199
|
+
/** 13px — labels, secondary text, button small */
|
|
200
|
+
readonly sm: 13;
|
|
201
|
+
/** 15px — body text, default input */
|
|
202
|
+
readonly md: 15;
|
|
203
|
+
/** 17px — section headings, large labels */
|
|
204
|
+
readonly lg: 17;
|
|
205
|
+
/** 20px — page sub-headings */
|
|
206
|
+
readonly xl: 20;
|
|
207
|
+
/** 24px — page headings */
|
|
208
|
+
readonly xxl: 24;
|
|
209
|
+
/** 28px — hero / display text */
|
|
210
|
+
readonly display: 28;
|
|
211
|
+
};
|
|
212
|
+
declare const LineHeight: {
|
|
213
|
+
/** Tight line-height for xs */
|
|
214
|
+
readonly xs: 15;
|
|
215
|
+
/** Tight line-height for sm */
|
|
216
|
+
readonly sm: 18;
|
|
217
|
+
/** Default line-height for md */
|
|
218
|
+
readonly md: 22;
|
|
219
|
+
/** Line-height for lg */
|
|
220
|
+
readonly lg: 24;
|
|
221
|
+
/** Line-height for xl */
|
|
222
|
+
readonly xl: 28;
|
|
223
|
+
/** Line-height for xxl */
|
|
224
|
+
readonly xxl: 32;
|
|
225
|
+
/** Line-height for display */
|
|
226
|
+
readonly display: 36;
|
|
227
|
+
};
|
|
228
|
+
type FontSizeKey = keyof typeof FontSize;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Centralized shadow/elevation tokens.
|
|
232
|
+
* iOS uses shadow* properties, Android uses elevation.
|
|
233
|
+
*
|
|
234
|
+
* Usage: `import { Shadow } from '@/theme/shadows'`
|
|
235
|
+
* `style={Shadow.md}`
|
|
236
|
+
*/
|
|
237
|
+
declare const Shadow: {
|
|
238
|
+
/** Subtle shadow — cards, inputs */
|
|
239
|
+
readonly sm: ViewStyle;
|
|
240
|
+
/** Medium shadow — dropdowns, popups */
|
|
241
|
+
readonly md: ViewStyle;
|
|
242
|
+
/** Strong shadow — modals, floating elements */
|
|
243
|
+
readonly lg: ViewStyle;
|
|
244
|
+
/** Extra strong — overlays */
|
|
245
|
+
readonly xl: ViewStyle;
|
|
246
|
+
/** No shadow */
|
|
247
|
+
readonly none: ViewStyle;
|
|
248
|
+
};
|
|
249
|
+
type ShadowLevel = keyof typeof Shadow;
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Centralized animation duration and easing tokens.
|
|
253
|
+
*
|
|
254
|
+
* Usage: `import { Duration } from '@/theme/animations'`
|
|
255
|
+
* `Animated.timing(anim, { duration: Duration.normal, ... })`
|
|
256
|
+
*/
|
|
257
|
+
declare const Duration: {
|
|
258
|
+
/** 100ms — micro-interactions (press feedback, check toggle) */
|
|
259
|
+
readonly instant: 100;
|
|
260
|
+
/** 150ms — quick transitions (button press, icon swap) */
|
|
261
|
+
readonly fast: 150;
|
|
262
|
+
/** 250ms — default transitions (modal, popup, focus ring) */
|
|
263
|
+
readonly normal: 250;
|
|
264
|
+
/** 350ms — deliberate transitions (page slide, bottom sheet) */
|
|
265
|
+
readonly slow: 350;
|
|
266
|
+
/** 500ms — emphasis transitions (celebration, onboarding) */
|
|
267
|
+
readonly slower: 500;
|
|
268
|
+
};
|
|
269
|
+
type DurationKey = keyof typeof Duration;
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Centralized z-index scale for consistent layering.
|
|
273
|
+
*
|
|
274
|
+
* Usage: `import { ZIndex } from '@/theme/zindex'`
|
|
275
|
+
* `style={{ zIndex: ZIndex.modal }}`
|
|
276
|
+
*/
|
|
277
|
+
declare const ZIndex: {
|
|
278
|
+
/** Base content layer */
|
|
279
|
+
readonly base: 0;
|
|
280
|
+
/** Sticky headers, FABs */
|
|
281
|
+
readonly sticky: 100;
|
|
282
|
+
/** Dropdown menus, select popups */
|
|
283
|
+
readonly dropdown: 1000;
|
|
284
|
+
/** Bottom sheets, drawers */
|
|
285
|
+
readonly drawer: 1100;
|
|
286
|
+
/** Modals, dialogs */
|
|
287
|
+
readonly modal: 2000;
|
|
288
|
+
/** Popup menus, tooltips */
|
|
289
|
+
readonly popup: 2500;
|
|
290
|
+
/** Toast notifications */
|
|
291
|
+
readonly toast: 3000;
|
|
292
|
+
/** Highest priority overlays (loading screens, critical alerts) */
|
|
293
|
+
readonly overlay: 4000;
|
|
294
|
+
};
|
|
295
|
+
type ZIndexKey = keyof typeof ZIndex;
|
|
296
|
+
|
|
297
|
+
export { AVATAR_COLORS, Colors, Duration, type DurationKey, FontFamily, FontSize, type FontSizeKey, type FontWeight, LineHeight, Shadow, type ShadowLevel, Spacing, type SpacingKey, ZIndex, type ZIndexKey };
|