@campxdev/react-native-blueprint 0.1.14 → 0.1.16

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 (222) hide show
  1. package/global.css +672 -0
  2. package/lib/module/assets/Loading Animation.json +1 -0
  3. package/lib/module/assets/Success-Tick.json +1 -0
  4. package/lib/module/assets/lotties/index.js +3 -1
  5. package/lib/module/assets/lotties/index.js.map +1 -1
  6. package/lib/module/components/DataDisplay/Accordion/Accordion.js +1 -0
  7. package/lib/module/components/DataDisplay/Accordion/Accordion.js.map +1 -1
  8. package/lib/module/components/DataDisplay/AccordionItem/AccordionItem.js +1 -0
  9. package/lib/module/components/DataDisplay/AccordionItem/AccordionItem.js.map +1 -1
  10. package/lib/module/components/DataDisplay/Badge/Badge.figma.js +1 -0
  11. package/lib/module/components/DataDisplay/Badge/Badge.figma.js.map +1 -1
  12. package/lib/module/components/DataDisplay/Badge/Badge.js +1 -0
  13. package/lib/module/components/DataDisplay/Badge/Badge.js.map +1 -1
  14. package/lib/module/components/DataDisplay/Banner/Banner.figma.js +25 -0
  15. package/lib/module/components/DataDisplay/Banner/Banner.figma.js.map +1 -0
  16. package/lib/module/components/DataDisplay/Banner/Banner.js +101 -0
  17. package/lib/module/components/DataDisplay/Banner/Banner.js.map +1 -0
  18. package/lib/module/components/DataDisplay/BannerRow/BannerRow.js +1 -0
  19. package/lib/module/components/DataDisplay/BannerRow/BannerRow.js.map +1 -1
  20. package/lib/module/components/DataDisplay/CalendarItem/CalendarItem.js +1 -0
  21. package/lib/module/components/DataDisplay/CalendarItem/CalendarItem.js.map +1 -1
  22. package/lib/module/components/DataDisplay/Card/Card.js +1 -0
  23. package/lib/module/components/DataDisplay/Card/Card.js.map +1 -1
  24. package/lib/module/components/DataDisplay/Chips/Chips.js +1 -0
  25. package/lib/module/components/DataDisplay/Chips/Chips.js.map +1 -1
  26. package/lib/module/components/DataDisplay/ChipsRow/ChipsRow.js +1 -0
  27. package/lib/module/components/DataDisplay/ChipsRow/ChipsRow.js.map +1 -1
  28. package/lib/module/components/DataDisplay/DataListItem/DataListItem.js +1 -0
  29. package/lib/module/components/DataDisplay/DataListItem/DataListItem.js.map +1 -1
  30. package/lib/module/components/DataDisplay/Datalist/Datalist.js +1 -0
  31. package/lib/module/components/DataDisplay/Datalist/Datalist.js.map +1 -1
  32. package/lib/module/components/DataDisplay/Greeting/Greeting.figma.js +15 -0
  33. package/lib/module/components/DataDisplay/Greeting/Greeting.figma.js.map +1 -0
  34. package/lib/module/components/DataDisplay/Greeting/Greeting.js +121 -0
  35. package/lib/module/components/DataDisplay/Greeting/Greeting.js.map +1 -0
  36. package/lib/module/components/DataDisplay/MonthCalendar/MonthCalendar.figma.js +5 -7
  37. package/lib/module/components/DataDisplay/MonthCalendar/MonthCalendar.figma.js.map +1 -1
  38. package/lib/module/components/DataDisplay/Separator/Separator.js +1 -0
  39. package/lib/module/components/DataDisplay/Separator/Separator.js.map +1 -1
  40. package/lib/module/components/DataDisplay/Skeleton/Skeleton.js +1 -0
  41. package/lib/module/components/DataDisplay/Skeleton/Skeleton.js.map +1 -1
  42. package/lib/module/components/DataDisplay/Tooltip/Tooltip.figma.js +1 -0
  43. package/lib/module/components/DataDisplay/Tooltip/Tooltip.figma.js.map +1 -1
  44. package/lib/module/components/DataDisplay/Tooltip/Tooltip.js +1 -0
  45. package/lib/module/components/DataDisplay/Tooltip/Tooltip.js.map +1 -1
  46. package/lib/module/components/Feedback/InfoBar/InfoBar.figma.js +32 -0
  47. package/lib/module/components/Feedback/InfoBar/InfoBar.figma.js.map +1 -0
  48. package/lib/module/components/Feedback/InfoBar/InfoBar.js +107 -0
  49. package/lib/module/components/Feedback/InfoBar/InfoBar.js.map +1 -0
  50. package/lib/module/components/Feedback/ProgressCircular/Progress-circular.js +1 -0
  51. package/lib/module/components/Feedback/ProgressCircular/Progress-circular.js.map +1 -1
  52. package/lib/module/components/Feedback/ProgressLinear/Progress-linear.js +1 -0
  53. package/lib/module/components/Feedback/ProgressLinear/Progress-linear.js.map +1 -1
  54. package/lib/module/components/Input/Button/Button.js +99 -43
  55. package/lib/module/components/Input/Button/Button.js.map +1 -1
  56. package/lib/module/components/Input/Checkbox/Checkbox.js +1 -0
  57. package/lib/module/components/Input/Checkbox/Checkbox.js.map +1 -1
  58. package/lib/module/components/Input/RadioGroup/Radio-Group.figma.js +3 -3
  59. package/lib/module/components/Input/RadioGroup/Radio-Group.figma.js.map +1 -1
  60. package/lib/module/components/Input/RadioGroup/Radio-Group.js +1 -0
  61. package/lib/module/components/Input/RadioGroup/Radio-Group.js.map +1 -1
  62. package/lib/module/components/Input/Select/Select.js +1 -0
  63. package/lib/module/components/Input/Select/Select.js.map +1 -1
  64. package/lib/module/components/Input/TextField/Textfield.figma.js +4 -2
  65. package/lib/module/components/Input/TextField/Textfield.figma.js.map +1 -1
  66. package/lib/module/components/Input/TextField/Textfield.js +219 -43
  67. package/lib/module/components/Input/TextField/Textfield.js.map +1 -1
  68. package/lib/module/components/Input/Toggle/Toggle.figma.js +32 -0
  69. package/lib/module/components/Input/Toggle/Toggle.figma.js.map +1 -0
  70. package/lib/module/components/Input/Toggle/Toggle.js +52 -23
  71. package/lib/module/components/Input/Toggle/Toggle.js.map +1 -1
  72. package/lib/module/components/Input/ToggleGroup/Toggle-Group.js +1 -0
  73. package/lib/module/components/Input/ToggleGroup/Toggle-Group.js.map +1 -1
  74. package/lib/module/components/Input/switch/Switch.figma.js +1 -0
  75. package/lib/module/components/Input/switch/Switch.figma.js.map +1 -1
  76. package/lib/module/components/Input/switch/Switch.js +1 -0
  77. package/lib/module/components/Input/switch/Switch.js.map +1 -1
  78. package/lib/module/components/Layout/Tabs/Tabs.figma.js +1 -0
  79. package/lib/module/components/Layout/Tabs/Tabs.figma.js.map +1 -1
  80. package/lib/module/components/Layout/Tabs/Tabs.js +1 -0
  81. package/lib/module/components/Layout/Tabs/Tabs.js.map +1 -1
  82. package/lib/module/components/Navigation/Appbar/AppBar.figma.js +1 -0
  83. package/lib/module/components/Navigation/Appbar/AppBar.figma.js.map +1 -1
  84. package/lib/module/components/Navigation/FloatingAction/Floating-Action.js +1 -0
  85. package/lib/module/components/Navigation/FloatingAction/Floating-Action.js.map +1 -1
  86. package/lib/module/components/Navigation/Popover/Popover.figma.js +1 -0
  87. package/lib/module/components/Navigation/Popover/Popover.figma.js.map +1 -1
  88. package/lib/module/components/Navigation/Popover/Popover.js +1 -0
  89. package/lib/module/components/Navigation/Popover/Popover.js.map +1 -1
  90. package/lib/module/components/ui/Custom-Card.js +1 -0
  91. package/lib/module/components/ui/Custom-Card.js.map +1 -1
  92. package/lib/module/components/ui/Dropdown-Menu.js +1 -0
  93. package/lib/module/components/ui/Dropdown-Menu.js.map +1 -1
  94. package/lib/module/components/ui/Hover-Card.js +1 -0
  95. package/lib/module/components/ui/Hover-Card.js.map +1 -1
  96. package/lib/module/components/ui/Icon.js +1 -0
  97. package/lib/module/components/ui/Icon.js.map +1 -1
  98. package/lib/module/components/ui/Input.js +1 -0
  99. package/lib/module/components/ui/Input.js.map +1 -1
  100. package/lib/module/components/ui/Menubar.js +1 -0
  101. package/lib/module/components/ui/Menubar.js.map +1 -1
  102. package/lib/module/components/ui/Slider.js +1 -0
  103. package/lib/module/components/ui/Slider.js.map +1 -1
  104. package/lib/module/components/ui/Table.js +1 -0
  105. package/lib/module/components/ui/Table.js.map +1 -1
  106. package/lib/module/components/ui/Toast.js +1 -0
  107. package/lib/module/components/ui/Toast.js.map +1 -1
  108. package/lib/module/components/ui/index.js +4 -1
  109. package/lib/module/components/ui/index.js.map +1 -1
  110. package/lib/module/index.js +3 -0
  111. package/lib/module/index.js.map +1 -1
  112. package/lib/module/patterns/pattern-components/AlertDialogPattern/AlertDialogPattern.js +1 -0
  113. package/lib/module/patterns/pattern-components/AlertDialogPattern/AlertDialogPattern.js.map +1 -1
  114. package/lib/module/patterns/pattern-components/AlertPattern/AlertPattern.js +1 -0
  115. package/lib/module/patterns/pattern-components/AlertPattern/AlertPattern.js.map +1 -1
  116. package/lib/module/patterns/pattern-components/BottomSheetPattern/index.js +4 -0
  117. package/lib/module/patterns/pattern-components/BottomSheetPattern/index.js.map +1 -0
  118. package/lib/module/patterns/pattern-components/CalendarPattern/CalendarPattern.figma.js +1 -0
  119. package/lib/module/patterns/pattern-components/CalendarPattern/CalendarPattern.figma.js.map +1 -1
  120. package/lib/module/patterns/pattern-components/CalendarPattern/CalendarPattern.js +1 -0
  121. package/lib/module/patterns/pattern-components/CalendarPattern/CalendarPattern.js.map +1 -1
  122. package/lib/module/patterns/pattern-components/CalendarPattern/index.js +4 -0
  123. package/lib/module/patterns/pattern-components/CalendarPattern/index.js.map +1 -0
  124. package/lib/module/patterns/pattern-components/DashboardPattern/index.js +4 -0
  125. package/lib/module/patterns/pattern-components/DashboardPattern/index.js.map +1 -0
  126. package/lib/module/patterns/pattern-components/EmptyState/EmptyState.js +1 -0
  127. package/lib/module/patterns/pattern-components/EmptyState/EmptyState.js.map +1 -1
  128. package/lib/module/patterns/pattern-components/EntityPatternGuided/EntityPatternGuided.js +1 -0
  129. package/lib/module/patterns/pattern-components/EntityPatternGuided/EntityPatternGuided.js.map +1 -1
  130. package/lib/module/patterns/pattern-components/EntityPatternGuided/index.js +4 -0
  131. package/lib/module/patterns/pattern-components/EntityPatternGuided/index.js.map +1 -0
  132. package/lib/module/patterns/pattern-components/EntityPatternOverview/EntityPatternOverview.js +1 -0
  133. package/lib/module/patterns/pattern-components/EntityPatternOverview/EntityPatternOverview.js.map +1 -1
  134. package/lib/module/patterns/pattern-components/EntityPatternStructured/EntityPatternStructured.js +1 -0
  135. package/lib/module/patterns/pattern-components/EntityPatternStructured/EntityPatternStructured.js.map +1 -1
  136. package/lib/module/patterns/pattern-components/FormPattern/FormPattern.js +1 -0
  137. package/lib/module/patterns/pattern-components/FormPattern/FormPattern.js.map +1 -1
  138. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.js +38 -0
  139. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.js.map +1 -0
  140. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.js +91 -0
  141. package/lib/module/patterns/pattern-components/SuccessPattern/SuccessPattern.js.map +1 -0
  142. package/lib/module/patterns/pattern-components/SuccessPattern/index.js +4 -0
  143. package/lib/module/patterns/pattern-components/SuccessPattern/index.js.map +1 -0
  144. package/lib/module/patterns/pattern-components/index.js +5 -3
  145. package/lib/module/patterns/pattern-components/index.js.map +1 -1
  146. package/package.json +4 -3
  147. package/src/assets/Loading Animation.json +1 -0
  148. package/src/assets/Success-Tick.json +1 -0
  149. package/src/assets/lotties/index.ts +2 -0
  150. package/src/components/DataDisplay/Accordion/Accordion.tsx +1 -0
  151. package/src/components/DataDisplay/AccordionItem/AccordionItem.tsx +1 -0
  152. package/src/components/DataDisplay/Badge/Badge.figma.tsx +1 -0
  153. package/src/components/DataDisplay/Badge/Badge.tsx +1 -0
  154. package/src/components/DataDisplay/Banner/Banner.figma.tsx +26 -0
  155. package/src/components/DataDisplay/Banner/Banner.tsx +108 -0
  156. package/src/components/DataDisplay/BannerRow/BannerRow.tsx +1 -0
  157. package/src/components/DataDisplay/CalendarItem/CalendarItem.tsx +1 -0
  158. package/src/components/DataDisplay/Card/Card.tsx +1 -0
  159. package/src/components/DataDisplay/Chips/Chips.tsx +1 -0
  160. package/src/components/DataDisplay/ChipsRow/ChipsRow.tsx +1 -0
  161. package/src/components/DataDisplay/DataListItem/DataListItem.tsx +1 -0
  162. package/src/components/DataDisplay/Datalist/Datalist.tsx +1 -0
  163. package/src/components/DataDisplay/Greeting/Greeting.figma.tsx +12 -0
  164. package/src/components/DataDisplay/Greeting/Greeting.tsx +154 -0
  165. package/src/components/DataDisplay/MonthCalendar/MonthCalendar.figma.tsx +7 -11
  166. package/src/components/DataDisplay/Separator/Separator.tsx +1 -0
  167. package/src/components/DataDisplay/Skeleton/Skeleton.tsx +1 -0
  168. package/src/components/DataDisplay/Tooltip/Tooltip.figma.tsx +1 -0
  169. package/src/components/DataDisplay/Tooltip/Tooltip.tsx +1 -0
  170. package/src/components/Feedback/InfoBar/InfoBar.figma.tsx +31 -0
  171. package/src/components/Feedback/InfoBar/InfoBar.tsx +127 -0
  172. package/src/components/Feedback/ProgressCircular/Progress-circular.tsx +1 -0
  173. package/src/components/Feedback/ProgressLinear/Progress-linear.tsx +1 -0
  174. package/src/components/Input/Button/Button.tsx +110 -43
  175. package/src/components/Input/Checkbox/Checkbox.tsx +1 -0
  176. package/src/components/Input/RadioGroup/Radio-Group.figma.tsx +3 -3
  177. package/src/components/Input/RadioGroup/Radio-Group.tsx +1 -0
  178. package/src/components/Input/Select/Select.tsx +1 -0
  179. package/src/components/Input/TextField/Textfield.figma.tsx +2 -0
  180. package/src/components/Input/TextField/Textfield.tsx +280 -48
  181. package/src/components/Input/Toggle/Toggle.figma.tsx +37 -0
  182. package/src/components/Input/Toggle/Toggle.tsx +49 -22
  183. package/src/components/Input/ToggleGroup/Toggle-Group.tsx +1 -0
  184. package/src/components/Input/switch/Switch.figma.tsx +1 -0
  185. package/src/components/Input/switch/Switch.tsx +1 -0
  186. package/src/components/Layout/Tabs/Tabs.figma.tsx +1 -0
  187. package/src/components/Layout/Tabs/Tabs.tsx +1 -0
  188. package/src/components/Navigation/Appbar/AppBar.figma.tsx +1 -0
  189. package/src/components/Navigation/FloatingAction/Floating-Action.tsx +1 -0
  190. package/src/components/Navigation/Popover/Popover.figma.tsx +1 -0
  191. package/src/components/Navigation/Popover/Popover.tsx +1 -0
  192. package/src/components/ui/Custom-Card.tsx +1 -0
  193. package/src/components/ui/Dropdown-Menu.tsx +1 -0
  194. package/src/components/ui/Hover-Card.tsx +1 -0
  195. package/src/components/ui/Icon.tsx +1 -0
  196. package/src/components/ui/Input.tsx +1 -0
  197. package/src/components/ui/Menubar.tsx +1 -0
  198. package/src/components/ui/Slider.tsx +1 -0
  199. package/src/components/ui/Table.tsx +1 -0
  200. package/src/components/ui/Toast.tsx +1 -0
  201. package/src/components/ui/index.ts +5 -1
  202. package/src/index.tsx +3 -0
  203. package/src/patterns/pattern-components/AlertDialogPattern/AlertDialogPattern.tsx +1 -0
  204. package/src/patterns/pattern-components/AlertPattern/AlertPattern.tsx +1 -0
  205. package/src/patterns/pattern-components/BottomSheetPattern/index.ts +1 -0
  206. package/src/patterns/pattern-components/CalendarPattern/CalendarPattern.figma.tsx +1 -0
  207. package/src/patterns/pattern-components/CalendarPattern/CalendarPattern.tsx +1 -0
  208. package/src/patterns/pattern-components/CalendarPattern/index.ts +1 -0
  209. package/src/patterns/pattern-components/DashboardPattern/index.ts +1 -0
  210. package/src/patterns/pattern-components/EmptyState/EmptyState.tsx +1 -0
  211. package/src/patterns/pattern-components/EntityPatternGuided/EntityPatternGuided.tsx +1 -0
  212. package/src/patterns/pattern-components/EntityPatternGuided/index.ts +1 -0
  213. package/src/patterns/pattern-components/EntityPatternOverview/EntityPatternOverview.tsx +1 -0
  214. package/src/patterns/pattern-components/EntityPatternStructured/EntityPatternStructured.tsx +1 -0
  215. package/src/patterns/pattern-components/FormPattern/FormPattern.tsx +1 -0
  216. package/src/patterns/pattern-components/SuccessPattern/SuccessPattern.figma.tsx +38 -0
  217. package/src/patterns/pattern-components/SuccessPattern/SuccessPattern.tsx +119 -0
  218. package/src/patterns/pattern-components/SuccessPattern/index.ts +2 -0
  219. package/src/patterns/pattern-components/index.ts +3 -1
  220. package/lib/module/components/ui/Greeting-Card.js +0 -392
  221. package/lib/module/components/ui/Greeting-Card.js.map +0 -1
  222. package/src/components/ui/Greeting-Card.tsx +0 -471
