@webstudio-is/sdk-components-react-radix 0.0.0-c1d6247 → 0.0.0-ca00e2a

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 (48) hide show
  1. package/lib/__generated__/accordion.props.js +15 -2582
  2. package/lib/__generated__/checkbox.props.js +5 -1071
  3. package/lib/__generated__/collapsible.props.js +7 -1012
  4. package/lib/__generated__/dialog.props.js +10 -2585
  5. package/lib/__generated__/label.props.js +2 -517
  6. package/lib/__generated__/navigation-menu.props.js +13 -3625
  7. package/lib/__generated__/popover.props.js +5 -508
  8. package/lib/__generated__/radio-group.props.js +19 -1568
  9. package/lib/__generated__/select.props.js +42 -3615
  10. package/lib/__generated__/switch.props.js +5 -1071
  11. package/lib/__generated__/tabs.props.js +16 -2072
  12. package/lib/__generated__/tooltip.props.js +6 -503
  13. package/lib/accordion.js +24 -23
  14. package/lib/accordion.template.js +12 -12
  15. package/lib/accordion.ws.js +67 -82
  16. package/lib/checkbox.js +2 -2
  17. package/lib/checkbox.template.js +10 -10
  18. package/lib/checkbox.ws.js +21 -21
  19. package/lib/collapsible.js +3 -3
  20. package/lib/collapsible.ws.js +30 -37
  21. package/lib/dialog.template.js +19 -19
  22. package/lib/dialog.ws.js +85 -114
  23. package/lib/label.template.js +3 -3
  24. package/lib/label.ws.js +8 -9
  25. package/lib/navigation-menu.js +21 -20
  26. package/lib/navigation-menu.template.js +8 -8
  27. package/lib/navigation-menu.ws.js +82 -99
  28. package/lib/popover.ws.js +31 -38
  29. package/lib/radio-group.js +2 -2
  30. package/lib/radio-group.ws.js +37 -43
  31. package/lib/select.js +4 -6
  32. package/lib/select.ws.js +91 -127
  33. package/lib/shared/meta.js +13 -0
  34. package/lib/shared/preset-styles.js +29 -29
  35. package/lib/shared/theme.js +25 -68
  36. package/lib/sheet.template.js +32 -32
  37. package/lib/switch.js +2 -2
  38. package/lib/switch.template.js +9 -9
  39. package/lib/switch.ws.js +25 -25
  40. package/lib/tabs.js +41 -40
  41. package/lib/tabs.template.js +15 -15
  42. package/lib/tabs.ws.js +45 -58
  43. package/lib/tooltip.ws.js +32 -39
  44. package/lib/types/select.d.ts +3 -3
  45. package/lib/types/shared/meta.d.ts +1 -0
  46. package/lib/types/shared/preset-styles.d.ts +2 -2
  47. package/lib/types/shared/proxy.d.ts +1 -0
  48. package/package.json +21 -21
@@ -1,77 +1,61 @@
1
- import { AccordionIcon as t, ItemIcon as e, HeaderIcon as n, TriggerIcon as r, ContentIcon as c } from "@webstudio-is/icons/svg";
2
- import { defaultStates as i } from "@webstudio-is/sdk";
3
- import { h3 as a, button as p, div as s } from "@webstudio-is/sdk/normalize.css";
1
+ import { AccordionIcon as t, ItemIcon as n, HeaderIcon as r, TriggerIcon as c, ContentIcon as i } from "@webstudio-is/icons/svg";
2
+ import { defaultStates as p } from "@webstudio-is/sdk";
3
+ import { div as e, h3 as a, button as s } from "@webstudio-is/sdk/normalize.css";
4
+ import { radix as o } from "./shared/meta.js";
4
5
  import { buttonReset as d } from "./shared/preset-styles.js";
