@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,171 @@
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 switch_ws_exports = {};
30
+ __export(switch_ws_exports, {
31
+ metaSwitch: () => metaSwitch,
32
+ metaSwitchThumb: () => metaSwitchThumb,
33
+ propsMetaSwitch: () => propsMetaSwitch,
34
+ propsMetaSwitchThumb: () => propsMetaSwitchThumb
35
+ });
36
+ module.exports = __toCommonJS(switch_ws_exports);
37
+ var import_svg = require("@webstudio-is/icons/svg");
38
+ var import_react_sdk = require("@webstudio-is/react-sdk");
39
+ var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
40
+ var tc = __toESM(require("./theme/tailwind-classes"), 1);
41
+ var import_styles = require("./theme/styles");
42
+ var import_switch = require("./__generated__/switch.props");
43
+ const metaSwitch = {
44
+ category: "radix",
45
+ order: 11,
46
+ type: "container",
47
+ icon: import_svg.SwitchIcon,
48
+ states: [
49
+ ...import_react_sdk.defaultStates,
50
+ {
51
+ label: "Checked",
52
+ selector: "[data-state=checked]",
53
+ category: "component-states"
54
+ },
55
+ {
56
+ label: "Unchecked",
57
+ selector: "[data-state=unchecked]",
58
+ category: "component-states"
59
+ }
60
+ ],
61
+ presetStyle: {
62
+ button: [import_css_normalize.button, import_styles.buttonReset].flat()
63
+ },
64
+ template: [
65
+ {
66
+ type: "instance",
67
+ component: "Switch",
68
+ dataSources: {
69
+ switchChecked: { type: "variable", initialValue: false }
70
+ },
71
+ props: [
72
+ {
73
+ name: "checked",
74
+ type: "dataSource",
75
+ dataSourceName: "switchChecked"
76
+ },
77
+ {
78
+ name: "onCheckedChange",
79
+ type: "action",
80
+ value: [
81
+ {
82
+ type: "execute",
83
+ args: ["checked"],
84
+ code: `switchChecked = checked`
85
+ }
86
+ ]
87
+ }
88
+ ],
89
+ // peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors
90
+ // focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background
91
+ // disabled:cursor-not-allowed disabled:opacity-50
92
+ // data-[state=checked]:bg-primary
93
+ // data-[state=unchecked]:bg-input
94
+ styles: [
95
+ // We are not supporting peer like styles yet
96
+ tc.inlineFlex(),
97
+ tc.property("height", "24px"),
98
+ tc.property("width", "44px"),
99
+ tc.shrink(0),
100
+ tc.cursor("pointer"),
101
+ tc.items("center"),
102
+ tc.rounded("full"),
103
+ tc.border(2),
104
+ tc.border("transparent"),
105
+ tc.transition("all"),
106
+ tc.focusVisible(
107
+ [tc.outline("none"), tc.ring("ring", 2, "background", 2)].flat()
108
+ ),
109
+ tc.disabled([tc.cursor("not-allowed"), tc.opacity(50)].flat()),
110
+ tc.state([tc.bg("primary")].flat(), "[data-state=checked]"),
111
+ tc.state([tc.bg("input")].flat(), "[data-state=unchecked]")
112
+ ].flat(),
113
+ children: [
114
+ {
115
+ type: "instance",
116
+ component: "SwitchThumb",
117
+ // pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform
118
+ // data-[state=checked]:translate-x-5
119
+ // data-[state=unchecked]:translate-x-0
120
+ styles: [
121
+ tc.pointerEvents("none"),
122
+ tc.block(),
123
+ tc.h(5),
124
+ tc.w(5),
125
+ tc.rounded("full"),
126
+ tc.bg("background"),
127
+ tc.shadow("lg"),
128
+ tc.transition("transform"),
129
+ tc.state(
130
+ [tc.property("transform", "translateX(20px)")].flat(),
131
+ "[data-state=checked]"
132
+ ),
133
+ tc.state(
134
+ [tc.property("transform", "translateX(0px)")].flat(),
135
+ "[data-state=unchecked]"
136
+ )
137
+ ].flat(),
138
+ children: []
139
+ }
140
+ ]
141
+ }
142
+ ]
143
+ };
144
+ const metaSwitchThumb = {
145
+ category: "hidden",
146
+ type: "container",
147
+ icon: import_svg.TriggerIcon,
148
+ states: [
149
+ ...import_react_sdk.defaultStates,
150
+ {
151
+ label: "Checked",
152
+ selector: "[data-state=checked]",
153
+ category: "component-states"
154
+ },
155
+ {
156
+ label: "Unchecked",
157
+ selector: "[data-state=unchecked]",
158
+ category: "component-states"
159
+ }
160
+ ],
161
+ presetStyle: {
162
+ span: import_css_normalize.span
163
+ }
164
+ };
165
+ const propsMetaSwitch = {
166
+ props: import_switch.propsSwitch,
167
+ initialProps: ["id", "checked", "name", "required"]
168
+ };
169
+ const propsMetaSwitchThumb = {
170
+ props: import_switch.propsSwitchThumb
171
+ };
package/lib/cjs/tabs.js CHANGED
@@ -31,10 +31,9 @@ var import_react_tabs = require("@radix-ui/react-tabs");
31
31
  var import_react_sdk = require("@webstudio-is/react-sdk");
