@medway-ui/native 1.1.2 → 1.2.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.
- package/lib/commonjs/components/Alert.js +5 -4
- package/lib/commonjs/components/Alert.js.map +1 -1
- package/lib/commonjs/components/Avatar.js +2 -1
- package/lib/commonjs/components/Avatar.js.map +1 -1
- package/lib/commonjs/components/Badge.js +2 -1
- package/lib/commonjs/components/Badge.js.map +1 -1
- package/lib/commonjs/components/Button.js +3 -2
- package/lib/commonjs/components/Button.js.map +1 -1
- package/lib/commonjs/components/CardNews.js +7 -6
- package/lib/commonjs/components/CardNews.js.map +1 -1
- package/lib/commonjs/components/Carousel.js +122 -0
- package/lib/commonjs/components/Carousel.js.map +1 -0
- package/lib/commonjs/components/Checkbox.js +11 -2
- package/lib/commonjs/components/Checkbox.js.map +1 -1
- package/lib/commonjs/components/DropdownMenu.js +225 -0
- package/lib/commonjs/components/DropdownMenu.js.map +1 -0
- package/lib/commonjs/components/EmptyState.js +19 -20
- package/lib/commonjs/components/EmptyState.js.map +1 -1
- package/lib/commonjs/components/Feed.js +82 -0
- package/lib/commonjs/components/Feed.js.map +1 -0
- package/lib/commonjs/components/FeedNotice.js +76 -0
- package/lib/commonjs/components/FeedNotice.js.map +1 -0
- package/lib/commonjs/components/Input.js +21 -9
- package/lib/commonjs/components/Input.js.map +1 -1
- package/lib/commonjs/components/InvitePopover.js +196 -0
- package/lib/commonjs/components/InvitePopover.js.map +1 -0
- package/lib/commonjs/components/Label.js +2 -1
- package/lib/commonjs/components/Label.js.map +1 -1
- package/lib/commonjs/components/LeaderboardCard.js +58 -0
- package/lib/commonjs/components/LeaderboardCard.js.map +1 -0
- package/lib/commonjs/components/MemberRow.js +131 -0
- package/lib/commonjs/components/MemberRow.js.map +1 -0
- package/lib/commonjs/components/PageHeader.js +3 -2
- package/lib/commonjs/components/PageHeader.js.map +1 -1
- package/lib/commonjs/components/PostForm.js +182 -0
- package/lib/commonjs/components/PostForm.js.map +1 -0
- package/lib/commonjs/components/PrizeCollection.js +135 -0
- package/lib/commonjs/components/PrizeCollection.js.map +1 -0
- package/lib/commonjs/components/RadioGroup.js +22 -0
- package/lib/commonjs/components/RadioGroup.js.map +1 -1
- package/lib/commonjs/components/SectionHeader.js +36 -0
- package/lib/commonjs/components/SectionHeader.js.map +1 -0
- package/lib/commonjs/components/Switch.js +33 -19
- package/lib/commonjs/components/Switch.js.map +1 -1
- package/lib/commonjs/components/Tabs.js +156 -0
- package/lib/commonjs/components/Tabs.js.map +1 -0
- package/lib/commonjs/components/Tag.js +2 -1
- package/lib/commonjs/components/Tag.js.map +1 -1
- package/lib/commonjs/components/Text.js +60 -0
- package/lib/commonjs/components/Text.js.map +1 -0
- package/lib/commonjs/components/Toast.js +3 -2
- package/lib/commonjs/components/Toast.js.map +1 -1
- package/lib/commonjs/components/Tooltip.js +2 -2
- package/lib/commonjs/components/Tooltip.js.map +1 -1
- package/lib/commonjs/hooks/useThemeColor.js +66 -29
- package/lib/commonjs/hooks/useThemeColor.js.map +1 -1
- package/lib/commonjs/index.js +319 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lib/overlay-host.js +101 -0
- package/lib/commonjs/lib/overlay-host.js.map +1 -0
- package/lib/commonjs/lib/typography.js +26 -0
- package/lib/commonjs/lib/typography.js.map +1 -0
- package/lib/commonjs/nativewind-env.d.js +0 -1
- package/lib/commonjs/nativewind-env.d.js.map +1 -1
- package/lib/module/components/Alert.js +3 -2
- package/lib/module/components/Alert.js.map +1 -1
- package/lib/module/components/Avatar.js +2 -1
- package/lib/module/components/Avatar.js.map +1 -1
- package/lib/module/components/Badge.js +2 -1
- package/lib/module/components/Badge.js.map +1 -1
- package/lib/module/components/Button.js +2 -1
- package/lib/module/components/Button.js.map +1 -1
- package/lib/module/components/CardNews.js +2 -1
- package/lib/module/components/CardNews.js.map +1 -1
- package/lib/module/components/Carousel.js +117 -0
- package/lib/module/components/Carousel.js.map +1 -0
- package/lib/module/components/Checkbox.js +12 -2
- package/lib/module/components/Checkbox.js.map +1 -1
- package/lib/module/components/DropdownMenu.js +216 -0
- package/lib/module/components/DropdownMenu.js.map +1 -0
- package/lib/module/components/EmptyState.js +19 -20
- package/lib/module/components/EmptyState.js.map +1 -1
- package/lib/module/components/Feed.js +77 -0
- package/lib/module/components/Feed.js.map +1 -0
- package/lib/module/components/FeedNotice.js +73 -0
- package/lib/module/components/FeedNotice.js.map +1 -0
- package/lib/module/components/Input.js +21 -9
- package/lib/module/components/Input.js.map +1 -1
- package/lib/module/components/InvitePopover.js +183 -0
- package/lib/module/components/InvitePopover.js.map +1 -0
- package/lib/module/components/Label.js +2 -1
- package/lib/module/components/Label.js.map +1 -1
- package/lib/module/components/LeaderboardCard.js +53 -0
- package/lib/module/components/LeaderboardCard.js.map +1 -0
- package/lib/module/components/MemberRow.js +127 -0
- package/lib/module/components/MemberRow.js.map +1 -0
- package/lib/module/components/PageHeader.js +2 -1
- package/lib/module/components/PageHeader.js.map +1 -1
- package/lib/module/components/PostForm.js +174 -0
- package/lib/module/components/PostForm.js.map +1 -0
- package/lib/module/components/PrizeCollection.js +127 -0
- package/lib/module/components/PrizeCollection.js.map +1 -0
- package/lib/module/components/RadioGroup.js +21 -1
- package/lib/module/components/RadioGroup.js.map +1 -1
- package/lib/module/components/SectionHeader.js +33 -0
- package/lib/module/components/SectionHeader.js.map +1 -0
- package/lib/module/components/Switch.js +34 -20
- package/lib/module/components/Switch.js.map +1 -1
- package/lib/module/components/Tabs.js +148 -0
- package/lib/module/components/Tabs.js.map +1 -0
- package/lib/module/components/Tag.js +2 -1
- package/lib/module/components/Tag.js.map +1 -1
- package/lib/module/components/Text.js +58 -0
- package/lib/module/components/Text.js.map +1 -0
- package/lib/module/components/Toast.js +2 -1
- package/lib/module/components/Toast.js.map +1 -1
- package/lib/module/components/Tooltip.js +1 -1
- package/lib/module/components/Tooltip.js.map +1 -1
- package/lib/module/hooks/useThemeColor.js +66 -31
- package/lib/module/hooks/useThemeColor.js.map +1 -1
- package/lib/module/index.js +27 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/lib/overlay-host.js +96 -0
- package/lib/module/lib/overlay-host.js.map +1 -0
- package/lib/module/lib/typography.js +22 -0
- package/lib/module/lib/typography.js.map +1 -0
- package/lib/module/nativewind-env.d.js +0 -1
- package/lib/module/nativewind-env.d.js.map +1 -1
- package/lib/typescript/components/Alert.d.ts.map +1 -1
- package/lib/typescript/components/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/Badge.d.ts.map +1 -1
- package/lib/typescript/components/Button.d.ts.map +1 -1
- package/lib/typescript/components/CardNews.d.ts.map +1 -1
- package/lib/typescript/components/Carousel.d.ts +29 -0
- package/lib/typescript/components/Carousel.d.ts.map +1 -0
- package/lib/typescript/components/Checkbox.d.ts.map +1 -1
- package/lib/typescript/components/DropdownMenu.d.ts +39 -0
- package/lib/typescript/components/DropdownMenu.d.ts.map +1 -0
- package/lib/typescript/components/EmptyState.d.ts +1 -1
- package/lib/typescript/components/EmptyState.d.ts.map +1 -1
- package/lib/typescript/components/Feed.d.ts +22 -0
- package/lib/typescript/components/Feed.d.ts.map +1 -0
- package/lib/typescript/components/FeedNotice.d.ts +17 -0
- package/lib/typescript/components/FeedNotice.d.ts.map +1 -0
- package/lib/typescript/components/Input.d.ts +3 -2
- package/lib/typescript/components/Input.d.ts.map +1 -1
- package/lib/typescript/components/InvitePopover.d.ts +46 -0
- package/lib/typescript/components/InvitePopover.d.ts.map +1 -0
- package/lib/typescript/components/Label.d.ts.map +1 -1
- package/lib/typescript/components/LeaderboardCard.d.ts +16 -0
- package/lib/typescript/components/LeaderboardCard.d.ts.map +1 -0
- package/lib/typescript/components/MemberRow.d.ts +40 -0
- package/lib/typescript/components/MemberRow.d.ts.map +1 -0
- package/lib/typescript/components/PageHeader.d.ts.map +1 -1
- package/lib/typescript/components/PostForm.d.ts +50 -0
- package/lib/typescript/components/PostForm.d.ts.map +1 -0
- package/lib/typescript/components/PrizeCollection.d.ts +35 -0
- package/lib/typescript/components/PrizeCollection.d.ts.map +1 -0
- package/lib/typescript/components/RadioGroup.d.ts +10 -2
- package/lib/typescript/components/RadioGroup.d.ts.map +1 -1
- package/lib/typescript/components/SectionHeader.d.ts +12 -0
- package/lib/typescript/components/SectionHeader.d.ts.map +1 -0
- package/lib/typescript/components/Switch.d.ts.map +1 -1
- package/lib/typescript/components/Tabs.d.ts +32 -0
- package/lib/typescript/components/Tabs.d.ts.map +1 -0
- package/lib/typescript/components/Tag.d.ts.map +1 -1
- package/lib/typescript/components/Text.d.ts +23 -0
- package/lib/typescript/components/Text.d.ts.map +1 -0
- package/lib/typescript/components/Toast.d.ts +1 -1
- package/lib/typescript/components/Toast.d.ts.map +1 -1
- package/lib/typescript/components/Tooltip.d.ts.map +1 -1
- package/lib/typescript/hooks/useThemeColor.d.ts +4 -2
- package/lib/typescript/hooks/useThemeColor.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +28 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/lib/overlay-host.d.ts +23 -0
- package/lib/typescript/lib/overlay-host.d.ts.map +1 -0
- package/lib/typescript/lib/typography.d.ts +12 -0
- package/lib/typescript/lib/typography.d.ts.map +1 -0
- package/package.json +13 -3
- package/setup/MedwayUiProvider.tsx +15 -3
- package/setup/tailwind.js +52 -4
- package/setup/tokens.native.css +8 -3
- package/src/components/Alert.tsx +4 -2
- package/src/components/Avatar.tsx +3 -1
- package/src/components/Badge.tsx +3 -1
- package/src/components/Button.tsx +3 -7
- package/src/components/CardNews.tsx +2 -1
- package/src/components/Carousel.tsx +152 -0
- package/src/components/Checkbox.tsx +14 -4
- package/src/components/DropdownMenu.tsx +312 -0
- package/src/components/EmptyState.tsx +21 -23
- package/src/components/Feed.tsx +96 -0
- package/src/components/FeedNotice.tsx +112 -0
- package/src/components/Input.tsx +11 -6
- package/src/components/InvitePopover.tsx +240 -0
- package/src/components/Label.tsx +3 -1
- package/src/components/LeaderboardCard.tsx +70 -0
- package/src/components/MemberRow.tsx +157 -0
- package/src/components/PageHeader.tsx +3 -1
- package/src/components/PostForm.tsx +250 -0
- package/src/components/PrizeCollection.tsx +190 -0
- package/src/components/RadioGroup.tsx +32 -3
- package/src/components/SectionHeader.tsx +45 -0
- package/src/components/Switch.tsx +65 -59
- package/src/components/Tabs.tsx +182 -0
- package/src/components/Tag.tsx +3 -1
- package/src/components/Text.tsx +66 -0
- package/src/components/Toast.tsx +3 -1
- package/src/components/Tooltip.tsx +2 -1
- package/src/hooks/useThemeColor.ts +77 -32
- package/src/index.ts +147 -6
- package/src/lib/overlay-host.tsx +102 -0
- package/src/lib/typography.ts +21 -0
- 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 {
|
|
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":["
|
|
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
|
-
|
|
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,
|
|
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 {
|
|
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
|
|
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
|
|
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
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
|
|
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 => [
|
|
113
|
+
style: state => [rootStyle, typeof style === "function" ? style(state) : style],
|
|
100
114
|
className: cn(switchVariants({
|
|
101
115
|
size,
|
|
102
116
|
variant
|
|
103
|
-
}),
|
|
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__*/
|
|
113
|
-
className:
|
|
114
|
-
children:
|
|
115
|
-
|
|
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
|
});
|