@campxdev/react-native-blueprint 0.1.3 → 0.1.4

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 (109) hide show
  1. package/README.md +98 -69
  2. package/lib/module/app/_layout.js +7 -1
  3. package/lib/module/app/_layout.js.map +1 -1
  4. package/package.json +10 -6
  5. package/src/app/_layout.tsx +7 -1
  6. package/lib/typescript/src/app/_layout.d.ts +0 -8
  7. package/lib/typescript/src/app/_layout.d.ts.map +0 -1
  8. package/lib/typescript/src/components/theme-config.d.ts +0 -174
  9. package/lib/typescript/src/components/theme-config.d.ts.map +0 -1
  10. package/lib/typescript/src/components/ui/Accordion.d.ts +0 -103
  11. package/lib/typescript/src/components/ui/Accordion.d.ts.map +0 -1
  12. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts +0 -168
  13. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts.map +0 -1
  14. package/lib/typescript/src/components/ui/Alert.d.ts +0 -60
  15. package/lib/typescript/src/components/ui/Alert.d.ts.map +0 -1
  16. package/lib/typescript/src/components/ui/AppBar.d.ts +0 -227
  17. package/lib/typescript/src/components/ui/AppBar.d.ts.map +0 -1
  18. package/lib/typescript/src/components/ui/Aspect-Ratio.d.ts +0 -30
  19. package/lib/typescript/src/components/ui/Aspect-Ratio.d.ts.map +0 -1
  20. package/lib/typescript/src/components/ui/Avatar.d.ts +0 -1351
  21. package/lib/typescript/src/components/ui/Avatar.d.ts.map +0 -1
  22. package/lib/typescript/src/components/ui/Badge.d.ts +0 -204
  23. package/lib/typescript/src/components/ui/Badge.d.ts.map +0 -1
  24. package/lib/typescript/src/components/ui/Bottom-Sheet.d.ts +0 -43
  25. package/lib/typescript/src/components/ui/Bottom-Sheet.d.ts.map +0 -1
  26. package/lib/typescript/src/components/ui/Button.d.ts +0 -176
  27. package/lib/typescript/src/components/ui/Button.d.ts.map +0 -1
  28. package/lib/typescript/src/components/ui/Card.d.ts +0 -854
  29. package/lib/typescript/src/components/ui/Card.d.ts.map +0 -1
  30. package/lib/typescript/src/components/ui/Checkbox.d.ts +0 -36
  31. package/lib/typescript/src/components/ui/Checkbox.d.ts.map +0 -1
  32. package/lib/typescript/src/components/ui/Collapsible.d.ts +0 -66
  33. package/lib/typescript/src/components/ui/Collapsible.d.ts.map +0 -1
  34. package/lib/typescript/src/components/ui/Context-Menu.d.ts +0 -150
  35. package/lib/typescript/src/components/ui/Context-Menu.d.ts.map +0 -1
  36. package/lib/typescript/src/components/ui/Custom-Card.d.ts +0 -864
  37. package/lib/typescript/src/components/ui/Custom-Card.d.ts.map +0 -1
  38. package/lib/typescript/src/components/ui/Dialog.d.ts +0 -126
  39. package/lib/typescript/src/components/ui/Dialog.d.ts.map +0 -1
  40. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts +0 -284
  41. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts.map +0 -1
  42. package/lib/typescript/src/components/ui/Floating-Action.d.ts +0 -44
  43. package/lib/typescript/src/components/ui/Floating-Action.d.ts.map +0 -1
  44. package/lib/typescript/src/components/ui/Greeting-Card.d.ts +0 -153
  45. package/lib/typescript/src/components/ui/Greeting-Card.d.ts.map +0 -1
  46. package/lib/typescript/src/components/ui/Hover-Card.d.ts +0 -68
  47. package/lib/typescript/src/components/ui/Hover-Card.d.ts.map +0 -1
  48. package/lib/typescript/src/components/ui/Icon.d.ts +0 -43
  49. package/lib/typescript/src/components/ui/Icon.d.ts.map +0 -1
  50. package/lib/typescript/src/components/ui/Input.d.ts +0 -52
  51. package/lib/typescript/src/components/ui/Input.d.ts.map +0 -1
  52. package/lib/typescript/src/components/ui/Label.d.ts +0 -105
  53. package/lib/typescript/src/components/ui/Label.d.ts.map +0 -1
  54. package/lib/typescript/src/components/ui/Menubar.d.ts +0 -175
  55. package/lib/typescript/src/components/ui/Menubar.d.ts.map +0 -1
  56. package/lib/typescript/src/components/ui/Native-Only-Animated-View.d.ts +0 -26
  57. package/lib/typescript/src/components/ui/Native-Only-Animated-View.d.ts.map +0 -1
  58. package/lib/typescript/src/components/ui/NavBar.d.ts +0 -273
  59. package/lib/typescript/src/components/ui/NavBar.d.ts.map +0 -1
  60. package/lib/typescript/src/components/ui/Popover.d.ts +0 -71
  61. package/lib/typescript/src/components/ui/Popover.d.ts.map +0 -1
  62. package/lib/typescript/src/components/ui/Progress.d.ts +0 -27
  63. package/lib/typescript/src/components/ui/Progress.d.ts.map +0 -1
  64. package/lib/typescript/src/components/ui/Radio-Group.d.ts +0 -47
  65. package/lib/typescript/src/components/ui/Radio-Group.d.ts.map +0 -1
  66. package/lib/typescript/src/components/ui/Select.d.ts +0 -107
  67. package/lib/typescript/src/components/ui/Select.d.ts.map +0 -1
  68. package/lib/typescript/src/components/ui/Separator.d.ts +0 -166
  69. package/lib/typescript/src/components/ui/Separator.d.ts.map +0 -1
  70. package/lib/typescript/src/components/ui/SizedBox.d.ts +0 -79
  71. package/lib/typescript/src/components/ui/SizedBox.d.ts.map +0 -1
  72. package/lib/typescript/src/components/ui/Skeleton.d.ts +0 -40
  73. package/lib/typescript/src/components/ui/Skeleton.d.ts.map +0 -1
  74. package/lib/typescript/src/components/ui/Slider.d.ts +0 -55
  75. package/lib/typescript/src/components/ui/Slider.d.ts.map +0 -1
  76. package/lib/typescript/src/components/ui/Switch.d.ts +0 -34
  77. package/lib/typescript/src/components/ui/Switch.d.ts.map +0 -1
  78. package/lib/typescript/src/components/ui/Table.d.ts +0 -70
  79. package/lib/typescript/src/components/ui/Table.d.ts.map +0 -1
  80. package/lib/typescript/src/components/ui/Tabs.d.ts +0 -51
  81. package/lib/typescript/src/components/ui/Tabs.d.ts.map +0 -1
  82. package/lib/typescript/src/components/ui/Text.d.ts +0 -116
  83. package/lib/typescript/src/components/ui/Text.d.ts.map +0 -1
  84. package/lib/typescript/src/components/ui/Textarea.d.ts +0 -61
  85. package/lib/typescript/src/components/ui/Textarea.d.ts.map +0 -1
  86. package/lib/typescript/src/components/ui/Theme-Toggle.d.ts +0 -194
  87. package/lib/typescript/src/components/ui/Theme-Toggle.d.ts.map +0 -1
  88. package/lib/typescript/src/components/ui/Toast.d.ts +0 -55
  89. package/lib/typescript/src/components/ui/Toast.d.ts.map +0 -1
  90. package/lib/typescript/src/components/ui/Toggle-Group.d.ts +0 -49
  91. package/lib/typescript/src/components/ui/Toggle-Group.d.ts.map +0 -1
  92. package/lib/typescript/src/components/ui/Toggle.d.ts +0 -53
  93. package/lib/typescript/src/components/ui/Toggle.d.ts.map +0 -1
  94. package/lib/typescript/src/components/ui/Tooltip.d.ts +0 -71
  95. package/lib/typescript/src/components/ui/Tooltip.d.ts.map +0 -1
  96. package/lib/typescript/src/components/ui/index.d.ts +0 -44
  97. package/lib/typescript/src/components/ui/index.d.ts.map +0 -1
  98. package/lib/typescript/src/index.d.ts +0 -9
  99. package/lib/typescript/src/index.d.ts.map +0 -1
  100. package/lib/typescript/src/lib/ThemeProvider.d.ts +0 -137
  101. package/lib/typescript/src/lib/ThemeProvider.d.ts.map +0 -1
  102. package/lib/typescript/src/lib/cornerRadius.d.ts +0 -112
  103. package/lib/typescript/src/lib/cornerRadius.d.ts.map +0 -1
  104. package/lib/typescript/src/lib/fonts.d.ts +0 -21
  105. package/lib/typescript/src/lib/fonts.d.ts.map +0 -1
  106. package/lib/typescript/src/lib/theme.d.ts +0 -87
  107. package/lib/typescript/src/lib/theme.d.ts.map +0 -1
  108. package/lib/typescript/src/lib/utils.d.ts +0 -111
  109. package/lib/typescript/src/lib/utils.d.ts.map +0 -1
