@webstudio-is/sdk-components-react-radix 0.87.0 → 0.88.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 (182) hide show
  1. package/lib/__generated__/accordion.props.js +0 -5
  2. package/lib/__generated__/button.props.js +0 -21
  3. package/lib/__generated__/checkbox.props.js +850 -0
  4. package/lib/__generated__/collapsible.props.js +0 -2
  5. package/lib/__generated__/dialog.props.js +0 -11
  6. package/lib/__generated__/label.props.js +0 -1
  7. package/lib/__generated__/navigation-menu.props.js +2104 -0
  8. package/lib/__generated__/popover.props.js +0 -3
  9. package/lib/__generated__/radio-group.props.js +1282 -0
  10. package/lib/__generated__/select.props.js +2962 -0
  11. package/lib/__generated__/sheet.props.js +0 -11
  12. package/lib/__generated__/switch.props.js +850 -0
  13. package/lib/__generated__/tabs.props.js +428 -5
  14. package/lib/__generated__/tooltip.props.js +0 -2
  15. package/lib/accordion.js +11 -4
  16. package/lib/accordion.ws.js +87 -72
  17. package/lib/checkbox.js +13 -0
  18. package/lib/checkbox.ws.js +151 -0
  19. package/lib/cjs/__generated__/accordion.props.js +0 -5
  20. package/lib/cjs/__generated__/button.props.js +0 -21
  21. package/lib/cjs/__generated__/checkbox.props.js +870 -0
  22. package/lib/cjs/__generated__/collapsible.props.js +0 -2
  23. package/lib/cjs/__generated__/dialog.props.js +0 -11
  24. package/lib/cjs/__generated__/label.props.js +0 -1
  25. package/lib/cjs/__generated__/navigation-menu.props.js +2124 -0
  26. package/lib/cjs/__generated__/popover.props.js +0 -3
  27. package/lib/cjs/__generated__/radio-group.props.js +1302 -0
  28. package/lib/cjs/__generated__/select.props.js +2982 -0
  29. package/lib/cjs/__generated__/sheet.props.js +0 -11
  30. package/lib/cjs/__generated__/switch.props.js +870 -0
  31. package/lib/cjs/__generated__/tabs.props.js +428 -5
  32. package/lib/cjs/__generated__/tooltip.props.js +0 -2
  33. package/lib/cjs/accordion.js +11 -4
  34. package/lib/cjs/accordion.ws.js +85 -71
  35. package/lib/cjs/{textarea.js → checkbox.js} +9 -6
  36. package/lib/cjs/checkbox.ws.js +172 -0
  37. package/lib/cjs/collapsible.ws.js +4 -1
  38. package/lib/cjs/components.js +27 -14
  39. package/lib/cjs/dialog.ws.js +17 -17
  40. package/lib/cjs/hooks.js +5 -1
  41. package/lib/cjs/label.ws.js +1 -1
  42. package/lib/cjs/metas.js +29 -14
  43. package/lib/cjs/navigation-menu.js +107 -0
  44. package/lib/cjs/navigation-menu.ws.js +513 -0
  45. package/lib/cjs/popover.ws.js +12 -9
  46. package/lib/cjs/props.js +27 -14
  47. package/lib/cjs/{button.js → radio-group.js} +10 -8
  48. package/lib/cjs/radio-group.ws.js +188 -0
  49. package/lib/cjs/select.js +81 -0
  50. package/lib/cjs/select.ws.js +349 -0
  51. package/lib/cjs/sheet.ws.js +87 -176
  52. package/lib/cjs/{input.js → switch.js} +8 -9
  53. package/lib/cjs/switch.ws.js +171 -0
  54. package/lib/cjs/tabs.js +2 -3
  55. package/lib/cjs/tabs.ws.js +13 -18
  56. package/lib/cjs/theme/styles.js +100 -0
  57. package/lib/cjs/theme/tailwind-classes.js +125 -16
  58. package/lib/cjs/theme/tailwind-colors.js +1 -0
  59. package/lib/cjs/tooltip.ws.js +11 -8
  60. package/lib/collapsible.ws.js +4 -1
  61. package/lib/components.js +44 -22
  62. package/lib/dialog.ws.js +17 -17
  63. package/lib/hooks.js +5 -1
  64. package/lib/label.ws.js +1 -1
  65. package/lib/metas.js +58 -24
  66. package/lib/navigation-menu.js +85 -0
  67. package/lib/navigation-menu.ws.js +500 -0
  68. package/lib/popover.ws.js +12 -9
  69. package/lib/props.js +56 -24
  70. package/lib/radio-group.js +11 -0
  71. package/lib/radio-group.ws.js +170 -0
  72. package/lib/select.js +73 -0
  73. package/lib/select.ws.js +337 -0
  74. package/lib/sheet.ws.js +88 -194
  75. package/lib/switch.js +7 -0
  76. package/lib/switch.ws.js +143 -0
  77. package/lib/tabs.js +3 -5
  78. package/lib/tabs.ws.js +14 -19
  79. package/lib/theme/styles.js +70 -0
  80. package/lib/theme/tailwind-classes.js +125 -16
  81. package/lib/theme/tailwind-colors.js +1 -0
  82. package/lib/tooltip.ws.js +11 -8
  83. package/lib/types/__generated__/checkbox.props.d.ts +3 -0
  84. package/lib/types/__generated__/navigation-menu.props.d.ts +8 -0
  85. package/lib/types/__generated__/radio-group.props.d.ts +4 -0
  86. package/lib/types/__generated__/select.props.d.ts +9 -0
  87. package/lib/types/__generated__/switch.props.d.ts +3 -0
  88. package/lib/types/checkbox.d.ts +6 -0
  89. package/lib/types/checkbox.stories.d.ts +11 -0
  90. package/lib/types/checkbox.ws.d.ts +5 -0
  91. package/lib/types/components.d.ts +5 -4
  92. package/lib/types/metas.d.ts +6 -4
  93. package/lib/types/navigation-menu.d.ts +15 -0
  94. package/lib/types/navigation-menu.ws.d.ts +15 -0
  95. package/lib/types/props.d.ts +5 -4
  96. package/lib/types/radio-group.d.ts +5 -0
  97. package/lib/types/radio-group.stories.d.ts +9 -0
  98. package/lib/types/radio-group.ws.d.ts +7 -0
  99. package/lib/types/select.d.ts +12 -0
  100. package/lib/types/select.ws.d.ts +17 -0
  101. package/lib/types/sheet.ws.d.ts +2 -15
  102. package/lib/types/switch.d.ts +4 -0
  103. package/lib/types/switch.stories.d.ts +9 -0
  104. package/lib/types/switch.ws.d.ts +5 -0
  105. package/lib/types/tabs.d.ts +3 -12
  106. package/lib/types/theme/radix-common-types.d.ts +3 -2
  107. package/lib/types/theme/styles.d.ts +215 -0
  108. package/lib/types/theme/tailwind-classes.d.ts +16 -6
  109. package/lib/types/theme/tailwind-colors.d.ts +1 -0
  110. package/lib/types/theme/tailwind-theme.d.ts +1 -1
  111. package/package.json +12 -7
  112. package/src/__generated__/accordion.props.ts +0 -5
  113. package/src/__generated__/button.props.ts +0 -21
  114. package/src/__generated__/checkbox.props.ts +948 -0
  115. package/src/__generated__/collapsible.props.ts +0 -2
  116. package/src/__generated__/dialog.props.ts +0 -11
  117. package/src/__generated__/label.props.ts +0 -1
  118. package/src/__generated__/navigation-menu.props.ts +2349 -0
  119. package/src/__generated__/popover.props.ts +0 -3
  120. package/src/__generated__/radio-group.props.ts +1429 -0
  121. package/src/__generated__/select.props.ts +3304 -0
  122. package/src/__generated__/sheet.props.ts +0 -11
  123. package/src/__generated__/switch.props.ts +948 -0
  124. package/src/__generated__/tabs.props.ts +477 -4
  125. package/src/__generated__/tooltip.props.ts +0 -2
  126. package/src/accordion.tsx +14 -7
  127. package/src/accordion.ws.ts +85 -70
  128. package/src/{textarea.stories.ts → checkbox.stories.ts} +6 -11
  129. package/src/checkbox.tsx +22 -0
  130. package/src/checkbox.ws.ts +151 -0
  131. package/src/collapsible.ws.ts +4 -1
  132. package/src/components.ts +25 -12
  133. package/src/dialog.ws.tsx +15 -16
  134. package/src/hooks.ts +4 -0
  135. package/src/label.ws.ts +1 -1
  136. package/src/metas.ts +36 -12
  137. package/src/navigation-menu.stories.tsx +21 -0
  138. package/src/navigation-menu.tsx +130 -0
  139. package/src/navigation-menu.ws.ts +523 -0
  140. package/src/popover.ws.tsx +12 -9
  141. package/src/props.ts +35 -12
  142. package/src/{input.stories.ts → radio-group.stories.ts} +6 -15
  143. package/src/radio-group.tsx +17 -0
  144. package/src/radio-group.ws.ts +174 -0
  145. package/src/select.stories.tsx +21 -0
  146. package/src/select.tsx +107 -0
  147. package/src/select.ws.ts +347 -0
  148. package/src/sheet.ws.tsx +89 -209
  149. package/src/{button.stories.ts → switch.stories.ts} +6 -19
  150. package/src/switch.tsx +10 -0
  151. package/src/switch.ws.ts +143 -0
  152. package/src/tabs.tsx +4 -17
  153. package/src/tabs.ws.ts +17 -19
  154. package/src/theme/radix-common-types.ts +3 -2
  155. package/src/theme/styles.ts +80 -0
  156. package/src/theme/tailwind-classes.ts +150 -14
  157. package/src/theme/tailwind-colors.ts +1 -0
  158. package/src/tooltip.ws.tsx +11 -8
  159. package/lib/button.js +0 -8
  160. package/lib/button.ws.js +0 -133
  161. package/lib/cjs/button.ws.js +0 -160
  162. package/lib/cjs/input.ws.js +0 -103
  163. package/lib/cjs/textarea.ws.js +0 -98
  164. package/lib/input.js +0 -8
  165. package/lib/input.ws.js +0 -75
  166. package/lib/textarea.js +0 -8
  167. package/lib/textarea.ws.js +0 -70
  168. package/lib/types/button.d.ts +0 -7
  169. package/lib/types/button.stories.d.ts +0 -20
  170. package/lib/types/button.ws.d.ts +0 -7
  171. package/lib/types/input.d.ts +0 -2
  172. package/lib/types/input.stories.d.ts +0 -20
  173. package/lib/types/input.ws.d.ts +0 -3
  174. package/lib/types/textarea.d.ts +0 -2
  175. package/lib/types/textarea.stories.d.ts +0 -14
  176. package/lib/types/textarea.ws.d.ts +0 -3
  177. package/src/button.tsx +0 -25
  178. package/src/button.ws.ts +0 -155
  179. package/src/input.tsx +0 -12
  180. package/src/input.ws.ts +0 -78
  181. package/src/textarea.tsx +0 -12
  182. package/src/textarea.ws.ts +0 -74
