@webstudio-is/sdk-components-react-radix 0.87.1 → 0.89.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 (192) hide show
  1. package/lib/__generated__/accordion.props.js +605 -114
  2. package/lib/__generated__/button.props.js +158 -47
  3. package/lib/__generated__/checkbox.props.js +1083 -0
  4. package/lib/__generated__/collapsible.props.js +234 -44
  5. package/lib/__generated__/dialog.props.js +611 -121
  6. package/lib/__generated__/input.props.js +264 -47
  7. package/lib/__generated__/label.props.js +123 -23
  8. package/lib/__generated__/navigation-menu.props.js +2565 -0
  9. package/lib/__generated__/popover.props.js +129 -28
  10. package/lib/__generated__/radio-group.props.js +1627 -0
  11. package/lib/__generated__/select.props.js +3678 -0
  12. package/lib/__generated__/sheet.props.js +591 -121
  13. package/lib/__generated__/switch.props.js +1083 -0
  14. package/lib/__generated__/tabs.props.js +906 -68
  15. package/lib/__generated__/textarea.props.js +177 -31
  16. package/lib/__generated__/tooltip.props.js +131 -29
  17. package/lib/accordion.js +11 -4
  18. package/lib/accordion.ws.js +88 -72
  19. package/lib/checkbox.js +13 -0
  20. package/lib/checkbox.ws.js +153 -0
  21. package/lib/cjs/__generated__/accordion.props.js +605 -114
  22. package/lib/cjs/__generated__/button.props.js +158 -47
  23. package/lib/cjs/__generated__/checkbox.props.js +1103 -0
  24. package/lib/cjs/__generated__/collapsible.props.js +234 -44
  25. package/lib/cjs/__generated__/dialog.props.js +611 -121
  26. package/lib/cjs/__generated__/input.props.js +264 -47
  27. package/lib/cjs/__generated__/label.props.js +123 -23
  28. package/lib/cjs/__generated__/navigation-menu.props.js +2585 -0
  29. package/lib/cjs/__generated__/popover.props.js +129 -28
  30. package/lib/cjs/__generated__/radio-group.props.js +1647 -0
  31. package/lib/cjs/__generated__/select.props.js +3698 -0
  32. package/lib/cjs/__generated__/sheet.props.js +591 -121
  33. package/lib/cjs/__generated__/switch.props.js +1103 -0
  34. package/lib/cjs/__generated__/tabs.props.js +906 -68
  35. package/lib/cjs/__generated__/textarea.props.js +177 -31
  36. package/lib/cjs/__generated__/tooltip.props.js +131 -29
  37. package/lib/cjs/accordion.js +11 -4
  38. package/lib/cjs/accordion.ws.js +86 -71
  39. package/lib/cjs/{textarea.js → checkbox.js} +9 -6
  40. package/lib/cjs/checkbox.ws.js +174 -0
  41. package/lib/cjs/collapsible.ws.js +5 -1
  42. package/lib/cjs/components.js +27 -14
  43. package/lib/cjs/dialog.ws.js +18 -17
  44. package/lib/cjs/hooks.js +5 -1
  45. package/lib/cjs/label.ws.js +2 -1
  46. package/lib/cjs/metas.js +29 -14
  47. package/lib/cjs/navigation-menu.js +107 -0
  48. package/lib/cjs/navigation-menu.ws.js +514 -0
  49. package/lib/cjs/popover.ws.js +13 -9
  50. package/lib/cjs/props-descriptions.js +56 -0
  51. package/lib/cjs/props.js +27 -14
  52. package/lib/cjs/{button.js → radio-group.js} +10 -8
  53. package/lib/cjs/radio-group.ws.js +191 -0
  54. package/lib/cjs/select.js +83 -0
  55. package/lib/cjs/select.ws.js +350 -0
  56. package/lib/cjs/sheet.ws.js +88 -176
  57. package/lib/cjs/{input.js → switch.js} +8 -9
  58. package/lib/cjs/switch.ws.js +173 -0
  59. package/lib/cjs/tabs.js +2 -3
  60. package/lib/cjs/tabs.ws.js +14 -18
  61. package/lib/cjs/theme/styles.js +100 -0
  62. package/lib/cjs/theme/tailwind-classes.js +125 -16
  63. package/lib/cjs/theme/tailwind-colors.js +1 -0
  64. package/lib/cjs/tooltip.ws.js +12 -8
  65. package/lib/collapsible.ws.js +5 -1
  66. package/lib/components.js +44 -22
  67. package/lib/dialog.ws.js +18 -17
  68. package/lib/hooks.js +5 -1
  69. package/lib/label.ws.js +2 -1
  70. package/lib/metas.js +58 -24
  71. package/lib/navigation-menu.js +85 -0
  72. package/lib/navigation-menu.ws.js +501 -0
  73. package/lib/popover.ws.js +13 -9
  74. package/lib/props-descriptions.js +36 -0
  75. package/lib/props.js +56 -24
  76. package/lib/radio-group.js +11 -0
  77. package/lib/radio-group.ws.js +173 -0
  78. package/lib/select.js +75 -0
  79. package/lib/select.ws.js +338 -0
  80. package/lib/sheet.ws.js +89 -194
  81. package/lib/switch.js +7 -0
  82. package/lib/switch.ws.js +145 -0
  83. package/lib/tabs.js +3 -5
  84. package/lib/tabs.ws.js +15 -19
  85. package/lib/theme/styles.js +70 -0
  86. package/lib/theme/tailwind-classes.js +125 -16
  87. package/lib/theme/tailwind-colors.js +1 -0
  88. package/lib/tooltip.ws.js +12 -8
  89. package/lib/types/__generated__/checkbox.props.d.ts +3 -0
  90. package/lib/types/__generated__/navigation-menu.props.d.ts +8 -0
  91. package/lib/types/__generated__/radio-group.props.d.ts +4 -0
  92. package/lib/types/__generated__/select.props.d.ts +9 -0
  93. package/lib/types/__generated__/switch.props.d.ts +3 -0
  94. package/lib/types/checkbox.d.ts +6 -0
  95. package/lib/types/checkbox.stories.d.ts +11 -0
  96. package/lib/types/checkbox.ws.d.ts +5 -0
  97. package/lib/types/components.d.ts +5 -4
  98. package/lib/types/metas.d.ts +6 -4
  99. package/lib/types/navigation-menu.d.ts +15 -0
  100. package/lib/types/navigation-menu.ws.d.ts +15 -0
  101. package/lib/types/props-descriptions.d.ts +29 -0
  102. package/lib/types/props.d.ts +5 -4
  103. package/lib/types/radio-group.d.ts +5 -0
  104. package/lib/types/radio-group.stories.d.ts +9 -0
  105. package/lib/types/radio-group.ws.d.ts +7 -0
  106. package/lib/types/select.d.ts +14 -0
  107. package/lib/types/select.ws.d.ts +17 -0
  108. package/lib/types/sheet.ws.d.ts +2 -15
  109. package/lib/types/switch.d.ts +4 -0
  110. package/lib/types/switch.stories.d.ts +9 -0
  111. package/lib/types/switch.ws.d.ts +5 -0
  112. package/lib/types/tabs.d.ts +3 -12
  113. package/lib/types/theme/radix-common-types.d.ts +3 -2
  114. package/lib/types/theme/styles.d.ts +215 -0
  115. package/lib/types/theme/tailwind-classes.d.ts +16 -6
  116. package/lib/types/theme/tailwind-colors.d.ts +1 -0
  117. package/lib/types/theme/tailwind-theme.d.ts +1 -1
  118. package/package.json +12 -7
  119. package/src/__generated__/accordion.props.ts +675 -108
  120. package/src/__generated__/button.props.ts +177 -45
  121. package/src/__generated__/checkbox.props.ts +1217 -0
  122. package/src/__generated__/collapsible.props.ts +261 -42
  123. package/src/__generated__/dialog.props.ts +682 -115
  124. package/src/__generated__/input.props.ts +292 -44
  125. package/src/__generated__/label.props.ts +137 -22
  126. package/src/__generated__/navigation-menu.props.ts +2882 -0
  127. package/src/__generated__/popover.props.ts +142 -24
  128. package/src/__generated__/radio-group.props.ts +1828 -0
  129. package/src/__generated__/select.props.ts +4130 -0
  130. package/src/__generated__/sheet.props.ts +657 -110
  131. package/src/__generated__/switch.props.ts +1217 -0
  132. package/src/__generated__/tabs.props.ts +1019 -67
  133. package/src/__generated__/textarea.props.ts +195 -30
  134. package/src/__generated__/tooltip.props.ts +145 -25
  135. package/src/accordion.tsx +14 -7
  136. package/src/accordion.ws.ts +87 -70
  137. package/src/{textarea.stories.ts → checkbox.stories.ts} +6 -11
  138. package/src/checkbox.tsx +22 -0
  139. package/src/checkbox.ws.ts +154 -0
  140. package/src/collapsible.ws.ts +6 -1
  141. package/src/components.ts +25 -12
  142. package/src/dialog.ws.tsx +17 -16
  143. package/src/hooks.ts +4 -0
  144. package/src/label.ws.ts +3 -1
  145. package/src/metas.ts +36 -12
  146. package/src/navigation-menu.stories.tsx +21 -0
  147. package/src/navigation-menu.tsx +130 -0
  148. package/src/navigation-menu.ws.ts +524 -0
  149. package/src/popover.ws.tsx +13 -9
  150. package/src/props-descriptions.ts +43 -0
  151. package/src/props.ts +35 -12
  152. package/src/{input.stories.ts → radio-group.stories.ts} +6 -15
  153. package/src/radio-group.tsx +17 -0
  154. package/src/radio-group.ws.ts +178 -0
  155. package/src/select.stories.tsx +21 -0
  156. package/src/select.tsx +112 -0
  157. package/src/select.ws.ts +349 -0
  158. package/src/sheet.ws.tsx +91 -209
  159. package/src/{button.stories.ts → switch.stories.ts} +6 -19
  160. package/src/switch.tsx +10 -0
  161. package/src/switch.ws.ts +146 -0
  162. package/src/tabs.tsx +4 -17
  163. package/src/tabs.ws.ts +19 -19
  164. package/src/theme/radix-common-types.ts +3 -2
  165. package/src/theme/styles.ts +80 -0
  166. package/src/theme/tailwind-classes.ts +150 -14
  167. package/src/theme/tailwind-colors.ts +1 -0
  168. package/src/tooltip.ws.tsx +13 -8
  169. package/lib/button.js +0 -8
  170. package/lib/button.ws.js +0 -133
  171. package/lib/cjs/button.ws.js +0 -160
  172. package/lib/cjs/input.ws.js +0 -103
  173. package/lib/cjs/textarea.ws.js +0 -98
  174. package/lib/input.js +0 -8
  175. package/lib/input.ws.js +0 -75
  176. package/lib/textarea.js +0 -8
  177. package/lib/textarea.ws.js +0 -70
  178. package/lib/types/button.d.ts +0 -7
  179. package/lib/types/button.stories.d.ts +0 -20
  180. package/lib/types/button.ws.d.ts +0 -7
  181. package/lib/types/input.d.ts +0 -2
  182. package/lib/types/input.stories.d.ts +0 -20
  183. package/lib/types/input.ws.d.ts +0 -3
  184. package/lib/types/textarea.d.ts +0 -2
  185. package/lib/types/textarea.stories.d.ts +0 -14
  186. package/lib/types/textarea.ws.d.ts +0 -3
  187. package/src/button.tsx +0 -25
  188. package/src/button.ws.ts +0 -155
  189. package/src/input.tsx +0 -12
  190. package/src/input.ws.ts +0 -78
  191. package/src/textarea.tsx +0 -12
  192. package/src/textarea.ws.ts +0 -74