@@ -0,0 +1,37 @@
1
+ import figma from '@figma/code-connect';
2
+ import { ToggleItem } from './Toggle';
3
+
4
+ const FIGMA_URL =
5
+ 'https://www.figma.com/design/66WaqopqU3WXgwVtyQuTUf/React-Native-Blueprint-Library?node-id=408-2632';
6
+
7
+ figma.connect(ToggleItem, FIGMA_URL, {
8
+ props: {
9
+ // State (whether toggle is on/off)
10
+ state: figma.boolean('state'),
11
+
12
+ // Tone (color variant)
13
+ tone: figma.enum('tone', {
14
+ default: 'default',
15
+ success: 'success',
16
+ destructive: 'destructive',
17
+ warning: 'warning',
18
+ }),
19
+
20
+ // Text content
21
+ text: figma.string('Text'),
22
+
23
+ // Icon visibility
24
+ showLeftIcon: figma.boolean('Show leftIcon'),
25
+ showRightIcon: figma.boolean('Show rightIcon'),
26
+ },
27
+
28
+ example: (props) => (
29
+ <ToggleItem
30
+ state={props.state}
31
+ tone={props.tone}
32
+ text={props.text}
33
+ showLeftIcon={props.showLeftIcon}
34
+ showRightIcon={props.showRightIcon}
35
+ />
36
+ ),
37
+ });
@@ -1,8 +1,18 @@
1
- import * as React from 'react';
1
+ // @ts-nocheck
2
+ import React from 'react';
2
3
  import { View, Text } from 'react-native';
