@webstudio-is/sdk-components-react-radix 0.85.0 → 0.87.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 (149) hide show
  1. package/lib/__generated__/accordion.props.js +2134 -0
  2. package/lib/__generated__/button.props.js +454 -0
  3. package/lib/__generated__/dialog.props.js +0 -7
  4. package/lib/__generated__/input.props.js +451 -0
  5. package/lib/__generated__/label.props.js +421 -0
  6. package/lib/__generated__/popover.props.js +0 -7
  7. package/lib/__generated__/sheet.props.js +0 -7
  8. package/lib/__generated__/textarea.props.js +431 -0
  9. package/lib/__generated__/tooltip.props.js +0 -7
  10. package/lib/accordion.js +51 -0
  11. package/lib/accordion.ws.js +243 -0
  12. package/lib/button.js +8 -0
  13. package/lib/button.ws.js +133 -0
  14. package/lib/cjs/__generated__/accordion.props.js +2154 -0
  15. package/lib/cjs/__generated__/button.props.js +474 -0
  16. package/lib/cjs/__generated__/dialog.props.js +0 -7
  17. package/lib/cjs/__generated__/input.props.js +471 -0
  18. package/lib/cjs/__generated__/label.props.js +441 -0
  19. package/lib/cjs/__generated__/popover.props.js +0 -7
  20. package/lib/cjs/__generated__/sheet.props.js +0 -7
  21. package/lib/cjs/__generated__/textarea.props.js +451 -0
  22. package/lib/cjs/__generated__/tooltip.props.js +0 -7
  23. package/lib/cjs/accordion.js +60 -0
  24. package/lib/cjs/accordion.ws.js +261 -0
  25. package/lib/cjs/button.js +28 -0
  26. package/lib/cjs/button.ws.js +160 -0
  27. package/lib/cjs/collapsible.js +2 -16
  28. package/lib/cjs/collapsible.ws.js +1 -8
  29. package/lib/cjs/components.js +14 -0
  30. package/lib/cjs/dialog.js +38 -6
  31. package/lib/cjs/dialog.ws.js +15 -26
  32. package/lib/cjs/hooks.js +15 -1
  33. package/lib/cjs/input.js +28 -0
  34. package/lib/cjs/input.ws.js +103 -0
  35. package/lib/cjs/label.js +37 -0
  36. package/lib/cjs/label.ws.js +74 -0
  37. package/lib/cjs/metas.js +14 -0
  38. package/lib/cjs/popover.js +37 -5
  39. package/lib/cjs/popover.ws.js +15 -18
  40. package/lib/cjs/props.js +14 -0
  41. package/lib/cjs/sheet.js +34 -1
  42. package/lib/cjs/sheet.ws.js +33 -19
  43. package/lib/cjs/tabs.js +20 -1
  44. package/lib/cjs/tabs.ws.js +3 -25
  45. package/lib/cjs/textarea.js +28 -0
  46. package/lib/cjs/textarea.ws.js +98 -0
  47. package/lib/cjs/theme/tailwind-classes.js +186 -23
  48. package/lib/cjs/theme/tailwind-colors.js +10 -1
  49. package/lib/cjs/tooltip.js +36 -4
  50. package/lib/cjs/tooltip.ws.js +15 -18
  51. package/lib/collapsible.js +2 -16
  52. package/lib/collapsible.ws.js +1 -8
  53. package/lib/components.js +20 -0
  54. package/lib/dialog.js +38 -6
  55. package/lib/dialog.ws.js +15 -26
  56. package/lib/hooks.js +15 -1
  57. package/lib/input.js +8 -0
  58. package/lib/input.ws.js +75 -0
  59. package/lib/label.js +9 -0
  60. package/lib/label.ws.js +46 -0
  61. package/lib/metas.js +20 -0
  62. package/lib/popover.js +37 -5
  63. package/lib/popover.ws.js +15 -18
  64. package/lib/props.js +20 -0
  65. package/lib/sheet.js +34 -1
  66. package/lib/sheet.ws.js +33 -19
  67. package/lib/tabs.js +24 -2
  68. package/lib/tabs.ws.js +3 -25
  69. package/lib/textarea.js +8 -0
  70. package/lib/textarea.ws.js +70 -0
  71. package/lib/theme/tailwind-classes.js +191 -24
  72. package/lib/theme/tailwind-colors.js +10 -1
  73. package/lib/tooltip.js +36 -4
  74. package/lib/tooltip.ws.js +15 -18
  75. package/lib/types/__generated__/accordion.props.d.ts +6 -0
  76. package/lib/types/__generated__/button.props.d.ts +2 -0
  77. package/lib/types/__generated__/input.props.d.ts +2 -0
  78. package/lib/types/__generated__/label.props.d.ts +2 -0
  79. package/lib/types/__generated__/textarea.props.d.ts +2 -0
  80. package/lib/types/accordion.d.ts +12 -0
  81. package/lib/types/accordion.ws.d.ts +11 -0
  82. package/lib/types/button.d.ts +7 -0
  83. package/lib/types/button.stories.d.ts +20 -0
  84. package/lib/types/button.ws.d.ts +7 -0
  85. package/lib/types/components.d.ts +5 -0
  86. package/lib/types/dialog.d.ts +5 -11
  87. package/lib/types/input.d.ts +2 -0
  88. package/lib/types/input.stories.d.ts +20 -0
  89. package/lib/types/input.ws.d.ts +3 -0
  90. package/lib/types/label.d.ts +3 -0
  91. package/lib/types/label.stories.d.ts +9 -0
  92. package/lib/types/label.ws.d.ts +3 -0
  93. package/lib/types/metas.d.ts +5 -0
  94. package/lib/types/popover.d.ts +4 -10
  95. package/lib/types/props.d.ts +5 -0
  96. package/lib/types/sheet.d.ts +4 -4
  97. package/lib/types/tabs.d.ts +2 -0
  98. package/lib/types/textarea.d.ts +2 -0
  99. package/lib/types/textarea.stories.d.ts +14 -0
  100. package/lib/types/textarea.ws.d.ts +3 -0
  101. package/lib/types/theme/tailwind-classes.d.ts +16 -5
  102. package/lib/types/theme/tailwind-colors.d.ts +9 -0
  103. package/lib/types/tooltip.d.ts +3 -9
  104. package/package.json +9 -7
  105. package/src/__generated__/accordion.props.ts +2382 -0
  106. package/src/__generated__/button.props.ts +503 -0
  107. package/src/__generated__/dialog.props.ts +0 -7
  108. package/src/__generated__/input.props.ts +500 -0
  109. package/src/__generated__/label.props.ts +470 -0
  110. package/src/__generated__/popover.props.ts +0 -7
  111. package/src/__generated__/sheet.props.ts +0 -7
  112. package/src/__generated__/textarea.props.ts +480 -0
  113. package/src/__generated__/tooltip.props.ts +0 -7
  114. package/src/accordion.stories.tsx +21 -0
  115. package/src/accordion.tsx +81 -0
  116. package/src/accordion.ws.ts +270 -0
  117. package/src/button.stories.ts +35 -0
  118. package/src/button.tsx +25 -0
  119. package/src/button.ws.ts +155 -0
  120. package/src/collapsible.tsx +2 -16
  121. package/src/collapsible.ws.ts +1 -8
  122. package/src/components.ts +11 -0
  123. package/src/dialog.stories.tsx +21 -0
  124. package/src/dialog.tsx +50 -24
  125. package/src/dialog.ws.tsx +15 -26
  126. package/src/hooks.ts +15 -1
  127. package/src/input.stories.ts +31 -0
  128. package/src/input.tsx +12 -0
  129. package/src/input.ws.ts +78 -0
  130. package/src/label.stories.ts +22 -0
  131. package/src/label.tsx +15 -0
  132. package/src/label.ws.ts +48 -0
  133. package/src/metas.ts +11 -0
  134. package/src/popover.stories.tsx +21 -0
  135. package/src/popover.tsx +49 -23
  136. package/src/popover.ws.tsx +15 -18
  137. package/src/props.ts +11 -0
  138. package/src/sheet.tsx +39 -0
  139. package/src/sheet.ws.tsx +33 -19
  140. package/src/tabs.tsx +32 -1
  141. package/src/tabs.ws.ts +1 -23
  142. package/src/textarea.stories.ts +27 -0
  143. package/src/textarea.tsx +12 -0
  144. package/src/textarea.ws.ts +74 -0
  145. package/src/theme/tailwind-classes.ts +233 -38
  146. package/src/theme/tailwind-colors.ts +9 -16
  147. package/src/tooltip.stories.tsx +21 -0
  148. package/src/tooltip.tsx +46 -20
  149. package/src/tooltip.ws.tsx +15 -18
