@webstudio-is/sdk-components-react 0.70.0 → 0.72.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 (101) hide show
  1. package/lib/__generated__/link-block.props.js +1 -7
  2. package/lib/__generated__/link.props.js +1 -7
  3. package/lib/__generated__/rich-text-link.props.js +1 -7
  4. package/lib/__generated__/vimeo-play-button.props.js +414 -0
  5. package/lib/__generated__/vimeo-preview-image.props.js +442 -0
  6. package/lib/__generated__/vimeo-spinner.props.js +398 -0
  7. package/lib/__generated__/vimeo.props.js +555 -0
  8. package/lib/box.js +2 -1
  9. package/lib/cjs/__generated__/link-block.props.js +1 -7
  10. package/lib/cjs/__generated__/link.props.js +1 -7
  11. package/lib/cjs/__generated__/rich-text-link.props.js +1 -7
  12. package/lib/cjs/__generated__/vimeo-play-button.props.js +434 -0
  13. package/lib/cjs/__generated__/vimeo-preview-image.props.js +462 -0
  14. package/lib/cjs/__generated__/vimeo-spinner.props.js +418 -0
  15. package/lib/cjs/__generated__/vimeo.props.js +575 -0
  16. package/lib/cjs/box.js +2 -1
  17. package/lib/cjs/components.js +9 -1
  18. package/lib/cjs/image.ws.js +11 -7
  19. package/lib/cjs/link-block.ws.js +1 -8
  20. package/lib/cjs/link.ws.js +1 -1
  21. package/lib/cjs/metas.js +9 -1
  22. package/lib/cjs/props.js +9 -1
  23. package/lib/cjs/rich-text-link.ws.js +3 -10
  24. package/lib/cjs/vimeo-play-button.js +38 -0
  25. package/lib/cjs/vimeo-play-button.ws.js +44 -0
  26. package/lib/cjs/vimeo-preview-image.js +40 -0
  27. package/lib/cjs/vimeo-preview-image.ws.js +36 -0
  28. package/lib/cjs/vimeo-spinner.js +37 -0
  29. package/lib/cjs/vimeo-spinner.ws.js +43 -0
  30. package/lib/cjs/vimeo.js +294 -0
  31. package/lib/cjs/vimeo.ws.js +340 -0
  32. package/lib/components.js +9 -1
  33. package/lib/image.ws.js +11 -7
  34. package/lib/link-block.ws.js +1 -8
  35. package/lib/link.ws.js +1 -1
  36. package/lib/metas.js +9 -1
  37. package/lib/props.js +9 -1
  38. package/lib/rich-text-link.ws.js +3 -10
  39. package/lib/types/__generated__/vimeo-play-button.props.d.ts +2 -0
  40. package/lib/types/__generated__/vimeo-preview-image.props.d.ts +2 -0
  41. package/lib/types/__generated__/vimeo-spinner.props.d.ts +2 -0
  42. package/lib/types/__generated__/vimeo.props.d.ts +2 -0
  43. package/lib/types/box.d.ts +1 -1
  44. package/lib/types/components.d.ts +4 -0
  45. package/lib/types/image.ws.d.ts +8 -0
  46. package/lib/types/link-block.stories.d.ts +2 -6
  47. package/lib/types/link.d.ts +1 -3
  48. package/lib/types/link.stories.d.ts +2 -6
  49. package/lib/types/metas.d.ts +4 -0
  50. package/lib/types/props.d.ts +4 -0
  51. package/lib/types/rich-text-link.stories.d.ts +2 -6
  52. package/lib/types/vimeo-play-button.d.ts +6 -0
  53. package/lib/types/vimeo-play-button.stories.d.ts +9 -0
  54. package/lib/types/vimeo-play-button.ws.d.ts +3 -0
  55. package/lib/types/vimeo-preview-image.d.ts +6 -0
  56. package/lib/types/vimeo-preview-image.stories.d.ts +13 -0
  57. package/lib/types/vimeo-preview-image.ws.d.ts +3 -0
  58. package/lib/types/vimeo-spinner.d.ts +2 -0
  59. package/lib/types/vimeo-spinner.stories.d.ts +5 -0
  60. package/lib/types/vimeo-spinner.ws.d.ts +3 -0
  61. package/lib/types/vimeo.d.ts +73 -0
  62. package/lib/types/vimeo.stories.d.ts +71 -0
  63. package/lib/types/vimeo.ws.d.ts +3 -0
  64. package/lib/vimeo-play-button.js +21 -0
  65. package/lib/vimeo-play-button.ws.js +26 -0
  66. package/lib/vimeo-preview-image.js +23 -0
  67. package/lib/vimeo-preview-image.ws.js +20 -0
  68. package/lib/vimeo-spinner.js +20 -0
  69. package/lib/vimeo-spinner.ws.js +25 -0
  70. package/lib/vimeo.js +282 -0
  71. package/lib/vimeo.ws.js +322 -0
  72. package/package.json +8 -6
  73. package/src/LICENSE +21 -0
  74. package/src/__generated__/link-block.props.ts +1 -7
  75. package/src/__generated__/link.props.ts +1 -7
  76. package/src/__generated__/rich-text-link.props.ts +1 -7
  77. package/src/__generated__/vimeo-play-button.props.ts +459 -0
  78. package/src/__generated__/vimeo-preview-image.props.ts +487 -0
  79. package/src/__generated__/vimeo-spinner.props.ts +443 -0
  80. package/src/__generated__/vimeo.props.ts +621 -0
  81. package/src/box.tsx +1 -1
  82. package/src/components.ts +4 -0
  83. package/src/image.ws.tsx +11 -6
  84. package/src/link-block.ws.tsx +1 -8
  85. package/src/link.tsx +2 -7
  86. package/src/link.ws.tsx +1 -1
  87. package/src/metas.ts +4 -0
  88. package/src/props.ts +4 -0
  89. package/src/rich-text-link.ws.tsx +3 -11
  90. package/src/vimeo-play-button.stories.tsx +17 -0
  91. package/src/vimeo-play-button.tsx +24 -0
  92. package/src/vimeo-play-button.ws.ts +29 -0
  93. package/src/vimeo-preview-image.stories.tsx +17 -0
  94. package/src/vimeo-preview-image.tsx +30 -0
  95. package/src/vimeo-preview-image.ws.ts +22 -0
  96. package/src/vimeo-spinner.stories.tsx +17 -0
  97. package/src/vimeo-spinner.tsx +25 -0
  98. package/src/vimeo-spinner.ws.ts +27 -0
  99. package/src/vimeo.stories.tsx +17 -0
  100. package/src/vimeo.tsx +430 -0
  101. package/src/vimeo.ws.ts +326 -0