4
+ import { cssInterop } from 'nativewind';
3
5
  import { cva, type VariantProps } from 'class-variance-authority';
4
6
  import { cn } from '../../../lib/utils';
5
7
 
8
+ // NativeWind interop
9
+ cssInterop(View, { className: 'style' });
10
+ cssInterop(Text, { className: 'style' });
11
+
12
+ // Typed components
13
+ const StyledView = View as any;
14
+ const StyledText = Text as any;
15
+
6
16
  /* ------------------------------------------------------------------
7
17
  * Variants
8
18
  * ------------------------------------------------------------------ */
@@ -12,14 +22,14 @@ const toggleItemVariants = cva(
12
22
  {
13
23
  variants: {
14
24
  tone: {
15
- default: 'border-border-default',
16
- success: 'border-highlight-success-green',
17
- destructive: 'border-highlight-alert-red',
18
- warning: 'border-highlight-warning-orange',
25
+ default: 'border-text-primary bg-surface-default',
26
+ success: 'border-text-primary bg-surface-default',
27
+ destructive: 'border-text-primary bg-surface-default',
28
+ warning: 'border-text-primary bg-surface-default',
19
29
  },
20
30
  state: {
21
31
  true: '',
22
- false: 'bg-transparent',
32
+ false: '',
23
33
  },
24
34
  },
25
35
  compoundVariants: [
@@ -27,25 +37,27 @@ const toggleItemVariants = cva(
27
37
  {
28
38
  tone: 'default',
29
39
  state: true,
30
- className: 'bg-surface-subtle',
40
+ className: 'bg-surface-subtle border-text-primary',
31
41
  },
32
42
  // SUCCESS (ON)
33
43
  {
34
44
  tone: 'success',
35
45
  state: true,
36
- className: 'bg-highlight-success-green-muted',
46
+ className:
47
+ 'bg-highlight-success-green-muted border-highlight-success-green',
37
48
  },
38
49
  // DESTRUCTIVE (ON)
39
50
  {
40
51
  tone: 'destructive',
41
52
  state: true,
42
- className: 'bg-highlight-alert-red-muted',
53
+ className: 'bg-highlight-alert-red-muted border-highlight-alert-red',
43
54
  },
44
55
  // WARNING (ON)
45
56
  {
46
57
  tone: 'warning',
47
58
  state: true,
48
- className: 'bg-highlight-warning-orange-muted',
59
+ className:
60
+ 'bg-highlight-warning-orange-muted border-highlight-warning-orange',
49
61
  },
50
62
  ],
51
63
  defaultVariants: {
@@ -59,9 +71,9 @@ const textVariants = cva('text-sm font-semibold', {
59
71
  variants: {
60
72
  tone: {
61
73
  default: 'text-text-secondary',
62
- success: 'text-highlight-success-green',
63
- destructive: 'text-highlight-alert-red',
64
- warning: 'text-highlight-warning-orange',
74
+ success: 'text-text-secondary',
75
+ destructive: 'text-text-secondary',
76
+ warning: 'text-text-secondary',
65
77
  },
66
78
  state: {
67
79
  true: '',
@@ -75,9 +87,24 @@ const textVariants = cva('text-sm font-semibold', {
75
87
  state: true,
76
88
  className: 'text-brand-primary',
77
89
  },
78
- // Colored tones maintain their color in ON state (already handled by variant definition),
79
- // but if we needed to override, we would do it here.
80
- // The current definitions 'text-highlight-success-green' apply to both ON/OFF for success tone.
90
+ // Success (ON)
91
+ {
92
+ tone: 'success',
93
+ state: true,
94
+ className: 'text-highlight-success-green',
95
+ },
96
+ // Destructive (ON)
97
+ {
98
+ tone: 'destructive',
99
+ state: true,
100
+ className: 'text-highlight-alert-red',
101
+ },
102
+ // Warning (ON)
103
+ {
104
+ tone: 'warning',
105
+ state: true,
106
+ className: 'text-highlight-warning-orange',
107
+ },
81
108
  ],
82
109
  });
83
110
 
@@ -101,19 +128,19 @@ export function ToggleItem({
101
128
  className,
102
129
  }: ToggleItemProps) {
103
130
  return (
104
- <View className={cn(toggleItemVariants({ tone, state }), className)}>
105
- {showLeftIcon && <View className="h-4 w-4 bg-muted rounded-sm" />}
131
+ <StyledView className={cn(toggleItemVariants({ tone, state }), className)}>
132
+ {showLeftIcon && <StyledView className="h-4 w-4 bg-muted rounded-sm" />}
106
133
 
107
- <Text
134
+ <StyledText
108
135
  className={textVariants({
109
136
  tone,
110
137
  state,
111
138
  })}
112
139
  >
113
140
  {text}
114
- </Text>
141
+ </StyledText>
115
142
 
116
- {showRightIcon && <View className="h-4 w-4 bg-muted rounded-sm" />}
117
- </View>
143
+ {showRightIcon && <StyledView className="h-4 w-4 bg-muted rounded-sm" />}
144
+ </StyledView>
118
145
  );
119
146
  }
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import { Pressable, View, type StyleProp, type ViewStyle } from 'react-native';
3
4
  import { cssInterop } from 'nativewind';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figma from '@figma/code-connect';
2
3
 
3
4
  import { Switch } from './Switch';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { cn } from '../../../lib/utils';
2
3
  import * as SwitchPrimitive from '@rn-primitives/switch';
3
4
  import { cva, type VariantProps } from 'class-variance-authority';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figma from '@figma/code-connect';
2
3
  import { TabItem } from './Tabs';
3
4
 
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import {
3
4
  View,
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figma from '@figma/code-connect';
2
3
  import { AppBar } from './AppBar';
3
4
 
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import React from 'react';
2
3
  import {
3
4
  Text,
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figma from '@figma/code-connect';
2
3
  import React from 'react';
3
4
  import { View as RNView } from 'react-native';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import { View, Text, type StyleProp, type ViewStyle } from 'react-native';
3
4
 
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as Slot from '@rn-primitives/slot';
2
3
  import type { SlottableViewProps, ViewRef } from '@rn-primitives/types';
3
4
  import * as React from 'react';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { Icon } from './Icon';
2
3
  import { NativeOnlyAnimatedView } from './Native-Only-Animated-View';
3
4
  import { TextClassContext } from '../Input/Text/Text';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { NativeOnlyAnimatedView } from './Native-Only-Animated-View';
2
3
  import { TextClassContext } from '../Input/Text/Text';
3
4
  import { cn } from '../../lib/utils';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { cn } from '../../lib/utils';
2
3
  import type { LucideIcon, LucideProps } from 'lucide-react-native';
3
4
  import { cssInterop } from 'nativewind';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { cn } from '../../lib/utils';
2
3
  import { Platform, TextInput, type TextInputProps } from 'react-native';
3
4
  import { cssInterop } from 'nativewind';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { Icon } from './Icon';
2
3
  import { NativeOnlyAnimatedView } from './Native-Only-Animated-View';
3
4
  import { TextClassContext } from '../Input/Text/Text';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import { Platform, View, ViewProps } from 'react-native';
3
4
  import { Gesture, GestureDetector } from 'react-native-gesture-handler';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { cn } from '../../lib/utils';
2
3
  import { Text } from '../Input/Text/Text';
3
4
  import { View } from 'react-native';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { cn } from '../../lib/utils';
2
3
  import { Text, TextClassContext } from '../Input/Text/Text';
3
4
  import { Icon } from './Icon';
@@ -1,11 +1,14 @@
1
+ // @ts-nocheck
1
2
  export * from '../DataDisplay/Accordion/Accordion';
2
3
  export * from '../DataDisplay/AccordionItem/AccordionItem';
3
4
  export * from '../Feedback/Alert/Alert';
4
5
  export * from '../Feedback/AlertDialog/Alert-Dialog';
6
+ export * from '../Feedback/InfoBar/InfoBar';
5
7
  export * from '../Navigation/Appbar/AppBar';
6
8
  export * from '../Layout/AspectRatio/Aspect-Ratio';
7
9
  export * from '../DataDisplay/Avatar/Avatar';
8
10
  export * from '../DataDisplay/Badge/Badge';
11
+ export * from '../DataDisplay/Banner/Banner';
9
12
  export * from '../DataDisplay/Chips/Chips';
10
13
  export * from '../DataDisplay/ChipsRow/ChipsRow';
11
14
  export * from '../DataDisplay/BannerRow/BannerRow';
@@ -16,6 +19,7 @@ export * from '../Layout/Bottomsheet/Bottom-Sheet';
16
19
  export * from '../Input/Button/Button';
17
20
  export * from '../DataDisplay/Card/Card';
18
21
  export * from '../DataDisplay/CalendarItem/CalendarItem';
22
+ export * from '../DataDisplay/Greeting/Greeting';
19
23
  export * from '../DataDisplay/MonthCalendar/MonthCalendar';
20
24
  export * from '../DataDisplay/DataCard/DataCard';
21
25
  export * from '../Input/Checkbox/Checkbox';
@@ -25,7 +29,7 @@ export * from './Custom-Card';
25
29
  export * from '../Navigation/Dialog/Dialog';
26
30
  export * from './Dropdown-Menu';
27
31
  export * from '../Navigation/FloatingAction/Floating-Action';
28
- export * from './Greeting-Card';
32
+
29
33
  export * from './Hover-Card';
30
34
  export * from './Icon';
31
35
  export * from './Input';
package/src/index.tsx CHANGED
@@ -1,6 +1,9 @@
1
1
  // Export components
2
2
  export * from './components/ui';
3
3
 
4
+ // Export patterns
5
+ export * from './patterns/pattern-components';
6
+
4
7
  // Export layout
5
8
  export { default as RootLayout } from './app/_layout';
6
9
 
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { View } from 'react-native';
2
3
  import { cssInterop } from 'nativewind';
3
4
  import {
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { useCallback, useEffect, useRef } from 'react';
2
3
  import { View, Animated } from 'react-native';
3
4
  import { cssInterop } from 'nativewind';
@@ -0,0 +1 @@
1
+ export { BottomSheetPattern } from './BottomSheetPattern';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import figma from '@figma/code-connect';
2
3
  import { CalendarPattern } from './CalendarPattern';
3
4
 
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import { View, ScrollView, type StyleProp, type ViewStyle } from 'react-native';
3
4
  import { cssInterop } from 'nativewind';
@@ -0,0 +1 @@
1
+ export { CalendarPattern } from './CalendarPattern';
@@ -0,0 +1 @@
1
+ export { DashboardPattern } from './DashboardPattern';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import * as React from 'react';
2
3
  import { View as RNView, Text as RNText } from 'react-native';
3
4
  import LottieView from 'lottie-react-native';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { View, Text as RNText } from 'react-native';
2
3
 
3
4
  import {
@@ -0,0 +1 @@
1
+ export { EntityPatternGuided } from './EntityPatternGuided';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { View, Text as RNText } from 'react-native';
2
3
 
3
4
  import {
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { View, Text as RNText } from 'react-native';
2
3
 
3
4
  import {
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { View } from 'react-native';
2
3
 
3
4
  import { TextField } from '../../../components/Input/TextField/Textfield';
@@ -0,0 +1,38 @@
1
+ import figma from '@figma/code-connect';
2
+ import { SuccessPattern } from './SuccessPattern';
3
+
4
+ const FIGMA_URL =
5
+ 'https://www.figma.com/design/66WaqopqU3WXgwVtyQuTUf/React-Native-Blueprint-Library?node-id=411-3184';
6
+
7
+ /**
8
+ * SuccessPattern - Success state pattern with animated checkmark
9
+ *
10
+ * Use cases:
11
+ * - Order confirmation screens
12
+ * - Form submission success
13
+ * - Action completion feedback
14
+ * - Payment confirmation
15
+ * - Task completion states
16
+ *
17
+ * Features:
18
+ * - Animated success tick using Lottie (Success-Tick.json)
19
+ * - Customizable success message
20
+ * - Optional description text
21
+ * - Configurable animation behavior (loop, autoplay, duration)
22
+ * - Callback when animation completes
23
+ */
24
+ figma.connect(SuccessPattern, FIGMA_URL, {
25
+ props: {
26
+ successMessage: figma.string('SuccessMessage'),
27
+ description: figma.string('Description'),
28
+ },
29
+ example: (props) => (
30
+ <SuccessPattern
31
+ successMessage={props.successMessage}
32
+ description={props.description}
33
+ showAnimation={true}
34
+ autoplay={true}
35
+ loop={false}
36
+ />
37
+ ),
38
+ });
@@ -0,0 +1,119 @@
1
+ // @ts-nocheck
2
+ import React from 'react';
3
+ import { View as RNView } from 'react-native';
4
+ import { cssInterop } from 'nativewind';
5
+ import LottieView from 'lottie-react-native';
6
+ import { cn } from '../../../lib/utils';
7
+ import { Text } from '../../../components/Input/Text/Text';
8
+
9
+ cssInterop(RNView, { className: 'style' });
10
+
11
+ const View = RNView as React.ComponentType<
12
+ React.ComponentProps<typeof RNView> & { className?: string }
13
+ >;
14
+
15
+ /* ============================================================================
16
+ * Types
17
+ * ============================================================================ */
18
+
19
+ export interface SuccessPatternProps {
20
+ /** Main success message text */
21
+ successMessage?: string;
22
+ /** Secondary description text */
23
+ description?: string;
24
+ /** Whether to show the lottie animation */
25
+ showAnimation?: boolean;
26
+ /** Animation duration in milliseconds */
27
+ animationDuration?: number;
28
+ /** Loop the animation */
29
+ loop?: boolean;
30
+ /** Auto-play the animation */
31
+ autoplay?: boolean;
32
+ /** Custom className for styling */
33
+ className?: string;
34
+ /** Test ID for testing */
35
+ testID?: string;
36
+ /** Callback when animation completes */
37
+ onAnimationFinish?: () => void;
38
+ }
39
+
40
+ /* ============================================================================
41
+ * Component
42
+ * ============================================================================ */
43
+
44
+ /**
45
+ * SuccessPattern Component
46
+ *
47
+ * A pattern component that displays a success state with:
48
+ * - Animated success tick/checkmark (Lottie animation)
49
+ * - Success message
50
+ * - Description text
51
+ *
52
+ * Perfect for use after form submissions, confirmations, or successful operations.
53
+ *
54
+ * @example
55
+ * ```tsx
56
+ * <SuccessPattern
57
+ * successMessage="Order Placed Successfully!"
58
+ * description="Your order has been confirmed"
59
+ * showAnimation={true}
60
+ * onAnimationFinish={() => navigation.navigate('Home')}
61
+ * />
62
+ * ```
63
+ */
64
+ export const SuccessPattern = ({
65
+ successMessage = 'This is the Success Message',
66
+ description = 'Success message descriptions goes here',
67
+ showAnimation = true,
68
+ animationDuration = 2000,
69
+ loop = false,
70
+ autoplay = true,
71
+ className,
72
+ testID,
73
+ onAnimationFinish,
74
+ }: SuccessPatternProps) => {
75
+ const animationRef = React.useRef<any>(null);
76
+
77
+ React.useEffect(() => {
78
+ if (autoplay && animationRef.current && showAnimation) {
79
+ animationRef.current.play();
80
+ }
81
+ }, [showAnimation, autoplay]);
82
+
83
+ return (
84
+ <View
85
+ testID={testID}
86
+ className={cn(
87
+ 'w-full items-center justify-center bg-surface-page',
88
+ className
89
+ )}
90
+ >
91
+ {/* Animation Container */}
92
+ {showAnimation && (
93
+ <View className="h-60 w-60 items-center justify-center">
94
+ <LottieView
95
+ ref={animationRef}
96
+ source={require('../../../assets/Success-Tick.json')}
97
+ autoPlay={autoplay}
98
+ loop={loop}
99
+ duration={animationDuration}
100
+ onAnimationFinish={onAnimationFinish}
101
+ style={{ width: 300, height: 300 }}
102
+ />
103
+ </View>
104
+ )}
105
+
106
+ {/* Content Section */}
107
+ <View className="w-full items-center gap-2 text-center px-4 py-6">
108
+ <Text className="text-lg font-semibold text-text-primary">
109
+ {successMessage}
110
+ </Text>
111
+ <Text className="text-sm font-medium text-text-secondary">
112
+ {description}
113
+ </Text>
114
+ </View>
115
+ </View>
116
+ );
117
+ };
118
+
119
+ SuccessPattern.displayName = 'SuccessPattern';
@@ -0,0 +1,2 @@
1
+ export { SuccessPattern } from './SuccessPattern';
2
+ export type { SuccessPatternProps } from './SuccessPattern';
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  export * from './AlertDialogPattern';
2
3
  export * from './DashboardPattern';
3
4
  export * from './EmptyState';
@@ -6,9 +7,10 @@ export * from './CardListPattern';
6
7
  export * from './AlertPattern';
7
8
  export * from './DialogPattern';
8
9
  export * from './SkeletonPattern';
10
+ export * from './SuccessPattern';
9
11
  export * from './FormPattern';
10
12
  export * from './EntityPatternOverview';
11
13
  export * from './EntityPatternStructured';
12
14
  export * from './EntityPatternGuided';
13
- export * from './CalendarPattern/CalendarPattern';
15
+ export * from './CalendarPattern';
14
16
  export * from './MonthlyCalendarPattern';