@@ -0,0 +1,261 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var accordion_ws_exports = {};
30
+ __export(accordion_ws_exports, {
31
+ metaAccordion: () => metaAccordion,
32
+ metaAccordionContent: () => metaAccordionContent,
33
+ metaAccordionHeader: () => metaAccordionHeader,
34
+ metaAccordionItem: () => metaAccordionItem,
35
+ metaAccordionTrigger: () => metaAccordionTrigger,
36
+ propsMetaAccordion: () => propsMetaAccordion,
37
+ propsMetaAccordionContent: () => propsMetaAccordionContent,
38
+ propsMetaAccordionHeader: () => propsMetaAccordionHeader,
39
+ propsMetaAccordionItem: () => propsMetaAccordionItem,
40
+ propsMetaAccordionTrigger: () => propsMetaAccordionTrigger
41
+ });
42
+ module.exports = __toCommonJS(accordion_ws_exports);
43
+ var import_svg = require("@webstudio-is/icons/svg");
44
+ var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
45
+ var tc = __toESM(require("./theme/tailwind-classes"), 1);
46
+ var import_accordion = require("./__generated__/accordion.props");
47
+ const presetStyle = {
48
+ div: import_css_normalize.div
49
+ };
50
+ const accordionItemStyles = [tc.borderB()].flat();
51
+ const accordionHeaderStyles = [tc.flex()].flat();
52
+ const accordionTriggerStyles = [
53
+ tc.flex(),
54
+ tc.flex(1),
55
+ tc.items("center"),
56
+ tc.justify("between"),
57
+ tc.py(4),
58
+ tc.font("medium"),
59
+ tc.transition("all"),
60
+ tc.hover([tc.underline()].flat())
61
+ ].flat();
62
+ const accordionContentStyles = [
63
+ tc.overflow("hidden"),
64
+ tc.text("sm"),
65
+ // transition does not work with display: none
66
+ // tc.transition("all"),
67
+ tc.pb(4)
68
+ ].flat();
69
+ const metaAccordion = {
70
+ category: "radix",
71
+ type: "container",
72
+ icon: import_svg.AccordionIcon,
73
+ presetStyle,
74
+ template: [
75
+ {
76
+ type: "instance",
77
+ component: "Accordion",
78
+ dataSources: {
79
+ accordionValue: { type: "variable", initialValue: "0" }
80
+ },
81
+ props: [
82
+ { type: "boolean", name: "collapsible", value: true },
83
+ { type: "dataSource", name: "value", dataSourceName: "accordionValue" },
84
+ {
85
+ name: "onValueChange",
86
+ type: "action",
87
+ value: [
88
+ {
89
+ type: "execute",
90
+ args: ["value"],
91
+ code: `accordionValue = value`
92
+ }
93
+ ]
94
+ }
95
+ ],
96
+ children: [
97
+ {
98
+ type: "instance",
99
+ component: "AccordionItem",
100
+ styles: accordionItemStyles,
101
+ children: [
102
+ {
103
+ type: "instance",
104
+ component: "AccordionHeader",
105
+ styles: accordionHeaderStyles,
106
+ children: [
107
+ {
108
+ type: "instance",
109
+ component: "AccordionTrigger",
110
+ styles: accordionTriggerStyles,
111
+ children: [{ type: "text", value: "Is it accessible?" }]
112
+ }
113
+ ]
114
+ },
115
+ {
116
+ type: "instance",
117
+ component: "AccordionContent",
118
+ styles: accordionContentStyles,
119
+ children: [
120
+ {
121
+ type: "text",
122
+ value: "Yes. It adheres to the WAI-ARIA design pattern."
123
+ }
124
+ ]
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ type: "instance",
130
+ component: "AccordionItem",
131
+ styles: accordionItemStyles,
132
+ children: [
133
+ {
134
+ type: "instance",
135
+ component: "AccordionHeader",
136
+ styles: accordionHeaderStyles,
137
+ children: [
138
+ {
139
+ type: "instance",
140
+ component: "AccordionTrigger",
141
+ styles: accordionTriggerStyles,
142
+ children: [{ type: "text", value: "Is it styled?" }]
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ type: "instance",
148
+ component: "AccordionContent",
149
+ styles: accordionContentStyles,
150
+ children: [
151
+ {
152
+ type: "text",
153
+ value: "Yes. It comes with default styles that matches the other components' aesthetic."
154
+ }
155
+ ]
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ type: "instance",
161
+ component: "AccordionItem",
162
+ styles: accordionItemStyles,
163
+ children: [
164
+ {
165
+ type: "instance",
166
+ component: "AccordionHeader",
167
+ styles: accordionHeaderStyles,
168
+ children: [
169
+ {
170
+ type: "instance",
171
+ component: "AccordionTrigger",
172
+ styles: accordionTriggerStyles,
173
+ children: [{ type: "text", value: "Is it animated?" }]
174
+ }
175
+ ]
176
+ },
177
+ {
178
+ type: "instance",
179
+ component: "AccordionContent",
180
+ styles: accordionContentStyles,
181
+ children: [
182
+ {
183
+ type: "text",
184
+ value: "Yes. It's animated by default, but you can disable it if you prefer."
185
+ }
186
+ ]
187
+ }
188
+ ]
189
+ }
190
+ ]
191
+ }
192
+ ]
193
+ };
194
+ const metaAccordionItem = {
195
+ category: "hidden",
196
+ type: "container",
197
+ icon: import_svg.ItemIcon,
198
+ requiredAncestors: ["Accordion"],
199
+ indexWithinAncestor: "Accordion",
200
+ presetStyle
201
+ };
202
+ const metaAccordionHeader = {
203
+ category: "hidden",
204
+ type: "container",
205
+ icon: import_svg.HeaderIcon,
206
+ requiredAncestors: ["AccordionItem"],
207
+ detachable: false,
208
+ presetStyle: {
209
+ h3: [import_css_normalize.h3, tc.my(0)].flat()
210
+ }
211
+ };
212
+ const metaAccordionTrigger = {
213
+ category: "hidden",
214
+ type: "container",
215
+ icon: import_svg.TriggerIcon,
216
+ requiredAncestors: ["AccordionHeader"],
217
+ detachable: false,
218
+ presetStyle: {
219
+ button: [
220
+ import_css_normalize.button,
221
+ {
222
+ property: "backgroundColor",
223
+ value: { type: "keyword", value: "transparent" }
224
+ },
225
+ {
226
+ property: "backgroundImage",
227
+ value: { type: "keyword", value: "none" }
228
+ },
229
+ {
230
+ property: "cursor",
231
+ value: { type: "keyword", value: "pointer" }
232
+ },
233
+ tc.px(0),
234
+ tc.border(0)
235
+ ].flat()
236
+ }
237
+ };
238
+ const metaAccordionContent = {
239
+ category: "hidden",
240
+ type: "container",
241
+ icon: import_svg.ContentIcon,
242
+ requiredAncestors: ["AccordionItem"],
243
+ detachable: false,
244
+ presetStyle
245
+ };
246
+ const propsMetaAccordion = {
247
+ props: import_accordion.propsAccordion,
248
+ initialProps: ["value", "collapsible", "dir", "orientation"]
249
+ };
250
+ const propsMetaAccordionItem = {
251
+ props: import_accordion.propsAccordionItem
252
+ };
253
+ const propsMetaAccordionHeader = {
254
+ props: import_accordion.propsAccordionHeader
255
+ };
256
+ const propsMetaAccordionTrigger = {
257
+ props: import_accordion.propsAccordionTrigger
258
+ };
259
+ const propsMetaAccordionContent = {
260
+ props: import_accordion.propsAccordionContent
261
+ };
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var button_exports = {};
20
+ __export(button_exports, {
21
+ Button: () => Button
22
+ });
23
+ module.exports = __toCommonJS(button_exports);
24
+ var import_jsx_runtime = require("react/jsx-runtime");
25
+ var import_react = require("react");
26
+ const Button = (0, import_react.forwardRef)(({ variant = "default", size = "default", ...props }, ref) => {
27
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref, "data-size": size, "data-variant": variant, ...props });
28
+ });
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var button_ws_exports = {};
30
+ __export(button_ws_exports, {
31
+ meta: () => meta,
32
+ propsMeta: () => propsMeta,
33
+ template: () => template
34
+ });
35
+ module.exports = __toCommonJS(button_ws_exports);
36
+ var import_svg = require("@webstudio-is/icons/svg");
37
+ var import_react_sdk = require("@webstudio-is/react-sdk");
38
+ var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
39
+ var import_button = require("./__generated__/button.props");
40
+ var tc = __toESM(require("./theme/tailwind-classes"), 1);
41
+ const presetStyle = {
42
+ button: import_css_normalize.button
43
+ };
44
+ const template = (props2) => [
45
+ {
46
+ type: "instance",
47
+ component: "Button",
48
+ styles: [
49
+ // 'inline-flex items-center justify-center rounded-md text-sm font-medium
50
+ // ring-offset-background transition-colors
51
+ // focus-visible:outline-none focus-visible:ring-2
52
+ // focus-visible:ring-ring focus-visible:ring-offset-2
53
+ // disabled:pointer-events-none disabled:opacity-50'
54
+ tc.border(0),
55
+ tc.bg("transparent"),
56
+ tc.inlineFlex(),
57
+ tc.items("center"),
58
+ tc.justify("center"),
59
+ tc.rounded("md"),
60
+ tc.text("sm"),
61
+ tc.font("medium"),
62
+ tc.focusVisible(
63
+ [tc.outline("none"), tc.ring("ring", 2, "background", 2)].flat()
64
+ ),
65
+ tc.state([tc.pointerEvents("none"), tc.opacity(50)].flat(), ":disabled"),
66
+ // VARIANT
67
+ // default: 'bg-primary text-primary-foreground hover:bg-primary/90',
68
+ tc.state(
69
+ [tc.bg("primary"), tc.text("primaryForeground")].flat(),
70
+ "[data-variant=default]"
71
+ ),
72
+ tc.state(
73
+ [[tc.bg("primary", 90)].flat()].flat(),
74
+ "[data-variant=default]:hover"
75
+ ),
76
+ // destructive:'bg-destructive text-destructive-foreground hover:bg-destructive/90',
77
+ tc.state(
78
+ [tc.bg("destructive"), tc.text("destructiveForeground")].flat(),
79
+ "[data-variant=destructive]"
80
+ ),
81
+ tc.state(
82
+ [[tc.bg("destructive", 90)].flat()].flat(),
83
+ "[data-variant=destructive]:hover"
84
+ ),
85
+ // outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
86
+ tc.state(
87
+ [tc.border(), tc.border("input"), tc.bg("background")].flat(),
88
+ "[data-variant=outline]"
89
+ ),
90
+ tc.state(
91
+ [[tc.bg("accent", 90), tc.text("accentForeground")].flat()].flat(),
92
+ "[data-variant=outline]:hover"
93
+ ),
94
+ // secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
95
+ tc.state(
96
+ [tc.bg("secondary"), tc.text("secondaryForeground")].flat(),
97
+ "[data-variant=secondary]"
98
+ ),
99
+ tc.state(
100
+ [[tc.bg("secondary", 80)].flat()].flat(),
101
+ "[data-variant=secondary]:hover"
102
+ ),
103
+ // ghost: 'hover:bg-accent hover:text-accent-foreground',
104
+ tc.state(
105
+ [[tc.bg("accent"), tc.text("accentForeground")].flat()].flat(),
106
+ "[data-variant=ghost]:hover"
107
+ ),
108
+ // link: 'text-primary underline-offset-4 hover:underline',
109
+ tc.state(
110
+ [tc.text("primary"), tc.underlineOffset(4)].flat(),
111
+ "[data-variant=link]"
112
+ ),
113
+ tc.state([[tc.underline()].flat()].flat(), "[data-variant=link]:hover"),
114
+ // SIZE
115
+ // default: 'h-10 px-4 py-2',
116
+ tc.state([tc.h(10), tc.px(4), tc.py(2)].flat(), "[data-size=default]"),
117
+ // sm: 'h-9 rounded-md px-3',
118
+ tc.state([tc.h(10), tc.px(3)].flat(), "[data-size=sm]"),
119
+ // lg: 'h-11 rounded-md px-8',
120
+ tc.state([tc.h(11), tc.px(8)].flat(), "[data-size=lg]"),
121
+ // icon: 'h-10 w-10',
122
+ tc.state([tc.h(10), tc.w(10)].flat(), "[data-size=icon]")
123
+ ].flat(),
124
+ children: props2?.children ?? [{ type: "text", value: "Button" }],
125
+ props: props2?.props
126
+ }
127
+ ];
128
+ const meta = {
129
+ category: "radix",
130
+ type: "container",
131
+ invalidAncestors: ["Button"],
132
+ icon: import_svg.ButtonElementIcon,
133
+ presetStyle,
134
+ states: [
135
+ ...import_react_sdk.defaultStates,
136
+ { selector: ":disabled", label: "Disabled" },
137
+ { selector: ":enabled", label: "Enabled" },
138
+ { selector: "[data-variant=default]", label: "Default" },
139
+ { selector: "[data-variant=default]:hover", label: "Default Hover" },
140
+ { selector: "[data-variant=destructive]", label: "Destructive" },
141
+ {
142
+ selector: "[data-variant=destructive]:hover",
143
+ label: "Destructive Hover"
144
+ },
145
+ { selector: "[data-variant=outline]", label: "Outline" },
146
+ { selector: "[data-variant=outline]:hover", label: "Outline Hover" },
147
+ { selector: "[data-variant=secondary]", label: "Secondary" },
148
+ { selector: "[data-variant=secondary]:hover", label: "Secondary Hover" },
149
+ { selector: "[data-variant=ghost]", label: "Ghost" },
150
+ { selector: "[data-variant=ghost]:hover", label: "Ghost Hover" },
151
+ { selector: "[data-variant=link]", label: "Link" },
152
+ { selector: "[data-variant=link]:hover", label: "Link Hover" }
153
+ ],
154
+ order: 1,
155
+ template: template()
156
+ };
157
+ const propsMeta = {
158
+ props: import_button.props,
159
+ initialProps: ["id", "type", "variant", "size", "aria-label"]
160
+ };
@@ -36,25 +36,11 @@ const CollapsibleTrigger = (0, import_react.forwardRef)(({ children, ...props },
36
36
  const CollapsibleContent = import_react_collapsible.Content;
37
37
  const namespace = "@webstudio-is/sdk-components-react-radix";
38
38
  const hooksCollapsible = {
39
- onNavigatorUnselect: (context, event) => {
40
- for (const instance of event.instanceSelection) {
41
- if (instance.component === `${namespace}:CollapsibleContent`) {
42
- const collapsible = (0, import_react_sdk.getClosestInstance)(
43
- event.instanceSelection,
44
- instance,
45
- `${namespace}:Collapsible`
46
- );
47
- if (collapsible) {
48
- context.setPropVariable(collapsible.id, "open", false);
49
- }
50
- }
51
- }
52
- },
53
39
  onNavigatorSelect: (context, event) => {
54
- for (const instance of event.instanceSelection) {
40
+ for (const instance of event.instancePath) {
55
41
  if (instance.component === `${namespace}:CollapsibleContent`) {
56
42
  const collapsible = (0, import_react_sdk.getClosestInstance)(
57
- event.instanceSelection,
43
+ event.instancePath,
58
44
  instance,
59
45
  `${namespace}:Collapsible`
60
46
  );
@@ -36,7 +36,6 @@ const metaCollapsible = {
36
36
  category: "radix",
37
37
  type: "container",
38
38
  presetStyle,
39
- label: "Collapsible",
40
39
  icon: import_svg.CollapsibleIcon,
41
40
  template: [
42
41
  {
@@ -55,11 +54,7 @@ const metaCollapsible = {
55
54
  name: "onOpenChange",
56
55
  type: "action",
57
56
  value: [
58
- {
59
- type: "execute",
60
- args: ["open"],
61
- code: `collapsibleOpen = open`
62
- }
57
+ { type: "execute", args: ["open"], code: `collapsibleOpen = open` }
63
58
  ]
64
59
  }
65
60
  ],
@@ -93,7 +88,6 @@ const metaCollapsible = {
93
88
  const metaCollapsibleTrigger = {
94
89
  category: "hidden",
95
90
  type: "container",
96
- label: "Collapsible Trigger",
97
91
  icon: import_svg.TriggerIcon,
98
92
  stylable: false,
99
93
  detachable: false
@@ -102,7 +96,6 @@ const metaCollapsibleContent = {
102
96
  category: "hidden",
103
97
  type: "container",
104
98
  presetStyle,
105
- label: "Collapsible Content",
106
99
  icon: import_svg.ContentIcon,
107
100
  detachable: false
108
101
  };
@@ -18,6 +18,12 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var components_exports = {};
20
20
  __export(components_exports, {
21
+ Accordion: () => import_accordion.Accordion,
22
+ AccordionContent: () => import_accordion.AccordionContent,
23
+ AccordionHeader: () => import_accordion.AccordionHeader,
24
+ AccordionItem: () => import_accordion.AccordionItem,
25
+ AccordionTrigger: () => import_accordion.AccordionTrigger,
26
+ Button: () => import_button.Button,
21
27
  Collapsible: () => import_collapsible.Collapsible,
22
28
  CollapsibleContent: () => import_collapsible.CollapsibleContent,
23
29
  CollapsibleTrigger: () => import_collapsible.CollapsibleTrigger,
@@ -28,6 +34,8 @@ __export(components_exports, {
28
34
  DialogOverlay: () => import_dialog.DialogOverlay,
29
35
  DialogTitle: () => import_dialog.DialogTitle,
30
36
  DialogTrigger: () => import_dialog.DialogTrigger,
37
+ Input: () => import_input.Input,
38
+ Label: () => import_label.Label,
31
39
  Popover: () => import_popover.Popover,
32
40
  PopoverContent: () => import_popover.PopoverContent,
33
41
  PopoverTrigger: () => import_popover.PopoverTrigger,
@@ -42,6 +50,7 @@ __export(components_exports, {
42
50
  TabsContent: () => import_tabs.TabsContent,
43
51
  TabsList: () => import_tabs.TabsList,
44
52
  TabsTrigger: () => import_tabs.TabsTrigger,
53
+ Textarea: () => import_textarea.Textarea,
45
54
  Tooltip: () => import_tooltip.Tooltip,
46
55
  TooltipContent: () => import_tooltip.TooltipContent,
47
56
  TooltipTrigger: () => import_tooltip.TooltipTrigger
@@ -53,3 +62,8 @@ var import_popover = require("./popover");
53
62
  var import_tooltip = require("./tooltip");
54
63
  var import_sheet = require("./sheet");
55
64
  var import_tabs = require("./tabs");
65
+ var import_button = require("./button");
66
+ var import_input = require("./input");
67
+ var import_textarea = require("./textarea");
68
+ var import_label = require("./label");
69
+ var import_accordion = require("./accordion");
package/lib/cjs/dialog.js CHANGED
@@ -34,19 +34,20 @@ __export(dialog_exports, {
34
34
  DialogDescription: () => DialogDescription,
35
35
  DialogOverlay: () => DialogOverlay,
36
36
  DialogTitle: () => DialogTitle,
37
- DialogTrigger: () => DialogTrigger
37
+ DialogTrigger: () => DialogTrigger,
38
+ hooksDialog: () => hooksDialog
38
39
  });
39
40
  module.exports = __toCommonJS(dialog_exports);
40
41
  var import_jsx_runtime = require("react/jsx-runtime");
41
- var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
42
42
  var import_react = require("react");
43
- const Dialog = (0, import_react.forwardRef)(({ open: openProp, isOpen, ...props }, ref) => {
44
- const open = openProp ?? (isOpen === "open" ? true : isOpen === "closed" ? false : void 0);
45
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.Root, { open, ...props });
43
+ var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
44
+ var import_react_sdk = require("@webstudio-is/react-sdk");
45
+ const Dialog = (0, import_react.forwardRef)((props, _ref) => {
46
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.Root, { ...props });
46
47
  });
47
48
  const DialogTrigger = (0, import_react.forwardRef)(({ children, ...props }, ref) => {
48
49
  const firstChild = import_react.Children.toArray(children)[0];
49
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.Trigger, { asChild: true, ...props, children: firstChild ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children: "Add button or link" }) });
50
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.Trigger, { ref, asChild: true, ...props, children: firstChild ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children: "Add button or link" }) });
50
51
  });
51
52
  const DialogOverlay = (0, import_react.forwardRef)((props, ref) => {
52
53
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogPrimitive.Overlay, { ref, ...props }) });
@@ -55,3 +56,34 @@ const DialogContent = DialogPrimitive.Content;
55
56
  const DialogClose = DialogPrimitive.Close;
56
57
  const DialogTitle = DialogPrimitive.Title;
57
58
  const DialogDescription = DialogPrimitive.Description;
59
+ const namespace = "@webstudio-is/sdk-components-react-radix";
60
+ const hooksDialog = {
61
+ onNavigatorUnselect: (context, event) => {
62
+ for (const instance of event.instancePath) {
63
+ if (instance.component === `${namespace}:DialogOverlay`) {
64
+ const dialog = (0, import_react_sdk.getClosestInstance)(
65
+ event.instancePath,
66
+ instance,
67
+ `${namespace}:Dialog`
68
+ );
69
+ if (dialog) {
70
+ context.setPropVariable(dialog.id, "open", false);
71
+ }
72
+ }
73
+ }
74
+ },
75
+ onNavigatorSelect: (context, event) => {
76
+ for (const instance of event.instancePath) {
77
+ if (instance.component === `${namespace}:DialogOverlay`) {
78
+ const dialog = (0, import_react_sdk.getClosestInstance)(
79
+ event.instancePath,
80
+ instance,
81
+ `${namespace}:Dialog`
82
+ );
83
+ if (dialog) {
84
+ context.setPropVariable(dialog.id, "open", true);
85
+ }
86
+ }
87
+ }
88
+ }
89
+ };