@medway-ui/native 1.1.2 → 1.3.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 (244) hide show
  1. package/lib/commonjs/components/Alert.js +5 -4
  2. package/lib/commonjs/components/Alert.js.map +1 -1
  3. package/lib/commonjs/components/Avatar.js +2 -1
  4. package/lib/commonjs/components/Avatar.js.map +1 -1
  5. package/lib/commonjs/components/Badge.js +2 -1
  6. package/lib/commonjs/components/Badge.js.map +1 -1
  7. package/lib/commonjs/components/Button.js +3 -2
  8. package/lib/commonjs/components/Button.js.map +1 -1
  9. package/lib/commonjs/components/CardNews.js +7 -6
  10. package/lib/commonjs/components/CardNews.js.map +1 -1
  11. package/lib/commonjs/components/Carousel.js +122 -0
  12. package/lib/commonjs/components/Carousel.js.map +1 -0
  13. package/lib/commonjs/components/Checkbox.js +11 -2
  14. package/lib/commonjs/components/Checkbox.js.map +1 -1
  15. package/lib/commonjs/components/DropdownMenu.js +225 -0
  16. package/lib/commonjs/components/DropdownMenu.js.map +1 -0
  17. package/lib/commonjs/components/EmptyState.js +19 -20
  18. package/lib/commonjs/components/EmptyState.js.map +1 -1
  19. package/lib/commonjs/components/Feed.js +82 -0
  20. package/lib/commonjs/components/Feed.js.map +1 -0
  21. package/lib/commonjs/components/FeedNotice.js +76 -0
  22. package/lib/commonjs/components/FeedNotice.js.map +1 -0
  23. package/lib/commonjs/components/Input.js +21 -9
  24. package/lib/commonjs/components/Input.js.map +1 -1
  25. package/lib/commonjs/components/InvitePopover.js +196 -0
  26. package/lib/commonjs/components/InvitePopover.js.map +1 -0
  27. package/lib/commonjs/components/Label.js +2 -1
  28. package/lib/commonjs/components/Label.js.map +1 -1
  29. package/lib/commonjs/components/LeaderboardCard.js +58 -0
  30. package/lib/commonjs/components/LeaderboardCard.js.map +1 -0
  31. package/lib/commonjs/components/MemberRow.js +131 -0
  32. package/lib/commonjs/components/MemberRow.js.map +1 -0
  33. package/lib/commonjs/components/PageHeader.js +3 -2
  34. package/lib/commonjs/components/PageHeader.js.map +1 -1
  35. package/lib/commonjs/components/PostForm.js +182 -0
  36. package/lib/commonjs/components/PostForm.js.map +1 -0
  37. package/lib/commonjs/components/PrizeCollection.js +135 -0
  38. package/lib/commonjs/components/PrizeCollection.js.map +1 -0
  39. package/lib/commonjs/components/RadioGroup.js +22 -0
  40. package/lib/commonjs/components/RadioGroup.js.map +1 -1
  41. package/lib/commonjs/components/SectionHeader.js +36 -0
  42. package/lib/commonjs/components/SectionHeader.js.map +1 -0
  43. package/lib/commonjs/components/Switch.js +33 -19
  44. package/lib/commonjs/components/Switch.js.map +1 -1
  45. package/lib/commonjs/components/Tabs.js +156 -0
  46. package/lib/commonjs/components/Tabs.js.map +1 -0
  47. package/lib/commonjs/components/Tag.js +2 -1
  48. package/lib/commonjs/components/Tag.js.map +1 -1
  49. package/lib/commonjs/components/Text.js +60 -0
  50. package/lib/commonjs/components/Text.js.map +1 -0
  51. package/lib/commonjs/components/Toast.js +3 -2
  52. package/lib/commonjs/components/Toast.js.map +1 -1
  53. package/lib/commonjs/components/Tooltip.js +2 -2
  54. package/lib/commonjs/components/Tooltip.js.map +1 -1
  55. package/lib/commonjs/editor/NoteEditor.js +710 -0
  56. package/lib/commonjs/editor/NoteEditor.js.map +1 -0
  57. package/lib/commonjs/editor/editorHtml.generated.js +21 -0
  58. package/lib/commonjs/editor/editorHtml.generated.js.map +1 -0
  59. package/lib/commonjs/editor/index.js +33 -0
  60. package/lib/commonjs/editor/index.js.map +1 -0
  61. package/lib/commonjs/editor/protocol.js +88 -0
  62. package/lib/commonjs/editor/protocol.js.map +1 -0
  63. package/lib/commonjs/hooks/useThemeColor.js +66 -29
  64. package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
  65. package/lib/commonjs/index.js +319 -1
  66. package/lib/commonjs/index.js.map +1 -1
  67. package/lib/commonjs/lib/overlay-host.js +101 -0
  68. package/lib/commonjs/lib/overlay-host.js.map +1 -0
  69. package/lib/commonjs/lib/typography.js +26 -0
  70. package/lib/commonjs/lib/typography.js.map +1 -0
  71. package/lib/commonjs/nativewind-env.d.js +0 -1
  72. package/lib/commonjs/nativewind-env.d.js.map +1 -1
  73. package/lib/module/components/Alert.js +3 -2
  74. package/lib/module/components/Alert.js.map +1 -1
  75. package/lib/module/components/Avatar.js +2 -1
  76. package/lib/module/components/Avatar.js.map +1 -1
  77. package/lib/module/components/Badge.js +2 -1
  78. package/lib/module/components/Badge.js.map +1 -1
  79. package/lib/module/components/Button.js +2 -1
  80. package/lib/module/components/Button.js.map +1 -1
  81. package/lib/module/components/CardNews.js +2 -1
  82. package/lib/module/components/CardNews.js.map +1 -1
  83. package/lib/module/components/Carousel.js +117 -0
  84. package/lib/module/components/Carousel.js.map +1 -0
  85. package/lib/module/components/Checkbox.js +12 -2
  86. package/lib/module/components/Checkbox.js.map +1 -1
  87. package/lib/module/components/DropdownMenu.js +216 -0
  88. package/lib/module/components/DropdownMenu.js.map +1 -0
  89. package/lib/module/components/EmptyState.js +19 -20
  90. package/lib/module/components/EmptyState.js.map +1 -1
  91. package/lib/module/components/Feed.js +77 -0
  92. package/lib/module/components/Feed.js.map +1 -0
  93. package/lib/module/components/FeedNotice.js +73 -0
  94. package/lib/module/components/FeedNotice.js.map +1 -0
  95. package/lib/module/components/Input.js +21 -9
  96. package/lib/module/components/Input.js.map +1 -1
  97. package/lib/module/components/InvitePopover.js +183 -0
  98. package/lib/module/components/InvitePopover.js.map +1 -0
  99. package/lib/module/components/Label.js +2 -1
  100. package/lib/module/components/Label.js.map +1 -1
  101. package/lib/module/components/LeaderboardCard.js +53 -0
  102. package/lib/module/components/LeaderboardCard.js.map +1 -0
  103. package/lib/module/components/MemberRow.js +127 -0
  104. package/lib/module/components/MemberRow.js.map +1 -0
  105. package/lib/module/components/PageHeader.js +2 -1
  106. package/lib/module/components/PageHeader.js.map +1 -1
  107. package/lib/module/components/PostForm.js +174 -0
  108. package/lib/module/components/PostForm.js.map +1 -0
  109. package/lib/module/components/PrizeCollection.js +127 -0
  110. package/lib/module/components/PrizeCollection.js.map +1 -0
  111. package/lib/module/components/RadioGroup.js +21 -1
  112. package/lib/module/components/RadioGroup.js.map +1 -1
  113. package/lib/module/components/SectionHeader.js +33 -0
  114. package/lib/module/components/SectionHeader.js.map +1 -0
  115. package/lib/module/components/Switch.js +34 -20
  116. package/lib/module/components/Switch.js.map +1 -1
  117. package/lib/module/components/Tabs.js +148 -0
  118. package/lib/module/components/Tabs.js.map +1 -0
  119. package/lib/module/components/Tag.js +2 -1
  120. package/lib/module/components/Tag.js.map +1 -1
  121. package/lib/module/components/Text.js +58 -0
  122. package/lib/module/components/Text.js.map +1 -0
  123. package/lib/module/components/Toast.js +2 -1
  124. package/lib/module/components/Toast.js.map +1 -1
  125. package/lib/module/components/Tooltip.js +1 -1
  126. package/lib/module/components/Tooltip.js.map +1 -1
  127. package/lib/module/editor/NoteEditor.js +705 -0
  128. package/lib/module/editor/NoteEditor.js.map +1 -0
  129. package/lib/module/editor/editorHtml.generated.js +17 -0
  130. package/lib/module/editor/editorHtml.generated.js.map +1 -0
  131. package/lib/module/editor/index.js +5 -0
  132. package/lib/module/editor/index.js.map +1 -0
  133. package/lib/module/editor/protocol.js +83 -0
  134. package/lib/module/editor/protocol.js.map +1 -0
  135. package/lib/module/hooks/useThemeColor.js +66 -31
  136. package/lib/module/hooks/useThemeColor.js.map +1 -1
  137. package/lib/module/index.js +33 -3
  138. package/lib/module/index.js.map +1 -1
  139. package/lib/module/lib/overlay-host.js +96 -0
  140. package/lib/module/lib/overlay-host.js.map +1 -0
  141. package/lib/module/lib/typography.js +22 -0
  142. package/lib/module/lib/typography.js.map +1 -0
  143. package/lib/module/nativewind-env.d.js +0 -1
  144. package/lib/module/nativewind-env.d.js.map +1 -1
  145. package/lib/typescript/components/Alert.d.ts.map +1 -1
  146. package/lib/typescript/components/Avatar.d.ts.map +1 -1
  147. package/lib/typescript/components/Badge.d.ts.map +1 -1
  148. package/lib/typescript/components/Button.d.ts.map +1 -1
  149. package/lib/typescript/components/CardNews.d.ts.map +1 -1
  150. package/lib/typescript/components/Carousel.d.ts +29 -0
  151. package/lib/typescript/components/Carousel.d.ts.map +1 -0
  152. package/lib/typescript/components/Checkbox.d.ts.map +1 -1
  153. package/lib/typescript/components/DropdownMenu.d.ts +39 -0
  154. package/lib/typescript/components/DropdownMenu.d.ts.map +1 -0
  155. package/lib/typescript/components/EmptyState.d.ts +1 -1
  156. package/lib/typescript/components/EmptyState.d.ts.map +1 -1
  157. package/lib/typescript/components/Feed.d.ts +22 -0
  158. package/lib/typescript/components/Feed.d.ts.map +1 -0
  159. package/lib/typescript/components/FeedNotice.d.ts +17 -0
  160. package/lib/typescript/components/FeedNotice.d.ts.map +1 -0
  161. package/lib/typescript/components/Input.d.ts +3 -2
  162. package/lib/typescript/components/Input.d.ts.map +1 -1
  163. package/lib/typescript/components/InvitePopover.d.ts +46 -0
  164. package/lib/typescript/components/InvitePopover.d.ts.map +1 -0
  165. package/lib/typescript/components/Label.d.ts.map +1 -1
  166. package/lib/typescript/components/LeaderboardCard.d.ts +16 -0
  167. package/lib/typescript/components/LeaderboardCard.d.ts.map +1 -0
  168. package/lib/typescript/components/MemberRow.d.ts +40 -0
  169. package/lib/typescript/components/MemberRow.d.ts.map +1 -0
  170. package/lib/typescript/components/PageHeader.d.ts.map +1 -1
  171. package/lib/typescript/components/PostForm.d.ts +50 -0
  172. package/lib/typescript/components/PostForm.d.ts.map +1 -0
  173. package/lib/typescript/components/PrizeCollection.d.ts +35 -0
  174. package/lib/typescript/components/PrizeCollection.d.ts.map +1 -0
  175. package/lib/typescript/components/RadioGroup.d.ts +10 -2
  176. package/lib/typescript/components/RadioGroup.d.ts.map +1 -1
  177. package/lib/typescript/components/SectionHeader.d.ts +12 -0
  178. package/lib/typescript/components/SectionHeader.d.ts.map +1 -0
  179. package/lib/typescript/components/Switch.d.ts.map +1 -1
  180. package/lib/typescript/components/Tabs.d.ts +32 -0
  181. package/lib/typescript/components/Tabs.d.ts.map +1 -0
  182. package/lib/typescript/components/Tag.d.ts.map +1 -1
  183. package/lib/typescript/components/Text.d.ts +23 -0
  184. package/lib/typescript/components/Text.d.ts.map +1 -0
  185. package/lib/typescript/components/Toast.d.ts +1 -1
  186. package/lib/typescript/components/Toast.d.ts.map +1 -1
  187. package/lib/typescript/components/Tooltip.d.ts.map +1 -1
  188. package/lib/typescript/editor/NoteEditor.d.ts +82 -0
  189. package/lib/typescript/editor/NoteEditor.d.ts.map +1 -0
  190. package/lib/typescript/editor/editorHtml.generated.d.ts +13 -0
  191. package/lib/typescript/editor/editorHtml.generated.d.ts.map +1 -0
  192. package/lib/typescript/editor/index.d.ts +6 -0
  193. package/lib/typescript/editor/index.d.ts.map +1 -0
  194. package/lib/typescript/editor/protocol.d.ts +153 -0
  195. package/lib/typescript/editor/protocol.d.ts.map +1 -0
  196. package/lib/typescript/hooks/useThemeColor.d.ts +4 -2
  197. package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -1
  198. package/lib/typescript/index.d.ts +28 -4
  199. package/lib/typescript/index.d.ts.map +1 -1
  200. package/lib/typescript/lib/overlay-host.d.ts +23 -0
  201. package/lib/typescript/lib/overlay-host.d.ts.map +1 -0
  202. package/lib/typescript/lib/typography.d.ts +12 -0
  203. package/lib/typescript/lib/typography.d.ts.map +1 -0
  204. package/package.json +36 -3
  205. package/setup/MedwayUiProvider.tsx +15 -3
  206. package/setup/metro.js +27 -5
  207. package/setup/tailwind.js +52 -4
  208. package/setup/tokens.native.css +8 -3
  209. package/src/components/Alert.tsx +4 -2
  210. package/src/components/Avatar.tsx +3 -1
  211. package/src/components/Badge.tsx +3 -1
  212. package/src/components/Button.tsx +3 -7
  213. package/src/components/CardNews.tsx +2 -1
  214. package/src/components/Carousel.tsx +152 -0
  215. package/src/components/Checkbox.tsx +14 -4
  216. package/src/components/DropdownMenu.tsx +312 -0
  217. package/src/components/EmptyState.tsx +21 -23
  218. package/src/components/Feed.tsx +96 -0
  219. package/src/components/FeedNotice.tsx +112 -0
  220. package/src/components/Input.tsx +11 -6
  221. package/src/components/InvitePopover.tsx +240 -0
  222. package/src/components/Label.tsx +3 -1
  223. package/src/components/LeaderboardCard.tsx +70 -0
  224. package/src/components/MemberRow.tsx +157 -0
  225. package/src/components/PageHeader.tsx +3 -1
  226. package/src/components/PostForm.tsx +250 -0
  227. package/src/components/PrizeCollection.tsx +190 -0
  228. package/src/components/RadioGroup.tsx +32 -3
  229. package/src/components/SectionHeader.tsx +45 -0
  230. package/src/components/Switch.tsx +65 -59
  231. package/src/components/Tabs.tsx +182 -0
  232. package/src/components/Tag.tsx +3 -1
  233. package/src/components/Text.tsx +66 -0
  234. package/src/components/Toast.tsx +3 -1
  235. package/src/components/Tooltip.tsx +2 -1
  236. package/src/editor/NoteEditor.tsx +802 -0
  237. package/src/editor/editorHtml.generated.ts +14 -0
  238. package/src/editor/index.ts +13 -0
  239. package/src/editor/protocol.ts +184 -0
  240. package/src/hooks/useThemeColor.ts +77 -32
  241. package/src/index.ts +153 -6
  242. package/src/lib/overlay-host.tsx +102 -0
  243. package/src/lib/typography.ts +21 -0
  244. package/src/nativewind-env.d.ts +2 -0
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ import { cva } from "class-variance-authority";
4
+ import { View } from "react-native";
5
+ import { Text } from "@/components/Text";
6
+ import { Avatar, AvatarFallback, AvatarImage } from "@/components/Avatar";
7
+ import { RadioGroupItem } from "@/components/RadioGroup";
8
+ import { cn } from "@/lib/utils";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const rankIndicatorVariants = cva("size-[22px] rounded-full", {
11
+ variants: {
12
+ rank: {
13
+ 1: "bg-yellow-background-fill",
14
+ 2: "bg-gray-background-fill",
15
+ 3: "bg-warning-background-fill"
16
+ }
17
+ },
18
+ defaultVariants: {
19
+ rank: 1
20
+ }
21
+ });
22
+ const memberRowVariants = cva("w-full flex-row items-center p-2", {
23
+ variants: {
24
+ variant: {
25
+ ranked: "",
26
+ selectable: "px-4 py-4"
27
+ },
28
+ highlighted: {
29
+ true: "rounded-md bg-secondary-background-soft",
30
+ false: ""
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ variant: "ranked",
35
+ highlighted: false
36
+ }
37
+ });
38
+ function getInitials(name) {
39
+ return name.trim().split(/\s+/).slice(0, 2).map(word => word[0] ?? "").join("").toUpperCase();
40
+ }
41
+ function MemberRow({
42
+ className,
43
+ variant = "ranked",
44
+ rank = 1,
45
+ rankLabel,
46
+ name,
47
+ subtitle,
48
+ avatarSrc,
49
+ avatarAlt,
50
+ avatarFallback,
51
+ value,
52
+ highlighted = false,
53
+ leading,
54
+ ...props
55
+ }) {
56
+ const initials = avatarFallback ?? getInitials(name);
57
+ if (variant === "selectable") {
58
+ const selectionValue = props.value;
59
+ return /*#__PURE__*/_jsx(View, {
60
+ className: cn(memberRowVariants({
61
+ variant,
62
+ highlighted
63
+ }), className),
64
+ ...props,
65
+ children: /*#__PURE__*/_jsxs(View, {
66
+ className: "min-w-0 flex-1 flex-row items-center gap-4",
67
+ children: [/*#__PURE__*/_jsx(RadioGroupItem, {
68
+ value: selectionValue,
69
+ size: "md"
70
+ }), /*#__PURE__*/_jsxs(View, {
71
+ className: "min-w-0 flex-1 flex-row items-center gap-2",
72
+ children: [/*#__PURE__*/_jsxs(Avatar, {
73
+ size: "sm",
74
+ alt: avatarAlt ?? name,
75
+ children: [avatarSrc ? /*#__PURE__*/_jsx(AvatarImage, {
76
+ src: avatarSrc
77
+ }) : null, /*#__PURE__*/_jsx(AvatarFallback, {
78
+ children: initials
79
+ })]
80
+ }), /*#__PURE__*/_jsx(Text, {
81
+ className: "text-md font-semibold text-primary-foreground",
82
+ children: name
83
+ })]
84
+ })]
85
+ })
86
+ });
87
+ }
88
+ return /*#__PURE__*/_jsx(View, {
89
+ className: cn(memberRowVariants({
90
+ variant,
91
+ highlighted
92
+ }), className),
93
+ ...props,
94
+ children: /*#__PURE__*/_jsxs(View, {
95
+ className: "min-w-0 flex-1 flex-row items-center gap-2",
96
+ children: [leading, /*#__PURE__*/_jsx(View, {
97
+ className: cn(rankIndicatorVariants({
98
+ rank
99
+ }))
100
+ }), /*#__PURE__*/_jsxs(View, {
101
+ className: "flex-row items-center gap-2",
102
+ children: [rankLabel ? /*#__PURE__*/_jsx(Text, {
103
+ className: "w-7 text-md font-semibold text-primary-foreground",
104
+ children: rankLabel
105
+ }) : null, /*#__PURE__*/_jsxs(Avatar, {
106
+ size: "sm",
107
+ alt: avatarAlt ?? name,
108
+ children: [avatarSrc ? /*#__PURE__*/_jsx(AvatarImage, {
109
+ src: avatarSrc
110
+ }) : null, /*#__PURE__*/_jsx(AvatarFallback, {
111
+ children: initials
112
+ })]
113
+ }), /*#__PURE__*/_jsxs(View, {
114
+ children: [/*#__PURE__*/_jsx(Text, {
115
+ className: "text-md font-semibold text-primary-foreground",
116
+ children: name
117
+ }), subtitle ? /*#__PURE__*/_jsx(Text, {
118
+ className: "text-xs font-medium text-primary-foreground",
119
+ children: subtitle
120
+ }) : null]
121
+ })]
122
+ })]
123
+ })
124
+ });
125
+ }
126
+ export { MemberRow, memberRowVariants, rankIndicatorVariants };
127
+ //# sourceMappingURL=MemberRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cva","View","Text","Avatar","AvatarFallback","AvatarImage","RadioGroupItem","cn","jsx","_jsx","jsxs","_jsxs","rankIndicatorVariants","variants","rank","defaultVariants","memberRowVariants","variant","ranked","selectable","highlighted","true","false","getInitials","name","trim","split","slice","map","word","join","toUpperCase","MemberRow","className","rankLabel","subtitle","avatarSrc","avatarAlt","avatarFallback","value","leading","props","initials","selectionValue","children","size","alt","src"],"sourceRoot":"../../../src","sources":["components/MemberRow.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { Text, View } from "react-native";
3
+ import { View } from "react-native";
4
+ import { Text } from "@/components/Text";
4
5
  import { cn } from "@/lib/utils";
5
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
7
  function PageHeader({
@@ -1 +1 @@
1
- {"version":3,"names":["Text","View","cn","jsx","_jsx","jsxs","_jsxs","PageHeader","className","icon","title","description","badge","props","children"],"sourceRoot":"../../../src","sources":["components/PageHeader.tsx"],"mappings":";;AACA,SAASA,IAAI,EAAEC,IAAI,QAAwB,cAAc;AAEzD,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASjC,SAASC,UAAUA,CAAC;EAClBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC,WAAW;EACXC,KAAK;EACL,GAAGC;AACY,CAAC,EAAE;EAClB,oBACET,IAAA,CAACH,IAAI;IACHO,SAAS,EAAEN,EAAE,CACX,oFAAoF,EACpFM,SACF,CAAE;IAAA,GACEK,KAAK;IAAAC,QAAA,eAETR,KAAA,CAACL,IAAI;MAACO,SAAS,EAAC,iBAAiB;MAAAM,QAAA,gBAC/BR,KAAA,CAACL,IAAI;QAACO,SAAS,EAAC,4BAA4B;QAAAM,QAAA,GACzCL,IAAI,eACLH,KAAA,CAACL,IAAI;UAACO,SAAS,EAAC,cAAc;UAAAM,QAAA,gBAC5BV,IAAA,CAACJ,IAAI;YAACQ,SAAS,EAAC,qDAAqD;YAAAM,QAAA,EAClEJ;UAAK,CACF,CAAC,EACNC,WAAW,gBACVP,IAAA,CAACJ,IAAI;YAACQ,SAAS,EAAC,+CAA+C;YAAAM,QAAA,EAC5DH;UAAW,CACR,CAAC,GACL,IAAI;QAAA,CACJ,CAAC;MAAA,CACH,CAAC,EACNC,KAAK;IAAA,CACF;EAAC,CACH,CAAC;AAEX;AAEA,SAASL,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["View","Text","cn","jsx","_jsx","jsxs","_jsxs","PageHeader","className","icon","title","description","badge","props","children"],"sourceRoot":"../../../src","sources":["components/PageHeader.tsx"],"mappings":";;AACA,SAASA,IAAI,QAAwB,cAAc;AAEnD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASjC,SAASC,UAAUA,CAAC;EAClBC,SAAS;EACTC,IAAI;EACJC,KAAK;EACLC,WAAW;EACXC,KAAK;EACL,GAAGC;AACY,CAAC,EAAE;EAClB,oBACET,IAAA,CAACJ,IAAI;IACHQ,SAAS,EAAEN,EAAE,CACX,oFAAoF,EACpFM,SACF,CAAE;IAAA,GACEK,KAAK;IAAAC,QAAA,eAETR,KAAA,CAACN,IAAI;MAACQ,SAAS,EAAC,iBAAiB;MAAAM,QAAA,gBAC/BR,KAAA,CAACN,IAAI;QAACQ,SAAS,EAAC,4BAA4B;QAAAM,QAAA,GACzCL,IAAI,eACLH,KAAA,CAACN,IAAI;UAACQ,SAAS,EAAC,cAAc;UAAAM,QAAA,gBAC5BV,IAAA,CAACH,IAAI;YAACO,SAAS,EAAC,qDAAqD;YAAAM,QAAA,EAClEJ;UAAK,CACF,CAAC,EACNC,WAAW,gBACVP,IAAA,CAACH,IAAI;YAACO,SAAS,EAAC,+CAA+C;YAAAM,QAAA,EAC5DH;UAAW,CACR,CAAC,GACL,IAAI;QAAA,CACJ,CAAC;MAAA,CACH,CAAC,EACNC,KAAK;IAAA,CACF;EAAC,CACH,CAAC;AAEX;AAEA,SAASL,UAAU","ignoreList":[]}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ import { Pressable, TextInput, View } from "react-native";
4
+ import { Text } from "@/components/Text";
5
+ import { Button } from "@/components/Button";
6
+ import { Checkbox } from "@/components/Checkbox";
7
+ import { Input, InputText, inputVariants } from "@/components/Input";
8
+ import { cn } from "@/lib/utils";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ function PostForm({
11
+ className,
12
+ children,
13
+ ...props
14
+ }) {
15
+ return /*#__PURE__*/_jsx(View, {
16
+ className: cn("gap-6", className),
17
+ ...props,
18
+ children: children
19
+ });
20
+ }
21
+ function PostFormHeader({
22
+ className,
23
+ title,
24
+ submitLabel = "Publicar",
25
+ onSubmitPress,
26
+ submitLoading,
27
+ submitDisabled,
28
+ ...props
29
+ }) {
30
+ return /*#__PURE__*/_jsxs(View, {
31
+ className: cn("flex-row items-center justify-between", className),
32
+ ...props,
33
+ children: [/*#__PURE__*/_jsx(Text, {
34
+ className: "text-title-xs font-semibold text-primary-foreground",
35
+ children: title
36
+ }), onSubmitPress ? /*#__PURE__*/_jsx(Button, {
37
+ variant: "regular",
38
+ size: "md",
39
+ onPress: onSubmitPress,
40
+ loading: submitLoading,
41
+ disabled: submitDisabled,
42
+ children: submitLabel
43
+ }) : null]
44
+ });
45
+ }
46
+ function PostFormMediaPicker({
47
+ className,
48
+ icon,
49
+ accessibilityLabel = "Adicionar mídia",
50
+ ...props
51
+ }) {
52
+ return /*#__PURE__*/_jsx(Pressable, {
53
+ accessibilityRole: "button",
54
+ accessibilityLabel: accessibilityLabel,
55
+ className: cn("h-[162px] w-[138px] self-center items-center justify-center rounded-md border border-gray-stroke-muted bg-gray-stroke-muted", className),
56
+ ...props,
57
+ children: /*#__PURE__*/_jsx(View, {
58
+ className: "items-center justify-center rounded-full bg-gray-background-soft p-2.5",
59
+ children: icon
60
+ })
61
+ });
62
+ }
63
+ function PostFormDescription({
64
+ className,
65
+ value,
66
+ defaultValue,
67
+ onChangeText,
68
+ maxLength = 120,
69
+ placeholder = "Descrição (opcional)",
70
+ editable = true,
71
+ ...props
72
+ }) {
73
+ const currentLength = (value ?? defaultValue ?? "").length;
74
+ return /*#__PURE__*/_jsxs(View, {
75
+ className: cn("gap-1", className),
76
+ children: [/*#__PURE__*/_jsx(TextInput, {
77
+ multiline: true,
78
+ textAlignVertical: "top",
79
+ maxLength: maxLength,
80
+ value: value,
81
+ defaultValue: defaultValue,
82
+ onChangeText: onChangeText,
83
+ placeholder: placeholder,
84
+ editable: editable,
85
+ className: cn(inputVariants({
86
+ size: "lg",
87
+ invalid: false,
88
+ focused: false,
89
+ disabled: !editable
90
+ }), "min-h-12 py-3 font-medium"),
91
+ accessibilityLabel: placeholder,
92
+ ...props,
93
+ style: [{
94
+ fontFamily: "MontserratMedium"
95
+ }, props.style]
96
+ }), /*#__PURE__*/_jsxs(InputText, {
97
+ className: "text-right text-xs font-medium text-gray-foreground",
98
+ children: [currentLength, " / ", maxLength]
99
+ })]
100
+ });
101
+ }
102
+ function PostFormDateTimeField({
103
+ className,
104
+ label,
105
+ value,
106
+ placeholder,
107
+ iconRight,
108
+ onPress,
109
+ ...props
110
+ }) {
111
+ return /*#__PURE__*/_jsxs(View, {
112
+ className: cn("gap-2", className),
113
+ ...props,
114
+ children: [label ? /*#__PURE__*/_jsx(Text, {
115
+ className: "text-sm font-medium text-gray-foreground",
116
+ children: label
117
+ }) : null, /*#__PURE__*/_jsx(Pressable, {
118
+ accessibilityRole: "button",
119
+ onPress: onPress,
120
+ disabled: !onPress,
121
+ children: /*#__PURE__*/_jsx(View, {
122
+ pointerEvents: "none",
123
+ children: /*#__PURE__*/_jsx(Input, {
124
+ size: "lg",
125
+ value: value,
126
+ placeholder: placeholder,
127
+ iconRight: iconRight,
128
+ editable: false
129
+ })
130
+ })
131
+ })]
132
+ });
133
+ }
134
+ function PostFormCheckboxOption({
135
+ className,
136
+ checked,
137
+ defaultChecked,
138
+ onCheckedChange,
139
+ title,
140
+ description,
141
+ disabled,
142
+ ...props
143
+ }) {
144
+ const isChecked = checked ?? defaultChecked ?? false;
145
+ const toggle = () => {
146
+ if (disabled) return;
147
+ onCheckedChange?.(!isChecked);
148
+ };
149
+ return /*#__PURE__*/_jsxs(View, {
150
+ className: cn("flex-row items-start gap-3", disabled ? "opacity-50" : "", className),
151
+ ...props,
152
+ children: [/*#__PURE__*/_jsx(Checkbox, {
153
+ size: "lg",
154
+ checked: checked,
155
+ defaultChecked: defaultChecked,
156
+ onCheckedChange: onCheckedChange,
157
+ disabled: disabled
158
+ }), /*#__PURE__*/_jsxs(Pressable, {
159
+ accessibilityRole: "button",
160
+ disabled: disabled,
161
+ onPress: toggle,
162
+ className: "min-w-0 flex-1 gap-1 pb-2",
163
+ children: [/*#__PURE__*/_jsx(Text, {
164
+ className: "text-md font-semibold text-gray-foreground",
165
+ children: title
166
+ }), description ? /*#__PURE__*/_jsx(Text, {
167
+ className: "text-xs font-medium text-gray-foreground",
168
+ children: description
169
+ }) : null]
170
+ })]
171
+ });
172
+ }
173
+ export { PostForm, PostFormCheckboxOption, PostFormDateTimeField, PostFormDescription, PostFormHeader, PostFormMediaPicker };
174
+ //# sourceMappingURL=PostForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Pressable","TextInput","View","Text","Button","Checkbox","Input","InputText","inputVariants","cn","jsx","_jsx","jsxs","_jsxs","PostForm","className","children","props","PostFormHeader","title","submitLabel","onSubmitPress","submitLoading","submitDisabled","variant","size","onPress","loading","disabled","PostFormMediaPicker","icon","accessibilityLabel","accessibilityRole","PostFormDescription","value","defaultValue","onChangeText","maxLength","placeholder","editable","currentLength","length","multiline","textAlignVertical","invalid","focused","style","fontFamily","PostFormDateTimeField","label","iconRight","pointerEvents","PostFormCheckboxOption","checked","defaultChecked","onCheckedChange","description","isChecked","toggle"],"sourceRoot":"../../../src","sources":["components/PostForm.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ "use strict";
2
+
3
+ import { Image, View } from "react-native";
4
+ import { Text } from "@/components/Text";
5
+ import { cn } from "@/lib/utils";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const rankColors = {
8
+ 1: "bg-yellow-background-fill",
9
+ 2: "bg-gray-background-fill",
10
+ 3: "bg-warning-background-fill"
11
+ };
12
+ function PrizeCollection({
13
+ className,
14
+ title = "Sua coleção",
15
+ statsTitle = "Contagem de pódios",
16
+ children,
17
+ footer,
18
+ ...props
19
+ }) {
20
+ return /*#__PURE__*/_jsxs(View, {
21
+ className: cn("gap-3", className),
22
+ ...props,
23
+ children: [/*#__PURE__*/_jsx(Text, {
24
+ className: "text-title-xs font-semibold text-primary-foreground",
25
+ children: title
26
+ }), /*#__PURE__*/_jsxs(View, {
27
+ className: "gap-8",
28
+ children: [/*#__PURE__*/_jsxs(View, {
29
+ className: "gap-3 rounded-lg border border-gray-stroke-muted bg-surface-section p-4",
30
+ children: [/*#__PURE__*/_jsx(Text, {
31
+ className: "text-center text-lg font-medium text-primary-foreground",
32
+ children: statsTitle
33
+ }), children]
34
+ }), footer]
35
+ })]
36
+ });
37
+ }
38
+ function PrizeCollectionStats({
39
+ className,
40
+ children,
41
+ ...props
42
+ }) {
43
+ return /*#__PURE__*/_jsx(View, {
44
+ className: cn("flex-row items-center justify-center gap-4", className),
45
+ ...props,
46
+ children: children
47
+ });
48
+ }
49
+ function PrizeCollectionStatsItem({
50
+ className,
51
+ count,
52
+ rank,
53
+ ...props
54
+ }) {
55
+ return /*#__PURE__*/_jsxs(View, {
56
+ className: cn("flex-row items-center gap-2 rounded-pill bg-gray-background-soft-emphasis py-1 pl-4 pr-1", className),
57
+ ...props,
58
+ children: [/*#__PURE__*/_jsx(Text, {
59
+ className: "text-title-xs font-semibold text-primary-foreground",
60
+ children: count
61
+ }), /*#__PURE__*/_jsx(View, {
62
+ className: cn("size-8 rounded-full", rankColors[rank])
63
+ })]
64
+ });
65
+ }
66
+ function PrizeShelf({
67
+ className,
68
+ title = "Prateleira de Prêmios",
69
+ children,
70
+ ...props
71
+ }) {
72
+ return /*#__PURE__*/_jsxs(View, {
73
+ className: cn("gap-4", className),
74
+ ...props,
75
+ children: [/*#__PURE__*/_jsx(Text, {
76
+ className: "text-lg font-medium text-primary-foreground",
77
+ children: title
78
+ }), /*#__PURE__*/_jsx(View, {
79
+ className: "gap-2",
80
+ children: children
81
+ })]
82
+ });
83
+ }
84
+ function PrizeRow({
85
+ className,
86
+ ...props
87
+ }) {
88
+ return /*#__PURE__*/_jsx(View, {
89
+ className: cn("flex-row items-start justify-between", className),
90
+ ...props
91
+ });
92
+ }
93
+ function PrizeItem({
94
+ className,
95
+ imageSrc,
96
+ image,
97
+ dateLabel,
98
+ isNew = false,
99
+ locked = false,
100
+ ...props
101
+ }) {
102
+ return /*#__PURE__*/_jsxs(View, {
103
+ className: cn("relative w-[116px] items-center gap-1 rounded-lg px-4 py-2 shadow-sm", locked ? "opacity-50" : "bg-surface-card", className),
104
+ ...props,
105
+ children: [isNew ? /*#__PURE__*/_jsx(View, {
106
+ className: "absolute -right-1 -top-1 rounded-md bg-green-background-fill px-2 py-1",
107
+ children: /*#__PURE__*/_jsx(Text, {
108
+ className: "text-xs font-semibold text-green-foreground-onfill",
109
+ children: "Novo"
110
+ })
111
+ }) : null, image ?? (imageSrc ? /*#__PURE__*/_jsx(Image, {
112
+ source: {
113
+ uri: imageSrc
114
+ },
115
+ className: "h-[112px] w-[96px]",
116
+ resizeMode: "contain",
117
+ accessibilityLabel: dateLabel ?? "Prêmio"
118
+ }) : /*#__PURE__*/_jsx(View, {
119
+ className: "h-[112px] w-[96px] rounded-lg bg-gray-background-soft"
120
+ })), dateLabel ? /*#__PURE__*/_jsx(Text, {
121
+ className: "text-xs font-semibold text-gray-stroke-emphasis",
122
+ children: dateLabel
123
+ }) : null]
124
+ });
125
+ }
126
+ export { PrizeCollection, PrizeCollectionStats, PrizeCollectionStatsItem, PrizeShelf, PrizeRow, PrizeItem };
127
+ //# sourceMappingURL=PrizeCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Image","View","Text","cn","jsx","_jsx","jsxs","_jsxs","rankColors","PrizeCollection","className","title","statsTitle","children","footer","props","PrizeCollectionStats","PrizeCollectionStatsItem","count","rank","PrizeShelf","PrizeRow","PrizeItem","imageSrc","image","dateLabel","isNew","locked","source","uri","resizeMode","accessibilityLabel"],"sourceRoot":"../../../src","sources":["components/PrizeCollection.tsx"],"mappings":";;AACA,SAASA,KAAK,EAAEC,IAAI,QAAwB,cAAc;AAE1D,SAASC,IAAI,QAAQ,mBAAmB;AAExC,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AA+BjC,MAAMC,UAAqC,GAAG;EAC5C,CAAC,EAAE,2BAA2B;EAC9B,CAAC,EAAE,yBAAyB;EAC5B,CAAC,EAAE;AACL,CAAC;AAED,SAASC,eAAeA,CAAC;EACvBC,SAAS;EACTC,KAAK,GAAG,aAAa;EACrBC,UAAU,GAAG,oBAAoB;EACjCC,QAAQ;EACRC,MAAM;EACN,GAAGC;AACiB,CAAC,EAAE;EACvB,oBACER,KAAA,CAACN,IAAI;IAACS,SAAS,EAAEP,EAAE,CAAC,OAAO,EAAEO,SAAS,CAAE;IAAA,GAAKK,KAAK;IAAAF,QAAA,gBAChDR,IAAA,CAACH,IAAI;MAACQ,SAAS,EAAC,qDAAqD;MAAAG,QAAA,EAClEF;IAAK,CACF,CAAC,eACPJ,KAAA,CAACN,IAAI;MAACS,SAAS,EAAC,OAAO;MAAAG,QAAA,gBACrBN,KAAA,CAACN,IAAI;QAACS,SAAS,EAAC,yEAAyE;QAAAG,QAAA,gBACvFR,IAAA,CAACH,IAAI;UAACQ,SAAS,EAAC,yDAAyD;UAAAG,QAAA,EACtED;QAAU,CACP,CAAC,EACNC,QAAQ;MAAA,CACL,CAAC,EACNC,MAAM;IAAA,CACH,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,SAASE,oBAAoBA,CAAC;EAC5BN,SAAS;EACTG,QAAQ;EACR,GAAGE;AACsB,CAAC,EAAE;EAC5B,oBACEV,IAAA,CAACJ,IAAI;IACHS,SAAS,EAAEP,EAAE,CAAC,4CAA4C,EAAEO,SAAS,CAAE;IAAA,GACnEK,KAAK;IAAAF,QAAA,EAERA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASI,wBAAwBA,CAAC;EAChCP,SAAS;EACTQ,KAAK;EACLC,IAAI;EACJ,GAAGJ;AAC0B,CAAC,EAAE;EAChC,oBACER,KAAA,CAACN,IAAI;IACHS,SAAS,EAAEP,EAAE,CACX,0FAA0F,EAC1FO,SACF,CAAE;IAAA,GACEK,KAAK;IAAAF,QAAA,gBAETR,IAAA,CAACH,IAAI;MAACQ,SAAS,EAAC,qDAAqD;MAAAG,QAAA,EAClEK;IAAK,CACF,CAAC,eACPb,IAAA,CAACJ,IAAI;MAACS,SAAS,EAAEP,EAAE,CAAC,qBAAqB,EAAEK,UAAU,CAACW,IAAI,CAAC;IAAE,CAAE,CAAC;EAAA,CAC5D,CAAC;AAEX;AAEA,SAASC,UAAUA,CAAC;EAClBV,SAAS;EACTC,KAAK,GAAG,uBAAuB;EAC/BE,QAAQ;EACR,GAAGE;AACY,CAAC,EAAE;EAClB,oBACER,KAAA,CAACN,IAAI;IAACS,SAAS,EAAEP,EAAE,CAAC,OAAO,EAAEO,SAAS,CAAE;IAAA,GAAKK,KAAK;IAAAF,QAAA,gBAChDR,IAAA,CAACH,IAAI;MAACQ,SAAS,EAAC,6CAA6C;MAAAG,QAAA,EAC1DF;IAAK,CACF,CAAC,eACPN,IAAA,CAACJ,IAAI;MAACS,SAAS,EAAC,OAAO;MAAAG,QAAA,EAAEA;IAAQ,CAAO,CAAC;EAAA,CACrC,CAAC;AAEX;AAEA,SAASQ,QAAQA,CAAC;EAAEX,SAAS;EAAE,GAAGK;AAAiB,CAAC,EAAE;EACpD,oBACEV,IAAA,CAACJ,IAAI;IACHS,SAAS,EAAEP,EAAE,CAAC,sCAAsC,EAAEO,SAAS,CAAE;IAAA,GAC7DK;EAAK,CACV,CAAC;AAEN;AAEA,SAASO,SAASA,CAAC;EACjBZ,SAAS;EACTa,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,KAAK,GAAG,KAAK;EACbC,MAAM,GAAG,KAAK;EACd,GAAGZ;AACW,CAAC,EAAE;EACjB,oBACER,KAAA,CAACN,IAAI;IACHS,SAAS,EAAEP,EAAE,CACX,sEAAsE,EACtEwB,MAAM,GAAG,YAAY,GAAG,iBAAiB,EACzCjB,SACF,CAAE;IAAA,GACEK,KAAK;IAAAF,QAAA,GAERa,KAAK,gBACJrB,IAAA,CAACJ,IAAI;MAACS,SAAS,EAAC,wEAAwE;MAAAG,QAAA,eACtFR,IAAA,CAACH,IAAI;QAACQ,SAAS,EAAC,oDAAoD;QAAAG,QAAA,EAAC;MAErE,CAAM;IAAC,CACH,CAAC,GACL,IAAI,EACPW,KAAK,KACHD,QAAQ,gBACPlB,IAAA,CAACL,KAAK;MACJ4B,MAAM,EAAE;QAAEC,GAAG,EAAEN;MAAS,CAAE;MAC1Bb,SAAS,EAAC,oBAAoB;MAC9BoB,UAAU,EAAC,SAAS;MACpBC,kBAAkB,EAAEN,SAAS,IAAI;IAAS,CAC3C,CAAC,gBAEFpB,IAAA,CAACJ,IAAI;MAACS,SAAS,EAAC;IAAuD,CAAE,CAC1E,CAAC,EACHe,SAAS,gBACRpB,IAAA,CAACH,IAAI;MAACQ,SAAS,EAAC,iDAAiD;MAAAG,QAAA,EAC9DY;IAAS,CACN,CAAC,GACL,IAAI;EAAA,CACJ,CAAC;AAEX;AAEA,SACEhB,eAAe,EACfO,oBAAoB,EACpBC,wBAAwB,EACxBG,UAAU,EACVC,QAAQ,EACRC,SAAS","ignoreList":[]}
@@ -62,5 +62,25 @@ function RadioGroupItem({
62
62
  })
63
63
  });
64
64
  }
65
- export { RadioGroup, RadioGroupItem, radioGroupVariants };
65
+ function RadioGroupList({
66
+ className,
67
+ children,
68
+ ...props
69
+ }) {
70
+ return /*#__PURE__*/_jsx(RadioGroupPrimitive.Root, {
71
+ className: cn("gap-0", className),
72
+ ...props,
73
+ children: children
74
+ });
75
+ }
76
+ function RadioGroupListItem({
77
+ className,
78
+ ...props
79
+ }) {
80
+ return /*#__PURE__*/_jsx(View, {
81
+ className: cn("border-b border-gray-stroke-muted py-2", className),
82
+ ...props
83
+ });
84
+ }
85
+ export { RadioGroup, RadioGroupItem, RadioGroupList, RadioGroupListItem, radioGroupVariants };
66
86
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","RadioGroupPrimitive","cva","cn","jsx","_jsx","INNER_DOT_SIZES","sm","md","lg","radioGroupVariants","variants","size","variant","regular","defaultVariants","RadioGroup","className","props","Root","RadioGroupItem","resolvedSize","dotSize","Item","children","Indicator","style","width","height","borderRadius"],"sourceRoot":"../../../src","sources":["components/RadioGroup.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,OAAO,KAAKC,mBAAmB,MAAM,4BAA4B;AACjE,SAASC,GAAG,QAA2B,0BAA0B;AACjE,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMjC,MAAMC,eAAmD,GAAG;EAC1DC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,kBAAkB,GAAGR,GAAG,CAC5B,qGAAqG,EACrG;EACES,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJL,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN,CAAC;IACDI,OAAO,EAAE;MACPC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE;EACX;AACF,CACF,CAAC;AAED,SAASG,UAAUA,CAAC;EAAEC,SAAS;EAAE,GAAGC;AAAqC,CAAC,EAAE;EAC1E,oBACEb,IAAA,CAACJ,mBAAmB,CAACkB,IAAI;IAACF,SAAS,EAAEd,EAAE,CAAC,OAAO,EAAEc,SAAS,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AAE9E;AAEA,SAASE,cAAcA,CAAC;EAAEH,SAAS;EAAEL,IAAI,GAAG,IAAI;EAAEC,OAAO;EAAE,GAAGK;AAA2B,CAAC,EAAE;EAC1F,MAAMG,YAAY,GAAGT,IAAI,IAAI,IAAI;EACjC,MAAMU,OAAO,GAAGhB,eAAe,CAACe,YAAY,CAAC;EAE7C,oBACEhB,IAAA,CAACJ,mBAAmB,CAACsB,IAAI;IACvBN,SAAS,EAAEd,EAAE,CAACO,kBAAkB,CAAC;MAAEE,IAAI;MAAEC;IAAQ,CAAC,CAAC,EAAEI,SAAS,CAAE;IAAA,GAC5DC,KAAK;IAAAM,QAAA,eAETnB,IAAA,CAACJ,mBAAmB,CAACwB,SAAS;MAACR,SAAS,EAAC,6BAA6B;MAAAO,QAAA,eACpEnB,IAAA,CAACL,IAAI;QACH0B,KAAK,EAAE;UAAEC,KAAK,EAAEL,OAAO;UAAEM,MAAM,EAAEN,OAAO;UAAEO,YAAY,EAAEP,OAAO,GAAG;QAAE,CAAE;QACtEL,SAAS,EAAC;MAA4B,CACvC;IAAC,CAC2B;EAAC,CACR,CAAC;AAE/B;AAEA,SAASD,UAAU,EAAEI,cAAc,EAAEV,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["View","RadioGroupPrimitive","cva","cn","jsx","_jsx","INNER_DOT_SIZES","sm","md","lg","radioGroupVariants","variants","size","variant","regular","defaultVariants","RadioGroup","className","props","Root","RadioGroupItem","resolvedSize","dotSize","Item","children","Indicator","style","width","height","borderRadius","RadioGroupList","RadioGroupListItem"],"sourceRoot":"../../../src","sources":["components/RadioGroup.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAwB,cAAc;AACnD,OAAO,KAAKC,mBAAmB,MAAM,4BAA4B;AACjE,SAASC,GAAG,QAA2B,0BAA0B;AAEjE,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMjC,MAAMC,eAAmD,GAAG;EAC1DC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,kBAAkB,GAAGR,GAAG,CAC5B,qGAAqG,EACrG;EACES,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJL,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE,SAAS;MACbC,EAAE,EAAE;IACN,CAAC;IACDI,OAAO,EAAE;MACPC,OAAO,EAAE;IACX;EACF,CAAC;EACDC,eAAe,EAAE;IACfH,IAAI,EAAE,IAAI;IACVC,OAAO,EAAE;EACX;AACF,CACF,CAAC;AAED,SAASG,UAAUA,CAAC;EAAEC,SAAS;EAAE,GAAGC;AAAqC,CAAC,EAAE;EAC1E,oBACEb,IAAA,CAACJ,mBAAmB,CAACkB,IAAI;IAACF,SAAS,EAAEd,EAAE,CAAC,OAAO,EAAEc,SAAS,CAAE;IAAA,GAAKC;EAAK,CAAG,CAAC;AAE9E;AAEA,SAASE,cAAcA,CAAC;EAAEH,SAAS;EAAEL,IAAI,GAAG,IAAI;EAAEC,OAAO;EAAE,GAAGK;AAA2B,CAAC,EAAE;EAC1F,MAAMG,YAAY,GAAGT,IAAI,IAAI,IAAI;EACjC,MAAMU,OAAO,GAAGhB,eAAe,CAACe,YAAY,CAAC;EAE7C,oBACEhB,IAAA,CAACJ,mBAAmB,CAACsB,IAAI;IACvBN,SAAS,EAAEd,EAAE,CAACO,kBAAkB,CAAC;MAAEE,IAAI;MAAEC;IAAQ,CAAC,CAAC,EAAEI,SAAS,CAAE;IAAA,GAC5DC,KAAK;IAAAM,QAAA,eAETnB,IAAA,CAACJ,mBAAmB,CAACwB,SAAS;MAACR,SAAS,EAAC,6BAA6B;MAAAO,QAAA,eACpEnB,IAAA,CAACL,IAAI;QACH0B,KAAK,EAAE;UAAEC,KAAK,EAAEL,OAAO;UAAEM,MAAM,EAAEN,OAAO;UAAEO,YAAY,EAAEP,OAAO,GAAG;QAAE,CAAE;QACtEL,SAAS,EAAC;MAA4B,CACvC;IAAC,CAC2B;EAAC,CACR,CAAC;AAE/B;AAOA,SAASa,cAAcA,CAAC;EAAEb,SAAS;EAAEO,QAAQ;EAAE,GAAGN;AAA2B,CAAC,EAAE;EAC9E,oBACEb,IAAA,CAACJ,mBAAmB,CAACkB,IAAI;IAACF,SAAS,EAAEd,EAAE,CAAC,OAAO,EAAEc,SAAS,CAAE;IAAA,GAAKC,KAAK;IAAAM,QAAA,EACnEA;EAAQ,CACe,CAAC;AAE/B;AAEA,SAASO,kBAAkBA,CAAC;EAAEd,SAAS;EAAE,GAAGC;AAAiB,CAAC,EAAE;EAC9D,oBACEb,IAAA,CAACL,IAAI;IACHiB,SAAS,EAAEd,EAAE,CAAC,wCAAwC,EAAEc,SAAS,CAAE;IAAA,GAC/DC;EAAK,CACV,CAAC;AAEN;AAEA,SACEF,UAAU,EACVI,cAAc,EACdU,cAAc,EACdC,kBAAkB,EAClBrB,kBAAkB","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ import { View } from "react-native";
4
+ import { Text } from "@/components/Text";
5
+ import { cn } from "@/lib/utils";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ function SectionHeader({
8
+ className,
9
+ title,
10
+ subtitle,
11
+ trailing,
12
+ ...props
13
+ }) {
14
+ return /*#__PURE__*/_jsxs(View, {
15
+ className: cn("flex-row items-center justify-between px-1", className),
16
+ ...props,
17
+ children: [/*#__PURE__*/_jsxs(View, {
18
+ className: "min-w-0 flex-1 gap-0",
19
+ children: [/*#__PURE__*/_jsx(Text, {
20
+ className: "text-title-xs font-semibold text-primary-foreground",
21
+ children: title
22
+ }), subtitle != null ? /*#__PURE__*/_jsx(Text, {
23
+ className: "text-sm font-medium leading-sm text-primary-foreground",
24
+ children: subtitle
25
+ }) : null]
26
+ }), trailing ? /*#__PURE__*/_jsx(View, {
27
+ className: "flex-row items-center gap-4",
28
+ children: trailing
29
+ }) : null]
30
+ });
31
+ }
32
+ export { SectionHeader };
33
+ //# sourceMappingURL=SectionHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","Text","cn","jsx","_jsx","jsxs","_jsxs","SectionHeader","className","title","subtitle","trailing","props","children"],"sourceRoot":"../../../src","sources":["components/SectionHeader.tsx"],"mappings":";;AACA,SAASA,IAAI,QAAwB,cAAc;AAEnD,SAASC,IAAI,QAAQ,mBAAmB;AAExC,SAASC,EAAE,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASjC,SAASC,aAAaA,CAAC;EACrBC,SAAS;EACTC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACR,GAAGC;AACe,CAAC,EAAE;EACrB,oBACEN,KAAA,CAACN,IAAI;IACHQ,SAAS,EAAEN,EAAE,CAAC,4CAA4C,EAAEM,SAAS,CAAE;IAAA,GACnEI,KAAK;IAAAC,QAAA,gBAETP,KAAA,CAACN,IAAI;MAACQ,SAAS,EAAC,sBAAsB;MAAAK,QAAA,gBACpCT,IAAA,CAACH,IAAI;QAACO,SAAS,EAAC,qDAAqD;QAAAK,QAAA,EAClEJ;MAAK,CACF,CAAC,EACNC,QAAQ,IAAI,IAAI,gBACfN,IAAA,CAACH,IAAI;QAACO,SAAS,EAAC,wDAAwD;QAAAK,QAAA,EACrEH;MAAQ,CACL,CAAC,GACL,IAAI;IAAA,CACJ,CAAC,EACNC,QAAQ,gBACPP,IAAA,CAACJ,IAAI;MAACQ,SAAS,EAAC,6BAA6B;MAAAK,QAAA,EAAEF;IAAQ,CAAO,CAAC,GAC7D,IAAI;EAAA,CACJ,CAAC;AAEX;AAEA,SAASJ,aAAa","ignoreList":[]}
@@ -6,7 +6,8 @@ import * as SwitchPrimitive from "@rn-primitives/switch";
6
6
  import Animated, { useSharedValue, useAnimatedStyle, withTiming, Easing } from "react-native-reanimated";
7
7
  import { cva } from "class-variance-authority";
8
8
  import { cn } from "@/lib/utils";
9
- import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
9
+ import { useThemeColor } from "@/hooks/useThemeColor";
10
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
10
11
  const THUMB_SIZES = {
11
12
  sm: 8,
12
13
  md: 12,
@@ -17,7 +18,7 @@ const THUMB_TRANSLATE = {
17
18
  md: 15,
18
19
  lg: 19
19
20
  };
20
- const SWITCH_TRACK = {
21
+ const SWITCH_DIMENSIONS = {
21
22
  sm: {
22
23
  width: 24,
23
24
  height: 16
@@ -61,10 +62,17 @@ function Switch({
61
62
  ...props
62
63
  }) {
63
64
  const resolvedSize = size ?? "md";
64
- const trackSize = SWITCH_TRACK[resolvedSize];
65
+ const dimensions = SWITCH_DIMENSIONS[resolvedSize];
65
66
  const [internalChecked, setInternalChecked] = useState(defaultChecked ?? false);
66
67
  const isControlled = checked !== undefined;
67
68
  const isChecked = isControlled ? checked ?? false : internalChecked;
69
+ const trackOn = useThemeColor("primary-background-fill");
70
+ const trackOff = useThemeColor("surface-card");
71
+ const trackDisabled = useThemeColor("gray-background-soft-muted");
72
+ const trackBorder = useThemeColor("gray-stroke-muted");
73
+ const thumbOn = useThemeColor("primary-foreground-onfill");
74
+ const thumbOff = useThemeColor("gray-foreground-muted");
75
+ const thumbDisabled = useThemeColor("gray-background-fill-muted");
68
76
  const translateX = useSharedValue(isChecked ? THUMB_TRANSLATE[resolvedSize] : 2);
69
77
  useEffect(() => {
70
78
  translateX.value = withTiming(isChecked ? THUMB_TRANSLATE[resolvedSize] : 2, {
@@ -77,44 +85,50 @@ function Switch({
77
85
  translateX: translateX.value
78
86
  }]
79
87
  }));
80
- const hasIcons = checkedIcon || uncheckedIcon;
88
+ const hasIcons = Boolean(checkedIcon || uncheckedIcon);
81
89
  const thumbSize = THUMB_SIZES[resolvedSize];
82
90
  const handleCheckedChange = nextChecked => {
83
91
  if (!isControlled) setInternalChecked(nextChecked);
84
92
  onCheckedChange?.(nextChecked);
85
93
  };
86
- const trackStyle = {
87
- width: trackSize.width,
88
- height: trackSize.height,
89
- minWidth: trackSize.width,
90
- minHeight: trackSize.height,
91
- borderRadius: trackSize.height / 2,
94
+ const trackBackgroundColor = disabled ? trackDisabled : isChecked ? trackOn : trackOff;
95
+ const trackBorderColor = disabled || !isChecked ? trackBorder : "transparent";
96
+ const thumbBackgroundColor = disabled ? thumbDisabled : hasIcons ? "transparent" : isChecked ? thumbOn : thumbOff;
97
+ const rootStyle = {
98
+ width: dimensions.width,
99
+ height: dimensions.height,
100
+ minWidth: dimensions.width,
101
+ minHeight: dimensions.height,
102
+ borderRadius: dimensions.height / 2,
92
103
  borderWidth: 2,
93
- justifyContent: "center"
104
+ alignItems: "flex-start",
105
+ justifyContent: "center",
106
+ backgroundColor: trackBackgroundColor,
107
+ borderColor: trackBorderColor
94
108
  };
95
109
  return /*#__PURE__*/_jsx(SwitchPrimitive.Root, {
96
110
  checked: isChecked,
97
111
  onCheckedChange: handleCheckedChange,
98
112
  disabled: disabled,
99
- style: state => [trackStyle, typeof style === "function" ? style(state) : style],
113
+ style: state => [rootStyle, typeof style === "function" ? style(state) : style],
100
114
  className: cn(switchVariants({
101
115
  size,
102
116
  variant
103
- }), disabled ? "bg-gray-background-soft-muted border-gray-stroke-muted" : isChecked ? "bg-primary-background-fill border-primary-background-fill" : "bg-surface-card border-gray-stroke-muted", className),
117
+ }), className),
104
118
  ...props,
105
119
  children: /*#__PURE__*/_jsx(SwitchPrimitive.Thumb, {
106
120
  asChild: true,
107
121
  children: /*#__PURE__*/_jsx(Animated.View, {
108
122
  style: [thumbStyle, {
109
123
  width: thumbSize,
110
- height: thumbSize
124
+ height: thumbSize,
125
+ borderRadius: thumbSize / 2,
126
+ backgroundColor: thumbBackgroundColor
111
127
  }],
112
- children: /*#__PURE__*/_jsx(View, {
113
- className: cn("flex-1 items-center justify-center rounded-full", disabled ? "bg-gray-background-fill-muted" : hasIcons ? "bg-transparent" : isChecked ? "bg-primary-foreground-onfill" : "bg-gray-foreground-muted"),
114
- children: hasIcons ? /*#__PURE__*/_jsxs(_Fragment, {
115
- children: [isChecked && checkedIcon, !isChecked && uncheckedIcon]
116
- }) : null
117
- })
128
+ children: hasIcons ? /*#__PURE__*/_jsxs(View, {
129
+ className: "flex-1 items-center justify-center",
130
+ children: [isChecked && checkedIcon, !isChecked && uncheckedIcon]
131
+ }) : null
118
132
  })
119
133
  })
120
134
  });