package/lib/props.js CHANGED
@@ -22,25 +22,13 @@ import {
22
22
  propsMetaTooltipTrigger,
23
23
  propsMetaTooltipContent
24
24
  } from "./tooltip.ws";
25
- import {
26
- propsMetaSheet,
27
- propsMetaSheetTrigger,
28
- propsMetaSheetOverlay,
29
- propsMetaSheetContent,
30
- propsMetaSheetClose,
31
- propsMetaSheetTitle,
32
- propsMetaSheetDescription
33
- } from "./sheet.ws";
34
25
  import {
35
26
  propsMetaTabs,
36
27
  propsMetaTabsList,
37
28
  propsMetaTabsTrigger,
38
29
  propsMetaTabsContent
39
30
  } from "./tabs.ws";
40
- import { propsMeta } from "./button.ws";
41
- import { propsMeta as propsMeta2 } from "./input.ws";
42
- import { propsMeta as propsMeta3 } from "./textarea.ws";
43
- import { propsMeta as propsMeta4 } from "./label.ws";
31
+ import { propsMeta } from "./label.ws";
44
32
  import {
45
33
  propsMetaAccordion,
46
34
  propsMetaAccordionItem,
@@ -48,13 +36,46 @@ import {
48
36
  propsMetaAccordionTrigger,
49
37
  propsMetaAccordionContent
50
38
  } from "./accordion.ws";
39
+ import {
40
+ propsMetaNavigationMenu,
41
+ propsMetaNavigationMenuList,
42
+ propsMetaNavigationMenuItem,
43
+ propsMetaNavigationMenuTrigger,
44
+ propsMetaNavigationMenuContent,
45
+ propsMetaNavigationMenuLink,
46
+ propsMetaNavigationMenuViewport
47
+ } from "./navigation-menu.ws";
48
+ import {
49
+ propsMetaSelect,
50
+ propsMetaSelectTrigger,
51
+ propsMetaSelectValue,
52
+ propsMetaSelectViewport,
53
+ propsMetaSelectContent,
54
+ propsMetaSelectItem,
55
+ propsMetaSelectItemIndicator,
56
+ propsMetaSelectItemText
57
+ } from "./select.ws";
58
+ import {
59
+ propsMetaSwitch,
60
+ propsMetaSwitchThumb
61
+ } from "./switch.ws";
62
+ import {
63
+ propsMetaCheckbox,
64
+ propsMetaCheckboxIndicator
65
+ } from "./checkbox.ws";
66
+ import {
67
+ propsMetaRadioGroup,
68
+ propsMetaRadioGroupItem,
69
+ propsMetaRadioGroupIndicator
70
+ } from "./radio-group.ws";
51
71
  export {
52
72
  propsMetaAccordion as Accordion,
53
73
  propsMetaAccordionContent as AccordionContent,
54
74
  propsMetaAccordionHeader as AccordionHeader,
55
75
  propsMetaAccordionItem as AccordionItem,
56
76
  propsMetaAccordionTrigger as AccordionTrigger,
57
- propsMeta as Button,
77
+ propsMetaCheckbox as Checkbox,
78
+ propsMetaCheckboxIndicator as CheckboxIndicator,
58
79
  propsMetaCollapsible as Collapsible,
59
80
  propsMetaCollapsibleContent as CollapsibleContent,
60
81
  propsMetaCollapsibleTrigger as CollapsibleTrigger,
@@ -65,23 +86,34 @@ export {
65
86
  propsMetaDialogOverlay as DialogOverlay,
66
87
  propsMetaDialogTitle as DialogTitle,
67
88
  propsMetaDialogTrigger as DialogTrigger,
68
- propsMeta2 as Input,
69
- propsMeta4 as Label,
89
+ propsMeta as Label,
90
+ propsMetaNavigationMenu as NavigationMenu,
91
+ propsMetaNavigationMenuContent as NavigationMenuContent,
92
+ propsMetaNavigationMenuItem as NavigationMenuItem,
93
+ propsMetaNavigationMenuLink as NavigationMenuLink,
94
+ propsMetaNavigationMenuList as NavigationMenuList,
95
+ propsMetaNavigationMenuTrigger as NavigationMenuTrigger,
96
+ propsMetaNavigationMenuViewport as NavigationMenuViewport,
70
97
  propsMetaPopover as Popover,
71
98
  propsMetaPopoverContent as PopoverContent,
72
99
  propsMetaPopoverTrigger as PopoverTrigger,
73
- propsMetaSheet as Sheet,
74
- propsMetaSheetClose as SheetClose,
75
- propsMetaSheetContent as SheetContent,
76
- propsMetaSheetDescription as SheetDescription,
77
- propsMetaSheetOverlay as SheetOverlay,
78
- propsMetaSheetTitle as SheetTitle,
79
- propsMetaSheetTrigger as SheetTrigger,
100
+ propsMetaRadioGroup as RadioGroup,
101
+ propsMetaRadioGroupIndicator as RadioGroupIndicator,
102
+ propsMetaRadioGroupItem as RadioGroupItem,
103
+ propsMetaSelect as Select,
104
+ propsMetaSelectContent as SelectContent,
105
+ propsMetaSelectItem as SelectItem,
106
+ propsMetaSelectItemIndicator as SelectItemIndicator,
107
+ propsMetaSelectItemText as SelectItemText,
108
+ propsMetaSelectTrigger as SelectTrigger,
109
+ propsMetaSelectValue as SelectValue,
110
+ propsMetaSelectViewport as SelectViewport,
111
+ propsMetaSwitch as Switch,
112
+ propsMetaSwitchThumb as SwitchThumb,
80
113
  propsMetaTabs as Tabs,
81
114
  propsMetaTabsContent as TabsContent,
82
115
  propsMetaTabsList as TabsList,
83
116
  propsMetaTabsTrigger as TabsTrigger,
84
- propsMeta3 as Textarea,
85
117
  propsMetaTooltip as Tooltip,
86
118
  propsMetaTooltipContent as TooltipContent,
87
119
  propsMetaTooltipTrigger as TooltipTrigger
@@ -0,0 +1,11 @@
1
+ import {
2
+ } from "react";
3
+ import { Root, Item, Indicator } from "@radix-ui/react-radio-group";
4
+ const RadioGroup = Root;
5
+ const RadioGroupItem = Item;
6
+ const RadioGroupIndicator = Indicator;
7
+ export {
8
+ RadioGroup,
9
+ RadioGroupIndicator,
10
+ RadioGroupItem
11
+ };
@@ -0,0 +1,173 @@
1
+ import {
2
+ ItemIcon,
3
+ RadioCheckedIcon,
4
+ RadioDotIcon,
5
+ TriggerIcon
6
+ } from "@webstudio-is/icons/svg";
7
+ import {
8
+ defaultStates,
9
+ WsEmbedTemplate
10
+ } from "@webstudio-is/react-sdk";
11
+ import { button, div, span } from "@webstudio-is/react-sdk/css-normalize";
12
+ import * as tc from "./theme/tailwind-classes";
13
+ import { buttonReset } from "./theme/styles";
14
+ import {
15
+ propsRadioGroup,
16
+ propsRadioGroupIndicator,
17
+ propsRadioGroupItem
18
+ } from "./__generated__/radio-group.props";
19
+ const createRadioGroupItem = ({
20
+ value,
21
+ label
22
+ }) => ({
23
+ type: "instance",
24
+ component: "Label",
25
+ // flex items-center space-x-2
26
+ styles: [tc.flex(), tc.items("center"), tc.gap(2)].flat(),
27
+ children: [
28
+ {
29
+ type: "instance",
30
+ component: "RadioGroupItem",
31
+ props: [{ name: "value", type: "string", value }],
32
+ // aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background
33
+ // focus:outline-none
34
+ // focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
35
+ // disabled:cursor-not-allowed disabled:opacity-50
36
+ styles: [
37
+ tc.aspect("square"),
38
+ tc.h(4),
39
+ tc.w(4),
40
+ tc.rounded("full"),
41
+ tc.border(),
42
+ tc.border("primary"),
43
+ tc.text("primary"),
44
+ tc.focusVisible(
45
+ [tc.outline("none"), tc.ring("ring", 2, "background", 2)].flat()
46
+ ),
47
+ tc.disabled([tc.cursor("not-allowed"), tc.opacity(50)].flat())
48
+ ].flat(),
49
+ children: [
50
+ {
51
+ type: "instance",
52
+ component: "RadioGroupIndicator",
53
+ children: [
54
+ {
55
+ type: "instance",
56
+ component: "HtmlEmbed",
57
+ label: "Indicator Icon",
58
+ props: [
59
+ {
60
+ type: "string",
61
+ name: "code",
62
+ value: RadioDotIcon
63
+ }
64
+ ],
65
+ children: []
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ },
71
+ {
72
+ type: "instance",
73
+ component: "Text",
74
+ children: [{ type: "text", value: label }]
75
+ }
76
+ ]
77
+ });
78
+ const metaRadioGroup = {
79
+ category: "radix",
80
+ order: 100,
81
+ type: "container",
82
+ description: "A set of checkable buttons\u2014known as radio buttons\u2014where no more than one of the buttons can be checked at a time.",
83
+ icon: RadioCheckedIcon,
84
+ states: [
85
+ ...defaultStates,
86
+ {
87
+ label: "Checked",
88
+ selector: "[data-state=checked]",
89
+ category: "component-states"
90
+ },
91
+ {
92
+ label: "Unchecked",
93
+ selector: "[data-state=unchecked]",
94
+ category: "component-states"
95
+ }
96
+ ],
97
+ presetStyle: {
98
+ div
99
+ },
100
+ template: [
101
+ {
102
+ type: "instance",
103
+ component: "RadioGroup",
104
+ dataSources: {
105
+ radioGroupValue: { type: "variable", initialValue: "" }
106
+ },
107
+ // grid gap-2
108
+ styles: [tc.flex(), tc.flex("col"), tc.gap(2)].flat(),
109
+ props: [
110
+ {
111
+ type: "dataSource",
112
+ name: "value",
113
+ dataSourceName: "radioGroupValue"
114
+ },
115
+ {
116
+ name: "onValueChange",
117
+ type: "action",
118
+ value: [
119
+ {
120
+ type: "execute",
121
+ args: ["value"],
122
+ code: `radioGroupValue = value`
123
+ }
124
+ ]
125
+ }
126
+ ],
127
+ children: [
128
+ createRadioGroupItem({ value: "default", label: "Default" }),
129
+ createRadioGroupItem({ value: "comfortable", label: "Comfortable" }),
130
+ createRadioGroupItem({ value: "compact", label: "Compact" })
131
+ ]
132
+ }
133
+ ]
134
+ };
135
+ const metaRadioGroupItem = {
136
+ category: "hidden",
137
+ type: "container",
138
+ requiredAncestors: ["RadioGroup"],
139
+ icon: ItemIcon,
140
+ states: defaultStates,
141
+ presetStyle: {
142
+ button: [button, buttonReset].flat()
143
+ }
144
+ };
145
+ const metaRadioGroupIndicator = {
146
+ category: "hidden",
147
+ type: "container",
148
+ detachable: false,
149
+ icon: TriggerIcon,
150
+ states: defaultStates,
151
+ presetStyle: {
152
+ span
153
+ }
154
+ };
155
+ const propsMetaRadioGroup = {
156
+ props: propsRadioGroup,
157
+ initialProps: ["id", "value", "name", "required"]
158
+ };
159
+ const propsMetaRadioGroupItem = {
160
+ props: propsRadioGroupItem,
161
+ initialProps: ["value"]
162
+ };
163
+ const propsMetaRadioGroupIndicator = {
164
+ props: propsRadioGroupIndicator
165
+ };
166
+ export {
167
+ metaRadioGroup,
168
+ metaRadioGroupIndicator,
169
+ metaRadioGroupItem,
170
+ propsMetaRadioGroup,
171
+ propsMetaRadioGroupIndicator,
172
+ propsMetaRadioGroupItem
173
+ };
package/lib/select.js ADDED
@@ -0,0 +1,75 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import {
3
+ forwardRef
4
+ } from "react";
5
+ import {
6
+ Root,
7
+ Value,
8
+ Trigger,
9
+ Content,
10
+ Item,
11
+ ItemIndicator,
12
+ ItemText,
13
+ Portal,
14
+ Viewport
15
+ } from "@radix-ui/react-select";
16
+ import { getClosestInstance } from "@webstudio-is/react-sdk";
17
+ const Select = forwardRef(({ value, ...props }, _ref) => {
18
+ if (value === "") {
19
+ value = void 0;
20
+ }
21
+ return /* @__PURE__ */ jsx(Root, { value, ...props });
22
+ });
23
+ const SelectTrigger = Trigger;
24
+ const SelectValue = forwardRef((props, ref) => {
25
+ return /* @__PURE__ */ jsx(Value, { ref, ...props });
26
+ });
27
+ const SelectContent = forwardRef((props, ref) => {
28
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(Content, { ref, ...props, position: "popper" }) });
29
+ });
30
+ const SelectViewport = Viewport;
31
+ const SelectItem = Item;
32
+ const SelectItemIndicator = ItemIndicator;
33
+ const SelectItemText = ItemText;
34
+ const namespace = "@webstudio-is/sdk-components-react-radix";
35
+ const hooksSelect = {
36
+ onNavigatorUnselect: (context, event) => {
37
+ for (const instance of event.instancePath) {
38
+ if (instance.component === `${namespace}:SelectContent`) {
39
+ const select = getClosestInstance(
40
+ event.instancePath,
41
+ instance,
42
+ `${namespace}:Select`
43
+ );
44
+ if (select) {
45
+ context.setPropVariable(select.id, "open", false);
46
+ }
47
+ }
48
+ }
49
+ },
50
+ onNavigatorSelect: (context, event) => {
51
+ for (const instance of event.instancePath) {
52
+ if (instance.component === `${namespace}:SelectContent`) {
53
+ const select = getClosestInstance(
54
+ event.instancePath,
55
+ instance,
56
+ `${namespace}:Select`
57
+ );
58
+ if (select) {
59
+ context.setPropVariable(select.id, "open", true);
60
+ }
61
+ }
62
+ }
63
+ }
64
+ };
65
+ export {
66
+ Select,
67
+ SelectContent,
68
+ SelectItem,
69
+ SelectItemIndicator,
70
+ SelectItemText,
71
+ SelectTrigger,
72
+ SelectValue,
73
+ SelectViewport,
74
+ hooksSelect
75
+ };