@makeswift/runtime 0.23.12 → 0.23.14
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/dist/cjs/api/graphql/fragments.js +40 -0
- package/dist/cjs/api/graphql/fragments.js.map +1 -0
- package/dist/cjs/api/graphql/types.js +40 -0
- package/dist/cjs/api/graphql/types.js.map +1 -0
- package/dist/cjs/api/resource-types.js +24 -0
- package/dist/cjs/api/resource-types.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/combobox.js +45 -0
- package/dist/cjs/builder/serialization/controls/combobox.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/list.js +50 -0
- package/dist/cjs/builder/serialization/controls/list.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js +106 -0
- package/dist/cjs/builder/serialization/controls/rich-text-v2.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/shape.js +54 -0
- package/dist/cjs/builder/serialization/controls/shape.js.map +1 -0
- package/dist/cjs/builder/serialization/controls/style-v2.js +62 -0
- package/dist/cjs/builder/serialization/controls/style-v2.js.map +1 -0
- package/dist/cjs/builder/unstructured-introspection/__fixtures__/element-containing-resources.js +899 -0
- package/dist/cjs/builder/unstructured-introspection/__fixtures__/element-containing-resources.js.map +1 -0
- package/dist/cjs/builder/unstructured-introspection/__fixtures__/index.js +23 -0
- package/dist/cjs/builder/unstructured-introspection/__fixtures__/index.js.map +1 -0
- package/dist/cjs/builder/unstructured-introspection/index.js +29 -0
- package/dist/cjs/builder/unstructured-introspection/index.js.map +1 -0
- package/dist/cjs/builder/unstructured-introspection/unstructured-introspection.js +85 -0
- package/dist/cjs/builder/unstructured-introspection/unstructured-introspection.js.map +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -0
- package/dist/cjs/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/cjs/controls/checkbox.js +41 -0
- package/dist/cjs/controls/checkbox.js.map +1 -0
- package/dist/cjs/controls/color.js +55 -0
- package/dist/cjs/controls/color.js.map +1 -0
- package/dist/cjs/controls/combobox.js +34 -0
- package/dist/cjs/controls/combobox.js.map +1 -0
- package/dist/cjs/controls/control-data-type-key.js +29 -0
- package/dist/cjs/controls/control-data-type-key.js.map +1 -0
- package/dist/cjs/controls/icon-radio-group.js +45 -0
- package/dist/cjs/controls/icon-radio-group.js.map +1 -0
- package/dist/cjs/controls/image.js +34 -0
- package/dist/cjs/controls/image.js.map +1 -0
- package/dist/cjs/controls/list.js +156 -0
- package/dist/cjs/controls/list.js.map +1 -0
- package/dist/cjs/controls/number.js +41 -0
- package/dist/cjs/controls/number.js.map +1 -0
- package/dist/cjs/controls/rich-text/copy.js +121 -0
- package/dist/cjs/controls/rich-text/copy.js.map +1 -0
- package/dist/cjs/controls/rich-text/dto-types.js +43 -0
- package/dist/cjs/controls/rich-text/dto-types.js.map +1 -0
- package/dist/cjs/controls/rich-text/dto.js +228 -0
- package/dist/cjs/controls/rich-text/dto.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js +77 -0
- package/dist/cjs/controls/rich-text/fixtures/blockquote.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js +176 -0
- package/dist/cjs/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/index.js +27 -0
- package/dist/cjs/controls/rich-text/fixtures/index.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/list.js +137 -0
- package/dist/cjs/controls/rich-text/fixtures/list.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/typography.js +926 -0
- package/dist/cjs/controls/rich-text/fixtures/typography.js.map +1 -0
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js +114 -0
- package/dist/cjs/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
- package/dist/cjs/controls/rich-text/introspection.js +104 -0
- package/dist/cjs/controls/rich-text/introspection.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/copy.js +115 -0
- package/dist/cjs/controls/rich-text-v2/copy.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/dto.js +44 -0
- package/dist/cjs/controls/rich-text-v2/dto.js.map +1 -0
- package/dist/cjs/controls/rich-text-v2/introspection.js +69 -0
- package/dist/cjs/controls/rich-text-v2/introspection.js.map +1 -0
- package/dist/cjs/controls/select.js +34 -0
- package/dist/cjs/controls/select.js.map +1 -0
- package/dist/cjs/controls/shape.js +149 -0
- package/dist/cjs/controls/shape.js.map +1 -0
- package/dist/cjs/controls/style-v2.js +74 -0
- package/dist/cjs/controls/style-v2.js.map +1 -0
- package/dist/cjs/controls/style.js +125 -0
- package/dist/cjs/controls/style.js.map +1 -0
- package/dist/cjs/controls/text-area.js +41 -0
- package/dist/cjs/controls/text-area.js.map +1 -0
- package/dist/cjs/controls/text-input.js +41 -0
- package/dist/cjs/controls/text-input.js.map +1 -0
- package/dist/cjs/controls/types.js +17 -0
- package/dist/cjs/controls/types.js.map +1 -0
- package/dist/cjs/controls/typography.js +47 -0
- package/dist/cjs/controls/typography.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/clear-draft.js +64 -0
- package/dist/cjs/next/api-handler/handlers/clear-draft.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js +77 -0
- package/dist/cjs/next/api-handler/handlers/redirect-draft.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js +68 -0
- package/dist/cjs/next/api-handler/handlers/redirect-preview.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/utils/draft.js +53 -0
- package/dist/cjs/next/api-handler/handlers/utils/draft.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js +2 -4
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +1 -1
- package/dist/cjs/next/cache.js +29 -0
- package/dist/cjs/next/cache.js.map +1 -0
- package/dist/cjs/next/client.js +2 -2
- package/dist/cjs/next/client.js.map +1 -1
- package/dist/cjs/next/context/makeswift-host-api-client.js +46 -0
- package/dist/cjs/next/context/makeswift-host-api-client.js.map +1 -0
- package/dist/cjs/next/context/react-runtime.js +44 -0
- package/dist/cjs/next/context/react-runtime.js.map +1 -0
- package/dist/cjs/next/hooks/use-sync-cache-data.js +41 -0
- package/dist/cjs/next/hooks/use-sync-cache-data.js.map +1 -0
- package/dist/cjs/prop-controllers/base.js +34 -0
- package/dist/cjs/prop-controllers/base.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/backgrounds.js +86 -0
- package/dist/cjs/prop-controllers/copy/backgrounds.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/element-id.js +36 -0
- package/dist/cjs/prop-controllers/copy/element-id.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/grid.js +36 -0
- package/dist/cjs/prop-controllers/copy/grid.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/image.js +35 -0
- package/dist/cjs/prop-controllers/copy/image.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/images.js +49 -0
- package/dist/cjs/prop-controllers/copy/images.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/navigation-links.js +58 -0
- package/dist/cjs/prop-controllers/copy/navigation-links.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/rich-text.js +121 -0
- package/dist/cjs/prop-controllers/copy/rich-text.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/table-form-fields.js +39 -0
- package/dist/cjs/prop-controllers/copy/table-form-fields.js.map +1 -0
- package/dist/cjs/prop-controllers/copy/table.js +33 -0
- package/dist/cjs/prop-controllers/copy/table.js.map +1 -0
- package/dist/cjs/runtimes/react/components/DocumentReference.js +42 -0
- package/dist/cjs/runtimes/react/components/DocumentReference.js.map +1 -0
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js +72 -0
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-switcher.js.map +1 -0
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js +79 -0
- package/dist/cjs/runtimes/react/components/draft-switcher/draft-toolbar.js.map +1 -0
- package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js +67 -0
- package/dist/cjs/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -0
- package/dist/cjs/runtimes/react/components/hooks/use-builder-handshake.js +45 -0
- package/dist/cjs/runtimes/react/components/hooks/use-builder-handshake.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/checkbox.js +34 -0
- package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/color.js +58 -0
- package/dist/cjs/runtimes/react/controls/color.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/combobox.js +31 -0
- package/dist/cjs/runtimes/react/controls/combobox.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/icon-radio-group.js +31 -0
- package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/image.js +53 -0
- package/dist/cjs/runtimes/react/controls/image.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/link.js +110 -0
- package/dist/cjs/runtimes/react/controls/link.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/list.js +58 -0
- package/dist/cjs/runtimes/react/controls/list.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/number.js +34 -0
- package/dist/cjs/runtimes/react/controls/number.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/select.js +31 -0
- package/dist/cjs/runtimes/react/controls/select.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/shape.js +44 -0
- package/dist/cjs/runtimes/react/controls/shape.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/style-v2.js +92 -0
- package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/text-area.js +34 -0
- package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -0
- package/dist/cjs/runtimes/react/controls/text-input.js +34 -0
- package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-document-key.js +36 -0
- package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-head-marker.js +40 -0
- package/dist/cjs/runtimes/react/hooks/use-head-marker.js.map +1 -0
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +48 -0
- package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
- package/dist/cjs/state/makeswift-api-client.js +2 -2
- package/dist/cjs/state/makeswift-api-client.js.map +1 -1
- package/dist/cjs/utils/coalesce.js +33 -0
- package/dist/cjs/utils/coalesce.js.map +1 -0
- package/dist/cjs/utils/index-signature-hack.js +17 -0
- package/dist/cjs/utils/index-signature-hack.js.map +1 -0
- package/dist/cjs/utils/shallowMerge.js +44 -0
- package/dist/cjs/utils/shallowMerge.js.map +1 -0
- package/dist/cjs/utils/tests/breakpoint-test-util.js +35 -0
- package/dist/cjs/utils/tests/breakpoint-test-util.js.map +1 -0
- package/dist/cjs/utils/tests/element-data-test-test.js +75 -0
- package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -0
- package/dist/esm/api/graphql/fragments.js +6 -0
- package/dist/esm/api/graphql/fragments.js.map +1 -0
- package/dist/esm/api/graphql/types.js +16 -0
- package/dist/esm/api/graphql/types.js.map +1 -0
- package/dist/esm/api/resource-types.js +8 -0
- package/dist/esm/api/resource-types.js.map +1 -0
- package/dist/esm/builder/serialization/controls/combobox.js +20 -0
- package/dist/esm/builder/serialization/controls/combobox.js.map +1 -0
- package/dist/esm/builder/serialization/controls/list.js +25 -0
- package/dist/esm/builder/serialization/controls/list.js.map +1 -0
- package/dist/esm/builder/serialization/controls/rich-text-v2.js +81 -0
- package/dist/esm/builder/serialization/controls/rich-text-v2.js.map +1 -0
- package/dist/esm/builder/serialization/controls/shape.js +32 -0
- package/dist/esm/builder/serialization/controls/shape.js.map +1 -0
- package/dist/esm/builder/serialization/controls/style-v2.js +37 -0
- package/dist/esm/builder/serialization/controls/style-v2.js.map +1 -0
- package/dist/esm/builder/unstructured-introspection/__fixtures__/element-containing-resources.js +875 -0
- package/dist/esm/builder/unstructured-introspection/__fixtures__/element-containing-resources.js.map +1 -0
- package/dist/esm/builder/unstructured-introspection/__fixtures__/index.js +2 -0
- package/dist/esm/builder/unstructured-introspection/__fixtures__/index.js.map +1 -0
- package/dist/esm/builder/unstructured-introspection/index.js +5 -0
- package/dist/esm/builder/unstructured-introspection/index.js.map +1 -0
- package/dist/esm/builder/unstructured-introspection/unstructured-introspection.js +61 -0
- package/dist/esm/builder/unstructured-introspection/unstructured-introspection.js.map +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js +1 -0
- package/dist/esm/components/shared/BackgroundsContainer/components/BackgroundVideo/index.js.map +1 -1
- package/dist/esm/controls/checkbox.js +14 -0
- package/dist/esm/controls/checkbox.js.map +1 -0
- package/dist/esm/controls/color.js +27 -0
- package/dist/esm/controls/color.js.map +1 -0
- package/dist/esm/controls/combobox.js +9 -0
- package/dist/esm/controls/combobox.js.map +1 -0
- package/dist/esm/controls/control-data-type-key.js +5 -0
- package/dist/esm/controls/control-data-type-key.js.map +1 -0
- package/dist/esm/controls/icon-radio-group.js +19 -0
- package/dist/esm/controls/icon-radio-group.js.map +1 -0
- package/dist/esm/controls/image.js +10 -0
- package/dist/esm/controls/image.js.map +1 -0
- package/dist/esm/controls/list.js +132 -0
- package/dist/esm/controls/list.js.map +1 -0
- package/dist/esm/controls/number.js +14 -0
- package/dist/esm/controls/number.js.map +1 -0
- package/dist/esm/controls/rich-text/copy.js +97 -0
- package/dist/esm/controls/rich-text/copy.js.map +1 -0
- package/dist/esm/controls/rich-text/dto-types.js +19 -0
- package/dist/esm/controls/rich-text/dto-types.js.map +1 -0
- package/dist/esm/controls/rich-text/dto.js +203 -0
- package/dist/esm/controls/rich-text/dto.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/blockquote.js +53 -0
- package/dist/esm/controls/rich-text/fixtures/blockquote.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js +151 -0
- package/dist/esm/controls/rich-text/fixtures/empty-blocks.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/index.js +4 -0
- package/dist/esm/controls/rich-text/fixtures/index.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/list.js +113 -0
- package/dist/esm/controls/rich-text/fixtures/list.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/typography.js +902 -0
- package/dist/esm/controls/rich-text/fixtures/typography.js.map +1 -0
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js +90 -0
- package/dist/esm/controls/rich-text/fixtures/v2-data-types.js.map +1 -0
- package/dist/esm/controls/rich-text/introspection.js +78 -0
- package/dist/esm/controls/rich-text/introspection.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/copy.js +91 -0
- package/dist/esm/controls/rich-text-v2/copy.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/dto.js +19 -0
- package/dist/esm/controls/rich-text-v2/dto.js.map +1 -0
- package/dist/esm/controls/rich-text-v2/introspection.js +43 -0
- package/dist/esm/controls/rich-text-v2/introspection.js.map +1 -0
- package/dist/esm/controls/select.js +9 -0
- package/dist/esm/controls/select.js.map +1 -0
- package/dist/esm/controls/shape.js +125 -0
- package/dist/esm/controls/shape.js.map +1 -0
- package/dist/esm/controls/style-v2.js +48 -0
- package/dist/esm/controls/style-v2.js.map +1 -0
- package/dist/esm/controls/style.js +95 -0
- package/dist/esm/controls/style.js.map +1 -0
- package/dist/esm/controls/text-area.js +14 -0
- package/dist/esm/controls/text-area.js.map +1 -0
- package/dist/esm/controls/text-input.js +14 -0
- package/dist/esm/controls/text-input.js.map +1 -0
- package/dist/esm/controls/types.js +1 -0
- package/dist/esm/controls/types.js.map +1 -0
- package/dist/esm/controls/typography.js +20 -0
- package/dist/esm/controls/typography.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/clear-draft.js +50 -0
- package/dist/esm/next/api-handler/handlers/clear-draft.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/api-handler/handlers/redirect-draft.js +63 -0
- package/dist/esm/next/api-handler/handlers/redirect-draft.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/redirect-preview.js +54 -0
- package/dist/esm/next/api-handler/handlers/redirect-preview.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/utils/draft.js +24 -0
- package/dist/esm/next/api-handler/handlers/utils/draft.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js +1 -2
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +1 -1
- package/dist/esm/next/cache.js +5 -0
- package/dist/esm/next/cache.js.map +1 -0
- package/dist/esm/next/client.js +1 -1
- package/dist/esm/next/client.js.map +1 -1
- package/dist/esm/next/context/makeswift-host-api-client.js +21 -0
- package/dist/esm/next/context/makeswift-host-api-client.js.map +1 -0
- package/dist/esm/next/context/react-runtime.js +19 -0
- package/dist/esm/next/context/react-runtime.js.map +1 -0
- package/dist/esm/next/hooks/use-sync-cache-data.js +17 -0
- package/dist/esm/next/hooks/use-sync-cache-data.js.map +1 -0
- package/dist/esm/prop-controllers/base.js +10 -0
- package/dist/esm/prop-controllers/base.js.map +1 -0
- package/dist/esm/prop-controllers/copy/backgrounds.js +62 -0
- package/dist/esm/prop-controllers/copy/backgrounds.js.map +1 -0
- package/dist/esm/prop-controllers/copy/element-id.js +12 -0
- package/dist/esm/prop-controllers/copy/element-id.js.map +1 -0
- package/dist/esm/prop-controllers/copy/grid.js +12 -0
- package/dist/esm/prop-controllers/copy/grid.js.map +1 -0
- package/dist/esm/prop-controllers/copy/image.js +11 -0
- package/dist/esm/prop-controllers/copy/image.js.map +1 -0
- package/dist/esm/prop-controllers/copy/images.js +25 -0
- package/dist/esm/prop-controllers/copy/images.js.map +1 -0
- package/dist/esm/prop-controllers/copy/navigation-links.js +34 -0
- package/dist/esm/prop-controllers/copy/navigation-links.js.map +1 -0
- package/dist/esm/prop-controllers/copy/rich-text.js +97 -0
- package/dist/esm/prop-controllers/copy/rich-text.js.map +1 -0
- package/dist/esm/prop-controllers/copy/table-form-fields.js +15 -0
- package/dist/esm/prop-controllers/copy/table-form-fields.js.map +1 -0
- package/dist/esm/prop-controllers/copy/table.js +9 -0
- package/dist/esm/prop-controllers/copy/table.js.map +1 -0
- package/dist/esm/runtimes/react/components/DocumentReference.js +18 -0
- package/dist/esm/runtimes/react/components/DocumentReference.js.map +1 -0
- package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js +48 -0
- package/dist/esm/runtimes/react/components/draft-switcher/draft-switcher.js.map +1 -0
- package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js +55 -0
- package/dist/esm/runtimes/react/components/draft-switcher/draft-toolbar.js.map +1 -0
- package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js +43 -0
- package/dist/esm/runtimes/react/components/hooks/use-builder-connection-ping.js.map +1 -0
- package/dist/esm/runtimes/react/components/hooks/use-builder-handshake.js +21 -0
- package/dist/esm/runtimes/react/components/hooks/use-builder-handshake.js.map +1 -0
- package/dist/esm/runtimes/react/controls/checkbox.js +13 -0
- package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -0
- package/dist/esm/runtimes/react/controls/color.js +24 -0
- package/dist/esm/runtimes/react/controls/color.js.map +1 -0
- package/dist/esm/runtimes/react/controls/combobox.js +7 -0
- package/dist/esm/runtimes/react/controls/combobox.js.map +1 -0
- package/dist/esm/runtimes/react/controls/icon-radio-group.js +7 -0
- package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -0
- package/dist/esm/runtimes/react/controls/image.js +29 -0
- package/dist/esm/runtimes/react/controls/image.js.map +1 -0
- package/dist/esm/runtimes/react/controls/link.js +76 -0
- package/dist/esm/runtimes/react/controls/link.js.map +1 -0
- package/dist/esm/runtimes/react/controls/list.js +34 -0
- package/dist/esm/runtimes/react/controls/list.js.map +1 -0
- package/dist/esm/runtimes/react/controls/number.js +13 -0
- package/dist/esm/runtimes/react/controls/number.js.map +1 -0
- package/dist/esm/runtimes/react/controls/select.js +7 -0
- package/dist/esm/runtimes/react/controls/select.js.map +1 -0
- package/dist/esm/runtimes/react/controls/shape.js +20 -0
- package/dist/esm/runtimes/react/controls/shape.js.map +1 -0
- package/dist/esm/runtimes/react/controls/style-v2.js +72 -0
- package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -0
- package/dist/esm/runtimes/react/controls/text-area.js +13 -0
- package/dist/esm/runtimes/react/controls/text-area.js.map +1 -0
- package/dist/esm/runtimes/react/controls/text-input.js +13 -0
- package/dist/esm/runtimes/react/controls/text-input.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-document-key.js +11 -0
- package/dist/esm/runtimes/react/hooks/use-document-key.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-head-marker.js +16 -0
- package/dist/esm/runtimes/react/hooks/use-head-marker.js.map +1 -0
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +24 -0
- package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -0
- package/dist/esm/state/makeswift-api-client.js +1 -1
- package/dist/esm/state/makeswift-api-client.js.map +1 -1
- package/dist/esm/utils/coalesce.js +13 -0
- package/dist/esm/utils/coalesce.js.map +1 -0
- package/dist/esm/utils/index-signature-hack.js +1 -0
- package/dist/esm/utils/index-signature-hack.js.map +1 -0
- package/dist/esm/utils/shallowMerge.js +14 -0
- package/dist/esm/utils/shallowMerge.js.map +1 -0
- package/dist/esm/utils/tests/breakpoint-test-util.js +9 -0
- package/dist/esm/utils/tests/breakpoint-test-util.js.map +1 -0
- package/dist/esm/utils/tests/element-data-test-test.js +50 -0
- package/dist/esm/utils/tests/element-data-test-test.js.map +1 -0
- package/dist/types/api/graphql/fragments.d.ts +4 -0
- package/dist/types/api/graphql/fragments.d.ts.map +1 -0
- package/dist/types/api/graphql/types.d.ts +8 -0
- package/dist/types/api/graphql/types.d.ts.map +1 -0
- package/dist/types/api/resource-types.d.ts +20 -0
- package/dist/types/api/resource-types.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/combobox.d.ts +5 -0
- package/dist/types/builder/serialization/controls/combobox.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/list.d.ts +5 -0
- package/dist/types/builder/serialization/controls/list.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/rich-text-v2.d.ts +5 -0
- package/dist/types/builder/serialization/controls/rich-text-v2.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/shape.d.ts +5 -0
- package/dist/types/builder/serialization/controls/shape.d.ts.map +1 -0
- package/dist/types/builder/serialization/controls/style-v2.d.ts +5 -0
- package/dist/types/builder/serialization/controls/style-v2.d.ts.map +1 -0
- package/dist/types/builder/unstructured-introspection/__fixtures__/element-containing-resources.d.ts +3 -0
- package/dist/types/builder/unstructured-introspection/__fixtures__/element-containing-resources.d.ts.map +1 -0
- package/dist/types/builder/unstructured-introspection/__fixtures__/index.d.ts +2 -0
- package/dist/types/builder/unstructured-introspection/__fixtures__/index.d.ts.map +1 -0
- package/dist/types/builder/unstructured-introspection/index.d.ts +2 -0
- package/dist/types/builder/unstructured-introspection/index.d.ts.map +1 -0
- package/dist/types/builder/unstructured-introspection/unstructured-introspection.d.ts +10 -0
- package/dist/types/builder/unstructured-introspection/unstructured-introspection.d.ts.map +1 -0
- package/dist/types/builder/unstructured-introspection/unstructured-introspection.test.d.ts +2 -0
- package/dist/types/builder/unstructured-introspection/unstructured-introspection.test.d.ts.map +1 -0
- package/dist/types/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -1
- package/dist/types/controls/checkbox.d.ts +21 -0
- package/dist/types/controls/checkbox.d.ts.map +1 -0
- package/dist/types/controls/color.d.ts +25 -0
- package/dist/types/controls/color.d.ts.map +1 -0
- package/dist/types/controls/combobox.d.ts +22 -0
- package/dist/types/controls/combobox.d.ts.map +1 -0
- package/dist/types/controls/control-data-type-key.d.ts +2 -0
- package/dist/types/controls/control-data-type-key.d.ts.map +1 -0
- package/dist/types/controls/icon-radio-group.d.ts +32 -0
- package/dist/types/controls/icon-radio-group.d.ts.map +1 -0
- package/dist/types/controls/image.d.ts +4 -0
- package/dist/types/controls/image.d.ts.map +1 -0
- package/dist/types/controls/image.test.d.ts +2 -0
- package/dist/types/controls/image.test.d.ts.map +1 -0
- package/dist/types/controls/link.test.d.ts +2 -0
- package/dist/types/controls/link.test.d.ts.map +1 -0
- package/dist/types/controls/list.d.ts +78 -0
- package/dist/types/controls/list.d.ts.map +1 -0
- package/dist/types/controls/number.d.ts +26 -0
- package/dist/types/controls/number.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/copy.test.d.ts +2 -0
- package/dist/types/controls/rich-text/__tests__/copy.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/dto.test.d.ts +2 -0
- package/dist/types/controls/rich-text/__tests__/dto.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts +2 -0
- package/dist/types/controls/rich-text/__tests__/introspection.test.d.ts.map +1 -0
- package/dist/types/controls/rich-text/copy.d.ts +4 -0
- package/dist/types/controls/rich-text/copy.d.ts.map +1 -0
- package/dist/types/controls/rich-text/dto-types.d.ts +132 -0
- package/dist/types/controls/rich-text/dto-types.d.ts.map +1 -0
- package/dist/types/controls/rich-text/dto.d.ts +8 -0
- package/dist/types/controls/rich-text/dto.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/blockquote.d.ts +3 -0
- package/dist/types/controls/rich-text/fixtures/blockquote.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts +4 -0
- package/dist/types/controls/rich-text/fixtures/empty-blocks.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/index.d.ts +4 -0
- package/dist/types/controls/rich-text/fixtures/index.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/list.d.ts +3 -0
- package/dist/types/controls/rich-text/fixtures/list.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/typography.d.ts +3 -0
- package/dist/types/controls/rich-text/fixtures/typography.d.ts.map +1 -0
- package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts +3 -0
- package/dist/types/controls/rich-text/fixtures/v2-data-types.d.ts.map +1 -0
- package/dist/types/controls/rich-text/introspection.d.ts +5 -0
- package/dist/types/controls/rich-text/introspection.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/copy.d.ts +4 -0
- package/dist/types/controls/rich-text-v2/copy.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/dto.d.ts +5 -0
- package/dist/types/controls/rich-text-v2/dto.d.ts.map +1 -0
- package/dist/types/controls/rich-text-v2/introspection.d.ts +5 -0
- package/dist/types/controls/rich-text-v2/introspection.d.ts.map +1 -0
- package/dist/types/controls/select.d.ts +22 -0
- package/dist/types/controls/select.d.ts.map +1 -0
- package/dist/types/controls/shape.d.ts +50 -0
- package/dist/types/controls/shape.d.ts.map +1 -0
- package/dist/types/controls/style-v2.d.ts +64 -0
- package/dist/types/controls/style-v2.d.ts.map +1 -0
- package/dist/types/controls/style.d.ts +179 -0
- package/dist/types/controls/style.d.ts.map +1 -0
- package/dist/types/controls/text-area.d.ts +22 -0
- package/dist/types/controls/text-area.d.ts.map +1 -0
- package/dist/types/controls/text-input.d.ts +22 -0
- package/dist/types/controls/text-input.d.ts.map +1 -0
- package/dist/types/controls/types.d.ts +14 -0
- package/dist/types/controls/types.d.ts.map +1 -0
- package/dist/types/controls/typography.d.ts +33 -0
- package/dist/types/controls/typography.d.ts.map +1 -0
- package/dist/types/locale.d.ts +1 -1
- package/dist/types/next/api-handler/handlers/clear-draft.d.ts +20 -0
- package/dist/types/next/api-handler/handlers/clear-draft.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts +18 -0
- package/dist/types/next/api-handler/handlers/redirect-draft.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts +18 -0
- package/dist/types/next/api-handler/handlers/redirect-preview.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/utils/draft.d.ts +16 -0
- package/dist/types/next/api-handler/handlers/utils/draft.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts +1 -2
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts +12 -12
- package/dist/types/next/cache.d.ts +2 -0
- package/dist/types/next/cache.d.ts.map +1 -0
- package/dist/types/next/client.d.ts +8 -8
- package/dist/types/next/components/tests/controls/color-control.test.d.ts +3 -0
- package/dist/types/next/components/tests/controls/color-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/style-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/style-control.test.d.ts.map +1 -0
- package/dist/types/next/context/makeswift-host-api-client.d.ts +8 -0
- package/dist/types/next/context/makeswift-host-api-client.d.ts.map +1 -0
- package/dist/types/next/context/react-runtime.d.ts +8 -0
- package/dist/types/next/context/react-runtime.d.ts.map +1 -0
- package/dist/types/next/hooks/use-sync-cache-data.d.ts +3 -0
- package/dist/types/next/hooks/use-sync-cache-data.d.ts.map +1 -0
- package/dist/types/prop-controllers/base.d.ts +7 -0
- package/dist/types/prop-controllers/base.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/backgrounds.d.ts +4 -0
- package/dist/types/prop-controllers/copy/backgrounds.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/element-id.d.ts +3 -0
- package/dist/types/prop-controllers/copy/element-id.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/grid.d.ts +4 -0
- package/dist/types/prop-controllers/copy/grid.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/image.d.ts +4 -0
- package/dist/types/prop-controllers/copy/image.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/image.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/image.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/images.d.ts +4 -0
- package/dist/types/prop-controllers/copy/images.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/images.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/images.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/navigation-links.d.ts +4 -0
- package/dist/types/prop-controllers/copy/navigation-links.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/navigation-links.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/navigation-links.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/rich-text.d.ts +4 -0
- package/dist/types/prop-controllers/copy/rich-text.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/rich-text.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/rich-text.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table-form-fields.d.ts +4 -0
- package/dist/types/prop-controllers/copy/table-form-fields.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/table-form-fields.test.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table.d.ts +4 -0
- package/dist/types/prop-controllers/copy/table.d.ts.map +1 -0
- package/dist/types/prop-controllers/copy/table.test.d.ts +2 -0
- package/dist/types/prop-controllers/copy/table.test.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/DocumentReference.d.ts +9 -0
- package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts +4 -0
- package/dist/types/runtimes/react/components/draft-switcher/draft-switcher.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts +6 -0
- package/dist/types/runtimes/react/components/draft-switcher/draft-toolbar.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/hooks/use-builder-connection-ping.d.ts +4 -0
- package/dist/types/runtimes/react/components/hooks/use-builder-connection-ping.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/hooks/use-builder-handshake.d.ts +4 -0
- package/dist/types/runtimes/react/components/hooks/use-builder-handshake.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/checkbox.d.ts +4 -0
- package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/color.d.ts +4 -0
- package/dist/types/runtimes/react/controls/color.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/combobox.d.ts +4 -0
- package/dist/types/runtimes/react/controls/combobox.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/icon-radio-group.d.ts +4 -0
- package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/image.d.ts +4 -0
- package/dist/types/runtimes/react/controls/image.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/link.d.ts +4 -0
- package/dist/types/runtimes/react/controls/link.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/list.d.ts +12 -0
- package/dist/types/runtimes/react/controls/list.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/number.d.ts +4 -0
- package/dist/types/runtimes/react/controls/number.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/select.d.ts +4 -0
- package/dist/types/runtimes/react/controls/select.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/shape.d.ts +12 -0
- package/dist/types/runtimes/react/controls/shape.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/style-v2.d.ts +13 -0
- package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/text-area.d.ts +4 -0
- package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -0
- package/dist/types/runtimes/react/controls/text-input.d.ts +4 -0
- package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts +4 -0
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-head-marker.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-head-marker.d.ts.map +1 -0
- package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +16 -0
- package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts.map +1 -0
- package/dist/types/state/react-builder-preview.test.d.ts +2 -0
- package/dist/types/state/react-builder-preview.test.d.ts.map +1 -0
- package/dist/types/state/react-page.test.d.ts +2 -0
- package/dist/types/state/react-page.test.d.ts.map +1 -0
- package/dist/types/utils/coalesce.d.ts +3 -0
- package/dist/types/utils/coalesce.d.ts.map +1 -0
- package/dist/types/utils/index-signature-hack.d.ts +4 -0
- package/dist/types/utils/index-signature-hack.d.ts.map +1 -0
- package/dist/types/utils/shallowMerge.d.ts +2 -0
- package/dist/types/utils/shallowMerge.d.ts.map +1 -0
- package/dist/types/utils/tests/breakpoint-test-util.d.ts +4 -0
- package/dist/types/utils/tests/breakpoint-test-util.d.ts.map +1 -0
- package/dist/types/utils/tests/element-data-test-test.d.ts +51 -0
- package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { PropController } from "../prop-controllers/base";
|
|
2
|
+
import {
|
|
3
|
+
createPropController
|
|
4
|
+
} from "../prop-controllers/instances";
|
|
5
|
+
import { useStyle } from "../runtimes/react/use-style";
|
|
6
|
+
const StyleV2ControlType = "makeswift::controls::style-v2";
|
|
7
|
+
const unstable_useStyleV2ClassName = useStyle;
|
|
8
|
+
function unstable_StyleV2(config) {
|
|
9
|
+
return { type: StyleV2ControlType, config };
|
|
10
|
+
}
|
|
11
|
+
const StyleV2ControlMessageType = {
|
|
12
|
+
CHANGE_BOX_MODEL: "makeswift::controls::style::message::change-box-model",
|
|
13
|
+
STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: "makeswift::controls::style-v2::message::child-control-message"
|
|
14
|
+
};
|
|
15
|
+
class StyleV2Control extends PropController {
|
|
16
|
+
control;
|
|
17
|
+
constructor(send, descriptor) {
|
|
18
|
+
super(send);
|
|
19
|
+
this.control = createPropController(descriptor.config.type, (message) => {
|
|
20
|
+
this.send({
|
|
21
|
+
type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,
|
|
22
|
+
payload: { message }
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
changeBoxModel(boxModel) {
|
|
27
|
+
this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } });
|
|
28
|
+
}
|
|
29
|
+
recv(message) {
|
|
30
|
+
switch (message.type) {
|
|
31
|
+
case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {
|
|
32
|
+
const control = this.control;
|
|
33
|
+
if (control == null)
|
|
34
|
+
return;
|
|
35
|
+
const recv = control.recv;
|
|
36
|
+
recv(message.payload.message);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
StyleV2Control,
|
|
43
|
+
StyleV2ControlMessageType,
|
|
44
|
+
StyleV2ControlType,
|
|
45
|
+
unstable_StyleV2,
|
|
46
|
+
unstable_useStyleV2ClassName
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=style-v2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/style-v2.ts"],"sourcesContent":["import { ResponsiveValue } from '@makeswift/controls'\nimport { BoxModel } from 'css-box-model'\nimport { ControlDefinition } from './control'\nimport { PropController } from '../prop-controllers/base'\nimport {\n AnyPropController,\n PropControllerMessage,\n Send,\n createPropController,\n} from '../prop-controllers/instances'\nimport { CSSObject } from '@emotion/serialize'\nimport { useStyle } from '../runtimes/react/use-style'\nimport { ControlDefinitionValue } from '../runtimes/react/controls/control'\n\nexport const StyleV2ControlType = 'makeswift::controls::style-v2'\n\nexport type StyleV2CSSObject = CSSObject\nexport const unstable_useStyleV2ClassName = useStyle\n\ntype StyleV2ControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n getStyle(item: ControlDefinitionValue<T> | undefined): CSSObject\n}\n\nexport type StyleV2ControlDefinition = {\n type: typeof StyleV2ControlType\n config: StyleV2ControlConfig\n}\n\nexport function unstable_StyleV2<C extends StyleV2ControlConfig>(\n config: C,\n): StyleV2ControlDefinition {\n return { type: StyleV2ControlType, config }\n}\n\n/**\n * TODO: Rewrite `ControlDefinitionData` as a tail recursive type.\n *\n * Explanation: Making `StyleV2ControlData` generic causes us to hit a limitation of TS conditional types for the definition of `ControlDefinitionData`.\n * We get \"Type instantiation is excessively deep and possibly infinite.\"\n *\n * Helpful links:\n * * The PR changing the limit of conditional types: https://github.com/microsoft/TypeScript/pull/45711\n * * TS 4.5 docs releasing this limitation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types\n * * A SO user implementing a tail recursive type: https://stackoverflow.com/questions/72370456/tail-recursion-elimination-on-conditional-types-doesnt-work\n *\n *\n * This is what the type should be:\n * ```\n * export type StyleV2ControlData<T extends StyleV2ControlDefinition = StyleV2ControlDefinition> =\n * ResponsiveValue<ControlDefinitionData<T['config']['type']>>\n * ```\n */\nexport type StyleV2ControlData = ResponsiveValue<any>\n\nexport const StyleV2ControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE:\n 'makeswift::controls::style-v2::message::child-control-message',\n} as const\n\ntype StyleV2ControlItemBoxModelChangeMessage = {\n type: typeof StyleV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\ntype StyleV2ControlChildControlMessage = {\n type: typeof StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage }\n}\n\nexport type StyleV2ControlMessage =\n | StyleV2ControlItemBoxModelChangeMessage\n | StyleV2ControlChildControlMessage\n\nexport class StyleV2Control<\n T extends StyleV2ControlDefinition = StyleV2ControlDefinition,\n> extends PropController<StyleV2ControlMessage> {\n control?: AnyPropController\n constructor(send: Send<StyleV2ControlMessage>, descriptor: T) {\n super(send)\n this.control = createPropController(descriptor.config.type, message => {\n this.send({\n type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message },\n })\n })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv(message: StyleV2ControlMessage) {\n switch (message.type) {\n case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.control\n\n if (control == null) return\n\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n"],"mappings":"AAGA,SAAS,sBAAsB;AAC/B;AAAA,EAIE;AAAA,OACK;AAEP,SAAS,gBAAgB;AAGlB,MAAM,qBAAqB;AAG3B,MAAM,+BAA+B;AAYrC,SAAS,iBACd,QAC0B;AAC1B,SAAO,EAAE,MAAM,oBAAoB,OAAO;AAC5C;AAsBO,MAAM,4BAA4B;AAAA,EACvC,kBAAkB;AAAA,EAClB,wCACE;AACJ;AAeO,MAAM,uBAEH,eAAsC;AAAA,EAC9C;AAAA,EACA,YAAY,MAAmC,YAAe;AAC5D,UAAM,IAAI;AACV,SAAK,UAAU,qBAAqB,WAAW,OAAO,MAAM,aAAW;AACrE,WAAK,KAAK;AAAA,QACR,MAAM,0BAA0B;AAAA,QAChC,SAAS,EAAE,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,0BAA0B,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACvF;AAAA,EAEA,KAAK,SAAgC;AACnC,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,0BAA0B,wCAAwC;AACrE,cAAM,UAAU,KAAK;AAErB,YAAI,WAAW;AAAM;AAErB,cAAM,OAAO,QAAQ;AAErB,aAAK,QAAQ,QAAQ,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { copyColorData } from "@makeswift/controls";
|
|
2
|
+
import { getBorderPropControllerDataSwatchIds } from "@makeswift/prop-controllers";
|
|
3
|
+
import { PropController } from "../prop-controllers/base";
|
|
4
|
+
const StyleControlType = "makeswift::controls::style";
|
|
5
|
+
const StyleControlProperty = {
|
|
6
|
+
Width: "makeswift::controls::style::property::width",
|
|
7
|
+
Margin: "makeswift::controls::style::property::margin",
|
|
8
|
+
Padding: "makeswift::controls::style::property::padding",
|
|
9
|
+
Border: "makeswift::controls::style::property::border",
|
|
10
|
+
BorderRadius: "makeswift::controls::style::property::border-radius",
|
|
11
|
+
TextStyle: "makeswift::controls::style::property::text-style"
|
|
12
|
+
};
|
|
13
|
+
const StyleControlDefaultProperties = [
|
|
14
|
+
StyleControlProperty.Width,
|
|
15
|
+
StyleControlProperty.Margin
|
|
16
|
+
];
|
|
17
|
+
const AllStyleControlProperties = [
|
|
18
|
+
StyleControlProperty.Width,
|
|
19
|
+
StyleControlProperty.Margin,
|
|
20
|
+
StyleControlProperty.Padding,
|
|
21
|
+
StyleControlProperty.Border,
|
|
22
|
+
StyleControlProperty.BorderRadius,
|
|
23
|
+
StyleControlProperty.TextStyle
|
|
24
|
+
];
|
|
25
|
+
function Style(params) {
|
|
26
|
+
return {
|
|
27
|
+
type: StyleControlType,
|
|
28
|
+
config: { properties: params?.properties ?? StyleControlDefaultProperties }
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
Style.Default = StyleControlDefaultProperties;
|
|
32
|
+
Style.All = AllStyleControlProperties;
|
|
33
|
+
Style.Width = StyleControlProperty.Width;
|
|
34
|
+
Style.Margin = StyleControlProperty.Margin;
|
|
35
|
+
Style.Padding = StyleControlProperty.Padding;
|
|
36
|
+
Style.Border = StyleControlProperty.Border;
|
|
37
|
+
Style.BorderRadius = StyleControlProperty.BorderRadius;
|
|
38
|
+
Style.TextStyle = StyleControlProperty.TextStyle;
|
|
39
|
+
const StyleControlMessageType = {
|
|
40
|
+
CHANGE_BOX_MODEL: "makeswift::controls::style::message::change-box-model"
|
|
41
|
+
};
|
|
42
|
+
class StyleControl extends PropController {
|
|
43
|
+
constructor(send) {
|
|
44
|
+
super(send);
|
|
45
|
+
}
|
|
46
|
+
changeBoxModel(boxModel) {
|
|
47
|
+
this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } });
|
|
48
|
+
}
|
|
49
|
+
recv() {
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function getStyleSwatchIds(data) {
|
|
53
|
+
return getBorderPropControllerDataSwatchIds(data.border);
|
|
54
|
+
}
|
|
55
|
+
function copyStyleData(value, context) {
|
|
56
|
+
if (value == null)
|
|
57
|
+
return value;
|
|
58
|
+
function copyResponsiveBorder(responsiveBorder) {
|
|
59
|
+
if (responsiveBorder == null)
|
|
60
|
+
return void 0;
|
|
61
|
+
return responsiveBorder.map((deviceBorder) => ({
|
|
62
|
+
...deviceBorder,
|
|
63
|
+
value: copyBorder(deviceBorder.value)
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
function copyBorder(border) {
|
|
67
|
+
function copyBorderSide(side) {
|
|
68
|
+
if (side == null)
|
|
69
|
+
return null;
|
|
70
|
+
if (side.color == null)
|
|
71
|
+
return side;
|
|
72
|
+
return {
|
|
73
|
+
...side,
|
|
74
|
+
color: copyColorData(side.color, context)
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
borderTop: copyBorderSide(border.borderTop),
|
|
79
|
+
borderBottom: copyBorderSide(border.borderBottom),
|
|
80
|
+
borderRight: copyBorderSide(border.borderRight),
|
|
81
|
+
borderLeft: copyBorderSide(border.borderLeft)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return { ...value, border: copyResponsiveBorder(value.border) };
|
|
85
|
+
}
|
|
86
|
+
export {
|
|
87
|
+
Style,
|
|
88
|
+
StyleControl,
|
|
89
|
+
StyleControlMessageType,
|
|
90
|
+
StyleControlProperty,
|
|
91
|
+
StyleControlType,
|
|
92
|
+
copyStyleData,
|
|
93
|
+
getStyleSwatchIds
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { getBorderPropControllerDataSwatchIds } from '@makeswift/prop-controllers'\n\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function getStyleSwatchIds(data: StyleControlData): string[] {\n return getBorderPropControllerDataSwatchIds(data.border)\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":"AAAA,SAAoB,qBAAsC;AAC1D,SAAS,4CAA4C;AAQrD,SAAS,sBAAsB;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,eAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,kBAAkB,MAAkC;AAClE,SAAO,qCAAqC,KAAK,MAAM;AACzD;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,cAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ControlDataTypeKey } from "./control-data-type-key";
|
|
2
|
+
const TextAreaControlDataTypeKey = ControlDataTypeKey;
|
|
3
|
+
const TextAreaControlDataTypeValueV1 = "text-area::v1";
|
|
4
|
+
const TextAreaControlType = "makeswift::controls::text-area";
|
|
5
|
+
function TextArea(config = {}) {
|
|
6
|
+
return { type: TextAreaControlType, config, version: 1 };
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
TextArea,
|
|
10
|
+
TextAreaControlDataTypeKey,
|
|
11
|
+
TextAreaControlDataTypeValueV1,
|
|
12
|
+
TextAreaControlType
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=text-area.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/text-area.ts"],"sourcesContent":["import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextAreaControlDataTypeKey = ControlDataTypeKey\n\nexport const TextAreaControlDataTypeValueV1 = 'text-area::v1'\n\nexport type TextAreaControlDataV0 = string\n\nexport type TextAreaControlDataV1 = {\n [TextAreaControlDataTypeKey]: typeof TextAreaControlDataTypeValueV1\n value: string,\n}\n\nexport type TextAreaControlData = TextAreaControlDataV0 | TextAreaControlDataV1\n\nexport const TextAreaControlType = 'makeswift::controls::text-area'\n\ntype TextAreaControlConfig = {\n label?: string\n defaultValue?: string\n rows?: number\n}\n\nexport type TextAreaControlDefinition<C extends TextAreaControlConfig = TextAreaControlConfig> = {\n type: typeof TextAreaControlType\n config: C\n version?: 1\n}\n\nexport function TextArea<C extends TextAreaControlConfig>(\n config: C = {} as C,\n): TextAreaControlDefinition<C> {\n return { type: TextAreaControlType, config, version: 1 }\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AAE5B,MAAM,6BAA6B;AAEnC,MAAM,iCAAiC;AAWvC,MAAM,sBAAsB;AAc5B,SAAS,SACd,SAAY,CAAC,GACiB;AAC9B,SAAO,EAAE,MAAM,qBAAqB,QAAQ,SAAS,EAAE;AACzD;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ControlDataTypeKey } from "./control-data-type-key";
|
|
2
|
+
const TextInputControlDataTypeKey = ControlDataTypeKey;
|
|
3
|
+
const TextInputControlDataTypeValueV1 = "text-input::v1";
|
|
4
|
+
const TextInputControlType = "makeswift::controls::text-input";
|
|
5
|
+
function TextInput(config = {}) {
|
|
6
|
+
return { type: TextInputControlType, config, version: 1 };
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
TextInput,
|
|
10
|
+
TextInputControlDataTypeKey,
|
|
11
|
+
TextInputControlDataTypeValueV1,
|
|
12
|
+
TextInputControlType
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=text-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/text-input.ts"],"sourcesContent":["import { ControlDataTypeKey } from \"./control-data-type-key\"\n\nexport const TextInputControlDataTypeKey = ControlDataTypeKey\n\nexport const TextInputControlDataTypeValueV1 = 'text-input::v1'\n\nexport type TextInputControlDataV0 = string\n\nexport type TextInputControlDataV1 = {\n [ControlDataTypeKey]: typeof TextInputControlDataTypeValueV1\n value: string,\n}\n\nexport type TextInputControlData = TextInputControlDataV0 | TextInputControlDataV1\n\nexport const TextInputControlType = 'makeswift::controls::text-input'\n\ntype TextInputControlConfig = {\n label?: string\n defaultValue?: string\n}\n\nexport type TextInputControlDefinition<C extends TextInputControlConfig = TextInputControlConfig> =\n {\n type: typeof TextInputControlType\n config: C\n version?: 1\n }\n\nexport function TextInput<C extends TextInputControlConfig>(\n config: C = {} as C,\n): TextInputControlDefinition<C> {\n return { type: TextInputControlType, config, version: 1 }\n}\n"],"mappings":"AAAA,SAAS,0BAA0B;AAE5B,MAAM,8BAA8B;AAEpC,MAAM,kCAAkC;AAWxC,MAAM,uBAAuB;AAc7B,SAAS,UACd,SAAY,CAAC,GACkB;AAC/B,SAAO,EAAE,MAAM,sBAAsB,QAAQ,SAAS,EAAE;AAC1D;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { isNonNullable } from "../utils/isNonNullable";
|
|
2
|
+
const TypographyControlType = "makeswift::controls::typography";
|
|
3
|
+
function unstable_Typography() {
|
|
4
|
+
return {
|
|
5
|
+
type: TypographyControlType
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function getTypographySwatchIds(value) {
|
|
9
|
+
return value?.style.flatMap((style) => style.value.color?.swatchId ?? []).filter(isNonNullable) ?? [];
|
|
10
|
+
}
|
|
11
|
+
function getTypographyTypographyIds(value) {
|
|
12
|
+
return [value?.id].filter(isNonNullable);
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
TypographyControlType,
|
|
16
|
+
getTypographySwatchIds,
|
|
17
|
+
getTypographyTypographyIds,
|
|
18
|
+
unstable_Typography
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=typography.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/typography.ts"],"sourcesContent":["import { isNonNullable } from '../utils/isNonNullable'\n\nexport type TypographyControlData = (\n | {\n id?: string\n style: Array<{\n deviceId: string\n value: {\n fontFamily?: string | null\n lineHeight?: number | null\n letterSpacing?: number | null\n fontWeight?: number | null\n textAlign?: string | null\n uppercase?: boolean | null\n underline?: boolean | null\n strikethrough?: boolean | null\n italic?: boolean | null\n fontSize?: { value: number | null; unit: string | null } | null\n color?: { swatchId: string | null; alpha: number | null } | null\n }\n }>\n }\n | undefined\n)[]\n\nexport const TypographyControlType = 'makeswift::controls::typography'\n\nexport type TypographyControlDefinition = {\n type: typeof TypographyControlType\n}\n\nexport function unstable_Typography(): TypographyControlDefinition {\n return {\n type: TypographyControlType,\n }\n}\n\nexport function getTypographySwatchIds(value: TypographyControlData[number]) {\n return (\n value?.style.flatMap(style => style.value.color?.swatchId ?? []).filter(isNonNullable) ?? []\n )\n}\n\nexport function getTypographyTypographyIds(value: TypographyControlData[number]) {\n return [value?.id].filter(isNonNullable)\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAyBvB,MAAM,wBAAwB;AAM9B,SAAS,sBAAmD;AACjE,SAAO;AAAA,IACL,MAAM;AAAA,EACR;AACF;AAEO,SAAS,uBAAuB,OAAsC;AAC3E,SACE,OAAO,MAAM,QAAQ,WAAS,MAAM,MAAM,OAAO,YAAY,CAAC,CAAC,EAAE,OAAO,aAAa,KAAK,CAAC;AAE/F;AAEO,SAAS,2BAA2B,OAAsC;AAC/E,SAAO,CAAC,OAAO,EAAE,EAAE,OAAO,aAAa;AACzC;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
2
|
+
import { P, match } from "ts-pattern";
|
|
3
|
+
import {
|
|
4
|
+
MAKESWIFT_DRAFT_DATA_COOKIE,
|
|
5
|
+
PRERENDER_BYPASS_COOKIE,
|
|
6
|
+
PREVIEW_DATA_COOKIE,
|
|
7
|
+
SET_COOKIE_HEADER,
|
|
8
|
+
cookieSettingOptions
|
|
9
|
+
} from "./utils/draft";
|
|
10
|
+
import { serialize as serializeCookie } from "cookie";
|
|
11
|
+
function clearCookiesHeader(cookieNames) {
|
|
12
|
+
const headers = new Headers();
|
|
13
|
+
cookieNames.forEach((name) => {
|
|
14
|
+
headers.append(
|
|
15
|
+
SET_COOKIE_HEADER,
|
|
16
|
+
serializeCookie(name, "", { ...cookieSettingOptions, expires: /* @__PURE__ */ new Date(0) })
|
|
17
|
+
);
|
|
18
|
+
});
|
|
19
|
+
const setCookieHeader = headers.get(SET_COOKIE_HEADER);
|
|
20
|
+
if (setCookieHeader == null) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
`Could not generate set-cookie header to clear cookies: ${cookieNames.join(", ")}`
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return setCookieHeader;
|
|
26
|
+
}
|
|
27
|
+
const routeHandlerPattern = [P.instanceOf(Request), P.any, P.any];
|
|
28
|
+
const apiRoutePattern = [P.any, P.any, P.any];
|
|
29
|
+
async function clearDraftHandler(...args) {
|
|
30
|
+
return match(args).with(routeHandlerPattern, (args2) => clearDraftRouteHandler(...args2)).with(apiRoutePattern, (args2) => clearDraftApiRouteHandler(...args2)).exhaustive();
|
|
31
|
+
}
|
|
32
|
+
async function clearDraftRouteHandler(_request, _context, {}) {
|
|
33
|
+
const headers = new Headers();
|
|
34
|
+
headers.append(
|
|
35
|
+
SET_COOKIE_HEADER,
|
|
36
|
+
clearCookiesHeader([PRERENDER_BYPASS_COOKIE, MAKESWIFT_DRAFT_DATA_COOKIE])
|
|
37
|
+
);
|
|
38
|
+
return NextResponse.json({ __brand: "ClearDraftResponse" }, { headers });
|
|
39
|
+
}
|
|
40
|
+
async function clearDraftApiRouteHandler(_req, res, {}) {
|
|
41
|
+
res.setHeader(
|
|
42
|
+
SET_COOKIE_HEADER,
|
|
43
|
+
clearCookiesHeader([PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE])
|
|
44
|
+
);
|
|
45
|
+
return res.json({ __brand: "ClearDraftResponse" });
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
clearDraftHandler as default
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=clear-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/clear-draft.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport {\n MAKESWIFT_DRAFT_DATA_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SET_COOKIE_HEADER,\n cookieSettingOptions,\n} from './utils/draft'\nimport { serialize as serializeCookie } from 'cookie'\n\nfunction clearCookiesHeader(cookieNames: string[]): string {\n const headers = new Headers()\n\n cookieNames.forEach(name => {\n headers.append(\n SET_COOKIE_HEADER,\n serializeCookie(name, '', { ...cookieSettingOptions, expires: new Date(0) }),\n )\n })\n\n const setCookieHeader = headers.get(SET_COOKIE_HEADER)\n\n if (setCookieHeader == null) {\n throw new Error(\n `Could not generate set-cookie header to clear cookies: ${cookieNames.join(', ')}`,\n )\n }\n\n return setCookieHeader\n}\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype ClearDraftError = string\n\ntype Response = { __brand: 'ClearDraftResponse' }\n\nexport type ClearDraftResponse = ClearDraftError | Response\n\ntype ClearDraftHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<ClearDraftResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function clearDraftHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<ClearDraftResponse>>\nexport default async function clearDraftHandler(\n req: NextApiRequest,\n res: NextApiResponse<ClearDraftResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function clearDraftHandler(\n ...args: ClearDraftHandlerArgs\n): Promise<NextResponse<ClearDraftResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => clearDraftRouteHandler(...args))\n .with(apiRoutePattern, args => clearDraftApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function clearDraftRouteHandler(\n _request: NextRequest,\n _context: Context,\n {}: { apiKey: string },\n): Promise<NextResponse<ClearDraftResponse>> {\n const headers = new Headers()\n\n headers.append(\n SET_COOKIE_HEADER,\n clearCookiesHeader([PRERENDER_BYPASS_COOKIE, MAKESWIFT_DRAFT_DATA_COOKIE]),\n )\n\n return NextResponse.json({ __brand: 'ClearDraftResponse' }, { headers })\n}\n\nasync function clearDraftApiRouteHandler(\n _req: NextApiRequest,\n res: NextApiResponse<ClearDraftResponse>,\n {}: { apiKey: string },\n): Promise<void> {\n res.setHeader(\n SET_COOKIE_HEADER,\n clearCookiesHeader([PRERENDER_BYPASS_COOKIE, PREVIEW_DATA_COOKIE]),\n )\n\n return res.json({ __brand: 'ClearDraftResponse' })\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,aAAa,uBAAuB;AAE7C,SAAS,mBAAmB,aAA+B;AACzD,QAAM,UAAU,IAAI,QAAQ;AAE5B,cAAY,QAAQ,UAAQ;AAC1B,YAAQ;AAAA,MACN;AAAA,MACA,gBAAgB,MAAM,IAAI,EAAE,GAAG,sBAAsB,SAAS,oBAAI,KAAK,CAAC,EAAE,CAAC;AAAA,IAC7E;AAAA,EACF,CAAC;AAED,QAAM,kBAAkB,QAAQ,IAAI,iBAAiB;AAErD,MAAI,mBAAmB,MAAM;AAC3B,UAAM,IAAI;AAAA,MACR,0DAA0D,YAAY,KAAK,IAAI,CAAC;AAAA,IAClF;AAAA,EACF;AAEA,SAAO;AACT;AAcA,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAY5C,eAAO,qBACF,MAC+C;AAClD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,uBAAuB,GAAGA,KAAI,CAAC,EACjE,KAAK,iBAAiB,CAAAA,UAAQ,0BAA0B,GAAGA,KAAI,CAAC,EAChE,WAAW;AAChB;AAEA,eAAe,uBACb,UACA,UACA,CAAC,GAC0C;AAC3C,QAAM,UAAU,IAAI,QAAQ;AAE5B,UAAQ;AAAA,IACN;AAAA,IACA,mBAAmB,CAAC,yBAAyB,2BAA2B,CAAC;AAAA,EAC3E;AAEA,SAAO,aAAa,KAAK,EAAE,SAAS,qBAAqB,GAAG,EAAE,QAAQ,CAAC;AACzE;AAEA,eAAe,0BACb,MACA,KACA,CAAC,GACc;AACf,MAAI;AAAA,IACF;AAAA,IACA,mBAAmB,CAAC,yBAAyB,mBAAmB,CAAC;AAAA,EACnE;AAEA,SAAO,IAAI,KAAK,EAAE,SAAS,qBAAqB,CAAC;AACnD;","names":["args"]}
|
|
@@ -14,7 +14,7 @@ async function handler(...args) {
|
|
|
14
14
|
const supportsDraftMode = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
15
15
|
const supportsWebhook = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
16
16
|
const body = {
|
|
17
|
-
version: "0.23.
|
|
17
|
+
version: "0.23.14",
|
|
18
18
|
previewMode: supportsPreviewMode,
|
|
19
19
|
draftMode: supportsDraftMode,
|
|
20
20
|
interactionMode: true,
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
2
|
+
import { P, match } from "ts-pattern";
|
|
3
|
+
import { cookies, draftMode } from "next/headers";
|
|
4
|
+
import { serialize as serializeCookie } from "cookie";
|
|
5
|
+
import { MakeswiftSiteVersion } from "../../../api/site-version";
|
|
6
|
+
import {
|
|
7
|
+
cookieSettingOptions,
|
|
8
|
+
MAKESWIFT_DRAFT_DATA_COOKIE,
|
|
9
|
+
PRERENDER_BYPASS_COOKIE,
|
|
10
|
+
SearchParams,
|
|
11
|
+
SET_COOKIE_HEADER
|
|
12
|
+
} from "./utils/draft";
|
|
13
|
+
const routeHandlerPattern = [P.instanceOf(Request), P.any, P.any];
|
|
14
|
+
const apiRoutePattern = [P.any, P.any, P.any];
|
|
15
|
+
async function redirectDraftHandler(...args) {
|
|
16
|
+
return match(args).with(routeHandlerPattern, (args2) => redirectDraftRouteHandler(...args2)).with(apiRoutePattern, (args2) => redirectDraftApiRouteHandler(...args2)).exhaustive();
|
|
17
|
+
}
|
|
18
|
+
async function redirectDraftRouteHandler(request, _context, { apiKey }) {
|
|
19
|
+
const secret = request.nextUrl.searchParams.get(SearchParams.DraftMode);
|
|
20
|
+
if (secret == null) {
|
|
21
|
+
return new NextResponse("Unauthorized to enable draft mode: no secret provided", {
|
|
22
|
+
status: 401
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
if (secret !== apiKey) {
|
|
26
|
+
return new NextResponse("Unauthorized to enable draft mode: incorrect secret", { status: 401 });
|
|
27
|
+
}
|
|
28
|
+
const draft = await draftMode();
|
|
29
|
+
const cookieStore = await cookies();
|
|
30
|
+
draft.enable();
|
|
31
|
+
const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE);
|
|
32
|
+
if (prerenderBypassCookie?.value == null) {
|
|
33
|
+
return new NextResponse("Could not retrieve draft mode bypass cookie", { status: 500 });
|
|
34
|
+
}
|
|
35
|
+
const draftCookies = [
|
|
36
|
+
prerenderBypassCookie,
|
|
37
|
+
{
|
|
38
|
+
name: MAKESWIFT_DRAFT_DATA_COOKIE,
|
|
39
|
+
// Eventually, we can make this value dynamic using the request
|
|
40
|
+
value: JSON.stringify({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working })
|
|
41
|
+
}
|
|
42
|
+
];
|
|
43
|
+
const redirectProtocol = request.headers.get("x-forwarded-proto") ?? request.nextUrl.protocol.replace(":", "");
|
|
44
|
+
const redirectHost = request.headers.get("x-forwarded-host") ?? request.headers.get("host") ?? request.nextUrl.host;
|
|
45
|
+
const redirectUrl = new URL(
|
|
46
|
+
`${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`
|
|
47
|
+
);
|
|
48
|
+
redirectUrl.searchParams.delete(SearchParams.DraftMode);
|
|
49
|
+
const headers = new Headers();
|
|
50
|
+
draftCookies.forEach(({ name, value }) => {
|
|
51
|
+
headers.append(SET_COOKIE_HEADER, serializeCookie(name, value, { ...cookieSettingOptions }));
|
|
52
|
+
});
|
|
53
|
+
return NextResponse.redirect(redirectUrl, { headers });
|
|
54
|
+
}
|
|
55
|
+
async function redirectDraftApiRouteHandler(_req, res, {}) {
|
|
56
|
+
const message = "Cannot request draft endpoint from an API handler registered in `pages`. Move your Makeswift API handler to the `app` directory";
|
|
57
|
+
console.error(message);
|
|
58
|
+
return res.status(500).send(message);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
redirectDraftHandler as default
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=redirect-draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-draft.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\nimport { cookies, draftMode } from 'next/headers'\n\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n MAKESWIFT_DRAFT_DATA_COOKIE,\n PRERENDER_BYPASS_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectDraftError = string\n\ntype Response = unknown\n\nexport type RedirectDraftResponse = RedirectDraftError | Response\n\ntype RedirectDraftHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectDraftResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectDraftHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>>\nexport default async function redirectDraftHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectDraftHandler(\n ...args: RedirectDraftHandlerArgs\n): Promise<NextResponse<RedirectDraftResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectDraftRouteHandler(...args))\n .with(apiRoutePattern, args => redirectDraftApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectDraftRouteHandler(\n request: NextRequest,\n _context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectDraftResponse>> {\n const secret = request.nextUrl.searchParams.get(SearchParams.DraftMode)\n\n if (secret == null) {\n return new NextResponse('Unauthorized to enable draft mode: no secret provided', {\n status: 401,\n })\n }\n if (secret !== apiKey) {\n return new NextResponse('Unauthorized to enable draft mode: incorrect secret', { status: 401 })\n }\n\n const draft = await draftMode()\n const cookieStore = await cookies()\n\n draft.enable()\n\n const prerenderBypassCookie = cookieStore.get(PRERENDER_BYPASS_COOKIE)\n\n if (prerenderBypassCookie?.value == null) {\n return new NextResponse('Could not retrieve draft mode bypass cookie', { status: 500 })\n }\n\n const draftCookies: { name: string; value: string }[] = [\n prerenderBypassCookie,\n {\n name: MAKESWIFT_DRAFT_DATA_COOKIE,\n // Eventually, we can make this value dynamic using the request\n value: JSON.stringify({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working }),\n },\n ]\n\n const redirectProtocol =\n request.headers.get('x-forwarded-proto') ?? request.nextUrl.protocol.replace(':', '')\n\n const redirectHost =\n request.headers.get('x-forwarded-host') ?? request.headers.get('host') ?? request.nextUrl.host\n\n const redirectUrl = new URL(\n `${redirectProtocol}://${redirectHost}${request.nextUrl.pathname}${request.nextUrl.search}`,\n )\n\n redirectUrl.searchParams.delete(SearchParams.DraftMode)\n\n const headers = new Headers()\n draftCookies.forEach(({ name, value }) => {\n headers.append(SET_COOKIE_HEADER, serializeCookie(name, value, { ...cookieSettingOptions }))\n })\n\n return NextResponse.redirect(redirectUrl, { headers })\n}\n\nasync function redirectDraftApiRouteHandler(\n _req: NextApiRequest,\n res: NextApiResponse<RedirectDraftResponse>,\n {}: { apiKey: string },\n): Promise<void> {\n const message =\n 'Cannot request draft endpoint from an API handler registered in `pages`. Move your Makeswift API handler to the `app` directory'\n console.error(message)\n return res.status(500).send(message)\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AACzB,SAAS,SAAS,iBAAiB;AAEnC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAY5C,eAAO,wBACF,MACkD;AACrD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,0BAA0B,GAAGA,KAAI,CAAC,EACpE,KAAK,iBAAiB,CAAAA,UAAQ,6BAA6B,GAAGA,KAAI,CAAC,EACnE,WAAW;AAChB;AAEA,eAAe,0BACb,SACA,UACA,EAAE,OAAO,GACqC;AAC9C,QAAM,SAAS,QAAQ,QAAQ,aAAa,IAAI,aAAa,SAAS;AAEtE,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,aAAa,yDAAyD;AAAA,MAC/E,QAAQ;AAAA,IACV,CAAC;AAAA,EACH;AACA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,aAAa,uDAAuD,EAAE,QAAQ,IAAI,CAAC;AAAA,EAChG;AAEA,QAAM,QAAQ,MAAM,UAAU;AAC9B,QAAM,cAAc,MAAM,QAAQ;AAElC,QAAM,OAAO;AAEb,QAAM,wBAAwB,YAAY,IAAI,uBAAuB;AAErE,MAAI,uBAAuB,SAAS,MAAM;AACxC,WAAO,IAAI,aAAa,+CAA+C,EAAE,QAAQ,IAAI,CAAC;AAAA,EACxF;AAEA,QAAM,eAAkD;AAAA,IACtD;AAAA,IACA;AAAA,MACE,MAAM;AAAA;AAAA,MAEN,OAAO,KAAK,UAAU,EAAE,WAAW,MAAM,aAAa,qBAAqB,QAAQ,CAAC;AAAA,IACtF;AAAA,EACF;AAEA,QAAM,mBACJ,QAAQ,QAAQ,IAAI,mBAAmB,KAAK,QAAQ,QAAQ,SAAS,QAAQ,KAAK,EAAE;AAEtF,QAAM,eACJ,QAAQ,QAAQ,IAAI,kBAAkB,KAAK,QAAQ,QAAQ,IAAI,MAAM,KAAK,QAAQ,QAAQ;AAE5F,QAAM,cAAc,IAAI;AAAA,IACtB,GAAG,gBAAgB,MAAM,YAAY,GAAG,QAAQ,QAAQ,QAAQ,GAAG,QAAQ,QAAQ,MAAM;AAAA,EAC3F;AAEA,cAAY,aAAa,OAAO,aAAa,SAAS;AAEtD,QAAM,UAAU,IAAI,QAAQ;AAC5B,eAAa,QAAQ,CAAC,EAAE,MAAM,MAAM,MAAM;AACxC,YAAQ,OAAO,mBAAmB,gBAAgB,MAAM,OAAO,EAAE,GAAG,qBAAqB,CAAC,CAAC;AAAA,EAC7F,CAAC;AAED,SAAO,aAAa,SAAS,aAAa,EAAE,QAAQ,CAAC;AACvD;AAEA,eAAe,6BACb,MACA,KACA,CAAC,GACc;AACf,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,IAAI,OAAO,GAAG,EAAE,KAAK,OAAO;AACrC;","names":["args"]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { NextResponse } from "next/server";
|
|
2
|
+
import { P, match } from "ts-pattern";
|
|
3
|
+
import { parse as parseSetCookie } from "set-cookie-parser";
|
|
4
|
+
import { serialize as serializeCookie } from "cookie";
|
|
5
|
+
import { MakeswiftSiteVersion } from "../../../api/site-version";
|
|
6
|
+
import {
|
|
7
|
+
cookieSettingOptions,
|
|
8
|
+
PRERENDER_BYPASS_COOKIE,
|
|
9
|
+
PREVIEW_DATA_COOKIE,
|
|
10
|
+
SearchParams,
|
|
11
|
+
SET_COOKIE_HEADER
|
|
12
|
+
} from "./utils/draft";
|
|
13
|
+
const routeHandlerPattern = [P.instanceOf(Request), P.any, P.any];
|
|
14
|
+
const apiRoutePattern = [P.any, P.any, P.any];
|
|
15
|
+
async function redirectPreviewHandler(...args) {
|
|
16
|
+
return match(args).with(routeHandlerPattern, (args2) => redirectPreviewRouteHandler(...args2)).with(apiRoutePattern, (args2) => redirectPreviewApiRouteHandler(...args2)).exhaustive();
|
|
17
|
+
}
|
|
18
|
+
async function redirectPreviewRouteHandler(_request, _context, {}) {
|
|
19
|
+
const message = "Cannot request preview endpoint from an API handler registered in `app`. Move your Makeswift API handler to the `pages/api` directory";
|
|
20
|
+
console.error(message);
|
|
21
|
+
return NextResponse.json(message, { status: 500 });
|
|
22
|
+
}
|
|
23
|
+
async function redirectPreviewApiRouteHandler(req, res, { apiKey }) {
|
|
24
|
+
const secret = req.query[SearchParams.PreviewMode];
|
|
25
|
+
const pathname = req.query.path;
|
|
26
|
+
if (secret == null) {
|
|
27
|
+
return res.status(401).send("Unauthorized to enable preview mode: no secret provided");
|
|
28
|
+
}
|
|
29
|
+
if (secret !== apiKey) {
|
|
30
|
+
return res.status(401).send("Unauthorized to enable preview mode: secret is incorrect");
|
|
31
|
+
}
|
|
32
|
+
if (pathname == null) {
|
|
33
|
+
return res.status(400).send("Bad request: incoming request does not have an associated pathname");
|
|
34
|
+
}
|
|
35
|
+
const setCookie = res.setPreviewData({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working }).getHeader(SET_COOKIE_HEADER);
|
|
36
|
+
res.removeHeader(SET_COOKIE_HEADER);
|
|
37
|
+
const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : "");
|
|
38
|
+
const prerenderBypassCookie = parsedCookies.find((c) => c.name === PRERENDER_BYPASS_COOKIE);
|
|
39
|
+
const previewDataCookie = parsedCookies.find((c) => c.name === PREVIEW_DATA_COOKIE);
|
|
40
|
+
if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {
|
|
41
|
+
return res.status(500).send("Could not retrieve preview mode cookies");
|
|
42
|
+
}
|
|
43
|
+
const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {
|
|
44
|
+
return serializeCookie(name, value, { ...cookieSettingOptions });
|
|
45
|
+
});
|
|
46
|
+
res.setHeader(SET_COOKIE_HEADER, patchedCookies);
|
|
47
|
+
const destinationUrl = new URL(pathname, "http://test.com");
|
|
48
|
+
destinationUrl.searchParams.delete(SearchParams.PreviewMode);
|
|
49
|
+
res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`);
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
redirectPreviewHandler as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=redirect-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/next/api-handler/handlers/redirect-preview.ts"],"sourcesContent":["import { NextApiRequest, NextApiResponse } from 'next'\nimport { NextRequest, NextResponse } from 'next/server'\nimport { P, match } from 'ts-pattern'\n\nimport { parse as parseSetCookie } from 'set-cookie-parser'\nimport { serialize as serializeCookie } from 'cookie'\n\nimport { MakeswiftSiteVersion } from '../../../api/site-version'\nimport {\n cookieSettingOptions,\n PRERENDER_BYPASS_COOKIE,\n PREVIEW_DATA_COOKIE,\n SearchParams,\n SET_COOKIE_HEADER,\n} from './utils/draft'\n\ntype Context = { params: { [key: string]: string | string[] } }\n\ntype RedirectPreviewError = string\n\ntype Response = unknown\n\nexport type RedirectPreviewResponse = RedirectPreviewError | Response\n\ntype RedirectPreviewHandlerArgs =\n | [request: NextRequest, context: Context, params: { apiKey: string }]\n | [req: NextApiRequest, res: NextApiResponse<RedirectPreviewResponse>, params: { apiKey: string }]\n\nconst routeHandlerPattern = [P.instanceOf(Request), P.any, P.any] as const\nconst apiRoutePattern = [P.any, P.any, P.any] as const\n\nexport default async function redirectPreviewHandler(\n request: NextRequest,\n context: Context,\n { apiKey }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>>\nexport default async function redirectPreviewHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void>\nexport default async function redirectPreviewHandler(\n ...args: RedirectPreviewHandlerArgs\n): Promise<NextResponse<RedirectPreviewResponse> | void> {\n return match(args)\n .with(routeHandlerPattern, args => redirectPreviewRouteHandler(...args))\n .with(apiRoutePattern, args => redirectPreviewApiRouteHandler(...args))\n .exhaustive()\n}\n\nasync function redirectPreviewRouteHandler(\n _request: NextRequest,\n _context: Context,\n { }: { apiKey: string },\n): Promise<NextResponse<RedirectPreviewResponse>> {\n const message =\n 'Cannot request preview endpoint from an API handler registered in `app`. Move your Makeswift API handler to the `pages/api` directory'\n console.error(message)\n return NextResponse.json(message, { status: 500 })\n}\n\n\nasync function redirectPreviewApiRouteHandler(\n req: NextApiRequest,\n res: NextApiResponse<RedirectPreviewResponse>,\n { apiKey }: { apiKey: string },\n): Promise<void> {\n const secret = req.query[SearchParams.PreviewMode]\n // Next.js automatically strips the locale prefix from rewritten request's URL, even when the\n // rewrite's `locale` option is set to `false`: https://github.com/vercel/next.js/discussions/21798.\n // At the same time, it also maps rewrite's URL segments (e.g. `:path`) to query parameters\n // on the rewritten request, so we use `query.path` to recover the original request path.\n const pathname = req.query.path as string | undefined\n\n if (secret == null) {\n return res.status(401).send('Unauthorized to enable preview mode: no secret provided')\n }\n\n if (secret !== apiKey) {\n return res.status(401).send('Unauthorized to enable preview mode: secret is incorrect')\n }\n\n if (pathname == null) {\n return res.status(400).send('Bad request: incoming request does not have an associated pathname')\n }\n\n const setCookie = res\n // Eventually, we can make the preview data value dynamic using the request\n .setPreviewData({ makeswift: true, siteVersion: MakeswiftSiteVersion.Working })\n .getHeader(SET_COOKIE_HEADER)\n\n res.removeHeader(SET_COOKIE_HEADER)\n\n const parsedCookies = parseSetCookie(Array.isArray(setCookie) ? setCookie : '')\n\n const prerenderBypassCookie = parsedCookies.find(c => c.name === PRERENDER_BYPASS_COOKIE)\n const previewDataCookie = parsedCookies.find(c => c.name === PREVIEW_DATA_COOKIE)\n\n if (prerenderBypassCookie?.value == null || previewDataCookie?.value == null) {\n return res.status(500).send('Could not retrieve preview mode cookies')\n }\n\n const patchedCookies = [prerenderBypassCookie, previewDataCookie].map(({ name, value }) => {\n return serializeCookie(name, value, { ...cookieSettingOptions })\n })\n\n res.setHeader(SET_COOKIE_HEADER, patchedCookies)\n\n const destinationUrl = new URL(pathname, 'http://test.com')\n destinationUrl.searchParams.delete(SearchParams.PreviewMode)\n\n res.redirect(`${destinationUrl.pathname}?${destinationUrl.searchParams.toString()}`)\n}\n"],"mappings":"AACA,SAAsB,oBAAoB;AAC1C,SAAS,GAAG,aAAa;AAEzB,SAAS,SAAS,sBAAsB;AACxC,SAAS,aAAa,uBAAuB;AAE7C,SAAS,4BAA4B;AACrC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAcP,MAAM,sBAAsB,CAAC,EAAE,WAAW,OAAO,GAAG,EAAE,KAAK,EAAE,GAAG;AAChE,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG;AAY5C,eAAO,0BACF,MACoD;AACvD,SAAO,MAAM,IAAI,EACd,KAAK,qBAAqB,CAAAA,UAAQ,4BAA4B,GAAGA,KAAI,CAAC,EACtE,KAAK,iBAAiB,CAAAA,UAAQ,+BAA+B,GAAGA,KAAI,CAAC,EACrE,WAAW;AAChB;AAEA,eAAe,4BACb,UACA,UACA,CAAE,GAC8C;AAChD,QAAM,UACJ;AACF,UAAQ,MAAM,OAAO;AACrB,SAAO,aAAa,KAAK,SAAS,EAAE,QAAQ,IAAI,CAAC;AACnD;AAGA,eAAe,+BACb,KACA,KACA,EAAE,OAAO,GACM;AACf,QAAM,SAAS,IAAI,MAAM,aAAa,WAAW;AAKjD,QAAM,WAAW,IAAI,MAAM;AAE3B,MAAI,UAAU,MAAM;AAClB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yDAAyD;AAAA,EACvF;AAEA,MAAI,WAAW,QAAQ;AACrB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,0DAA0D;AAAA,EACxF;AAEA,MAAI,YAAY,MAAM;AACpB,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,oEAAoE;AAAA,EAClG;AAEA,QAAM,YAAY,IAEf,eAAe,EAAE,WAAW,MAAM,aAAa,qBAAqB,QAAQ,CAAC,EAC7E,UAAU,iBAAiB;AAE9B,MAAI,aAAa,iBAAiB;AAElC,QAAM,gBAAgB,eAAe,MAAM,QAAQ,SAAS,IAAI,YAAY,EAAE;AAE9E,QAAM,wBAAwB,cAAc,KAAK,OAAK,EAAE,SAAS,uBAAuB;AACxF,QAAM,oBAAoB,cAAc,KAAK,OAAK,EAAE,SAAS,mBAAmB;AAEhF,MAAI,uBAAuB,SAAS,QAAQ,mBAAmB,SAAS,MAAM;AAC5E,WAAO,IAAI,OAAO,GAAG,EAAE,KAAK,yCAAyC;AAAA,EACvE;AAEA,QAAM,iBAAiB,CAAC,uBAAuB,iBAAiB,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM;AACzF,WAAO,gBAAgB,MAAM,OAAO,EAAE,GAAG,qBAAqB,CAAC;AAAA,EACjE,CAAC;AAED,MAAI,UAAU,mBAAmB,cAAc;AAE/C,QAAM,iBAAiB,IAAI,IAAI,UAAU,iBAAiB;AAC1D,iBAAe,aAAa,OAAO,aAAa,WAAW;AAE3D,MAAI,SAAS,GAAG,eAAe,QAAQ,IAAI,eAAe,aAAa,SAAS,CAAC,EAAE;AACrF;","names":["args"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const PRERENDER_BYPASS_COOKIE = "__prerender_bypass";
|
|
2
|
+
const PREVIEW_DATA_COOKIE = "__next_preview_data";
|
|
3
|
+
const MAKESWIFT_DRAFT_DATA_COOKIE = "x-makeswift-draft-data";
|
|
4
|
+
const SET_COOKIE_HEADER = "set-cookie";
|
|
5
|
+
const SearchParams = {
|
|
6
|
+
DraftMode: "x-makeswift-draft-mode",
|
|
7
|
+
PreviewMode: "x-makeswift-preview-mode"
|
|
8
|
+
};
|
|
9
|
+
const cookieSettingOptions = {
|
|
10
|
+
path: "/",
|
|
11
|
+
sameSite: "none",
|
|
12
|
+
secure: true,
|
|
13
|
+
httpOnly: true,
|
|
14
|
+
partitioned: true
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
MAKESWIFT_DRAFT_DATA_COOKIE,
|
|
18
|
+
PRERENDER_BYPASS_COOKIE,
|
|
19
|
+
PREVIEW_DATA_COOKIE,
|
|
20
|
+
SET_COOKIE_HEADER,
|
|
21
|
+
SearchParams,
|
|
22
|
+
cookieSettingOptions
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/utils/draft.ts"],"sourcesContent":["export const PRERENDER_BYPASS_COOKIE = '__prerender_bypass'\nexport const PREVIEW_DATA_COOKIE = '__next_preview_data'\n\nexport const MAKESWIFT_DRAFT_DATA_COOKIE = 'x-makeswift-draft-data'\nexport const SET_COOKIE_HEADER = 'set-cookie'\n\nexport const SearchParams = {\n DraftMode: 'x-makeswift-draft-mode',\n PreviewMode: 'x-makeswift-preview-mode',\n} as const\n\nexport const cookieSettingOptions = {\n path: '/',\n sameSite: 'none',\n secure: true,\n httpOnly: true,\n partitioned: true,\n} as const\n"],"mappings":"AAAO,MAAM,0BAA0B;AAChC,MAAM,sBAAsB;AAE5B,MAAM,8BAA8B;AACpC,MAAM,oBAAoB;AAE1B,MAAM,eAAe;AAAA,EAC1B,WAAW;AAAA,EACX,aAAa;AACf;AAEO,MAAM,uBAAuB;AAAA,EAClC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,aAAa;AACf;","names":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { revalidateTag } from "next/cache";
|
|
2
|
+
import { MAKESWIFT_CACHE_TAG } from "../../../cache";
|
|
2
3
|
async function handleSitePublished(_payload, { onPublish }) {
|
|
3
4
|
revalidateTag(MAKESWIFT_CACHE_TAG);
|
|
4
5
|
try {
|
|
@@ -8,9 +9,7 @@ async function handleSitePublished(_payload, { onPublish }) {
|
|
|
8
9
|
}
|
|
9
10
|
return { body: { success: true }, status: 200 };
|
|
10
11
|
}
|
|
11
|
-
const MAKESWIFT_CACHE_TAG = "@@makeswift";
|
|
12
12
|
export {
|
|
13
|
-
MAKESWIFT_CACHE_TAG,
|
|
14
13
|
handleSitePublished
|
|
15
14
|
};
|
|
16
15
|
//# sourceMappingURL=site-published.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/site-published.ts"],"sourcesContent":["import { revalidateTag } from 'next/cache'\nimport { OnPublish
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/api-handler/handlers/webhook/site-published.ts"],"sourcesContent":["import { revalidateTag } from 'next/cache'\nimport {\n type OnPublish,\n type SitePublishedWebhookPayload,\n type WebhookHandlerResult,\n} from './types'\n\nimport { MAKESWIFT_CACHE_TAG } from '../../../cache'\n\ntype SitePublishedParams = {\n onPublish?: OnPublish\n}\n\nexport async function handleSitePublished(\n _payload: SitePublishedWebhookPayload,\n { onPublish }: SitePublishedParams,\n): Promise<WebhookHandlerResult> {\n revalidateTag(MAKESWIFT_CACHE_TAG)\n\n try {\n await onPublish?.()\n } catch (error) {\n // log and ignore any error in user-provided onPublish\n console.error(\"Unhandled exception in the 'onPublish' callback:\", error)\n }\n\n return { body: { success: true }, status: 200 }\n}\n"],"mappings":"AAAA,SAAS,qBAAqB;AAO9B,SAAS,2BAA2B;AAMpC,eAAsB,oBACpB,UACA,EAAE,UAAU,GACmB;AAC/B,gBAAc,mBAAmB;AAEjC,MAAI;AACF,UAAM,YAAY;AAAA,EACpB,SAAS,OAAO;AAEd,YAAQ,MAAM,oDAAoD,KAAK;AAAA,EACzE;AAEA,SAAO,EAAE,MAAM,EAAE,SAAS,KAAK,GAAG,QAAQ,IAAI;AAChD;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/next/cache.ts"],"sourcesContent":["export const MAKESWIFT_CACHE_TAG = '@@makeswift'\n"],"mappings":"AAAO,MAAM,sBAAsB;","names":[]}
|
package/dist/esm/next/client.js
CHANGED
|
@@ -23,7 +23,7 @@ import { toIterablePaginationResult } from "./utils/pagination";
|
|
|
23
23
|
import { deterministicUUID } from "../utils/deterministic-uuid";
|
|
24
24
|
import { Schema } from "@makeswift/controls";
|
|
25
25
|
import { EMBEDDED_DOCUMENT_TYPE } from "../state/modules/read-only-documents";
|
|
26
|
-
import { MAKESWIFT_CACHE_TAG } from "./
|
|
26
|
+
import { MAKESWIFT_CACHE_TAG } from "./cache";
|
|
27
27
|
const makeswiftPageResultSchema = z.object({
|
|
28
28
|
id: z.string(),
|
|
29
29
|
path: z.string(),
|