@tamagui/demos 1.95.3 → 1.97.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/dist/cjs/AccordionDemo.js +8 -4
- package/dist/cjs/AccordionDemo.js.map +1 -1
- package/dist/cjs/AccordionDemo.native.js +20 -6
- package/dist/cjs/AccordionDemo.native.js.map +2 -2
- package/dist/cjs/NewInputsDemo.js +46 -0
- package/dist/cjs/NewInputsDemo.js.map +6 -0
- package/dist/cjs/NewInputsDemo.native.js +67 -0
- package/dist/cjs/NewInputsDemo.native.js.map +6 -0
- package/dist/cjs/RadioGroupHeadlessDemo.js +109 -0
- package/dist/cjs/RadioGroupHeadlessDemo.js.map +6 -0
- package/dist/cjs/RadioGroupHeadlessDemo.native.js +168 -0
- package/dist/cjs/RadioGroupHeadlessDemo.native.js.map +6 -0
- package/dist/cjs/RadioGroupUnstyledDemo.js +107 -0
- package/dist/cjs/RadioGroupUnstyledDemo.js.map +6 -0
- package/dist/cjs/RadioGroupUnstyledDemo.native.js +139 -0
- package/dist/cjs/RadioGroupUnstyledDemo.native.js.map +6 -0
- package/dist/cjs/SelectDemo.js +0 -22
- package/dist/cjs/SelectDemo.js.map +1 -1
- package/dist/cjs/SelectDemo.native.js +0 -66
- package/dist/cjs/SelectDemo.native.js.map +1 -1
- package/dist/cjs/TokensDemo.js +4 -2
- package/dist/cjs/TokensDemo.js.map +1 -1
- package/dist/cjs/TokensDemo.native.js +5 -5
- package/dist/cjs/TokensDemo.native.js.map +2 -2
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +6 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/AccordionDemo.js +8 -4
- package/dist/esm/AccordionDemo.js.map +1 -1
- package/dist/esm/AccordionDemo.mjs +20 -6
- package/dist/esm/AccordionDemo.native.js +20 -6
- package/dist/esm/AccordionDemo.native.js.map +2 -2
- package/dist/esm/NewInputsDemo.js +32 -0
- package/dist/esm/NewInputsDemo.js.map +6 -0
- package/dist/esm/NewInputsDemo.mjs +37 -0
- package/dist/esm/NewInputsDemo.native.js +48 -0
- package/dist/esm/NewInputsDemo.native.js.map +6 -0
- package/dist/esm/RadioGroupHeadlessDemo.js +102 -0
- package/dist/esm/RadioGroupHeadlessDemo.js.map +6 -0
- package/dist/esm/RadioGroupHeadlessDemo.mjs +133 -0
- package/dist/esm/RadioGroupHeadlessDemo.native.js +152 -0
- package/dist/esm/RadioGroupHeadlessDemo.native.js.map +6 -0
- package/dist/esm/RadioGroupUnstyledDemo.js +93 -0
- package/dist/esm/RadioGroupUnstyledDemo.js.map +6 -0
- package/dist/esm/RadioGroupUnstyledDemo.mjs +118 -0
- package/dist/esm/RadioGroupUnstyledDemo.native.js +121 -0
- package/dist/esm/RadioGroupUnstyledDemo.native.js.map +6 -0
- package/dist/esm/SelectDemo.js +0 -22
- package/dist/esm/SelectDemo.js.map +1 -1
- package/dist/esm/SelectDemo.mjs +0 -44
- package/dist/esm/SelectDemo.native.js +0 -66
- package/dist/esm/SelectDemo.native.js.map +1 -1
- package/dist/esm/TokensDemo.js +4 -2
- package/dist/esm/TokensDemo.js.map +1 -1
- package/dist/esm/TokensDemo.mjs +4 -4
- package/dist/esm/TokensDemo.native.js +5 -5
- package/dist/esm/TokensDemo.native.js.map +2 -2
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +3 -0
- package/dist/esm/index.native.js +3 -0
- package/dist/esm/index.native.js.map +1 -1
- package/dist/jsx/AccordionDemo.js +8 -4
- package/dist/jsx/AccordionDemo.js.map +1 -1
- package/dist/jsx/AccordionDemo.mjs +20 -6
- package/dist/jsx/AccordionDemo.native.js +20 -6
- package/dist/jsx/AccordionDemo.native.js.map +2 -2
- package/dist/jsx/NewInputsDemo.js +32 -0
- package/dist/jsx/NewInputsDemo.js.map +6 -0
- package/dist/jsx/NewInputsDemo.mjs +37 -0
- package/dist/jsx/NewInputsDemo.native.js +48 -0
- package/dist/jsx/NewInputsDemo.native.js.map +6 -0
- package/dist/jsx/RadioGroupHeadlessDemo.js +102 -0
- package/dist/jsx/RadioGroupHeadlessDemo.js.map +6 -0
- package/dist/jsx/RadioGroupHeadlessDemo.mjs +133 -0
- package/dist/jsx/RadioGroupHeadlessDemo.native.js +152 -0
- package/dist/jsx/RadioGroupHeadlessDemo.native.js.map +6 -0
- package/dist/jsx/RadioGroupUnstyledDemo.js +93 -0
- package/dist/jsx/RadioGroupUnstyledDemo.js.map +6 -0
- package/dist/jsx/RadioGroupUnstyledDemo.mjs +118 -0
- package/dist/jsx/RadioGroupUnstyledDemo.native.js +121 -0
- package/dist/jsx/RadioGroupUnstyledDemo.native.js.map +6 -0
- package/dist/jsx/SelectDemo.js +0 -22
- package/dist/jsx/SelectDemo.js.map +1 -1
- package/dist/jsx/SelectDemo.mjs +0 -44
- package/dist/jsx/SelectDemo.native.js +0 -66
- package/dist/jsx/SelectDemo.native.js.map +1 -1
- package/dist/jsx/TokensDemo.js +4 -2
- package/dist/jsx/TokensDemo.js.map +1 -1
- package/dist/jsx/TokensDemo.mjs +4 -4
- package/dist/jsx/TokensDemo.native.js +5 -5
- package/dist/jsx/TokensDemo.native.js.map +2 -2
- package/dist/jsx/index.js +3 -0
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +3 -0
- package/dist/jsx/index.native.js +3 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +18 -19
- package/src/AccordionDemo.tsx +26 -14
- package/src/NewInputsDemo.tsx +30 -0
- package/src/RadioGroupHeadlessDemo.tsx +133 -0
- package/src/RadioGroupUnstyledDemo.tsx +126 -0
- package/src/SelectDemo.tsx +0 -22
- package/src/TokensDemo.tsx +7 -5
- package/src/index.tsx +3 -0
- package/types/AccordionDemo.d.ts.map +1 -1
- package/types/CheckboxUnstyledDemo.d.ts +4 -4
- package/types/NewInputsDemo.d.ts +2 -0
- package/types/NewInputsDemo.d.ts.map +1 -0
- package/types/RadioGroupHeadlessDemo.d.ts +2 -0
- package/types/RadioGroupHeadlessDemo.d.ts.map +1 -0
- package/types/RadioGroupUnstyledDemo.d.ts +2 -0
- package/types/RadioGroupUnstyledDemo.d.ts.map +1 -0
- package/types/SwitchUnstyledDemo.d.ts +4 -4
- package/types/index.d.ts +3 -0
- package/types/index.d.ts.map +1 -1
|
@@ -4,18 +4,22 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
|
4
4
|
function AccordionDemo() {
|
|
5
5
|
return /* @__PURE__ */ jsxs(Accordion, { overflow: "hidden", width: "$20", type: "multiple", children: [
|
|
6
6
|
/* @__PURE__ */ jsxs(Accordion.Item, { value: "a1", children: [
|
|
7
|
-
/* @__PURE__ */ jsx(Accordion.Trigger, { flexDirection: "row", justifyContent: "space-between", children: ({
|
|
7
|
+
/* @__PURE__ */ jsx(Accordion.Trigger, { flexDirection: "row", justifyContent: "space-between", children: ({
|
|
8
|
+
open
|
|
9
|
+
}) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8
10
|
/* @__PURE__ */ jsx(Paragraph, { children: "1. Take a cold shower" }),
|
|
9
11
|
/* @__PURE__ */ jsx(Square, { animation: "quick", rotate: open ? "180deg" : "0deg", children: /* @__PURE__ */ jsx(ChevronDown, { size: "$1" }) })
|
|
10
12
|
] }) }),
|
|
11
|
-
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(Paragraph, { children: "Cold showers can help reduce inflammation, relieve pain, improve circulation, lower stress levels, and reduce muscle soreness and fatigue." }) })
|
|
13
|
+
/* @__PURE__ */ jsx(Accordion.HeightAnimator, { animation: "medium", children: /* @__PURE__ */ jsx(Accordion.Content, { animation: "medium", exitStyle: { opacity: 0 }, children: /* @__PURE__ */ jsx(Paragraph, { children: "Cold showers can help reduce inflammation, relieve pain, improve circulation, lower stress levels, and reduce muscle soreness and fatigue." }) }) })
|
|
12
14
|
] }),
|
|
13
15
|
/* @__PURE__ */ jsxs(Accordion.Item, { value: "a2", children: [
|
|
14
|
-
/* @__PURE__ */ jsx(Accordion.Trigger, { flexDirection: "row", justifyContent: "space-between", children: ({
|
|
16
|
+
/* @__PURE__ */ jsx(Accordion.Trigger, { flexDirection: "row", justifyContent: "space-between", children: ({
|
|
17
|
+
open
|
|
18
|
+
}) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
15
19
|
/* @__PURE__ */ jsx(Paragraph, { children: "2. Eat 4 eggs" }),
|
|
16
20
|
/* @__PURE__ */ jsx(Square, { animation: "quick", rotate: open ? "180deg" : "0deg", children: /* @__PURE__ */ jsx(ChevronDown, { size: "$1" }) })
|
|
17
21
|
] }) }),
|
|
18
|
-
/* @__PURE__ */ jsx(Accordion.Content, { children: /* @__PURE__ */ jsx(Paragraph, { children: "Eggs have been a dietary staple since time immemorial and there\u2019s good reason for their continued presence in our menus and meals." }) })
|
|
22
|
+
/* @__PURE__ */ jsx(Accordion.HeightAnimator, { animation: "medium", children: /* @__PURE__ */ jsx(Accordion.Content, { animation: "medium", exitStyle: { opacity: 0 }, children: /* @__PURE__ */ jsx(Paragraph, { children: "Eggs have been a dietary staple since time immemorial and there\u2019s good reason for their continued presence in our menus and meals." }) }) })
|
|
19
23
|
] })
|
|
20
24
|
] });
|
|
21
25
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/AccordionDemo.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,WAAW,WAAW,cAAc;
|
|
4
|
+
"mappings": "AAAA,SAAS,mBAAmB;AAC5B,SAAS,WAAW,WAAW,cAAc;AAYjC,mBACE,KADF;AAVL,SAAS,gBAAgB;AAC9B,SACE,qBAAC,aAAU,UAAS,UAAS,OAAM,OAAM,MAAK,YAC5C;AAAA,yBAAC,UAAU,MAAV,EAAe,OAAM,MACpB;AAAA,0BAAC,UAAU,SAAV,EAAkB,eAAc,OAAM,gBAAe,iBACnD,WAAC;AAAA,QACA;AAAA,MACF,MAGE,iCACE;AAAA,4BAAC,aAAU,mCAAqB;AAAA,QAChC,oBAAC,UAAO,WAAU,SAAQ,QAAQ,OAAO,WAAW,QAClD,8BAAC,eAAY,MAAK,MAAK,GACzB;AAAA,SACF,GAEJ;AAAA,MACA,oBAAC,UAAU,gBAAV,EAAyB,WAAU,UAClC,8BAAC,UAAU,SAAV,EAAkB,WAAU,UAAS,WAAW,EAAE,SAAS,EAAE,GAC5D,8BAAC,aAAU,wJAGX,GACF,GACF;AAAA,OACF;AAAA,IAEA,qBAAC,UAAU,MAAV,EAAe,OAAM,MACpB;AAAA,0BAAC,UAAU,SAAV,EAAkB,eAAc,OAAM,gBAAe,iBACnD,WAAC;AAAA,QACA;AAAA,MACF,MAGE,iCACE;AAAA,4BAAC,aAAU,2BAAa;AAAA,QACxB,oBAAC,UAAO,WAAU,SAAQ,QAAQ,OAAO,WAAW,QAClD,8BAAC,eAAY,MAAK,MAAK,GACzB;AAAA,SACF,GAEJ;AAAA,MACA,oBAAC,UAAU,gBAAV,EAAyB,WAAU,UAClC,8BAAC,UAAU,SAAV,EAAkB,WAAU,UAAS,WAAW,EAAE,SAAS,EAAE,GAC5D,8BAAC,aAAU,qJAGX,GACF,GACF;AAAA,OACF;AAAA,KACF;AAEJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -24,9 +24,16 @@ function AccordionDemo() {
|
|
|
24
24
|
})
|
|
25
25
|
})]
|
|
26
26
|
})
|
|
27
|
-
}), /* @__PURE__ */jsx(Accordion.
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
}), /* @__PURE__ */jsx(Accordion.HeightAnimator, {
|
|
28
|
+
animation: "medium",
|
|
29
|
+
children: /* @__PURE__ */jsx(Accordion.Content, {
|
|
30
|
+
animation: "medium",
|
|
31
|
+
exitStyle: {
|
|
32
|
+
opacity: 0
|
|
33
|
+
},
|
|
34
|
+
children: /* @__PURE__ */jsx(Paragraph, {
|
|
35
|
+
children: "Cold showers can help reduce inflammation, relieve pain, improve circulation, lower stress levels, and reduce muscle soreness and fatigue."
|
|
36
|
+
})
|
|
30
37
|
})
|
|
31
38
|
})]
|
|
32
39
|
}), /* @__PURE__ */jsxs(Accordion.Item, {
|
|
@@ -47,9 +54,16 @@ function AccordionDemo() {
|
|
|
47
54
|
})
|
|
48
55
|
})]
|
|
49
56
|
})
|
|
50
|
-
}), /* @__PURE__ */jsx(Accordion.
|
|
51
|
-
|
|
52
|
-
|
|
57
|
+
}), /* @__PURE__ */jsx(Accordion.HeightAnimator, {
|
|
58
|
+
animation: "medium",
|
|
59
|
+
children: /* @__PURE__ */jsx(Accordion.Content, {
|
|
60
|
+
animation: "medium",
|
|
61
|
+
exitStyle: {
|
|
62
|
+
opacity: 0
|
|
63
|
+
},
|
|
64
|
+
children: /* @__PURE__ */jsx(Paragraph, {
|
|
65
|
+
children: "Eggs have been a dietary staple since time immemorial and there\u2019s good reason for their continued presence in our menus and meals."
|
|
66
|
+
})
|
|
53
67
|
})
|
|
54
68
|
})]
|
|
55
69
|
})]
|
|
@@ -31,9 +31,16 @@ function AccordionDemo() {
|
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}),
|
|
34
|
-
/* @__PURE__ */ _jsx(Accordion.
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
/* @__PURE__ */ _jsx(Accordion.HeightAnimator, {
|
|
35
|
+
animation: "medium",
|
|
36
|
+
children: /* @__PURE__ */ _jsx(Accordion.Content, {
|
|
37
|
+
animation: "medium",
|
|
38
|
+
exitStyle: {
|
|
39
|
+
opacity: 0
|
|
40
|
+
},
|
|
41
|
+
children: /* @__PURE__ */ _jsx(Paragraph, {
|
|
42
|
+
children: "Cold showers can help reduce inflammation, relieve pain, improve circulation, lower stress levels, and reduce muscle soreness and fatigue."
|
|
43
|
+
})
|
|
37
44
|
})
|
|
38
45
|
})
|
|
39
46
|
]
|
|
@@ -62,9 +69,16 @@ function AccordionDemo() {
|
|
|
62
69
|
});
|
|
63
70
|
}
|
|
64
71
|
}),
|
|
65
|
-
/* @__PURE__ */ _jsx(Accordion.
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
/* @__PURE__ */ _jsx(Accordion.HeightAnimator, {
|
|
73
|
+
animation: "medium",
|
|
74
|
+
children: /* @__PURE__ */ _jsx(Accordion.Content, {
|
|
75
|
+
animation: "medium",
|
|
76
|
+
exitStyle: {
|
|
77
|
+
opacity: 0
|
|
78
|
+
},
|
|
79
|
+
children: /* @__PURE__ */ _jsx(Paragraph, {
|
|
80
|
+
children: "Eggs have been a dietary staple since time immemorial and there\u2019s good reason for their continued presence in our menus and meals."
|
|
81
|
+
})
|
|
68
82
|
})
|
|
69
83
|
})
|
|
70
84
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/demos/src/AccordionDemo.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,WAAWC,WAAWC,cAAc;AAEtC,SAASC,gBAAAA;AACd,SACE,sBAACH,WAAAA;IAAUI,UAAS;IAASC,OAAM;IAAMC,MAAK;;MAC5C,sBAACN,UAAUO,MAAI;QAACC,OAAM;;UACpB,qBAACR,UAAUS,SAAO;YAACC,eAAc;YAAMC,gBAAe;sBACnD,SAAA,OAAA;
|
|
5
|
-
"names": ["ChevronDown", "Accordion", "Paragraph", "Square", "AccordionDemo", "overflow", "width", "type", "Item", "value", "Trigger", "flexDirection", "justifyContent", "open", "animation", "rotate", "size", "Content"]
|
|
4
|
+
"mappings": ";AAAA,SAASA,mBAAmB;AAC5B,SAASC,WAAWC,WAAWC,cAAc;AAEtC,SAASC,gBAAAA;AACd,SACE,sBAACH,WAAAA;IAAUI,UAAS;IAASC,OAAM;IAAMC,MAAK;;MAC5C,sBAACN,UAAUO,MAAI;QAACC,OAAM;;UACpB,qBAACR,UAAUS,SAAO;YAACC,eAAc;YAAMC,gBAAe;sBACnD,SAAA,OAAA;kBACCC,OAAAA,MAAAA;qBAIA,sBAAA,WAAA;;kBACE,qBAACX,WAAAA;8BAAU;;kBACX,qBAACC,QAAAA;oBAAOW,WAAU;oBAAQC,QAAQF,OAAO,WAAW;8BAClD,qBAACb,aAAAA;sBAAYgB,MAAK;;;;;;;UAK1B,qBAACf,UAAUgB,gBAAc;YAACH,WAAU;sBAClC,qBAACb,UAAUiB,SAAO;cAACJ,WAAU;cAASK,WAAW;gBAAEC,SAAS;cAAE;wBAC5D,qBAAClB,WAAAA;0BAAU;;;;;;MAQjB,sBAACD,UAAUO,MAAI;QAACC,OAAM;;UACpB,qBAACR,UAAUS,SAAO;YAACC,eAAc;YAAMC,gBAAe;sBACnD,SAAA,OAAA;kBACCC,OAAAA,MAAAA;qBAIA,sBAAA,WAAA;;kBACE,qBAACX,WAAAA;8BAAU;;kBACX,qBAACC,QAAAA;oBAAOW,WAAU;oBAAQC,QAAQF,OAAO,WAAW;8BAClD,qBAACb,aAAAA;sBAAYgB,MAAK;;;;;;;UAK1B,qBAACf,UAAUgB,gBAAc;YAACH,WAAU;sBAClC,qBAACb,UAAUiB,SAAO;cAACJ,WAAU;cAASK,WAAW;gBAAEC,SAAS;cAAE;wBAC5D,qBAAClB,WAAAA;0BAAU;;;;;;;;AASvB;",
|
|
5
|
+
"names": ["ChevronDown", "Accordion", "Paragraph", "Square", "AccordionDemo", "overflow", "width", "type", "Item", "value", "Trigger", "flexDirection", "justifyContent", "open", "animation", "rotate", "size", "HeightAnimator", "Content", "exitStyle", "opacity"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Button, XStack, YStack } from "tamagui";
|
|
2
|
+
import { Input, TextArea } from "@tamagui/input";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
function NewInputsDemo() {
|
|
5
|
+
return /* @__PURE__ */ jsxs(
|
|
6
|
+
YStack,
|
|
7
|
+
{
|
|
8
|
+
width: 200,
|
|
9
|
+
minHeight: 250,
|
|
10
|
+
overflow: "hidden",
|
|
11
|
+
space: "$2",
|
|
12
|
+
margin: "$3",
|
|
13
|
+
padding: "$2",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ jsx(InputDemo, { size: "$2" }),
|
|
16
|
+
/* @__PURE__ */ jsx(InputDemo, { size: "$3" }),
|
|
17
|
+
/* @__PURE__ */ jsx(InputDemo, { size: "$4" }),
|
|
18
|
+
/* @__PURE__ */ jsx(TextArea, { placeholder: "Enter your details..." })
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
function InputDemo(props) {
|
|
24
|
+
return /* @__PURE__ */ jsxs(XStack, { alignItems: "center", space: "$2", children: [
|
|
25
|
+
/* @__PURE__ */ jsx(Input, { flex: 1, size: props.size, placeholder: `Size ${props.size}...` }),
|
|
26
|
+
/* @__PURE__ */ jsx(Button, { size: props.size, children: "Go" })
|
|
27
|
+
] });
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
NewInputsDemo
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=NewInputsDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/NewInputsDemo.tsx"],
|
|
4
|
+
"mappings": "AACA,SAAS,QAAQ,QAAQ,cAAc;AACvC,SAAS,OAAO,gBAAgB;AAI5B,SAQE,KARF;AAFG,SAAS,gBAAgB;AAC9B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,WAAW;AAAA,MACX,UAAS;AAAA,MACT,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MAER;AAAA,4BAAC,aAAU,MAAK,MAAK;AAAA,QACrB,oBAAC,aAAU,MAAK,MAAK;AAAA,QACrB,oBAAC,aAAU,MAAK,MAAK;AAAA,QACrB,oBAAC,YAAS,aAAY,yBAAwB;AAAA;AAAA;AAAA,EAChD;AAEJ;AAEA,SAAS,UAAU,OAA6B;AAC9C,SACE,qBAAC,UAAO,YAAW,UAAS,OAAM,MAChC;AAAA,wBAAC,SAAM,MAAM,GAAG,MAAM,MAAM,MAAM,aAAa,QAAQ,MAAM,IAAI,OAAO;AAAA,IACxE,oBAAC,UAAO,MAAM,MAAM,MAAM,gBAAE;AAAA,KAC9B;AAEJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Button, XStack, YStack } from "tamagui";
|
|
2
|
+
import { Input, TextArea } from "@tamagui/input";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
function NewInputsDemo() {
|
|
5
|
+
return /* @__PURE__ */jsxs(YStack, {
|
|
6
|
+
width: 200,
|
|
7
|
+
minHeight: 250,
|
|
8
|
+
overflow: "hidden",
|
|
9
|
+
space: "$2",
|
|
10
|
+
margin: "$3",
|
|
11
|
+
padding: "$2",
|
|
12
|
+
children: [/* @__PURE__ */jsx(InputDemo, {
|
|
13
|
+
size: "$2"
|
|
14
|
+
}), /* @__PURE__ */jsx(InputDemo, {
|
|
15
|
+
size: "$3"
|
|
16
|
+
}), /* @__PURE__ */jsx(InputDemo, {
|
|
17
|
+
size: "$4"
|
|
18
|
+
}), /* @__PURE__ */jsx(TextArea, {
|
|
19
|
+
placeholder: "Enter your details..."
|
|
20
|
+
})]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function InputDemo(props) {
|
|
24
|
+
return /* @__PURE__ */jsxs(XStack, {
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
space: "$2",
|
|
27
|
+
children: [/* @__PURE__ */jsx(Input, {
|
|
28
|
+
flex: 1,
|
|
29
|
+
size: props.size,
|
|
30
|
+
placeholder: `Size ${props.size}...`
|
|
31
|
+
}), /* @__PURE__ */jsx(Button, {
|
|
32
|
+
size: props.size,
|
|
33
|
+
children: "Go"
|
|
34
|
+
})]
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
export { NewInputsDemo };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, XStack, YStack } from "tamagui";
|
|
3
|
+
import { Input, TextArea } from "@tamagui/input";
|
|
4
|
+
function NewInputsDemo() {
|
|
5
|
+
return /* @__PURE__ */ _jsxs(YStack, {
|
|
6
|
+
width: 200,
|
|
7
|
+
minHeight: 250,
|
|
8
|
+
overflow: "hidden",
|
|
9
|
+
space: "$2",
|
|
10
|
+
margin: "$3",
|
|
11
|
+
padding: "$2",
|
|
12
|
+
children: [
|
|
13
|
+
/* @__PURE__ */ _jsx(InputDemo, {
|
|
14
|
+
size: "$2"
|
|
15
|
+
}),
|
|
16
|
+
/* @__PURE__ */ _jsx(InputDemo, {
|
|
17
|
+
size: "$3"
|
|
18
|
+
}),
|
|
19
|
+
/* @__PURE__ */ _jsx(InputDemo, {
|
|
20
|
+
size: "$4"
|
|
21
|
+
}),
|
|
22
|
+
/* @__PURE__ */ _jsx(TextArea, {
|
|
23
|
+
placeholder: "Enter your details..."
|
|
24
|
+
})
|
|
25
|
+
]
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function InputDemo(props) {
|
|
29
|
+
return /* @__PURE__ */ _jsxs(XStack, {
|
|
30
|
+
alignItems: "center",
|
|
31
|
+
space: "$2",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ _jsx(Input, {
|
|
34
|
+
flex: 1,
|
|
35
|
+
size: props.size,
|
|
36
|
+
placeholder: "Size ".concat(props.size, "...")
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ _jsx(Button, {
|
|
39
|
+
size: props.size,
|
|
40
|
+
children: "Go"
|
|
41
|
+
})
|
|
42
|
+
]
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
NewInputsDemo
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=NewInputsDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Users/n8/tamagui/packages/demos/src/NewInputsDemo.tsx"],
|
|
4
|
+
"mappings": ";AACA,SAASA,QAAQC,QAAQC,cAAc;AACvC,SAASC,OAAOC,gBAAgB;AAEzB,SAASC,gBAAAA;AACd,SACE,sBAACH,QAAAA;IACCI,OAAO;IACPC,WAAW;IACXC,UAAS;IACTC,OAAM;IACNC,QAAO;IACPC,SAAQ;;MAER,qBAACC,WAAAA;QAAUC,MAAK;;MAChB,qBAACD,WAAAA;QAAUC,MAAK;;MAChB,qBAACD,WAAAA;QAAUC,MAAK;;MAChB,qBAACT,UAAAA;QAASU,aAAY;;;;AAG5B;AAEA,SAASF,UAAUG,OAA2B;AAC5C,SACE,sBAACd,QAAAA;IAAOe,YAAW;IAASP,OAAM;;MAChC,qBAACN,OAAAA;QAAMc,MAAM;QAAGJ,MAAME,MAAMF;QAAMC,aAAc,QAAkB,OAAXC,MAAMF,MAAK,KAAA;;MAClE,qBAACb,QAAAA;QAAOa,MAAME,MAAMF;kBAAM;;;;AAGhC;",
|
|
5
|
+
"names": ["Button", "XStack", "YStack", "Input", "TextArea", "NewInputsDemo", "width", "minHeight", "overflow", "space", "margin", "padding", "InputDemo", "size", "placeholder", "props", "alignItems", "flex"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useRadioGroup,
|
|
3
|
+
useRadioGroupItem,
|
|
4
|
+
useRadioGroupItemIndicator
|
|
5
|
+
} from "@tamagui/radio-headless";
|
|
6
|
+
import { RovingFocusGroup } from "@tamagui/roving-focus";
|
|
7
|
+
import { createContext } from "react";
|
|
8
|
+
import { StyleSheet, View, Pressable, Text } from "react-native-web";
|
|
9
|
+
import { isWeb, useTheme } from "tamagui";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
const RadioGroupContext = createContext({}), RadioGroupItemContext = createContext({
|
|
12
|
+
checked: !1,
|
|
13
|
+
disabled: !1
|
|
14
|
+
});
|
|
15
|
+
function RadioGroupHeadlessDemo() {
|
|
16
|
+
const { providerValue, frameAttrs, rovingFocusGroupAttrs } = useRadioGroup({
|
|
17
|
+
orientation: "vertical",
|
|
18
|
+
name: "form",
|
|
19
|
+
defaultValue: "3"
|
|
20
|
+
});
|
|
21
|
+
return /* @__PURE__ */ jsx(RadioGroupContext.Provider, { value: providerValue, children: /* @__PURE__ */ jsx(RovingFocusGroup, { ...rovingFocusGroupAttrs, children: /* @__PURE__ */ jsxs(View, { style: styles.radioGroup, ...frameAttrs, children: [
|
|
22
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "2", id: "2", label: "First Value" }),
|
|
23
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "3", id: "3", label: "Second Value" }),
|
|
24
|
+
/* @__PURE__ */ jsx(RadioGroupItem, { value: "4", id: "4", label: "Third Value" })
|
|
25
|
+
] }) }) });
|
|
26
|
+
}
|
|
27
|
+
function RadioGroupItem(props) {
|
|
28
|
+
const theme = useTheme(), { value, id, label } = props, {
|
|
29
|
+
providerValue,
|
|
30
|
+
native,
|
|
31
|
+
bubbleInput,
|
|
32
|
+
rovingFocusGroupAttrs,
|
|
33
|
+
frameAttrs,
|
|
34
|
+
isFormControl,
|
|
35
|
+
checked
|
|
36
|
+
} = useRadioGroupItem({
|
|
37
|
+
radioGroupContext: RadioGroupContext,
|
|
38
|
+
value,
|
|
39
|
+
id
|
|
40
|
+
});
|
|
41
|
+
return /* @__PURE__ */ jsx(RadioGroupItemContext.Provider, { value: providerValue, children: isWeb && native ? bubbleInput : /* @__PURE__ */ jsxs(View, { style: styles.radioGroupItemContainer, children: [
|
|
42
|
+
/* @__PURE__ */ jsx(RovingFocusGroup.Item, { ...rovingFocusGroupAttrs, children: /* @__PURE__ */ jsx(
|
|
43
|
+
Pressable,
|
|
44
|
+
{
|
|
45
|
+
style: {
|
|
46
|
+
...styles.radioGroupItem,
|
|
47
|
+
borderColor: theme.borderColor.get(),
|
|
48
|
+
...checked ? { borderWidth: 4 } : { backgroundColor: theme.background.get() }
|
|
49
|
+
},
|
|
50
|
+
...frameAttrs,
|
|
51
|
+
onFocus: frameAttrs.onFocus,
|
|
52
|
+
children: /* @__PURE__ */ jsx(RadioGroupItemIndicator, {})
|
|
53
|
+
}
|
|
54
|
+
) }),
|
|
55
|
+
/* @__PURE__ */ jsx(Text, { style: { color: theme.color.get() }, children: label }),
|
|
56
|
+
isFormControl && bubbleInput
|
|
57
|
+
] }) });
|
|
58
|
+
}
|
|
59
|
+
function RadioGroupItemIndicator() {
|
|
60
|
+
const theme = useTheme(), params = useRadioGroupItemIndicator({
|
|
61
|
+
radioGroupItemContext: RadioGroupItemContext,
|
|
62
|
+
disabled: !1
|
|
63
|
+
});
|
|
64
|
+
return params.checked ? /* @__PURE__ */ jsx(
|
|
65
|
+
View,
|
|
66
|
+
{
|
|
67
|
+
style: {
|
|
68
|
+
...styles.radioGroupItemIndicator,
|
|
69
|
+
backgroundColor: theme.color.get()
|
|
70
|
+
},
|
|
71
|
+
...params
|
|
72
|
+
}
|
|
73
|
+
) : null;
|
|
74
|
+
}
|
|
75
|
+
const styles = StyleSheet.create({
|
|
76
|
+
radioGroup: {
|
|
77
|
+
flexDirection: "column",
|
|
78
|
+
gap: 20,
|
|
79
|
+
alignItems: "flex-start"
|
|
80
|
+
},
|
|
81
|
+
radioGroupItem: {
|
|
82
|
+
borderWidth: 2,
|
|
83
|
+
width: 30,
|
|
84
|
+
height: 30,
|
|
85
|
+
justifyContent: "center",
|
|
86
|
+
alignItems: "center"
|
|
87
|
+
},
|
|
88
|
+
radioGroupItemIndicator: {
|
|
89
|
+
width: "35%",
|
|
90
|
+
height: "35%"
|
|
91
|
+
},
|
|
92
|
+
radioGroupItemContainer: {
|
|
93
|
+
justifyContent: "center",
|
|
94
|
+
alignItems: "center",
|
|
95
|
+
flexDirection: "row",
|
|
96
|
+
gap: 12
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
export {
|
|
100
|
+
RadioGroupHeadlessDemo
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=RadioGroupHeadlessDemo.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/RadioGroupHeadlessDemo.tsx"],
|
|
4
|
+
"mappings": "AAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,YAAY,MAAM,WAAW,YAAY;AAClD,SAAS,OAAO,gBAAgB;AAiBxB,SACE,KADF;AAfR,MAAM,oBAAoB,cAAsC,CAAC,CAAC,GAC5D,wBAAwB,cAA0C;AAAA,EACtE,SAAS;AAAA,EACT,UAAU;AACZ,CAAC;AAEM,SAAS,yBAAyB;AACvC,QAAM,EAAE,eAAe,YAAY,sBAAsB,IAAI,cAAc;AAAA,IACzE,aAAa;AAAA,IACb,MAAM;AAAA,IACN,cAAc;AAAA,EAChB,CAAC;AACD,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,eACjC,8BAAC,oBAAkB,GAAG,uBACpB,+BAAC,QAAK,OAAO,OAAO,YAAa,GAAG,YAClC;AAAA,wBAAC,kBAAe,OAAM,KAAI,IAAG,KAAI,OAAM,eAAc;AAAA,IACrD,oBAAC,kBAAe,OAAM,KAAI,IAAG,KAAI,OAAM,gBAAe;AAAA,IACtD,oBAAC,kBAAe,OAAM,KAAI,IAAG,KAAI,OAAM,eAAc;AAAA,KACvD,GACF,GACF;AAEJ;AAEA,SAAS,eAAe,OAIrB;AACD,QAAM,QAAQ,SAAS,GACjB,EAAE,OAAO,IAAI,MAAM,IAAI,OACvB;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,kBAAkB;AAAA,IACpB,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,EACF,CAAC;AAED,SACE,oBAAC,sBAAsB,UAAtB,EAA+B,OAAO,eACpC,mBAAS,SACR,cAEA,qBAAC,QAAK,OAAO,OAAO,yBAClB;AAAA,wBAAC,iBAAiB,MAAjB,EAAuB,GAAG,uBACzB;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,UACL,GAAG,OAAO;AAAA,UACL,aAAa,MAAM,YAAY,IAAI;AAAA,UACxC,GAAI,UACA,EAAE,aAAa,EAAE,IACjB,EAAE,iBAAiB,MAAM,WAAW,IAAI,EAAE;AAAA,QAChD;AAAA,QACC,GAAG;AAAA,QACJ,SAAS,WAAW;AAAA,QAEpB,8BAAC,2BAAwB;AAAA;AAAA,IAC3B,GACF;AAAA,IACA,oBAAC,QAAK,OAAO,EAAE,OAAO,MAAM,MAAM,IAAI,EAAE,GAAI,iBAAM;AAAA,IACjD,iBAAiB;AAAA,KACpB,GAEJ;AAEJ;AAEA,SAAS,0BAA0B;AACjC,QAAM,QAAQ,SAAS,GACjB,SAAS,2BAA2B;AAAA,IACxC,uBAAuB;AAAA,IACvB,UAAU;AAAA,EACZ,CAAC;AACD,SAAI,OAAO,UAEP;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,QACL,GAAG,OAAO;AAAA,QACV,iBAAiB,MAAM,MAAM,IAAI;AAAA,MACnC;AAAA,MACC,GAAG;AAAA;AAAA,EACN,IAGG;AACT;AAEA,MAAM,SAAS,WAAW,OAAO;AAAA,EAC/B,YAAY;AAAA,IACV,eAAe;AAAA,IACf,KAAK;AAAA,IACL,YAAY;AAAA,EACd;AAAA,EACA,gBAAgB;AAAA,IACd,aAAa;AAAA,IACb,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,YAAY;AAAA,EACd;AAAA,EACA,yBAAyB;AAAA,IACvB,OAAO;AAAA,IACP,QAAQ;AAAA,EACV;AAAA,EACA,yBAAyB;AAAA,IACvB,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,KAAK;AAAA,EACP;AACF,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { useRadioGroup, useRadioGroupItem, useRadioGroupItemIndicator } from "@tamagui/radio-headless";
|
|
2
|
+
import { RovingFocusGroup } from "@tamagui/roving-focus";
|
|
3
|
+
import { createContext } from "react";
|
|
4
|
+
import { StyleSheet, View, Pressable, Text } from "react-native-web";
|
|
5
|
+
import { isWeb, useTheme } from "tamagui";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
const RadioGroupContext = createContext({}),
|
|
8
|
+
RadioGroupItemContext = createContext({
|
|
9
|
+
checked: !1,
|
|
10
|
+
disabled: !1
|
|
11
|
+
});
|
|
12
|
+
function RadioGroupHeadlessDemo() {
|
|
13
|
+
const {
|
|
14
|
+
providerValue,
|
|
15
|
+
frameAttrs,
|
|
16
|
+
rovingFocusGroupAttrs
|
|
17
|
+
} = useRadioGroup({
|
|
18
|
+
orientation: "vertical",
|
|
19
|
+
name: "form",
|
|
20
|
+
defaultValue: "3"
|
|
21
|
+
});
|
|
22
|
+
return /* @__PURE__ */jsx(RadioGroupContext.Provider, {
|
|
23
|
+
value: providerValue,
|
|
24
|
+
children: /* @__PURE__ */jsx(RovingFocusGroup, {
|
|
25
|
+
...rovingFocusGroupAttrs,
|
|
26
|
+
children: /* @__PURE__ */jsxs(View, {
|
|
27
|
+
style: styles.radioGroup,
|
|
28
|
+
...frameAttrs,
|
|
29
|
+
children: [/* @__PURE__ */jsx(RadioGroupItem, {
|
|
30
|
+
value: "2",
|
|
31
|
+
id: "2",
|
|
32
|
+
label: "First Value"
|
|
33
|
+
}), /* @__PURE__ */jsx(RadioGroupItem, {
|
|
34
|
+
value: "3",
|
|
35
|
+
id: "3",
|
|
36
|
+
label: "Second Value"
|
|
37
|
+
}), /* @__PURE__ */jsx(RadioGroupItem, {
|
|
38
|
+
value: "4",
|
|
39
|
+
id: "4",
|
|
40
|
+
label: "Third Value"
|
|
41
|
+
})]
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function RadioGroupItem(props) {
|
|
47
|
+
const theme = useTheme(),
|
|
48
|
+
{
|
|
49
|
+
value,
|
|
50
|
+
id,
|
|
51
|
+
label
|
|
52
|
+
} = props,
|
|
53
|
+
{
|
|
54
|
+
providerValue,
|
|
55
|
+
native,
|
|
56
|
+
bubbleInput,
|
|
57
|
+
rovingFocusGroupAttrs,
|
|
58
|
+
frameAttrs,
|
|
59
|
+
isFormControl,
|
|
60
|
+
checked
|
|
61
|
+
} = useRadioGroupItem({
|
|
62
|
+
radioGroupContext: RadioGroupContext,
|
|
63
|
+
value,
|
|
64
|
+
id
|
|
65
|
+
});
|
|
66
|
+
return /* @__PURE__ */jsx(RadioGroupItemContext.Provider, {
|
|
67
|
+
value: providerValue,
|
|
68
|
+
children: isWeb && native ? bubbleInput : /* @__PURE__ */jsxs(View, {
|
|
69
|
+
style: styles.radioGroupItemContainer,
|
|
70
|
+
children: [/* @__PURE__ */jsx(RovingFocusGroup.Item, {
|
|
71
|
+
...rovingFocusGroupAttrs,
|
|
72
|
+
children: /* @__PURE__ */jsx(Pressable, {
|
|
73
|
+
style: {
|
|
74
|
+
...styles.radioGroupItem,
|
|
75
|
+
borderColor: theme.borderColor.get(),
|
|
76
|
+
...(checked ? {
|
|
77
|
+
borderWidth: 4
|
|
78
|
+
} : {
|
|
79
|
+
backgroundColor: theme.background.get()
|
|
80
|
+
})
|
|
81
|
+
},
|
|
82
|
+
...frameAttrs,
|
|
83
|
+
onFocus: frameAttrs.onFocus,
|
|
84
|
+
children: /* @__PURE__ */jsx(RadioGroupItemIndicator, {})
|
|
85
|
+
})
|
|
86
|
+
}), /* @__PURE__ */jsx(Text, {
|
|
87
|
+
style: {
|
|
88
|
+
color: theme.color.get()
|
|
89
|
+
},
|
|
90
|
+
children: label
|
|
91
|
+
}), isFormControl && bubbleInput]
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function RadioGroupItemIndicator() {
|
|
96
|
+
const theme = useTheme(),
|
|
97
|
+
params = useRadioGroupItemIndicator({
|
|
98
|
+
radioGroupItemContext: RadioGroupItemContext,
|
|
99
|
+
disabled: !1
|
|
100
|
+
});
|
|
101
|
+
return params.checked ? /* @__PURE__ */jsx(View, {
|
|
102
|
+
style: {
|
|
103
|
+
...styles.radioGroupItemIndicator,
|
|
104
|
+
backgroundColor: theme.color.get()
|
|
105
|
+
},
|
|
106
|
+
...params
|
|
107
|
+
}) : null;
|
|
108
|
+
}
|
|
109
|
+
const styles = StyleSheet.create({
|
|
110
|
+
radioGroup: {
|
|
111
|
+
flexDirection: "column",
|
|
112
|
+
gap: 20,
|
|
113
|
+
alignItems: "flex-start"
|
|
114
|
+
},
|
|
115
|
+
radioGroupItem: {
|
|
116
|
+
borderWidth: 2,
|
|
117
|
+
width: 30,
|
|
118
|
+
height: 30,
|
|
119
|
+
justifyContent: "center",
|
|
120
|
+
alignItems: "center"
|
|
121
|
+
},
|
|
122
|
+
radioGroupItemIndicator: {
|
|
123
|
+
width: "35%",
|
|
124
|
+
height: "35%"
|
|
125
|
+
},
|
|
126
|
+
radioGroupItemContainer: {
|
|
127
|
+
justifyContent: "center",
|
|
128
|
+
alignItems: "center",
|
|
129
|
+
flexDirection: "row",
|
|
130
|
+
gap: 12
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
export { RadioGroupHeadlessDemo };
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useRadioGroup, useRadioGroupItem, useRadioGroupItemIndicator } from "@tamagui/radio-headless";
|
|
3
|
+
import { RovingFocusGroup } from "@tamagui/roving-focus";
|
|
4
|
+
import { createContext } from "react";
|
|
5
|
+
import { StyleSheet, View, Pressable, Text } from "react-native";
|
|
6
|
+
import { isWeb, useTheme } from "tamagui";
|
|
7
|
+
function _define_property(obj, key, value) {
|
|
8
|
+
return key in obj ? Object.defineProperty(obj, key, {
|
|
9
|
+
value,
|
|
10
|
+
enumerable: !0,
|
|
11
|
+
configurable: !0,
|
|
12
|
+
writable: !0
|
|
13
|
+
}) : obj[key] = value, obj;
|
|
14
|
+
}
|
|
15
|
+
function _object_spread(target) {
|
|
16
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
17
|
+
var source = arguments[i] != null ? arguments[i] : {}, ownKeys2 = Object.keys(source);
|
|
18
|
+
typeof Object.getOwnPropertySymbols == "function" && (ownKeys2 = ownKeys2.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
19
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
20
|
+
}))), ownKeys2.forEach(function(key) {
|
|
21
|
+
_define_property(target, key, source[key]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return target;
|
|
25
|
+
}
|
|
26
|
+
function ownKeys(object, enumerableOnly) {
|
|
27
|
+
var keys = Object.keys(object);
|
|
28
|
+
if (Object.getOwnPropertySymbols) {
|
|
29
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
30
|
+
enumerableOnly && (symbols = symbols.filter(function(sym) {
|
|
31
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
32
|
+
})), keys.push.apply(keys, symbols);
|
|
33
|
+
}
|
|
34
|
+
return keys;
|
|
35
|
+
}
|
|
36
|
+
function _object_spread_props(target, source) {
|
|
37
|
+
return source = source ?? {}, Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
|
|
38
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
39
|
+
}), target;
|
|
40
|
+
}
|
|
41
|
+
var RadioGroupContext = /* @__PURE__ */ createContext({}), RadioGroupItemContext = /* @__PURE__ */ createContext({
|
|
42
|
+
checked: !1,
|
|
43
|
+
disabled: !1
|
|
44
|
+
});
|
|
45
|
+
function RadioGroupHeadlessDemo() {
|
|
46
|
+
var _useRadioGroup = useRadioGroup({
|
|
47
|
+
orientation: "vertical",
|
|
48
|
+
name: "form",
|
|
49
|
+
defaultValue: "3"
|
|
50
|
+
}), providerValue = _useRadioGroup.providerValue, frameAttrs = _useRadioGroup.frameAttrs, rovingFocusGroupAttrs = _useRadioGroup.rovingFocusGroupAttrs;
|
|
51
|
+
return /* @__PURE__ */ _jsx(RadioGroupContext.Provider, {
|
|
52
|
+
value: providerValue,
|
|
53
|
+
children: /* @__PURE__ */ _jsx(RovingFocusGroup, _object_spread_props(_object_spread({}, rovingFocusGroupAttrs), {
|
|
54
|
+
children: /* @__PURE__ */ _jsxs(View, _object_spread_props(_object_spread({
|
|
55
|
+
style: styles.radioGroup
|
|
56
|
+
}, frameAttrs), {
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ _jsx(RadioGroupItem, {
|
|
59
|
+
value: "2",
|
|
60
|
+
id: "2",
|
|
61
|
+
label: "First Value"
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ _jsx(RadioGroupItem, {
|
|
64
|
+
value: "3",
|
|
65
|
+
id: "3",
|
|
66
|
+
label: "Second Value"
|
|
67
|
+
}),
|
|
68
|
+
/* @__PURE__ */ _jsx(RadioGroupItem, {
|
|
69
|
+
value: "4",
|
|
70
|
+
id: "4",
|
|
71
|
+
label: "Third Value"
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
}))
|
|
75
|
+
}))
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function RadioGroupItem(props) {
|
|
79
|
+
var theme = useTheme(), value = props.value, id = props.id, label = props.label, _useRadioGroupItem = useRadioGroupItem({
|
|
80
|
+
radioGroupContext: RadioGroupContext,
|
|
81
|
+
value,
|
|
82
|
+
id
|
|
83
|
+
}), providerValue = _useRadioGroupItem.providerValue, native = _useRadioGroupItem.native, bubbleInput = _useRadioGroupItem.bubbleInput, rovingFocusGroupAttrs = _useRadioGroupItem.rovingFocusGroupAttrs, frameAttrs = _useRadioGroupItem.frameAttrs, isFormControl = _useRadioGroupItem.isFormControl, checked = _useRadioGroupItem.checked;
|
|
84
|
+
return /* @__PURE__ */ _jsx(RadioGroupItemContext.Provider, {
|
|
85
|
+
value: providerValue,
|
|
86
|
+
children: isWeb && native ? bubbleInput : /* @__PURE__ */ _jsxs(View, {
|
|
87
|
+
style: styles.radioGroupItemContainer,
|
|
88
|
+
children: [
|
|
89
|
+
/* @__PURE__ */ _jsx(RovingFocusGroup.Item, _object_spread_props(_object_spread({}, rovingFocusGroupAttrs), {
|
|
90
|
+
children: /* @__PURE__ */ _jsx(Pressable, _object_spread_props(_object_spread({
|
|
91
|
+
style: _object_spread({}, styles.radioGroupItem, {
|
|
92
|
+
borderColor: theme.borderColor.get()
|
|
93
|
+
}, checked ? {
|
|
94
|
+
borderWidth: 4
|
|
95
|
+
} : {
|
|
96
|
+
backgroundColor: theme.background.get()
|
|
97
|
+
})
|
|
98
|
+
}, frameAttrs), {
|
|
99
|
+
onFocus: frameAttrs.onFocus,
|
|
100
|
+
children: /* @__PURE__ */ _jsx(RadioGroupItemIndicator, {})
|
|
101
|
+
}))
|
|
102
|
+
})),
|
|
103
|
+
/* @__PURE__ */ _jsx(Text, {
|
|
104
|
+
style: {
|
|
105
|
+
color: theme.color.get()
|
|
106
|
+
},
|
|
107
|
+
children: label
|
|
108
|
+
}),
|
|
109
|
+
isFormControl && bubbleInput
|
|
110
|
+
]
|
|
111
|
+
})
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function RadioGroupItemIndicator() {
|
|
115
|
+
var theme = useTheme(), params = useRadioGroupItemIndicator({
|
|
116
|
+
radioGroupItemContext: RadioGroupItemContext,
|
|
117
|
+
disabled: !1
|
|
118
|
+
});
|
|
119
|
+
return params.checked ? /* @__PURE__ */ _jsx(View, _object_spread({
|
|
120
|
+
style: _object_spread_props(_object_spread({}, styles.radioGroupItemIndicator), {
|
|
121
|
+
backgroundColor: theme.color.get()
|
|
122
|
+
})
|
|
123
|
+
}, params)) : null;
|
|
124
|
+
}
|
|
125
|
+
var styles = StyleSheet.create({
|
|
126
|
+
radioGroup: {
|
|
127
|
+
flexDirection: "column",
|
|
128
|
+
gap: 20,
|
|
129
|
+
alignItems: "flex-start"
|
|
130
|
+
},
|
|
131
|
+
radioGroupItem: {
|
|
132
|
+
borderWidth: 2,
|
|
133
|
+
width: 30,
|
|
134
|
+
height: 30,
|
|
135
|
+
justifyContent: "center",
|
|
136
|
+
alignItems: "center"
|
|
137
|
+
},
|
|
138
|
+
radioGroupItemIndicator: {
|
|
139
|
+
width: "35%",
|
|
140
|
+
height: "35%"
|
|
141
|
+
},
|
|
142
|
+
radioGroupItemContainer: {
|
|
143
|
+
justifyContent: "center",
|
|
144
|
+
alignItems: "center",
|
|
145
|
+
flexDirection: "row",
|
|
146
|
+
gap: 12
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
export {
|
|
150
|
+
RadioGroupHeadlessDemo
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=RadioGroupHeadlessDemo.js.map
|