package/README.md CHANGED
@@ -13,25 +13,39 @@ A production-ready React Native UI component library built with NativeWind (Tail
13
13
  - 🔧 **Customizable** - Easy to theme and extend with Tailwind utilities
14
14
  - ⚡ **Performant** - Built on React Native Reanimated for smooth animations
15
15
 
16
+ ## ⚠️ Prerequisites
17
+
18
+ This library requires **NativeWind v4+** to be configured in your React Native project. NativeWind provides Tailwind CSS styling for React Native.
19
+
20
+ **Not using NativeWind?** This library is designed specifically for NativeWind-based projects. If you're not using NativeWind, you'll need to configure it first or consider an alternative component library.
21
+
16
22
  ## Installation
17
23
 
24
+ ### 1. Install the package
25
+
18
26
  ```sh
19
- npm install react-native-blueprint
27
+ npm install @campxdev/react-native-blueprint
20
28
  # or
21
- yarn add react-native-blueprint
29
+ yarn add @campxdev/react-native-blueprint
22
30
  ```
23
31
 
24
- ### Peer Dependencies
25
-
26
- This library requires the following peer dependencies:
32
+ ### 2. Install required peer dependencies
27
33
 
28
34
  ```sh
29
- npm install react react-native nativewind tailwindcss react-native-reanimated react-native-gesture-handler react-native-svg
35
+ npm install nativewind tailwindcss tailwindcss-animate react-native-reanimated react-native-gesture-handler react-native-svg react-native-safe-area-context
36
+ # or
37
+ yarn add nativewind tailwindcss tailwindcss-animate react-native-reanimated react-native-gesture-handler react-native-svg react-native-safe-area-context
30
38
  ```
31
39
 
32
- ### Setup
40
+ ### 3. Import the global styles
41
+
42
+ In your app entry point (e.g., `App.tsx` or `_layout.tsx`):
33
43
 
34
- 1. **Configure NativeWind:**
44
+ ```tsx
45
+ import '@campxdev/react-native-blueprint/global.css';
46
+ ```
47
+
48
+ ### 4. Configure NativeWind
35
49
 
36
50
  Create or update `tailwind.config.js`:
37
51
 
@@ -42,7 +56,7 @@ module.exports = {
42
56
  darkMode: 'class',
43
57
  content: [
44
58
  './src/**/*.{ts,tsx}',
45
- './node_modules/react-native-blueprint/src/**/*.{ts,tsx}',
59
+ './node_modules/@campxdev/react-native-blueprint/src/**/*.{ts,tsx}',
46
60
  ],
47
61
  presets: [require('nativewind/preset')],
48
62
  theme: {
@@ -91,64 +105,7 @@ module.exports = {
91
105
  };
92
106
  ```
93
107
 
94
- 2. **Import global styles:**
95
-
96
- Create `global.css` and import the theme:
97
-
98
- ```css
99
- @tailwind base;
100
- @tailwind components;
101
- @tailwind utilities;
102
-
103
- @layer base {
104
- :root {
105
- --background: 0 0% 100%;
106
- --foreground: 240 10% 3.9%;
107
- --card: 0 0% 100%;
108
- --card-foreground: 240 10% 3.9%;
109
- --popover: 0 0% 100%;
110
- --popover-foreground: 240 10% 3.9%;
111
- --primary: 240 5.9% 10%;
112
- --primary-foreground: 0 0% 98%;
113
- --secondary: 240 4.8% 95.9%;
114
- --secondary-foreground: 240 5.9% 10%;
115
- --muted: 240 4.8% 95.9%;
116
- --muted-foreground: 240 3.8% 46.1%;
117
- --accent: 240 4.8% 95.9%;
118
- --accent-foreground: 240 5.9% 10%;
119
- --destructive: 0 84.2% 60.2%;
120
- --destructive-foreground: 0 0% 98%;
121
- --border: 240 5.9% 90%;
122
- --input: 240 5.9% 90%;
123
- --ring: 240 5.9% 10%;
124
- --radius: 0.5rem;
125
- }
126
-
127
- .dark {
128
- --background: 240 10% 3.9%;
129
- --foreground: 0 0% 98%;
130
- --card: 240 10% 3.9%;
131
- --card-foreground: 0 0% 98%;
132
- --popover: 240 10% 3.9%;
133
- --popover-foreground: 0 0% 98%;
134
- --primary: 0 0% 98%;
135
- --primary-foreground: 240 5.9% 10%;
136
- --secondary: 240 3.7% 15.9%;
137
- --secondary-foreground: 0 0% 98%;
138
- --muted: 240 3.7% 15.9%;
139
- --muted-foreground: 240 5% 64.9%;
140
- --accent: 240 3.7% 15.9%;
141
- --accent-foreground: 0 0% 98%;
142
- --destructive: 0 62.8% 30.6%;
143
- --destructive-foreground: 0 0% 98%;
144
- --border: 240 3.7% 15.9%;
145
- --input: 240 3.7% 15.9%;
146
- --ring: 240 4.9% 83.9%;
147
- }
148
- }
149
- ```
150
-
151
- 3. **Configure Metro:**
108
+ ### 5. Configure Metro
152
109
 
153
110
  Update `metro.config.js`:
154
111
 
@@ -166,7 +123,10 @@ module.exports = withNativeWind(config, { input: './global.css' });
166
123
  ### Basic Example
167
124
 
168
125
  ```tsx
169
- import { Button, Card, Text, Input, Alert } from 'react-native-blueprint';
126
+ // Import CSS at the top of your app entry point (do this ONCE)
127
+ import '@campxdev/react-native-blueprint/global.css';
128
+
129
+ import { Button, Card, Text, Input, Alert } from '@campxdev/react-native-blueprint';
170
130
  import { View } from 'react-native';
171
131
 
172
132
  function App() {
@@ -295,9 +255,78 @@ npm run android # Run on Android emulator
295
255
  All components are fully typed with TypeScript. Import types as needed:
296
256
 
297
257
  ```tsx
298
- import type { ButtonProps, CardProps } from 'react-native-blueprint';
258
+ import type { ButtonProps, CardProps } from '@campxdev/react-native-blueprint';
259
+ ```
260
+
261
+ ## Troubleshooting
262
+
263
+ ### "Cannot find module '@campxdev/react-native-blueprint/global.css'"
264
+
265
+ Make sure you've:
266
+ 1. Installed NativeWind: `npm install nativewind tailwindcss`
267
+ 2. Configured Metro with NativeWind plugin (see Installation Step 5)
268
+ 3. Imported the CSS in your app entry point
269
+
270
+ ### "CSS import is not supported"
271
+
272
+ Your Metro bundler needs the NativeWind plugin. Update `metro.config.js`:
273
+
274
+ ```js
275
+ const { getDefaultConfig } = require('expo/metro-config');
276
+ const { withNativeWind } = require('nativewind/metro');
277
+
278
+ const config = getDefaultConfig(__dirname);
279
+
280
+ module.exports = withNativeWind(config, { input: './global.css' });
281
+ ```
282
+
283
+ ### Components not styling correctly
284
+
285
+ Ensure your `tailwind.config.js` includes the package path in the content array:
286
+
287
+ ```js
288
+ content: [
289
+ './src/**/*.{ts,tsx}',
290
+ './node_modules/@campxdev/react-native-blueprint/src/**/*.{ts,tsx}',
291
+ ],
292
+ ```
293
+
294
+ ## Migration from v0.1.x to v0.2.x
295
+
296
+ **Breaking Change**: CSS must now be manually imported.
297
+
298
+ ### What changed?
299
+
300
+ In v0.1.x, the CSS was automatically imported when you used `RootLayout`. In v0.2.x, you need to explicitly import the CSS file.
301
+
302
+ ### Migration steps
303
+
304
+ 1. **Add CSS import** to your app entry point (e.g., `App.tsx` or `_layout.tsx`):
305
+
306
+ ```tsx
307
+ import '@campxdev/react-native-blueprint/global.css';
308
+ ```
309
+
310
+ 2. **Install peer dependencies** (if not already installed):
311
+
312
+ ```sh
313
+ npm install nativewind tailwindcss tailwindcss-animate
314
+ # or
315
+ yarn add nativewind tailwindcss tailwindcss-animate
316
+ ```
317
+
318
+ 3. **Update imports** (if using the old package name):
319
+
320
+ ```tsx
321
+ // Old
322
+ import { Button } from 'react-native-blueprint';
323
+
324
+ // New
325
+ import { Button } from '@campxdev/react-native-blueprint';
299
326
  ```
300
327
 
328
+ That's it! Your app should work as before.
329
+
301
330
  ## Contributing
302
331
 
303
332
  Contributions are welcome! Please follow these steps:
@@ -1,6 +1,12 @@
1
1
  "use strict";
2
2
 
3
- import '../global.css';
3
+ /**
4
+ * RootLayout component - provides theme and navigation setup
5
+ *
6
+ * NOTE: CSS import intentionally removed for library export.
7
+ * Consumers must import '@campxdev/react-native-blueprint/global.css'
8
+ * in their app entry point.
9
+ */
4
10
  import { PortalHost } from '@rn-primitives/portal';
5
11
  import { StatusBar } from 'react-native';
6
12
  import { NAV_THEME } from "../lib/theme.js";
@@ -1 +1 @@
1
- {"version":3,"names":["PortalHost","StatusBar","NAV_THEME","ThemeProvider","useColorScheme","jsx","_jsx","jsxs","_jsxs","RootLayout","children","colorScheme","value","barStyle"],"sourceRoot":"../../../src","sources":["app/_layout.tsx"],"mappings":";;AAAA,OAAO,eAAe;AACtB,SAASA,UAAU,QAAQ,uBAAuB;AAClD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,QAAQ,iBAAc;AACxC,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,cAAc,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAO5C,eAAe,SAASC,UAAUA,CAAC;EAAEC;AAA0B,CAAC,EAAE;EAChE,MAAM;IAAEC;EAAY,CAAC,GAAGP,cAAc,CAAC,CAAC;EAExC,oBACEI,KAAA,CAACL,aAAa;IAACS,KAAK,EAAEV,SAAS,CAACS,WAAW,IAAI,OAAO,CAAE;IAAAD,QAAA,gBACtDJ,IAAA,CAACL,SAAS;MACRY,QAAQ,EAAEF,WAAW,KAAK,MAAM,GAAG,eAAe,GAAG;IAAe,CACrE,CAAC,EACDD,QAAQ,eACTJ,IAAA,CAACN,UAAU,IAAE,CAAC;EAAA,CACD,CAAC;AAEpB","ignoreList":[]}
1
+ {"version":3,"names":["PortalHost","StatusBar","NAV_THEME","ThemeProvider","useColorScheme","jsx","_jsx","jsxs","_jsxs","RootLayout","children","colorScheme","value","barStyle"],"sourceRoot":"../../../src","sources":["app/_layout.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,uBAAuB;AAClD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,SAAS,QAAQ,iBAAc;AACxC,SAASC,aAAa,QAAQ,0BAA0B;AACxD,SAASC,cAAc,QAAQ,YAAY;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAO5C,eAAe,SAASC,UAAUA,CAAC;EAAEC;AAA0B,CAAC,EAAE;EAChE,MAAM;IAAEC;EAAY,CAAC,GAAGP,cAAc,CAAC,CAAC;EAExC,oBACEI,KAAA,CAACL,aAAa;IAACS,KAAK,EAAEV,SAAS,CAACS,WAAW,IAAI,OAAO,CAAE;IAAAD,QAAA,gBACtDJ,IAAA,CAACL,SAAS;MACRY,QAAQ,EAAEF,WAAW,KAAK,MAAM,GAAG,eAAe,GAAG;IAAe,CACrE,CAAC,EACDD,QAAQ,eACTJ,IAAA,CAACN,UAAU,IAAE,CAAC;EAAA,CACD,CAAC;AAEpB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@campxdev/react-native-blueprint",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "This is a react-native package for mobile apps",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -10,6 +10,7 @@
10
10
  "types": "./lib/typescript/src/index.d.ts",
11
11
  "default": "./lib/module/index.js"
12
12
  },
13
+ "./global.css": "./src/global.css",
13
14
  "./package.json": "./package.json"
14
15
  },
15
16
  "files": [
@@ -77,17 +78,22 @@
77
78
  "eslint-config-prettier": "^10.1.8",
78
79
  "eslint-plugin-prettier": "^5.5.4",
79
80
  "jest": "^29.7.0",
81
+ "nativewind": "^4.2.1",
80
82
  "prettier": "^3.6.2",
81
83
  "react": "19.1.0",
82
84
  "react-native": "0.81.4",
83
85
  "react-native-builder-bob": "^0.40.13",
84
86
  "release-it": "^19.0.4",
85
87
  "tailwindcss": "^3.4.17",
88
+ "tailwindcss-animate": "^1.0.7",
86
89
  "typescript": "^5.9.2"
87
90
  },
88
91
  "peerDependencies": {
92
+ "nativewind": "^4.0.0",
89
93
  "react": "*",
90
- "react-native": "*"
94
+ "react-native": "*",
95
+ "tailwindcss": "^3.4.0",
96
+ "tailwindcss-animate": "^1.0.0"
91
97
  },
92
98
  "workspaces": [
93
99
  "example"
@@ -184,8 +190,7 @@
184
190
  "expo": "^54.0.12",
185
191
  "expo-font": "^14.0.9",
186
192
  "figma-squircle": "^1.1.0",
187
- "lucide-react-native": "^0.486.0",
188
- "nativewind": "^4.2.1",
193
+ "lucide-react-native": "^0.546.0",
189
194
  "react-native-figma-squircle": "^0.4.0",
190
195
  "react-native-floating-action": "^1.22.0",
191
196
  "react-native-gesture-handler": "^2.28.0",
@@ -194,7 +199,6 @@
194
199
  "react-native-screens": "^4.7.1",
195
200
  "react-native-svg": "^15.14.0",
196
201
  "react-native-worklets": "0.5.1",
197
- "tailwind-merge": "^3.3.1",
198
- "tailwindcss-animate": "^1.0.7"
202
+ "tailwind-merge": "^3.3.1"
199
203
  }
200
204
  }
@@ -1,4 +1,10 @@
1
- import '../global.css';
1
+ /**
2
+ * RootLayout component - provides theme and navigation setup
3
+ *
4
+ * NOTE: CSS import intentionally removed for library export.
5
+ * Consumers must import '@campxdev/react-native-blueprint/global.css'
6
+ * in their app entry point.
7
+ */
2
8
  import { PortalHost } from '@rn-primitives/portal';
3
9
  import { StatusBar } from 'react-native';
4
10
  import { NAV_THEME } from '../lib/theme';
@@ -1,8 +0,0 @@
1
- import '../../global.css';
2
- import type { ReactNode } from 'react';
3
- interface RootLayoutProps {
4
- children: ReactNode;
5
- }
6
- export default function RootLayout({ children }: RootLayoutProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
8
- //# sourceMappingURL=_layout.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_layout.d.ts","sourceRoot":"","sources":["../../../../src/app/_layout.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,eAAe;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAY/D"}
@@ -1,174 +0,0 @@
1
- /**
2
- * Comprehensive Dark Theme Configuration
3
- *
4
- * This file provides complete theme tokens and utilities for consistent
5
- * dark mode support across all components in the Blueprint library.
6
- *
7
- * Best Practices:
8
- * - Uses HSL color format for better color manipulation
9
- * - Provides semantic color tokens (not raw colors)
10
- * - Maintains proper contrast ratios for accessibility (WCAG AA/AAA)
11
- * - Consistent with Tailwind CSS conventions
12
- */
13
- import type { ColorValue } from 'react-native';
14
- /**
15
- * Color tokens for light and dark themes
16
- * Each token follows the pattern: purpose-variant
17
- */
18
- export declare const THEME_COLORS: {
19
- readonly light: {
20
- readonly background: "hsl(0, 0%, 100%)";
21
- readonly foreground: "hsl(0, 0%, 3.9%)";
22
- readonly card: "hsl(0, 0%, 100%)";
23
- readonly cardForeground: "hsl(0, 0%, 3.9%)";
24
- readonly popover: "hsl(0, 0%, 100%)";
25
- readonly popoverForeground: "hsl(0, 0%, 3.9%)";
26
- readonly primary: "hsl(0, 0%, 9%)";
27
- readonly primaryForeground: "hsl(0, 0%, 98%)";
28
- readonly secondary: "hsl(0, 0%, 96.1%)";
29
- readonly secondaryForeground: "hsl(0, 0%, 9%)";
30
- readonly muted: "hsl(0, 0%, 96.1%)";
31
- readonly mutedForeground: "hsl(0, 0%, 45.1%)";
32
- readonly accent: "hsl(0, 0%, 96.1%)";
33
- readonly accentForeground: "hsl(0, 0%, 9%)";
34
- readonly destructive: "hsl(0, 84.2%, 60.2%)";
35
- readonly destructiveForeground: "hsl(0, 0%, 98%)";
36
- readonly border: "hsl(0, 0%, 89.8%)";
37
- readonly input: "hsl(0, 0%, 89.8%)";
38
- readonly ring: "hsl(0, 0%, 63%)";
39
- readonly success: "hsl(142, 76%, 36%)";
40
- readonly successForeground: "hsl(0, 0%, 98%)";
41
- readonly warning: "hsl(38, 92%, 50%)";
42
- readonly warningForeground: "hsl(0, 0%, 9%)";
43
- readonly info: "hsl(199, 89%, 48%)";
44
- readonly infoForeground: "hsl(0, 0%, 98%)";
45
- };
46
- readonly dark: {
47
- readonly background: "hsl(0, 0%, 3.9%)";
48
- readonly foreground: "hsl(0, 0%, 98%)";
49
- readonly card: "hsl(0, 0%, 3.9%)";
50
- readonly cardForeground: "hsl(0, 0%, 98%)";
51
- readonly popover: "hsl(0, 0%, 3.9%)";
52
- readonly popoverForeground: "hsl(0, 0%, 98%)";
53
- readonly primary: "hsl(0, 0%, 98%)";
54
- readonly primaryForeground: "hsl(0, 0%, 9%)";
55
- readonly secondary: "hsl(0, 0%, 14.9%)";
56
- readonly secondaryForeground: "hsl(0, 0%, 98%)";
57
- readonly muted: "hsl(0, 0%, 14.9%)";
58
- readonly mutedForeground: "hsl(0, 0%, 63.9%)";
59
- readonly accent: "hsl(0, 0%, 14.9%)";
60
- readonly accentForeground: "hsl(0, 0%, 98%)";
61
- readonly destructive: "hsl(0, 62.8%, 30.6%)";
62
- readonly destructiveForeground: "hsl(0, 0%, 98%)";
63
- readonly border: "hsl(0, 0%, 14.9%)";
64
- readonly input: "hsl(0, 0%, 14.9%)";
65
- readonly ring: "hsl(0, 0%, 45%)";
66
- readonly success: "hsl(142, 76%, 36%)";
67
- readonly successForeground: "hsl(0, 0%, 98%)";
68
- readonly warning: "hsl(38, 92%, 50%)";
69
- readonly warningForeground: "hsl(0, 0%, 9%)";
70
- readonly info: "hsl(199, 89%, 48%)";
71
- readonly infoForeground: "hsl(0, 0%, 98%)";
72
- };
73
- };
74
- /**
75
- * Convert HSL string to React Native ColorValue
76
- * Useful for native platform styling where HSL needs to be converted
77
- */
78
- export declare function hslToRgb(hsl: string): ColorValue;
79
- /**
80
- * Get theme color value based on current theme mode
81
- * Automatically selects the appropriate color from light/dark theme
82
- */
83
- export declare function getThemeColorValue(colorKey: keyof typeof THEME_COLORS.light, isDark: boolean, asRgb?: boolean): ColorValue;
84
- /**
85
- * Component-specific dark mode class mappings
86
- * Use these to ensure consistent styling across all components
87
- */
88
- export declare const DARK_MODE_CLASSES: {
89
- readonly text: {
90
- readonly default: "dark:text-foreground";
91
- readonly muted: "dark:text-muted-foreground";
92
- readonly primary: "dark:text-primary-foreground";
93
- readonly secondary: "dark:text-secondary-foreground";
94
- readonly accent: "dark:text-accent-foreground";
95
- readonly destructive: "dark:text-destructive-foreground";
96
- readonly card: "dark:text-card-foreground";
97
- };
98
- readonly background: {
99
- readonly default: "dark:bg-background";
100
- readonly card: "dark:bg-card";
101
- readonly primary: "dark:bg-primary";
102
- readonly secondary: "dark:bg-secondary";
103
- readonly muted: "dark:bg-muted";
104
- readonly accent: "dark:bg-accent";
105
- readonly destructive: "dark:bg-destructive";
106
- readonly popover: "dark:bg-popover";
107
- };
108
- readonly border: {
109
- readonly default: "dark:border-border";
110
- readonly input: "dark:border-input";
111
- readonly primary: "dark:border-primary";
112
- readonly muted: "dark:border-muted";
113
- readonly accent: "dark:border-accent";
114
- readonly destructive: "dark:border-destructive";
115
- };
116
- readonly state: {
117
- readonly hover: "dark:hover:bg-accent";
118
- readonly active: "dark:active:bg-accent";
119
- readonly focus: "dark:focus:ring-ring";
120
- readonly disabled: "dark:disabled:opacity-50";
121
- };
122
- };
123
- /**
124
- * Helper to combine base classes with dark mode classes
125
- * Ensures consistent application of dark mode styles
126
- */
127
- export declare function withDarkMode(baseClass: string, darkClass: string, additionalClasses?: string): string;
128
- /**
129
- * Pre-configured class strings for common component patterns
130
- * Use these for consistent styling across the library
131
- */
132
- export declare const THEME_PRESETS: {
133
- readonly card: "bg-card text-card-foreground dark:bg-card dark:text-card-foreground border border-border dark:border-border";
134
- readonly input: "bg-background text-foreground dark:bg-background dark:text-foreground border border-input dark:border-input";
135
- readonly buttonPrimary: "bg-primary text-primary-foreground dark:bg-primary dark:text-primary-foreground";
136
- readonly buttonSecondary: "bg-secondary text-secondary-foreground dark:bg-secondary dark:text-secondary-foreground";
137
- readonly buttonOutline: "bg-background text-foreground dark:bg-background dark:text-foreground border border-input dark:border-input";
138
- readonly buttonGhost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent dark:hover:text-accent-foreground";
139
- readonly destructive: "bg-destructive text-destructive-foreground dark:bg-destructive dark:text-destructive-foreground";
140
- readonly muted: "bg-muted text-muted-foreground dark:bg-muted dark:text-muted-foreground";
141
- readonly popover: "bg-popover text-popover-foreground dark:bg-popover dark:text-popover-foreground border border-border dark:border-border";
142
- };
143
- /**
144
- * Semantic color map for native components
145
- * Use these for StyleSheet-based styling
146
- */
147
- export declare function getNativeThemeColors(isDark: boolean): {
148
- background: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
149
- foreground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
150
- card: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
151
- cardForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
152
- primary: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
153
- primaryForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
154
- secondary: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
155
- secondaryForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
156
- muted: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
157
- mutedForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
158
- accent: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
159
- accentForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
160
- destructive: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
161
- destructiveForeground: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
162
- border: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
163
- input: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
164
- ring: import("react-native/types_generated/Libraries/StyleSheet/StyleSheetTypes").____ColorValue_Internal;
165
- };
166
- /**
167
- * Type-safe theme color keys
168
- */
169
- export type ThemeColorKey = keyof typeof THEME_COLORS.light;
170
- /**
171
- * Check if a color key exists in the theme
172
- */
173
- export declare function isValidThemeColor(key: string): key is ThemeColorKey;
174
- //# sourceMappingURL=theme-config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-config.d.ts","sourceRoot":"","sources":["../../../../src/components/theme-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGf,CAAC;AAEX;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAuChD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,OAAO,YAAY,CAAC,KAAK,EACzC,MAAM,EAAE,OAAO,EACf,KAAK,UAAQ,GACZ,UAAU,CAKZ;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCpB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,iBAAiB,CAAC,EAAE,MAAM,GACzB,MAAM,CAER;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;CAmChB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;EAgCnD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,YAAY,CAAC,KAAK,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,aAAa,CAEnE"}
@@ -1,103 +0,0 @@
1
- import * as AccordionPrimitive from '@rn-primitives/accordion';
2
- /**
3
- * Root accordion container with smooth animations
4
- *
5
- * A vertically stacked set of interactive panels where only one or multiple panels can be expanded at a time.
6
- * Features smooth layout animations using Reanimated for a polished user experience.
7
- *
8
- * @component
9
- * @example
10
- * ```tsx
11
- * // Single selection
12
- * <Accordion type="single" collapsible defaultValue="item-1">
13
- * <AccordionItem value="item-1">
14
- * <AccordionTrigger>
15
- * <Text>Question 1</Text>
16
- * </AccordionTrigger>
17
- * <AccordionContent>
18
- * <Text>Answer 1</Text>
19
- * </AccordionContent>
20
- * </AccordionItem>
21
- * </Accordion>
22
- *
23
- * // Multiple selection
24
- * <Accordion type="multiple">
25
- * <AccordionItem value="item-1">
26
- * <AccordionTrigger><Text>Section 1</Text></AccordionTrigger>
27
- * <AccordionContent><Text>Content 1</Text></AccordionContent>
28
- * </AccordionItem>
29
- * <AccordionItem value="item-2">
30
- * <AccordionTrigger><Text>Section 2</Text></AccordionTrigger>
31
- * <AccordionContent><Text>Content 2</Text></AccordionContent>
32
- * </AccordionItem>
33
- * </Accordion>
34
- * ```
35
- *
36
- * @accessibility
37
- * - Implements WAI-ARIA accordion pattern
38
- * - Keyboard navigation with arrow keys and Enter/Space
39
- * - Proper ARIA attributes for expanded/collapsed states
40
- */
41
- declare function Accordion({ children, ...props }: Omit<AccordionPrimitive.RootProps, 'asChild'> & React.RefAttributes<AccordionPrimitive.RootRef>): import("react/jsx-runtime").JSX.Element;
42
- /**
43
- * Individual accordion item with border styling
44
- *
45
- * Contains a trigger and content section. Each item must have a unique value prop
46
- * for identification within the parent Accordion.
47
- *
48
- * @component
49
- * @example
50
- * ```tsx
51
- * <AccordionItem value="item-1">
52
- * <AccordionTrigger>
53
- * <Text>Click to expand</Text>
54
- * </AccordionTrigger>
55
- * <AccordionContent>
56
- * <Text>Hidden content revealed on expansion</Text>
57
- * </AccordionContent>
58
- * </AccordionItem>
59
- * ```
60
- */
61
- declare function AccordionItem({ children, className, value, ...props }: AccordionPrimitive.ItemProps & React.RefAttributes<AccordionPrimitive.ItemRef>): import("react/jsx-runtime").JSX.Element;
62
- /**
63
- * Clickable trigger button that toggles accordion item expansion
64
- *
65
- * Features an animated chevron icon that rotates based on expansion state.
66
- * Automatically manages focus states and hover effects on web.
67
- *
68
- * @component
69
- * @example
70
- * ```tsx
71
- * <AccordionTrigger>
72
- * <Text>Click to toggle</Text>
73
- * </AccordionTrigger>
74
- * ```
75
- *
76
- * @accessibility
77
- * - Automatically includes chevron icon for visual expansion indicator
78
- * - Focus visible states for keyboard navigation on web
79
- * - Disabled state prevents interaction
80
- */
81
- declare function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.TriggerProps & {
82
- children?: React.ReactNode;
83
- } & React.RefAttributes<AccordionPrimitive.TriggerRef>): import("react/jsx-runtime").JSX.Element;
84
- /**
85
- * Collapsible content container with smooth animations
86
- *
87
- * Automatically animates height changes when expanding/collapsing. Uses platform-specific
88
- * animations (CSS transitions on web, Reanimated on native).
89
- *
90
- * @component
91
- * @example
92
- * ```tsx
93
- * <AccordionContent>
94
- * <Text>This content slides in and out smoothly</Text>
95
- * <View className="mt-2">
96
- * <Text>Additional content here</Text>
97
- * </View>
98
- * </AccordionContent>
99
- * ```
100
- */
101
- declare function AccordionContent({ className, children, ...props }: AccordionPrimitive.ContentProps & React.RefAttributes<AccordionPrimitive.ContentRef>): import("react/jsx-runtime").JSX.Element;
102
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
103
- //# sourceMappingURL=Accordion.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,kBAAkB,MAAM,0BAA0B,CAAC;AAmB/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,iBAAS,SAAS,CAAC,EACjB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,GAC9C,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,2CAahD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAS,aAAa,CAAC,EACrB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,SAAS,GAC7B,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC,2CAoBhD;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,GAAG;IACnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,GAAG,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,2CAqDrD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,YAAY,GAChC,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,2CAsBnD;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC"}