@webstudio-is/react-sdk 0.8.0 → 0.10.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.
- package/lib/app/custom-components/image.js +46 -0
- package/lib/app/custom-components/index.js +18 -0
- package/lib/app/custom-components/link.js +6 -0
- package/lib/app/custom-components/rich-text-link.js +6 -0
- package/lib/app/custom-components/shared/remix-link.js +29 -0
- package/lib/app/handle-request.server.js +19 -0
- package/lib/{remix → app}/index.js +1 -0
- package/lib/app/params.js +10 -0
- package/lib/app/root.js +40 -0
- package/lib/cjs/app/custom-components/image.cjs +63 -0
- package/lib/cjs/app/custom-components/index.cjs +38 -0
- package/lib/cjs/app/custom-components/link.cjs +26 -0
- package/lib/cjs/app/custom-components/rich-text-link.cjs +26 -0
- package/lib/cjs/app/custom-components/shared/remix-link.cjs +49 -0
- package/lib/cjs/app/handle-request.server.cjs +39 -0
- package/lib/cjs/app/index.cjs +20 -0
- package/lib/cjs/app/params.cjs +30 -0
- package/lib/cjs/app/root.cjs +60 -0
- package/lib/cjs/components/__generated__/body.props.json +491 -0
- package/lib/cjs/components/__generated__/bold.props.json +491 -0
- package/lib/cjs/components/__generated__/box.props.json +508 -0
- package/lib/cjs/components/__generated__/button.props.json +547 -0
- package/lib/cjs/components/__generated__/form.props.json +531 -0
- package/lib/cjs/components/__generated__/heading.props.json +497 -0
- package/lib/cjs/components/__generated__/image.props.json +560 -0
- package/lib/cjs/components/__generated__/input.props.json +657 -0
- package/lib/cjs/components/__generated__/italic.props.json +491 -0
- package/lib/cjs/components/__generated__/link.props.json +547 -0
- package/lib/cjs/components/__generated__/paragraph.props.json +491 -0
- package/lib/cjs/components/__generated__/rich-text-link.props.json +547 -0
- package/lib/cjs/components/__generated__/span.props.json +491 -0
- package/lib/cjs/components/__generated__/subscript.props.json +491 -0
- package/lib/cjs/components/__generated__/superscript.props.json +491 -0
- package/lib/cjs/components/__generated__/text-block.props.json +491 -0
- package/lib/cjs/components/body.cjs +29 -6
- package/lib/cjs/components/body.ws.cjs +83 -59
- package/lib/cjs/components/bold.cjs +29 -6
- package/lib/cjs/components/bold.ws.cjs +35 -11
- package/lib/cjs/components/box.cjs +29 -7
- package/lib/cjs/components/box.ws.cjs +40 -16
- package/lib/cjs/components/button.cjs +33 -8
- package/lib/cjs/components/button.ws.cjs +36 -12
- package/lib/cjs/components/component-type.cjs +77 -27
- package/lib/cjs/components/form.cjs +29 -6
- package/lib/cjs/components/form.ws.cjs +45 -21
- package/lib/cjs/components/heading.cjs +29 -7
- package/lib/cjs/components/heading.ws.cjs +36 -12
- package/lib/cjs/components/image.cjs +39 -14
- package/lib/cjs/components/image.ws.cjs +45 -24
- package/lib/cjs/components/index.cjs +145 -35
- package/lib/cjs/components/input.cjs +29 -6
- package/lib/cjs/components/input.ws.cjs +35 -11
- package/lib/cjs/components/italic.cjs +29 -6
- package/lib/cjs/components/italic.ws.cjs +40 -16
- package/lib/cjs/components/link.cjs +32 -7
- package/lib/cjs/components/link.ws.cjs +46 -22
- package/lib/cjs/components/paragraph.cjs +29 -6
- package/lib/cjs/components/paragraph.ws.cjs +36 -12
- package/lib/cjs/components/rich-text-link.cjs +33 -0
- package/lib/cjs/components/rich-text-link.ws.cjs +38 -0
- package/lib/cjs/components/span.cjs +29 -6
- package/lib/cjs/components/span.ws.cjs +35 -11
- package/lib/cjs/components/subscript.cjs +29 -6
- package/lib/cjs/components/subscript.ws.cjs +35 -11
- package/lib/cjs/components/superscript.cjs +29 -6
- package/lib/cjs/components/superscript.ws.cjs +35 -11
- package/lib/cjs/components/text-block.cjs +29 -6
- package/lib/cjs/components/text-block.ws.cjs +42 -18
- package/lib/cjs/css/breakpoints.cjs +27 -7
- package/lib/cjs/css/categories.cjs +218 -203
- package/lib/cjs/css/get-browser-style.cjs +56 -40
- package/lib/cjs/css/index.cjs +18 -17
- package/lib/cjs/db/index.cjs +17 -16
- package/lib/cjs/db/instance.cjs +37 -17
- package/lib/cjs/db/types.cjs +15 -1
- package/lib/cjs/index.cjs +30 -34
- package/lib/cjs/pubsub/create.cjs +76 -61
- package/lib/cjs/pubsub/index.cjs +16 -15
- package/lib/cjs/tree/create-elements-tree.cjs +90 -48
- package/lib/cjs/tree/index.cjs +18 -17
- package/lib/cjs/tree/root.cjs +43 -15
- package/lib/cjs/tree/session-storage-polyfill.cjs +60 -37
- package/lib/cjs/tree/wrapper-component.cjs +53 -46
- package/lib/cjs/user-props/all-user-props.cjs +35 -17
- package/lib/cjs/user-props/index.cjs +19 -18
- package/lib/cjs/user-props/schema.cjs +52 -31
- package/lib/cjs/user-props/types.cjs +15 -1
- package/lib/cjs/user-props/use-user-props-asset.cjs +41 -0
- package/lib/cjs/user-props/use-user-props.cjs +38 -30
- package/lib/components/__generated__/body.props.json +491 -0
- package/lib/components/__generated__/bold.props.json +491 -0
- package/lib/components/__generated__/box.props.json +508 -0
- package/lib/components/__generated__/button.props.json +547 -0
- package/lib/components/__generated__/form.props.json +531 -0
- package/lib/components/__generated__/heading.props.json +497 -0
- package/lib/components/__generated__/image.props.json +560 -0
- package/lib/components/__generated__/input.props.json +657 -0
- package/lib/components/__generated__/italic.props.json +491 -0
- package/lib/components/__generated__/link.props.json +547 -0
- package/lib/components/__generated__/paragraph.props.json +491 -0
- package/lib/components/__generated__/rich-text-link.props.json +547 -0
- package/lib/components/__generated__/span.props.json +491 -0
- package/lib/components/__generated__/subscript.props.json +491 -0
- package/lib/components/__generated__/superscript.props.json +491 -0
- package/lib/components/__generated__/text-block.props.json +491 -0
- package/lib/components/body.js +8 -2
- package/lib/components/body.ws.js +57 -57
- package/lib/components/bold.js +8 -2
- package/lib/components/bold.ws.js +9 -9
- package/lib/components/box.js +11 -3
- package/lib/components/box.ws.js +14 -14
- package/lib/components/button.js +11 -3
- package/lib/components/button.ws.js +10 -10
- package/lib/components/component-type.js +54 -21
- package/lib/components/form.js +8 -2
- package/lib/components/form.ws.js +19 -19
- package/lib/components/heading.js +11 -3
- package/lib/components/heading.ws.js +10 -10
- package/lib/components/image.js +17 -9
- package/lib/components/image.ws.js +19 -22
- package/lib/components/index.js +120 -15
- package/lib/components/input.js +8 -2
- package/lib/components/input.ws.js +9 -9
- package/lib/components/italic.js +8 -2
- package/lib/components/italic.ws.js +14 -14
- package/lib/components/link.js +11 -3
- package/lib/components/link.ws.js +20 -20
- package/lib/components/paragraph.js +8 -2
- package/lib/components/paragraph.ws.js +10 -10
- package/lib/components/rich-text-link.js +13 -0
- package/lib/components/rich-text-link.ws.js +12 -0
- package/lib/components/span.js +8 -2
- package/lib/components/span.ws.js +9 -9
- package/lib/components/subscript.js +8 -2
- package/lib/components/subscript.ws.js +9 -9
- package/lib/components/superscript.js +8 -2
- package/lib/components/superscript.ws.js +9 -9
- package/lib/components/text-block.js +8 -2
- package/lib/components/text-block.ws.js +16 -16
- package/lib/css/breakpoints.js +8 -5
- package/lib/css/categories.js +198 -200
- package/lib/css/get-browser-style.js +35 -35
- package/lib/db/instance.js +14 -10
- package/lib/db/types.js +0 -1
- package/lib/index.js +10 -3
- package/lib/pubsub/create.js +51 -55
- package/lib/tree/create-elements-tree.js +68 -42
- package/lib/tree/root.js +21 -9
- package/lib/tree/session-storage-polyfill.js +41 -34
- package/lib/tree/wrapper-component.js +34 -19
- package/lib/user-props/all-user-props.js +15 -13
- package/lib/user-props/schema.js +33 -29
- package/lib/user-props/types.js +0 -1
- package/lib/user-props/use-user-props-asset.js +21 -0
- package/lib/user-props/use-user-props.js +19 -27
- package/package.json +14 -24
- package/src/app/custom-components/image.tsx +62 -0
- package/src/app/custom-components/index.ts +17 -0
- package/src/app/custom-components/link.tsx +4 -0
- package/src/app/custom-components/rich-text-link.tsx +4 -0
- package/src/app/custom-components/shared/remix-link.tsx +40 -0
- package/src/app/handle-request.server.tsx +21 -0
- package/{lib/cjs/remix/index.d.ts → src/app/index.ts} +1 -1
- package/src/app/params.ts +13 -0
- package/src/app/root.tsx +27 -0
- package/src/components/__generated__/body.props.json +491 -0
- package/src/components/__generated__/bold.props.json +491 -0
- package/src/components/__generated__/box.props.json +508 -0
- package/src/components/__generated__/button.props.json +547 -0
- package/src/components/__generated__/form.props.json +531 -0
- package/src/components/__generated__/heading.props.json +497 -0
- package/src/components/__generated__/image.props.json +560 -0
- package/src/components/__generated__/input.props.json +657 -0
- package/src/components/__generated__/italic.props.json +491 -0
- package/src/components/__generated__/link.props.json +547 -0
- package/src/components/__generated__/paragraph.props.json +491 -0
- package/src/components/__generated__/rich-text-link.props.json +547 -0
- package/src/components/__generated__/span.props.json +491 -0
- package/src/components/__generated__/subscript.props.json +491 -0
- package/src/components/__generated__/superscript.props.json +491 -0
- package/src/components/__generated__/text-block.props.json +491 -0
- package/src/components/body.stories.tsx +11 -0
- package/src/components/body.tsx +10 -0
- package/src/components/body.ws.tsx +63 -0
- package/src/components/bold.stories.tsx +16 -0
- package/src/components/bold.tsx +10 -0
- package/src/components/bold.ws.tsx +12 -0
- package/src/components/box.stories.tsx +17 -0
- package/src/components/box.tsx +31 -0
- package/src/components/box.ws.ts +20 -0
- package/src/components/button.stories.tsx +17 -0
- package/src/components/button.tsx +14 -0
- package/src/components/button.ws.tsx +13 -0
- package/src/components/component-type.ts +89 -0
- package/src/components/form.stories.tsx +14 -0
- package/src/components/form.tsx +10 -0
- package/src/components/form.ws.tsx +25 -0
- package/src/components/heading.stories.tsx +16 -0
- package/src/components/heading.tsx +20 -0
- package/src/components/heading.ws.tsx +13 -0
- package/src/components/image.stories.tsx +15 -0
- package/src/components/image.tsx +52 -0
- package/src/components/image.ws.tsx +28 -0
- package/src/components/index.test.ts +28 -0
- package/src/components/index.ts +159 -0
- package/src/components/input.stories.tsx +14 -0
- package/src/components/input.tsx +11 -0
- package/src/components/input.ws.tsx +12 -0
- package/src/components/italic.stories.tsx +16 -0
- package/src/components/italic.tsx +10 -0
- package/src/components/italic.ws.tsx +20 -0
- package/src/components/link.stories.tsx +16 -0
- package/src/components/link.tsx +9 -0
- package/src/components/link.ws.tsx +26 -0
- package/src/components/paragraph.stories.tsx +16 -0
- package/src/components/paragraph.tsx +10 -0
- package/src/components/paragraph.ws.tsx +13 -0
- package/src/components/rich-text-link.stories.tsx +16 -0
- package/src/components/rich-text-link.tsx +9 -0
- package/src/components/rich-text-link.ws.tsx +12 -0
- package/src/components/span.stories.tsx +16 -0
- package/src/components/span.tsx +10 -0
- package/src/components/span.ws.tsx +12 -0
- package/src/components/subscript.stories.tsx +16 -0
- package/src/components/subscript.tsx +10 -0
- package/src/components/subscript.ws.tsx +12 -0
- package/src/components/superscript.stories.tsx +16 -0
- package/src/components/superscript.tsx +10 -0
- package/src/components/superscript.ws.tsx +12 -0
- package/src/components/text-block.stories.tsx +16 -0
- package/src/components/text-block.tsx +10 -0
- package/src/components/text-block.ws.tsx +22 -0
- package/src/css/breakpoints.ts +10 -0
- package/src/css/categories.ts +254 -0
- package/src/css/get-browser-style.ts +50 -0
- package/{lib/cjs/css/index.d.ts → src/css/index.ts} +0 -1
- package/{lib/cjs/db/index.d.ts → src/db/index.ts} +0 -1
- package/src/db/instance.ts +34 -0
- package/src/db/types.ts +18 -0
- package/src/index.ts +12 -0
- package/src/pubsub/create.ts +84 -0
- package/src/pubsub/index.ts +1 -0
- package/src/tree/create-elements-tree.tsx +102 -0
- package/{lib/tree/index.d.ts → src/tree/index.ts} +0 -1
- package/src/tree/root.ts +45 -0
- package/src/tree/session-storage-polyfill.tsx +50 -0
- package/src/tree/wrapper-component.tsx +48 -0
- package/src/user-props/all-user-props.ts +22 -0
- package/{lib/cjs/user-props/index.d.ts → src/user-props/index.ts} +0 -1
- package/src/user-props/schema.ts +35 -0
- package/src/user-props/types.ts +14 -0
- package/src/user-props/use-user-props-asset.ts +31 -0
- package/src/user-props/use-user-props.ts +30 -0
- package/lib/arg-types/utils.d.ts +0 -10
- package/lib/arg-types/utils.d.ts.map +0 -1
- package/lib/arg-types/utils.js +0 -83
- package/lib/cjs/arg-types/utils.cjs +0 -88
- package/lib/cjs/arg-types/utils.d.ts +0 -10
- package/lib/cjs/arg-types/utils.d.ts.map +0 -1
- package/lib/cjs/components/body.d.ts +0 -3
- package/lib/cjs/components/body.d.ts.map +0 -1
- package/lib/cjs/components/body.props.json +0 -491
- package/lib/cjs/components/body.stories.cjs +0 -11
- package/lib/cjs/components/body.stories.d.ts +0 -7
- package/lib/cjs/components/body.stories.d.ts.map +0 -1
- package/lib/cjs/components/body.ws.d.ts +0 -5
- package/lib/cjs/components/body.ws.d.ts.map +0 -1
- package/lib/cjs/components/bold.d.ts +0 -3
- package/lib/cjs/components/bold.d.ts.map +0 -1
- package/lib/cjs/components/bold.props.json +0 -491
- package/lib/cjs/components/bold.stories.cjs +0 -14
- package/lib/cjs/components/bold.stories.d.ts +0 -6
- package/lib/cjs/components/bold.stories.d.ts.map +0 -1
- package/lib/cjs/components/bold.ws.d.ts +0 -5
- package/lib/cjs/components/bold.ws.d.ts.map +0 -1
- package/lib/cjs/components/box.d.ts +0 -8
- package/lib/cjs/components/box.d.ts.map +0 -1
- package/lib/cjs/components/box.props.json +0 -508
- package/lib/cjs/components/box.stories.cjs +0 -12
- package/lib/cjs/components/box.stories.d.ts +0 -10
- package/lib/cjs/components/box.stories.d.ts.map +0 -1
- package/lib/cjs/components/box.ws.d.ts +0 -5
- package/lib/cjs/components/box.ws.d.ts.map +0 -1
- package/lib/cjs/components/button.d.ts +0 -3
- package/lib/cjs/components/button.d.ts.map +0 -1
- package/lib/cjs/components/button.props.json +0 -547
- package/lib/cjs/components/button.stories.cjs +0 -14
- package/lib/cjs/components/button.stories.d.ts +0 -6
- package/lib/cjs/components/button.stories.d.ts.map +0 -1
- package/lib/cjs/components/button.ws.d.ts +0 -5
- package/lib/cjs/components/button.ws.d.ts.map +0 -1
- package/lib/cjs/components/component-type.d.ts +0 -17
- package/lib/cjs/components/component-type.d.ts.map +0 -1
- package/lib/cjs/components/form.d.ts +0 -3
- package/lib/cjs/components/form.d.ts.map +0 -1
- package/lib/cjs/components/form.props.json +0 -531
- package/lib/cjs/components/form.stories.cjs +0 -12
- package/lib/cjs/components/form.stories.d.ts +0 -6
- package/lib/cjs/components/form.stories.d.ts.map +0 -1
- package/lib/cjs/components/form.ws.d.ts +0 -5
- package/lib/cjs/components/form.ws.d.ts.map +0 -1
- package/lib/cjs/components/heading.d.ts +0 -8
- package/lib/cjs/components/heading.d.ts.map +0 -1
- package/lib/cjs/components/heading.props.json +0 -497
- package/lib/cjs/components/heading.stories.cjs +0 -14
- package/lib/cjs/components/heading.stories.d.ts +0 -10
- package/lib/cjs/components/heading.stories.d.ts.map +0 -1
- package/lib/cjs/components/heading.ws.d.ts +0 -5
- package/lib/cjs/components/heading.ws.d.ts.map +0 -1
- package/lib/cjs/components/image.d.ts +0 -3
- package/lib/cjs/components/image.d.ts.map +0 -1
- package/lib/cjs/components/image.props.json +0 -575
- package/lib/cjs/components/image.stories.cjs +0 -12
- package/lib/cjs/components/image.stories.d.ts +0 -6
- package/lib/cjs/components/image.stories.d.ts.map +0 -1
- package/lib/cjs/components/image.ws.d.ts +0 -5
- package/lib/cjs/components/image.ws.d.ts.map +0 -1
- package/lib/cjs/components/index.d.ts +0 -16
- package/lib/cjs/components/index.d.ts.map +0 -1
- package/lib/cjs/components/index.test.cjs +0 -33
- package/lib/cjs/components/index.test.d.ts +0 -2
- package/lib/cjs/components/index.test.d.ts.map +0 -1
- package/lib/cjs/components/input.d.ts +0 -3
- package/lib/cjs/components/input.d.ts.map +0 -1
- package/lib/cjs/components/input.props.json +0 -657
- package/lib/cjs/components/input.stories.cjs +0 -12
- package/lib/cjs/components/input.stories.d.ts +0 -6
- package/lib/cjs/components/input.stories.d.ts.map +0 -1
- package/lib/cjs/components/input.ws.d.ts +0 -5
- package/lib/cjs/components/input.ws.d.ts.map +0 -1
- package/lib/cjs/components/italic.d.ts +0 -3
- package/lib/cjs/components/italic.d.ts.map +0 -1
- package/lib/cjs/components/italic.props.json +0 -491
- package/lib/cjs/components/italic.stories.cjs +0 -14
- package/lib/cjs/components/italic.stories.d.ts +0 -6
- package/lib/cjs/components/italic.stories.d.ts.map +0 -1
- package/lib/cjs/components/italic.ws.d.ts +0 -5
- package/lib/cjs/components/italic.ws.d.ts.map +0 -1
- package/lib/cjs/components/link.d.ts +0 -8
- package/lib/cjs/components/link.d.ts.map +0 -1
- package/lib/cjs/components/link.props.json +0 -547
- package/lib/cjs/components/link.stories.cjs +0 -14
- package/lib/cjs/components/link.stories.d.ts +0 -10
- package/lib/cjs/components/link.stories.d.ts.map +0 -1
- package/lib/cjs/components/link.ws.d.ts +0 -5
- package/lib/cjs/components/link.ws.d.ts.map +0 -1
- package/lib/cjs/components/meta.cjs +0 -40
- package/lib/cjs/components/meta.d.ts +0 -7479
- package/lib/cjs/components/meta.d.ts.map +0 -1
- package/lib/cjs/components/paragraph.d.ts +0 -3
- package/lib/cjs/components/paragraph.d.ts.map +0 -1
- package/lib/cjs/components/paragraph.props.json +0 -491
- package/lib/cjs/components/paragraph.stories.cjs +0 -14
- package/lib/cjs/components/paragraph.stories.d.ts +0 -6
- package/lib/cjs/components/paragraph.stories.d.ts.map +0 -1
- package/lib/cjs/components/paragraph.ws.d.ts +0 -5
- package/lib/cjs/components/paragraph.ws.d.ts.map +0 -1
- package/lib/cjs/components/span.d.ts +0 -3
- package/lib/cjs/components/span.d.ts.map +0 -1
- package/lib/cjs/components/span.props.json +0 -491
- package/lib/cjs/components/span.stories.cjs +0 -14
- package/lib/cjs/components/span.stories.d.ts +0 -6
- package/lib/cjs/components/span.stories.d.ts.map +0 -1
- package/lib/cjs/components/span.ws.d.ts +0 -5
- package/lib/cjs/components/span.ws.d.ts.map +0 -1
- package/lib/cjs/components/subscript.d.ts +0 -3
- package/lib/cjs/components/subscript.d.ts.map +0 -1
- package/lib/cjs/components/subscript.props.json +0 -491
- package/lib/cjs/components/subscript.stories.cjs +0 -14
- package/lib/cjs/components/subscript.stories.d.ts +0 -6
- package/lib/cjs/components/subscript.stories.d.ts.map +0 -1
- package/lib/cjs/components/subscript.ws.d.ts +0 -5
- package/lib/cjs/components/subscript.ws.d.ts.map +0 -1
- package/lib/cjs/components/superscript.d.ts +0 -3
- package/lib/cjs/components/superscript.d.ts.map +0 -1
- package/lib/cjs/components/superscript.props.json +0 -491
- package/lib/cjs/components/superscript.stories.cjs +0 -14
- package/lib/cjs/components/superscript.stories.d.ts +0 -6
- package/lib/cjs/components/superscript.stories.d.ts.map +0 -1
- package/lib/cjs/components/superscript.ws.d.ts +0 -5
- package/lib/cjs/components/superscript.ws.d.ts.map +0 -1
- package/lib/cjs/components/text-block.d.ts +0 -3
- package/lib/cjs/components/text-block.d.ts.map +0 -1
- package/lib/cjs/components/text-block.props.json +0 -491
- package/lib/cjs/components/text-block.stories.cjs +0 -14
- package/lib/cjs/components/text-block.stories.d.ts +0 -6
- package/lib/cjs/components/text-block.stories.d.ts.map +0 -1
- package/lib/cjs/components/text-block.ws.d.ts +0 -5
- package/lib/cjs/components/text-block.ws.d.ts.map +0 -1
- package/lib/cjs/css/breakpoints.d.ts +0 -4
- package/lib/cjs/css/breakpoints.d.ts.map +0 -1
- package/lib/cjs/css/categories.d.ts +0 -408
- package/lib/cjs/css/categories.d.ts.map +0 -1
- package/lib/cjs/css/get-browser-style.d.ts +0 -3
- package/lib/cjs/css/get-browser-style.d.ts.map +0 -1
- package/lib/cjs/css/index.d.ts.map +0 -1
- package/lib/cjs/db/index.d.ts.map +0 -1
- package/lib/cjs/db/instance.d.ts +0 -14
- package/lib/cjs/db/instance.d.ts.map +0 -1
- package/lib/cjs/db/types.d.ts +0 -17
- package/lib/cjs/db/types.d.ts.map +0 -1
- package/lib/cjs/index.d.ts +0 -9
- package/lib/cjs/index.d.ts.map +0 -1
- package/lib/cjs/pubsub/create.d.ts +0 -29
- package/lib/cjs/pubsub/create.d.ts.map +0 -1
- package/lib/cjs/pubsub/index.d.ts +0 -2
- package/lib/cjs/pubsub/index.d.ts.map +0 -1
- package/lib/cjs/remix/handle-request.server.cjs +0 -15
- package/lib/cjs/remix/handle-request.server.d.ts +0 -3
- package/lib/cjs/remix/handle-request.server.d.ts.map +0 -1
- package/lib/cjs/remix/index.cjs +0 -18
- package/lib/cjs/remix/index.d.ts.map +0 -1
- package/lib/cjs/remix/root.cjs +0 -13
- package/lib/cjs/remix/root.d.ts +0 -8
- package/lib/cjs/remix/root.d.ts.map +0 -1
- package/lib/cjs/tree/create-elements-tree.d.ts +0 -19
- package/lib/cjs/tree/create-elements-tree.d.ts.map +0 -1
- package/lib/cjs/tree/index.d.ts +0 -4
- package/lib/cjs/tree/index.d.ts.map +0 -1
- package/lib/cjs/tree/root.d.ts +0 -18
- package/lib/cjs/tree/root.d.ts.map +0 -1
- package/lib/cjs/tree/session-storage-polyfill.d.ts +0 -2
- package/lib/cjs/tree/session-storage-polyfill.d.ts.map +0 -1
- package/lib/cjs/tree/wrapper-component.d.ts +0 -12
- package/lib/cjs/tree/wrapper-component.d.ts.map +0 -1
- package/lib/cjs/user-props/all-user-props.d.ts +0 -8
- package/lib/cjs/user-props/all-user-props.d.ts.map +0 -1
- package/lib/cjs/user-props/index.d.ts.map +0 -1
- package/lib/cjs/user-props/schema.d.ts +0 -72
- package/lib/cjs/user-props/schema.d.ts.map +0 -1
- package/lib/cjs/user-props/types.d.ts +0 -13
- package/lib/cjs/user-props/types.d.ts.map +0 -1
- package/lib/cjs/user-props/use-user-props.d.ts +0 -12
- package/lib/cjs/user-props/use-user-props.d.ts.map +0 -1
- package/lib/components/body.d.ts +0 -3
- package/lib/components/body.d.ts.map +0 -1
- package/lib/components/body.props.json +0 -491
- package/lib/components/body.stories.d.ts +0 -7
- package/lib/components/body.stories.d.ts.map +0 -1
- package/lib/components/body.stories.js +0 -7
- package/lib/components/body.ws.d.ts +0 -5
- package/lib/components/body.ws.d.ts.map +0 -1
- package/lib/components/bold.d.ts +0 -3
- package/lib/components/bold.d.ts.map +0 -1
- package/lib/components/bold.props.json +0 -491
- package/lib/components/bold.stories.d.ts +0 -6
- package/lib/components/bold.stories.d.ts.map +0 -1
- package/lib/components/bold.stories.js +0 -11
- package/lib/components/bold.ws.d.ts +0 -5
- package/lib/components/bold.ws.d.ts.map +0 -1
- package/lib/components/box.d.ts +0 -8
- package/lib/components/box.d.ts.map +0 -1
- package/lib/components/box.props.json +0 -508
- package/lib/components/box.stories.d.ts +0 -10
- package/lib/components/box.stories.d.ts.map +0 -1
- package/lib/components/box.stories.js +0 -9
- package/lib/components/box.ws.d.ts +0 -5
- package/lib/components/box.ws.d.ts.map +0 -1
- package/lib/components/button.d.ts +0 -3
- package/lib/components/button.d.ts.map +0 -1
- package/lib/components/button.props.json +0 -547
- package/lib/components/button.stories.d.ts +0 -6
- package/lib/components/button.stories.d.ts.map +0 -1
- package/lib/components/button.stories.js +0 -11
- package/lib/components/button.ws.d.ts +0 -5
- package/lib/components/button.ws.d.ts.map +0 -1
- package/lib/components/component-type.d.ts +0 -17
- package/lib/components/component-type.d.ts.map +0 -1
- package/lib/components/form.d.ts +0 -3
- package/lib/components/form.d.ts.map +0 -1
- package/lib/components/form.props.json +0 -531
- package/lib/components/form.stories.d.ts +0 -6
- package/lib/components/form.stories.d.ts.map +0 -1
- package/lib/components/form.stories.js +0 -9
- package/lib/components/form.ws.d.ts +0 -5
- package/lib/components/form.ws.d.ts.map +0 -1
- package/lib/components/heading.d.ts +0 -8
- package/lib/components/heading.d.ts.map +0 -1
- package/lib/components/heading.props.json +0 -497
- package/lib/components/heading.stories.d.ts +0 -10
- package/lib/components/heading.stories.d.ts.map +0 -1
- package/lib/components/heading.stories.js +0 -11
- package/lib/components/heading.ws.d.ts +0 -5
- package/lib/components/heading.ws.d.ts.map +0 -1
- package/lib/components/image.d.ts +0 -3
- package/lib/components/image.d.ts.map +0 -1
- package/lib/components/image.props.json +0 -575
- package/lib/components/image.stories.d.ts +0 -6
- package/lib/components/image.stories.d.ts.map +0 -1
- package/lib/components/image.stories.js +0 -9
- package/lib/components/image.ws.d.ts +0 -5
- package/lib/components/image.ws.d.ts.map +0 -1
- package/lib/components/index.d.ts +0 -16
- package/lib/components/index.d.ts.map +0 -1
- package/lib/components/index.test.d.ts +0 -2
- package/lib/components/index.test.d.ts.map +0 -1
- package/lib/components/index.test.js +0 -8
- package/lib/components/input.d.ts +0 -3
- package/lib/components/input.d.ts.map +0 -1
- package/lib/components/input.props.json +0 -657
- package/lib/components/input.stories.d.ts +0 -6
- package/lib/components/input.stories.d.ts.map +0 -1
- package/lib/components/input.stories.js +0 -9
- package/lib/components/input.ws.d.ts +0 -5
- package/lib/components/input.ws.d.ts.map +0 -1
- package/lib/components/italic.d.ts +0 -3
- package/lib/components/italic.d.ts.map +0 -1
- package/lib/components/italic.props.json +0 -491
- package/lib/components/italic.stories.d.ts +0 -6
- package/lib/components/italic.stories.d.ts.map +0 -1
- package/lib/components/italic.stories.js +0 -11
- package/lib/components/italic.ws.d.ts +0 -5
- package/lib/components/italic.ws.d.ts.map +0 -1
- package/lib/components/link.d.ts +0 -8
- package/lib/components/link.d.ts.map +0 -1
- package/lib/components/link.props.json +0 -547
- package/lib/components/link.stories.d.ts +0 -10
- package/lib/components/link.stories.d.ts.map +0 -1
- package/lib/components/link.stories.js +0 -11
- package/lib/components/link.ws.d.ts +0 -5
- package/lib/components/link.ws.d.ts.map +0 -1
- package/lib/components/meta.d.ts +0 -7479
- package/lib/components/meta.d.ts.map +0 -1
- package/lib/components/meta.js +0 -34
- package/lib/components/paragraph.d.ts +0 -3
- package/lib/components/paragraph.d.ts.map +0 -1
- package/lib/components/paragraph.props.json +0 -491
- package/lib/components/paragraph.stories.d.ts +0 -6
- package/lib/components/paragraph.stories.d.ts.map +0 -1
- package/lib/components/paragraph.stories.js +0 -11
- package/lib/components/paragraph.ws.d.ts +0 -5
- package/lib/components/paragraph.ws.d.ts.map +0 -1
- package/lib/components/span.d.ts +0 -3
- package/lib/components/span.d.ts.map +0 -1
- package/lib/components/span.props.json +0 -491
- package/lib/components/span.stories.d.ts +0 -6
- package/lib/components/span.stories.d.ts.map +0 -1
- package/lib/components/span.stories.js +0 -11
- package/lib/components/span.ws.d.ts +0 -5
- package/lib/components/span.ws.d.ts.map +0 -1
- package/lib/components/subscript.d.ts +0 -3
- package/lib/components/subscript.d.ts.map +0 -1
- package/lib/components/subscript.props.json +0 -491
- package/lib/components/subscript.stories.d.ts +0 -6
- package/lib/components/subscript.stories.d.ts.map +0 -1
- package/lib/components/subscript.stories.js +0 -11
- package/lib/components/subscript.ws.d.ts +0 -5
- package/lib/components/subscript.ws.d.ts.map +0 -1
- package/lib/components/superscript.d.ts +0 -3
- package/lib/components/superscript.d.ts.map +0 -1
- package/lib/components/superscript.props.json +0 -491
- package/lib/components/superscript.stories.d.ts +0 -6
- package/lib/components/superscript.stories.d.ts.map +0 -1
- package/lib/components/superscript.stories.js +0 -11
- package/lib/components/superscript.ws.d.ts +0 -5
- package/lib/components/superscript.ws.d.ts.map +0 -1
- package/lib/components/text-block.d.ts +0 -3
- package/lib/components/text-block.d.ts.map +0 -1
- package/lib/components/text-block.props.json +0 -491
- package/lib/components/text-block.stories.d.ts +0 -6
- package/lib/components/text-block.stories.d.ts.map +0 -1
- package/lib/components/text-block.stories.js +0 -11
- package/lib/components/text-block.ws.d.ts +0 -5
- package/lib/components/text-block.ws.d.ts.map +0 -1
- package/lib/css/breakpoints.d.ts +0 -4
- package/lib/css/breakpoints.d.ts.map +0 -1
- package/lib/css/categories.d.ts +0 -408
- package/lib/css/categories.d.ts.map +0 -1
- package/lib/css/get-browser-style.d.ts +0 -3
- package/lib/css/get-browser-style.d.ts.map +0 -1
- package/lib/css/index.d.ts +0 -4
- package/lib/css/index.d.ts.map +0 -1
- package/lib/db/index.d.ts +0 -3
- package/lib/db/index.d.ts.map +0 -1
- package/lib/db/instance.d.ts +0 -14
- package/lib/db/instance.d.ts.map +0 -1
- package/lib/db/types.d.ts +0 -17
- package/lib/db/types.d.ts.map +0 -1
- package/lib/index.d.ts +0 -9
- package/lib/index.d.ts.map +0 -1
- package/lib/pubsub/create.d.ts +0 -29
- package/lib/pubsub/create.d.ts.map +0 -1
- package/lib/pubsub/index.d.ts +0 -2
- package/lib/pubsub/index.d.ts.map +0 -1
- package/lib/remix/handle-request.server.d.ts +0 -3
- package/lib/remix/handle-request.server.d.ts.map +0 -1
- package/lib/remix/handle-request.server.js +0 -11
- package/lib/remix/index.d.ts +0 -3
- package/lib/remix/index.d.ts.map +0 -1
- package/lib/remix/root.d.ts +0 -8
- package/lib/remix/root.d.ts.map +0 -1
- package/lib/remix/root.js +0 -9
- package/lib/tree/create-elements-tree.d.ts +0 -19
- package/lib/tree/create-elements-tree.d.ts.map +0 -1
- package/lib/tree/index.d.ts.map +0 -1
- package/lib/tree/root.d.ts +0 -18
- package/lib/tree/root.d.ts.map +0 -1
- package/lib/tree/session-storage-polyfill.d.ts +0 -2
- package/lib/tree/session-storage-polyfill.d.ts.map +0 -1
- package/lib/tree/wrapper-component.d.ts +0 -12
- package/lib/tree/wrapper-component.d.ts.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/user-props/all-user-props.d.ts +0 -8
- package/lib/user-props/all-user-props.d.ts.map +0 -1
- package/lib/user-props/index.d.ts +0 -5
- package/lib/user-props/index.d.ts.map +0 -1
- package/lib/user-props/schema.d.ts +0 -72
- package/lib/user-props/schema.d.ts.map +0 -1
- package/lib/user-props/types.d.ts +0 -13
- package/lib/user-props/types.d.ts.map +0 -1
- package/lib/user-props/use-user-props.d.ts +0 -12
- package/lib/user-props/use-user-props.d.ts.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
const defaultTag = "button";
|
|
4
|
+
|
|
5
|
+
type ButtonProps = ComponentProps<typeof defaultTag>;
|
|
6
|
+
|
|
7
|
+
export const Button = forwardRef<ElementRef<typeof defaultTag>, ButtonProps>(
|
|
8
|
+
(props, ref) => <button {...props} ref={ref} />
|
|
9
|
+
);
|
|
10
|
+
|
|
11
|
+
Button.defaultProps = {
|
|
12
|
+
type: "submit", // Match the platform default
|
|
13
|
+
};
|
|
14
|
+
Button.displayName = "Button";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ButtonIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/button.props.json";
|
|
4
|
+
|
|
5
|
+
const meta: WsComponentMeta = {
|
|
6
|
+
type: "rich-text",
|
|
7
|
+
label: "Button",
|
|
8
|
+
Icon: ButtonIcon,
|
|
9
|
+
children: ["Button text you can edit"],
|
|
10
|
+
props: props as MetaProps,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default meta;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { FunctionComponent } from "react";
|
|
3
|
+
import type { IconProps } from "@webstudio-is/icons";
|
|
4
|
+
import type { Style } from "@webstudio-is/css-data";
|
|
5
|
+
|
|
6
|
+
export type MetaProps = Partial<z.infer<typeof Props>>;
|
|
7
|
+
|
|
8
|
+
export type WsComponentMeta = {
|
|
9
|
+
/**
|
|
10
|
+
* body - can accept other components with dnd but not listed
|
|
11
|
+
* container - can accept other components with dnd
|
|
12
|
+
* control - usually form controls like inputs, without children
|
|
13
|
+
* embed - images, videos or other embeddable components, without children
|
|
14
|
+
* rich-text - editable text component
|
|
15
|
+
* rich-text-child - formatted text fragment, not listed in components list
|
|
16
|
+
*/
|
|
17
|
+
type:
|
|
18
|
+
| "body"
|
|
19
|
+
| "container"
|
|
20
|
+
| "control"
|
|
21
|
+
| "embed"
|
|
22
|
+
| "rich-text"
|
|
23
|
+
| "rich-text-child";
|
|
24
|
+
label: string;
|
|
25
|
+
Icon: FunctionComponent<IconProps>;
|
|
26
|
+
defaultStyle?: Style;
|
|
27
|
+
children?: Array<string>;
|
|
28
|
+
props: MetaProps;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const Props = z.record(
|
|
32
|
+
z.union([
|
|
33
|
+
z.object({
|
|
34
|
+
type: z.literal("number"),
|
|
35
|
+
required: z.boolean(),
|
|
36
|
+
defaultValue: z.number().nullable(),
|
|
37
|
+
}),
|
|
38
|
+
|
|
39
|
+
z.object({
|
|
40
|
+
type: z.literal("text"),
|
|
41
|
+
required: z.boolean(),
|
|
42
|
+
defaultValue: z.string().nullable(),
|
|
43
|
+
}),
|
|
44
|
+
|
|
45
|
+
z.object({
|
|
46
|
+
type: z.literal("color"),
|
|
47
|
+
required: z.boolean(),
|
|
48
|
+
defaultValue: z.string().nullable(),
|
|
49
|
+
}),
|
|
50
|
+
|
|
51
|
+
z.object({
|
|
52
|
+
type: z.literal("boolean"),
|
|
53
|
+
required: z.boolean(),
|
|
54
|
+
defaultValue: z.boolean().nullable(),
|
|
55
|
+
}),
|
|
56
|
+
|
|
57
|
+
z.object({
|
|
58
|
+
type: z.enum([
|
|
59
|
+
"radio",
|
|
60
|
+
"inline-radio",
|
|
61
|
+
"check",
|
|
62
|
+
"inline-check",
|
|
63
|
+
"multi-select",
|
|
64
|
+
"select",
|
|
65
|
+
]),
|
|
66
|
+
required: z.boolean(),
|
|
67
|
+
options: z.array(z.string()),
|
|
68
|
+
defaultValue: z.string().nullable(),
|
|
69
|
+
}),
|
|
70
|
+
])
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
export const WsComponentMeta = z.lazy(() =>
|
|
74
|
+
z.object({
|
|
75
|
+
type: z.enum([
|
|
76
|
+
"body",
|
|
77
|
+
"container",
|
|
78
|
+
"control",
|
|
79
|
+
"embed",
|
|
80
|
+
"rich-text",
|
|
81
|
+
"rich-text-child",
|
|
82
|
+
]),
|
|
83
|
+
label: z.string(),
|
|
84
|
+
Icon: z.any(),
|
|
85
|
+
defaultStyle: z.optional(z.any()),
|
|
86
|
+
children: z.optional(z.array(z.string())),
|
|
87
|
+
props: Props,
|
|
88
|
+
})
|
|
89
|
+
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Form as FormPrimitive } from "./form";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Form",
|
|
6
|
+
component: FormPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof FormPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof FormPrimitive> = (args) => (
|
|
10
|
+
<FormPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Form = Template.bind({});
|
|
14
|
+
Form.args = {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
const defaultTag = "form";
|
|
4
|
+
|
|
5
|
+
export const Form = forwardRef<
|
|
6
|
+
ElementRef<typeof defaultTag>,
|
|
7
|
+
ComponentProps<typeof defaultTag>
|
|
8
|
+
>((props, ref) => <form {...props} ref={ref} />);
|
|
9
|
+
|
|
10
|
+
Form.displayName = "Form";
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { FormIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/form.props.json";
|
|
4
|
+
|
|
5
|
+
const defaultStyle = {
|
|
6
|
+
minHeight: {
|
|
7
|
+
type: "unit",
|
|
8
|
+
unit: "px",
|
|
9
|
+
value: 20,
|
|
10
|
+
},
|
|
11
|
+
boxSizing: {
|
|
12
|
+
type: "keyword",
|
|
13
|
+
value: "border-box",
|
|
14
|
+
},
|
|
15
|
+
} as const;
|
|
16
|
+
|
|
17
|
+
const meta: WsComponentMeta = {
|
|
18
|
+
type: "container",
|
|
19
|
+
label: "Form",
|
|
20
|
+
Icon: FormIcon,
|
|
21
|
+
defaultStyle,
|
|
22
|
+
props: props as MetaProps,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export default meta;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Heading as HeadingPrimitive } from "./heading";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Heading",
|
|
6
|
+
component: HeadingPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof HeadingPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof HeadingPrimitive> = (args) => (
|
|
10
|
+
<HeadingPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Heading = Template.bind({});
|
|
14
|
+
Heading.args = {
|
|
15
|
+
children: "Heading",
|
|
16
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
forwardRef,
|
|
3
|
+
createElement,
|
|
4
|
+
type ElementRef,
|
|
5
|
+
type ComponentProps,
|
|
6
|
+
} from "react";
|
|
7
|
+
|
|
8
|
+
const defaultTag = "h1";
|
|
9
|
+
|
|
10
|
+
type Props = ComponentProps<typeof defaultTag> & {
|
|
11
|
+
tag?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export const Heading = forwardRef<ElementRef<typeof defaultTag>, Props>(
|
|
15
|
+
({ tag = defaultTag, ...props }, ref) => {
|
|
16
|
+
return createElement(tag as string, { ...props, ref });
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
Heading.displayName = "Heading";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { HeadingIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/heading.props.json";
|
|
4
|
+
|
|
5
|
+
const meta: WsComponentMeta = {
|
|
6
|
+
type: "rich-text",
|
|
7
|
+
label: "Heading",
|
|
8
|
+
Icon: HeadingIcon,
|
|
9
|
+
children: ["Heading you can edit"],
|
|
10
|
+
props: props as MetaProps,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default meta;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ComponentMeta, ComponentStory } from "@storybook/react";
|
|
2
|
+
import { Image as ImagePrimitive } from "./image";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Image",
|
|
6
|
+
component: ImagePrimitive,
|
|
7
|
+
} as ComponentMeta<typeof ImagePrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof ImagePrimitive> = (args) => (
|
|
10
|
+
<ImagePrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Image = Template.bind({});
|
|
14
|
+
|
|
15
|
+
Image.args = {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
const defaultTag = "img";
|
|
4
|
+
|
|
5
|
+
// quality and optimize can be overwritten and used by asset transform
|
|
6
|
+
// Or we need and additional way to pass them upper level
|
|
7
|
+
type ImageProps = ComponentProps<typeof defaultTag>;
|
|
8
|
+
|
|
9
|
+
export const Image = forwardRef<ElementRef<typeof defaultTag>, ImageProps>(
|
|
10
|
+
(imageProps, ref) => {
|
|
11
|
+
return (
|
|
12
|
+
<img
|
|
13
|
+
{...imageProps}
|
|
14
|
+
src={imageProps.src || imagePlaceholderSvg}
|
|
15
|
+
ref={ref}
|
|
16
|
+
/>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
Image.defaultProps = {
|
|
22
|
+
src: "",
|
|
23
|
+
width: "",
|
|
24
|
+
height: "",
|
|
25
|
+
alt: "",
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
Image.displayName = "Image";
|
|
29
|
+
|
|
30
|
+
const imagePlaceholderSvg = `data:image/svg+xml;base64,${btoa(`<svg
|
|
31
|
+
width="140"
|
|
32
|
+
height="140"
|
|
33
|
+
viewBox="0 0 600 600"
|
|
34
|
+
fill="none"
|
|
35
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
36
|
+
>
|
|
37
|
+
<rect width="600" height="600" fill="#CCCCCC" />
|
|
38
|
+
<path
|
|
39
|
+
fill-rule="evenodd"
|
|
40
|
+
clip-rule="evenodd"
|
|
41
|
+
d="M450 170H150C141.716 170 135 176.716 135 185V415C135 423.284 141.716 430 150 430H450C458.284 430 465 423.284 465 415V185C465 176.716 458.284 170 450 170ZM150 145C127.909 145 110 162.909 110 185V415C110 437.091 127.909 455 150 455H450C472.091 455 490 437.091 490 415V185C490 162.909 472.091 145 450 145H150Z"
|
|
42
|
+
fill="#A2A2A2"
|
|
43
|
+
/>
|
|
44
|
+
<path
|
|
45
|
+
d="M237.135 235.012C237.135 255.723 220.345 272.512 199.635 272.512C178.924 272.512 162.135 255.723 162.135 235.012C162.135 214.301 178.924 197.512 199.635 197.512C220.345 197.512 237.135 214.301 237.135 235.012Z"
|
|
46
|
+
fill="#A2A2A2"
|
|
47
|
+
/>
|
|
48
|
+
<path
|
|
49
|
+
d="M160 405V367.205L221.609 306.364L256.552 338.628L358.161 234L440 316.043V405H160Z"
|
|
50
|
+
fill="#A2A2A2"
|
|
51
|
+
/>
|
|
52
|
+
</svg>`)}`;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ImageIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/image.props.json";
|
|
4
|
+
|
|
5
|
+
const defaultStyle = {
|
|
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",
|
|
17
|
+
},
|
|
18
|
+
} as const;
|
|
19
|
+
|
|
20
|
+
const meta: WsComponentMeta = {
|
|
21
|
+
type: "embed",
|
|
22
|
+
label: "Image",
|
|
23
|
+
Icon: ImageIcon,
|
|
24
|
+
defaultStyle,
|
|
25
|
+
props: props as MetaProps,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default meta;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getComponentNames,
|
|
3
|
+
getComponentMeta,
|
|
4
|
+
getComponentMetaProps,
|
|
5
|
+
registerComponentsMeta,
|
|
6
|
+
} from "./index";
|
|
7
|
+
import { WsComponentMeta } from "./component-type";
|
|
8
|
+
|
|
9
|
+
test.each(getComponentNames())("validating meta definition of %s", (name) => {
|
|
10
|
+
WsComponentMeta.parse(getComponentMeta(name));
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
test("defaultValue will be used from Native Component", () => {
|
|
14
|
+
registerComponentsMeta({
|
|
15
|
+
Image: {
|
|
16
|
+
props: {
|
|
17
|
+
src: {
|
|
18
|
+
defaultValue: null,
|
|
19
|
+
required: false,
|
|
20
|
+
type: "text",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const props = getComponentMetaProps("Image");
|
|
27
|
+
expect(props?.src?.defaultValue).toEqual("");
|
|
28
|
+
});
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import BodyMeta from "./body.ws";
|
|
2
|
+
import BoxMeta from "./box.ws";
|
|
3
|
+
import TextBlockMeta from "./text-block.ws";
|
|
4
|
+
import HeadingMeta from "./heading.ws";
|
|
5
|
+
import ParagraphMeta from "./paragraph.ws";
|
|
6
|
+
import LinkMeta from "./link.ws";
|
|
7
|
+
import RichTextLinkMeta from "./rich-text-link.ws";
|
|
8
|
+
import SpanMeta from "./span.ws";
|
|
9
|
+
import BoldMeta from "./bold.ws";
|
|
10
|
+
import ItalicMeta from "./italic.ws";
|
|
11
|
+
import SuperscriptMeta from "./superscript.ws";
|
|
12
|
+
import SubscriptMeta from "./subscript.ws";
|
|
13
|
+
import ButtonMeta from "./button.ws";
|
|
14
|
+
import InputMeta from "./input.ws";
|
|
15
|
+
import FormMeta from "./form.ws";
|
|
16
|
+
import ImageMeta from "./image.ws";
|
|
17
|
+
|
|
18
|
+
import { Body } from "./body";
|
|
19
|
+
import { Box } from "./box";
|
|
20
|
+
import { TextBlock } from "./text-block";
|
|
21
|
+
import { Heading } from "./heading";
|
|
22
|
+
import { Paragraph } from "./paragraph";
|
|
23
|
+
import { Link } from "./link";
|
|
24
|
+
import { RichTextLink } from "./rich-text-link";
|
|
25
|
+
import { Span } from "./span";
|
|
26
|
+
import { Bold } from "./bold";
|
|
27
|
+
import { Italic } from "./italic";
|
|
28
|
+
import { Superscript } from "./superscript";
|
|
29
|
+
import { Subscript } from "./subscript";
|
|
30
|
+
import { Button } from "./button";
|
|
31
|
+
import { Input } from "./input";
|
|
32
|
+
import { Form } from "./form";
|
|
33
|
+
import { Image } from "./image";
|
|
34
|
+
|
|
35
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
36
|
+
|
|
37
|
+
const meta = {
|
|
38
|
+
Box: BoxMeta,
|
|
39
|
+
Body: BodyMeta,
|
|
40
|
+
TextBlock: TextBlockMeta,
|
|
41
|
+
Heading: HeadingMeta,
|
|
42
|
+
Paragraph: ParagraphMeta,
|
|
43
|
+
Link: LinkMeta,
|
|
44
|
+
RichTextLink: RichTextLinkMeta,
|
|
45
|
+
Span: SpanMeta,
|
|
46
|
+
Bold: BoldMeta,
|
|
47
|
+
Italic: ItalicMeta,
|
|
48
|
+
Superscript: SuperscriptMeta,
|
|
49
|
+
Subscript: SubscriptMeta,
|
|
50
|
+
Button: ButtonMeta,
|
|
51
|
+
Input: InputMeta,
|
|
52
|
+
Form: FormMeta,
|
|
53
|
+
Image: ImageMeta,
|
|
54
|
+
} as const;
|
|
55
|
+
|
|
56
|
+
const components = {
|
|
57
|
+
Box,
|
|
58
|
+
Body,
|
|
59
|
+
TextBlock,
|
|
60
|
+
Heading,
|
|
61
|
+
Paragraph,
|
|
62
|
+
Link,
|
|
63
|
+
RichTextLink,
|
|
64
|
+
Span,
|
|
65
|
+
Bold,
|
|
66
|
+
Italic,
|
|
67
|
+
Superscript,
|
|
68
|
+
Subscript,
|
|
69
|
+
Button,
|
|
70
|
+
Input,
|
|
71
|
+
Form,
|
|
72
|
+
Image,
|
|
73
|
+
} as const;
|
|
74
|
+
|
|
75
|
+
export type ComponentName = keyof typeof components;
|
|
76
|
+
type RegisteredComponents = Partial<{
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
78
|
+
[p in ComponentName]: {};
|
|
79
|
+
}>;
|
|
80
|
+
|
|
81
|
+
type RegisteredComponentsMeta = Partial<{
|
|
82
|
+
[p in ComponentName]: Partial<WsComponentMeta>;
|
|
83
|
+
}>;
|
|
84
|
+
|
|
85
|
+
let registeredComponents: RegisteredComponents | null = null;
|
|
86
|
+
let registeredComponentsMeta: RegisteredComponentsMeta | null = null;
|
|
87
|
+
|
|
88
|
+
const componentNames = Object.keys(components) as ComponentName[];
|
|
89
|
+
|
|
90
|
+
export const getComponentNames = (): ComponentName[] => {
|
|
91
|
+
const uniqueNames = new Set([
|
|
92
|
+
...componentNames,
|
|
93
|
+
...Object.keys(registeredComponents || {}),
|
|
94
|
+
]);
|
|
95
|
+
|
|
96
|
+
return [...uniqueNames.values()] as ComponentName[];
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const getComponentMeta = (name: ComponentName): WsComponentMeta => {
|
|
100
|
+
if (registeredComponentsMeta != null && name in registeredComponentsMeta) {
|
|
101
|
+
return { ...meta[name], ...registeredComponentsMeta[name] };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return meta[name];
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export const getComponent = (
|
|
108
|
+
name: ComponentName
|
|
109
|
+
): typeof components[ComponentName] => {
|
|
110
|
+
return registeredComponents != null && name in registeredComponents
|
|
111
|
+
? (registeredComponents[name] as typeof components[ComponentName])
|
|
112
|
+
: components[name];
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
export const getComponentMetaProps = (name: ComponentName): MetaProps => {
|
|
116
|
+
if (registeredComponentsMeta != null && name in registeredComponentsMeta) {
|
|
117
|
+
const allMetaPropKeys = new Set([
|
|
118
|
+
...Object.keys(meta[name]?.props ?? {}),
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
120
|
+
...Object.keys(registeredComponentsMeta[name]!.props!),
|
|
121
|
+
]);
|
|
122
|
+
|
|
123
|
+
const props: MetaProps = {};
|
|
124
|
+
/**
|
|
125
|
+
* Merge props, taking non null defaultValue and required=true from meta
|
|
126
|
+
**/
|
|
127
|
+
for (const key of allMetaPropKeys.values()) {
|
|
128
|
+
props[key] = {
|
|
129
|
+
...meta[name]?.props[key],
|
|
130
|
+
...registeredComponentsMeta[name]?.props?.[key],
|
|
131
|
+
defaultValue:
|
|
132
|
+
registeredComponentsMeta[name]?.props?.[key]?.defaultValue ??
|
|
133
|
+
meta[name]?.props[key]?.defaultValue ??
|
|
134
|
+
null,
|
|
135
|
+
required:
|
|
136
|
+
registeredComponentsMeta[name]?.props?.[key]?.required ||
|
|
137
|
+
meta[name]?.props[key]?.required,
|
|
138
|
+
} as MetaProps[string];
|
|
139
|
+
}
|
|
140
|
+
return props;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return meta[name].props;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* @todo: Allow register any component.
|
|
148
|
+
* Now we can register only existings Components, as all our type system would
|
|
149
|
+
* break otherwise, see getComponent etc. So its overwriteComponent now
|
|
150
|
+
**/
|
|
151
|
+
export const registerComponents = (components: RegisteredComponents) => {
|
|
152
|
+
registeredComponents = components;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
export const registerComponentsMeta = (
|
|
156
|
+
componentsMeta: RegisteredComponentsMeta
|
|
157
|
+
) => {
|
|
158
|
+
registeredComponentsMeta = componentsMeta;
|
|
159
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Input as InputPrimitive } from "./input";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Input",
|
|
6
|
+
component: InputPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof InputPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof InputPrimitive> = (args) => (
|
|
10
|
+
<InputPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Input = Template.bind({});
|
|
14
|
+
Input.args = {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
const defaultTag = "input";
|
|
4
|
+
|
|
5
|
+
export const Input = forwardRef<
|
|
6
|
+
ElementRef<typeof defaultTag>,
|
|
7
|
+
ComponentProps<typeof defaultTag>
|
|
8
|
+
// Make sure children are not passed down to an input, because this will result in error.
|
|
9
|
+
>(({ children: _children, ...props }, ref) => <input {...props} ref={ref} />);
|
|
10
|
+
|
|
11
|
+
Input.displayName = "Input";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { InputIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/input.props.json";
|
|
4
|
+
|
|
5
|
+
const meta: WsComponentMeta = {
|
|
6
|
+
type: "control",
|
|
7
|
+
label: "Input",
|
|
8
|
+
Icon: InputIcon,
|
|
9
|
+
props: props as MetaProps,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export default meta;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Italic as ItalicPrimitive } from "./italic";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Italic",
|
|
6
|
+
component: ItalicPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof ItalicPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof ItalicPrimitive> = (args) => (
|
|
10
|
+
<ItalicPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Italic = Template.bind({});
|
|
14
|
+
Italic.args = {
|
|
15
|
+
children: "some italic text",
|
|
16
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
const defaultTag = "i";
|
|
4
|
+
|
|
5
|
+
export const Italic = forwardRef<
|
|
6
|
+
ElementRef<typeof defaultTag>,
|
|
7
|
+
ComponentProps<typeof defaultTag>
|
|
8
|
+
>((props, ref) => <i {...props} ref={ref} />);
|
|
9
|
+
|
|
10
|
+
Italic.displayName = "Italic";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FontItalicIcon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/italic.props.json";
|
|
4
|
+
|
|
5
|
+
const defaultStyle = {
|
|
6
|
+
fontStyle: {
|
|
7
|
+
type: "keyword",
|
|
8
|
+
value: "italic",
|
|
9
|
+
},
|
|
10
|
+
} as const;
|
|
11
|
+
|
|
12
|
+
const meta: WsComponentMeta = {
|
|
13
|
+
type: "rich-text-child",
|
|
14
|
+
label: "Italic Text",
|
|
15
|
+
Icon: FontItalicIcon,
|
|
16
|
+
defaultStyle,
|
|
17
|
+
props: props as MetaProps,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default meta;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Link as LinkPrimitive } from "./link";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Link",
|
|
6
|
+
component: LinkPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof LinkPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof LinkPrimitive> = (args) => (
|
|
10
|
+
<LinkPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Link = Template.bind({});
|
|
14
|
+
Link.args = {
|
|
15
|
+
children: "Link",
|
|
16
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { forwardRef, type ElementRef, type ComponentProps } from "react";
|
|
2
|
+
|
|
3
|
+
type Props = Omit<ComponentProps<"a">, "href"> & { href?: string };
|
|
4
|
+
|
|
5
|
+
export const Link = forwardRef<ElementRef<"a">, Props>(
|
|
6
|
+
({ href = "", ...props }, ref) => <a {...props} href={href} ref={ref} />
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
Link.displayName = "Link";
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Link2Icon } from "@webstudio-is/icons";
|
|
2
|
+
import type { WsComponentMeta, MetaProps } from "./component-type";
|
|
3
|
+
import props from "./__generated__/link.props.json";
|
|
4
|
+
|
|
5
|
+
const defaultStyle = {
|
|
6
|
+
minHeight: {
|
|
7
|
+
type: "unit",
|
|
8
|
+
unit: "em",
|
|
9
|
+
value: 1,
|
|
10
|
+
},
|
|
11
|
+
display: {
|
|
12
|
+
type: "keyword",
|
|
13
|
+
value: "inline-block",
|
|
14
|
+
},
|
|
15
|
+
} as const;
|
|
16
|
+
|
|
17
|
+
const meta: WsComponentMeta = {
|
|
18
|
+
type: "rich-text",
|
|
19
|
+
label: "Link",
|
|
20
|
+
Icon: Link2Icon,
|
|
21
|
+
defaultStyle,
|
|
22
|
+
children: ["Link text you can edit"],
|
|
23
|
+
props: props as MetaProps,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default meta;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentStory, ComponentMeta } from "@storybook/react";
|
|
2
|
+
import { Paragraph as ParagraphPrimitive } from "./paragraph";
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "Components/Paragraph",
|
|
6
|
+
component: ParagraphPrimitive,
|
|
7
|
+
} as ComponentMeta<typeof ParagraphPrimitive>;
|
|
8
|
+
|
|
9
|
+
const Template: ComponentStory<typeof ParagraphPrimitive> = (args) => (
|
|
10
|
+
<ParagraphPrimitive {...args} />
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
export const Paragraph = Template.bind({});
|
|
14
|
+
Paragraph.args = {
|
|
15
|
+
children: "paragraph",
|
|
16
|
+
};
|