@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.
- package/lib/__generated__/accordion.props.js +605 -114
- package/lib/__generated__/button.props.js +158 -47
- package/lib/__generated__/checkbox.props.js +1083 -0
- package/lib/__generated__/collapsible.props.js +234 -44
- package/lib/__generated__/dialog.props.js +611 -121
- package/lib/__generated__/input.props.js +264 -47
- package/lib/__generated__/label.props.js +123 -23
- package/lib/__generated__/navigation-menu.props.js +2565 -0
- package/lib/__generated__/popover.props.js +129 -28
- package/lib/__generated__/radio-group.props.js +1627 -0
- package/lib/__generated__/select.props.js +3678 -0
- package/lib/__generated__/sheet.props.js +591 -121
- package/lib/__generated__/switch.props.js +1083 -0
- package/lib/__generated__/tabs.props.js +906 -68
- package/lib/__generated__/textarea.props.js +177 -31
- package/lib/__generated__/tooltip.props.js +131 -29
- package/lib/accordion.js +11 -4
- package/lib/accordion.ws.js +88 -72
- package/lib/checkbox.js +13 -0
- package/lib/checkbox.ws.js +153 -0
- package/lib/cjs/__generated__/accordion.props.js +605 -114
- package/lib/cjs/__generated__/button.props.js +158 -47
- package/lib/cjs/__generated__/checkbox.props.js +1103 -0
- package/lib/cjs/__generated__/collapsible.props.js +234 -44
- package/lib/cjs/__generated__/dialog.props.js +611 -121
- package/lib/cjs/__generated__/input.props.js +264 -47
- package/lib/cjs/__generated__/label.props.js +123 -23
- package/lib/cjs/__generated__/navigation-menu.props.js +2585 -0
- package/lib/cjs/__generated__/popover.props.js +129 -28
- package/lib/cjs/__generated__/radio-group.props.js +1647 -0
- package/lib/cjs/__generated__/select.props.js +3698 -0
- package/lib/cjs/__generated__/sheet.props.js +591 -121
- package/lib/cjs/__generated__/switch.props.js +1103 -0
- package/lib/cjs/__generated__/tabs.props.js +906 -68
- package/lib/cjs/__generated__/textarea.props.js +177 -31
- package/lib/cjs/__generated__/tooltip.props.js +131 -29
- package/lib/cjs/accordion.js +11 -4
- package/lib/cjs/accordion.ws.js +86 -71
- package/lib/cjs/{textarea.js → checkbox.js} +9 -6
- package/lib/cjs/checkbox.ws.js +174 -0
- package/lib/cjs/collapsible.ws.js +5 -1
- package/lib/cjs/components.js +27 -14
- package/lib/cjs/dialog.ws.js +18 -17
- package/lib/cjs/hooks.js +5 -1
- package/lib/cjs/label.ws.js +2 -1
- package/lib/cjs/metas.js +29 -14
- package/lib/cjs/navigation-menu.js +107 -0
- package/lib/cjs/navigation-menu.ws.js +514 -0
- package/lib/cjs/popover.ws.js +13 -9
- package/lib/cjs/props-descriptions.js +56 -0
- package/lib/cjs/props.js +27 -14
- package/lib/cjs/{button.js → radio-group.js} +10 -8
- package/lib/cjs/radio-group.ws.js +191 -0
- package/lib/cjs/select.js +83 -0
- package/lib/cjs/select.ws.js +350 -0
- package/lib/cjs/sheet.ws.js +88 -176
- package/lib/cjs/{input.js → switch.js} +8 -9
- package/lib/cjs/switch.ws.js +173 -0
- package/lib/cjs/tabs.js +2 -3
- package/lib/cjs/tabs.ws.js +14 -18
- package/lib/cjs/theme/styles.js +100 -0
- package/lib/cjs/theme/tailwind-classes.js +125 -16
- package/lib/cjs/theme/tailwind-colors.js +1 -0
- package/lib/cjs/tooltip.ws.js +12 -8
- package/lib/collapsible.ws.js +5 -1
- package/lib/components.js +44 -22
- package/lib/dialog.ws.js +18 -17
- package/lib/hooks.js +5 -1
- package/lib/label.ws.js +2 -1
- package/lib/metas.js +58 -24
- package/lib/navigation-menu.js +85 -0
- package/lib/navigation-menu.ws.js +501 -0
- package/lib/popover.ws.js +13 -9
- package/lib/props-descriptions.js +36 -0
- package/lib/props.js +56 -24
- package/lib/radio-group.js +11 -0
- package/lib/radio-group.ws.js +173 -0
- package/lib/select.js +75 -0
- package/lib/select.ws.js +338 -0
- package/lib/sheet.ws.js +89 -194
- package/lib/switch.js +7 -0
- package/lib/switch.ws.js +145 -0
- package/lib/tabs.js +3 -5
- package/lib/tabs.ws.js +15 -19
- package/lib/theme/styles.js +70 -0
- package/lib/theme/tailwind-classes.js +125 -16
- package/lib/theme/tailwind-colors.js +1 -0
- package/lib/tooltip.ws.js +12 -8
- package/lib/types/__generated__/checkbox.props.d.ts +3 -0
- package/lib/types/__generated__/navigation-menu.props.d.ts +8 -0
- package/lib/types/__generated__/radio-group.props.d.ts +4 -0
- package/lib/types/__generated__/select.props.d.ts +9 -0
- package/lib/types/__generated__/switch.props.d.ts +3 -0
- package/lib/types/checkbox.d.ts +6 -0
- package/lib/types/checkbox.stories.d.ts +11 -0
- package/lib/types/checkbox.ws.d.ts +5 -0
- package/lib/types/components.d.ts +5 -4
- package/lib/types/metas.d.ts +6 -4
- package/lib/types/navigation-menu.d.ts +15 -0
- package/lib/types/navigation-menu.ws.d.ts +15 -0
- package/lib/types/props-descriptions.d.ts +29 -0
- package/lib/types/props.d.ts +5 -4
- package/lib/types/radio-group.d.ts +5 -0
- package/lib/types/radio-group.stories.d.ts +9 -0
- package/lib/types/radio-group.ws.d.ts +7 -0
- package/lib/types/select.d.ts +14 -0
- package/lib/types/select.ws.d.ts +17 -0
- package/lib/types/sheet.ws.d.ts +2 -15
- package/lib/types/switch.d.ts +4 -0
- package/lib/types/switch.stories.d.ts +9 -0
- package/lib/types/switch.ws.d.ts +5 -0
- package/lib/types/tabs.d.ts +3 -12
- package/lib/types/theme/radix-common-types.d.ts +3 -2
- package/lib/types/theme/styles.d.ts +215 -0
- package/lib/types/theme/tailwind-classes.d.ts +16 -6
- package/lib/types/theme/tailwind-colors.d.ts +1 -0
- package/lib/types/theme/tailwind-theme.d.ts +1 -1
- package/package.json +12 -7
- package/src/__generated__/accordion.props.ts +675 -108
- package/src/__generated__/button.props.ts +177 -45
- package/src/__generated__/checkbox.props.ts +1217 -0
- package/src/__generated__/collapsible.props.ts +261 -42
- package/src/__generated__/dialog.props.ts +682 -115
- package/src/__generated__/input.props.ts +292 -44
- package/src/__generated__/label.props.ts +137 -22
- package/src/__generated__/navigation-menu.props.ts +2882 -0
- package/src/__generated__/popover.props.ts +142 -24
- package/src/__generated__/radio-group.props.ts +1828 -0
- package/src/__generated__/select.props.ts +4130 -0
- package/src/__generated__/sheet.props.ts +657 -110
- package/src/__generated__/switch.props.ts +1217 -0
- package/src/__generated__/tabs.props.ts +1019 -67
- package/src/__generated__/textarea.props.ts +195 -30
- package/src/__generated__/tooltip.props.ts +145 -25
- package/src/accordion.tsx +14 -7
- package/src/accordion.ws.ts +87 -70
- package/src/{textarea.stories.ts → checkbox.stories.ts} +6 -11
- package/src/checkbox.tsx +22 -0
- package/src/checkbox.ws.ts +154 -0
- package/src/collapsible.ws.ts +6 -1
- package/src/components.ts +25 -12
- package/src/dialog.ws.tsx +17 -16
- package/src/hooks.ts +4 -0
- package/src/label.ws.ts +3 -1
- package/src/metas.ts +36 -12
- package/src/navigation-menu.stories.tsx +21 -0
- package/src/navigation-menu.tsx +130 -0
- package/src/navigation-menu.ws.ts +524 -0
- package/src/popover.ws.tsx +13 -9
- package/src/props-descriptions.ts +43 -0
- package/src/props.ts +35 -12
- package/src/{input.stories.ts → radio-group.stories.ts} +6 -15
- package/src/radio-group.tsx +17 -0
- package/src/radio-group.ws.ts +178 -0
- package/src/select.stories.tsx +21 -0
- package/src/select.tsx +112 -0
- package/src/select.ws.ts +349 -0
- package/src/sheet.ws.tsx +91 -209
- package/src/{button.stories.ts → switch.stories.ts} +6 -19
- package/src/switch.tsx +10 -0
- package/src/switch.ws.ts +146 -0
- package/src/tabs.tsx +4 -17
- package/src/tabs.ws.ts +19 -19
- package/src/theme/radix-common-types.ts +3 -2
- package/src/theme/styles.ts +80 -0
- package/src/theme/tailwind-classes.ts +150 -14
- package/src/theme/tailwind-colors.ts +1 -0
- package/src/tooltip.ws.tsx +13 -8
- package/lib/button.js +0 -8
- package/lib/button.ws.js +0 -133
- package/lib/cjs/button.ws.js +0 -160
- package/lib/cjs/input.ws.js +0 -103
- package/lib/cjs/textarea.ws.js +0 -98
- package/lib/input.js +0 -8
- package/lib/input.ws.js +0 -75
- package/lib/textarea.js +0 -8
- package/lib/textarea.ws.js +0 -70
- package/lib/types/button.d.ts +0 -7
- package/lib/types/button.stories.d.ts +0 -20
- package/lib/types/button.ws.d.ts +0 -7
- package/lib/types/input.d.ts +0 -2
- package/lib/types/input.stories.d.ts +0 -20
- package/lib/types/input.ws.d.ts +0 -3
- package/lib/types/textarea.d.ts +0 -2
- package/lib/types/textarea.stories.d.ts +0 -14
- package/lib/types/textarea.ws.d.ts +0 -3
- package/src/button.tsx +0 -25
- package/src/button.ws.ts +0 -155
- package/src/input.tsx +0 -12
- package/src/input.ws.ts +0 -78
- package/src/textarea.tsx +0 -12
- 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 "./
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
+
};
|