@webstudio-is/sdk-components-react 0.91.0 → 0.92.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 (387) hide show
  1. package/lib/__generated__/blockquote.props.js +2 -4
  2. package/lib/__generated__/body.props.js +2 -4
  3. package/lib/__generated__/bold.props.js +2 -4
  4. package/lib/__generated__/box.props.js +2 -4
  5. package/lib/__generated__/button.props.js +2 -4
  6. package/lib/__generated__/checkbox.props.js +2 -4
  7. package/lib/__generated__/code-text.props.js +2 -4
  8. package/lib/__generated__/form.props.js +2 -4
  9. package/lib/__generated__/fragment.props.js +2 -4
  10. package/lib/__generated__/heading.props.js +2 -4
  11. package/lib/__generated__/html-embed.props.js +2 -4
  12. package/lib/__generated__/image.props.js +2 -4
  13. package/lib/__generated__/input.props.js +2 -4
  14. package/lib/__generated__/italic.props.js +2 -4
  15. package/lib/__generated__/label.props.js +2 -4
  16. package/lib/__generated__/link.props.js +2 -4
  17. package/lib/__generated__/list-item.props.js +2 -4
  18. package/lib/__generated__/list.props.js +2 -4
  19. package/lib/__generated__/paragraph.props.js +2 -4
  20. package/lib/__generated__/radio-button.props.js +2 -4
  21. package/lib/__generated__/rich-text-link.props.js +2 -4
  22. package/lib/__generated__/separator.props.js +2 -4
  23. package/lib/__generated__/slot.props.js +2 -4
  24. package/lib/__generated__/span.props.js +2 -4
  25. package/lib/__generated__/subscript.props.js +2 -4
  26. package/lib/__generated__/superscript.props.js +2 -4
  27. package/lib/__generated__/text.props.js +2 -4
  28. package/lib/__generated__/textarea.props.js +2 -4
  29. package/lib/__generated__/vimeo-play-button.props.js +2 -4
  30. package/lib/__generated__/vimeo-preview-image.props.js +2 -4
  31. package/lib/__generated__/vimeo-spinner.props.js +2 -4
  32. package/lib/__generated__/vimeo.props.js +2 -4
  33. package/lib/blockquote.js +3 -6
  34. package/lib/blockquote.stories.js +11 -0
  35. package/lib/blockquote.ws.js +3 -6
  36. package/lib/body.js +3 -6
  37. package/lib/body.stories.js +11 -0
  38. package/lib/body.ws.js +3 -6
  39. package/lib/bold.js +3 -6
  40. package/lib/bold.stories.js +11 -0
  41. package/lib/bold.ws.js +3 -6
  42. package/lib/box.js +3 -6
  43. package/lib/box.stories.js +11 -0
  44. package/lib/box.ws.js +3 -6
  45. package/lib/button.js +3 -6
  46. package/lib/button.stories.js +11 -0
  47. package/lib/button.ws.js +3 -6
  48. package/lib/checkbox.js +3 -6
  49. package/lib/checkbox.ws.js +3 -6
  50. package/lib/code-text.js +3 -6
  51. package/lib/code-text.stories.js +11 -0
  52. package/lib/code-text.ws.js +3 -6
  53. package/lib/components.js +33 -66
  54. package/lib/form.js +3 -6
  55. package/lib/form.stories.js +11 -0
  56. package/lib/form.ws.js +3 -6
  57. package/lib/fragment.js +2 -4
  58. package/lib/fragment.ws.js +3 -6
  59. package/lib/heading.js +2 -4
  60. package/lib/heading.stories.js +11 -0
  61. package/lib/heading.ws.js +3 -6
  62. package/lib/html-embed.js +2 -4
  63. package/lib/html-embed.stories.js +11 -0
  64. package/lib/html-embed.ws.js +3 -6
  65. package/lib/image.js +3 -6
  66. package/lib/image.stories.js +7 -0
  67. package/lib/image.ws.js +4 -8
  68. package/lib/input.js +3 -6
  69. package/lib/input.stories.js +9 -0
  70. package/lib/input.ws.js +9 -11
  71. package/lib/italic.js +3 -6
  72. package/lib/italic.stories.js +11 -0
  73. package/lib/italic.ws.js +3 -6
  74. package/lib/label.js +3 -6
  75. package/lib/label.ws.js +3 -6
  76. package/lib/link.js +3 -6
  77. package/lib/link.stories.js +11 -0
  78. package/lib/link.ws.js +3 -6
  79. package/lib/list-item.js +3 -6
  80. package/lib/list-item.stories.js +11 -0
  81. package/lib/list-item.ws.js +3 -6
  82. package/lib/list.js +2 -4
  83. package/lib/list.stories.js +13 -0
  84. package/lib/list.ws.js +3 -6
  85. package/lib/metas.js +33 -66
  86. package/lib/paragraph.js +3 -6
  87. package/lib/paragraph.stories.js +11 -0
  88. package/lib/paragraph.ws.js +3 -6
  89. package/lib/props.js +33 -66
  90. package/lib/radio-button.js +3 -6
  91. package/lib/radio-button.ws.js +9 -11
  92. package/lib/rich-text-link.js +2 -4
  93. package/lib/rich-text-link.stories.js +11 -0
  94. package/lib/rich-text-link.ws.js +3 -6
  95. package/lib/separator.js +3 -6
  96. package/lib/separator.stories.js +7 -0
  97. package/lib/separator.ws.js +3 -6
  98. package/lib/slot.js +2 -4
  99. package/lib/slot.stories.js +11 -0
  100. package/lib/slot.ws.js +3 -6
  101. package/lib/span.js +3 -6
  102. package/lib/span.stories.js +11 -0
  103. package/lib/span.ws.js +3 -6
  104. package/lib/subscript.js +3 -6
  105. package/lib/subscript.stories.js +11 -0
  106. package/lib/subscript.ws.js +3 -6
  107. package/lib/superscript.js +3 -6
  108. package/lib/superscript.stories.js +11 -0
  109. package/lib/superscript.ws.js +3 -6
  110. package/lib/text.js +3 -6
  111. package/lib/text.stories.js +11 -0
  112. package/lib/text.ws.js +3 -6
  113. package/lib/textarea.js +3 -6
  114. package/lib/textarea.ws.js +9 -11
  115. package/lib/types/__generated__/blockquote.props.d.ts +1 -1
  116. package/lib/types/__generated__/body.props.d.ts +1 -1
  117. package/lib/types/__generated__/bold.props.d.ts +1 -1
  118. package/lib/types/__generated__/box.props.d.ts +1 -1
  119. package/lib/types/__generated__/button.props.d.ts +1 -1
  120. package/lib/types/__generated__/checkbox.props.d.ts +1 -1
  121. package/lib/types/__generated__/code-text.props.d.ts +1 -1
  122. package/lib/types/__generated__/form.props.d.ts +1 -1
  123. package/lib/types/__generated__/fragment.props.d.ts +1 -1
  124. package/lib/types/__generated__/heading.props.d.ts +1 -1
  125. package/lib/types/__generated__/html-embed.props.d.ts +1 -1
  126. package/lib/types/__generated__/image.props.d.ts +1 -1
  127. package/lib/types/__generated__/input.props.d.ts +1 -1
  128. package/lib/types/__generated__/italic.props.d.ts +1 -1
  129. package/lib/types/__generated__/label.props.d.ts +1 -1
  130. package/lib/types/__generated__/link.props.d.ts +1 -1
  131. package/lib/types/__generated__/list-item.props.d.ts +1 -1
  132. package/lib/types/__generated__/list.props.d.ts +1 -1
  133. package/lib/types/__generated__/paragraph.props.d.ts +1 -1
  134. package/lib/types/__generated__/radio-button.props.d.ts +1 -1
  135. package/lib/types/__generated__/rich-text-link.props.d.ts +1 -1
  136. package/lib/types/__generated__/separator.props.d.ts +1 -1
  137. package/lib/types/__generated__/slot.props.d.ts +1 -1
  138. package/lib/types/__generated__/span.props.d.ts +1 -1
  139. package/lib/types/__generated__/subscript.props.d.ts +1 -1
  140. package/lib/types/__generated__/superscript.props.d.ts +1 -1
  141. package/lib/types/__generated__/text.props.d.ts +1 -1
  142. package/lib/types/__generated__/textarea.props.d.ts +1 -1
  143. package/lib/types/__generated__/vimeo-play-button.props.d.ts +1 -1
  144. package/lib/types/__generated__/vimeo-preview-image.props.d.ts +1 -1
  145. package/lib/types/__generated__/vimeo-spinner.props.d.ts +1 -1
  146. package/lib/types/__generated__/vimeo.props.d.ts +1 -1
  147. package/lib/types/vimeo-preview-image.d.ts +1 -1
  148. package/lib/vimeo-play-button.js +3 -5
  149. package/lib/vimeo-play-button.stories.js +11 -0
  150. package/lib/vimeo-play-button.ws.js +3 -6
  151. package/lib/vimeo-preview-image.js +2 -4
  152. package/lib/vimeo-preview-image.stories.js +11 -0
  153. package/lib/vimeo-preview-image.ws.js +3 -6
  154. package/lib/vimeo-spinner.js +2 -4
  155. package/lib/vimeo-spinner.stories.js +11 -0
  156. package/lib/vimeo-spinner.ws.js +3 -6
  157. package/lib/vimeo.js +3 -6
  158. package/lib/vimeo.stories.js +11 -0
  159. package/lib/vimeo.ws.js +3 -6
  160. package/package.json +16 -20
  161. package/lib/cjs/__generated__/blockquote.props.js +0 -536
  162. package/lib/cjs/__generated__/body.props.js +0 -530
  163. package/lib/cjs/__generated__/bold.props.js +0 -530
  164. package/lib/cjs/__generated__/box.props.js +0 -549
  165. package/lib/cjs/__generated__/button.props.js +0 -586
  166. package/lib/cjs/__generated__/checkbox.props.js +0 -688
  167. package/lib/cjs/__generated__/code-text.props.js +0 -530
  168. package/lib/cjs/__generated__/form.props.js +0 -578
  169. package/lib/cjs/__generated__/fragment.props.js +0 -24
  170. package/lib/cjs/__generated__/heading.props.js +0 -538
  171. package/lib/cjs/__generated__/html-embed.props.js +0 -31
  172. package/lib/cjs/__generated__/image.props.js +0 -603
  173. package/lib/cjs/__generated__/input.props.js +0 -695
  174. package/lib/cjs/__generated__/italic.props.js +0 -530
  175. package/lib/cjs/__generated__/label.props.js +0 -542
  176. package/lib/cjs/__generated__/link.props.js +0 -584
  177. package/lib/cjs/__generated__/list-item.props.js +0 -530
  178. package/lib/cjs/__generated__/list.props.js +0 -556
  179. package/lib/cjs/__generated__/paragraph.props.js +0 -530
  180. package/lib/cjs/__generated__/radio-button.props.js +0 -688
  181. package/lib/cjs/__generated__/rich-text-link.props.js +0 -584
  182. package/lib/cjs/__generated__/separator.props.js +0 -530
  183. package/lib/cjs/__generated__/slot.props.js +0 -24
  184. package/lib/cjs/__generated__/span.props.js +0 -530
  185. package/lib/cjs/__generated__/subscript.props.js +0 -530
  186. package/lib/cjs/__generated__/superscript.props.js +0 -530
  187. package/lib/cjs/__generated__/text.props.js +0 -538
  188. package/lib/cjs/__generated__/textarea.props.js +0 -597
  189. package/lib/cjs/__generated__/vimeo-play-button.props.js +0 -585
  190. package/lib/cjs/__generated__/vimeo-preview-image.props.js +0 -602
  191. package/lib/cjs/__generated__/vimeo-spinner.props.js +0 -530
  192. package/lib/cjs/__generated__/vimeo.props.js +0 -687
  193. package/lib/cjs/blockquote.js +0 -32
  194. package/lib/cjs/blockquote.ws.js +0 -96
  195. package/lib/cjs/body.js +0 -29
  196. package/lib/cjs/body.ws.js +0 -52
  197. package/lib/cjs/bold.js +0 -29
  198. package/lib/cjs/bold.ws.js +0 -42
  199. package/lib/cjs/box.js +0 -32
  200. package/lib/cjs/box.ws.js +0 -54
  201. package/lib/cjs/button.js +0 -31
  202. package/lib/cjs/button.ws.js +0 -57
  203. package/lib/cjs/checkbox.js +0 -29
  204. package/lib/cjs/checkbox.ws.js +0 -78
  205. package/lib/cjs/code-text.js +0 -30
  206. package/lib/cjs/code-text.ws.js +0 -75
  207. package/lib/cjs/components.js +0 -86
  208. package/lib/cjs/form.js +0 -29
  209. package/lib/cjs/form.ws.js +0 -84
  210. package/lib/cjs/fragment.js +0 -29
  211. package/lib/cjs/fragment.ws.js +0 -33
  212. package/lib/cjs/heading.js +0 -31
  213. package/lib/cjs/heading.ws.js +0 -58
  214. package/lib/cjs/html-embed.js +0 -80
  215. package/lib/cjs/html-embed.ws.js +0 -51
  216. package/lib/cjs/image.js +0 -86
  217. package/lib/cjs/image.ws.js +0 -70
  218. package/lib/cjs/input.js +0 -29
  219. package/lib/cjs/input.ws.js +0 -63
  220. package/lib/cjs/italic.js +0 -29
  221. package/lib/cjs/italic.ws.js +0 -48
  222. package/lib/cjs/label.js +0 -29
  223. package/lib/cjs/label.ws.js +0 -61
  224. package/lib/cjs/link.js +0 -52
  225. package/lib/cjs/link.ws.js +0 -81
  226. package/lib/cjs/list-item.js +0 -32
  227. package/lib/cjs/list-item.ws.js +0 -53
  228. package/lib/cjs/list.js +0 -31
  229. package/lib/cjs/list.ws.js +0 -74
  230. package/lib/cjs/metas.js +0 -86
  231. package/lib/cjs/package.json +0 -1
  232. package/lib/cjs/paragraph.js +0 -29
  233. package/lib/cjs/paragraph.ws.js +0 -53
  234. package/lib/cjs/props.js +0 -86
  235. package/lib/cjs/radio-button.js +0 -29
  236. package/lib/cjs/radio-button.ws.js +0 -78
  237. package/lib/cjs/rich-text-link.js +0 -28
  238. package/lib/cjs/rich-text-link.ws.js +0 -32
  239. package/lib/cjs/separator.js +0 -32
  240. package/lib/cjs/separator.ws.js +0 -71
  241. package/lib/cjs/slot.js +0 -36
  242. package/lib/cjs/slot.ws.js +0 -37
  243. package/lib/cjs/span.js +0 -29
  244. package/lib/cjs/span.ws.js +0 -42
  245. package/lib/cjs/subscript.js +0 -29
  246. package/lib/cjs/subscript.ws.js +0 -42
  247. package/lib/cjs/superscript.js +0 -29
  248. package/lib/cjs/superscript.ws.js +0 -42
  249. package/lib/cjs/text.js +0 -32
  250. package/lib/cjs/text.ws.js +0 -58
  251. package/lib/cjs/textarea.js +0 -29
  252. package/lib/cjs/textarea.ws.js +0 -64
  253. package/lib/cjs/vimeo-play-button.js +0 -38
  254. package/lib/cjs/vimeo-play-button.ws.js +0 -46
  255. package/lib/cjs/vimeo-preview-image.js +0 -40
  256. package/lib/cjs/vimeo-preview-image.ws.js +0 -37
  257. package/lib/cjs/vimeo-spinner.js +0 -37
  258. package/lib/cjs/vimeo-spinner.ws.js +0 -44
  259. package/lib/cjs/vimeo.js +0 -294
  260. package/lib/cjs/vimeo.ws.js +0 -348
  261. package/src/LICENSE +0 -661
  262. package/src/__generated__/blockquote.props.ts +0 -580
  263. package/src/__generated__/body.props.ts +0 -573
  264. package/src/__generated__/bold.props.ts +0 -573
  265. package/src/__generated__/box.props.ts +0 -593
  266. package/src/__generated__/button.props.ts +0 -636
  267. package/src/__generated__/checkbox.props.ts +0 -748
  268. package/src/__generated__/code-text.props.ts +0 -573
  269. package/src/__generated__/form.props.ts +0 -628
  270. package/src/__generated__/fragment.props.ts +0 -3
  271. package/src/__generated__/heading.props.ts +0 -582
  272. package/src/__generated__/html-embed.props.ts +0 -10
  273. package/src/__generated__/image.props.ts +0 -648
  274. package/src/__generated__/input.props.ts +0 -756
  275. package/src/__generated__/italic.props.ts +0 -573
  276. package/src/__generated__/label.props.ts +0 -586
  277. package/src/__generated__/link.props.ts +0 -630
  278. package/src/__generated__/list-item.props.ts +0 -573
  279. package/src/__generated__/list.props.ts +0 -601
  280. package/src/__generated__/paragraph.props.ts +0 -573
  281. package/src/__generated__/radio-button.props.ts +0 -748
  282. package/src/__generated__/rich-text-link.props.ts +0 -630
  283. package/src/__generated__/separator.props.ts +0 -573
  284. package/src/__generated__/slot.props.ts +0 -3
  285. package/src/__generated__/span.props.ts +0 -573
  286. package/src/__generated__/subscript.props.ts +0 -573
  287. package/src/__generated__/superscript.props.ts +0 -573
  288. package/src/__generated__/text.props.ts +0 -582
  289. package/src/__generated__/textarea.props.ts +0 -645
  290. package/src/__generated__/vimeo-play-button.props.ts +0 -634
  291. package/src/__generated__/vimeo-preview-image.props.ts +0 -647
  292. package/src/__generated__/vimeo-spinner.props.ts +0 -573
  293. package/src/__generated__/vimeo.props.ts +0 -751
  294. package/src/blockquote.stories.tsx +0 -13
  295. package/src/blockquote.tsx +0 -18
  296. package/src/blockquote.ws.tsx +0 -84
  297. package/src/body.stories.tsx +0 -13
  298. package/src/body.tsx +0 -10
  299. package/src/body.ws.tsx +0 -37
  300. package/src/bold.stories.tsx +0 -13
  301. package/src/bold.tsx +0 -10
  302. package/src/bold.ws.tsx +0 -27
  303. package/src/box.stories.tsx +0 -13
  304. package/src/box.tsx +0 -32
  305. package/src/box.ws.ts +0 -54
  306. package/src/button.stories.tsx +0 -13
  307. package/src/button.tsx +0 -15
  308. package/src/button.ws.tsx +0 -43
  309. package/src/checkbox.tsx +0 -13
  310. package/src/checkbox.ws.tsx +0 -64
  311. package/src/code-text.stories.tsx +0 -13
  312. package/src/code-text.tsx +0 -17
  313. package/src/code-text.ws.tsx +0 -61
  314. package/src/components.ts +0 -32
  315. package/src/form.stories.tsx +0 -13
  316. package/src/form.tsx +0 -14
  317. package/src/form.ws.tsx +0 -69
  318. package/src/fragment.tsx +0 -11
  319. package/src/fragment.ws.ts +0 -15
  320. package/src/heading.stories.tsx +0 -13
  321. package/src/heading.tsx +0 -21
  322. package/src/heading.ws.tsx +0 -47
  323. package/src/html-embed.stories.tsx +0 -13
  324. package/src/html-embed.tsx +0 -99
  325. package/src/html-embed.ws.ts +0 -34
  326. package/src/image.stories.tsx +0 -9
  327. package/src/image.tsx +0 -91
  328. package/src/image.ws.tsx +0 -58
  329. package/src/input.stories.tsx +0 -11
  330. package/src/input.tsx +0 -13
  331. package/src/input.ws.tsx +0 -49
  332. package/src/italic.stories.tsx +0 -13
  333. package/src/italic.tsx +0 -10
  334. package/src/italic.ws.tsx +0 -33
  335. package/src/label.tsx +0 -10
  336. package/src/label.ws.tsx +0 -46
  337. package/src/link.stories.tsx +0 -13
  338. package/src/link.tsx +0 -43
  339. package/src/link.ws.tsx +0 -67
  340. package/src/list-item.stories.tsx +0 -13
  341. package/src/list-item.tsx +0 -18
  342. package/src/list-item.ws.tsx +0 -38
  343. package/src/list.stories.tsx +0 -14
  344. package/src/list.tsx +0 -27
  345. package/src/list.ws.tsx +0 -59
  346. package/src/metas.ts +0 -32
  347. package/src/paragraph.stories.tsx +0 -13
  348. package/src/paragraph.tsx +0 -10
  349. package/src/paragraph.ws.tsx +0 -38
  350. package/src/props.ts +0 -32
  351. package/src/radio-button.tsx +0 -13
  352. package/src/radio-button.ws.tsx +0 -64
  353. package/src/rich-text-link.stories.tsx +0 -13
  354. package/src/rich-text-link.tsx +0 -8
  355. package/src/rich-text-link.ws.tsx +0 -14
  356. package/src/separator.stories.tsx +0 -9
  357. package/src/separator.tsx +0 -18
  358. package/src/separator.ws.tsx +0 -58
  359. package/src/slot.stories.tsx +0 -13
  360. package/src/slot.tsx +0 -17
  361. package/src/slot.ws.ts +0 -20
  362. package/src/span.stories.tsx +0 -13
  363. package/src/span.tsx +0 -10
  364. package/src/span.ws.tsx +0 -27
  365. package/src/subscript.stories.tsx +0 -13
  366. package/src/subscript.tsx +0 -10
  367. package/src/subscript.ws.tsx +0 -27
  368. package/src/superscript.stories.tsx +0 -13
  369. package/src/superscript.tsx +0 -10
  370. package/src/superscript.ws.tsx +0 -27
  371. package/src/text.stories.tsx +0 -13
  372. package/src/text.tsx +0 -22
  373. package/src/text.ws.tsx +0 -44
  374. package/src/textarea.tsx +0 -13
  375. package/src/textarea.ws.tsx +0 -50
  376. package/src/vimeo-play-button.stories.tsx +0 -13
  377. package/src/vimeo-play-button.tsx +0 -24
  378. package/src/vimeo-play-button.ws.ts +0 -30
  379. package/src/vimeo-preview-image.stories.tsx +0 -13
  380. package/src/vimeo-preview-image.tsx +0 -30
  381. package/src/vimeo-preview-image.ws.ts +0 -22
  382. package/src/vimeo-spinner.stories.tsx +0 -13
  383. package/src/vimeo-spinner.tsx +0 -25
  384. package/src/vimeo-spinner.ws.ts +0 -28
  385. package/src/vimeo.stories.tsx +0 -13
  386. package/src/vimeo.tsx +0 -431
  387. package/src/vimeo.ws.ts +0 -335
