@webstudio-is/react-sdk 0.50.0 → 0.52.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 (364) hide show
  1. package/lib/app/custom-components/image.js +2 -4
  2. package/lib/app/custom-components/shared/remix-link.js +7 -23
  3. package/lib/cjs/app/custom-components/{image.cjs → image.js} +1 -3
  4. package/lib/cjs/app/custom-components/shared/{remix-link.cjs → remix-link.js} +6 -22
  5. package/lib/cjs/components/__generated__/{link.props.cjs → link.props.js} +6 -6
  6. package/lib/cjs/components/{blockquote.cjs → blockquote.js} +2 -1
  7. package/lib/cjs/components/{blockquote.ws.cjs → blockquote.ws.js} +57 -35
  8. package/lib/cjs/components/{body.cjs → body.js} +2 -1
  9. package/lib/cjs/components/{body.ws.cjs → body.ws.js} +30 -46
  10. package/lib/cjs/components/{bold.cjs → bold.js} +2 -1
  11. package/lib/cjs/components/{bold.ws.cjs → bold.ws.js} +6 -1
  12. package/lib/cjs/components/{box.ws.cjs → box.ws.js} +11 -4
  13. package/lib/cjs/components/{button.cjs → button.js} +2 -1
  14. package/lib/cjs/components/{button.ws.cjs → button.ws.js} +6 -1
  15. package/lib/cjs/components/{code.cjs → code.js} +1 -0
  16. package/lib/cjs/components/{code.ws.cjs → code.ws.js} +31 -25
  17. package/lib/cjs/components/{form.cjs → form.js} +2 -1
  18. package/lib/cjs/components/{form.ws.cjs → form.ws.js} +8 -8
  19. package/lib/cjs/components/{heading.ws.cjs → heading.ws.js} +11 -1
  20. package/lib/cjs/components/{image.cjs → image.js} +2 -1
  21. package/lib/cjs/components/{image.ws.cjs → image.ws.js} +15 -11
  22. package/lib/cjs/components/{input.cjs → input.js} +2 -1
  23. package/lib/cjs/components/{input.ws.cjs → input.ws.js} +6 -1
  24. package/lib/cjs/components/{italic.cjs → italic.js} +2 -1
  25. package/lib/cjs/components/{italic.ws.cjs → italic.ws.js} +8 -4
  26. package/lib/cjs/components/{link-block.cjs → link-block.js} +3 -1
  27. package/lib/cjs/components/{link-block.ws.cjs → link-block.ws.js} +13 -9
  28. package/lib/cjs/components/{link.cjs → link.js} +15 -6
  29. package/lib/cjs/components/{link.ws.cjs → link.ws.js} +21 -10
  30. package/lib/cjs/components/{list-item.cjs → list-item.js} +2 -1
  31. package/lib/cjs/components/{list-item.ws.cjs → list-item.ws.js} +6 -1
  32. package/lib/cjs/components/{list.ws.cjs → list.ws.js} +29 -10
  33. package/lib/cjs/components/{paragraph.cjs → paragraph.js} +2 -1
  34. package/lib/cjs/components/{paragraph.ws.cjs → paragraph.ws.js} +6 -1
  35. package/lib/cjs/components/{rich-text-link.ws.cjs → rich-text-link.ws.js} +5 -2
  36. package/lib/cjs/components/{separator.cjs → separator.js} +2 -1
  37. package/lib/cjs/components/{separator.ws.cjs → separator.ws.js} +27 -11
  38. package/lib/cjs/components/{span.cjs → span.js} +2 -1
  39. package/lib/cjs/components/{span.ws.cjs → span.ws.js} +6 -1
  40. package/lib/cjs/components/{subscript.cjs → subscript.js} +2 -1
  41. package/lib/cjs/components/{subscript.ws.cjs → subscript.ws.js} +6 -1
  42. package/lib/cjs/components/{superscript.cjs → superscript.js} +2 -1
  43. package/lib/cjs/components/{superscript.ws.cjs → superscript.ws.js} +6 -1
  44. package/lib/cjs/components/{text-block.cjs → text-block.js} +2 -1
  45. package/lib/cjs/components/{text-block.ws.cjs → text-block.ws.js} +9 -5
  46. package/lib/cjs/{context.cjs → context.js} +2 -1
  47. package/lib/cjs/css/css.js +64 -0
  48. package/lib/cjs/css/global-rules.js +37 -0
  49. package/lib/cjs/css/{index.cjs → index.js} +3 -1
  50. package/lib/cjs/css/normalize-type-check.js +26 -0
  51. package/lib/cjs/css/normalize.js +358 -0
  52. package/lib/cjs/css/presets.js +61 -0
  53. package/lib/cjs/css/style-rules.js +62 -0
  54. package/lib/cjs/package.json +1 -0
  55. package/lib/cjs/{props.cjs → props.js} +43 -2
  56. package/lib/cjs/pubsub/{create.cjs → create.js} +6 -35
  57. package/lib/cjs/pubsub/raf-queue.js +45 -0
  58. package/lib/cjs/tree/{create-elements-tree.cjs → create-elements-tree.js} +8 -1
  59. package/lib/cjs/tree/{root.cjs → root.js} +1 -0
  60. package/lib/cjs/tree/{webstudio-component.cjs → webstudio-component.js} +1 -0
  61. package/lib/components/__generated__/link-block.props.js +5 -5
  62. package/lib/components/__generated__/link.props.js +6 -6
  63. package/lib/components/__generated__/rich-text-link.props.js +5 -5
  64. package/lib/components/blockquote.js +2 -1
  65. package/lib/components/blockquote.ws.js +57 -35
  66. package/lib/components/body.js +2 -1
  67. package/lib/components/body.ws.js +30 -46
  68. package/lib/components/bold.js +2 -1
  69. package/lib/components/bold.ws.js +7 -2
  70. package/lib/components/box.ws.js +22 -4
  71. package/lib/components/button.js +2 -1
  72. package/lib/components/button.ws.js +7 -2
  73. package/lib/components/code.js +1 -0
  74. package/lib/components/code.ws.js +31 -25
  75. package/lib/components/form.js +2 -1
  76. package/lib/components/form.ws.js +8 -8
  77. package/lib/components/heading.ws.js +11 -1
  78. package/lib/components/image.js +2 -1
  79. package/lib/components/image.ws.js +15 -11
  80. package/lib/components/input.js +2 -1
  81. package/lib/components/input.ws.js +7 -2
  82. package/lib/components/italic.js +2 -1
  83. package/lib/components/italic.ws.js +9 -5
  84. package/lib/components/link-block.js +3 -1
  85. package/lib/components/link-block.ws.js +13 -9
  86. package/lib/components/link.js +15 -6
  87. package/lib/components/link.ws.js +22 -11
  88. package/lib/components/list-item.js +2 -1
  89. package/lib/components/list-item.ws.js +6 -1
  90. package/lib/components/list.ws.js +29 -10
  91. package/lib/components/paragraph.js +2 -1
  92. package/lib/components/paragraph.ws.js +6 -1
  93. package/lib/components/rich-text-link.ws.js +6 -3
  94. package/lib/components/separator.js +2 -1
  95. package/lib/components/separator.ws.js +27 -11
  96. package/lib/components/span.js +2 -1
  97. package/lib/components/span.ws.js +7 -2
  98. package/lib/components/subscript.js +2 -1
  99. package/lib/components/subscript.ws.js +6 -1
  100. package/lib/components/superscript.js +2 -1
  101. package/lib/components/superscript.ws.js +6 -1
  102. package/lib/components/text-block.js +2 -1
  103. package/lib/components/text-block.ws.js +10 -6
  104. package/lib/context.js +2 -1
  105. package/lib/css/css.js +44 -0
  106. package/lib/css/get-browser-style.js +3 -1
  107. package/lib/css/global-rules.js +20 -0
  108. package/lib/css/index.js +3 -1
  109. package/lib/css/normalize-type-check.js +3 -0
  110. package/lib/css/normalize.js +338 -0
  111. package/lib/css/presets.js +41 -0
  112. package/lib/css/style-rules.js +42 -0
  113. package/lib/props.js +43 -2
  114. package/lib/pubsub/create.js +6 -25
  115. package/lib/pubsub/raf-queue.js +25 -0
  116. package/lib/tree/create-elements-tree.js +8 -1
  117. package/lib/tree/root.js +1 -0
  118. package/lib/tree/webstudio-component.js +1 -0
  119. package/lib/types/app/custom-components/image.d.ts +6 -0
  120. package/lib/types/app/custom-components/index.d.ts +26 -0
  121. package/lib/types/app/custom-components/link-block.d.ts +6 -0
  122. package/lib/types/app/custom-components/link.d.ts +6 -0
  123. package/lib/types/app/custom-components/rich-text-link.d.ts +6 -0
  124. package/lib/types/app/custom-components/shared/remix-link.d.ts +10 -0
  125. package/lib/types/app/handle-request.server.d.ts +2 -0
  126. package/lib/types/app/index.d.ts +3 -0
  127. package/lib/types/app/params.d.ts +5 -0
  128. package/lib/types/app/root.d.ts +8 -0
  129. package/lib/types/components/__generated__/blockquote.props.d.ts +2 -0
  130. package/lib/types/components/__generated__/body.props.d.ts +2 -0
  131. package/lib/types/components/__generated__/bold.props.d.ts +2 -0
  132. package/lib/types/components/__generated__/box.props.d.ts +2 -0
  133. package/lib/types/components/__generated__/button.props.d.ts +2 -0
  134. package/lib/types/components/__generated__/code.props.d.ts +2 -0
  135. package/lib/types/components/__generated__/form.props.d.ts +2 -0
  136. package/lib/types/components/__generated__/fragment.props.d.ts +2 -0
  137. package/lib/types/components/__generated__/heading.props.d.ts +2 -0
  138. package/lib/types/components/__generated__/image.props.d.ts +2 -0
  139. package/lib/types/components/__generated__/input.props.d.ts +2 -0
  140. package/lib/types/components/__generated__/italic.props.d.ts +2 -0
  141. package/lib/types/components/__generated__/link-block.props.d.ts +2 -0
  142. package/lib/types/components/__generated__/link.props.d.ts +2 -0
  143. package/lib/types/components/__generated__/list-item.props.d.ts +2 -0
  144. package/lib/types/components/__generated__/list.props.d.ts +2 -0
  145. package/lib/types/components/__generated__/paragraph.props.d.ts +2 -0
  146. package/lib/types/components/__generated__/rich-text-link.props.d.ts +2 -0
  147. package/lib/types/components/__generated__/separator.props.d.ts +2 -0
  148. package/lib/types/components/__generated__/slot.props.d.ts +2 -0
  149. package/lib/types/components/__generated__/span.props.d.ts +2 -0
  150. package/lib/types/components/__generated__/subscript.props.d.ts +2 -0
  151. package/lib/types/components/__generated__/superscript.props.d.ts +2 -0
  152. package/lib/types/components/__generated__/text-block.props.d.ts +2 -0
  153. package/lib/types/components/blockquote.d.ts +3 -0
  154. package/lib/types/components/blockquote.stories.d.ts +5 -0
  155. package/lib/types/components/blockquote.ws.d.ts +3 -0
  156. package/lib/types/components/body.d.ts +3 -0
  157. package/lib/types/components/body.stories.d.ts +6 -0
  158. package/lib/types/components/body.ws.d.ts +3 -0
  159. package/lib/types/components/bold.d.ts +3 -0
  160. package/lib/types/components/bold.stories.d.ts +5 -0
  161. package/lib/types/components/bold.ws.d.ts +3 -0
  162. package/lib/types/components/box.d.ts +7 -0
  163. package/lib/types/components/box.stories.d.ts +9 -0
  164. package/lib/types/components/box.ws.d.ts +3 -0
  165. package/lib/types/components/button.d.ts +7 -0
  166. package/lib/types/components/button.stories.d.ts +9 -0
  167. package/lib/types/components/button.ws.d.ts +3 -0
  168. package/lib/types/components/code.d.ts +9 -0
  169. package/lib/types/components/code.stories.d.ts +11 -0
  170. package/lib/types/components/code.ws.d.ts +3 -0
  171. package/lib/types/components/component-meta.d.ts +605 -0
  172. package/lib/types/components/components-utils.d.ts +34 -0
  173. package/lib/types/components/components.d.ts +31 -0
  174. package/lib/types/components/form.d.ts +3 -0
  175. package/lib/types/components/form.stories.d.ts +5 -0
  176. package/lib/types/components/form.ws.d.ts +3 -0
  177. package/lib/types/components/fragment.d.ts +6 -0
  178. package/lib/types/components/fragment.ws.d.ts +3 -0
  179. package/lib/types/components/heading.d.ts +7 -0
  180. package/lib/types/components/heading.stories.d.ts +9 -0
  181. package/lib/types/components/heading.ws.d.ts +3 -0
  182. package/lib/types/components/image.d.ts +3 -0
  183. package/lib/types/components/image.stories.d.ts +5 -0
  184. package/lib/types/components/image.ws.d.ts +3 -0
  185. package/lib/types/components/index.d.ts +17 -0
  186. package/lib/types/components/input.d.ts +3 -0
  187. package/lib/types/components/input.stories.d.ts +5 -0
  188. package/lib/types/components/input.ws.d.ts +3 -0
  189. package/lib/types/components/italic.d.ts +3 -0
  190. package/lib/types/components/italic.stories.d.ts +5 -0
  191. package/lib/types/components/italic.ws.d.ts +3 -0
  192. package/lib/types/components/link-block.d.ts +3 -0
  193. package/lib/types/components/link-block.stories.d.ts +13 -0
  194. package/lib/types/components/link-block.ws.d.ts +3 -0
  195. package/lib/types/components/link.d.ts +9 -0
  196. package/lib/types/components/link.stories.d.ts +13 -0
  197. package/lib/types/components/link.ws.d.ts +3 -0
  198. package/lib/types/components/list-item.d.ts +3 -0
  199. package/lib/types/components/list-item.stories.d.ts +5 -0
  200. package/lib/types/components/list-item.ws.d.ts +3 -0
  201. package/lib/types/components/list.d.ts +9 -0
  202. package/lib/types/components/list.stories.d.ts +9 -0
  203. package/lib/types/components/list.ws.d.ts +3 -0
  204. package/lib/types/components/paragraph.d.ts +3 -0
  205. package/lib/types/components/paragraph.stories.d.ts +5 -0
  206. package/lib/types/components/paragraph.ws.d.ts +3 -0
  207. package/lib/types/components/rich-text-link.d.ts +2 -0
  208. package/lib/types/components/rich-text-link.stories.d.ts +13 -0
  209. package/lib/types/components/rich-text-link.ws.d.ts +3 -0
  210. package/lib/types/components/separator.d.ts +3 -0
  211. package/lib/types/components/separator.stories.d.ts +5 -0
  212. package/lib/types/components/separator.ws.d.ts +3 -0
  213. package/lib/types/components/slot.d.ts +6 -0
  214. package/lib/types/components/slot.stories.d.ts +9 -0
  215. package/lib/types/components/slot.ws.d.ts +3 -0
  216. package/lib/types/components/span.d.ts +3 -0
  217. package/lib/types/components/span.stories.d.ts +5 -0
  218. package/lib/types/components/span.ws.d.ts +3 -0
  219. package/lib/types/components/subscript.d.ts +3 -0
  220. package/lib/types/components/subscript.stories.d.ts +5 -0
  221. package/lib/types/components/subscript.ws.d.ts +3 -0
  222. package/lib/types/components/superscript.d.ts +3 -0
  223. package/lib/types/components/superscript.stories.d.ts +5 -0
  224. package/lib/types/components/superscript.ws.d.ts +3 -0
  225. package/lib/types/components/text-block.d.ts +3 -0
  226. package/lib/types/components/text-block.stories.d.ts +5 -0
  227. package/lib/types/components/text-block.ws.d.ts +3 -0
  228. package/lib/types/context.d.ts +9 -0
  229. package/lib/types/css/css.d.ts +10 -0
  230. package/lib/types/css/get-browser-style.d.ts +2 -0
  231. package/lib/types/css/global-rules.d.ts +44 -0
  232. package/lib/types/css/index.d.ts +4 -0
  233. package/lib/types/css/normalize-type-check.d.ts +1 -0
  234. package/lib/types/css/normalize.d.ts +2429 -0
  235. package/lib/types/css/presets.d.ts +38 -0
  236. package/lib/types/css/style-rules.d.ts +248 -0
  237. package/lib/types/css/style-rules.test.d.ts +1 -0
  238. package/lib/types/index.d.ts +9 -0
  239. package/lib/types/props.d.ts +97 -0
  240. package/lib/types/props.test.d.ts +1 -0
  241. package/lib/types/pubsub/create.d.ts +28 -0
  242. package/lib/types/pubsub/index.d.ts +1 -0
  243. package/lib/types/pubsub/raf-queue.d.ts +1 -0
  244. package/lib/types/tree/create-elements-tree.d.ts +16 -0
  245. package/lib/types/tree/index.d.ts +3 -0
  246. package/lib/types/tree/root.d.ts +25 -0
  247. package/lib/types/tree/session-storage-polyfill.d.ts +2 -0
  248. package/lib/types/tree/webstudio-component.d.ts +15 -0
  249. package/package.json +20 -19
  250. package/src/app/custom-components/image.tsx +4 -7
  251. package/src/app/custom-components/shared/remix-link.tsx +12 -48
  252. package/src/components/__generated__/link-block.props.ts +5 -5
  253. package/src/components/__generated__/link.props.ts +6 -6
  254. package/src/components/__generated__/rich-text-link.props.ts +5 -5
  255. package/src/components/blockquote.tsx +1 -1
  256. package/src/components/blockquote.ws.tsx +63 -36
  257. package/src/components/body.tsx +1 -1
  258. package/src/components/body.ws.tsx +39 -47
  259. package/src/components/bold.tsx +1 -1
  260. package/src/components/bold.ws.tsx +10 -2
  261. package/src/components/box.ws.ts +28 -5
  262. package/src/components/button.tsx +1 -1
  263. package/src/components/button.ws.tsx +10 -2
  264. package/src/components/code.tsx +1 -1
  265. package/src/components/code.ws.tsx +36 -28
  266. package/src/components/component-meta.ts +4 -1
  267. package/src/components/form.tsx +1 -1
  268. package/src/components/form.ws.tsx +11 -9
  269. package/src/components/heading.ws.tsx +16 -0
  270. package/src/components/image.tsx +1 -1
  271. package/src/components/image.ws.tsx +19 -12
  272. package/src/components/input.tsx +1 -1
  273. package/src/components/input.ws.tsx +10 -2
  274. package/src/components/italic.tsx +1 -1
  275. package/src/components/italic.ws.tsx +12 -6
  276. package/src/components/link-block.tsx +1 -0
  277. package/src/components/link-block.ws.tsx +16 -10
  278. package/src/components/link.tsx +14 -6
  279. package/src/components/link.ws.tsx +25 -12
  280. package/src/components/list-item.tsx +1 -1
  281. package/src/components/list-item.ws.tsx +8 -0
  282. package/src/components/list.tsx +2 -0
  283. package/src/components/list.ws.tsx +32 -11
  284. package/src/components/paragraph.tsx +1 -1
  285. package/src/components/paragraph.ws.tsx +8 -0
  286. package/src/components/rich-text-link.ws.tsx +6 -3
  287. package/src/components/separator.tsx +1 -1
  288. package/src/components/separator.ws.tsx +33 -12
  289. package/src/components/span.tsx +1 -1
  290. package/src/components/span.ws.tsx +10 -2
  291. package/src/components/subscript.tsx +1 -1
  292. package/src/components/subscript.ws.tsx +8 -0
  293. package/src/components/superscript.tsx +1 -1
  294. package/src/components/superscript.ws.tsx +8 -0
  295. package/src/components/text-block.tsx +1 -1
  296. package/src/components/text-block.ws.tsx +14 -7
  297. package/src/context.tsx +4 -1
  298. package/src/css/css.ts +57 -0
  299. package/src/css/get-browser-style.ts +6 -1
  300. package/src/css/global-rules.ts +29 -0
  301. package/src/css/index.ts +3 -1
  302. package/src/css/normalize-type-check.ts +13 -0
  303. package/src/css/normalize.ts +519 -0
  304. package/src/css/presets.ts +42 -0
  305. package/src/css/style-rules.test.ts +147 -0
  306. package/src/css/style-rules.ts +66 -0
  307. package/src/props.test.ts +95 -0
  308. package/src/props.ts +59 -5
  309. package/src/pubsub/create.ts +7 -38
  310. package/src/pubsub/raf-queue.ts +31 -0
  311. package/src/tree/create-elements-tree.tsx +7 -2
  312. package/src/tree/root.ts +2 -0
  313. package/src/tree/webstudio-component.tsx +1 -0
  314. package/lib/cjs/css/categories.cjs +0 -250
  315. package/lib/css/categories.js +0 -230
  316. package/src/css/categories.ts +0 -254
  317. package/lib/cjs/app/custom-components/{index.cjs → index.js} +0 -0
  318. package/lib/cjs/app/custom-components/{link-block.cjs → link-block.js} +0 -0
  319. package/lib/cjs/app/custom-components/{link.cjs → link.js} +0 -0
  320. package/lib/cjs/app/custom-components/{rich-text-link.cjs → rich-text-link.js} +0 -0
  321. package/lib/cjs/app/{handle-request.server.cjs → handle-request.server.js} +0 -0
  322. package/lib/cjs/app/{index.cjs → index.js} +0 -0
  323. package/lib/cjs/app/{params.cjs → params.js} +0 -0
  324. package/lib/cjs/app/{root.cjs → root.js} +0 -0
  325. package/lib/cjs/components/__generated__/{blockquote.props.cjs → blockquote.props.js} +0 -0
  326. package/lib/cjs/components/__generated__/{body.props.cjs → body.props.js} +0 -0
  327. package/lib/cjs/components/__generated__/{bold.props.cjs → bold.props.js} +0 -0
  328. package/lib/cjs/components/__generated__/{box.props.cjs → box.props.js} +0 -0
  329. package/lib/cjs/components/__generated__/{button.props.cjs → button.props.js} +0 -0
  330. package/lib/cjs/components/__generated__/{code.props.cjs → code.props.js} +0 -0
  331. package/lib/cjs/components/__generated__/{form.props.cjs → form.props.js} +0 -0
  332. package/lib/cjs/components/__generated__/{fragment.props.cjs → fragment.props.js} +0 -0
  333. package/lib/cjs/components/__generated__/{heading.props.cjs → heading.props.js} +0 -0
  334. package/lib/cjs/components/__generated__/{image.props.cjs → image.props.js} +0 -0
  335. package/lib/cjs/components/__generated__/{input.props.cjs → input.props.js} +0 -0
  336. package/lib/cjs/components/__generated__/{italic.props.cjs → italic.props.js} +0 -0
  337. package/lib/cjs/components/__generated__/{link-block.props.cjs → link-block.props.js} +5 -5
  338. package/lib/cjs/components/__generated__/{list-item.props.cjs → list-item.props.js} +0 -0
  339. package/lib/cjs/components/__generated__/{list.props.cjs → list.props.js} +0 -0
  340. package/lib/cjs/components/__generated__/{paragraph.props.cjs → paragraph.props.js} +0 -0
  341. package/lib/cjs/components/__generated__/{rich-text-link.props.cjs → rich-text-link.props.js} +5 -5
  342. /package/lib/cjs/components/__generated__/{separator.props.cjs → separator.props.js} +0 -0
  343. /package/lib/cjs/components/__generated__/{slot.props.cjs → slot.props.js} +0 -0
  344. /package/lib/cjs/components/__generated__/{span.props.cjs → span.props.js} +0 -0
  345. /package/lib/cjs/components/__generated__/{subscript.props.cjs → subscript.props.js} +0 -0
  346. /package/lib/cjs/components/__generated__/{superscript.props.cjs → superscript.props.js} +0 -0
  347. /package/lib/cjs/components/__generated__/{text-block.props.cjs → text-block.props.js} +0 -0
  348. /package/lib/cjs/components/{box.cjs → box.js} +0 -0
  349. /package/lib/cjs/components/{component-meta.cjs → component-meta.js} +0 -0
  350. /package/lib/cjs/components/{components-utils.cjs → components-utils.js} +0 -0
  351. /package/lib/cjs/components/{components.cjs → components.js} +0 -0
  352. /package/lib/cjs/components/{fragment.cjs → fragment.js} +0 -0
  353. /package/lib/cjs/components/{fragment.ws.cjs → fragment.ws.js} +0 -0
  354. /package/lib/cjs/components/{heading.cjs → heading.js} +0 -0
  355. /package/lib/cjs/components/{index.cjs → index.js} +0 -0
  356. /package/lib/cjs/components/{list.cjs → list.js} +0 -0
  357. /package/lib/cjs/components/{rich-text-link.cjs → rich-text-link.js} +0 -0
  358. /package/lib/cjs/components/{slot.cjs → slot.js} +0 -0
  359. /package/lib/cjs/components/{slot.ws.cjs → slot.ws.js} +0 -0
  360. /package/lib/cjs/css/{get-browser-style.cjs → get-browser-style.js} +0 -0
  361. /package/lib/cjs/{index.cjs → index.js} +0 -0
  362. /package/lib/cjs/pubsub/{index.cjs → index.js} +0 -0
  363. /package/lib/cjs/tree/{index.cjs → index.js} +0 -0
  364. /package/lib/cjs/tree/{session-storage-polyfill.cjs → session-storage-polyfill.js} +0 -0