@@ -0,0 +1,500 @@
1
+ import {
2
+ ContentIcon,
3
+ ListIcon,
4
+ ListItemIcon,
5
+ TriggerIcon,
6
+ BoxIcon,
7
+ ChevronDownIcon,
8
+ ViewportIcon,
9
+ NavigationMenuIcon
10
+ } from "@webstudio-is/icons/svg";
11
+ import { div } from "@webstudio-is/react-sdk/css-normalize";
12
+ import * as tc from "./theme/tailwind-classes";
13
+ import { getButtonStyles } from "./theme/styles";
14
+ import {
15
+ propsNavigationMenu,
16
+ propsNavigationMenuItem,
17
+ propsNavigationMenuTrigger,
18
+ propsNavigationMenuContent,
19
+ propsNavigationMenuLink,
20
+ propsNavigationMenuList,
21
+ propsNavigationMenuViewport
22
+ } from "./__generated__/navigation-menu.props";
23
+ const presetStyle = {
24
+ div
25
+ };
26
+ const components = [
27
+ {
28
+ title: "Sheet",
29
+ href: "/docs/components/sheet",
30
+ description: "Extends the Dialog component to display content that complements the main content of the screen."
31
+ },
32
+ {
33
+ title: "Navigation Menu",
34
+ href: "/docs/components/navigation-menu",
35
+ description: "A collection of links for navigating websites."
36
+ },
37
+ {
38
+ title: "Tabs",
39
+ href: "/docs/components/tabs",
40
+ description: "A set of layered sections of content\u2014known as tab panels\u2014that are displayed one at a time."
41
+ },
42
+ {
43
+ title: "Accordion",
44
+ href: "/docs/components/accordion",
45
+ description: "A vertically stacked set of interactive headings that each reveal a section of content."
46
+ },
47
+ {
48
+ title: "Dialog",
49
+ href: "/docs/components/dialog",
50
+ description: "A window overlaid on either the primary window or another dialog window, rendering the content underneath inert."
51
+ },
52
+ {
53
+ title: "Collapsible",
54
+ href: "/docs/components/collapsible",
55
+ description: "An interactive component which expands/collapses a panel."
56
+ },
57
+ {
58
+ title: "Popover",
59
+ href: "/docs/components/popover",
60
+ description: "Displays rich content in a portal, triggered by a button."
61
+ },
62
+ {
63
+ title: "Tooltip",
64
+ href: "/docs/components/tooltip",
65
+ description: "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it."
66
+ },
67
+ {
68
+ title: "Button",
69
+ href: "/docs/components/button",
70
+ description: "Displays a button or a component that looks like a button."
71
+ }
72
+ ];
73
+ const navItem = (props) => [
74
+ {
75
+ type: "instance",
76
+ component: "NavigationMenuLink",
77
+ children: [
78
+ {
79
+ type: "instance",
80
+ component: "Link",
81
+ // block select-none space-y-1 rounded-md p-3 leading-none
82
+ // no-underline outline-none transition-colors
83
+ // hover:bg-accent hover:text-accent-foreground
84
+ // focus:bg-accent focus:text-accent-foreground
85
+ styles: [
86
+ tc.text("inherit"),
87
+ tc.flex(),
88
+ tc.flex("col"),
89
+ tc.select("none"),
90
+ tc.gap(1),
91
+ tc.rounded("md"),
92
+ tc.p(3),
93
+ tc.leading("none"),
94
+ tc.noUnderline(),
95
+ tc.outline("none"),
96
+ tc.hover([tc.bg("accent"), tc.text("accentForeground")].flat()),
97
+ tc.focus([tc.bg("accent"), tc.text("accentForeground")].flat())
98
+ ].flat(),
99
+ props: [
100
+ {
101
+ name: "href",
102
+ type: "string",
103
+ value: `https://ui.shadcn.com${props.href}`
104
+ }
105
+ ],
106
+ children: [
107
+ {
108
+ type: "instance",
109
+ component: "Text",
110
+ // text-sm font-medium leading-none
111
+ styles: [
112
+ tc.text("sm"),
113
+ tc.font("medium"),
114
+ tc.leading("none")
115
+ ].flat(),
116
+ children: [
117
+ {
118
+ type: "text",
119
+ value: props.title
120
+ }
121
+ ]
122
+ },
123
+ {
124
+ type: "instance",
125
+ component: "Paragraph",
126
+ // line-clamp-2 text-sm leading-snug text-muted-foreground
127
+ styles: [
128
+ tc.m(0),
129
+ tc.lineClamp(2),
130
+ tc.text("sm"),
131
+ tc.leading("snug"),
132
+ tc.text("mutedForeground")
133
+ ].flat(),
134
+ children: [
135
+ {
136
+ type: "text",
137
+ value: props.description
138
+ }
139
+ ]
140
+ }
141
+ ]
142
+ }
143
+ ]
144
+ }
145
+ ];
146
+ const navItemsList = (props) => [
147
+ {
148
+ type: "instance",
149
+ component: "Box",
150
+ label: "Flex Column",
151
+ styles: [tc.w(64), tc.flex(), tc.gap(4), tc.flex("col")].flat(),
152
+ children: Array.from(
153
+ Array(props.count),
154
+ (_, index) => navItem(components[index + props.offset])
155
+ ).flat()
156
+ }
157
+ ];
158
+ const menuItemLink = (props) => [
159
+ {
160
+ type: "instance",
161
+ component: "NavigationMenuItem",
162
+ children: [
163
+ {
164
+ type: "instance",
165
+ component: "NavigationMenuLink",
166
+ children: [
167
+ {
168
+ type: "instance",
169
+ component: "Link",
170
+ styles: [
171
+ getButtonStyles("ghost", "sm"),
172
+ tc.noUnderline(),
173
+ tc.text("current")
174
+ ].flat(),
175
+ children: [{ type: "text", value: props.title }]
176
+ }
177
+ ]
178
+ }
179
+ ]
180
+ }
181
+ ];
182
+ const menuItem = (props) => [
183
+ {
184
+ type: "instance",
185
+ component: "NavigationMenuItem",
186
+ children: [
187
+ {
188
+ type: "instance",
189
+ component: "NavigationMenuTrigger",
190
+ children: [
191
+ {
192
+ type: "instance",
193
+ component: "Button",
194
+ styles: [
195
+ getButtonStyles("ghost", "sm"),
196
+ tc.property("--navigation-menu-trigger-icon-transform", "0deg"),
197
+ tc.state(
198
+ [
199
+ tc.property(
200
+ "--navigation-menu-trigger-icon-transform",
201
+ "180deg"
202
+ )
203
+ ],
204
+ "[data-state=open]"
205
+ )
206
+ ].flat(),
207
+ children: [
208
+ {
209
+ type: "instance",
210
+ component: "Text",
211
+ children: [{ type: "text", value: props.title }]
212
+ },
213
+ {
214
+ type: "instance",
215
+ component: "Box",
216
+ label: "Icon Container",
217
+ // h-4 w-4 shrink-0 transition-transform duration-200
218
+ styles: [
219
+ tc.ml(1),
220
+ tc.property(
221
+ "rotate",
222
+ "--navigation-menu-trigger-icon-transform"
223
+ ),
224
+ tc.h(4),
225
+ tc.w(4),
226
+ tc.shrink(0),
227
+ tc.transition("all"),
228
+ tc.duration(200)
229
+ ].flat(),
230
+ children: [
231
+ {
232
+ type: "instance",
233
+ component: "HtmlEmbed",
234
+ label: "Chevron Icon",
235
+ props: [
236
+ {
237
+ type: "string",
238
+ name: "code",
239
+ value: ChevronDownIcon
240
+ }
241
+ ],
242
+ children: []
243
+ }
244
+ ]
245
+ }
246
+ ]
247
+ }
248
+ ]
249
+ },
250
+ {
251
+ type: "instance",
252
+ component: "NavigationMenuContent",
253
+ // left-0 top-0 absolute w-max
254
+ styles: [
255
+ tc.left(0),
256
+ tc.top(0),
257
+ tc.absolute(),
258
+ tc.w("max"),
259
+ tc.p(4)
260
+ ].flat(),
261
+ children: [
262
+ {
263
+ type: "instance",
264
+ component: "Box",
265
+ label: "Content",
266
+ styles: [tc.flex(), tc.gap(4), tc.p(props.padding)].flat(),
267
+ children: props.children
268
+ }
269
+ ]
270
+ }
271
+ ]
272
+ }
273
+ ];
274
+ const metaNavigationMenu = {
275
+ category: "radix",
276
+ order: 2,
277
+ type: "container",
278
+ icon: NavigationMenuIcon,
279
+ presetStyle,
280
+ template: [
281
+ {
282
+ type: "instance",
283
+ component: "NavigationMenu",
284
+ dataSources: {
285
+ menuValue: { type: "variable", initialValue: "" }
286
+ },
287
+ props: [
288
+ { type: "dataSource", name: "value", dataSourceName: "menuValue" },
289
+ {
290
+ name: "onValueChange",
291
+ type: "action",
292
+ value: [
293
+ {
294
+ type: "execute",
295
+ args: ["value"],
296
+ code: `menuValue = value`
297
+ }
298
+ ]
299
+ }
300
+ ],
301
+ // relative
302
+ // Omiting this: z-10 flex max-w-max flex-1 items-center justify-center
303
+ styles: [tc.relative(), tc.maxW("max")].flat(),
304
+ children: [
305
+ {
306
+ type: "instance",
307
+ component: "NavigationMenuList",
308
+ styles: [
309
+ // ul defaults in tailwind
310
+ tc.p(0),
311
+ tc.m(0),
312
+ // shadcdn styles
313
+ tc.flex(),
314
+ tc.flex(1),
315
+ tc.list("none"),
316
+ tc.items("center"),
317
+ tc.justify("center"),
318
+ tc.gap(1)
319
+ ].flat(),
320
+ children: [
321
+ ...menuItem({
322
+ title: "About",
323
+ padding: 2,
324
+ children: [
325
+ {
326
+ type: "instance",
327
+ component: "Box",
328
+ styles: [
329
+ tc.bg("border"),
330
+ tc.p(4),
331
+ tc.w(48),
332
+ tc.rounded("md")
333
+ ].flat(),
334
+ children: [
335
+ {
336
+ type: "text",
337
+ value: ""
338
+ }
339
+ ]
340
+ },
341
+ ...navItemsList({ count: 3, offset: 0 })
342
+ ]
343
+ }),
344
+ ...menuItem({
345
+ title: "Components",
346
+ padding: 0,
347
+ children: [
348
+ ...navItemsList({ count: 3, offset: 3 }),
349
+ ...navItemsList({ count: 3, offset: 6 })
350
+ ]
351
+ }),
352
+ ...menuItemLink({ title: "Standalone" })
353
+ ]
354
+ },
355
+ {
356
+ type: "instance",
357
+ component: "Box",
358
+ label: "Viewport Container",
359
+ // absolute left-0 top-full flex justify-center
360
+ styles: [
361
+ tc.absolute(),
362
+ tc.left(0),
363
+ tc.top("full"),
364
+ tc.flex(),
365
+ tc.justify("center")
366
+ ].flat(),
367
+ children: [
368
+ {
369
+ type: "instance",
370
+ component: "NavigationMenuViewport",
371
+ /*
372
+ origin-top-center relative mt-1.5 w-full
373
+ overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg
374
+ h-[var(--radix-navigation-menu-viewport-height)]
375
+ w-[var(--radix-navigation-menu-viewport-width)]
376
+ // anims
377
+ [animation-duration:150ms!important] [transition-duration:150ms!important]
378
+ data-[state=open]:animate-in data-[state=closed]:animate-out
379
+ data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90
380
+ */
381
+ styles: [
382
+ tc.relative(),
383
+ tc.mt(1.5),
384
+ tc.overflow("hidden"),
385
+ tc.rounded("md"),
386
+ tc.border(),
387
+ tc.bg("popover"),
388
+ tc.text("popoverForeground"),
389
+ tc.shadow("lg"),
390
+ tc.property(
391
+ "height",
392
+ "--radix-navigation-menu-viewport-height"
393
+ ),
394
+ tc.property("width", "--radix-navigation-menu-viewport-width")
395
+ ].flat(),
396
+ children: []
397
+ }
398
+ ]
399
+ }
400
+ ]
401
+ }
402
+ ]
403
+ };
404
+ const metaNavigationMenuList = {
405
+ category: "hidden",
406
+ detachable: false,
407
+ type: "container",
408
+ icon: ListIcon,
409
+ requiredAncestors: ["NavigationMenu"],
410
+ presetStyle,
411
+ label: "Menu List"
412
+ };
413
+ const metaNavigationMenuItem = {
414
+ category: "hidden",
415
+ type: "container",
416
+ icon: ListItemIcon,
417
+ requiredAncestors: ["NavigationMenu"],
418
+ presetStyle,
419
+ indexWithinAncestor: "NavigationMenu",
420
+ label: "Menu Item"
421
+ };
422
+ const metaNavigationMenuTrigger = {
423
+ category: "hidden",
424
+ detachable: false,
425
+ stylable: false,
426
+ type: "container",
427
+ icon: TriggerIcon,
428
+ requiredAncestors: ["NavigationMenuItem"],
429
+ presetStyle,
430
+ label: "Menu Trigger"
431
+ };
432
+ const metaNavigationMenuContent = {
433
+ category: "hidden",
434
+ detachable: false,
435
+ type: "container",
436
+ icon: ContentIcon,
437
+ requiredAncestors: ["NavigationMenuItem"],
438
+ indexWithinAncestor: "NavigationMenu",
439
+ presetStyle,
440
+ label: "Menu Content"
441
+ };
442
+ const metaNavigationMenuLink = {
443
+ category: "hidden",
444
+ detachable: true,
445
+ type: "container",
446
+ stylable: false,
447
+ icon: BoxIcon,
448
+ // https://github.com/webstudio-is/webstudio-builder/issues/2193
449
+ // requiredAncestors: ["NavigationMenuContent", "NavigationMenuItem"],
450
+ // Temporary restrict to NavigationMenu
451
+ requiredAncestors: ["NavigationMenu"],
452
+ presetStyle,
453
+ label: "Accessible Link Wrapper"
454
+ };
455
+ const metaNavigationMenuViewport = {
456
+ category: "hidden",
457
+ detachable: true,
458
+ type: "container",
459
+ icon: ViewportIcon,
460
+ requiredAncestors: ["NavigationMenu"],
461
+ presetStyle,
462
+ label: "Menu Viewport"
463
+ };
464
+ const propsMetaNavigationMenu = {
465
+ props: propsNavigationMenu
466
+ };
467
+ const propsMetaNavigationMenuItem = {
468
+ props: propsNavigationMenuItem
469
+ };
470
+ const propsMetaNavigationMenuTrigger = {
471
+ props: propsNavigationMenuTrigger
472
+ };
473
+ const propsMetaNavigationMenuContent = {
474
+ props: propsNavigationMenuContent
475
+ };
476
+ const propsMetaNavigationMenuLink = {
477
+ props: propsNavigationMenuLink
478
+ };
479
+ const propsMetaNavigationMenuList = {
480
+ props: propsNavigationMenuList
481
+ };
482
+ const propsMetaNavigationMenuViewport = {
483
+ props: propsNavigationMenuViewport
484
+ };
485
+ export {
486
+ metaNavigationMenu,
487
+ metaNavigationMenuContent,
488
+ metaNavigationMenuItem,
489
+ metaNavigationMenuLink,
490
+ metaNavigationMenuList,
491
+ metaNavigationMenuTrigger,
492
+ metaNavigationMenuViewport,
493
+ propsMetaNavigationMenu,
494
+ propsMetaNavigationMenuContent,
495
+ propsMetaNavigationMenuItem,
496
+ propsMetaNavigationMenuLink,
497
+ propsMetaNavigationMenuList,
498
+ propsMetaNavigationMenuTrigger,
499
+ propsMetaNavigationMenuViewport
500
+ };
package/lib/popover.ws.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { PopoverIcon, TriggerIcon, ContentIcon } from "@webstudio-is/icons/svg";
2
2
  import {
3
3
  } from "@webstudio-is/react-sdk";