package/lib/cjs/vimeo.js DELETED
@@ -1,294 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var vimeo_exports = {};
20
- __export(vimeo_exports, {
21
- Vimeo: () => Vimeo,
22
- VimeoContext: () => VimeoContext
23
- });
24
- module.exports = __toCommonJS(vimeo_exports);
25
- var import_jsx_runtime = require("react/jsx-runtime");
26
- var import_colord = require("colord");
27
- var import_react = require("react");
28
- var import_react_sdk = require("@webstudio-is/react-sdk");
29
- var import_shallow_equal = require("shallow-equal");
30
- const defaultTag = "div";
31
- const getUrl = (options) => {
32
- if (options.url === void 0) {
33
- return;
34
- }
35
- let url;
36
- try {
37
- const userUrl = new URL(options.url);
38
- url = new URL(IFRAME_CDN);
39
- url.pathname = `/video${userUrl.pathname}`;
40
- } catch {
41
- }
42
- if (url === void 0) {
43
- return;
44
- }
45
- let option;
46
- for (option in options) {
47
- const value = options[option];
48
- if (option === "url" || value === void 0) {
49
- continue;
50
- }
51
- url.searchParams.append(option, value.toString());
52
- }
53
- url.searchParams.set("autoplay", "true");
54
- if (typeof options.color === "string") {
55
- const color = (0, import_colord.colord)(options.color).toHex().replace("#", "");
56
- url.searchParams.set("color", color);
57
- }
58
- if (options.portrait) {
59
- url.searchParams.set("title", "true");
60
- }
61
- if (options.byline) {
62
- url.searchParams.set("portrait", "true");
63
- url.searchParams.set("title", "true");
64
- }
65
- return url.toString();
66
- };
67
- const preconnect = (url) => {
68
- const link = document.createElement("link");
69
- link.rel = "preconnect";
70
- link.href = url;
71
- link.crossOrigin = "true";
72
- document.head.append(link);
73
- };
74
- let warmed = false;
75
- const PLAYER_CDN = "https://f.vimeocdn.com";
76
- const IFRAME_CDN = "https://player.vimeo.com";
77
- const IMAGE_CDN = "https://i.vimeocdn.com";
78
- const warmConnections = () => {
79
- if (warmed) {
80
- return;
81
- }
82
- preconnect(PLAYER_CDN);
83
- preconnect(IFRAME_CDN);
84
- preconnect(IMAGE_CDN);
85
- warmed = true;
86
- };
87
- const createPlayer = (parent, options, callback) => {
88
- const url = getUrl(options);
89
- if (url === void 0) {
90
- return;
91
- }
92
- const iframe = document.createElement("iframe");
93
- iframe.setAttribute(
94
- "allow",
95
- "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture;"
96
- );
97
- iframe.setAttribute("frameborder", "0");
98
- iframe.setAttribute("allowfullscreen", "true");
99
- iframe.setAttribute("src", url);
100
- iframe.setAttribute(
101
- "style",
102
- "position: absolute; width: 100%; height: 100%; opacity: 0; transition: opacity 1s;"
103
- );
104
- iframe.addEventListener(
105
- "load",
106
- () => {
107
- iframe.style.opacity = "1";
108
- callback();
109
- },
110
- { once: true }
111
- );
112
- parent.appendChild(iframe);
113
- return () => {
114
- iframe.parentElement?.removeChild(iframe);
115
- };
116
- };
117
- const getVideoId = (url) => {
118
- try {
119
- const parsedUrl = new URL(url);
120
- const id = parsedUrl.pathname.split("/")[1];
121
- if (id === "" || id == null) {
122
- return;
123
- }
124
- return id;
125
- } catch {
126
- }
127
- };
128
- const loadPreviewImage = async (element, videoUrl) => {
129
- const videoId = getVideoId(videoUrl);
130
- const apiUrl = `https://vimeo.com/api/v2/video/${videoId}.json`;
131
- const response = (await (await fetch(apiUrl)).json())[0];
132
- const thumbnail = response.thumbnail_large;
133
- const imgId = thumbnail.substr(thumbnail.lastIndexOf("/") + 1).split("_")[0];
134
- const imageUrl = new URL(IMAGE_CDN);
135
- imageUrl.pathname = `/video/${imgId}.webp`;
136
- imageUrl.searchParams.append("mw", "1100");
137
- imageUrl.searchParams.append("mh", "619");
138
- imageUrl.searchParams.append("q", "70");
139
- return imageUrl;
140
- };
141
- const useVimeo = ({
142
- options,
143
- renderer,
144
- showPreview
145
- }) => {
146
- const [playerStatus, setPlayerStatus] = (0, import_react.useState)("initial");
147
- const elementRef = (0, import_react.useRef)(null);
148
- const [previewImageUrl, setPreviewImageUrl] = (0, import_react.useState)();
149
- (0, import_react.useEffect)(() => {
150
- setPlayerStatus(
151
- options.autoplay && renderer !== "canvas" ? "initialized" : "initial"
152
- );
153
- }, [options.autoplay, renderer]);
154
- (0, import_react.useEffect)(() => {
155
- if (elementRef.current === null || playerStatus === "ready" || options.url === void 0) {
156
- return;
157
- }
158
- if (showPreview) {
159
- loadPreviewImage(elementRef.current, options.url).then(
160
- setPreviewImageUrl
161
- );
162
- return;
163
- }
164
- setPreviewImageUrl(void 0);
165
- }, [renderer, showPreview, options.url, playerStatus]);
166
- const optionsRef = (0, import_react.useRef)(options);
167
- const stableOptions = (0, import_react.useMemo)(() => {
168
- if ((0, import_shallow_equal.shallowEqual)(options, optionsRef.current) === false) {
169
- optionsRef.current = options;
170
- }
171
- return optionsRef.current;
172
- }, [options]);
173
- (0, import_react.useEffect)(() => {
174
- if (elementRef.current === null || playerStatus === "initial") {
175
- return;
176
- }
177
- return createPlayer(elementRef.current, stableOptions, () => {
178
- setPlayerStatus("ready");
179
- });
180
- }, [stableOptions, playerStatus]);
181
- return { previewImageUrl, playerStatus, setPlayerStatus, elementRef };
182
- };
183
- const Vimeo = (0, import_react.forwardRef)(
184
- ({
185
- url,
186
- autoplay = false,
187
- autopause = true,
188
- backgroundMode = false,
189
- showByline = false,
190
- showControls = true,
191
- doNotTrack = false,
192
- keyboard = true,
193
- loop = false,
194
- muted = false,
195
- pip = false,
196
- playsinline = true,
197
- showPortrait = true,
198
- quality = "auto",
199
- responsive = true,
200
- speed = false,
201
- showTitle = false,
202
- transparent = true,
203
- showPreview = false,
204
- autopip,
205
- controlsColor,
206
- interactiveParams,
207
- texttrack,
208
- children,
209
- ...rest
210
- }, ref) => {
211
- const { renderer } = (0, import_react.useContext)(import_react_sdk.ReactSdkContext);
212
- const { previewImageUrl, playerStatus, setPlayerStatus, elementRef } = useVimeo({
213
- renderer,
214
- showPreview,
215
- options: {
216
- url,
217
- autoplay,
218
- autopause,
219
- keyboard,
220
- loop,
221
- muted,
222
- pip,
223
- playsinline,
224
- quality,
225
- responsive,
226
- speed,
227
- transparent,
228
- portrait: showPortrait,
229
- byline: showByline,
230
- title: showTitle,
231
- color: controlsColor,
232
- controls: showControls,
233
- interactive_params: interactiveParams,
234
- background: backgroundMode,
235
- dnt: doNotTrack
236
- }
237
- });
238
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
239
- VimeoContext.Provider,
240
- {
241
- value: {
242
- status: playerStatus,
243
- previewImageUrl,
244
- onInitPlayer() {
245
- if (renderer !== "canvas") {
246
- setPlayerStatus("initialized");
247
- }
248
- }
249
- },
250
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
251
- "div",
252
- {
253
- ...rest,
254
- ref: (value) => {
255
- elementRef.current = value;
256
- if (ref !== null) {
257
- typeof ref === "function" ? ref(value) : ref.current = value;
258
- }
259
- },
260
- onPointerOver: () => {
261
- if (renderer !== "canvas") {
262
- warmConnections();
263
- }
264
- },
265
- children: url === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(EmptyState, {}) : children
266
- }
267
- )
268
- }
269
- );
270
- }
271
- );
272
- Vimeo.displayName = "Vimeo";
273
- const EmptyState = () => {
274
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
275
- "div",
276
- {
277
- style: {
278
- display: "flex",
279
- width: "100%",
280
- height: "100%",
281
- alignItems: "center",
282
- justifyContent: "center",
283
- fontSize: "1.2em"
284
- },
285
- children: 'Open the "Settings" panel and paste a video URL, e.g. https://vimeo.com/831343124.'
286
- }
287
- );
288
- };
289
- const VimeoContext = (0, import_react.createContext)({
290
- // eslint-disable-next-line @typescript-eslint/no-empty-function
291
- onInitPlayer: () => {
292
- },
293
- status: "initial"
294
- });
@@ -1,348 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var vimeo_ws_exports = {};
20
- __export(vimeo_ws_exports, {
21
- meta: () => meta,
22
- propsMeta: () => propsMeta
23
- });
24
- module.exports = __toCommonJS(vimeo_ws_exports);
25
- var import_svg = require("@webstudio-is/icons/svg");
26
- var import_react_sdk = require("@webstudio-is/react-sdk");
27
- var import_css_normalize = require("@webstudio-is/react-sdk/css-normalize");
28
- var import_vimeo = require("./__generated__/vimeo.props");
29
- var import_vimeo2 = require("./vimeo");
30
- const presetStyle = {
31
- div: import_css_normalize.div
32
- };
33
- const meta = {
34
- category: "media",
35
- type: "container",
36
- label: "Vimeo",
37
- description: "Add a video to your page that is hosted on Vimeo. Paste a Vimeo URL and configure the video in the Settings tab.",
38
- order: 1,
39
- icon: import_svg.VimeoIcon,
40
- states: import_react_sdk.defaultStates,
41
- presetStyle,
42
- template: [
43
- {
44
- type: "instance",
45
- component: "Vimeo",
46
- styles: [
47
- {
48
- property: "position",
49
- value: { type: "keyword", value: "relative" }
50
- },
51
- {
52
- property: "aspectRatio",
53
- value: { type: "keyword", value: "640/360" }
54
- },
55
- {
56
- property: "width",
57
- value: { type: "unit", value: 100, unit: "%" }
58
- }
59
- ],
60
- children: [
61
- {
62
- type: "instance",
63
- component: "VimeoPreviewImage",
64
- styles: [
65
- {
66
- property: "position",
67
- value: { type: "keyword", value: "absolute" }
68
- },
69
- {
70
- property: "objectFit",
71
- value: { type: "keyword", value: "cover" }
72
- },
73
- {
74
- property: "width",
75
- value: { type: "unit", value: 100, unit: "%" }
76
- },
77
- {
78
- property: "height",
79
- value: { type: "unit", value: 100, unit: "%" }
80
- },
81
- {
82
- property: "borderTopLeftRadius",
83
- value: { type: "unit", value: 20, unit: "px" }
84
- },
85
- {
86
- property: "borderTopRightRadius",
87
- value: { type: "unit", value: 20, unit: "px" }
88
- },
89
- {
90
- property: "borderBottomLeftRadius",
91
- value: { type: "unit", value: 20, unit: "px" }
92
- },
93
- {
94
- property: "borderBottomRightRadius",
95
- value: { type: "unit", value: 20, unit: "px" }
96
- },
97
- {
98
- property: "objectPosition",
99
- value: { type: "keyword", value: "cover" }
100
- }
101
- ],
102
- children: [],
103
- props: [
104
- {
105
- type: "string",
106
- name: "alt",
107
- value: "Vimeo video preview image"
108
- },
109
- {
110
- type: "string",
111
- name: "sizes",
112
- value: "100vw"
113
- }
114
- ]
115
- },
116
- {
117
- type: "instance",
118
- component: "Box",
119
- label: "Spinner",
120
- styles: [
121
- {
122
- property: "position",
123
- value: { type: "keyword", value: "absolute" }
124
- },
125
- {
126
- property: "top",
127
- value: { type: "unit", value: 50, unit: "%" }
128
- },
129
- {
130
- property: "left",
131
- value: { type: "unit", value: 50, unit: "%" }
132
- },
133
- {
134
- property: "width",
135
- value: { type: "unit", value: 70, unit: "px" }
136
- },
137
- {
138
- property: "height",
139
- value: { type: "unit", value: 70, unit: "px" }
140
- },
141
- {
142
- property: "marginTop",
143
- value: { type: "unit", value: -35, unit: "px" }
144
- },
145
- {
146
- property: "marginLeft",
147
- value: { type: "unit", value: -35, unit: "px" }
148
- }
149
- ],
150
- children: [
151
- {
152
- type: "instance",
153
- component: "HtmlEmbed",
154
- label: "Spinner SVG",
155
- props: [
156
- {
157
- type: "string",
158
- name: "code",
159
- value: import_svg.SpinnerIcon
160
- }
161
- ],
162
- children: []
163
- }
164
- ]
165
- },
166
- {
167
- type: "instance",
168
- component: "VimeoPlayButton",
169
- props: [
170
- {
171
- type: "string",
172
- name: "aria-label",
173
- value: "Play button"
174
- }
175
- ],
176
- styles: [
177
- {
178
- property: "position",
179
- value: { type: "keyword", value: "absolute" }
180
- },
181
- {
182
- property: "width",
183
- value: { type: "unit", value: 140, unit: "px" }
184
- },
185
- {
186
- property: "height",
187
- value: { type: "unit", value: 80, unit: "px" }
188
- },
189
- {
190
- property: "top",
191
- value: { type: "unit", value: 50, unit: "%" }
192
- },
193
- {
194
- property: "left",
195
- value: { type: "unit", value: 50, unit: "%" }
196
- },
197
- {
198
- property: "marginTop",
199
- value: { type: "unit", value: -40, unit: "px" }
200
- },
201
- {
202
- property: "marginLeft",
203
- value: { type: "unit", value: -70, unit: "px" }
204
- },
205
- {
206
- property: "display",
207
- value: { type: "keyword", value: "flex" }
208
- },
209
- {
210
- property: "alignItems",
211
- value: { type: "keyword", value: "center" }
212
- },
213
- {
214
- property: "justifyContent",
215
- value: { type: "keyword", value: "center" }
216
- },
217
- {
218
- property: "borderTopStyle",
219
- value: { type: "keyword", value: "none" }
220
- },
221
- {
222
- property: "borderRightStyle",
223
- value: { type: "keyword", value: "none" }
224
- },
225
- {
226
- property: "borderBottomStyle",
227
- value: { type: "keyword", value: "none" }
228
- },
229
- {
230
- property: "borderLeftStyle",
231
- value: { type: "keyword", value: "none" }
232
- },
233
- {
234
- property: "borderTopLeftRadius",
235
- value: { type: "unit", value: 5, unit: "px" }
236
- },
237
- {
238
- property: "borderTopRightRadius",
239
- value: { type: "unit", value: 5, unit: "px" }
240
- },
241
- {
242
- property: "borderBottomLeftRadius",
243
- value: { type: "unit", value: 5, unit: "px" }
244
- },
245
- {
246
- property: "borderBottomRightRadius",
247
- value: { type: "unit", value: 5, unit: "px" }
248
- },
249
- {
250
- property: "cursor",
251
- value: { type: "keyword", value: "pointer" }
252
- },
253
- {
254
- property: "backgroundColor",
255
- value: {
256
- type: "rgb",
257
- r: 18,
258
- g: 18,
259
- b: 18,
260
- alpha: 1
261
- }
262
- },
263
- {
264
- property: "color",
265
- value: {
266
- type: "rgb",
267
- r: 255,
268
- g: 255,
269
- b: 255,
270
- alpha: 1
271
- }
272
- },
273
- {
274
- state: ":hover",
275
- property: "backgroundColor",
276
- value: {
277
- type: "rgb",
278
- r: 0,
279
- g: 173,
280
- b: 239,
281
- alpha: 1
282
- }
283
- }
284
- ],
285
- children: [
286
- {
287
- type: "instance",
288
- component: "Box",
289
- label: "Play Icon",
290
- styles: [
291
- {
292
- property: "width",
293
- value: { type: "unit", value: 60, unit: "px" }
294
- },
295
- {
296
- property: "height",
297
- value: { type: "unit", value: 60, unit: "px" }
298
- }
299
- ],
300
- props: [
301
- {
302
- type: "string",
303
- name: "aria-hidden",
304
- value: "true"
305
- }
306
- ],
307
- children: [
308
- {
309
- type: "instance",
310
- component: "HtmlEmbed",
311
- label: "Play SVG",
312
- props: [
313
- {
314
- type: "string",
315
- name: "code",
316
- value: import_svg.PlayIcon
317
- }
318
- ],
319
- children: []
320
- }
321
- ]
322
- }
323
- ]
324
- }
325
- ]
326
- }
327
- ]
328
- };
329
- const initialProps = [
330
- "id",
331
- "url",
332
- "quality",
333
- "showPreview",
334
- "autoplay",
335
- "backgroundMode",
336
- "doNotTrack",
337
- "loop",
338
- "muted",
339
- "showPortrait",
340
- "showByline",
341
- "showTitle",
342
- "showControls",
343
- "controlsColor"
344
- ];
345
- const propsMeta = {
346
- props: import_vimeo.props,
347
- initialProps
348
- };