@tamagui/demos 1.96.0 → 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.
Files changed (101) hide show
  1. package/dist/cjs/NewInputsDemo.js +46 -0
  2. package/dist/cjs/NewInputsDemo.js.map +6 -0
  3. package/dist/cjs/NewInputsDemo.native.js +67 -0
  4. package/dist/cjs/NewInputsDemo.native.js.map +6 -0
  5. package/dist/cjs/RadioGroupHeadlessDemo.js +109 -0
  6. package/dist/cjs/RadioGroupHeadlessDemo.js.map +6 -0
  7. package/dist/cjs/RadioGroupHeadlessDemo.native.js +168 -0
  8. package/dist/cjs/RadioGroupHeadlessDemo.native.js.map +6 -0
  9. package/dist/cjs/RadioGroupUnstyledDemo.js +107 -0
  10. package/dist/cjs/RadioGroupUnstyledDemo.js.map +6 -0
  11. package/dist/cjs/RadioGroupUnstyledDemo.native.js +139 -0
  12. package/dist/cjs/RadioGroupUnstyledDemo.native.js.map +6 -0
  13. package/dist/cjs/SelectDemo.js +0 -22
  14. package/dist/cjs/SelectDemo.js.map +1 -1
  15. package/dist/cjs/SelectDemo.native.js +0 -66
  16. package/dist/cjs/SelectDemo.native.js.map +1 -1
  17. package/dist/cjs/TokensDemo.js +4 -2
  18. package/dist/cjs/TokensDemo.js.map +1 -1
  19. package/dist/cjs/TokensDemo.native.js +5 -5
  20. package/dist/cjs/TokensDemo.native.js.map +2 -2
  21. package/dist/cjs/index.js +3 -0
  22. package/dist/cjs/index.js.map +1 -1
  23. package/dist/cjs/index.native.js +6 -0
  24. package/dist/cjs/index.native.js.map +1 -1
  25. package/dist/esm/NewInputsDemo.js +32 -0
  26. package/dist/esm/NewInputsDemo.js.map +6 -0
  27. package/dist/esm/NewInputsDemo.mjs +37 -0
  28. package/dist/esm/NewInputsDemo.native.js +48 -0
  29. package/dist/esm/NewInputsDemo.native.js.map +6 -0
  30. package/dist/esm/RadioGroupHeadlessDemo.js +102 -0
  31. package/dist/esm/RadioGroupHeadlessDemo.js.map +6 -0
  32. package/dist/esm/RadioGroupHeadlessDemo.mjs +133 -0
  33. package/dist/esm/RadioGroupHeadlessDemo.native.js +152 -0
  34. package/dist/esm/RadioGroupHeadlessDemo.native.js.map +6 -0
  35. package/dist/esm/RadioGroupUnstyledDemo.js +93 -0
  36. package/dist/esm/RadioGroupUnstyledDemo.js.map +6 -0
  37. package/dist/esm/RadioGroupUnstyledDemo.mjs +118 -0
  38. package/dist/esm/RadioGroupUnstyledDemo.native.js +121 -0
  39. package/dist/esm/RadioGroupUnstyledDemo.native.js.map +6 -0
  40. package/dist/esm/SelectDemo.js +0 -22
  41. package/dist/esm/SelectDemo.js.map +1 -1
  42. package/dist/esm/SelectDemo.mjs +0 -44
  43. package/dist/esm/SelectDemo.native.js +0 -66
  44. package/dist/esm/SelectDemo.native.js.map +1 -1
  45. package/dist/esm/TokensDemo.js +4 -2
  46. package/dist/esm/TokensDemo.js.map +1 -1
  47. package/dist/esm/TokensDemo.mjs +4 -4
  48. package/dist/esm/TokensDemo.native.js +5 -5
  49. package/dist/esm/TokensDemo.native.js.map +2 -2
  50. package/dist/esm/index.js +3 -0
  51. package/dist/esm/index.js.map +1 -1
  52. package/dist/esm/index.mjs +3 -0
  53. package/dist/esm/index.native.js +3 -0
  54. package/dist/esm/index.native.js.map +1 -1
  55. package/dist/jsx/NewInputsDemo.js +32 -0
  56. package/dist/jsx/NewInputsDemo.js.map +6 -0
  57. package/dist/jsx/NewInputsDemo.mjs +37 -0
  58. package/dist/jsx/NewInputsDemo.native.js +48 -0
  59. package/dist/jsx/NewInputsDemo.native.js.map +6 -0
  60. package/dist/jsx/RadioGroupHeadlessDemo.js +102 -0
  61. package/dist/jsx/RadioGroupHeadlessDemo.js.map +6 -0
  62. package/dist/jsx/RadioGroupHeadlessDemo.mjs +133 -0
  63. package/dist/jsx/RadioGroupHeadlessDemo.native.js +152 -0
  64. package/dist/jsx/RadioGroupHeadlessDemo.native.js.map +6 -0
  65. package/dist/jsx/RadioGroupUnstyledDemo.js +93 -0
  66. package/dist/jsx/RadioGroupUnstyledDemo.js.map +6 -0
  67. package/dist/jsx/RadioGroupUnstyledDemo.mjs +118 -0
  68. package/dist/jsx/RadioGroupUnstyledDemo.native.js +121 -0
  69. package/dist/jsx/RadioGroupUnstyledDemo.native.js.map +6 -0
  70. package/dist/jsx/SelectDemo.js +0 -22
  71. package/dist/jsx/SelectDemo.js.map +1 -1
  72. package/dist/jsx/SelectDemo.mjs +0 -44
  73. package/dist/jsx/SelectDemo.native.js +0 -66
  74. package/dist/jsx/SelectDemo.native.js.map +1 -1
  75. package/dist/jsx/TokensDemo.js +4 -2
  76. package/dist/jsx/TokensDemo.js.map +1 -1
  77. package/dist/jsx/TokensDemo.mjs +4 -4
  78. package/dist/jsx/TokensDemo.native.js +5 -5
  79. package/dist/jsx/TokensDemo.native.js.map +2 -2
  80. package/dist/jsx/index.js +3 -0
  81. package/dist/jsx/index.js.map +1 -1
  82. package/dist/jsx/index.mjs +3 -0
  83. package/dist/jsx/index.native.js +3 -0
  84. package/dist/jsx/index.native.js.map +1 -1
  85. package/package.json +18 -19
  86. package/src/NewInputsDemo.tsx +30 -0
  87. package/src/RadioGroupHeadlessDemo.tsx +133 -0
  88. package/src/RadioGroupUnstyledDemo.tsx +126 -0
  89. package/src/SelectDemo.tsx +0 -22
  90. package/src/TokensDemo.tsx +7 -5
  91. package/src/index.tsx +3 -0
  92. package/types/CheckboxUnstyledDemo.d.ts +4 -4
  93. package/types/NewInputsDemo.d.ts +2 -0
  94. package/types/NewInputsDemo.d.ts.map +1 -0
  95. package/types/RadioGroupHeadlessDemo.d.ts +2 -0
  96. package/types/RadioGroupHeadlessDemo.d.ts.map +1 -0
  97. package/types/RadioGroupUnstyledDemo.d.ts +2 -0
  98. package/types/RadioGroupUnstyledDemo.d.ts.map +1 -0
  99. package/types/SwitchUnstyledDemo.d.ts +4 -4
  100. package/types/index.d.ts +3 -0
  101. package/types/index.d.ts.map +1 -1
