@himakarinv/nativex 1.0.0

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 (170) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +105 -0
  3. package/images.d.ts +14 -0
  4. package/index.js +8 -0
  5. package/nativewind-preset.js +18 -0
  6. package/package.json +120 -0
  7. package/src/assets/branding/logo.jpg +0 -0
  8. package/src/assets/branding/softech-logo.png +0 -0
  9. package/src/assets/icons/2-layers.svg +3 -0
  10. package/src/assets/icons/Forbidden.svg +211 -0
  11. package/src/assets/icons/Internal-server-error.svg +119 -0
  12. package/src/assets/icons/Log-out-nav.svg +4 -0
  13. package/src/assets/icons/Not-Found.svg +282 -0
  14. package/src/assets/icons/Unauthorized.svg +314 -0
  15. package/src/assets/icons/User-Frame.svg +5 -0
  16. package/src/assets/icons/alert.svg +4 -0
  17. package/src/assets/icons/arrow-right.svg +3 -0
  18. package/src/assets/icons/avatar-female.svg +10 -0
  19. package/src/assets/icons/avatar-male.svg +10 -0
  20. package/src/assets/icons/bell.svg +3 -0
  21. package/src/assets/icons/calendar-event.svg +11 -0
  22. package/src/assets/icons/calendar.svg +6 -0
  23. package/src/assets/icons/card.svg +4 -0
  24. package/src/assets/icons/caret-right.svg +3 -0
  25. package/src/assets/icons/chat.svg +11 -0
  26. package/src/assets/icons/check.svg +3 -0
  27. package/src/assets/icons/checkbox-minus.svg +3 -0
  28. package/src/assets/icons/checkmark.svg +3 -0
  29. package/src/assets/icons/chevron-down.svg +3 -0
  30. package/src/assets/icons/chevron-left.svg +9 -0
  31. package/src/assets/icons/chevron-right.svg +9 -0
  32. package/src/assets/icons/circle-radio-active.svg +10 -0
  33. package/src/assets/icons/circle-radio.svg +10 -0
  34. package/src/assets/icons/clock.svg +3 -0
  35. package/src/assets/icons/close.svg +3 -0
  36. package/src/assets/icons/code.svg +3 -0
  37. package/src/assets/icons/country.svg +20 -0
  38. package/src/assets/icons/dot.svg +3 -0
  39. package/src/assets/icons/download.svg +1 -0
  40. package/src/assets/icons/dropdown-arrow.svg +3 -0
  41. package/src/assets/icons/dropdown-avatar.svg +3 -0
  42. package/src/assets/icons/email.svg +3 -0
  43. package/src/assets/icons/error.svg +3 -0
  44. package/src/assets/icons/eye-off.svg +1 -0
  45. package/src/assets/icons/eye.svg +1 -0
  46. package/src/assets/icons/hashtag-icon.svg +3 -0
  47. package/src/assets/icons/help-circle.svg +10 -0
  48. package/src/assets/icons/help.svg +4 -0
  49. package/src/assets/icons/hide-checkbox.svg +3 -0
  50. package/src/assets/icons/home-smile.svg +3 -0
  51. package/src/assets/icons/home.svg +3 -0
  52. package/src/assets/icons/info.svg +5 -0
  53. package/src/assets/icons/left-arrow.svg +3 -0
  54. package/src/assets/icons/log-out.svg +3 -0
  55. package/src/assets/icons/notification-box.svg +4 -0
  56. package/src/assets/icons/pencil.svg +1 -0
  57. package/src/assets/icons/plus.svg +3 -0
  58. package/src/assets/icons/radio-dot.svg +3 -0
  59. package/src/assets/icons/right-arrow.svg +3 -0
  60. package/src/assets/icons/search.svg +3 -0
  61. package/src/assets/icons/settings.svg +11 -0
  62. package/src/assets/icons/slack.svg +17 -0
  63. package/src/assets/icons/slash.svg +3 -0
  64. package/src/assets/icons/success.svg +3 -0
  65. package/src/assets/icons/successicon.svg +5 -0
  66. package/src/assets/icons/three-dot-vertical.svg +5 -0
  67. package/src/assets/icons/trash.svg +1 -0
  68. package/src/assets/icons/trend-down-01.svg +3 -0
  69. package/src/assets/icons/trend-up-01.svg +3 -0
  70. package/src/assets/icons/up-arrow.svg +3 -0
  71. package/src/assets/icons/user-plus.svg +10 -0
  72. package/src/assets/icons/user.svg +3 -0
  73. package/src/assets/icons/users.svg +3 -0
  74. package/src/assets/icons/vertical-dots-true-icon.svg +5 -0
  75. package/src/assets/icons/vertical-line.svg +3 -0
  76. package/src/assets/icons/vertical-three-dots-icon.svg +5 -0
  77. package/src/assets/icons/warning.svg +3 -0
  78. package/src/assets/icons/zap.svg +3 -0
  79. package/src/components/ActionsMenu/ActionsMenu.tsx +314 -0
  80. package/src/components/ActionsMenu/index.ts +2 -0
  81. package/src/components/Alert/Alert.tsx +291 -0
  82. package/src/components/Alert/index.ts +2 -0
  83. package/src/components/Badge/Badge.tsx +230 -0
  84. package/src/components/Badge/index.ts +2 -0
  85. package/src/components/Breadcrumb/Breadcrumb.tsx +364 -0
  86. package/src/components/Breadcrumb/index.ts +7 -0
  87. package/src/components/Button/Button.tsx +584 -0
  88. package/src/components/Button/index.ts +9 -0
  89. package/src/components/Checkbox/Checkbox.tsx +336 -0
  90. package/src/components/Checkbox/index.ts +2 -0
  91. package/src/components/CreatePassword/CreatePassword.tsx +161 -0
  92. package/src/components/CreatePassword/index.ts +2 -0
  93. package/src/components/DataTable/DataTable.tsx +822 -0
  94. package/src/components/DataTable/index.ts +10 -0
  95. package/src/components/Datepicker/Datepicker.tsx +797 -0
  96. package/src/components/Datepicker/index.ts +2 -0
  97. package/src/components/Dropdown/Dropdown.tsx +277 -0
  98. package/src/components/Dropdown/index.ts +7 -0
  99. package/src/components/DropdownMenu/DropdownMenu.tsx +471 -0
  100. package/src/components/DropdownMenu/index.ts +11 -0
  101. package/src/components/DynamicForm/DynamicForm.tsx +741 -0
  102. package/src/components/DynamicForm/index.ts +13 -0
  103. package/src/components/ErrorPages/ErrorPages.tsx +135 -0
  104. package/src/components/ErrorPages/index.ts +2 -0
  105. package/src/components/ForgotPassword/ForgotPassword.tsx +121 -0
  106. package/src/components/ForgotPassword/index.ts +2 -0
  107. package/src/components/HintError/HintError.tsx +37 -0
  108. package/src/components/HintError/index.ts +2 -0
  109. package/src/components/Icon/Icon.tsx +43 -0
  110. package/src/components/Icon/icon-registry.ts +227 -0
  111. package/src/components/Icon/index.ts +3 -0
  112. package/src/components/InputDropdown/InputDropdown.tsx +662 -0
  113. package/src/components/InputDropdown/index.ts +9 -0
  114. package/src/components/InputField/InputField.tsx +527 -0
  115. package/src/components/InputField/index.ts +2 -0
  116. package/src/components/Label/Label.tsx +88 -0
  117. package/src/components/Label/index.ts +2 -0
  118. package/src/components/LoginForm/LoginForm.tsx +158 -0
  119. package/src/components/LoginForm/index.ts +2 -0
  120. package/src/components/LoginShell/LoginShell.tsx +97 -0
  121. package/src/components/LoginShell/RoleCard.tsx +24 -0
  122. package/src/components/LoginShell/SoftechLogo.tsx +24 -0
  123. package/src/components/LoginShell/branding-assets.ts +2 -0
  124. package/src/components/LoginShell/index.ts +20 -0
  125. package/src/components/LoginShell/login-copy.ts +45 -0
  126. package/src/components/LoginShell/loginPageStyles.ts +210 -0
  127. package/src/components/Modals/Modals.tsx +313 -0
  128. package/src/components/Modals/index.ts +2 -0
  129. package/src/components/Offcanvas/Offcanvas.tsx +404 -0
  130. package/src/components/Offcanvas/index.ts +13 -0
  131. package/src/components/PageHeader/PageHeader.tsx +128 -0
  132. package/src/components/PageHeader/index.ts +2 -0
  133. package/src/components/Pagination/Pagination.tsx +540 -0
  134. package/src/components/Pagination/index.ts +8 -0
  135. package/src/components/ResetPassword/ResetPassword.tsx +172 -0
  136. package/src/components/ResetPassword/index.ts +2 -0
  137. package/src/components/RoleSelection/RoleSelection.tsx +111 -0
  138. package/src/components/RoleSelection/index.ts +2 -0
  139. package/src/components/SendOtp/SendOtp.tsx +149 -0
  140. package/src/components/SendOtp/index.ts +2 -0
  141. package/src/components/Sidenavbar/Sidenavbar.tsx +358 -0
  142. package/src/components/Sidenavbar/index.ts +2 -0
  143. package/src/components/StatCard/StatCard.tsx +393 -0
  144. package/src/components/StatCard/index.ts +6 -0
  145. package/src/components/Tabs/Tabs.tsx +239 -0
  146. package/src/components/Tabs/index.ts +2 -0
  147. package/src/components/Textarea/Textarea.tsx +217 -0
  148. package/src/components/Textarea/index.ts +2 -0
  149. package/src/components/Timepicker/Timepicker.tsx +384 -0
  150. package/src/components/Timepicker/index.ts +2 -0
  151. package/src/components/Toast/Toast.tsx +278 -0
  152. package/src/components/Toast/index.ts +2 -0
  153. package/src/components/Toggle/Toggle.tsx +296 -0
  154. package/src/components/Toggle/index.ts +2 -0
  155. package/src/components/Typeahead/Typeahead.tsx +521 -0
  156. package/src/components/Typeahead/index.ts +2 -0
  157. package/src/components/Verification/Verification.tsx +374 -0
  158. package/src/components/Verification/index.ts +2 -0
  159. package/src/index.ts +39 -0
  160. package/src/theme/borders.ts +19 -0
  161. package/src/theme/button.ts +41 -0
  162. package/src/theme/colors.ts +273 -0
  163. package/src/theme/index.ts +14 -0
  164. package/src/theme/nativewind-theme.js +182 -0
  165. package/src/theme/radius.ts +12 -0
  166. package/src/theme/shadows.ts +40 -0
  167. package/src/theme/spacing.ts +18 -0
  168. package/src/theme/typography.ts +35 -0
  169. package/src/utils/a11y.ts +21 -0
  170. package/svg.d.ts +7 -0
