@campxdev/react-native-blueprint 0.1.15 → 0.1.17

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 (58) hide show
  1. package/global.css +672 -0
  2. package/lib/module/assets/Success-Tick.json +1 -0
  3. package/lib/module/assets/lotties/index.js +2 -1
  4. package/lib/module/assets/lotties/index.js.map +1 -1
  5. package/lib/module/components/DataDisplay/Banner/Banner.figma.js +25 -0
  6. package/lib/module/components/DataDisplay/Banner/Banner.figma.js.map +1 -0
  7. package/lib/module/components/DataDisplay/Banner/Banner.js +101 -0
  8. package/lib/module/components/DataDisplay/Banner/Banner.js.map +1 -0
  9. package/lib/module/components/DataDisplay/Greeting/Greeting.figma.js +15 -0
  10. package/lib/module/components/DataDisplay/Greeting/Greeting.figma.js.map +1 -0
  11. package/lib/module/components/DataDisplay/Greeting/Greeting.js +121 -0
  12. package/lib/module/components/DataDisplay/Greeting/Greeting.js.map +1 -0
  13. package/lib/module/components/DataDisplay/MonthCalendar/MonthCalendar.figma.js +5 -7
  14. package/lib/module/components/DataDisplay/MonthCalendar/MonthCalendar.figma.js.map +1 -1
  15. package/lib/module/components/Input/TextField/Textfield.js +77 -21
  16. package/lib/module/components/Input/TextField/Textfield.js.map +1 -1
  17. package/lib/module/components/ui/index.js +2 -1
  18. package/lib/module/components/ui/index.js.map +1 -1
  19. package/lib/module/index.js +3 -0
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/patterns/pattern-components/BottomSheetPattern/index.js +4 -0
  22. package/lib/module/patterns/pattern-components/BottomSheetPattern/index.js.map +1 -0
  23. package/lib/module/patterns/pattern-components/CalendarPattern/index.js +4 -0
  24. package/lib/module/patterns/pattern-components/CalendarPattern/index.js.map +1 -0
  25. package/lib/module/patterns/pattern-components/DashboardPattern/index.js +4 -0
  26. package/lib/module/patterns/pattern-components/DashboardPattern/index.js.map +1 -0
  27. package/lib/module/patterns/pattern-components/EntityPatternGuided/index.js +4 -0
  28. package/lib/module/patterns/pattern-components/EntityPatternGuided/index.js.map +1 -0
  29. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.js +38 -0
  30. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.js.map +1 -0
  31. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.js +91 -0
  32. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.js.map +1 -0
  33. package/lib/module/patterns/pattern-components/SuccessPattern/index.js +4 -0
  34. package/lib/module/patterns/pattern-components/SuccessPattern/index.js.map +1 -0
  35. package/lib/module/patterns/pattern-components/index.js +4 -3
  36. package/lib/module/patterns/pattern-components/index.js.map +1 -1
  37. package/package.json +5 -3
  38. package/src/assets/Success-Tick.json +1 -0
  39. package/src/assets/lotties/index.ts +1 -0
  40. package/src/components/DataDisplay/Banner/Banner.figma.tsx +26 -0
  41. package/src/components/DataDisplay/Banner/Banner.tsx +108 -0
  42. package/src/components/DataDisplay/Greeting/Greeting.figma.tsx +12 -0
  43. package/src/components/DataDisplay/Greeting/Greeting.tsx +154 -0
  44. package/src/components/DataDisplay/MonthCalendar/MonthCalendar.figma.tsx +7 -11
  45. package/src/components/Input/TextField/Textfield.tsx +118 -33
  46. package/src/components/ui/index.ts +3 -1
  47. package/src/index.tsx +3 -0
  48. package/src/patterns/pattern-components/BottomSheetPattern/index.ts +1 -0
  49. package/src/patterns/pattern-components/CalendarPattern/index.ts +1 -0
  50. package/src/patterns/pattern-components/DashboardPattern/index.ts +1 -0
  51. package/src/patterns/pattern-components/EntityPatternGuided/index.ts +1 -0
  52. package/src/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.tsx +38 -0
  53. package/src/patterns/pattern-components/SuccessPattern/SuccessPattern.tsx +119 -0
  54. package/src/patterns/pattern-components/SuccessPattern/index.ts +2 -0
  55. package/src/patterns/pattern-components/index.ts +2 -1
  56. package/lib/module/components/ui/Greeting-Card.js +0 -393
  57. package/lib/module/components/ui/Greeting-Card.js.map +0 -1
  58. package/src/components/ui/Greeting-Card.tsx +0 -472