@@ -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
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Users/n8/tamagui/packages/demos/src/RadioGroupHeadlessDemo.tsx"],
4
+ "mappings": "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",
5
+ "names": ["useRadioGroup", "useRadioGroupItem", "useRadioGroupItemIndicator", "RovingFocusGroup", "createContext", "StyleSheet", "View", "Pressable", "Text", "isWeb", "useTheme", "RadioGroupContext", "RadioGroupItemContext", "checked", "disabled", "RadioGroupHeadlessDemo", "orientation", "name", "defaultValue", "providerValue", "frameAttrs", "rovingFocusGroupAttrs", "Provider", "value", "style", "styles", "radioGroup", "RadioGroupItem", "id", "label", "props", "theme", "radioGroupContext", "native", "bubbleInput", "isFormControl", "radioGroupItemContainer", "Item", "radioGroupItem", "borderColor", "get", "borderWidth", "backgroundColor", "background", "onFocus", "RadioGroupItemIndicator", "color", "params", "radioGroupItemContext", "radioGroupItemIndicator", "create", "flexDirection", "gap", "alignItems", "width", "height", "justifyContent"]
6
+ }
@@ -0,0 +1,93 @@
1
+ import { Label, ThemeableStack, XStack, YStack, styled } from "tamagui";
2
+ import { createRadioGroup } from "@tamagui/radio-group";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ const RADIO_GROUP_ITEM_NAME = "RadioGroupItem", RadioGroupItemFrame = styled(ThemeableStack, {
5
+ name: RADIO_GROUP_ITEM_NAME,
6
+ tag: "button",
7
+ borderRadius: 1e3,
8
+ backgroundColor: "$background",
9
+ alignItems: "center",
10
+ justifyContent: "center",
11
+ borderWidth: 1,
12
+ borderColor: "$borderColor",
13
+ padding: 0,
14
+ hoverStyle: {
15
+ borderColor: "$borderColorHover",
16
+ backgroundColor: "$backgroundHover"
17
+ },
18
+ focusStyle: {
19
+ borderColor: "$borderColorHover",
20
+ backgroundColor: "$backgroundHover"
21
+ },
22
+ focusVisibleStyle: {
23
+ outlineStyle: "solid",
24
+ outlineWidth: 2,
25
+ outlineColor: "$outlineColor"
26
+ },
27
+ pressStyle: {
28
+ borderColor: "$borderColorFocus",
29
+ backgroundColor: "$backgroundFocus"
30
+ },
31
+ variants: {
32
+ disabled: {
33
+ true: {
34
+ pointerEvents: "none",
35
+ userSelect: "none",
36
+ cursor: "not-allowed",
37
+ hoverStyle: {
38
+ borderColor: "$borderColor",
39
+ backgroundColor: "$background"
40
+ },
41
+ pressStyle: {
42
+ borderColor: "$borderColor",
43
+ backgroundColor: "$background"
44
+ },
45
+ focusVisibleStyle: {
46
+ outlineWidth: 0
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }), RADIO_GROUP_INDICATOR_NAME = "RadioGroupIndicator", RadioGroupIndicatorFrame = styled(ThemeableStack, {
52
+ name: RADIO_GROUP_INDICATOR_NAME,
53
+ width: "53%",
54
+ height: "53%",
55
+ borderRadius: 1e3,
56
+ backgroundColor: "$color",
57
+ pressTheme: !0
58
+ }), RADIO_GROUP_NAME = "RadioGroup", RadioGroupFrame = styled(ThemeableStack, {
59
+ name: RADIO_GROUP_NAME,
60
+ variants: {
61
+ orientation: {
62
+ horizontal: {
63
+ flexDirection: "row",
64
+ spaceDirection: "horizontal"
65
+ },
66
+ vertical: {
67
+ flexDirection: "column",
68
+ spaceDirection: "vertical"
69
+ }
70
+ }
71
+ }
72
+ }), RadioGroup = createRadioGroup({
73
+ Frame: RadioGroupFrame,
74
+ Indicator: RadioGroupIndicatorFrame,
75
+ Item: RadioGroupItemFrame
76
+ });
77
+ function RadioGroupUnstyledDemo() {
78
+ return /* @__PURE__ */ jsx(RadioGroup, { "aria-labelledby": "Select one item", defaultValue: "3", name: "form", children: /* @__PURE__ */ jsxs(YStack, { width: 200, alignItems: "center", space: "$2", children: [
79
+ /* @__PURE__ */ jsx(RadioGroupItemWithLabel, { value: "2", label: "Option One" }),
80
+ /* @__PURE__ */ jsx(RadioGroupItemWithLabel, { value: "3", label: "Option Two" })
81
+ ] }) });
82
+ }
83
+ function RadioGroupItemWithLabel(props) {
84
+ const id = `radiogroup-${props.value}`;
85
+ return /* @__PURE__ */ jsxs(XStack, { width: 300, alignItems: "center", gap: "$4", children: [
86
+ /* @__PURE__ */ jsx(RadioGroup.Item, { value: props.value, id, children: /* @__PURE__ */ jsx(RadioGroup.Indicator, {}) }),
87
+ /* @__PURE__ */ jsx(Label, { htmlFor: id, children: props.label })
88
+ ] });
89
+ }
90
+ export {
91
+ RadioGroupUnstyledDemo
92
+ };
93
+ //# sourceMappingURL=RadioGroupUnstyledDemo.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/RadioGroupUnstyledDemo.tsx"],
4
+ "mappings": "AACA,SAAS,OAAO,gBAAgB,QAAQ,QAAQ,cAAc;AAE9D,SAAS,wBAAwB;AAoG3B,SACE,KADF;AAlGN,MAAM,wBAAwB,kBAExB,sBAAsB,OAAO,gBAAgB;AAAA,EACjD,MAAM;AAAA,EACN,KAAK;AAAA,EAEL,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,SAAS;AAAA,EAET,YAAY;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AAAA,EAEA,YAAY;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AAAA,EAEA,mBAAmB;AAAA,IACjB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EAChB;AAAA,EAEA,YAAY;AAAA,IACV,aAAa;AAAA,IACb,iBAAiB;AAAA,EACnB;AAAA,EAEA,UAAU;AAAA,IACR,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,eAAe;AAAA,QACf,YAAY;AAAA,QACZ,QAAQ;AAAA,QAER,YAAY;AAAA,UACV,aAAa;AAAA,UACb,iBAAiB;AAAA,QACnB;AAAA,QAEA,YAAY;AAAA,UACV,aAAa;AAAA,UACb,iBAAiB;AAAA,QACnB;AAAA,QAEA,mBAAmB;AAAA,UACjB,cAAc;AAAA,QAChB;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF,CAAU,GAEJ,6BAA6B,uBAE7B,2BAA2B,OAAO,gBAAgB;AAAA,EACtD,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,YAAY;AACd,CAAC,GAEK,mBAAmB,cAEnB,kBAAkB,OAAO,gBAAgB;AAAA,EAC7C,MAAM;AAAA,EACN,UAAU;AAAA,IACR,aAAa;AAAA,MACX,YAAY;AAAA,QACV,eAAe;AAAA,QACf,gBAAgB;AAAA,MAClB;AAAA,MACA,UAAU;AAAA,QACR,eAAe;AAAA,QACf,gBAAgB;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACF,CAAC,GAEK,aAAa,iBAAiB;AAAA,EAClC,OAAO;AAAA,EACP,WAAW;AAAA,EACX,MAAM;AACR,CAAC;AAEM,SAAS,yBAAyB;AACvC,SACE,oBAAC,cAAW,mBAAgB,mBAAkB,cAAa,KAAI,MAAK,QAClE,+BAAC,UAAO,OAAO,KAAK,YAAW,UAAS,OAAM,MAC5C;AAAA,wBAAC,2BAAwB,OAAM,KAAI,OAAM,cAAa;AAAA,IACtD,oBAAC,2BAAwB,OAAM,KAAI,OAAM,cAAa;AAAA,KACxD,GACF;AAEJ;AAEA,SAAS,wBAAwB,OAG9B;AACD,QAAM,KAAK,cAAc,MAAM,KAAK;AACpC,SACE,qBAAC,UAAO,OAAO,KAAK,YAAW,UAAS,KAAI,MAC1C;AAAA,wBAAC,WAAW,MAAX,EAAgB,OAAO,MAAM,OAAO,IACnC,8BAAC,WAAW,WAAX,EAAqB,GACxB;AAAA,IAEA,oBAAC,SAAM,SAAS,IAAK,gBAAM,OAAM;AAAA,KACnC;AAEJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,118 @@
1
+ import { Label, ThemeableStack, XStack, YStack, styled } from "tamagui";
2
+ import { createRadioGroup } from "@tamagui/radio-group";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ const RADIO_GROUP_ITEM_NAME = "RadioGroupItem",
5
+ RadioGroupItemFrame = styled(ThemeableStack, {
6
+ name: RADIO_GROUP_ITEM_NAME,
7
+ tag: "button",
8
+ borderRadius: 1e3,
9
+ backgroundColor: "$background",
10
+ alignItems: "center",
11
+ justifyContent: "center",
12
+ borderWidth: 1,
13
+ borderColor: "$borderColor",
14
+ padding: 0,
15
+ hoverStyle: {
16
+ borderColor: "$borderColorHover",
17
+ backgroundColor: "$backgroundHover"
18
+ },
19
+ focusStyle: {
20
+ borderColor: "$borderColorHover",
21
+ backgroundColor: "$backgroundHover"
22
+ },
23
+ focusVisibleStyle: {
24
+ outlineStyle: "solid",
25
+ outlineWidth: 2,
26
+ outlineColor: "$outlineColor"
27
+ },
28
+ pressStyle: {
29
+ borderColor: "$borderColorFocus",
30
+ backgroundColor: "$backgroundFocus"
31
+ },
32
+ variants: {
33
+ disabled: {
34
+ true: {
35
+ pointerEvents: "none",
36
+ userSelect: "none",
37
+ cursor: "not-allowed",
38
+ hoverStyle: {
39
+ borderColor: "$borderColor",
40
+ backgroundColor: "$background"
41
+ },
42
+ pressStyle: {
43
+ borderColor: "$borderColor",
44
+ backgroundColor: "$background"
45
+ },
46
+ focusVisibleStyle: {
47
+ outlineWidth: 0
48
+ }
49
+ }
50
+ }
51
+ }
52
+ }),
53
+ RADIO_GROUP_INDICATOR_NAME = "RadioGroupIndicator",
54
+ RadioGroupIndicatorFrame = styled(ThemeableStack, {
55
+ name: RADIO_GROUP_INDICATOR_NAME,
56
+ width: "53%",
57
+ height: "53%",
58
+ borderRadius: 1e3,
59
+ backgroundColor: "$color",
60
+ pressTheme: !0
61
+ }),
62
+ RADIO_GROUP_NAME = "RadioGroup",
63
+ RadioGroupFrame = styled(ThemeableStack, {
64
+ name: RADIO_GROUP_NAME,
65
+ variants: {
66
+ orientation: {
67
+ horizontal: {
68
+ flexDirection: "row",
69
+ spaceDirection: "horizontal"
70
+ },
71
+ vertical: {
72
+ flexDirection: "column",
73
+ spaceDirection: "vertical"
74
+ }
75
+ }
76
+ }
77
+ }),
78
+ RadioGroup = createRadioGroup({
79
+ Frame: RadioGroupFrame,
80
+ Indicator: RadioGroupIndicatorFrame,
81
+ Item: RadioGroupItemFrame
82
+ });
83
+ function RadioGroupUnstyledDemo() {
84
+ return /* @__PURE__ */jsx(RadioGroup, {
85
+ "aria-labelledby": "Select one item",
86
+ defaultValue: "3",
87
+ name: "form",
88
+ children: /* @__PURE__ */jsxs(YStack, {
89
+ width: 200,
90
+ alignItems: "center",
91
+ space: "$2",
92
+ children: [/* @__PURE__ */jsx(RadioGroupItemWithLabel, {
93
+ value: "2",
94
+ label: "Option One"
95
+ }), /* @__PURE__ */jsx(RadioGroupItemWithLabel, {
96
+ value: "3",
97
+ label: "Option Two"
98
+ })]
99
+ })
100
+ });
101
+ }
102
+ function RadioGroupItemWithLabel(props) {
103
+ const id = `radiogroup-${props.value}`;
104
+ return /* @__PURE__ */jsxs(XStack, {
105
+ width: 300,
106
+ alignItems: "center",
107
+ gap: "$4",
108
+ children: [/* @__PURE__ */jsx(RadioGroup.Item, {
109
+ value: props.value,
110
+ id,
111
+ children: /* @__PURE__ */jsx(RadioGroup.Indicator, {})
112
+ }), /* @__PURE__ */jsx(Label, {
113
+ htmlFor: id,
114
+ children: props.label
115
+ })]
116
+ });
117
+ }
118
+ export { RadioGroupUnstyledDemo };