@@ -0,0 +1,273 @@
1
+ export const colors = {
2
+ primary: {
3
+ lightest: '#f8fcff',
4
+ lighter: '#e6f2ff',
5
+ light: '#dff3ff',
6
+ base: '#185197',
7
+ dark: '#69c1f7',
8
+ darker: '#0a376d',
9
+ darkHover: '#0f3d71',
10
+ lightHover: '#cce0f0',
11
+ lightestHover: '#d8eaf6',
12
+ background: '#edf6ff',
13
+ },
14
+ gray: {
15
+ lightest: '#fafafa',
16
+ lighter: '#f9fafb',
17
+ light: '#f2f4f7',
18
+ medium: '#d0d5dd',
19
+ base: '#d5d7da',
20
+ dark: '#535862',
21
+ darker: '#414651',
22
+ darkest: '#344054',
23
+ lightHover: '#f8f0f0',
24
+ lightestHover: '#f0e3e3',
25
+ },
26
+ danger: {
27
+ lightest: '#fffbfa',
28
+ lighter: '#fef3f2',
29
+ light: '#fee4e2',
30
+ medium: '#fecdca',
31
+ base: '#fda29b',
32
+ dark: '#d92d20',
33
+ darker: '#b42318',
34
+ darkest: '#912018',
35
+ lightestHover: '#fae8e6',
36
+ lightHover: '#fce4e2',
37
+ background: '#fdecea',
38
+ strong: '#c82333',
39
+ },
40
+ success: {
41
+ base: '#12b76a',
42
+ },
43
+ white: '#ffffff',
44
+ black: '#0e0e0e',
45
+ blackSoft: '#252b37',
46
+ transparent: 'transparent',
47
+ text: {
48
+ primary: '#0e0e0e',
49
+ muted: '#656565',
50
+ strong: '#2f2f2f',
51
+ },
52
+ borderSubtle: '#ececec',
53
+ surfaceMuted: '#f5f5f5',
54
+ interactive: {
55
+ accent: '#0447a8',
56
+ accentHover: '#033a8f',
57
+ },
58
+ placeholder: '#9CA3AF',
59
+ focus: '#2382a0',
60
+ checkbox: {
61
+ bgDefault: '#ffffff',
62
+ borderDefault: '#d5d7da',
63
+ bgActive: '#f8fcff',
64
+ borderActive: '#0447a8',
65
+ shadowRing: '#edf6ff',
66
+ shadowElevation: '#0a0d120d',
67
+ disabledBg: '#f5f5f5',
68
+ disabledBorder: '#e9eaeb',
69
+ disabledIcon: '#d5d7da',
70
+ label: '#414651',
71
+ labelDisabled: '#d5d7da',
72
+ description: '#535862',
73
+ descriptionDisabled: '#d5d7da',
74
+ icon: '#0447a8',
75
+ },
76
+ pagination: {
77
+ border: '#e9eaeb',
78
+ inactiveNumber: '#535862',
79
+ disabled: '#656565',
80
+ activeBg: '#dff3ff',
81
+ segmentedActiveBg: '#fafafa',
82
+ segmentedActiveText: '#2f2f2f',
83
+ segmentedDivider: '#d5d7da',
84
+ segmentedNumber: '#414651',
85
+ navText: '#252b37',
86
+ button: '#535862',
87
+ background: '#ffffff',
88
+ buttonHover: '#344054',
89
+ },
90
+ shadowKeyRgb: '10, 13, 18',
91
+ shadowKey: '#0a0d12',
92
+ boxShadowLight: 'rgba(10, 13, 18, 0.05)',
93
+ alert: {
94
+ successSurface: '#e6f4e9',
95
+ successBorder: '#218838',
96
+ infoSurface: '#dff3ff',
97
+ infoBorder: '#185197',
98
+ warningSurface: '#fff8e6',
99
+ warningBorder: '#b8860b',
100
+ errorSurface: '#fee4e2',
101
+ errorBorder: '#d92d20',
102
+ successText: '#218838',
103
+ warningText: '#e0a800',
104
+ hintText: '#0069d9',
105
+ errorText: '#c82333',
106
+ title: '#263238',
107
+ description: '#546e7a',
108
+ },
109
+ input: {
110
+ label: '#2f2f2f',
111
+ placeholder: '#9CA3AF',
112
+ border: '#ececec',
113
+ text: '#0e0e0e',
114
+ },
115
+ inputDropdown: {
116
+ text: '#181d27',
117
+ mutedText: '#717680',
118
+ },
119
+ textarea: {
120
+ background: '#ffffff',
121
+ text: '#0e0e0e',
122
+ placeholder: '#9CA3AF',
123
+ label: '#0e0e0e',
124
+ focusShadow: '#edf6ff',
125
+ shadow: 'rgba(10, 13, 18, 0.05)',
126
+ dangerBorder: '#fdecea',
127
+ },
128
+ tabs: {
129
+ rule: '#ececec',
130
+ inactiveLabel: '#656565',
131
+ activeLabel: '#0447a8',
132
+ activeIndicator: '#0447a8',
133
+ undergoFrameBorder: '#ececec',
134
+ undergoFrameBackground: '#f5f5f5',
135
+ undergoActiveSurface: '#ffffff',
136
+ undergoActiveLabel: '#2f2f2f',
137
+ },
138
+ toggle: {
139
+ on: '#0447a8',
140
+ onHover: '#033a8f',
141
+ onFocusRing: '#2382a0',
142
+ off: '#d0d5dd',
143
+ offHover: '#b8bec9',
144
+ offDisabled: '#f2f4f7',
145
+ onDisabled: '#9dbdee',
146
+ thumb: '#ffffff',
147
+ thumbShadow: 'rgba(10, 13, 18, 0.06)',
148
+ thumbShadowMd: 'rgba(10, 13, 18, 0.1)',
149
+ label: '#344054',
150
+ supporting: '#535862',
151
+ labelDisabled: '#d0d5dd',
152
+ },
153
+ datepicker: {
154
+ fieldSurface: '#ffffff',
155
+ fieldBorder: '#d9dbdc',
156
+ fieldText: '#2a2c2e',
157
+ fieldHoverSurface: '#e8eef5',
158
+ fieldHoverBorder: '#185197',
159
+ fieldFocusBorder: '#2382a0',
160
+ fieldErrorBorder: '#a93f34',
161
+ fieldDisabledSurface: '#f0f1f1',
162
+ fieldDisabledBorder: '#d9dbdc',
163
+ fieldReadonlySurface: '#f5f5f5',
164
+ fieldLabelMuted: '#656565',
165
+ fieldErrorText: '#a93f34',
166
+ popupCellText: '#2a2c2e',
167
+ popupCellOutsideText: '#656565',
168
+ popupCellHoverBg: '#e8eef5',
169
+ popupCellHoverBorder: '#185197',
170
+ popupFocusRingInner: '#ffffff',
171
+ popupFocusRingOuter: '#2382a0',
172
+ popupCellSelectedBg: '#185197',
173
+ popupCellSelectedHoverBg: '#144580',
174
+ popupCellSelectedText: '#ffffff',
175
+ popupIconHoverBg: '#e8eef5',
176
+ popupIconHoverBorder: '#185197',
177
+ rangeBg: '#e8eef5',
178
+ rangeText: '#2a2c2e',
179
+ },
180
+ dataTable: {
181
+ rowBg: '#ffffff',
182
+ rowStripeBg: '#fafafa',
183
+ rowHoverOdd: '#f5f5f5',
184
+ rowHoverEven: '#f2f4f7',
185
+ border: '#e0c0af',
186
+ text: '#535862',
187
+ muted: '#535862',
188
+ namePrimary: '#181d27',
189
+ inactiveBg: '#f9fafb',
190
+ },
191
+ statCard: {
192
+ surface: '#ffffff',
193
+ border: '#ececec',
194
+ label: '#2f2f2f',
195
+ value: '#0e0e0e',
196
+ subtitle: '#656565',
197
+ iconBg: '#185197',
198
+ iconColor: '#ffffff',
199
+ iconSuccessBg: '#12b76a',
200
+ iconPrimaryBg: '#185197',
201
+ iconWarningBg: '#f79009',
202
+ iconErrorBg: '#d92d20',
203
+ iconInfoBg: '#0ba5ec',
204
+ iconGrayBg: '#535862',
205
+ trendUp: '#12b76a',
206
+ trendDown: '#f04438',
207
+ },
208
+ login: {
209
+ roleCardBorder: '#0c7ae8',
210
+ verificationFieldBorder: '#69c1f7',
211
+ },
212
+ timepicker: {
213
+ border: '#ececec',
214
+ background: '#ffffff',
215
+ text: '#0e0e0e',
216
+ placeholder: '#9CA3AF',
217
+ focus: '#edf6ff',
218
+ hover: '#cce0f0',
219
+ disabled: '#f2f4f7',
220
+ disabledBackground: '#f9fafb',
221
+ disabledText: '#d0d5dd',
222
+ },
223
+ badge: {
224
+ gray: { bg: '#f5f5f5', text: '#414651', icon: '#717680' },
225
+ primary: { bg: '#f9f5ff', text: '#0447a8', icon: '#9e77ed' },
226
+ error: { bg: '#fef3f2', text: '#b42318', icon: '#f04438' },
227
+ warning: { bg: '#fffaeb', text: '#b54708', icon: '#f79009' },
228
+ success: { bg: '#ecfdf3', text: '#027a48', icon: '#12b76a' },
229
+ blueGray: { bg: '#f8f9fc', text: '#363f72', icon: '#4e5ba6' },
230
+ blueLight: { bg: '#f0f9ff', text: '#026aa2', icon: '#0ba5ec' },
231
+ blue: { bg: '#eff8ff', text: '#175cd3', icon: '#2e90fa' },
232
+ indigo: { bg: '#eef4ff', text: '#3538cd', icon: '#6172f3' },
233
+ purple: { bg: '#f4f3ff', text: '#5925dc', icon: '#7a5af8' },
234
+ pink: { bg: '#fdf2fa', text: '#c11574', icon: '#ee46bc' },
235
+ rose: { bg: '#fff1f3', text: '#c01048', icon: '#f63d68' },
236
+ orange: { bg: '#fff6ed', text: '#c4320a', icon: '#fb6514' },
237
+ },
238
+ breadcrumb: {
239
+ link: '#0447a8',
240
+ cardBg: '#f7f8fa',
241
+ cardText: '#2f2f2f',
242
+ cardCurrent: '#0447a8',
243
+ normalText: '#656565',
244
+ withIconsText: '#2f2f2f',
245
+ },
246
+ modal: {
247
+ backdrop: '#101828ff',
248
+ },
249
+ actionsMenu: {
250
+ triggerBg: '#f8fcff',
251
+ triggerBorder: '#185197',
252
+ triggerHoverBg: '#dff3ff',
253
+ triggerOpenBg: '#dff3ff',
254
+ triggerHoverBorder: '#033a8f',
255
+ triggerOpenBorder: '#033a8f',
256
+ icon: '#414651',
257
+ panelBg: '#ffffff',
258
+ panelBorder: '#ececec',
259
+ divider: '#ececec',
260
+ itemHoverBg: '#f9fafb',
261
+ },
262
+ sidenavbar: {
263
+ background: '#f8f9fa',
264
+ border: '#e0c0af',
265
+ text: '#656565',
266
+ activeText: '#5c2800',
267
+ activeBackground: '#ff7a00',
268
+ hoverBackground: '#FFD0A8',
269
+ hoverText: '#2f2f2f',
270
+ },
271
+ } as const;
272
+
273
+ export type Colors = typeof colors;
@@ -0,0 +1,14 @@
1
+ export { colors } from './colors';
2
+ export type { Colors } from './colors';
3
+ export { typography } from './typography';
4
+ export type { Typography } from './typography';
5
+ export { spacing } from './spacing';
6
+ export type { Spacing, SpacingKey } from './spacing';
7
+ export { radius } from './radius';
8
+ export type { Radius } from './radius';
9
+ export { borders } from './borders';
10
+ export type { Borders } from './borders';
11
+ export { shadows, segmentActiveShadow } from './shadows';
12
+ export type { Shadows } from './shadows';
13
+ export { button } from './button';
14
+ export type { Button as ButtonTokens } from './button';
@@ -0,0 +1,182 @@
1
+ const colors = {
2
+ transparent: 'transparent',
3
+ current: 'currentColor',
4
+ inherit: 'inherit',
5
+ white: '#ffffff',
6
+ black: '#0e0e0e',
7
+ 'black-soft': '#252b37',
8
+ 'border-subtle': '#ececec',
9
+ 'surface-muted': '#f5f5f5',
10
+ placeholder: '#9CA3AF',
11
+ focus: '#2382a0',
12
+ primary: {
13
+ lightest: '#f8fcff',
14
+ lighter: '#e6f2ff',
15
+ light: '#dff3ff',
16
+ base: '#185197',
17
+ dark: '#69c1f7',
18
+ darker: '#0a376d',
19
+ 'dark-hover': '#0f3d71',
20
+ 'light-hover': '#cce0f0',
21
+ 'lightest-hover': '#d8eaf6',
22
+ background: '#edf6ff',
23
+ },
24
+ gray: {
25
+ lightest: '#fafafa',
26
+ lighter: '#f9fafb',
27
+ light: '#f2f4f7',
28
+ medium: '#d0d5dd',
29
+ base: '#d5d7da',
30
+ dark: '#535862',
31
+ darker: '#414651',
32
+ darkest: '#344054',
33
+ 'light-hover': '#f8f0f0',
34
+ 'lightest-hover': '#f0e3e3',
35
+ },
36
+ danger: {
37
+ lightest: '#fffbfa',
38
+ lighter: '#fef3f2',
39
+ light: '#fee4e2',
40
+ medium: '#fecdca',
41
+ base: '#fda29b',
42
+ dark: '#d92d20',
43
+ darker: '#b42318',
44
+ darkest: '#912018',
45
+ 'lightest-hover': '#fae8e6',
46
+ 'light-hover': '#fce4e2',
47
+ background: '#fdecea',
48
+ strong: '#c82333',
49
+ },
50
+ success: {
51
+ base: '#12b76a',
52
+ },
53
+ text: {
54
+ primary: '#0e0e0e',
55
+ muted: '#656565',
56
+ strong: '#2f2f2f',
57
+ },
58
+ interactive: {
59
+ accent: '#0447a8',
60
+ 'accent-hover': '#033a8f',
61
+ },
62
+ alert: {
63
+ 'success-surface': '#e6f4e9',
64
+ 'success-border': '#218838',
65
+ 'info-surface': '#dff3ff',
66
+ 'info-border': '#185197',
67
+ 'warning-surface': '#fff8e6',
68
+ 'warning-border': '#b8860b',
69
+ 'error-surface': '#fee4e2',
70
+ 'error-border': '#d92d20',
71
+ 'success-text': '#218838',
72
+ 'warning-text': '#e0a800',
73
+ 'hint-text': '#0069d9',
74
+ 'error-text': '#c82333',
75
+ title: '#263238',
76
+ description: '#546e7a',
77
+ },
78
+ input: {
79
+ label: '#2f2f2f',
80
+ placeholder: '#9CA3AF',
81
+ border: '#ececec',
82
+ text: '#0e0e0e',
83
+ },
84
+ badge: {
85
+ gray: { bg: '#f5f5f5', text: '#414651', icon: '#717680' },
86
+ primary: { bg: '#f9f5ff', text: '#0447a8', icon: '#9e77ed' },
87
+ error: { bg: '#fef3f2', text: '#b42318', icon: '#f04438' },
88
+ warning: { bg: '#fffaeb', text: '#b54708', icon: '#f79009' },
89
+ success: { bg: '#ecfdf3', text: '#027a48', icon: '#12b76a' },
90
+ },
91
+ };
92
+
93
+ const spacing = {
94
+ none: '0px',
95
+ xs: '2px',
96
+ sm: '4px',
97
+ md: '8px',
98
+ base: '12px',
99
+ lg: '16px',
100
+ xl: '20px',
101
+ '2xl': '24px',
102
+ '3xl': '28px',
103
+ '4xl': '32px',
104
+ '5xl': '36px',
105
+ '6xl': '40px',
106
+ '7xl': '44px',
107
+ 'btn-sm-y': '4px',
108
+ 'btn-sm-x': '8px',
109
+ 'btn-md-y': '6px',
110
+ 'btn-md-x': '12px',
111
+ 'btn-lg-y': '8px',
112
+ 'btn-lg-x': '16px',
113
+ 'btn-xl-y': '10px',
114
+ 'btn-xl-x': '20px',
115
+ };
116
+
117
+ const height = {
118
+ 'btn-sm': '36px',
119
+ 'btn-md': '44px',
120
+ 'btn-lg': '48px',
121
+ 'btn-xl': '56px',
122
+ };
123
+
124
+ const width = {
125
+ 'btn-sm': '36px',
126
+ 'btn-md': '44px',
127
+ 'btn-lg': '48px',
128
+ 'btn-xl': '56px',
129
+ };
130
+
131
+ const borderRadius = {
132
+ none: '0px',
133
+ sm: '4px',
134
+ md: '8px',
135
+ lg: '12px',
136
+ xl: '16px',
137
+ full: '9999px',
138
+ pill: '999px',
139
+ button: '8px',
140
+ };
141
+
142
+ const fontFamily = {
143
+ sans: ['Inter'],
144
+ };
145
+
146
+ const fontSize = {
147
+ sm: ['14px', { lineHeight: '20px' }],
148
+ md: ['15px', { lineHeight: '22px' }],
149
+ base: ['16px', { lineHeight: '24px' }],
150
+ lg: ['18px', { lineHeight: '24px' }],
151
+ xl: ['20px', { lineHeight: '24px' }],
152
+ '2xl': ['24px', { lineHeight: '32px' }],
153
+ };
154
+
155
+ const fontWeight = {
156
+ regular: '400',
157
+ normal: '400',
158
+ medium: '500',
159
+ semibold: '600',
160
+ large: '600',
161
+ bold: '700',
162
+ };
163
+
164
+ const borderWidth = {
165
+ none: '0px',
166
+ thin: '1px',
167
+ DEFAULT: '1px',
168
+ medium: '2px',
169
+ thick: '4px',
170
+ };
171
+
172
+ module.exports = {
173
+ colors,
174
+ spacing,
175
+ borderRadius,
176
+ fontFamily,
177
+ fontSize,
178
+ fontWeight,
179
+ borderWidth,
180
+ height,
181
+ width,
182
+ };
@@ -0,0 +1,12 @@
1
+ export const radius = {
2
+ none: 0,
3
+ sm: 4,
4
+ md: 8,
5
+ lg: 12,
6
+ xl: 16,
7
+ full: 9999,
8
+ pill: 999,
9
+ button: 8,
10
+ } as const;
11
+
12
+ export type Radius = typeof radius;
@@ -0,0 +1,40 @@
1
+ import { Platform, type ViewStyle } from 'react-native';
2
+
3
+ export const shadows = {
4
+ segmentActive: {
5
+ css: '0 0.125rem 0.25rem 0 #1b1c1d0a',
6
+ color: '#1b1c1d0a',
7
+ offsetY: 2,
8
+ radius: 4,
9
+ },
10
+ boxLight: {
11
+ css: 'rgba(10, 13, 18, 0.05)',
12
+ color: 'rgba(10, 13, 18, 0.05)',
13
+ offsetY: 1,
14
+ radius: 2,
15
+ opacity: 0.05,
16
+ },
17
+ toggleThumb: {
18
+ css: 'rgba(10, 13, 18, 0.06)',
19
+ color: 'rgba(10, 13, 18, 0.06)',
20
+ },
21
+ toggleThumbMd: {
22
+ css: 'rgba(10, 13, 18, 0.1)',
23
+ color: 'rgba(10, 13, 18, 0.1)',
24
+ },
25
+ } as const;
26
+
27
+ export function segmentActiveShadow(): ViewStyle {
28
+ if (Platform.OS === 'android') {
29
+ return { elevation: 2 };
30
+ }
31
+
32
+ return {
33
+ shadowColor: '#1b1c1d',
34
+ shadowOffset: { width: 0, height: 2 },
35
+ shadowOpacity: 0.04,
36
+ shadowRadius: 4,
37
+ };
38
+ }
39
+
40
+ export type Shadows = typeof shadows;
@@ -0,0 +1,18 @@
1
+ export const spacing = {
2
+ none: 0,
3
+ xs: 2,
4
+ sm: 4,
5
+ md: 8,
6
+ base: 12,
7
+ lg: 16,
8
+ xl: 20,
9
+ '2xl': 24,
10
+ '3xl': 28,
11
+ '4xl': 32,
12
+ '5xl': 36,
13
+ '6xl': 40,
14
+ '7xl': 44,
15
+ } as const;
16
+
17
+ export type Spacing = typeof spacing;
18
+ export type SpacingKey = keyof Spacing;
@@ -0,0 +1,35 @@
1
+ export const typography = {
2
+ fontFamily: {
3
+ base: 'Inter',
4
+ },
5
+ fontWeight: {
6
+ regular: '400' as const,
7
+ normal: '400' as const,
8
+ medium: '500' as const,
9
+ semibold: '600' as const,
10
+ large: '600' as const,
11
+ bold: '700' as const,
12
+ },
13
+ fontSize: {
14
+ sm: 14,
15
+ md: 15,
16
+ base: 16,
17
+ lg: 18,
18
+ xl: 20,
19
+ '2xl': 24,
20
+ },
21
+ lineHeight: {
22
+ tight: 1.25,
23
+ normal: 1.5,
24
+ relaxed: 1.75,
25
+ },
26
+ buttonLineHeight: {
27
+ sm: 20,
28
+ md: 20,
29
+ lg: 24,
30
+ xl: 24,
31
+ '2xl': 28,
32
+ },
33
+ } as const;
34
+
35
+ export type Typography = typeof typography;
@@ -0,0 +1,21 @@
1
+ import { Platform } from 'react-native';
2
+
3
+ type ImportantForAccessibility = 'auto' | 'yes' | 'no' | 'no-hide-descendants';
4
+
5
+ export function a11yHiddenProps(
6
+ hidden = true,
7
+ importantForAccessibility: ImportantForAccessibility = 'no-hide-descendants',
8
+ ) {
9
+ if (!hidden) {
10
+ return {};
11
+ }
12
+
13
+ if (Platform.OS === 'web') {
14
+ return { 'aria-hidden': true as const };
15
+ }
16
+
17
+ return {
18
+ accessibilityElementsHidden: true as const,
19
+ importantForAccessibility,
20
+ };
21
+ }
package/svg.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ declare module '*.svg' {
2
+ import type { ComponentType } from 'react';
3
+ import type { SvgProps } from 'react-native-svg';
4
+
5
+ const content: ComponentType<SvgProps>;
6
+ export default content;
7
+ }