@makeswift/runtime 0.22.3 → 0.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/api/{graphql/fragments.js → fragments.js} +1 -1
- package/dist/cjs/api/fragments.js.map +1 -0
- package/dist/cjs/api/index.js +4 -4
- package/dist/cjs/api/index.js.map +1 -1
- package/dist/cjs/api/react.js +46 -46
- package/dist/cjs/api/react.js.map +1 -1
- package/dist/cjs/api/{graphql/types.js → types.js} +9 -4
- package/dist/cjs/api/types.js.map +1 -0
- package/dist/cjs/builder/serialization/control-serialization.js +13 -9
- package/dist/cjs/builder/serialization/control-serialization.js.map +1 -1
- package/dist/cjs/components/builtin/Form/Form.js +2 -2
- package/dist/cjs/components/builtin/Form/Form.js.map +1 -1
- package/dist/cjs/components/builtin/Slot/Slot.js +33 -0
- package/dist/cjs/components/builtin/Slot/Slot.js.map +1 -0
- package/dist/cjs/components/builtin/Slot/index.js +35 -0
- package/dist/cjs/components/builtin/Slot/index.js.map +1 -0
- package/dist/cjs/components/builtin/Slot/register.js +56 -0
- package/dist/cjs/components/builtin/Slot/register.js.map +1 -0
- package/dist/cjs/components/builtin/constants.js +1 -0
- package/dist/cjs/components/builtin/constants.js.map +1 -1
- package/dist/cjs/components/builtin/index.js +3 -0
- package/dist/cjs/components/builtin/index.js.map +1 -1
- package/dist/cjs/components/builtin/register.js +9 -6
- package/dist/cjs/components/builtin/register.js.map +1 -1
- package/dist/cjs/components/hooks/usePageSnippets.js +2 -2
- package/dist/cjs/components/hooks/usePageSnippets.js.map +1 -1
- package/dist/cjs/components/page/Page.js +2 -3
- package/dist/cjs/components/page/Page.js.map +1 -1
- package/dist/cjs/components/page/PageHead.js +2 -2
- package/dist/cjs/components/page/PageHead.js.map +1 -1
- package/dist/cjs/components/shared/BackgroundsContainer/index.js +5 -3
- package/dist/cjs/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/cjs/controls/index.js +10 -0
- package/dist/cjs/controls/index.js.map +1 -1
- package/dist/cjs/core/index.js +4 -2
- package/dist/cjs/core/index.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jest-setup.js +2 -1
- package/dist/cjs/jest-setup.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/manifest.js +4 -2
- package/dist/cjs/next/api-handler/handlers/manifest.js.map +1 -1
- package/dist/cjs/next/api-handler/handlers/webhook/index.js +55 -0
- package/dist/cjs/next/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js +36 -0
- package/dist/cjs/next/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/webhook/types.js +46 -0
- package/dist/cjs/next/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/cjs/next/api-handler/index.js +7 -7
- package/dist/cjs/next/api-handler/index.js.map +1 -1
- package/dist/cjs/next/client.js +136 -18
- package/dist/cjs/next/client.js.map +1 -1
- package/dist/cjs/next/components/MakeswiftComponent.js +50 -0
- package/dist/cjs/next/components/MakeswiftComponent.js.map +1 -0
- package/dist/cjs/next/components/Slot.js +50 -0
- package/dist/cjs/next/components/Slot.js.map +1 -0
- package/dist/cjs/next/components/SlotProvider.js +41 -0
- package/dist/cjs/next/components/SlotProvider.js.map +1 -0
- package/dist/cjs/next/components/page.js +20 -18
- package/dist/cjs/next/components/page.js.map +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +6 -5
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js +6 -6
- package/dist/cjs/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
- package/dist/cjs/next/document.js +1 -1
- package/dist/cjs/next/document.js.map +1 -1
- package/dist/cjs/next/draft-mode/draft-mode-script.js +17 -3
- package/dist/cjs/next/draft-mode/draft-mode-script.js.map +1 -1
- package/dist/cjs/next/index.js +10 -4
- package/dist/cjs/next/index.js.map +1 -1
- package/dist/cjs/next/preview-mode.js +4 -1
- package/dist/cjs/next/preview-mode.js.map +1 -1
- package/dist/cjs/prop-controllers/introspection.js +1 -1
- package/dist/cjs/prop-controllers/introspection.js.map +1 -1
- package/dist/cjs/react.js +2 -4
- package/dist/cjs/react.js.map +1 -1
- package/dist/cjs/runtimes/react/components/Document.js +3 -2
- package/dist/cjs/runtimes/react/components/Document.js.map +1 -1
- package/dist/cjs/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +9 -9
- package/dist/cjs/runtimes/react/components/DocumentRoot.js.map +1 -0
- package/dist/cjs/runtimes/react/components/Element.js +10 -22
- package/dist/cjs/runtimes/react/components/Element.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementReference.js +3 -1
- package/dist/cjs/runtimes/react/components/ElementReference.js.map +1 -1
- package/dist/cjs/runtimes/react/components/ElementRegistration.js +55 -0
- package/dist/cjs/runtimes/react/components/ElementRegistration.js.map +1 -0
- package/dist/cjs/runtimes/react/components/LiveProvider.js +10 -8
- package/dist/cjs/runtimes/react/components/LiveProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/PreviewProvider.js +9 -22
- package/dist/cjs/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js +23 -5
- package/dist/cjs/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/cjs/runtimes/react/controls/group.js +45 -0
- package/dist/cjs/runtimes/react/controls/group.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js +20 -18
- package/dist/cjs/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js +35 -0
- package/dist/cjs/runtimes/react/hooks/use-cache-data.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js +1 -2
- package/dist/cjs/runtimes/react/hooks/use-dispatch.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-document-context.js +49 -0
- package/dist/cjs/runtimes/react/hooks/use-document-context.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-element-id.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-element-id.js.map +1 -1
- package/dist/cjs/{next/context/react-runtime.js → runtimes/react/hooks/use-react-runtime.js} +12 -16
- package/dist/cjs/runtimes/react/hooks/use-react-runtime.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-register-document.js +42 -0
- package/dist/cjs/runtimes/react/hooks/use-register-document.js.map +1 -0
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js +2 -2
- package/dist/cjs/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js +6 -6
- package/dist/cjs/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-store.js +6 -3
- package/dist/cjs/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js +38 -0
- package/dist/cjs/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
- package/dist/cjs/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +4 -4
- package/dist/cjs/runtimes/react/host-api-client.js.map +1 -0
- package/dist/cjs/runtimes/react/index.js +8 -8
- package/dist/cjs/runtimes/react/index.js.map +1 -1
- package/dist/cjs/runtimes/react/react-runtime.js +0 -24
- package/dist/cjs/runtimes/react/react-runtime.js.map +1 -1
- package/dist/cjs/runtimes/react/runtime-core.js +2 -17
- package/dist/cjs/runtimes/react/runtime-core.js.map +1 -1
- package/dist/cjs/state/actions.js +33 -16
- package/dist/cjs/state/actions.js.map +1 -1
- package/dist/cjs/state/makeswift-api-client.js +98 -18
- package/dist/cjs/state/makeswift-api-client.js.map +1 -1
- package/dist/cjs/{runtimes/react/hooks/use-document-key.js → state/mixins/setup-teardown.js} +12 -13
- package/dist/cjs/state/mixins/setup-teardown.js.map +1 -0
- package/dist/cjs/state/modules/api-resources.js +62 -24
- package/dist/cjs/state/modules/api-resources.js.map +1 -1
- package/dist/cjs/state/modules/element-trees.js +14 -7
- package/dist/cjs/state/modules/element-trees.js.map +1 -1
- package/dist/cjs/state/modules/localized-resources-map.js +80 -0
- package/dist/cjs/state/modules/localized-resources-map.js.map +1 -0
- package/dist/cjs/state/modules/read-only-documents.js +16 -13
- package/dist/cjs/state/modules/read-only-documents.js.map +1 -1
- package/dist/cjs/state/modules/read-write-documents.js +9 -8
- package/dist/cjs/state/modules/read-write-documents.js.map +1 -1
- package/dist/cjs/state/react-builder-preview.js +18 -61
- package/dist/cjs/state/react-builder-preview.js.map +1 -1
- package/dist/cjs/state/react-page.js +64 -8
- package/dist/cjs/state/react-page.js.map +1 -1
- package/dist/cjs/{api/resource-types.js → utils/branded.js} +3 -10
- package/dist/cjs/utils/branded.js.map +1 -0
- package/dist/cjs/utils/canonicalize.js +39 -0
- package/dist/cjs/utils/canonicalize.js.map +1 -0
- package/dist/cjs/utils/deterministic-uuid.js +35 -0
- package/dist/cjs/utils/deterministic-uuid.js.map +1 -0
- package/dist/cjs/utils/is-server.js +31 -0
- package/dist/cjs/utils/is-server.js.map +1 -0
- package/dist/cjs/utils/serializeState.js +42 -0
- package/dist/cjs/utils/serializeState.js.map +1 -0
- package/dist/cjs/utils/tests/element-data-test-test.js +10 -9
- package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/esm/api/fragments.js +6 -0
- package/dist/esm/api/fragments.js.map +1 -0
- package/dist/esm/api/index.js +2 -2
- package/dist/esm/api/index.js.map +1 -1
- package/dist/esm/api/react.js +45 -46
- package/dist/esm/api/react.js.map +1 -1
- package/dist/esm/api/{graphql/types.js → types.js} +7 -3
- package/dist/esm/api/types.js.map +1 -0
- package/dist/esm/builder/serialization/control-serialization.js +19 -11
- package/dist/esm/builder/serialization/control-serialization.js.map +1 -1
- package/dist/esm/components/builtin/Form/Form.js +1 -1
- package/dist/esm/components/builtin/Form/Form.js.map +1 -1
- package/dist/esm/components/builtin/Slot/Slot.js +13 -0
- package/dist/esm/components/builtin/Slot/Slot.js.map +1 -0
- package/dist/esm/components/builtin/Slot/index.js +5 -0
- package/dist/esm/components/builtin/Slot/index.js.map +1 -0
- package/dist/esm/components/builtin/Slot/register.js +22 -0
- package/dist/esm/components/builtin/Slot/register.js.map +1 -0
- package/dist/esm/components/builtin/constants.js +1 -0
- package/dist/esm/components/builtin/constants.js.map +1 -1
- package/dist/esm/components/builtin/index.js +8 -6
- package/dist/esm/components/builtin/index.js.map +1 -1
- package/dist/esm/components/builtin/register.js +3 -0
- package/dist/esm/components/builtin/register.js.map +1 -1
- package/dist/esm/components/hooks/usePageSnippets.js +1 -1
- package/dist/esm/components/hooks/usePageSnippets.js.map +1 -1
- package/dist/esm/components/page/Page.js +3 -4
- package/dist/esm/components/page/Page.js.map +1 -1
- package/dist/esm/components/page/PageHead.js +1 -1
- package/dist/esm/components/page/PageHead.js.map +1 -1
- package/dist/esm/components/shared/BackgroundsContainer/index.js +5 -3
- package/dist/esm/components/shared/BackgroundsContainer/index.js.map +1 -1
- package/dist/esm/controls/index.js +17 -7
- package/dist/esm/controls/index.js.map +1 -1
- package/dist/esm/core/index.js +4 -2
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jest-setup.js +2 -1
- package/dist/esm/jest-setup.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/manifest.js +4 -2
- package/dist/esm/next/api-handler/handlers/manifest.js.map +1 -1
- package/dist/esm/next/api-handler/handlers/webhook/index.js +38 -0
- package/dist/esm/next/api-handler/handlers/webhook/index.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js +11 -0
- package/dist/esm/next/api-handler/handlers/webhook/site-published.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/webhook/types.js +21 -0
- package/dist/esm/next/api-handler/handlers/webhook/types.js.map +1 -0
- package/dist/esm/next/api-handler/index.js +7 -7
- package/dist/esm/next/api-handler/index.js.map +1 -1
- package/dist/esm/next/client.js +133 -17
- package/dist/esm/next/client.js.map +1 -1
- package/dist/esm/next/components/MakeswiftComponent.js +26 -0
- package/dist/esm/next/components/MakeswiftComponent.js.map +1 -0
- package/dist/esm/next/components/Slot.js +16 -0
- package/dist/esm/next/components/Slot.js.map +1 -0
- package/dist/esm/next/components/SlotProvider.js +17 -0
- package/dist/esm/next/components/SlotProvider.js.map +1 -0
- package/dist/esm/next/components/page.js +24 -20
- package/dist/esm/next/components/page.js.map +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +4 -3
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -1
- package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js +3 -3
- package/dist/esm/next/components/tests/prop-controllers/page-prop-controller.js.map +1 -1
- package/dist/esm/next/document.js +1 -1
- package/dist/esm/next/document.js.map +1 -1
- package/dist/esm/next/draft-mode/draft-mode-script.js +7 -3
- package/dist/esm/next/draft-mode/draft-mode-script.js.map +1 -1
- package/dist/esm/next/index.js +6 -2
- package/dist/esm/next/index.js.map +1 -1
- package/dist/esm/next/preview-mode.js +4 -1
- package/dist/esm/next/preview-mode.js.map +1 -1
- package/dist/esm/prop-controllers/introspection.js +2 -2
- package/dist/esm/prop-controllers/introspection.js.map +1 -1
- package/dist/esm/react.js +2 -4
- package/dist/esm/react.js.map +1 -1
- package/dist/esm/runtimes/react/components/Document.js +3 -2
- package/dist/esm/runtimes/react/components/Document.js.map +1 -1
- package/dist/esm/runtimes/react/components/{DocumentReference.js → DocumentRoot.js} +7 -7
- package/dist/esm/runtimes/react/components/DocumentRoot.js.map +1 -0
- package/dist/esm/runtimes/react/components/Element.js +11 -23
- package/dist/esm/runtimes/react/components/Element.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementReference.js +3 -1
- package/dist/esm/runtimes/react/components/ElementReference.js.map +1 -1
- package/dist/esm/runtimes/react/components/ElementRegistration.js +31 -0
- package/dist/esm/runtimes/react/components/ElementRegistration.js.map +1 -0
- package/dist/esm/runtimes/react/components/LiveProvider.js +9 -7
- package/dist/esm/runtimes/react/components/LiveProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/PreviewProvider.js +8 -21
- package/dist/esm/runtimes/react/components/PreviewProvider.js.map +1 -1
- package/dist/esm/runtimes/react/components/RuntimeProvider.js +23 -5
- package/dist/esm/runtimes/react/components/RuntimeProvider.js.map +1 -1
- package/dist/esm/runtimes/react/controls/group.js +23 -0
- package/dist/esm/runtimes/react/controls/group.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/makeswift-api.js +11 -9
- package/dist/esm/runtimes/react/hooks/makeswift-api.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-cache-data.js +11 -0
- package/dist/esm/runtimes/react/hooks/use-cache-data.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-dispatch.js +2 -3
- package/dist/esm/runtimes/react/hooks/use-dispatch.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-document-context.js +22 -0
- package/dist/esm/runtimes/react/hooks/use-document-context.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-element-id.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-element-id.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-react-runtime.js +15 -0
- package/dist/esm/runtimes/react/hooks/use-react-runtime.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-register-document.js +18 -0
- package/dist/esm/runtimes/react/hooks/use-register-document.js.map +1 -0
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js +1 -1
- package/dist/esm/runtimes/react/hooks/use-resolved-props.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-resource-resolver.js +5 -5
- package/dist/esm/runtimes/react/hooks/use-resource-resolver.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-store.js +6 -3
- package/dist/esm/runtimes/react/hooks/use-store.js.map +1 -1
- package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js +14 -0
- package/dist/esm/runtimes/react/hooks/use-universal-dispatch.js.map +1 -0
- package/dist/esm/{next/context/makeswift-host-api-client.js → runtimes/react/host-api-client.js} +1 -1
- package/dist/esm/runtimes/react/host-api-client.js.map +1 -0
- package/dist/esm/runtimes/react/index.js +5 -5
- package/dist/esm/runtimes/react/index.js.map +1 -1
- package/dist/esm/runtimes/react/react-runtime.js +0 -24
- package/dist/esm/runtimes/react/react-runtime.js.map +1 -1
- package/dist/esm/runtimes/react/runtime-core.js +2 -17
- package/dist/esm/runtimes/react/runtime-core.js.map +1 -1
- package/dist/esm/state/actions.js +29 -14
- package/dist/esm/state/actions.js.map +1 -1
- package/dist/esm/state/makeswift-api-client.js +103 -18
- package/dist/esm/state/makeswift-api-client.js.map +1 -1
- package/dist/esm/state/mixins/setup-teardown.js +11 -0
- package/dist/esm/state/mixins/setup-teardown.js.map +1 -0
- package/dist/esm/state/modules/api-resources.js +66 -25
- package/dist/esm/state/modules/api-resources.js.map +1 -1
- package/dist/esm/state/modules/element-trees.js +14 -7
- package/dist/esm/state/modules/element-trees.js.map +1 -1
- package/dist/esm/state/modules/localized-resources-map.js +53 -0
- package/dist/esm/state/modules/localized-resources-map.js.map +1 -0
- package/dist/esm/state/modules/read-only-documents.js +13 -12
- package/dist/esm/state/modules/read-only-documents.js.map +1 -1
- package/dist/esm/state/modules/read-write-documents.js +9 -8
- package/dist/esm/state/modules/read-write-documents.js.map +1 -1
- package/dist/esm/state/react-builder-preview.js +18 -64
- package/dist/esm/state/react-builder-preview.js.map +1 -1
- package/dist/esm/state/react-page.js +73 -9
- package/dist/esm/state/react-page.js.map +1 -1
- package/dist/esm/utils/branded.js +1 -0
- package/dist/esm/utils/branded.js.map +1 -0
- package/dist/esm/utils/canonicalize.js +15 -0
- package/dist/esm/utils/canonicalize.js.map +1 -0
- package/dist/esm/utils/deterministic-uuid.js +11 -0
- package/dist/esm/utils/deterministic-uuid.js.map +1 -0
- package/dist/esm/utils/is-server.js +7 -0
- package/dist/esm/utils/is-server.js.map +1 -0
- package/dist/esm/utils/serializeState.js +18 -0
- package/dist/esm/utils/serializeState.js.map +1 -0
- package/dist/esm/utils/tests/element-data-test-test.js +10 -9
- package/dist/esm/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/types/api/{graphql/fragments.d.ts → fragments.d.ts} +1 -1
- package/dist/types/api/fragments.d.ts.map +1 -0
- package/dist/types/api/index.d.ts +2 -2
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/react.d.ts +28 -22
- package/dist/types/api/react.d.ts.map +1 -1
- package/dist/types/api/types.d.ts +18 -0
- package/dist/types/api/types.d.ts.map +1 -0
- package/dist/types/builder/serialization/control-serialization.d.ts.map +1 -1
- package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
- package/dist/types/components/builtin/Slot/Slot.d.ts +8 -0
- package/dist/types/components/builtin/Slot/Slot.d.ts.map +1 -0
- package/dist/types/components/builtin/Slot/index.d.ts +2 -0
- package/dist/types/components/builtin/Slot/index.d.ts.map +1 -0
- package/dist/types/components/builtin/Slot/register.d.ts +3 -0
- package/dist/types/components/builtin/Slot/register.d.ts.map +1 -0
- package/dist/types/components/builtin/constants.d.ts +1 -0
- package/dist/types/components/builtin/constants.d.ts.map +1 -1
- package/dist/types/components/builtin/index.d.ts +1 -0
- package/dist/types/components/builtin/index.d.ts.map +1 -1
- package/dist/types/components/builtin/register.d.ts.map +1 -1
- package/dist/types/components/hooks/usePageSnippets.d.ts +1 -1
- package/dist/types/components/hooks/usePageSnippets.d.ts.map +1 -1
- package/dist/types/components/page/Page.d.ts +4 -3
- package/dist/types/components/page/Page.d.ts.map +1 -1
- package/dist/types/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
- package/dist/types/controls/index.d.ts +1 -1
- package/dist/types/controls/index.d.ts.map +1 -1
- package/dist/types/controls/rich-text-v2/rich-text-v2.d.ts +4 -4
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/index.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/locale.d.ts +1 -1
- package/dist/types/next/api-handler/handlers/manifest.d.ts +1 -0
- package/dist/types/next/api-handler/handlers/manifest.d.ts.map +1 -1
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts +21 -0
- package/dist/types/next/api-handler/handlers/webhook/index.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts +4 -0
- package/dist/types/next/api-handler/handlers/webhook/site-published.d.ts.map +1 -0
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts +121 -0
- package/dist/types/next/api-handler/handlers/webhook/types.d.ts.map +1 -0
- package/dist/types/next/api-handler/index.d.ts +4 -3
- package/dist/types/next/api-handler/index.d.ts.map +1 -1
- package/dist/types/next/client.d.ts +356 -50
- package/dist/types/next/client.d.ts.map +1 -1
- package/dist/types/next/components/MakeswiftComponent.d.ts +10 -0
- package/dist/types/next/components/MakeswiftComponent.d.ts.map +1 -0
- package/dist/types/next/components/Slot.d.ts +10 -0
- package/dist/types/next/components/Slot.d.ts.map +1 -0
- package/dist/types/next/components/SlotProvider.d.ts +12 -0
- package/dist/types/next/components/SlotProvider.d.ts.map +1 -0
- package/dist/types/next/components/page.d.ts +1 -1
- package/dist/types/next/components/page.d.ts.map +1 -1
- package/dist/types/next/components/tests/controls/font-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/font-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/group-control.test.d.ts +2 -0
- package/dist/types/next/components/tests/controls/group-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +3 -2
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -1
- package/dist/types/next/components/tests/global-element-rendering.test.d.ts +3 -0
- package/dist/types/next/components/tests/global-element-rendering.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts +3 -0
- package/dist/types/next/components/tests/makeswift-component-rendering.test.d.ts.map +1 -0
- package/dist/types/next/document.d.ts +5 -1
- package/dist/types/next/document.d.ts.map +1 -1
- package/dist/types/next/draft-mode/draft-mode-script.d.ts.map +1 -1
- package/dist/types/next/index.d.ts +3 -1
- package/dist/types/next/index.d.ts.map +1 -1
- package/dist/types/next/preview-mode.d.ts.map +1 -1
- package/dist/types/next/tests/client.get-component-snapshot.test.d.ts +2 -0
- package/dist/types/next/tests/client.get-component-snapshot.test.d.ts.map +1 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/react.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts +1 -1
- package/dist/types/runtimes/react/components/Document.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts +9 -0
- package/dist/types/runtimes/react/components/DocumentRoot.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/Element.d.ts +3 -3
- package/dist/types/runtimes/react/components/Element.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementReference.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/ElementRegistration.d.ts +10 -0
- package/dist/types/runtimes/react/components/ElementRegistration.d.ts.map +1 -0
- package/dist/types/runtimes/react/components/LiveProvider.d.ts +2 -10
- package/dist/types/runtimes/react/components/LiveProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts +2 -10
- package/dist/types/runtimes/react/components/PreviewProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts +7 -11
- package/dist/types/runtimes/react/components/RuntimeProvider.d.ts.map +1 -1
- package/dist/types/runtimes/react/controls/group.d.ts +11 -0
- package/dist/types/runtimes/react/controls/group.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts +2 -3
- package/dist/types/runtimes/react/hooks/makeswift-api.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-cache-data.d.ts +3 -0
- package/dist/types/runtimes/react/hooks/use-cache-data.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-dispatch.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-document-context.d.ts +11 -0
- package/dist/types/runtimes/react/hooks/use-document-context.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts +5 -0
- package/dist/types/runtimes/react/hooks/use-react-runtime.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-register-document.d.ts.map +1 -0
- package/dist/types/runtimes/react/hooks/use-store.d.ts +1 -1
- package/dist/types/runtimes/react/hooks/use-store.d.ts.map +1 -1
- package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts +6 -0
- package/dist/types/runtimes/react/hooks/use-universal-dispatch.d.ts.map +1 -0
- package/dist/types/{next/context/makeswift-host-api-client.d.ts → runtimes/react/host-api-client.d.ts} +1 -1
- package/dist/types/runtimes/react/host-api-client.d.ts.map +1 -0
- package/dist/types/runtimes/react/index.d.ts +3 -3
- package/dist/types/runtimes/react/index.d.ts.map +1 -1
- package/dist/types/runtimes/react/react-runtime.d.ts +0 -9
- package/dist/types/runtimes/react/react-runtime.d.ts.map +1 -1
- package/dist/types/runtimes/react/runtime-core.d.ts +0 -5
- package/dist/types/runtimes/react/runtime-core.d.ts.map +1 -1
- package/dist/types/slate/test-helpers/slate-test-helper.d.ts +4 -4
- package/dist/types/state/actions.d.ts +45 -13
- package/dist/types/state/actions.d.ts.map +1 -1
- package/dist/types/state/makeswift-api-client.d.ts +18 -11
- package/dist/types/state/makeswift-api-client.d.ts.map +1 -1
- package/dist/types/state/mixins/setup-teardown.d.ts +7 -0
- package/dist/types/state/mixins/setup-teardown.d.ts.map +1 -0
- package/dist/types/state/modules/__tests__/api-resources.test.d.ts +2 -0
- package/dist/types/state/modules/__tests__/api-resources.test.d.ts.map +1 -0
- package/dist/types/state/modules/__tests__/fixtures/element-trees.d.ts +1 -1
- package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts +2 -0
- package/dist/types/state/modules/__tests__/localized-resources-map.test.d.ts.map +1 -0
- package/dist/types/state/modules/api-resources.d.ts +8 -5
- package/dist/types/state/modules/api-resources.d.ts.map +1 -1
- package/dist/types/state/modules/element-trees.d.ts +2 -1
- package/dist/types/state/modules/element-trees.d.ts.map +1 -1
- package/dist/types/state/modules/localized-resources-map.d.ts +13 -0
- package/dist/types/state/modules/localized-resources-map.d.ts.map +1 -0
- package/dist/types/state/modules/read-only-documents.d.ts +22 -5
- package/dist/types/state/modules/read-only-documents.d.ts.map +1 -1
- package/dist/types/state/modules/read-write-documents.d.ts +2 -2
- package/dist/types/state/modules/read-write-documents.d.ts.map +1 -1
- package/dist/types/state/react-builder-preview.d.ts +5 -11
- package/dist/types/state/react-builder-preview.d.ts.map +1 -1
- package/dist/types/state/react-page.d.ts +8 -6
- package/dist/types/state/react-page.d.ts.map +1 -1
- package/dist/types/utils/__tests__/serializeState.test.d.ts +2 -0
- package/dist/types/utils/__tests__/serializeState.test.d.ts.map +1 -0
- package/dist/types/utils/branded.d.ts +7 -0
- package/dist/types/utils/branded.d.ts.map +1 -0
- package/dist/types/utils/canonicalize.d.ts +7 -0
- package/dist/types/utils/canonicalize.d.ts.map +1 -0
- package/dist/types/utils/canonicalize.test.d.ts +2 -0
- package/dist/types/utils/canonicalize.test.d.ts.map +1 -0
- package/dist/types/utils/deterministic-uuid.d.ts +2 -0
- package/dist/types/utils/deterministic-uuid.d.ts.map +1 -0
- package/dist/types/utils/is-server.d.ts +2 -0
- package/dist/types/utils/is-server.d.ts.map +1 -0
- package/dist/types/utils/serializeState.d.ts +3 -0
- package/dist/types/utils/serializeState.d.ts.map +1 -0
- package/dist/types/utils/tests/element-data-test-test.d.ts +6 -3
- package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
- package/package.json +5 -4
- package/dist/cjs/api/graphql/fragments.js.map +0 -1
- package/dist/cjs/api/graphql/types.js.map +0 -1
- package/dist/cjs/api/resource-types.js.map +0 -1
- package/dist/cjs/next/context/makeswift-host-api-client.js.map +0 -1
- package/dist/cjs/next/context/react-runtime.js.map +0 -1
- package/dist/cjs/runtimes/react/components/DocumentReference.js.map +0 -1
- package/dist/cjs/runtimes/react/hooks/use-document-key.js.map +0 -1
- package/dist/esm/api/graphql/fragments.js +0 -6
- package/dist/esm/api/graphql/fragments.js.map +0 -1
- package/dist/esm/api/graphql/types.js.map +0 -1
- package/dist/esm/api/resource-types.js +0 -8
- package/dist/esm/api/resource-types.js.map +0 -1
- package/dist/esm/next/context/makeswift-host-api-client.js.map +0 -1
- package/dist/esm/next/context/react-runtime.js +0 -19
- package/dist/esm/next/context/react-runtime.js.map +0 -1
- package/dist/esm/runtimes/react/components/DocumentReference.js.map +0 -1
- package/dist/esm/runtimes/react/hooks/use-document-key.js +0 -11
- package/dist/esm/runtimes/react/hooks/use-document-key.js.map +0 -1
- package/dist/types/api/graphql/fragments.d.ts.map +0 -1
- package/dist/types/api/graphql/types.d.ts +0 -8
- package/dist/types/api/graphql/types.d.ts.map +0 -1
- package/dist/types/api/resource-types.d.ts +0 -20
- package/dist/types/api/resource-types.d.ts.map +0 -1
- package/dist/types/next/context/makeswift-host-api-client.d.ts.map +0 -1
- package/dist/types/next/context/react-runtime.d.ts +0 -8
- package/dist/types/next/context/react-runtime.d.ts.map +0 -1
- package/dist/types/runtimes/react/components/DocumentReference.d.ts +0 -9
- package/dist/types/runtimes/react/components/DocumentReference.d.ts.map +0 -1
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts +0 -4
- package/dist/types/runtimes/react/hooks/use-document-key.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/ElementReference.tsx"],"sourcesContent":["import { Ref, forwardRef, memo, useMemo } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useGlobalElement, useLocalizedGlobalElement } from '../hooks/makeswift-api'\nimport { useDocument } from '../hooks/use-document'\nimport { DocumentCyclesContext, useDocumentCycles } from '../hooks/use-document-cycles'\nimport {\n ElementData as ReactPageElementData,\n ElementReference as ReactPageElementReference,\n} from '../../../state/react-page'\nimport { FallbackComponent } from '../../../components/shared/FallbackComponent'\nimport { Element } from './Element'\nimport { Document } from './Document'\nimport { DisableRegisterElement } from '../hooks/use-disable-register-element'\n\ntype ElementRefereceProps = {\n elementReference: ReactPageElementReference\n}\n\nexport const ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n const globalElement = useGlobalElement(elementReference.value)\n // Update the logic here when we can merge element trees\n const localizedGlobalElement = useLocalizedGlobalElement(elementReference.value)\n const globalElementData = (localizedGlobalElement?.data ?? globalElement?.data) as\n | ReactPageElementData\n | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n const documentKey = elementReference.key\n const documentKeys = useDocumentCycles()\n const providedDocumentKeys = useMemo(\n () => [...documentKeys, documentKey],\n [documentKeys, documentKey],\n )\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n if (documentKeys.includes(documentKey)) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component contains itself!\"\n />\n )\n }\n\n return (\n <DocumentCyclesContext.Provider value={providedDocumentKeys}>\n {elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <DisableRegisterElement.Provider value={true}>\n {/* We render Element instead of ElementData because we rely on the FindDomNode */}\n <Element element={globalElementData} ref={ref} />\n </DisableRegisterElement.Provider>\n )}\n </DocumentCyclesContext.Provider>\n )\n }),\n)\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/ElementReference.tsx"],"sourcesContent":["import { Ref, forwardRef, memo, useMemo } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useGlobalElement, useLocalizedGlobalElement } from '../hooks/makeswift-api'\nimport { useDocument } from '../hooks/use-document'\nimport { DocumentCyclesContext, useDocumentCycles } from '../hooks/use-document-cycles'\nimport {\n ElementData as ReactPageElementData,\n ElementReference as ReactPageElementReference,\n} from '../../../state/react-page'\nimport { FallbackComponent } from '../../../components/shared/FallbackComponent'\nimport { Element } from './Element'\nimport { Document } from './Document'\nimport { DisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { useDocumentLocale } from '../hooks/use-document-context'\n\ntype ElementRefereceProps = {\n elementReference: ReactPageElementReference\n}\n\nexport const ElementReference = memo(\n forwardRef(function ElementReference(\n { elementReference }: ElementRefereceProps,\n ref: Ref<ElementImperativeHandle>,\n ): JSX.Element {\n const globalElement = useGlobalElement(elementReference.value)\n const locale = useDocumentLocale()\n // Update the logic here when we can merge element trees\n const localizedGlobalElement = useLocalizedGlobalElement(locale, elementReference.value)\n const globalElementData = (localizedGlobalElement?.data ?? globalElement?.data) as\n | ReactPageElementData\n | undefined\n const elementReferenceDocument = useDocument(elementReference.key)\n const documentKey = elementReference.key\n const documentKeys = useDocumentCycles()\n const providedDocumentKeys = useMemo(\n () => [...documentKeys, documentKey],\n [documentKeys, documentKey],\n )\n\n if (globalElementData == null) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component doesn't exist\"\n />\n )\n }\n\n if (documentKeys.includes(documentKey)) {\n return (\n <FallbackComponent\n ref={ref as Ref<HTMLDivElement>}\n text=\"This global component contains itself!\"\n />\n )\n }\n\n return (\n <DocumentCyclesContext.Provider value={providedDocumentKeys}>\n {elementReferenceDocument != null ? (\n <Document document={elementReferenceDocument} ref={ref} />\n ) : (\n <DisableRegisterElement.Provider value={true}>\n {/* We render Element instead of ElementData because we rely on the FindDomNode */}\n <Element element={globalElementData} ref={ref} />\n </DisableRegisterElement.Provider>\n )}\n </DocumentCyclesContext.Provider>\n )\n }),\n)\n"],"mappings":"AAyCQ;AAzCR,SAAc,YAAY,MAAM,eAAe;AAE/C,SAAS,kBAAkB,iCAAiC;AAC5D,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB,yBAAyB;AAKzD,SAAS,yBAAyB;AAClC,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,8BAA8B;AACvC,SAAS,yBAAyB;AAM3B,MAAM,mBAAmB;AAAA,EAC9B,WAAW,SAASA,kBAClB,EAAE,iBAAiB,GACnB,KACa;AACb,UAAM,gBAAgB,iBAAiB,iBAAiB,KAAK;AAC7D,UAAM,SAAS,kBAAkB;AAEjC,UAAM,yBAAyB,0BAA0B,QAAQ,iBAAiB,KAAK;AACvF,UAAM,oBAAqB,wBAAwB,QAAQ,eAAe;AAG1E,UAAM,2BAA2B,YAAY,iBAAiB,GAAG;AACjE,UAAM,cAAc,iBAAiB;AACrC,UAAM,eAAe,kBAAkB;AACvC,UAAM,uBAAuB;AAAA,MAC3B,MAAM,CAAC,GAAG,cAAc,WAAW;AAAA,MACnC,CAAC,cAAc,WAAW;AAAA,IAC5B;AAEA,QAAI,qBAAqB,MAAM;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,IAEJ;AAEA,QAAI,aAAa,SAAS,WAAW,GAAG;AACtC,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,IAEJ;AAEA,WACE,oBAAC,sBAAsB,UAAtB,EAA+B,OAAO,sBACpC,sCAA4B,OAC3B,oBAAC,YAAS,UAAU,0BAA0B,KAAU,IAExD,oBAAC,uBAAuB,UAAvB,EAAgC,OAAO,MAEtC,8BAAC,WAAQ,SAAS,mBAAmB,KAAU,GACjD,GAEJ;AAAA,EAEJ,CAAC;AACH;","names":["ElementReference"]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
3
|
+
import { memo, useEffect } from "react";
|
|
4
|
+
import { useDispatch } from "../hooks/use-dispatch";
|
|
5
|
+
import { useDocumentKey } from "../hooks/use-document-context";
|
|
6
|
+
import { useDisableRegisterElement } from "../hooks/use-disable-register-element";
|
|
7
|
+
import { mountComponentEffect, registerComponentHandleEffect } from "../../../state/actions";
|
|
8
|
+
const ElementRegistration = memo(function ElementRegistration2({
|
|
9
|
+
elementKey,
|
|
10
|
+
componentHandle,
|
|
11
|
+
children
|
|
12
|
+
}) {
|
|
13
|
+
const dispatch = useDispatch();
|
|
14
|
+
const documentKey = useDocumentKey();
|
|
15
|
+
const isRegisterElementDisabled = useDisableRegisterElement();
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (documentKey == null || isRegisterElementDisabled)
|
|
18
|
+
return;
|
|
19
|
+
return dispatch(registerComponentHandleEffect(documentKey, elementKey, componentHandle));
|
|
20
|
+
}, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (documentKey == null || isRegisterElementDisabled)
|
|
23
|
+
return;
|
|
24
|
+
return dispatch(mountComponentEffect(documentKey, elementKey));
|
|
25
|
+
}, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
|
|
26
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
27
|
+
});
|
|
28
|
+
export {
|
|
29
|
+
ElementRegistration
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=ElementRegistration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/ElementRegistration.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, memo, useEffect } from 'react'\nimport { ElementImperativeHandle } from '../element-imperative-handle'\nimport { useDispatch } from '../hooks/use-dispatch'\nimport { useDocumentKey } from '../hooks/use-document-context'\nimport { useDisableRegisterElement } from '../hooks/use-disable-register-element'\nimport { mountComponentEffect, registerComponentHandleEffect } from '../../../state/actions'\n\ntype RegisterChildrenAsElementProps = {\n elementKey: string\n componentHandle: ElementImperativeHandle\n children?: ReactNode\n}\n\nexport const ElementRegistration = memo(function ElementRegistration({\n elementKey,\n componentHandle,\n children,\n}: RegisterChildrenAsElementProps): JSX.Element {\n const dispatch = useDispatch()\n const documentKey = useDocumentKey()\n\n const isRegisterElementDisabled = useDisableRegisterElement()\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(registerComponentHandleEffect(documentKey, elementKey, componentHandle))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n useEffect(() => {\n if (documentKey == null || isRegisterElementDisabled) return\n\n return dispatch(mountComponentEffect(documentKey, elementKey))\n }, [dispatch, documentKey, elementKey, isRegisterElementDisabled])\n\n return <>{children}</>\n})\n"],"mappings":";AAqCS;AAnCT,SAAoB,MAAM,iBAAiB;AAE3C,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,sBAAsB,qCAAqC;AAQ7D,MAAM,sBAAsB,KAAK,SAASA,qBAAoB;AAAA,EACnE;AAAA,EACA;AAAA,EACA;AACF,GAAgD;AAC9C,QAAM,WAAW,YAAY;AAC7B,QAAM,cAAc,eAAe;AAEnC,QAAM,4BAA4B,0BAA0B;AAE5D,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,8BAA8B,aAAa,YAAY,eAAe,CAAC;AAAA,EACzF,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,YAAU,MAAM;AACd,QAAI,eAAe,QAAQ;AAA2B;AAEtD,WAAO,SAAS,qBAAqB,aAAa,UAAU,CAAC;AAAA,EAC/D,GAAG,CAAC,UAAU,aAAa,YAAY,yBAAyB,CAAC;AAEjE,SAAO,gCAAG,UAAS;AACrB,CAAC;","names":["ElementRegistration"]}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
-
import { StoreContext } from "../hooks/use-store";
|
|
4
3
|
import * as ReactPage from "../../../state/react-page";
|
|
5
|
-
import { useReactRuntime } from "
|
|
6
|
-
import {
|
|
7
|
-
function LiveProvider({
|
|
4
|
+
import { useReactRuntime } from "../hooks/use-react-runtime";
|
|
5
|
+
import { StoreContext } from "../hooks/use-store";
|
|
6
|
+
function LiveProvider({ children }) {
|
|
8
7
|
const runtime = useReactRuntime();
|
|
9
8
|
const store = useMemo(
|
|
10
|
-
() => ReactPage.configureStore({
|
|
11
|
-
|
|
9
|
+
() => ReactPage.configureStore({
|
|
10
|
+
name: "Host store",
|
|
11
|
+
preloadedState: runtime.store.getState()
|
|
12
|
+
}),
|
|
13
|
+
[runtime]
|
|
12
14
|
);
|
|
13
|
-
return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children
|
|
15
|
+
return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children });
|
|
14
16
|
}
|
|
15
17
|
export {
|
|
16
18
|
LiveProvider as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/LiveProvider.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/LiveProvider.tsx"],"sourcesContent":["import { type PropsWithChildren, useMemo } from 'react'\n\nimport * as ReactPage from '../../../state/react-page'\n\nimport { useReactRuntime } from '../hooks/use-react-runtime'\nimport { StoreContext } from '../hooks/use-store'\n\nexport default function LiveProvider({ children }: PropsWithChildren): JSX.Element {\n const runtime = useReactRuntime()\n const store = useMemo(\n () =>\n ReactPage.configureStore({\n name: 'Host store',\n preloadedState: runtime.store.getState(),\n }),\n [runtime],\n )\n\n return <StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n}\n"],"mappings":"AAkBS;AAlBT,SAAiC,eAAe;AAEhD,YAAY,eAAe;AAE3B,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAEd,SAAR,aAA8B,EAAE,SAAS,GAAmC;AACjF,QAAM,UAAU,gBAAgB;AAChC,QAAM,QAAQ;AAAA,IACZ,MACE,UAAU,eAAe;AAAA,MACvB,MAAM;AAAA,MACN,gBAAgB,QAAQ,MAAM,SAAS;AAAA,IACzC,CAAC;AAAA,IACH,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;AACxD;","names":[]}
|
|
@@ -1,38 +1,25 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useMemo } from "react";
|
|
4
|
-
import { ReactRuntime } from "../react-runtime";
|
|
5
|
-
import { StoreContext } from "../hooks/use-store";
|
|
6
4
|
import * as ReactBuilderPreview from "../../../state/react-builder-preview";
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
function PreviewProvider({ client, children, rootElements }) {
|
|
5
|
+
import { useReactRuntime } from "../hooks/use-react-runtime";
|
|
6
|
+
import { StoreContext } from "../hooks/use-store";
|
|
7
|
+
import { useMakeswiftHostApiClient } from "../host-api-client";
|
|
8
|
+
function PreviewProvider({ children }) {
|
|
12
9
|
const runtime = useReactRuntime();
|
|
10
|
+
const client = useMakeswiftHostApiClient();
|
|
13
11
|
const store = useMemo(
|
|
14
12
|
() => ReactBuilderPreview.configureStore({
|
|
15
|
-
preloadedState: runtime
|
|
16
|
-
rootElements,
|
|
13
|
+
preloadedState: runtime.store.getState(),
|
|
17
14
|
client
|
|
18
15
|
}),
|
|
19
|
-
[client,
|
|
16
|
+
[client, runtime]
|
|
20
17
|
);
|
|
21
18
|
useEffect(() => {
|
|
22
19
|
store.setup();
|
|
23
20
|
return () => store.teardown();
|
|
24
21
|
}, [store]);
|
|
25
|
-
|
|
26
|
-
const unregisterDocuments = Array.from(rootElements?.entries() ?? []).map(
|
|
27
|
-
([documentKey, rootElement]) => store.dispatch(registerDocumentEffect(ReactPage.createDocument(documentKey, rootElement)))
|
|
28
|
-
);
|
|
29
|
-
return () => {
|
|
30
|
-
unregisterDocuments.forEach((unregisterDocument) => {
|
|
31
|
-
unregisterDocument();
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
}, [store, rootElements]);
|
|
35
|
-
return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children: /* @__PURE__ */ jsx(MakeswiftHostApiClientProvider, { client, children }) });
|
|
22
|
+
return /* @__PURE__ */ jsx(StoreContext.Provider, { value: store, children });
|
|
36
23
|
}
|
|
37
24
|
export {
|
|
38
25
|
PreviewProvider as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["'use client'\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/PreviewProvider.tsx"],"sourcesContent":["'use client'\n\nimport { type PropsWithChildren, useEffect, useMemo } from 'react'\n\nimport * as ReactBuilderPreview from '../../../state/react-builder-preview'\n\nimport { useReactRuntime } from '../hooks/use-react-runtime'\nimport { StoreContext } from '../hooks/use-store'\nimport { useMakeswiftHostApiClient } from '../host-api-client'\n\nexport default function PreviewProvider({ children }: PropsWithChildren): JSX.Element {\n const runtime = useReactRuntime()\n const client = useMakeswiftHostApiClient()\n const store = useMemo(\n () =>\n ReactBuilderPreview.configureStore({\n preloadedState: runtime.store.getState(),\n client,\n }),\n [client, runtime],\n )\n\n useEffect(() => {\n store.setup()\n return () => store.teardown()\n }, [store])\n\n return <StoreContext.Provider value={store}>{children}</StoreContext.Provider>\n}\n"],"mappings":";AA2BS;AAzBT,SAAiC,WAAW,eAAe;AAE3D,YAAY,yBAAyB;AAErC,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,iCAAiC;AAE3B,SAAR,gBAAiC,EAAE,SAAS,GAAmC;AACpF,QAAM,UAAU,gBAAgB;AAChC,QAAM,SAAS,0BAA0B;AACzC,QAAM,QAAQ;AAAA,IACZ,MACE,oBAAoB,eAAe;AAAA,MACjC,gBAAgB,QAAQ,MAAM,SAAS;AAAA,MACvC;AAAA,IACF,CAAC;AAAA,IACH,CAAC,QAAQ,OAAO;AAAA,EAClB;AAEA,YAAU,MAAM;AACd,UAAM,MAAM;AACZ,WAAO,MAAM,MAAM,SAAS;AAAA,EAC9B,GAAG,CAAC,KAAK,CAAC;AAEV,SAAO,oBAAC,aAAa,UAAb,EAAsB,OAAO,OAAQ,UAAS;AACxD;","names":[]}
|
|
@@ -1,11 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { lazy } from "react";
|
|
3
|
-
|
|
3
|
+
import { useMemo, lazy } from "react";
|
|
4
|
+
import { MakeswiftHostApiClient } from "../../../api/react";
|
|
5
|
+
import { ReactRuntimeContext } from "../hooks/use-react-runtime";
|
|
6
|
+
import { MakeswiftHostApiClientProvider } from "../host-api-client";
|
|
4
7
|
const LiveProvider = lazy(() => import("./LiveProvider"));
|
|
5
|
-
|
|
6
|
-
|
|
8
|
+
const PreviewProvider = lazy(() => import("./PreviewProvider"));
|
|
9
|
+
function ReactRuntimeProvider({
|
|
10
|
+
children,
|
|
11
|
+
runtime,
|
|
12
|
+
previewMode,
|
|
13
|
+
apiOrigin = "https://api.makeswift.com",
|
|
14
|
+
locale = void 0
|
|
15
|
+
}) {
|
|
16
|
+
const client = useMemo(
|
|
17
|
+
() => new MakeswiftHostApiClient({
|
|
18
|
+
uri: new URL("graphql", apiOrigin).href,
|
|
19
|
+
locale
|
|
20
|
+
}),
|
|
21
|
+
[apiOrigin, locale]
|
|
22
|
+
);
|
|
23
|
+
const StoreProvider = previewMode ? PreviewProvider : LiveProvider;
|
|
24
|
+
return /* @__PURE__ */ jsx(ReactRuntimeContext.Provider, { value: runtime, children: /* @__PURE__ */ jsx(MakeswiftHostApiClientProvider, { client, children: /* @__PURE__ */ jsx(StoreProvider, { children }) }) });
|
|
7
25
|
}
|
|
8
26
|
export {
|
|
9
|
-
|
|
27
|
+
ReactRuntimeProvider
|
|
10
28
|
};
|
|
11
29
|
//# sourceMappingURL=RuntimeProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/components/RuntimeProvider.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/components/RuntimeProvider.tsx"],"sourcesContent":["'use client'\n\nimport { ReactNode, useMemo, lazy } from 'react'\n\nimport { MakeswiftHostApiClient } from '../../../api/react'\nimport { ReactRuntimeContext } from '../hooks/use-react-runtime'\nimport { ReactRuntime } from '../react-runtime'\nimport { MakeswiftHostApiClientProvider } from '../host-api-client'\n\nconst LiveProvider = lazy(() => import('./LiveProvider'))\nconst PreviewProvider = lazy(() => import('./PreviewProvider'))\n\nexport function ReactRuntimeProvider({\n children,\n runtime,\n previewMode,\n apiOrigin = 'https://api.makeswift.com',\n locale = undefined,\n}: {\n children: ReactNode\n runtime: ReactRuntime\n previewMode: boolean\n apiOrigin?: string\n locale?: string\n}) {\n const client = useMemo(\n () =>\n new MakeswiftHostApiClient({\n uri: new URL('graphql', apiOrigin).href,\n locale,\n }),\n [apiOrigin, locale],\n )\n\n const StoreProvider = previewMode ? PreviewProvider : LiveProvider\n\n return (\n <ReactRuntimeContext.Provider value={runtime}>\n <MakeswiftHostApiClientProvider client={client}>\n <StoreProvider>{children}</StoreProvider>\n </MakeswiftHostApiClientProvider>\n </ReactRuntimeContext.Provider>\n )\n}\n"],"mappings":";AAuCQ;AArCR,SAAoB,SAAS,YAAY;AAEzC,SAAS,8BAA8B;AACvC,SAAS,2BAA2B;AAEpC,SAAS,sCAAsC;AAE/C,MAAM,eAAe,KAAK,MAAM,OAAO,gBAAgB,CAAC;AACxD,MAAM,kBAAkB,KAAK,MAAM,OAAO,mBAAmB,CAAC;AAEvD,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,SAAS;AACX,GAMG;AACD,QAAM,SAAS;AAAA,IACb,MACE,IAAI,uBAAuB;AAAA,MACzB,KAAK,IAAI,IAAI,WAAW,SAAS,EAAE;AAAA,MACnC;AAAA,IACF,CAAC;AAAA,IACH,CAAC,WAAW,MAAM;AAAA,EACpB;AAEA,QAAM,gBAAgB,cAAc,kBAAkB;AAEtD,SACE,oBAAC,oBAAoB,UAApB,EAA6B,OAAO,SACnC,8BAAC,kCAA+B,QAC9B,8BAAC,iBAAe,UAAS,GAC3B,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import {
|
|
3
|
+
GroupDefinition
|
|
4
|
+
} from "@makeswift/controls";
|
|
5
|
+
import { ControlValue } from "./control";
|
|
6
|
+
function GroupControlValue({ definition, data, children, control }) {
|
|
7
|
+
return Object.entries(definition.config.props).reduceRight(
|
|
8
|
+
(renderFn, [key, controlDefinition]) => (shapeControlValue) => /* @__PURE__ */ jsx(
|
|
9
|
+
ControlValue,
|
|
10
|
+
{
|
|
11
|
+
definition: controlDefinition,
|
|
12
|
+
data: data != null ? GroupDefinition.propsData(data)[key] : void 0,
|
|
13
|
+
control: control?.child(key),
|
|
14
|
+
children: (value) => renderFn({ ...shapeControlValue, [key]: value })
|
|
15
|
+
}
|
|
16
|
+
),
|
|
17
|
+
children
|
|
18
|
+
)({});
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
GroupControlValue
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/controls/group.tsx"],"sourcesContent":["import {\n GroupControl,\n GroupDefinition,\n type DataType,\n type ResolvedValueType,\n} from '@makeswift/controls'\n\nimport { ControlValue } from './control'\n\ntype GroupControlValueProps = {\n definition: GroupDefinition\n data: DataType<GroupDefinition> | undefined\n children(value: ResolvedValueType<GroupDefinition>): JSX.Element\n control: GroupControl\n}\n\nexport function GroupControlValue({ definition, data, children, control }: GroupControlValueProps) {\n return Object.entries(definition.config.props).reduceRight(\n (renderFn, [key, controlDefinition]) =>\n shapeControlValue => (\n <ControlValue\n definition={controlDefinition}\n data={data != null ? GroupDefinition.propsData(data)[key] : undefined}\n control={control?.child(key)}\n >\n {value => renderFn({ ...shapeControlValue, [key]: value })}\n </ControlValue>\n ),\n children,\n )({} as ResolvedValueType<GroupDefinition>)\n}\n"],"mappings":"AAoBQ;AApBR;AAAA,EAEE;AAAA,OAGK;AAEP,SAAS,oBAAoB;AAStB,SAAS,kBAAkB,EAAE,YAAY,MAAM,UAAU,QAAQ,GAA2B;AACjG,SAAO,OAAO,QAAQ,WAAW,OAAO,KAAK,EAAE;AAAA,IAC7C,CAAC,UAAU,CAAC,KAAK,iBAAiB,MAChC,uBACE;AAAA,MAAC;AAAA;AAAA,QACC,YAAY;AAAA,QACZ,MAAM,QAAQ,OAAO,gBAAgB,UAAU,IAAI,EAAE,GAAG,IAAI;AAAA,QAC5D,SAAS,SAAS,MAAM,GAAG;AAAA,QAE1B,qBAAS,SAAS,EAAE,GAAG,mBAAmB,CAAC,GAAG,GAAG,MAAM,CAAC;AAAA;AAAA,IAC3D;AAAA,IAEJ;AAAA,EACF,EAAE,CAAC,CAAuC;AAC5C;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useEffect, useRef } from "react";
|
|
3
3
|
import { useSyncExternalStore } from "use-sync-external-store/shim";
|
|
4
|
-
import { useMakeswiftHostApiClient } from "
|
|
4
|
+
import { useMakeswiftHostApiClient } from "../host-api-client";
|
|
5
|
+
import { useDocumentLocale } from "./use-document-context";
|
|
5
6
|
function useSwatch(swatchId) {
|
|
6
7
|
const client = useMakeswiftHostApiClient();
|
|
7
8
|
const readSwatch = () => swatchId == null ? null : client.readSwatch(swatchId);
|
|
@@ -74,24 +75,25 @@ function useGlobalElement(globalElementId) {
|
|
|
74
75
|
}, [client, globalElementId]);
|
|
75
76
|
return globalElement;
|
|
76
77
|
}
|
|
77
|
-
function useLocalizedGlobalElement(globalElementId) {
|
|
78
|
+
function useLocalizedGlobalElement(locale, globalElementId) {
|
|
78
79
|
const client = useMakeswiftHostApiClient();
|
|
79
|
-
const readLocalizedGlobalElement = () => globalElementId == null ? null : client.readLocalizedGlobalElement(globalElementId);
|
|
80
|
+
const readLocalizedGlobalElement = () => locale == null || globalElementId == null ? null : client.readLocalizedGlobalElement({ globalElementId, locale });
|
|
80
81
|
const localizedGlobalElement = useSyncExternalStore(
|
|
81
82
|
client.subscribe,
|
|
82
83
|
readLocalizedGlobalElement,
|
|
83
84
|
readLocalizedGlobalElement
|
|
84
85
|
);
|
|
85
86
|
useEffect(() => {
|
|
86
|
-
if (globalElementId != null) {
|
|
87
|
-
client.fetchLocalizedGlobalElement(globalElementId).catch(console.error);
|
|
87
|
+
if (locale != null && globalElementId != null) {
|
|
88
|
+
client.fetchLocalizedGlobalElement({ globalElementId, locale }).catch(console.error);
|
|
88
89
|
}
|
|
89
|
-
}, [client, globalElementId]);
|
|
90
|
+
}, [client, locale, globalElementId]);
|
|
90
91
|
return localizedGlobalElement;
|
|
91
92
|
}
|
|
92
93
|
function usePagePathnameSlice(pageId) {
|
|
93
94
|
const client = useMakeswiftHostApiClient();
|
|
94
|
-
const
|
|
95
|
+
const locale = useDocumentLocale();
|
|
96
|
+
const readPagePathnameSlice = () => pageId == null ? null : client.readPagePathnameSlice({ pageId, locale });
|
|
95
97
|
const pagePathnameSlice = useSyncExternalStore(
|
|
96
98
|
client.subscribe,
|
|
97
99
|
readPagePathnameSlice,
|
|
@@ -99,8 +101,8 @@ function usePagePathnameSlice(pageId) {
|
|
|
99
101
|
);
|
|
100
102
|
useEffect(() => {
|
|
101
103
|
if (pageId != null)
|
|
102
|
-
client.fetchPagePathnameSlice(pageId).catch(console.error);
|
|
103
|
-
}, [client, pageId]);
|
|
104
|
+
client.fetchPagePathnameSlice({ pageId, locale }).catch(console.error);
|
|
105
|
+
}, [client, pageId, locale]);
|
|
104
106
|
return pagePathnameSlice;
|
|
105
107
|
}
|
|
106
108
|
function useTable(tableId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/makeswift-api.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef } from 'react'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport {\n File,\n GlobalElement,\n LocalizedGlobalElement,\n Swatch,\n Table,\n Typography,\n} from '../../../api'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/makeswift-api.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef } from 'react'\nimport { useSyncExternalStore } from 'use-sync-external-store/shim'\nimport {\n File,\n GlobalElement,\n LocalizedGlobalElement,\n PagePathnameSlice,\n Swatch,\n Table,\n Typography,\n} from '../../../api'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\nimport { useDocumentLocale } from './use-document-context'\n\nexport function useSwatch(swatchId: string | null): Swatch | null {\n const client = useMakeswiftHostApiClient()\n const readSwatch = () => (swatchId == null ? null : client.readSwatch(swatchId))\n const swatch = useSyncExternalStore(client.subscribe, readSwatch, readSwatch)\n\n useEffect(() => {\n if (swatchId != null) client.fetchSwatch(swatchId).catch(console.error)\n }, [client, swatchId])\n\n return swatch\n}\n\nexport function useSwatches(swatchIds: string[]): (Swatch | null)[] {\n const client = useMakeswiftHostApiClient()\n const lastSnapshot = useRef<(Swatch | null)[]>()\n\n function getSnapshot() {\n const swatches = swatchIds.map(swatchId => client.readSwatch(swatchId))\n\n if (\n lastSnapshot.current != null &&\n lastSnapshot.current.length === swatches.length &&\n lastSnapshot.current.every((swatch, idx) => swatches[idx] === swatch)\n ) {\n return lastSnapshot.current\n }\n\n return (lastSnapshot.current = swatches)\n }\n\n const swatches = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n useEffect(() => {\n Promise.all(swatchIds.map(swatchId => client.fetchSwatch(swatchId))).catch(console.error)\n }, [client, swatchIds])\n\n return swatches\n}\n\nexport function useFile(fileId: string | null): File | null {\n const client = useMakeswiftHostApiClient()\n const readFile = () => (fileId == null ? null : client.readFile(fileId))\n const file = useSyncExternalStore(client.subscribe, readFile, readFile)\n\n useEffect(() => {\n if (fileId != null) client.fetchFile(fileId)\n }, [client, fileId])\n\n return file\n}\n\nexport function useFiles(fileIds: string[]): (File | null)[] {\n const client = useMakeswiftHostApiClient()\n const lastSnapshot = useRef<(File | null)[]>()\n\n function getSnapshot() {\n const files = fileIds.map(fileId => client.readFile(fileId))\n\n if (\n lastSnapshot.current != null &&\n lastSnapshot.current.length === files.length &&\n lastSnapshot.current.every((file, idx) => files[idx] === file)\n ) {\n return lastSnapshot.current\n }\n\n return (lastSnapshot.current = files)\n }\n\n const files = useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot)\n\n useEffect(() => {\n Promise.all(fileIds.map(fileId => client.fetchFile(fileId))).catch(console.error)\n }, [client, fileIds])\n\n return files\n}\n\nexport function useTypography(typographyId: string | null): Typography | null {\n const client = useMakeswiftHostApiClient()\n const readTypography = () => (typographyId == null ? null : client.readTypography(typographyId))\n const typography = useSyncExternalStore(client.subscribe, readTypography, readTypography)\n\n useEffect(() => {\n if (typographyId != null) client.fetchTypography(typographyId).catch(console.error)\n }, [client, typographyId])\n\n return typography\n}\n\nexport function useGlobalElement(globalElementId: string | null): GlobalElement | null {\n const client = useMakeswiftHostApiClient()\n const readGlobalElement = () =>\n globalElementId == null ? null : client.readGlobalElement(globalElementId)\n const globalElement = useSyncExternalStore(client.subscribe, readGlobalElement, readGlobalElement)\n\n useEffect(() => {\n if (globalElementId != null) client.fetchGlobalElement(globalElementId).catch(console.error)\n }, [client, globalElementId])\n\n return globalElement\n}\n\nexport function useLocalizedGlobalElement(\n locale: string | null,\n globalElementId: string | null,\n): LocalizedGlobalElement | null {\n const client = useMakeswiftHostApiClient()\n const readLocalizedGlobalElement = () =>\n locale == null || globalElementId == null\n ? null\n : client.readLocalizedGlobalElement({ globalElementId, locale })\n\n const localizedGlobalElement = useSyncExternalStore(\n client.subscribe,\n readLocalizedGlobalElement,\n readLocalizedGlobalElement,\n )\n\n useEffect(() => {\n if (locale != null && globalElementId != null) {\n client.fetchLocalizedGlobalElement({ globalElementId, locale }).catch(console.error)\n }\n }, [client, locale, globalElementId])\n\n return localizedGlobalElement\n}\n\nexport function usePagePathnameSlice(pageId: string | null): PagePathnameSlice | null {\n const client = useMakeswiftHostApiClient()\n const locale = useDocumentLocale()\n\n const readPagePathnameSlice = () =>\n pageId == null ? null : client.readPagePathnameSlice({ pageId, locale })\n\n const pagePathnameSlice = useSyncExternalStore(\n client.subscribe,\n readPagePathnameSlice,\n readPagePathnameSlice,\n )\n\n useEffect(() => {\n if (pageId != null) client.fetchPagePathnameSlice({ pageId, locale }).catch(console.error)\n }, [client, pageId, locale])\n\n return pagePathnameSlice\n}\n\nexport function useTable(tableId: string | null): Table | null {\n const client = useMakeswiftHostApiClient()\n const readTable = () => (tableId == null ? null : client.readTable(tableId))\n const table = useSyncExternalStore(client.subscribe, readTable, readTable)\n\n useEffect(() => {\n if (tableId != null) client.fetchTable(tableId).catch(console.error)\n }, [client, tableId])\n\n return table\n}\n"],"mappings":";AAEA,SAAS,WAAW,cAAc;AAClC,SAAS,4BAA4B;AAWrC,SAAS,iCAAiC;AAC1C,SAAS,yBAAyB;AAE3B,SAAS,UAAU,UAAwC;AAChE,QAAM,SAAS,0BAA0B;AACzC,QAAM,aAAa,MAAO,YAAY,OAAO,OAAO,OAAO,WAAW,QAAQ;AAC9E,QAAM,SAAS,qBAAqB,OAAO,WAAW,YAAY,UAAU;AAE5E,YAAU,MAAM;AACd,QAAI,YAAY;AAAM,aAAO,YAAY,QAAQ,EAAE,MAAM,QAAQ,KAAK;AAAA,EACxE,GAAG,CAAC,QAAQ,QAAQ,CAAC;AAErB,SAAO;AACT;AAEO,SAAS,YAAY,WAAwC;AAClE,QAAM,SAAS,0BAA0B;AACzC,QAAM,eAAe,OAA0B;AAE/C,WAAS,cAAc;AACrB,UAAMA,YAAW,UAAU,IAAI,cAAY,OAAO,WAAW,QAAQ,CAAC;AAEtE,QACE,aAAa,WAAW,QACxB,aAAa,QAAQ,WAAWA,UAAS,UACzC,aAAa,QAAQ,MAAM,CAAC,QAAQ,QAAQA,UAAS,GAAG,MAAM,MAAM,GACpE;AACA,aAAO,aAAa;AAAA,IACtB;AAEA,WAAQ,aAAa,UAAUA;AAAA,EACjC;AAEA,QAAM,WAAW,qBAAqB,OAAO,WAAW,aAAa,WAAW;AAEhF,YAAU,MAAM;AACd,YAAQ,IAAI,UAAU,IAAI,cAAY,OAAO,YAAY,QAAQ,CAAC,CAAC,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC1F,GAAG,CAAC,QAAQ,SAAS,CAAC;AAEtB,SAAO;AACT;AAEO,SAAS,QAAQ,QAAoC;AAC1D,QAAM,SAAS,0BAA0B;AACzC,QAAM,WAAW,MAAO,UAAU,OAAO,OAAO,OAAO,SAAS,MAAM;AACtE,QAAM,OAAO,qBAAqB,OAAO,WAAW,UAAU,QAAQ;AAEtE,YAAU,MAAM;AACd,QAAI,UAAU;AAAM,aAAO,UAAU,MAAM;AAAA,EAC7C,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AACT;AAEO,SAAS,SAAS,SAAoC;AAC3D,QAAM,SAAS,0BAA0B;AACzC,QAAM,eAAe,OAAwB;AAE7C,WAAS,cAAc;AACrB,UAAMC,SAAQ,QAAQ,IAAI,YAAU,OAAO,SAAS,MAAM,CAAC;AAE3D,QACE,aAAa,WAAW,QACxB,aAAa,QAAQ,WAAWA,OAAM,UACtC,aAAa,QAAQ,MAAM,CAAC,MAAM,QAAQA,OAAM,GAAG,MAAM,IAAI,GAC7D;AACA,aAAO,aAAa;AAAA,IACtB;AAEA,WAAQ,aAAa,UAAUA;AAAA,EACjC;AAEA,QAAM,QAAQ,qBAAqB,OAAO,WAAW,aAAa,WAAW;AAE7E,YAAU,MAAM;AACd,YAAQ,IAAI,QAAQ,IAAI,YAAU,OAAO,UAAU,MAAM,CAAC,CAAC,EAAE,MAAM,QAAQ,KAAK;AAAA,EAClF,GAAG,CAAC,QAAQ,OAAO,CAAC;AAEpB,SAAO;AACT;AAEO,SAAS,cAAc,cAAgD;AAC5E,QAAM,SAAS,0BAA0B;AACzC,QAAM,iBAAiB,MAAO,gBAAgB,OAAO,OAAO,OAAO,eAAe,YAAY;AAC9F,QAAM,aAAa,qBAAqB,OAAO,WAAW,gBAAgB,cAAc;AAExF,YAAU,MAAM;AACd,QAAI,gBAAgB;AAAM,aAAO,gBAAgB,YAAY,EAAE,MAAM,QAAQ,KAAK;AAAA,EACpF,GAAG,CAAC,QAAQ,YAAY,CAAC;AAEzB,SAAO;AACT;AAEO,SAAS,iBAAiB,iBAAsD;AACrF,QAAM,SAAS,0BAA0B;AACzC,QAAM,oBAAoB,MACxB,mBAAmB,OAAO,OAAO,OAAO,kBAAkB,eAAe;AAC3E,QAAM,gBAAgB,qBAAqB,OAAO,WAAW,mBAAmB,iBAAiB;AAEjG,YAAU,MAAM;AACd,QAAI,mBAAmB;AAAM,aAAO,mBAAmB,eAAe,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC7F,GAAG,CAAC,QAAQ,eAAe,CAAC;AAE5B,SAAO;AACT;AAEO,SAAS,0BACd,QACA,iBAC+B;AAC/B,QAAM,SAAS,0BAA0B;AACzC,QAAM,6BAA6B,MACjC,UAAU,QAAQ,mBAAmB,OACjC,OACA,OAAO,2BAA2B,EAAE,iBAAiB,OAAO,CAAC;AAEnE,QAAM,yBAAyB;AAAA,IAC7B,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,UAAU,QAAQ,mBAAmB,MAAM;AAC7C,aAAO,4BAA4B,EAAE,iBAAiB,OAAO,CAAC,EAAE,MAAM,QAAQ,KAAK;AAAA,IACrF;AAAA,EACF,GAAG,CAAC,QAAQ,QAAQ,eAAe,CAAC;AAEpC,SAAO;AACT;AAEO,SAAS,qBAAqB,QAAiD;AACpF,QAAM,SAAS,0BAA0B;AACzC,QAAM,SAAS,kBAAkB;AAEjC,QAAM,wBAAwB,MAC5B,UAAU,OAAO,OAAO,OAAO,sBAAsB,EAAE,QAAQ,OAAO,CAAC;AAEzE,QAAM,oBAAoB;AAAA,IACxB,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,UAAU;AAAM,aAAO,uBAAuB,EAAE,QAAQ,OAAO,CAAC,EAAE,MAAM,QAAQ,KAAK;AAAA,EAC3F,GAAG,CAAC,QAAQ,QAAQ,MAAM,CAAC;AAE3B,SAAO;AACT;AAEO,SAAS,SAAS,SAAsC;AAC7D,QAAM,SAAS,0BAA0B;AACzC,QAAM,YAAY,MAAO,WAAW,OAAO,OAAO,OAAO,UAAU,OAAO;AAC1E,QAAM,QAAQ,qBAAqB,OAAO,WAAW,WAAW,SAAS;AAEzE,YAAU,MAAM;AACd,QAAI,WAAW;AAAM,aAAO,WAAW,OAAO,EAAE,MAAM,QAAQ,KAAK;AAAA,EACrE,GAAG,CAAC,QAAQ,OAAO,CAAC;AAEpB,SAAO;AACT;","names":["swatches","files"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { updateAPIClientCache } from "../../../state/actions";
|
|
2
|
+
import { useMakeswiftHostApiClient } from "../host-api-client";
|
|
3
|
+
import { useUniversalDispatch } from "./use-universal-dispatch";
|
|
4
|
+
function useCacheData(cacheData) {
|
|
5
|
+
const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient();
|
|
6
|
+
useUniversalDispatch(apiStore.dispatch, updateAPIClientCache, [cacheData]);
|
|
7
|
+
}
|
|
8
|
+
export {
|
|
9
|
+
useCacheData
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=use-cache-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-cache-data.ts"],"sourcesContent":["import { type CacheData } from '../../../api/react'\nimport { updateAPIClientCache } from '../../../state/actions'\n\nimport { useMakeswiftHostApiClient } from '../host-api-client'\nimport { useUniversalDispatch } from './use-universal-dispatch'\n\nexport function useCacheData(cacheData: CacheData) {\n const { makeswiftApiClient: apiStore } = useMakeswiftHostApiClient()\n useUniversalDispatch(apiStore.dispatch, updateAPIClientCache, [cacheData])\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AAErC,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AAE9B,SAAS,aAAa,WAAsB;AACjD,QAAM,EAAE,oBAAoB,SAAS,IAAI,0BAA0B;AACnE,uBAAqB,SAAS,UAAU,sBAAsB,CAAC,SAAS,CAAC;AAC3E;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-dispatch.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-dispatch.ts"],"sourcesContent":["import { useStore } from './use-store'\nimport { Dispatch as ReactPageDispatch } from '../../../state/react-page'\nimport { Dispatch as ReactBuilderPreviewDispatch } from '../../../state/react-builder-preview'\n\ntype Dispatch = ReactPageDispatch & ReactBuilderPreviewDispatch\n\nexport function useDispatch(): Dispatch {\n const store = useStore()\n\n return store.dispatch\n}\n"],"mappings":"AAAA,SAAS,gBAAgB;AAMlB,SAAS,cAAwB;AACtC,QAAM,QAAQ,SAAS;AAEvB,SAAO,MAAM;AACf;","names":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
const DocumentContext = createContext({
|
|
4
|
+
key: null,
|
|
5
|
+
locale: null
|
|
6
|
+
});
|
|
7
|
+
function useDocumentContext() {
|
|
8
|
+
return useContext(DocumentContext);
|
|
9
|
+
}
|
|
10
|
+
function useDocumentKey() {
|
|
11
|
+
return useDocumentContext().key;
|
|
12
|
+
}
|
|
13
|
+
function useDocumentLocale() {
|
|
14
|
+
return useDocumentContext().locale;
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
DocumentContext,
|
|
18
|
+
useDocumentContext,
|
|
19
|
+
useDocumentKey,
|
|
20
|
+
useDocumentLocale
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=use-document-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-document-context.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\n\ntype ContextValue = {\n key: string | null\n locale: string | null\n}\n\nexport const DocumentContext = createContext<ContextValue>({\n key: null,\n locale: null,\n})\n\nexport function useDocumentContext(): ContextValue {\n return useContext(DocumentContext)\n}\n\nexport function useDocumentKey(): string | null {\n return useDocumentContext().key\n}\n\nexport function useDocumentLocale(): string | null {\n return useDocumentContext().locale\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;AAOnC,MAAM,kBAAkB,cAA4B;AAAA,EACzD,KAAK;AAAA,EACL,QAAQ;AACV,CAAC;AAEM,SAAS,qBAAmC;AACjD,SAAO,WAAW,eAAe;AACnC;AAEO,SAAS,iBAAgC;AAC9C,SAAO,mBAAmB,EAAE;AAC9B;AAEO,SAAS,oBAAmC;AACjD,SAAO,mBAAmB,EAAE;AAC9B;","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getElementId } from "../../../state/react-page";
|
|
2
|
-
import { useDocumentKey } from "./use-document-
|
|
2
|
+
import { useDocumentKey } from "./use-document-context";
|
|
3
3
|
import { useSelector } from "./use-selector";
|
|
4
4
|
function useElementId(elementKey) {
|
|
5
5
|
const documentKey = useDocumentKey();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-element-id.ts"],"sourcesContent":["import { getElementId } from '../../../state/react-page'\nimport { useDocumentKey } from './use-document-
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-element-id.ts"],"sourcesContent":["import { getElementId } from '../../../state/react-page'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nexport function useElementId(elementKey: string | null | undefined): string | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state =>\n documentKey == null || elementKey == null ? null : getElementId(state, documentKey, elementKey),\n )\n}\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAErB,SAAS,aAAa,YAAsD;AACjF,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IAAY,WACjB,eAAe,QAAQ,cAAc,OAAO,OAAO,aAAa,OAAO,aAAa,UAAU;AAAA,EAChG;AACF;","names":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext, useContext } from "react";
|
|
3
|
+
const ReactRuntimeContext = createContext(null);
|
|
4
|
+
function useReactRuntime() {
|
|
5
|
+
const runtime = useContext(ReactRuntimeContext);
|
|
6
|
+
if (runtime === null) {
|
|
7
|
+
throw new Error("`useReactRuntime` must be used within a `ReactRuntimeProvider`");
|
|
8
|
+
}
|
|
9
|
+
return runtime;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
ReactRuntimeContext,
|
|
13
|
+
useReactRuntime
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=use-react-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-react-runtime.tsx"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport { ReactRuntime } from '../react-runtime'\n\nexport const ReactRuntimeContext = createContext<ReactRuntime | null>(null)\n\nexport function useReactRuntime(): ReactRuntime {\n const runtime = useContext(ReactRuntimeContext)\n if (runtime === null) {\n throw new Error('`useReactRuntime` must be used within a `ReactRuntimeProvider`')\n }\n\n return runtime\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;AAGnC,MAAM,sBAAsB,cAAmC,IAAI;AAEnE,SAAS,kBAAgC;AAC9C,QAAM,UAAU,WAAW,mBAAmB;AAC9C,MAAI,YAAY,MAAM;AACpB,UAAM,IAAI,MAAM,gEAAgE;AAAA,EAClF;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { useDispatch } from "./use-dispatch";
|
|
3
|
+
import { useIsInBuilder } from "./use-is-in-builder";
|
|
4
|
+
import { registerBuilderDocumentsEffect, registerDocumentsEffect } from "../../../state/actions";
|
|
5
|
+
function useRegisterDocument(document) {
|
|
6
|
+
const isInBuilder = useIsInBuilder();
|
|
7
|
+
const dispatch = useDispatch();
|
|
8
|
+
useEffect(() => dispatch(registerDocumentsEffect([document])), [document]);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (!isInBuilder)
|
|
11
|
+
return;
|
|
12
|
+
return dispatch(registerBuilderDocumentsEffect([document]));
|
|
13
|
+
}, [isInBuilder, document]);
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
useRegisterDocument
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=use-register-document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-register-document.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { type Document } from '../../../state/react-page'\nimport { useDispatch } from './use-dispatch'\nimport { useIsInBuilder } from './use-is-in-builder'\nimport { registerBuilderDocumentsEffect, registerDocumentsEffect } from '../../../state/actions'\n\n/**\n * @param document Document to register\n */\nexport function useRegisterDocument(document: Document): void {\n const isInBuilder = useIsInBuilder()\n const dispatch = useDispatch()\n\n useEffect(() => dispatch(registerDocumentsEffect([document])), [document])\n\n // TODO: Decide whether to do this via middleware or via explicit action (like\n // what we're doing below)\n useEffect(() => {\n if (!isInBuilder) return\n return dispatch(registerBuilderDocumentsEffect([document]))\n }, [isInBuilder, document])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAE1B,SAAS,mBAAmB;AAC5B,SAAS,sBAAsB;AAC/B,SAAS,gCAAgC,+BAA+B;AAKjE,SAAS,oBAAoB,UAA0B;AAC5D,QAAM,cAAc,eAAe;AACnC,QAAM,WAAW,YAAY;AAE7B,YAAU,MAAM,SAAS,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;AAIzE,YAAU,MAAM;AACd,QAAI,CAAC;AAAa;AAClB,WAAO,SAAS,+BAA+B,CAAC,QAAQ,CAAC,CAAC;AAAA,EAC5D,GAAG,CAAC,aAAa,QAAQ,CAAC;AAC5B;","names":[]}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "@makeswift/controls";
|
|
5
5
|
import * as ReactPage from "../../../state/react-page";
|
|
6
6
|
import { useResourceResolver } from "./use-resource-resolver";
|
|
7
|
-
import { useDocumentKey } from "./use-document-
|
|
7
|
+
import { useDocumentKey } from "./use-document-context";
|
|
8
8
|
import { useSelector } from "./use-selector";
|
|
9
9
|
import { useStylesheetFactory } from "./use-stylesheet-factory";
|
|
10
10
|
import { resolvableRecord } from "../resolvable-record";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport { useResourceResolver } from './use-resource-resolver'\nimport { useDocumentKey } from './use-document-
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resolved-props.ts"],"sourcesContent":["import { useMemo, useEffect, useRef, useSyncExternalStore, useCallback } from 'react'\nimport {\n ControlDefinition,\n ControlInstance,\n mapValues,\n type Data,\n type Resolvable,\n} from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport { useResourceResolver } from './use-resource-resolver'\nimport { useDocumentKey } from './use-document-context'\nimport { useSelector } from './use-selector'\n\nimport { useStylesheetFactory } from './use-stylesheet-factory'\n\nimport { resolvableRecord } from '../resolvable-record'\nimport { propErrorHandlingProxy } from '../utils/prop-error-handling-proxy'\n\nfunction useControlInstances(elementKey: string): Record<string, ControlInstance> | null {\n const documentKey = useDocumentKey()\n\n return useSelector(state => {\n if (documentKey == null) return null\n\n return ReactPage.getPropControllers(state, documentKey, elementKey)\n })\n}\n\ntype CacheItem = {\n data: Data\n control: ControlInstance | undefined\n resolvedValue: Resolvable<unknown>\n}\n\nexport function useResolvedProps(\n propDefs: Record<string, ControlDefinition>,\n elementData: Record<string, Data>,\n elementKey: string,\n): Record<string, unknown> {\n const stylesheetFactory = useStylesheetFactory()\n const resourceResolver = useResourceResolver()\n const controls = useControlInstances(elementKey)\n\n const cache = useRef<Record<string, CacheItem>>({}).current\n const resolveProp = useCallback(\n (def: ControlDefinition, propName: string) => {\n const data = elementData[propName]\n const control = controls?.[propName]\n\n if (\n cache[propName] != null &&\n data === cache[propName].data &&\n control === cache[propName].control\n ) {\n return cache[propName].resolvedValue\n }\n\n const resolvedValue = def.resolveValue(\n data,\n resourceResolver,\n stylesheetFactory.get(propName),\n control,\n )\n\n cache[propName] = { data, control, resolvedValue }\n return resolvedValue\n },\n [controls, elementData, resourceResolver, stylesheetFactory],\n )\n\n const resolvables = useMemo(\n () =>\n mapValues(propDefs, (def, propName) => {\n const defaultValue = (def.config as any)?.defaultValue\n return propErrorHandlingProxy(resolveProp(def, propName), defaultValue, error => {\n console.warn(\n `Error reading value for prop \"${propName}\", falling back to \\`${defaultValue}\\`.`,\n { control: def, error },\n )\n })\n }),\n [propDefs, resolveProp],\n )\n\n const props = useMemo(() => resolvableRecord(resolvables), [resolvables])\n\n stylesheetFactory.useDefinedStyles()\n\n useEffect(() => {\n props.triggerResolve()\n }, [])\n\n return useSyncExternalStore(props.subscribe, props.readStable, props.readStable)\n}\n"],"mappings":"AAAA,SAAS,SAAS,WAAW,QAAQ,sBAAsB,mBAAmB;AAC9E;AAAA,EAGE;AAAA,OAGK;AAEP,YAAY,eAAe;AAC3B,SAAS,2BAA2B;AACpC,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAE5B,SAAS,4BAA4B;AAErC,SAAS,wBAAwB;AACjC,SAAS,8BAA8B;AAEvC,SAAS,oBAAoB,YAA4D;AACvF,QAAM,cAAc,eAAe;AAEnC,SAAO,YAAY,WAAS;AAC1B,QAAI,eAAe;AAAM,aAAO;AAEhC,WAAO,UAAU,mBAAmB,OAAO,aAAa,UAAU;AAAA,EACpE,CAAC;AACH;AAQO,SAAS,iBACd,UACA,aACA,YACyB;AACzB,QAAM,oBAAoB,qBAAqB;AAC/C,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,WAAW,oBAAoB,UAAU;AAE/C,QAAM,QAAQ,OAAkC,CAAC,CAAC,EAAE;AACpD,QAAM,cAAc;AAAA,IAClB,CAAC,KAAwB,aAAqB;AAC5C,YAAM,OAAO,YAAY,QAAQ;AACjC,YAAM,UAAU,WAAW,QAAQ;AAEnC,UACE,MAAM,QAAQ,KAAK,QACnB,SAAS,MAAM,QAAQ,EAAE,QACzB,YAAY,MAAM,QAAQ,EAAE,SAC5B;AACA,eAAO,MAAM,QAAQ,EAAE;AAAA,MACzB;AAEA,YAAM,gBAAgB,IAAI;AAAA,QACxB;AAAA,QACA;AAAA,QACA,kBAAkB,IAAI,QAAQ;AAAA,QAC9B;AAAA,MACF;AAEA,YAAM,QAAQ,IAAI,EAAE,MAAM,SAAS,cAAc;AACjD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,UAAU,aAAa,kBAAkB,iBAAiB;AAAA,EAC7D;AAEA,QAAM,cAAc;AAAA,IAClB,MACE,UAAU,UAAU,CAAC,KAAK,aAAa;AACrC,YAAM,eAAgB,IAAI,QAAgB;AAC1C,aAAO,uBAAuB,YAAY,KAAK,QAAQ,GAAG,cAAc,WAAS;AAC/E,gBAAQ;AAAA,UACN,iCAAiC,QAAQ,wBAAwB,YAAY;AAAA,UAC7E,EAAE,SAAS,KAAK,MAAM;AAAA,QACxB;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,IACH,CAAC,UAAU,WAAW;AAAA,EACxB;AAEA,QAAM,QAAQ,QAAQ,MAAM,iBAAiB,WAAW,GAAG,CAAC,WAAW,CAAC;AAExE,oBAAkB,iBAAiB;AAEnC,YAAU,MAAM;AACd,UAAM,eAAe;AAAA,EACvB,GAAG,CAAC,CAAC;AAEL,SAAO,qBAAqB,MAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AACjF;","names":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { useMemo } from "react";
|
|
2
2
|
import * as ReactPage from "../../../state/react-page";
|
|
3
|
+
import { useMakeswiftHostApiClient } from "../host-api-client";
|
|
3
4
|
import { useStore } from "./use-store";
|
|
4
|
-
import {
|
|
5
|
-
import { useMakeswiftHostApiClient } from "../../../next/context/makeswift-host-api-client";
|
|
5
|
+
import { useDocumentContext } from "./use-document-context";
|
|
6
6
|
function useResourceResolver() {
|
|
7
7
|
const store = useStore();
|
|
8
8
|
const client = useMakeswiftHostApiClient();
|
|
9
|
-
const documentKey =
|
|
9
|
+
const { key: documentKey, locale } = useDocumentContext();
|
|
10
10
|
return useMemo(() => {
|
|
11
11
|
return {
|
|
12
12
|
resolveSwatch: (swatchId) => client.resolveSwatch(swatchId),
|
|
13
13
|
resolveFile: (fileId) => client.resolveFile(fileId),
|
|
14
14
|
resolveTypography: (typographyId) => client.resolveTypography(typographyId),
|
|
15
|
-
resolvePagePathnameSlice: (pageId) => client.resolvePagePathnameSlice(pageId),
|
|
15
|
+
resolvePagePathnameSlice: (pageId) => client.resolvePagePathnameSlice({ pageId, locale }),
|
|
16
16
|
resolveElementId: (elementKey) => {
|
|
17
17
|
const read = () => documentKey == null ? null : ReactPage.getElementId(store.getState(), documentKey, elementKey);
|
|
18
18
|
let lastValue = null;
|
|
@@ -26,7 +26,7 @@ function useResourceResolver() {
|
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
|
-
}, [client, store, documentKey]);
|
|
29
|
+
}, [client, store, documentKey, locale]);
|
|
30
30
|
}
|
|
31
31
|
export {
|
|
32
32
|
useResourceResolver
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resource-resolver.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type ResourceResolver } from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-resource-resolver.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { type ResourceResolver } from '@makeswift/controls'\n\nimport * as ReactPage from '../../../state/react-page'\nimport { useMakeswiftHostApiClient } from '../host-api-client'\nimport { useStore } from './use-store'\nimport { useDocumentContext } from './use-document-context'\n\nexport function useResourceResolver(): ResourceResolver {\n const store = useStore()\n const client = useMakeswiftHostApiClient()\n const { key: documentKey, locale } = useDocumentContext()\n\n return useMemo<ResourceResolver>(() => {\n return {\n resolveSwatch: swatchId => client.resolveSwatch(swatchId),\n resolveFile: fileId => client.resolveFile(fileId),\n resolveTypography: typographyId => client.resolveTypography(typographyId),\n resolvePagePathnameSlice: pageId => client.resolvePagePathnameSlice({ pageId, locale }),\n resolveElementId: elementKey => {\n const read = () =>\n documentKey == null\n ? null\n : ReactPage.getElementId(store.getState(), documentKey, elementKey)\n\n let lastValue: string | null = null\n return {\n name: `element-id:${documentKey}:${elementKey}`,\n readStable: () => (lastValue = read()),\n subscribe: (onUpdate: () => void) =>\n store.subscribe(() => {\n if (read() !== lastValue) onUpdate()\n }),\n }\n },\n }\n }, [client, store, documentKey, locale])\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,YAAY,eAAe;AAC3B,SAAS,iCAAiC;AAC1C,SAAS,gBAAgB;AACzB,SAAS,0BAA0B;AAE5B,SAAS,sBAAwC;AACtD,QAAM,QAAQ,SAAS;AACvB,QAAM,SAAS,0BAA0B;AACzC,QAAM,EAAE,KAAK,aAAa,OAAO,IAAI,mBAAmB;AAExD,SAAO,QAA0B,MAAM;AACrC,WAAO;AAAA,MACL,eAAe,cAAY,OAAO,cAAc,QAAQ;AAAA,MACxD,aAAa,YAAU,OAAO,YAAY,MAAM;AAAA,MAChD,mBAAmB,kBAAgB,OAAO,kBAAkB,YAAY;AAAA,MACxE,0BAA0B,YAAU,OAAO,yBAAyB,EAAE,QAAQ,OAAO,CAAC;AAAA,MACtF,kBAAkB,gBAAc;AAC9B,cAAM,OAAO,MACX,eAAe,OACX,OACA,UAAU,aAAa,MAAM,SAAS,GAAG,aAAa,UAAU;AAEtE,YAAI,YAA2B;AAC/B,eAAO;AAAA,UACL,MAAM,cAAc,WAAW,IAAI,UAAU;AAAA,UAC7C,YAAY,MAAO,YAAY,KAAK;AAAA,UACpC,WAAW,CAAC,aACV,MAAM,UAAU,MAAM;AACpB,gBAAI,KAAK,MAAM;AAAW,uBAAS;AAAA,UACrC,CAAC;AAAA,QACL;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,OAAO,aAAa,MAAM,CAAC;AACzC;","names":[]}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
|
-
|
|
4
|
-
const StoreContext = createContext(RuntimeCore.store);
|
|
3
|
+
const StoreContext = createContext(null);
|
|
5
4
|
function useStore() {
|
|
6
|
-
|
|
5
|
+
const store = useContext(StoreContext);
|
|
6
|
+
if (store == null) {
|
|
7
|
+
throw new Error("`useStore` must be used within a `StoreProvider`");
|
|
8
|
+
}
|
|
9
|
+
return store;
|
|
7
10
|
}
|
|
8
11
|
export {
|
|
9
12
|
StoreContext,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-store.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-store.ts"],"sourcesContent":["'use client'\n\nimport { createContext, useContext } from 'react'\nimport { Store } from '../../../state/react-page'\n\nexport const StoreContext = createContext<Store | null>(null)\n\nexport function useStore(): Store {\n const store = useContext(StoreContext)\n if (store == null) {\n throw new Error('`useStore` must be used within a `StoreProvider`')\n }\n\n return store\n}\n"],"mappings":";AAEA,SAAS,eAAe,kBAAkB;AAGnC,MAAM,eAAe,cAA4B,IAAI;AAErD,SAAS,WAAkB;AAChC,QAAM,QAAQ,WAAW,YAAY;AACrC,MAAI,SAAS,MAAM;AACjB,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { isServer } from "../../../utils/is-server";
|
|
3
|
+
function useUniversalDispatch(dispatch, action, args) {
|
|
4
|
+
if (isServer()) {
|
|
5
|
+
dispatch(action(...args));
|
|
6
|
+
}
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
dispatch(action(...args));
|
|
9
|
+
}, [dispatch, action, ...args]);
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
useUniversalDispatch
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=use-universal-dispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/runtimes/react/hooks/use-universal-dispatch.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport type { ThunkAction } from 'redux-thunk'\n\nimport { type Dispatch } from '../../../state/react-page'\nimport { type Action } from '../../../state/actions'\n\nimport { isServer } from '../../../utils/is-server'\n\n// overloaded signatures\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => A,\n args: Args,\n): void\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n): void\n// implementation\nexport function useUniversalDispatch<Args extends any[], A extends Action>(\n dispatch: Dispatch,\n action: (...args: Args) => ThunkAction<() => void, any, any, A>,\n args: Args,\n) {\n if (isServer()) {\n dispatch(action(...args))\n }\n\n useEffect(() => {\n dispatch(action(...args))\n }, [dispatch, action, ...args])\n}\n"],"mappings":"AAAA,SAAS,iBAAiB;AAM1B,SAAS,gBAAgB;AAclB,SAAS,qBACd,UACA,QACA,MACA;AACA,MAAI,SAAS,GAAG;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B;AAEA,YAAU,MAAM;AACd,aAAS,OAAO,GAAG,IAAI,CAAC;AAAA,EAC1B,GAAG,CAAC,UAAU,QAAQ,GAAG,IAAI,CAAC;AAChC;","names":[]}
|