@@ -0,0 +1,326 @@
1
+ import { PlayIcon, SpinnerIcon, VimeoIcon } from "@webstudio-is/icons/svg";
2
+ import {
3
+ defaultStates,
4
+ type PresetStyle,
5
+ type WsComponentMeta,
6
+ type WsComponentPropsMeta,
7
+ } from "@webstudio-is/react-sdk";
8
+ import { div } from "@webstudio-is/react-sdk/css-normalize";
9
+ import { props } from "./__generated__/vimeo.props";
10
+ import { type VimeoOptions } from "./vimeo";
11
+
12
+ const presetStyle = {
13
+ div,
14
+ } satisfies PresetStyle<"div">;
15
+
16
+ export const meta: WsComponentMeta = {
17
+ category: "media",
18
+ type: "container",
19
+ label: "Vimeo",
20
+ order: 1,
21
+ icon: VimeoIcon,
22
+ states: defaultStates,
23
+ presetStyle,
24
+ template: [
25
+ {
26
+ type: "instance",
27
+ component: "Vimeo",
28
+ styles: [
29
+ {
30
+ property: "position",
31
+ value: { type: "keyword", value: "relative" },
32
+ },
33
+ {
34
+ property: "aspectRatio",
35
+ value: { type: "keyword", value: "640/360" },
36
+ },
37
+ {
38
+ property: "width",
39
+ value: { type: "unit", value: 100, unit: "%" },
40
+ },
41
+ ],
42
+ children: [
43
+ {
44
+ type: "instance",
45
+ component: "VimeoPreviewImage",
46
+ styles: [
47
+ {
48
+ property: "position",
49
+ value: { type: "keyword", value: "absolute" },
50
+ },
51
+ {
52
+ property: "objectPosition",
53
+ value: { type: "keyword", value: "cover" },
54
+ },
55
+ {
56
+ property: "width",
57
+ value: { type: "unit", value: 100, unit: "%" },
58
+ },
59
+ {
60
+ property: "height",
61
+ value: { type: "unit", value: 100, unit: "%" },
62
+ },
63
+ {
64
+ property: "borderTopLeftRadius",
65
+ value: { type: "unit", value: 20, unit: "px" },
66
+ },
67
+ {
68
+ property: "borderTopRightRadius",
69
+ value: { type: "unit", value: 20, unit: "px" },
70
+ },
71
+ {
72
+ property: "borderBottomLeftRadius",
73
+ value: { type: "unit", value: 20, unit: "px" },
74
+ },
75
+ {
76
+ property: "borderBottomRightRadius",
77
+ value: { type: "unit", value: 20, unit: "px" },
78
+ },
79
+ {
80
+ property: "objectPosition",
81
+ value: { type: "keyword", value: "cover" },
82
+ },
83
+ ],
84
+ children: [],
85
+ props: [
86
+ {
87
+ type: "string",
88
+ name: "alt",
89
+ value: "Vimeo video preview image",
90
+ },
91
+ ],
92
+ },
93
+ {
94
+ type: "instance",
95
+ component: "Box",
96
+ label: "Spinner",
97
+ styles: [
98
+ {
99
+ property: "position",
100
+ value: { type: "keyword", value: "absolute" },
101
+ },
102
+ {
103
+ property: "top",
104
+ value: { type: "unit", value: 50, unit: "%" },
105
+ },
106
+ {
107
+ property: "left",
108
+ value: { type: "unit", value: 50, unit: "%" },
109
+ },
110
+ {
111
+ property: "width",
112
+ value: { type: "unit", value: 70, unit: "px" },
113
+ },
114
+ {
115
+ property: "height",
116
+ value: { type: "unit", value: 70, unit: "px" },
117
+ },
118
+ {
119
+ property: "marginTop",
120
+ value: { type: "unit", value: -35, unit: "px" },
121
+ },
122
+ {
123
+ property: "marginLeft",
124
+ value: { type: "unit", value: -35, unit: "px" },
125
+ },
126
+ ],
127
+ children: [
128
+ {
129
+ type: "instance",
130
+ component: "HtmlEmbed",
131
+ label: "Spinner SVG",
132
+ props: [
133
+ {
134
+ type: "string",
135
+ name: "code",
136
+ value: SpinnerIcon,
137
+ },
138
+ ],
139
+ children: [],
140
+ },
141
+ ],
142
+ },
143
+ {
144
+ type: "instance",
145
+ component: "VimeoPlayButton",
146
+ props: [
147
+ {
148
+ type: "string",
149
+ name: "aria-label",
150
+ value: "Play button",
151
+ },
152
+ ],
153
+ styles: [
154
+ {
155
+ property: "position",
156
+ value: { type: "keyword", value: "absolute" },
157
+ },
158
+ {
159
+ property: "width",
160
+ value: { type: "unit", value: 140, unit: "px" },
161
+ },
162
+ {
163
+ property: "height",
164
+ value: { type: "unit", value: 80, unit: "px" },
165
+ },
166
+ {
167
+ property: "top",
168
+ value: { type: "unit", value: 50, unit: "%" },
169
+ },
170
+ {
171
+ property: "left",
172
+ value: { type: "unit", value: 50, unit: "%" },
173
+ },
174
+ {
175
+ property: "marginTop",
176
+ value: { type: "unit", value: -40, unit: "px" },
177
+ },
178
+ {
179
+ property: "marginLeft",
180
+ value: { type: "unit", value: -70, unit: "px" },
181
+ },
182
+ {
183
+ property: "display",
184
+ value: { type: "keyword", value: "flex" },
185
+ },
186
+ {
187
+ property: "alignItems",
188
+ value: { type: "keyword", value: "center" },
189
+ },
190
+ {
191
+ property: "justifyContent",
192
+ value: { type: "keyword", value: "center" },
193
+ },
194
+ {
195
+ property: "borderTopStyle",
196
+ value: { type: "keyword", value: "none" },
197
+ },
198
+ {
199
+ property: "borderRightStyle",
200
+ value: { type: "keyword", value: "none" },
201
+ },
202
+ {
203
+ property: "borderBottomStyle",
204
+ value: { type: "keyword", value: "none" },
205
+ },
206
+ {
207
+ property: "borderLeftStyle",
208
+ value: { type: "keyword", value: "none" },
209
+ },
210
+ {
211
+ property: "borderTopLeftRadius",
212
+ value: { type: "unit", value: 5, unit: "px" },
213
+ },
214
+ {
215
+ property: "borderTopRightRadius",
216
+ value: { type: "unit", value: 5, unit: "px" },
217
+ },
218
+ {
219
+ property: "borderBottomLeftRadius",
220
+ value: { type: "unit", value: 5, unit: "px" },
221
+ },
222
+ {
223
+ property: "borderBottomRightRadius",
224
+ value: { type: "unit", value: 5, unit: "px" },
225
+ },
226
+ {
227
+ property: "cursor",
228
+ value: { type: "keyword", value: "pointer" },
229
+ },
230
+ {
231
+ property: "backgroundColor",
232
+ value: {
233
+ type: "rgb",
234
+ r: 18,
235
+ g: 18,
236
+ b: 18,
237
+ alpha: 1,
238
+ },
239
+ },
240
+ {
241
+ property: "color",
242
+ value: {
243
+ type: "rgb",
244
+ r: 255,
245
+ g: 255,
246
+ b: 255,
247
+ alpha: 1,
248
+ },
249
+ },
250
+ {
251
+ state: ":hover",
252
+ property: "backgroundColor",
253
+ value: {
254
+ type: "rgb",
255
+ r: 0,
256
+ g: 173,
257
+ b: 239,
258
+ alpha: 1,
259
+ },
260
+ },
261
+ ],
262
+ children: [
263
+ {
264
+ type: "instance",
265
+ component: "Box",
266
+ label: "Play Icon",
267
+ styles: [
268
+ {
269
+ property: "width",
270
+ value: { type: "unit", value: 60, unit: "px" },
271
+ },
272
+ {
273
+ property: "height",
274
+ value: { type: "unit", value: 60, unit: "px" },
275
+ },
276
+ ],
277
+ props: [
278
+ {
279
+ type: "string",
280
+ name: "aria-hidden",
281
+ value: "true",
282
+ },
283
+ ],
284
+ children: [
285
+ {
286
+ type: "instance",
287
+ component: "HtmlEmbed",
288
+ label: "Play SVG",
289
+ props: [
290
+ {
291
+ type: "string",
292
+ name: "code",
293
+ value: PlayIcon,
294
+ },
295
+ ],
296
+ children: [],
297
+ },
298
+ ],
299
+ },
300
+ ],
301
+ },
302
+ ],
303
+ },
304
+ ],
305
+ };
306
+
307
+ const initialProps: Array<keyof VimeoOptions> = [
308
+ "url",
309
+ "quality",
310
+ "showPreview",
311
+ "autoplay",
312
+ "backgroundMode",
313
+ "doNotTrack",
314
+ "loop",
315
+ "muted",
316
+ "showPortrait",
317
+ "showByline",
318
+ "showTitle",
319
+ "showControls",
320
+ "controlsColor",
321
+ ];
322
+
323
+ export const propsMeta: WsComponentPropsMeta = {
324
+ props,
325
+ initialProps,
326
+ };