@@ -1,393 +0,0 @@
1
- "use strict";
2
-
3
- // @ts-nocheck
4
- import * as React from 'react';
5
- import { Image, Pressable, StyleSheet, View, useColorScheme } from 'react-native';
6
- import { cssInterop } from 'nativewind';
7
- import { cn } from "../../lib/utils.js";
8
- import { CustomCard } from "./Custom-Card.js";
9
- import { Text } from "../Input/Text/Text.js";
10
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
11
- cssInterop(View, {
12
- className: 'style'
13
- });
14
- cssInterop(Pressable, {
15
- className: 'style'
16
- });
17
-
18
- /**
19
- * Weather data structure for the greeting card
20
- */
21
-
22
- /**
23
- * Weather icon mappings for different weather conditions
24
- */
25
- const WEATHER_ICONS = {
26
- sunny: require('../../assets/icons/weather_icons/sunny_weather.png'),
27
- partlyCloudy: require('../../assets/icons/weather_icons/partly_cloudy.png'),
28
- foggy: require('../../assets/icons/weather_icons/foggy.png'),
29
- drizzle: require('../../assets/icons/weather_icons/drizzle.png'),
30
- rainy: require('../../assets/icons/weather_icons/rainy.png'),
31
- freezingRain: require('../../assets/icons/weather_icons/freezing_rain.png'),
32
- showers: require('../../assets/icons/weather_icons/showers.png'),
33
- thunderstorm: require('../../assets/icons/weather_icons/thunderstorm.png'),
34
- thunderstormHail: require('../../assets/icons/weather_icons/thunderstorm_hail.png')
35
- };
36
-
37
- /**
38
- * Converts a weather code from Open-Meteo API to a description and icon
39
- *
40
- * @param {number} code - Weather code from Open-Meteo API (0-99)
41
- * @returns {Object} Object containing description and icon path
42
- *
43
- * @example
44
- * ```tsx
45
- * const weatherInfo = getWeatherDescription(0);
46
- * // Returns: { description: 'Clear Sky (Sunny)', weatherImage: ... }
47
- * ```
48
- */
49
- export function getWeatherDescription(code) {
50
- const weatherMap = {
51
- '0': {
52
- description: 'Clear Sky (Sunny)',
53
- icon: 'sunny'
54
- },
55
- '1,2,3': {
56
- description: 'Partly Cloudy',
57
- icon: 'partlyCloudy'
58
- },
59
- '45,48': {
60
- description: 'Foggy',
61
- icon: 'foggy'
62
- },
63
- '51,53,55': {
64
- description: 'Drizzle',
65
- icon: 'drizzle'
66
- },
67
- '56,57': {
68
- description: 'Freezing Drizzle',
69
- icon: 'drizzle'
70
- },
71
- '61,63,65': {
72
- description: 'Rainy',
73
- icon: 'rainy'
74
- },
75
- '66,67': {
76
- description: 'Freezing Rain',
77
- icon: 'freezingRain'
78
- },
79
- '80,81,82': {
80
- description: 'Showers',
81
- icon: 'showers'
82
- },
83
- '95': {
84
- description: 'Thunderstorm',
85
- icon: 'thunderstorm'
86
- },
87
- '96,99': {
88
- description: 'Thunderstorm with Hail',
89
- icon: 'thunderstormHail'
90
- }
91
- };
92
- for (const [codes, info] of Object.entries(weatherMap)) {
93
- if (codes.split(',').map(Number).includes(code)) {
94
- return {
95
- description: info.description,
96
- weatherImage: WEATHER_ICONS[info.icon]
97
- };
98
- }
99
- }
100
- return {
101
- description: 'Unknown Weather',
102
- weatherImage: WEATHER_ICONS.sunny
103
- };
104
- }
105
-
106
- /**
107
- * Returns a greeting based on the current time of day
108
- *
109
- * @returns {string} Time-appropriate greeting
110
- *
111
- * @example
112
- * ```tsx
113
- * const greeting = getTimeBasedGreeting();
114
- * // Returns: "Good Morning" (if it's morning)
115
- * ```
116
- */
117
- export function getTimeBasedGreeting() {
118
- const hour = new Date().getHours();
119
- if (hour >= 5 && hour < 12) {
120
- return 'Good Morning';
121
- } else if (hour >= 12 && hour < 17) {
122
- return 'Good Afternoon';
123
- } else if (hour >= 17 && hour < 21) {
124
- return 'Good Evening';
125
- } else {
126
- return 'Good Night';
127
- }
128
- }
129
-
130
- /**
131
- * Formats a date to a readable string format
132
- *
133
- * @param {Date} date - Date to format
134
- * @returns {string} Formatted date string (e.g., "Monday, 16 October")
135
- */
136
- export function formatDate(date) {
137
- const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
138
- const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
139
- const dayName = days[date.getDay()];
140
- const day = date.getDate();
141
- const monthName = months[date.getMonth()];
142
- return `${dayName}, ${day} ${monthName}`;
143
- }
144
-
145
- /**
146
- * Fetches weather data from Open-Meteo API
147
- *
148
- * @param {number} latitude - Latitude coordinate
149
- * @param {number} longitude - Longitude coordinate
150
- * @returns {Promise<Weather | null>} Weather data or null if fetch fails
151
- *
152
- * @example
153
- * ```tsx
154
- * const weather = await fetchWeather(37.7749, -122.4194);
155
- * ```
156
- */
157
- export async function fetchWeather(latitude, longitude) {
158
- const url = `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}&current=temperature_2m,weathercode`;
159
- try {
160
- const response = await fetch(url);
161
- if (response.ok) {
162
- const data = await response.json();
163
- const temperature = data.current?.temperature_2m ?? 0;
164
- const weatherCode = data.current?.weathercode ?? 0;
165
- const weatherInfo = getWeatherDescription(weatherCode);
166
- return {
167
- temperature,
168
- weatherDescription: weatherInfo.description,
169
- weatherImage: weatherInfo.weatherImage,
170
- weatherCode,
171
- lastUpdated: new Date()
172
- };
173
- }
174
- return null;
175
- } catch (error) {
176
- console.error('Failed to fetch weather:', error);
177
- return null;
178
- }
179
- }
180
-
181
- /**
182
- * Props for the GreetingCard component
183
- */
184
-
185
- /**
186
- * GreetingCard - A personalized greeting card with weather information
187
- *
188
- * Displays a personalized greeting with the user's name, current date, and optional
189
- * weather information fetched from Open-Meteo API. Includes an optional action button
190
- * (e.g., "View Schedule"). Weather data is automatically cached for 15 minutes.
191
- *
192
- * @component
193
- * @example
194
- * ```tsx
195
- * // Basic usage without weather
196
- * <GreetingCard
197
- * userName="John Doe"
198
- * actionText="View Schedule"
199
- * onPress={() => navigation.navigate('Schedule')}
200
- * />
201
- *
202
- * // With automatic weather fetching (provide both lat and lng)
203
- * <GreetingCard
204
- * userName="Jane Smith"
205
- * lat={37.7749}
206
- * lng={-122.4194}
207
- * actionText="View Dashboard"
208
- * onPress={() => console.log('Card pressed')}
209
- * />
210
- *
211
- * // Custom greeting without action
212
- * <GreetingCard
213
- * userName="Alice"
214
- * customGreeting="Welcome back"
215
- * showAction={false}
216
- * />
217
- * ```
218
- *
219
- * @property {string} userName - User's full name to display in greeting (required)
220
- * @property {number} [lat] - Latitude coordinate for weather fetching (optional)
221
- * @property {number} [lng] - Longitude coordinate for weather fetching (optional)
222
- * @property {string} [customGreeting] - Override the time-based greeting
223
- * @property {Date} [date] - Custom date to display (defaults to current date)
224
- * @property {string} [actionText="View Details"] - Text for the action button
225
- * @property {Function} [onPress] - Handler called when card or action is pressed
226
- * @property {string} [className] - Additional Tailwind classes for styling
227
- * @property {boolean} [showAction=true] - Whether to show the action button section
228
- * @property {number} [cacheDuration=900000] - Cache duration in ms (default: 15 min)
229
- */
230
- export function GreetingCard({
231
- userName,
232
- lat,
233
- lng,
234
- customGreeting,
235
- date = new Date(),
236
- actionText = 'View Details',
237
- onPress,
238
- className,
239
- showAction = true,
240
- cacheDuration = 15 * 60 * 1000 // 15 minutes
241
- }) {
242
- const colorScheme = useColorScheme();
243
- const isDark = colorScheme === 'dark';
244
- const [weather, setWeather] = React.useState(null);
245
- const [isLoading, setIsLoading] = React.useState(false);
246
- const cacheRef = React.useRef(null);
247
-
248
- // Dynamic styles based on theme
249
- const dynamicStyles = React.useMemo(() => ({
250
- separator: {
251
- ...styles.separator,
252
- backgroundColor: isDark ? 'rgba(255, 255, 255, 0.15)' : 'rgba(0, 0, 0, 0.1)'
253
- }
254
- }), [isDark]);
255
- React.useEffect(() => {
256
- const loadWeather = async () => {
257
- if (lat === undefined || lng === undefined) {
258
- return;
259
- }
260
- const now = Date.now();
261
-
262
- // Check cache
263
- if (cacheRef.current && now - cacheRef.current.timestamp < cacheDuration) {
264
- setWeather(cacheRef.current.data);
265
- return;
266
- }
267
- setIsLoading(true);
268
- try {
269
- const weatherData = await fetchWeather(lat, lng);
270
- setWeather(weatherData);
271
- cacheRef.current = {
272
- data: weatherData,
273
- timestamp: now
274
- };
275
- } catch (error) {
276
- console.error('Error loading weather:', error);
277
- } finally {
278
- setIsLoading(false);
279
- }
280
- };
281
- loadWeather();
282
- }, [lat, lng, cacheDuration]);
283
- const greeting = customGreeting || getTimeBasedGreeting();
284
- const formattedDate = formatDate(date);
285
- const CardWrapper = onPress ? Pressable : View;
286
- const wrapperProps = onPress ? {
287
- onPress,
288
- android_ripple: {
289
- color: 'rgba(0, 0, 0, 0.1)'
290
- }
291
- } : {};
292
- return /*#__PURE__*/_jsx(CardWrapper, {
293
- ...wrapperProps,
294
- children: /*#__PURE__*/_jsx(CustomCard, {
295
- cornerRadius: 20,
296
- cornerSmoothing: 1,
297
- className: cn('border-primary/20 dark:border-primary/30', className),
298
- children: /*#__PURE__*/_jsxs(View, {
299
- style: styles.contentWrapper,
300
- children: [/*#__PURE__*/_jsxs(View, {
301
- style: styles.headerSection,
302
- children: [/*#__PURE__*/_jsxs(View, {
303
- style: styles.greetingText,
304
- children: [/*#__PURE__*/_jsxs(Text, {
305
- className: "text-sm font-semibold text-card-foreground dark:text-card-foreground",
306
- children: ["Hi ", userName, ","]
307
- }), /*#__PURE__*/_jsxs(Text, {
308
- className: "mt-1.5 text-xs tracking-wider text-muted-foreground dark:text-muted-foreground",
309
- children: [greeting, ", ", formattedDate]
310
- })]
311
- }), (weather || isLoading) && /*#__PURE__*/_jsx(View, {
312
- style: styles.weatherContainer,
313
- children: isLoading ? /*#__PURE__*/_jsx(Text, {
314
- className: "text-xs text-muted-foreground dark:text-muted-foreground",
315
- children: "Loading..."
316
- }) : weather && /*#__PURE__*/_jsxs(_Fragment, {
317
- children: [/*#__PURE__*/_jsxs(View, {
318
- style: styles.weatherRow,
319
- children: [/*#__PURE__*/_jsx(Image, {
320
- source: weather.weatherImage,
321
- style: styles.weatherIcon,
322
- resizeMode: "contain"
323
- }), /*#__PURE__*/_jsxs(Text, {
324
- className: "ml-1 text-xs text-card-foreground dark:text-card-foreground",
325
- children: [Math.round(weather.temperature), "\xB0 C"]
326
- })]
327
- }), /*#__PURE__*/_jsx(Text, {
328
- className: "mt-0.5 text-xs text-muted-foreground/70 dark:text-muted-foreground/70",
329
- children: weather.weatherDescription
330
- })]
331
- })
332
- })]
333
- }), showAction && /*#__PURE__*/_jsxs(_Fragment, {
334
- children: [/*#__PURE__*/_jsx(View, {
335
- style: dynamicStyles.separator
336
- }), /*#__PURE__*/_jsxs(View, {
337
- style: styles.actionSection,
338
- children: [/*#__PURE__*/_jsx(Text, {
339
- className: "text-sm font-semibold text-card-foreground dark:text-card-foreground",
340
- children: actionText
341
- }), /*#__PURE__*/_jsx(Text, {
342
- className: "text-2xl text-primary dark:text-primary",
343
- children: "\u203A"
344
- })]
345
- })]
346
- })]
347
- })
348
- })
349
- });
350
- }
351
- GreetingCard.displayName = 'GreetingCard';
352
- const styles = StyleSheet.create({
353
- weatherIcon: {
354
- width: 40,
355
- height: 35
356
- },
357
- contentWrapper: {
358
- margin: -24 // Counteract CustomCard's default padding of 24
359
- },
360
- headerSection: {
361
- flexDirection: 'row',
362
- alignItems: 'flex-start',
363
- justifyContent: 'space-between',
364
- paddingHorizontal: 20,
365
- paddingTop: 20,
366
- paddingBottom: 16
367
- },
368
- greetingText: {
369
- flex: 1
370
- },
371
- weatherContainer: {
372
- marginLeft: 12,
373
- alignItems: 'flex-end'
374
- },
375
- weatherRow: {
376
- flexDirection: 'row',
377
- alignItems: 'center'
378
- },
379
- separator: {
380
- height: 1,
381
- marginVertical: 8
382
- },
383
- actionSection: {
384
- flexDirection: 'row',
385
- alignItems: 'center',
386
- justifyContent: 'space-between',
387
- paddingHorizontal: 20,
388
- paddingBottom: 12,
389
- paddingTop: 4
390
- }
391
- });
392
- export { WEATHER_ICONS };
393
- //# sourceMappingURL=Greeting-Card.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","Image","Pressable","StyleSheet","View","useColorScheme","cssInterop","cn","CustomCard","Text","jsxs","_jsxs","jsx","_jsx","Fragment","_Fragment","className","WEATHER_ICONS","sunny","require","partlyCloudy","foggy","drizzle","rainy","freezingRain","showers","thunderstorm","thunderstormHail","getWeatherDescription","code","weatherMap","description","icon","codes","info","Object","entries","split","map","Number","includes","weatherImage","getTimeBasedGreeting","hour","Date","getHours","formatDate","date","days","months","dayName","getDay","day","getDate","monthName","getMonth","fetchWeather","latitude","longitude","url","response","fetch","ok","data","json","temperature","current","temperature_2m","weatherCode","weathercode","weatherInfo","weatherDescription","lastUpdated","error","console","GreetingCard","userName","lat","lng","customGreeting","actionText","onPress","showAction","cacheDuration","colorScheme","isDark","weather","setWeather","useState","isLoading","setIsLoading","cacheRef","useRef","dynamicStyles","useMemo","separator","styles","backgroundColor","useEffect","loadWeather","undefined","now","timestamp","weatherData","greeting","formattedDate","CardWrapper","wrapperProps","android_ripple","color","children","cornerRadius","cornerSmoothing","style","contentWrapper","headerSection","greetingText","weatherContainer","weatherRow","source","weatherIcon","resizeMode","Math","round","actionSection","displayName","create","width","height","margin","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingTop","paddingBottom","flex","marginLeft","marginVertical"],"sourceRoot":"../../../../src","sources":["components/ui/Greeting-Card.tsx"],"mappings":"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","ignoreList":[]}