@@ -1,13 +1,29 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { HeadingIcon } from "@webstudio-is/icons";
3
+ import type { ComponentProps } from "react";
4
+ import { h1, h2, h3, h4, h5, h6 } from "../css/normalize";
2
5
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
6
+ import type { Heading } from "./heading";
3
7
  import { props } from "./__generated__/heading.props";
4
8
 
9
+ type HeadingTags = NonNullable<ComponentProps<typeof Heading>["tag"]>;
10
+
11
+ const presetStyle = {
12
+ h1,
13
+ h2,
14
+ h3,
15
+ h4,
16
+ h5,
17
+ h6,
18
+ } as const satisfies Record<HeadingTags, Style>;
19
+
5
20
  export const meta: WsComponentMeta = {
6
21
  category: "typography",
7
22
  type: "rich-text",
8
23
  label: "Heading",
9
24
  Icon: HeadingIcon,
10
25
  children: ["Heading you can edit"],
26
+ presetStyle,
11
27
  };
12
28
 
13
29
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "img";
3
+ export const defaultTag = "img";
4
4
 
5
5
  // quality and optimize can be overwritten and used by asset transform
6
6
  // Or we need and additional way to pass them upper level
@@ -1,21 +1,28 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { ImageIcon } from "@webstudio-is/icons";
3
+ import { img } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./image";
3
6
  import { props } from "./__generated__/image.props";