5
- import { propsAccordion as m, propsAccordionItem as l, propsAccordionHeader as A, propsAccordionTrigger as I, propsAccordionContent as g } from "./__generated__/accordion.props.js";
6
- const o = {
7
- div: s
8
- }, f = {
9
- type: "container",
6
+ import { propsAccordion as l, propsAccordionItem as m, propsAccordionHeader as A, propsAccordionTrigger as g, propsAccordionContent as y } from "./__generated__/accordion.props.js";
7
+ const v = {
10
8
  icon: t,
11
- presetStyle: o,
12
- constraints: [
13
- {
14
- relation: "descendant",
15
- component: { $eq: "AccordionItem" }
16
- }
17
- ]
18
- }, v = {
19
- type: "container",
9
+ contentModel: {
10
+ category: "instance",
11
+ children: ["instance"],
12
+ descendants: [o.AccordionItem]
13
+ },
14
+ presetStyle: {
15
+ div: e
16
+ }
17
+ }, x = {
20
18
  label: "Item",
21
- icon: e,
22
- constraints: [
23
- {
24
- relation: "ancestor",
25
- component: { $eq: "Accordion" }
26
- },
27
- {
28
- relation: "descendant",
29
- component: { $eq: "AccordionHeader" }
30
- },
31
- {
32
- relation: "descendant",
33
- component: { $eq: "AccordionContent" }
34
- }
35
- ],
36
- indexWithinAncestor: "Accordion",
37
- presetStyle: o
38
- }, H = {
39
- type: "container",
40
- label: "Item Header",
41
19
  icon: n,
42
- constraints: [
43
- {
44
- relation: "ancestor",
45
- component: { $eq: "AccordionItem" }
46
- },
47
- {
48
- relation: "descendant",
49
- component: { $eq: "AccordionTrigger" }
50
- }
51
- ],
20
+ indexWithinAncestor: o.Accordion,
21
+ contentModel: {
22
+ category: "none",
23
+ children: ["instance"],
24
+ descendants: [o.AccordionHeader, o.AccordionContent]
25
+ },
26
+ presetStyle: {
27
+ div: e
28
+ }
29
+ }, C = {
30
+ label: "Item Header",
31
+ icon: r,
32
+ contentModel: {
33
+ category: "none",
34
+ children: ["instance"],
35
+ descendants: [o.AccordionTrigger]
36
+ },
52
37
  presetStyle: {
53
38
  h3: [
54
39
  ...a,
55
40
  {
56
- property: "marginTop",
41
+ property: "margin-top",
57
42
  value: { type: "unit", unit: "px", value: 0 }
58
43
  },
59
44
  {
60
- property: "marginBottom",
45
+ property: "margin-bottom",
61
46
  value: { type: "unit", unit: "px", value: 0 }
62
47
  }
63
48
  ]
64
49
  }
65
- }, T = {
66
- type: "container",
50
+ }, H = {
67
51
  label: "Item Trigger",
68
- icon: r,
69
- constraints: {
70
- relation: "ancestor",
71
- component: { $eq: "AccordionHeader" }
52
+ icon: c,
53
+ contentModel: {
54
+ category: "none",
55
+ children: ["instance", "rich-text"]
72
56
  },
73
57
  states: [
74
- ...i,
58
+ ...p,
75
59
  {
76
60
  category: "component-states",
77
61
  label: "Open",
@@ -79,39 +63,40 @@ const o = {
79
63
  }
80
64
  ],
81
65
  presetStyle: {
82
- button: [p, d].flat()
66
+ button: [s, d].flat()
83
67
  }
84
- }, C = {
85
- type: "container",
68
+ }, S = {
86
69
  label: "Item Content",
87
- icon: c,
88
- constraints: {
89
- relation: "ancestor",
90
- component: { $eq: "AccordionItem" }
70
+ icon: i,
71
+ contentModel: {
72
+ category: "none",
73
+ children: ["instance", "rich-text"]
91
74
  },
92
- presetStyle: o
93
- }, M = {
94
- props: m,
95
- initialProps: ["value", "collapsible"]
96
- }, x = {
75
+ presetStyle: {
76
+ div: e
77
+ }
78
+ }, T = {
97
79
  props: l,
80
+ initialProps: ["value", "collapsible"]
81
+ }, P = {
82
+ props: m,
98
83
  initialProps: ["value"]
99
- }, S = {
84
+ }, O = {
100
85
  props: A
101
- }, h = {
102
- props: I
103
- }, P = {
86
+ }, R = {
104
87
  props: g
88
+ }, W = {
89
+ props: y
105
90
  };
106
91
  export {
107
- f as metaAccordion,
108
- C as metaAccordionContent,
109
- H as metaAccordionHeader,
110
- v as metaAccordionItem,
111
- T as metaAccordionTrigger,
112
- M as propsMetaAccordion,
113
- P as propsMetaAccordionContent,
114
- S as propsMetaAccordionHeader,
115
- x as propsMetaAccordionItem,
116
- h as propsMetaAccordionTrigger
92
+ v as metaAccordion,
93
+ S as metaAccordionContent,
94
+ C as metaAccordionHeader,
95
+ x as metaAccordionItem,
96
+ H as metaAccordionTrigger,
97
+ T as propsMetaAccordion,
98
+ W as propsMetaAccordionContent,
99
+ O as propsMetaAccordionHeader,
100
+ P as propsMetaAccordionItem,
101
+ R as propsMetaAccordionTrigger
117
102
  };
package/lib/checkbox.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx as c } from "react/jsx-runtime";
2
2
  import { forwardRef as f } from "react";
3
- import { Root as m, Indicator as d } from "@radix-ui/react-checkbox";
4
- const p = f(({ checked: o, defaultChecked: r, ...t }, e) => /* @__PURE__ */ c(m, { ...t, ref: e, defaultChecked: o ?? r })), x = d;
3
+ import { Indicator as m, Root as d } from "@radix-ui/react-checkbox";
4
+ const p = f(({ checked: o, defaultChecked: r, ...t }, e) => /* @__PURE__ */ c(d, { ...t, ref: e, defaultChecked: o ?? r })), x = m;
5
5
  export {
6
6
  p as Checkbox,
7
7
  x as CheckboxIndicator
@@ -1,8 +1,8 @@
1
1
  import { jsxs as c, jsx as e } from "react/jsx-runtime";
2
2
  import { CheckMarkIcon as a } from "@webstudio-is/icons/svg";
3
- import { css as o, $ as t, PlaceholderValue as l } from "@webstudio-is/template";
3
+ import { $ as t, css as o, PlaceholderValue as l } from "@webstudio-is/template";
4
4
  import { radix as r } from "./shared/proxy.js";
5
- import { spacing as s, height as d, width as n, borderRadius as h, borderWidth as b, colors as i, boxShadow as m, opacity as p } from "./shared/theme.js";
5
+ import { height as s, width as d, borderRadius as n, borderWidth as h, colors as i, boxShadow as b, opacity as m, spacing as p } from "./shared/theme.js";
6
6
  const y = {
7
7
  category: "radix",
8
8
  description: "Use within a form to allow your users to toggle between checked and not checked. Group checkboxes by matching their “Name” properties. Unlike radios, any number of checkboxes in a group can be checked.",
@@ -13,7 +13,7 @@ const y = {
13
13
  "ws:label": "Checkbox Field",
14
14
  "ws:style": o`
15
15
  display: flex;
16
- gap: ${s[2]};
16
+ gap: ${p[2]};
17
17
  align-items: center;
18
18
  `,
19
19
  children: [
@@ -21,18 +21,18 @@ const y = {
21
21
  r.Checkbox,
22
22
  {
23
23
  "ws:style": o`
24
- height: ${d[4]};
25
- width: ${n[4]};
24
+ height: ${s[4]};
25
+ width: ${d[4]};
26
26
  flex-shrink: 0;
27
- border-radius: ${h.sm};
28
- border: ${b.DEFAULT} solid ${i.primary};
27
+ border-radius: ${n.sm};
28
+ border: ${h.DEFAULT} solid ${i.primary};
29
29
  &:focus-visible {
30
30
  outline: none;
31
- box-shadow: ${m.ring};
31
+ box-shadow: ${b.ring};
32
32
  }
33
33
  &:disabled {
34
34
  cursor: not-allowed;
35
- opacity: ${p[50]};
35
+ opacity: ${m[50]};
36
36
  }
37
37
  &[data-state="checked"] {
38
38
  background-color: ${i.primary};
@@ -53,7 +53,7 @@ const y = {
53
53
  )
54
54
  }
55
55
  ),
56
- /* @__PURE__ */ e(t.Text, { "ws:label": "Checkbox Label", tag: "span", children: new l("Checkbox") })
56
+ /* @__PURE__ */ e(t.Text, { "ws:label": "Checkbox Label", "ws:tag": "span", children: new l("Checkbox") })
57
57
  ]
58
58
  }
59
59
  )
@@ -1,15 +1,16 @@
1
1
  import { CheckboxCheckedIcon as t, TriggerIcon as o } from "@webstudio-is/icons/svg";
2
2
  import { defaultStates as e } from "@webstudio-is/sdk";
3
3
  import { button as c, span as n } from "@webstudio-is/sdk/normalize.css";
4
+ import { radix as r } from "./shared/meta.js";
4
5
  import { buttonReset as a } from "./shared/preset-styles.js";
5
- import { propsCheckbox as r, propsCheckboxIndicator as s } from "./__generated__/checkbox.props.js";
6
- const k = {
7
- type: "container",
8
- constraints: {
9
- relation: "descendant",
10
- component: { $eq: "CheckboxIndicator" }
11
- },
6
+ import { propsCheckbox as s, propsCheckboxIndicator as i } from "./__generated__/checkbox.props.js";
7
+ const b = {
12
8
  icon: t,
9
+ contentModel: {
10
+ category: "instance",
11
+ children: ["instance"],
12
+ descendants: [r.CheckboxIndicator]
13
+ },
13
14
  states: [
14
15
  ...e,
15
16
  {
@@ -26,26 +27,25 @@ const k = {
26
27
  presetStyle: {
27
28
  button: [c, a].flat()
28
29
  }
29
- }, l = {
30
- type: "container",
31
- constraints: {
32
- relation: "ancestor",
33
- component: { $eq: "Checkbox" }
34
- },
30
+ }, x = {
35
31
  icon: o,
32
+ contentModel: {
33
+ category: "none",
34
+ children: ["instance", "rich-text"]
35
+ },
36
36
  states: e,
37
37
  presetStyle: {
38
38
  span: n
39
39
  }
40
- }, b = {
41
- props: r,
42
- initialProps: ["id", "className", "name", "value", "required", "checked"]
43
40
  }, C = {
44
- props: s
41
+ props: s,
42
+ initialProps: ["id", "className", "name", "value", "required", "checked"]
43
+ }, f = {
44
+ props: i
45
45
  };
46
46
  export {
47
- k as metaCheckbox,
48
- l as metaCheckboxIndicator,
49
- b as propsMetaCheckbox,
50
- C as propsMetaCheckboxIndicator
47
+ b as metaCheckbox,
48
+ x as metaCheckboxIndicator,
49
+ C as propsMetaCheckbox,
50
+ f as propsMetaCheckboxIndicator
51
51
  };
@@ -1,11 +1,11 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { forwardRef as r, Children as a } from "react";
3
- import { Root as c, Trigger as p, Content as C } from "@radix-ui/react-collapsible";
3
+ import { Root as c, Content as p, Trigger as C } from "@radix-ui/react-collapsible";
4
4
  import { getClosestInstance as l } from "@webstudio-is/react-sdk/runtime";
5
5
  const h = c, g = r(({ children: e, ...o }, t) => {
6
6
  const n = a.toArray(e)[0];
7
- return /* @__PURE__ */ i(p, { asChild: !0, ref: t, ...o, children: n ?? /* @__PURE__ */ i("button", { children: "Add button" }) });
8
- }), u = C, s = "@webstudio-is/sdk-components-react-radix", P = {
7
+ return /* @__PURE__ */ i(C, { asChild: !0, ref: t, ...o, children: n ?? /* @__PURE__ */ i("button", { children: "Add button" }) });
8
+ }), u = p, s = "@webstudio-is/sdk-components-react-radix", P = {
9
9
  onNavigatorSelect: (e, o) => {
10
10
  for (const t of o.instancePath)
11
11
  if (t.component === `${s}:CollapsibleContent`) {
@@ -1,42 +1,35 @@
1
- import { CollapsibleIcon as e, TriggerIcon as n, ContentIcon as t } from "@webstudio-is/icons/svg";
1
+ import { CollapsibleIcon as n, TriggerIcon as t, ContentIcon as l } from "@webstudio-is/icons/svg";
2
2
  import { div as o } from "@webstudio-is/sdk/normalize.css";
3
- import { propsCollapsible as l, propsCollapsibleTrigger as p, propsCollapsibleContent as r } from "./__generated__/collapsible.props.js";
4
- const c = {
5
- type: "container",
6
- constraints: [
7
- {
8
- relation: "descendant",
9
- component: { $eq: "CollapsibleTrigger" }
10
- },
11
- {
12
- relation: "descendant",
13
- component: { $eq: "CollapsibleContent" }
14
- }
15
- ],
3
+ import { radix as e } from "./shared/meta.js";
4
+ import { propsCollapsible as r, propsCollapsibleTrigger as p, propsCollapsibleContent as i } from "./__generated__/collapsible.props.js";
5
+ const g = {
6
+ icon: n,
7
+ contentModel: {
8
+ category: "instance",
9
+ children: ["instance"],
10
+ descendants: [e.CollapsibleTrigger, e.CollapsibleContent]
11
+ },
16
12
  presetStyle: {
17
13
  div: o
18
- },
19
- icon: e
20
- }, C = {
21
- type: "container",
22
- icon: n,
23
- constraints: {
24
- relation: "ancestor",
25
- component: { $eq: "Collapsible" }
26
14
  }
27
15
  }, b = {
28
- type: "container",
16
+ icon: t,
17
+ contentModel: {
18
+ category: "none",
19
+ children: ["instance", "rich-text"]
20
+ }
21
+ }, d = {
22
+ icon: l,
23
+ contentModel: {
24
+ category: "none",
25
+ children: ["instance", "rich-text"]
26
+ },
29
27
  presetStyle: {
30
28
  div: o
31
- },
32
- icon: t,
33
- constraints: {
34
- relation: "ancestor",
35
- component: { $eq: "Collapsible" }
36
29
  }
37
30
  }, m = {
38
31
  props: {
39
- ...l,
32
+ ...r,
40
33
  onOpenChange: {
41
34
  type: "action",
42
35
  control: "action",
@@ -44,16 +37,16 @@ const c = {
44
37
  }
45
38
  },
46
39
  initialProps: ["open", "onOpenChange"]
47
- }, g = {
40
+ }, h = {
48
41
  props: p
49
- }, d = {
50
- props: r
42
+ }, y = {
43
+ props: i
51
44
  };
52
45
  export {
53
- c as metaCollapsible,
54
- b as metaCollapsibleContent,
55
- C as metaCollapsibleTrigger,
46
+ g as metaCollapsible,
47
+ d as metaCollapsibleContent,
48
+ b as metaCollapsibleTrigger,
56
49
  m as propsMetaCollapsible,
57
- d as propsMetaCollapsibleContent,
58
- g as propsMetaCollapsibleTrigger
50
+ y as propsMetaCollapsibleContent,
51
+ h as propsMetaCollapsibleTrigger
59
52
  };
@@ -2,7 +2,7 @@ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
2
  import { LargeXIcon as p } from "@webstudio-is/icons/svg";
3
3
  import { $ as l, PlaceholderValue as r, css as i } from "@webstudio-is/template";
4
4
  import { radix as o } from "./shared/proxy.js";
5
- import { zIndex as d, blur as m, width as u, spacing as t, maxWidth as w, borderWidth as $, colors as a, boxShadow as s, fontSize as c, lineHeight as y, letterSpacing as b, fontSizeLineHeight as x, borderRadius as f, opacity as g, height as h } from "./shared/theme.js";
5
+ import { fontSize as d, lineHeight as m, letterSpacing as u, fontSizeLineHeight as w, colors as a, spacing as t, borderRadius as $, opacity as s, height as c, boxShadow as g, width as y, zIndex as h, maxWidth as b, borderWidth as x, blur as f } from "./shared/theme.js";
6
6
  import { getButtonStyle as D } from "./shared/styles.js";
7
7
  const S = {
8
8
  category: "radix",
@@ -16,9 +16,9 @@ const S = {
16
16
  "ws:style": i`
17
17
  position: fixed;
18
18
  inset: 0;
19
- z-index: ${d[50]};
19
+ z-index: ${h[50]};
20
20
  background-color: rgb(255 255 255 / 0.8);
21
- backdrop-filter: ${m.sm};
21
+ backdrop-filter: ${f.sm};
22
22
  /* To allow positioning Content */
23
23
  display: flex;
24
24
  overflow: auto;
@@ -27,17 +27,17 @@ const S = {
27
27
  o.DialogContent,
28
28
  {
29
29
  "ws:style": i`
30
- width: ${u.full};
31
- z-index: ${d[50]};
30
+ width: ${y.full};
31
+ z-index: ${h[50]};
32
32
  display: flex;
33
33
  flex-direction: column;
34
34
  gap: ${t[4]};
35
35
  margin: auto;
36
- max-width: ${w.lg};
37
- border: ${$.DEFAULT} solid ${a.border};
36
+ max-width: ${b.lg};
37
+ border: ${x.DEFAULT} solid ${a.border};
38
38
  background-color: ${a.background};
39
39
  padding: ${t[6]};
40
- box-shadow: ${s.lg};
40
+ box-shadow: ${g.lg};
41
41
  position: relative;
42
42
  `,
43
43
  children: [
@@ -55,9 +55,9 @@ const S = {
55
55
  o.DialogTitle,
56
56
  {
57
57
  "ws:style": i`
58
- font-size: ${c.lg};
59
- line-height: ${y.none};
60
- letter-spacing: ${b.tight};
58
+ font-size: ${d.lg};
59
+ line-height: ${m.none};
60
+ letter-spacing: ${u.tight};
61
61
  margin: 0;
62
62
  `,
63
63
  children: new r("Dialog Title you can edit")
@@ -67,8 +67,8 @@ const S = {
67
67
  o.DialogDescription,
68
68
  {
69
69
  "ws:style": i`
70
- font-size: ${c.sm};
71
- line-height: ${x.sm};
70
+ font-size: ${d.sm};
71
+ line-height: ${w.sm};
72
72
  color: ${a.mutedForeground};
73
73
  margin: 0;
74
74
  `,
@@ -87,21 +87,21 @@ const S = {
87
87
  position: absolute;
88
88
  right: ${t[4]};
89
89
  top: ${t[4]};
90
- border-radius: ${f.sm};
91
- opacity: ${g[70]};
90
+ border-radius: ${$.sm};
91
+ opacity: ${s[70]};
92
92
  display: flex;
93
93
  align-items: center;
94
94
  justify-content: center;
95
- height: ${h[4]};
96
- width: ${h[4]};
95
+ height: ${c[4]};
96
+ width: ${c[4]};
97
97
  border: 0;
98
98
  background-color: transparent;
99
99
  outline: none;
100
100
  &:hover {
101
- opacity: ${g[100]};
101
+ opacity: ${s[100]};
102
102
  }
103
103
  &:focus-visible {
104
- box-shadow: ${s.ring};
104
+ box-shadow: ${g.ring};
105
105
  }
106
106
  `,
107
107
  children: /* @__PURE__ */ e(l.HtmlEmbed, { "ws:label": "Close Icon", code: p })