32
32
  const Tabs = import_react_tabs.Root;
33
33
  const TabsList = import_react_tabs.List;
34
- const TabsTrigger = (0, import_react.forwardRef)(({ value, children, ...props }, ref) => {
35
- const firstChild = import_react.Children.toArray(children)[0];
34
+ const TabsTrigger = (0, import_react.forwardRef)(({ value, ...props }, ref) => {
36
35
  const index = (0, import_react_sdk.getIndexWithinAncestorFromComponentProps)(props);
37
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tabs.Trigger, { ref, value: value ?? index, asChild: true, ...props, children: firstChild ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { children: "Add button" }) });
36
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_tabs.Trigger, { ref, value: value ?? index, ...props });
38
37
  });
39
38
  const TabsContent = (0, import_react.forwardRef)(({ value, ...props }, ref) => {
40
39
  const index = (0, import_react_sdk.getIndexWithinAncestorFromComponentProps)(props);
@@ -41,6 +41,7 @@ module.exports = __toCommonJS(tabs_ws_exports);
41
41
  var import_svg = require("@webstudio-is/icons/svg");
42
42
  var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
43
43
  var tc = __toESM(require("./theme/tailwind-classes"), 1);
44
+ var import_styles = require("./theme/styles");
44
45
  var import_tabs = require("./__generated__/tabs.props");
45
46
  const presetStyle = {
46
47
  div: import_css_normalize.div
@@ -73,6 +74,7 @@ const tabsContentStyles = [
73
74
  ].flat();
74
75
  const metaTabs = {
75
76
  category: "radix",
77
+ order: 2,
76
78
  type: "container",
77
79
  icon: import_svg.TabsIcon,
78
80
  presetStyle,
@@ -112,26 +114,14 @@ const metaTabs = {
112
114
  {
113
115
  type: "instance",
114
116
  component: "TabsTrigger",
115
- children: [
116
- {
117
- type: "instance",
118
- component: "Button",
119
- styles: tabsTriggerStyles,
120
- children: [{ type: "text", value: "Account" }]
121
- }
122
- ]
117
+ styles: tabsTriggerStyles,
118
+ children: [{ type: "text", value: "Account" }]
123
119
  },
124
120
  {
125
121
  type: "instance",
126
122
  component: "TabsTrigger",
127
- children: [
128
- {
129
- type: "instance",
130
- component: "Button",
131
- styles: tabsTriggerStyles,
132
- children: [{ type: "text", value: "Password" }]
133
- }
134
- ]
123
+ styles: tabsTriggerStyles,
124
+ children: [{ type: "text", value: "Password" }]
135
125
  }
136
126
  ]
137
127
  },
@@ -167,7 +157,11 @@ const metaTabsTrigger = {
167
157
  icon: import_svg.TriggerIcon,
168
158
  requiredAncestors: ["TabsList"],
169
159
  invalidAncestors: ["TabsTrigger"],
170
- indexWithinAncestor: "Tabs"
160
+ indexWithinAncestor: "Tabs",
161
+ label: "Tab Trigger",
162
+ presetStyle: {
163
+ button: [import_css_normalize.button, import_styles.buttonReset].flat()
164
+ }
171
165
  };
172
166
  const metaTabsContent = {
173
167
  category: "hidden",
@@ -175,7 +169,8 @@ const metaTabsContent = {
175
169
  icon: import_svg.ContentIcon,
176
170
  requiredAncestors: ["Tabs"],
177
171
  indexWithinAncestor: "Tabs",
178
- presetStyle
172
+ presetStyle,
173
+ label: "Tab Content"
179
174
  };
180
175
  const propsMetaTabs = {
181
176
  props: import_tabs.propsTabs
@@ -0,0 +1,100 @@
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 styles_exports = {};
30
+ __export(styles_exports, {
31
+ buttonReset: () => buttonReset,
32
+ getButtonStyles: () => getButtonStyles
33
+ });
34
+ module.exports = __toCommonJS(styles_exports);
35
+ var tc = __toESM(require("./tailwind-classes"), 1);
36
+ const getButtonStyles = (variant, size = "default") => {
37
+ const styles = [
38
+ // 'inline-flex items-center justify-center rounded-md text-sm font-medium
39
+ // ring-offset-background transition-colors
40
+ // focus-visible:outline-none focus-visible:ring-2
41
+ // focus-visible:ring-ring focus-visible:ring-offset-2
42
+ // disabled:pointer-events-none disabled:opacity-50'
43
+ tc.border(0),
44
+ tc.bg("transparent"),
45
+ tc.inlineFlex(),
46
+ tc.items("center"),
47
+ tc.justify("center"),
48
+ tc.rounded("md"),
49
+ tc.text("sm"),
50
+ tc.font("medium"),
51
+ tc.focusVisible(
52
+ [tc.outline("none"), tc.ring("ring", 2, "background", 2)].flat()
53
+ ),
54
+ tc.state([tc.pointerEvents("none"), tc.opacity(50)].flat(), ":disabled")
55
+ ].flat();
56
+ let variantStyles = [];
57
+ if (variant === "ghost") {
58
+ variantStyles = [
59
+ tc.state([tc.bg("accent"), tc.text("accentForeground")].flat(), ":hover")
60
+ ].flat();
61
+ }
62
+ if (variant === "outline") {
63
+ variantStyles = [
64
+ tc.border(),
65
+ tc.border("input"),
66
+ tc.bg("background"),
67
+ tc.state(
68
+ [tc.bg("accent", 90), tc.text("accentForeground")].flat(),
69
+ ":hover"
70
+ )
71
+ ].flat();
72
+ }
73
+ let sizeStyles = [];
74
+ if (size === "icon") {
75
+ sizeStyles = [tc.h(10), tc.w(10)].flat();
76
+ }
77
+ if (size === "sm") {
78
+ sizeStyles = [tc.h(10), tc.px(3)].flat();
79
+ }
80
+ if (size === "default") {
81
+ sizeStyles = [tc.h(10), tc.px(4), tc.py(2)].flat();
82
+ }
83
+ return [...styles, ...variantStyles, ...sizeStyles];
84
+ };
85
+ const buttonReset = [
86
+ {
87
+ property: "backgroundColor",
88
+ value: { type: "keyword", value: "transparent" }
89
+ },
90
+ {
91
+ property: "backgroundImage",
92
+ value: { type: "keyword", value: "none" }
93
+ },
94
+ {
95
+ property: "cursor",
96
+ value: { type: "keyword", value: "pointer" }
97
+ },
98
+ tc.border(0),
99
+ tc.p(0)
100
+ ].flat();
@@ -19,13 +19,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var tailwind_classes_exports = {};
20
20
  __export(tailwind_classes_exports, {
21
21
  absolute: () => absolute,
22
+ aspect: () => aspect,
22
23
  backdropBlur: () => backdropBlur,
23
24
  bg: () => bg,
25
+ block: () => block,
24
26
  border: () => border,
25
27
  borderB: () => borderB,
26
28
  bottom: () => bottom,
27
29
  cursor: () => cursor,
28
30
  disabled: () => disabled,
31
+ duration: () => duration,
29
32
  fixed: () => fixed,
30
33
  flex: () => flex,
31
34
  focus: () => focus,
@@ -42,6 +45,8 @@ __export(tailwind_classes_exports, {
42
45
  justify: () => justify,
43
46
  leading: () => leading,
44
47
  left: () => left,
48
+ lineClamp: () => lineClamp,
49
+ list: () => list,
45
50
  m: () => m,
46
51
  maxW: () => maxW,
47
52
  mb: () => mb,
@@ -51,6 +56,7 @@ __export(tailwind_classes_exports, {
51
56
  mt: () => mt,
52
57
  mx: () => mx,
53
58
  my: () => my,
59
+ noUnderline: () => noUnderline,
54
60
  opacity: () => opacity,
55
61
  outline: () => outline,
56
62
  overflow: () => overflow,
@@ -59,6 +65,7 @@ __export(tailwind_classes_exports, {
59
65
  pl: () => pl,
60
66
  pointerEvents: () => pointerEvents,
61
67
  pr: () => pr,
68
+ property: () => property,
62
69
  pt: () => pt,
63
70
  px: () => px,
64
71
  py: () => py,
@@ -66,7 +73,9 @@ __export(tailwind_classes_exports, {
66
73
  right: () => right,
67
74
  ring: () => ring,
68
75
  rounded: () => rounded,
76
+ select: () => select,
69
77
  shadow: () => shadow,
78
+ shrink: () => shrink,
70
79
  state: () => state,
71
80
  text: () => text,
72
81
  top: () => top,
@@ -81,6 +90,18 @@ __export(tailwind_classes_exports, {
81
90
  module.exports = __toCommonJS(tailwind_classes_exports);
82
91
  var import_tailwind_theme = require("./tailwind-theme");
83
92
  var import_css_data = require("@webstudio-is/css-data");
93
+ const property = (property2, value) => {
94
+ if (value.startsWith("--")) {
95
+ return {
96
+ property: property2,
97
+ value: { type: "var", value: value.slice(2), fallbacks: [] }
98
+ };
99
+ }
100
+ return {
101
+ property: property2,
102
+ value: { type: "unparsed", value }
103
+ };
104
+ };
84
105
  const preflight = () => {
85
106
  const borderColorValue = (0, import_css_data.parseCssValue)("color", (0, import_tailwind_theme.theme)("colors")["border"]);
86
107
  return [
@@ -217,11 +238,11 @@ const borderB = (borderWidthOrColor) => {
217
238
  }
218
239
  ];
219
240
  };
220
- const paddingProperty = (property) => (padding) => {
241
+ const paddingProperty = (property2) => (padding) => {
221
242
  const key = `${padding}`;
222
243
  const valueString = (0, import_tailwind_theme.theme)("padding")?.[key] ?? "0";
223
- const value = (0, import_css_data.parseCssValue)(property, valueString);
224
- return [{ property, value }];
244
+ const value = (0, import_css_data.parseCssValue)(property2, valueString);
245
+ return [{ property: property2, value }];
225
246
  };
226
247
  const pt = (padding) => {
227
248
  return paddingProperty("paddingTop")(padding);
@@ -244,11 +265,11 @@ const py = (padding) => {
244
265
  const p = (padding) => {
245
266
  return [px(padding), py(padding)].flat();
246
267
  };
247
- const marginProperty = (property) => (margin) => {
268
+ const marginProperty = (property2) => (margin) => {
248
269
  const key = `${margin}`;
249
270
  const valueString = (0, import_tailwind_theme.theme)("margin")?.[key] ?? "0";
250
- const value = (0, import_css_data.parseCssValue)(property, valueString);
251
- return [{ property, value }];
271
+ const value = (0, import_css_data.parseCssValue)(property2, valueString);
272
+ return [{ property: property2, value }];
252
273
  };
253
274
  const ml = (margin) => {
254
275
  return marginProperty("marginLeft")(margin);
@@ -316,11 +337,11 @@ const maxW = (spacing) => {
316
337
  const value = (0, import_css_data.parseCssValue)("width", valueString);
317
338
  return [{ property: "maxWidth", value }];
318
339
  };
319
- const positionStyle = (property, spacing) => {
340
+ const positionStyle = (property2, spacing) => {
320
341
  const key = `${spacing}`;
321
- const valueString = (0, import_tailwind_theme.theme)("spacing")?.[key] ?? "0";
322
- const value = (0, import_css_data.parseCssValue)(property, valueString);
323
- return { property, value };
342
+ const valueString = (0, import_tailwind_theme.theme)("inset")?.[key] ?? "0";
343
+ const value = (0, import_css_data.parseCssValue)(property2, valueString);
344
+ return { property: property2, value };
324
345
  };
325
346
  const top = (spacing) => [positionStyle("top", spacing)];
326
347
  const right = (spacing) => [positionStyle("right", spacing)];
@@ -332,6 +353,21 @@ const inset = (spacing) => [
332
353
  positionStyle("top", spacing),
333
354
  positionStyle("bottom", spacing)
334
355
  ];
356
+ const aspect = (value) => {
357
+ let unparsed = value;
358
+ if (value === "square") {
359
+ unparsed = "1 / 1";
360
+ }
361
+ if (value === "video") {
362
+ unparsed = "16 / 9";
363
+ }
364
+ return [
365
+ {
366
+ property: "aspectRatio",
367
+ value: { type: "unparsed", value: unparsed }
368
+ }
369
+ ];
370
+ };
335
371
  const backdropBlur = (blur) => {
336
372
  const valueString = (0, import_tailwind_theme.theme)("blur")[blur];
337
373
  const value = {
@@ -340,6 +376,22 @@ const backdropBlur = (blur) => {
340
376
  };
341
377
  return [{ property: "backdropFilter", value }];
342
378
  };
379
+ const list = (listStyle) => {
380
+ const valueString = (0, import_tailwind_theme.theme)("listStyleType")[listStyle];
381
+ const value = (0, import_css_data.parseCssValue)("listStyleType", valueString);
382
+ return [{ property: "listStyleType", value }];
383
+ };
384
+ const select = (selectValue) => {
385
+ return [
386
+ {
387
+ property: "userSelect",
388
+ value: {
389
+ type: "keyword",
390
+ value: "none"
391
+ }
392
+ }
393
+ ];
394
+ };
343
395
  const bg = (color, alpha) => {
344
396
  const value = (0, import_css_data.parseCssValue)("backgroundColor", (0, import_tailwind_theme.theme)("colors")[color]);
345
397
  if (alpha !== void 0 && value.type === "rgb") {
@@ -411,6 +463,9 @@ const inlineFlex = () => {
411
463
  { property: "display", value: { type: "keyword", value: "inline-flex" } }
412
464
  ];
413
465
  };
466
+ const block = () => {
467
+ return [{ property: "display", value: { type: "keyword", value: "block" } }];
468
+ };
414
469
  const flexDirection = { row: "row", col: "column" };
415
470
  const flex = (flexParam) => {
416
471
  if (flexParam === void 0) {
@@ -494,11 +549,15 @@ const grow = () => {
494
549
  return [
495
550
  {
496
551
  property: "flexGrow",
497
- value: {
498
- type: "unit",
499
- value: 1,
500
- unit: "number"
501
- }
552
+ value: { type: "unit", value: 1, unit: "number" }
553
+ }
554
+ ];
555
+ };
556
+ const shrink = (value) => {
557
+ return [
558
+ {
559
+ property: "flexGrow",
560
+ value: { type: "unit", value, unit: "number" }
502
561
  }
503
562
  ];
504
563
  };
@@ -511,6 +570,40 @@ const gap = (gapValue) => {
511
570
  { property: "columnGap", value }
512
571
  ];
513
572
  };
573
+ const lineClamp = (lineClampValue) => {
574
+ const key = `${lineClampValue}`;
575
+ const valueString = (0, import_tailwind_theme.theme)("lineClamp")?.[key];
576
+ return [
577
+ {
578
+ property: "overflow",
579
+ value: {
580
+ type: "keyword",
581
+ value: "hidden"
582
+ }
583
+ },
584
+ {
585
+ property: "display",
586
+ value: {
587
+ type: "keyword",
588
+ value: "-webkit-box"
589
+ }
590
+ },
591
+ {
592
+ property: "-webkit-box-orient",
593
+ value: {
594
+ type: "keyword",
595
+ value: "vertical"
596
+ }
597
+ },
598
+ {
599
+ property: "-webkit-line-clamp",
600
+ value: {
601
+ type: "keyword",
602
+ value: valueString
603
+ }
604
+ }
605
+ ];
606
+ };
514
607
  const leading = (lineHeight) => {
515
608
  const key = `${lineHeight}`;
516
609
  const valueString = (0, import_tailwind_theme.theme)("lineHeight")[key];
@@ -578,6 +671,14 @@ const text = (sizeOrColor) => {
578
671
  }
579
672
  ];
580
673
  };
674
+ const noUnderline = () => {
675
+ return [
676
+ {
677
+ property: "textDecorationLine",
678
+ value: { type: "keyword", value: "none" }
679
+ }
680
+ ];
681
+ };
581
682
  const underline = () => {
582
683
  return [
583
684
  {
@@ -666,7 +767,7 @@ const transition = (value) => {
666
767
  return [
667
768
  {
668
769
  property: "transitionProperty",
669
- value: { type: "keyword", value: "all" }
770
+ value: { type: "keyword", value }
670
771
  },
671
772
  {
672
773
  property: "transitionTimingFunction",
@@ -678,6 +779,14 @@ const transition = (value) => {
678
779
  }
679
780
  ];
680
781
  };
782
+ const duration = (ms) => {
783
+ return [
784
+ {
785
+ property: "transitionDuration",
786
+ value: { type: "unit", value: ms, unit: "ms" }
787
+ }
788
+ ];
789
+ };
681
790
  const hover = (value) => {
682
791
  return value.map((decl) => ({
683
792
  ...decl,
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(tailwind_colors_exports);
24
24
  const colors = {
25
25
  transparent: "transparent",
26
26
  current: "currentColor",
27
+ inherit: "inherit",
27
28
  popover: "rgb(255, 255, 255)",
28
29
  popoverForeground: "rgb(2, 8, 23)",
29
30
  border: "rgb(226, 232, 240)",
@@ -38,10 +38,10 @@ __export(tooltip_ws_exports, {
38
38
  module.exports = __toCommonJS(tooltip_ws_exports);
39
39
  var import_svg = require("@webstudio-is/icons/svg");
40
40
  var import_react_sdk = require("@webstudio-is/react-sdk");
41
+ var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
41
42
  var tc = __toESM(require("./theme/tailwind-classes"), 1);
42
43
  var import_tooltip = require("./__generated__/tooltip.props");
43
- var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
44
- var import_button = require("./button.ws");
44
+ var import_styles = require("./theme/styles");
45
45
  const presetStyle = {
46
46
  div: import_css_normalize.div
47
47
  };
@@ -61,9 +61,9 @@ const metaTooltipContent = {
61
61
  };
62
62
  const metaTooltip = {
63
63
  category: "radix",
64
+ order: 7,
64
65
  type: "container",
65
66
  icon: import_svg.TooltipIcon,
66
- order: 15,
67
67
  stylable: false,
68
68
  template: [
69
69
  {
@@ -90,15 +90,18 @@ const metaTooltip = {
90
90
  {
91
91
  type: "instance",
92
92
  component: "TooltipTrigger",
93
- props: [],
94
- children: (0, import_button.template)({
95
- children: [{ type: "text", value: "Button" }]
96
- })
93
+ children: [
94
+ {
95
+ type: "instance",
96
+ component: "Button",
97
+ styles: (0, import_styles.getButtonStyles)("outline"),
98
+ children: [{ type: "text", value: "Button" }]
99
+ }
100
+ ]
97
101
  },
98
102
  {
99
103
  type: "instance",
100
104
  component: "TooltipContent",
101
- props: [],
102
105
  /**
103
106
  * z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md
104
107
  **/