4
7
 
5
8
  const presetStyle = {
6
- // Otherwise on new image insert onto canvas it can overfit screen size multiple times
7
- maxWidth: {
8
- type: "unit",
9
- unit: "%",
10
- value: 100,
11
- },
12
- // inline | inline-block is not suitable because without line-height: 0 on the parent you get unsuitable spaces/margins
13
- // see https://stackoverflow.com/questions/24771194/is-the-margin-of-inline-block-4px-is-static-for-all-browsers
14
- display: {
15
- type: "keyword",
16
- value: "block",
9
+ img: {
10
+ ...img,
11
+
12
+ // Otherwise on new image insert onto canvas it can overfit screen size multiple times
13
+ maxWidth: {
14
+ type: "unit",
15
+ unit: "%",
16
+ value: 100,
17
+ },
18
+ // inline | inline-block is not suitable because without line-height: 0 on the parent you get unsuitable spaces/margins
19
+ // see https://stackoverflow.com/questions/24771194/is-the-margin-of-inline-block-4px-is-static-for-all-browsers
20
+ display: {
21
+ type: "keyword",
22
+ value: "block",
23
+ },
17
24
  },
18
- } as const;
25
+ } as const satisfies Record<typeof defaultTag, Style>;
19
26
 
20
27
  export const meta: WsComponentMeta = {
21
28
  category: "media",
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "input";
3
+ export const defaultTag = "input";
4
4
 
5
5
  export const Input = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,12 +1,20 @@
1
- import { InputIcon } from "@webstudio-is/icons";
1
+ import type { Style } from "@webstudio-is/css-data";
2
+ import { FormTextFieldIcon } from "@webstudio-is/icons";
3
+ import { input } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./input";
3
6
  import { props } from "./__generated__/input.props";
4
7
 
8
+ const presetStyle = {
9
+ input,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  category: "forms",
7
14
  type: "control",
8
15
  label: "Input",
9
- Icon: InputIcon,
16
+ Icon: FormTextFieldIcon,
17
+ presetStyle,
10
18
  };
11
19
 
12
20
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "i";
3
+ export const defaultTag = "i";
4
4
 
5
5
  export const Italic = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,18 +1,24 @@
1
- import { FontItalicIcon } from "@webstudio-is/icons";
1
+ import type { Style } from "@webstudio-is/css-data";
2
+ import { TextItalicIcon } from "@webstudio-is/icons";
3
+ import type { defaultTag } from "./italic";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
3
5
  import { props } from "./__generated__/italic.props";
6
+ import { i } from "../css/normalize";
4
7
 
5
8
  const presetStyle = {
6
- fontStyle: {
7
- type: "keyword",
8
- value: "italic",
9
+ i: {
10
+ ...i,
11
+ fontStyle: {
12
+ type: "keyword",
13
+ value: "italic",
14
+ },
9
15
  },
10
- } as const;
16
+ } as const satisfies Record<typeof defaultTag, Style>;
11
17
 
12
18
  export const meta: WsComponentMeta = {
13
19
  type: "rich-text-child",
14
20
  label: "Italic Text",
15
- Icon: FontItalicIcon,
21
+ Icon: TextItalicIcon,
16
22
  presetStyle,
17
23
  };
18
24
 
@@ -1,5 +1,6 @@
1
1
  import { forwardRef } from "react";
2
2
  import { Link } from "./link";
3
+ export { defaultTag } from "./link";
3
4
 
4
5
  export const LinkBlock: typeof Link = forwardRef((props, ref) => (
5
6
  <Link {...props} ref={ref} />
@@ -1,17 +1,20 @@
1
1
  import { BoxLinkIcon } from "@webstudio-is/icons";
2
2
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
3
3
  import { props } from "./__generated__/link-block.props";
4
+ import { propsMeta as linkPropsMeta } from "./link.ws";
5
+ import type { defaultTag } from "./link-block";
6
+ import type { Style } from "@webstudio-is/css-data";
7
+ import { a } from "../css/normalize";
4
8
 
5
9
  const presetStyle = {
6
- boxSizing: {
7
- type: "keyword",
8
- value: "border-box",
10
+ a: {
11
+ ...a,
12
+ display: {
13
+ type: "keyword",
14
+ value: "inline-block",
15
+ },
9
16
  },
10
- display: {
11
- type: "keyword",
12
- value: "inline-block",
13
- },
14
- } as const;
17
+ } as const satisfies Record<typeof defaultTag, Style>;
15
18
 
16
19
  export const meta: WsComponentMeta = {
17
20
  category: "general",
@@ -22,6 +25,9 @@ export const meta: WsComponentMeta = {
22
25
  };
23
26
 
24
27
  export const propsMeta: WsComponentPropsMeta = {
25
- props,
26
- initialProps: ["href", "target", "prefetch"],
28
+ props: {
29
+ ...props,
30
+ href: linkPropsMeta.props.href,
31
+ },
32
+ initialProps: linkPropsMeta.initialProps,
27
33
  };
@@ -1,4 +1,7 @@
1
- import { forwardRef, type ElementRef, type ComponentProps } from "react";
1
+ import { forwardRef, type ComponentProps } from "react";
2
+ import { usePropUrl, getInstanceIdFromComponentProps } from "../props";
3
+
4
+ export const defaultTag = "a";
2
5
 
3
6
  // @todo props that come from remix link, shouldn't be here at all
4
7
  // - prefetch should be only on remix component and it already is
@@ -10,10 +13,15 @@ type Props = Omit<ComponentProps<"a">, "href" | "target"> & {
10
13
  prefetch?: "none" | "intent" | "render";
11
14
  };
12
15
 
13
- export const Link = forwardRef<ElementRef<"a">, Props>(
14
- ({ href = "", ...props }, ref) => {
15
- return <a {...props} href={href} ref={ref} />;
16
- }
17
- );
16
+ export const Link = forwardRef<HTMLAnchorElement, Props>((props, ref) => {
17
+ const href = usePropUrl(getInstanceIdFromComponentProps(props), "href");
18
+ return (
19
+ <a
20
+ {...props}
21
+ href={typeof href === "string" ? href : href?.path}
22
+ ref={ref}
23
+ />
24
+ );
25
+ });
18
26
 
19
27
  Link.displayName = "Link";
@@ -1,29 +1,42 @@
1
- import { Link2Icon } from "@webstudio-is/icons";
1
+ import type { Style } from "@webstudio-is/css-data";
2
+ import { LinkIcon } from "@webstudio-is/icons";
3
+ import { a } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./link";
3
6
  import { props } from "./__generated__/link.props";
4
7
 
5
8
  const presetStyle = {
6
- minHeight: {
7
- type: "unit",
8
- unit: "em",
9
- value: 1,
9
+ a: {
10
+ ...a,
11
+ minHeight: {
12
+ type: "unit",
13
+ unit: "em",
14
+ value: 1,
15
+ },
16
+ display: {
17
+ type: "keyword",
18
+ value: "inline-block",
19
+ },
10
20
  },
11
- display: {
12
- type: "keyword",
13
- value: "inline-block",
14
- },
15
- } as const;
21
+ } as const satisfies Record<typeof defaultTag, Style>;
16
22
 
17
23
  export const meta: WsComponentMeta = {
18
24
  category: "general",
19
25
  type: "rich-text",
20
26
  label: "Link Text",
21
- Icon: Link2Icon,
27
+ Icon: LinkIcon,
22
28
  presetStyle,
23
29
  children: ["Link text you can edit"],
24
30
  };
25
31
 
26
32
  export const propsMeta: WsComponentPropsMeta = {
27
- props,
33
+ props: {
34
+ ...props,
35
+ href: {
36
+ type: "string",
37
+ control: "url",
38
+ required: false,
39
+ },
40
+ },
28
41
  initialProps: ["href", "target", "prefetch"],
29
42
  };
@@ -5,7 +5,7 @@ import {
5
5
  type ComponentProps,
6
6
  } from "react";
7
7
 
8
- const defaultTag = "li";
8
+ export const defaultTag = "li";
9
9
 
10
10
  type Props = ComponentProps<typeof defaultTag>;
11
11
 
@@ -1,13 +1,21 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { ListItemIcon } from "@webstudio-is/icons";
3
+ import { li } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./list-item";
3
6
  import { props } from "./__generated__/list-item.props";
4
7
 
8
+ const presetStyle = {
9
+ li,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  category: "typography",
7
14
  type: "rich-text",
8
15
  label: "List Item",
9
16
  Icon: ListItemIcon,
10
17
  children: ["List Item you can edit"],
18
+ presetStyle,
11
19
  };
12
20
 
13
21
  export const propsMeta: WsComponentPropsMeta = {
@@ -8,6 +8,8 @@ import {
8
8
  const unorderedTag = "ul";
9
9
  const orderedTag = "ol";
10
10
 
11
+ export type ListTag = typeof unorderedTag | typeof orderedTag;
12
+
11
13
  type Props = ComponentProps<typeof unorderedTag> &
12
14
  ComponentProps<typeof orderedTag> & {
13
15
  ordered?: boolean;
@@ -1,21 +1,42 @@
1
1
  import { ListIcon } from "@webstudio-is/icons";
2
2
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
3
3
  import { props } from "./__generated__/list.props";
4
+ import type { ListTag } from "./list";
5
+ import type { Style } from "@webstudio-is/css-data";
6
+ import { ol, ul } from "../css/normalize";
4
7
 
5
8
  const presetStyle = {
6
- marginTop: {
7
- type: "keyword",
8
- value: "0",
9
+ ol: {
10
+ ...ol,
11
+ marginTop: {
12
+ type: "keyword",
13
+ value: "0",
14
+ },
15
+ marginBottom: {
16
+ type: "keyword",
17
+ value: "10px",
18
+ },
19
+ paddingLeft: {
20
+ type: "keyword",
21
+ value: "40px",
22
+ },
9
23
  },
10
- marginBottom: {
11
- type: "keyword",
12
- value: "10px",
24
+ ul: {
25
+ ...ul,
26
+ marginTop: {
27
+ type: "keyword",
28
+ value: "0",
29
+ },
30
+ marginBottom: {
31
+ type: "keyword",
32
+ value: "10px",
33
+ },
34
+ paddingLeft: {
35
+ type: "keyword",
36
+ value: "40px",
37
+ },
13
38
  },
14
- paddingLeft: {
15
- type: "keyword",
16
- value: "40px",
17
- },
18
- } as const;
39
+ } as const satisfies Record<ListTag, Style>;
19
40
 
20
41
  export const meta: WsComponentMeta = {
21
42
  category: "typography",
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "p";
3
+ export const defaultTag = "p";
4
4
 
5
5
  export const Paragraph = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,13 +1,21 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { TextAlignLeftIcon } from "@webstudio-is/icons";
3
+ import { p } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./paragraph";
3
6
  import { props } from "./__generated__/paragraph.props";
4
7
 
8
+ const presetStyle = {
9
+ p,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  category: "typography",
7
14
  type: "rich-text",
8
15
  label: "Paragraph",
9
16
  Icon: TextAlignLeftIcon,
10
17
  children: ["Pragraph you can edit"],
18
+ presetStyle,
11
19
  };
12
20
 
13
21
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
2
2
  import { props } from "./__generated__/rich-text-link.props";
3
- import { meta as linkMeta, propsMeta as propsLinkMeta } from "./link.ws";
3
+ import { meta as linkMeta, propsMeta as linkPropsMeta } from "./link.ws";
4
4
 
5
5
  const { category, ...linkMetaRest } = linkMeta;
6
6
 
@@ -11,6 +11,9 @@ export const meta: WsComponentMeta = {
11
11
  };
12
12
 
13
13
  export const propsMeta: WsComponentPropsMeta = {
14
- ...propsLinkMeta,
15
- props,
14
+ initialProps: linkPropsMeta.initialProps,
15
+ props: {
16
+ ...props,
17
+ href: linkPropsMeta.props.href,
18
+ },
16
19
  };
@@ -5,7 +5,7 @@ import {
5
5
  type ComponentProps,
6
6
  } from "react";
7
7
 
8
- const defaultTag = "hr";
8
+ export const defaultTag = "hr";
9
9
 
10
10
  type Props = ComponentProps<typeof defaultTag>;
11
11
 
@@ -1,21 +1,42 @@
1
1
  import { DashIcon } from "@webstudio-is/icons";
2
2
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
3
3
  import { props } from "./__generated__/separator.props";
4
+ import type { defaultTag } from "./separator";
5
+ import type { Style } from "@webstudio-is/css-data";
6
+ import { hr } from "../css/normalize";
4
7
 
5
8
  const presetStyle = {
6
- height: {
7
- type: "keyword",
8
- value: "1px",
9
- },
10
- backgroundColor: {
11
- type: "keyword",
12
- value: "gray",
13
- },
14
- border: {
15
- type: "keyword",
16
- value: "none",
9
+ hr: {
10
+ ...hr,
11
+
12
+ height: {
13
+ type: "keyword",
14
+ value: "1px",
15
+ },
16
+
17
+ backgroundColor: {
18
+ type: "keyword",
19
+ value: "gray",
20
+ },
21
+
22
+ borderTopStyle: {
23
+ type: "keyword",
24
+ value: "none",
25
+ },
26
+ borderRightStyle: {
27
+ type: "keyword",
28
+ value: "none",
29
+ },
30
+ borderLeftStyle: {
31
+ type: "keyword",
32
+ value: "none",
33
+ },
34
+ borderBottomStyle: {
35
+ type: "keyword",
36
+ value: "none",
37
+ },
17
38
  },
18
- } as const;
39
+ } as const satisfies Record<typeof defaultTag, Style>;
19
40
 
20
41
  export const meta: WsComponentMeta = {
21
42
  category: "general",
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "span";
3
+ export const defaultTag = "span";
4
4
 
5
5
  export const Span = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,11 +1,19 @@
1
- import { BrushIcon } from "@webstudio-is/icons";
1
+ import type { Style } from "@webstudio-is/css-data";
2
+ import { PaintBrushIcon } from "@webstudio-is/icons";
3
+ import { span } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./span";
3
6
  import { props } from "./__generated__/span.props";
4
7
 
8
+ const presetStyle = {
9
+ span,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  type: "rich-text-child",
7
14
  label: "Styled Text",
8
- Icon: BrushIcon,
15
+ Icon: PaintBrushIcon,
16
+ presetStyle,
9
17
  };
10
18
 
11
19
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "sub";
3
+ export const defaultTag = "sub";
4
4
 
5
5
  export const Subscript = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,11 +1,19 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { SubscriptIcon } from "@webstudio-is/icons";
3
+ import { sub } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./subscript";
3
6
  import { props } from "./__generated__/subscript.props";
4
7
 
8
+ const presetStyle = {
9
+ sub,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  type: "rich-text-child",
7
14
  label: "Subscript Text",
8
15
  Icon: SubscriptIcon,
16
+ presetStyle,
9
17
  };
10
18
 
11
19
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "sup";
3
+ export const defaultTag = "sup";
4
4
 
5
5
  export const Superscript = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,11 +1,19 @@
1
+ import type { Style } from "@webstudio-is/css-data";
1
2
  import { SuperscriptIcon } from "@webstudio-is/icons";
3
+ import { sup } from "../css/normalize";
2
4
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
5
+ import type { defaultTag } from "./superscript";
3
6
  import { props } from "./__generated__/superscript.props";
4
7
 
8
+ const presetStyle = {
9
+ sup,
10
+ } as const satisfies Record<typeof defaultTag, Style>;
11
+
5
12
  export const meta: WsComponentMeta = {
6
13
  type: "rich-text-child",
7
14
  label: "Superscript Text",
8
15
  Icon: SuperscriptIcon,
16
+ presetStyle,
9
17
  };
10
18
 
11
19
  export const propsMeta: WsComponentPropsMeta = {
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, type ElementRef, type ComponentProps } from "react";
2
2
 
3
- const defaultTag = "div";
3
+ export const defaultTag = "div";
4
4
 
5
5
  export const TextBlock = forwardRef<
6
6
  ElementRef<typeof defaultTag>,
@@ -1,20 +1,27 @@
1
- import { TextIcon } from "@webstudio-is/icons";
1
+ import { TextBlockIcon } from "@webstudio-is/icons";
2
2
  import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
3
3
  import { props } from "./__generated__/text-block.props";
4
+ import type { defaultTag } from "./text-block";
5
+ import type { Style } from "@webstudio-is/css-data";
6
+ import { div } from "../css/normalize";
4
7
 
5
8
  const presetStyle = {
6
- minHeight: {
7
- type: "unit",
8
- unit: "em",
9
- value: 1,
9
+ div: {
10
+ ...div,
11
+
12
+ minHeight: {
13
+ type: "unit",
14
+ unit: "em",
15
+ value: 1,
16
+ },
10
17
  },
11
- } as const;
18
+ } as const satisfies Record<typeof defaultTag, Style>;
12
19
 
13
20
  export const meta: WsComponentMeta = {
14
21
  category: "typography",
15
22
  type: "rich-text",
16
23
  label: "Text Block",
17
- Icon: TextIcon,
24
+ Icon: TextBlockIcon,
18
25
  presetStyle,
19
26
  children: ["Block of text you can edit"],
20
27
  };
package/src/context.tsx CHANGED
@@ -1,11 +1,14 @@
1
1
  import { type ReadableAtom, atom } from "nanostores";
2
2
  import { createContext } from "react";
3
- import type { Assets, PropsByInstanceId } from "./props";
3
+ import type { Assets } from "@webstudio-is/asset-uploader";
4
+ import type { Pages, PropsByInstanceId } from "./props";
4
5
 
5
6
  export const ReactSdkContext = createContext<{
6
7
  propsByInstanceIdStore: ReadableAtom<PropsByInstanceId>;
7
8
  assetsStore: ReadableAtom<Assets>;
9
+ pagesStore: ReadableAtom<Pages>;
8
10
  }>({
9
11
  propsByInstanceIdStore: atom(new Map()),
10
12
  assetsStore: atom(new Map()),
13
+ pagesStore: atom(new Map()),
11
14
  });