4
+ import { div } from "@webstudio-is/react-sdk/css-normalize";
4
5
  import * as tc from "./theme/tailwind-classes";
6
+ import { getButtonStyles } from "./theme/styles";
5
7
  import {
6
8
  propsPopover,
7
9
  propsPopoverContent,
8
10
  propsPopoverTrigger
9
11
  } from "./__generated__/popover.props";
10
- import { div } from "@webstudio-is/react-sdk/css-normalize";
11
- import { template as buttonTemplate } from "./button.ws";
12
12
  const presetStyle = {
13
13
  div
14
14
  };
@@ -28,9 +28,9 @@ const metaPopoverContent = {
28
28
  };
29
29
  const metaPopover = {
30
30
  category: "radix",
31
+ order: 6,
31
32
  type: "container",
32
33
  icon: PopoverIcon,
33
- order: 15,
34
34
  stylable: false,
35
35
  template: [
36
36
  {
@@ -57,15 +57,18 @@ const metaPopover = {
57
57
  {
58
58
  type: "instance",
59
59
  component: "PopoverTrigger",
60
- props: [],
61
- children: buttonTemplate({
62
- children: [{ type: "text", value: "Button" }]
63
- })
60
+ children: [
61
+ {
62
+ type: "instance",
63
+ component: "Button",
64
+ styles: getButtonStyles("outline"),
65
+ children: [{ type: "text", value: "Button" }]
66
+ }
67
+ ]
64
68
  },
65
69
  {
66
70
  type: "instance",
67
71
  component: "PopoverContent",
68
- props: [],
69
72
  /**
70
73
  * z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none
71
74
  **/
@@ -94,7 +97,7 @@ const metaPopover = {
94
97
  };
95
98
  const propsMetaPopover = {
96
99
  props: propsPopover,
97
- initialProps: ["open", "modal"]
100
+ initialProps: ["open"]
98
101
  };
99
102
  const propsMetaPopoverTrigger = {
100
103
  props: propsPopoverTrigger
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
+ };