fimo 0.7.0-experimental.3 → 0.7.0-experimental.4
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/README.md +2 -3
- package/assets/content-templates/hooks-template.eta +27 -73
- package/assets/content-templates/types-template.eta +1 -4
- package/assets/skills/fimo/SKILL.md +3 -3
- package/assets/skills/fimo/references/assets.md +2 -2
- package/assets/skills/fimo/references/content.md +43 -47
- package/assets/skills/fimo/references/design.md +1 -1
- package/assets/skills/fimo/references/locales.md +0 -8
- package/assets/skills/fimo/references/setup-react-router.md +2 -2
- package/assets/skills/fimo/references/ui.md +1 -1
- package/assets/skills/fimo-cli/SKILL.md +1 -1
- package/assets/skills/fimo-cli/references/assets.md +24 -7
- package/assets/skills/fimo-cli/references/content.md +16 -19
- package/assets/skills/fimo-cli/references/domains.md +1 -1
- package/assets/skills/fimo-cli/references/locales.md +0 -6
- package/assets/skills/fimo-cli/references/media.md +142 -132
- package/assets/skills/fimo-migration/SKILL.md +22 -2
- package/assets/skills/fimo-migration/references/content.md +8 -0
- package/assets/skills/fimo-migration/references/manifest.md +35 -0
- package/assets/skills/fimo-migration/references/qa.md +24 -2
- package/assets/skills/fimo-migration/references/workflow.md +12 -1
- package/assets/skills/fimo-migration/references/wrap.md +582 -0
- package/assets/skills/fimo-studio/references/custom-domains.md +1 -1
- package/assets/skills/fimo-studio/references/visual-editing.md +5 -3
- package/dist/build/vite/index.d.ts.map +1 -0
- package/dist/build/vite/plugins/content-sync.d.ts.map +1 -0
- package/dist/build/vite/plugins/content-sync.test.d.ts +2 -0
- package/dist/build/vite/plugins/content-sync.test.d.ts.map +1 -0
- package/dist/build/vite/plugins/content-sync.test.js +64 -0
- package/dist/build/vite/plugins/data-id.d.ts.map +1 -0
- package/dist/build/vite/plugins/fimo-config.d.ts.map +1 -0
- package/dist/build/vite/plugins/fimo-config.test.d.ts +2 -0
- package/dist/build/vite/plugins/fimo-config.test.d.ts.map +1 -0
- package/dist/build/vite/plugins/fimo-config.test.js +46 -0
- package/dist/build/vite/plugins/overlay.d.ts.map +1 -0
- package/dist/build/vite/plugins/robots.d.ts.map +1 -0
- package/dist/build/vite/plugins/seo.d.ts.map +1 -0
- package/dist/build/vite/plugins/server-config.d.ts.map +1 -0
- package/dist/build/vite/plugins/sitemap.d.ts.map +1 -0
- package/dist/build/vite/plugins/translations.d.ts +2 -8
- package/dist/build/vite/plugins/translations.d.ts.map +1 -0
- package/dist/build/vite/plugins/translations.js +3 -121
- package/dist/build/vite/plugins/translations.test.d.ts +2 -0
- package/dist/build/vite/plugins/translations.test.d.ts.map +1 -0
- package/dist/build/vite/plugins/translations.test.js +266 -0
- package/dist/cli/bundle.json +2 -3
- package/dist/cli/index.js +117939 -1186
- package/dist/runtime/app/FimoProviders.d.ts +1 -11
- package/dist/runtime/app/FimoProviders.d.ts.map +1 -0
- package/dist/runtime/app/FimoProviders.js +2 -23
- package/dist/runtime/app/FimoScripts.d.ts.map +1 -0
- package/dist/runtime/app/index.d.ts.map +1 -0
- package/dist/runtime/app/prefetch.d.ts.map +1 -0
- package/dist/runtime/astro/index.d.ts +2 -0
- package/dist/runtime/astro/index.d.ts.map +1 -0
- package/dist/runtime/astro/index.js +3 -0
- package/dist/runtime/astro/server.d.ts +3 -0
- package/dist/runtime/astro/server.d.ts.map +1 -0
- package/dist/runtime/astro/server.js +6 -0
- package/dist/runtime/content/DataSourcesProvider.d.ts.map +1 -0
- package/dist/runtime/content/RefreshContentProvider.d.ts.map +1 -0
- package/dist/runtime/content/RefreshContentProvider.test.d.ts +2 -0
- package/dist/runtime/content/RefreshContentProvider.test.d.ts.map +1 -0
- package/dist/runtime/content/RefreshContentProvider.test.js +33 -0
- package/dist/runtime/content/parseCollectionResponse.d.ts.map +1 -0
- package/dist/runtime/content/parseCollectionResponse.test.d.ts +2 -0
- package/dist/runtime/content/parseCollectionResponse.test.d.ts.map +1 -0
- package/dist/runtime/content/parseCollectionResponse.test.js +20 -0
- package/dist/runtime/content/utils/retrieve-data-sources.d.ts +0 -1
- package/dist/runtime/content/utils/retrieve-data-sources.d.ts.map +1 -0
- package/dist/runtime/content/utils/retrieve-data-sources.js +4 -27
- package/dist/runtime/core/AppErrorBoundary.d.ts.map +1 -0
- package/dist/runtime/core/ViteLifecycles.d.ts.map +1 -0
- package/dist/runtime/i18n/FimoLocaleContext.d.ts.map +1 -0
- package/dist/runtime/i18n/FimoLocaleContext.js +1 -0
- package/dist/runtime/i18n/locale.d.ts.map +1 -0
- package/dist/runtime/i18n/locale.test.d.ts +2 -0
- package/dist/runtime/i18n/locale.test.d.ts.map +1 -0
- package/dist/runtime/i18n/locale.test.js +58 -0
- package/dist/runtime/iframe/ConsoleErrorProvider.d.ts.map +1 -0
- package/dist/runtime/iframe/ScreenshotProvider.d.ts.map +1 -0
- package/dist/runtime/iframe/runtime/overlay-hmr.d.ts.map +1 -0
- package/dist/runtime/iframe/runtime/overlay-hmr.js +0 -3
- package/dist/runtime/iframe/runtime/overlay-runtime.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +0 -3
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +0 -2
- package/dist/runtime/next/FimoNextProviders.d.ts +24 -0
- package/dist/runtime/next/FimoNextProviders.d.ts.map +1 -0
- package/dist/runtime/next/FimoNextProviders.js +20 -0
- package/dist/runtime/next/FimoNextScripts.d.ts +10 -0
- package/dist/runtime/next/FimoNextScripts.d.ts.map +1 -0
- package/dist/runtime/next/FimoNextScripts.js +19 -0
- package/dist/runtime/next/index.d.ts +14 -0
- package/dist/runtime/next/index.d.ts.map +1 -0
- package/dist/runtime/next/index.js +14 -0
- package/dist/runtime/next/server.d.ts +2 -0
- package/dist/runtime/next/server.d.ts.map +1 -0
- package/dist/runtime/next/server.js +4 -0
- package/dist/runtime/nuxt/composables.d.ts +9 -0
- package/dist/runtime/nuxt/composables.d.ts.map +1 -0
- package/dist/runtime/nuxt/composables.js +57 -0
- package/dist/runtime/nuxt/index.d.ts +3 -0
- package/dist/runtime/nuxt/index.d.ts.map +1 -0
- package/dist/runtime/nuxt/index.js +6 -0
- package/dist/runtime/nuxt/server.d.ts +3 -0
- package/dist/runtime/nuxt/server.d.ts.map +1 -0
- package/dist/runtime/nuxt/server.js +6 -0
- package/dist/runtime/paths/get-fimo-paths.d.ts.map +1 -0
- package/dist/runtime/paths/get-fimo-paths.js +5 -15
- package/dist/runtime/paths/index.d.ts.map +1 -0
- package/dist/runtime/paths/types.d.ts.map +1 -0
- package/dist/runtime/primitives/components/Boolean.d.ts.map +1 -0
- package/dist/runtime/primitives/components/Date.d.ts.map +1 -0
- package/dist/runtime/primitives/components/Image.d.ts.map +1 -0
- package/dist/runtime/primitives/components/RichText.d.ts.map +1 -0
- package/dist/runtime/primitives/components/StaticImage.d.ts.map +1 -0
- package/dist/runtime/primitives/components/Text.d.ts.map +1 -0
- package/dist/runtime/primitives/components/Video.d.ts.map +1 -0
- package/dist/runtime/primitives/components/index.d.ts.map +1 -0
- package/dist/runtime/primitives/index.d.ts.map +1 -0
- package/dist/runtime/primitives/labels-hook.d.ts +33 -0
- package/dist/runtime/primitives/labels-hook.d.ts.map +1 -0
- package/dist/runtime/primitives/labels-hook.js +41 -0
- package/dist/runtime/primitives/labels-store.d.ts +12 -0
- package/dist/runtime/primitives/labels-store.d.ts.map +1 -0
- package/dist/runtime/primitives/labels-store.js +60 -0
- package/dist/runtime/primitives/labels-store.test.d.ts +2 -0
- package/dist/runtime/primitives/labels-store.test.d.ts.map +1 -0
- package/dist/runtime/primitives/labels-store.test.js +66 -0
- package/dist/runtime/primitives/lib/image-optimization.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/index.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/primitives.d.ts +2 -2
- package/dist/runtime/primitives/lib/primitives.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/query.d.ts +3 -5
- package/dist/runtime/primitives/lib/query.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/template.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts +5 -3
- package/dist/runtime/primitives/lib/useFimoLiveValue.d.ts.map +1 -0
- package/dist/runtime/primitives/lib/useFimoLiveValue.js +11 -4
- package/dist/runtime/primitives/public-surface.test.d.ts +2 -0
- package/dist/runtime/primitives/public-surface.test.d.ts.map +1 -0
- package/dist/runtime/primitives/public-surface.test.js +45 -0
- package/dist/runtime/primitives/translations.d.ts +1 -27
- package/dist/runtime/primitives/translations.d.ts.map +1 -0
- package/dist/runtime/primitives/translations.js +7 -85
- package/dist/runtime/react/FimoSpaProviders.d.ts +36 -0
- package/dist/runtime/react/FimoSpaProviders.d.ts.map +1 -0
- package/dist/runtime/react/FimoSpaProviders.js +63 -0
- package/dist/runtime/react/index.d.ts +33 -0
- package/dist/runtime/react/index.d.ts.map +1 -0
- package/dist/runtime/react/index.js +39 -0
- package/dist/runtime/react-router/index.d.ts.map +1 -0
- package/dist/runtime/react-router/navigation-utils.d.ts.map +1 -0
- package/dist/runtime/react-router/navigation.d.ts.map +1 -0
- package/dist/runtime/react-router/navigation.test.d.ts +2 -0
- package/dist/runtime/react-router/navigation.test.d.ts.map +1 -0
- package/dist/runtime/react-router/navigation.test.js +35 -0
- package/dist/runtime/react-router/routes.d.ts.map +1 -0
- package/dist/runtime/react-router/routes.test.d.ts +2 -0
- package/dist/runtime/react-router/routes.test.d.ts.map +1 -0
- package/dist/runtime/react-router/routes.test.js +67 -0
- package/dist/runtime/remix/FimoRemixProviders.d.ts +16 -0
- package/dist/runtime/remix/FimoRemixProviders.d.ts.map +1 -0
- package/dist/runtime/remix/FimoRemixProviders.js +12 -0
- package/dist/runtime/remix/FimoRemixScripts.d.ts +10 -0
- package/dist/runtime/remix/FimoRemixScripts.d.ts.map +1 -0
- package/dist/runtime/remix/FimoRemixScripts.js +19 -0
- package/dist/runtime/remix/index.d.ts +12 -0
- package/dist/runtime/remix/index.d.ts.map +1 -0
- package/dist/runtime/remix/index.js +11 -0
- package/dist/runtime/remix/server.d.ts +2 -0
- package/dist/runtime/remix/server.d.ts.map +1 -0
- package/dist/runtime/remix/server.js +2 -0
- package/dist/runtime/routing/AppResetScrollOnNavigate.d.ts.map +1 -0
- package/dist/runtime/routing/AppRoutesProvider.d.ts.map +1 -0
- package/dist/runtime/seo/buildSeoForPath.d.ts +3 -1
- package/dist/runtime/seo/buildSeoForPath.d.ts.map +1 -0
- package/dist/runtime/seo/buildSeoForPath.js +1 -4
- package/dist/runtime/seo/htmlProps.d.ts.map +1 -0
- package/dist/runtime/seo/index.d.ts.map +1 -0
- package/dist/runtime/seo/resolver.d.ts.map +1 -0
- package/dist/runtime/shared/display-routes.d.ts +14 -0
- package/dist/runtime/shared/display-routes.d.ts.map +1 -0
- package/dist/runtime/shared/display-routes.js +25 -0
- package/dist/runtime/shared/fimo-config.server.d.ts.map +1 -0
- package/dist/runtime/shared/fimo-config.server.js +1 -0
- package/dist/runtime/shared/fimo-config.types.d.ts +2 -0
- package/dist/runtime/shared/fimo-config.types.d.ts.map +1 -0
- package/dist/runtime/shared/i18n-messages.d.ts +29 -0
- package/dist/runtime/shared/i18n-messages.d.ts.map +1 -0
- package/dist/runtime/shared/i18n-messages.js +79 -0
- package/dist/runtime/shared/i18n-messages.test.d.ts +2 -0
- package/dist/runtime/shared/i18n-messages.test.d.ts.map +1 -0
- package/dist/runtime/shared/i18n-messages.test.js +39 -0
- package/dist/runtime/shared/labels-fetch.pure.d.ts +17 -0
- package/dist/runtime/shared/labels-fetch.pure.d.ts.map +1 -0
- package/dist/runtime/shared/labels-fetch.pure.js +71 -0
- package/dist/runtime/shared/labels-fetch.server.d.ts +7 -0
- package/dist/runtime/shared/labels-fetch.server.d.ts.map +1 -0
- package/dist/runtime/shared/labels-fetch.server.js +97 -0
- package/dist/runtime/shared/labels-t.pure.d.ts +2 -0
- package/dist/runtime/shared/labels-t.pure.d.ts.map +1 -0
- package/dist/runtime/shared/labels-t.pure.js +10 -0
- package/dist/runtime/svelte/index.d.ts +3 -0
- package/dist/runtime/svelte/index.d.ts.map +1 -0
- package/dist/runtime/svelte/index.js +7 -0
- package/dist/runtime/svelte/server.d.ts +3 -0
- package/dist/runtime/svelte/server.d.ts.map +1 -0
- package/dist/runtime/svelte/server.js +6 -0
- package/dist/runtime/t/OptionalTracking.d.ts.map +1 -0
- package/dist/runtime/t/OptionalTracking.test.d.ts +2 -0
- package/dist/runtime/t/OptionalTracking.test.d.ts.map +1 -0
- package/dist/runtime/t/OptionalTracking.test.js +11 -0
- package/dist/runtime/t/Pageview.d.ts.map +1 -0
- package/dist/runtime/templates.d.ts.map +1 -0
- package/dist/runtime/vue/index.d.ts +3 -0
- package/dist/runtime/vue/index.d.ts.map +1 -0
- package/dist/runtime/vue/index.js +5 -0
- package/dist/runtime/vue/server.d.ts +3 -0
- package/dist/runtime/vue/server.d.ts.map +1 -0
- package/dist/runtime/vue/server.js +6 -0
- package/dist/runtime/wrapped/FimoFileLink.d.ts +17 -0
- package/dist/runtime/wrapped/FimoFileLink.d.ts.map +1 -0
- package/dist/runtime/wrapped/FimoFileLink.js +19 -0
- package/dist/runtime/wrapped/FimoMediaImage.d.ts +14 -0
- package/dist/runtime/wrapped/FimoMediaImage.d.ts.map +1 -0
- package/dist/runtime/wrapped/FimoMediaImage.js +20 -0
- package/dist/runtime/wrapped/FimoMediaVideo.d.ts +14 -0
- package/dist/runtime/wrapped/FimoMediaVideo.d.ts.map +1 -0
- package/dist/runtime/wrapped/FimoMediaVideo.js +20 -0
- package/dist/runtime/wrapped/FimoRichTextBlock.d.ts +23 -0
- package/dist/runtime/wrapped/FimoRichTextBlock.d.ts.map +1 -0
- package/dist/runtime/wrapped/FimoRichTextBlock.js +22 -0
- package/dist/runtime/wrapped/FimoText.d.ts +22 -0
- package/dist/runtime/wrapped/FimoText.d.ts.map +1 -0
- package/dist/runtime/wrapped/FimoText.js +20 -0
- package/dist/runtime/wrapped/WrappedContentContext.d.ts +28 -0
- package/dist/runtime/wrapped/WrappedContentContext.d.ts.map +1 -0
- package/dist/runtime/wrapped/WrappedContentContext.js +30 -0
- package/dist/runtime/wrapped/WrappedProviders.d.ts +33 -0
- package/dist/runtime/wrapped/WrappedProviders.d.ts.map +1 -0
- package/dist/runtime/wrapped/WrappedProviders.js +101 -0
- package/dist/runtime/wrapped/dom.d.ts +4 -0
- package/dist/runtime/wrapped/dom.d.ts.map +1 -0
- package/dist/runtime/wrapped/dom.js +23 -0
- package/dist/runtime/wrapped/dom.test.d.ts +2 -0
- package/dist/runtime/wrapped/dom.test.d.ts.map +1 -0
- package/dist/runtime/wrapped/dom.test.js +16 -0
- package/dist/runtime/wrapped/server.d.ts +77 -0
- package/dist/runtime/wrapped/server.d.ts.map +1 -0
- package/dist/runtime/wrapped/server.js +237 -0
- package/dist/runtime/wrapped/server.test.d.ts +2 -0
- package/dist/runtime/wrapped/server.test.d.ts.map +1 -0
- package/dist/runtime/wrapped/server.test.js +91 -0
- package/dist/scripts/apply-wrap-templates.d.ts +61 -0
- package/dist/scripts/apply-wrap-templates.js +132 -0
- package/dist/scripts/apply-wrap-templates.test.js +199 -0
- package/dist/scripts/apply-wrap.d.ts +46 -0
- package/dist/scripts/apply-wrap.js +278 -0
- package/dist/scripts/apply-wrap.test.d.ts +1 -0
- package/dist/scripts/apply-wrap.test.js +226 -0
- package/dist/scripts/cms/discover.d.ts +2 -0
- package/dist/scripts/cms/discover.js +17 -0
- package/dist/scripts/cms/example-content.d.ts +32 -0
- package/dist/scripts/cms/example-content.js +87 -0
- package/dist/scripts/cms/example-content.test.d.ts +1 -0
- package/dist/scripts/cms/example-content.test.js +57 -0
- package/dist/scripts/cms/strapi/detect.d.ts +2 -0
- package/dist/scripts/cms/strapi/detect.js +185 -0
- package/dist/scripts/cms/strapi/detect.test.d.ts +1 -0
- package/dist/scripts/cms/strapi/detect.test.js +56 -0
- package/dist/scripts/cms/strapi/index.d.ts +3 -0
- package/dist/scripts/cms/strapi/index.js +15 -0
- package/dist/scripts/cms/strapi/list-source.d.ts +17 -0
- package/dist/scripts/cms/strapi/list-source.js +90 -0
- package/dist/scripts/cms/strapi/list-source.test.d.ts +1 -0
- package/dist/scripts/cms/strapi/list-source.test.js +33 -0
- package/dist/scripts/cms/strapi/schema-map.d.ts +9 -0
- package/dist/scripts/cms/strapi/schema-map.js +138 -0
- package/dist/scripts/cms/strapi/schema-map.test.d.ts +1 -0
- package/dist/scripts/cms/strapi/schema-map.test.js +87 -0
- package/dist/scripts/cms/types.d.ts +76 -0
- package/dist/scripts/cms/types.js +11 -0
- package/dist/scripts/detect-framework.d.ts +39 -0
- package/dist/scripts/detect-framework.js +133 -0
- package/dist/scripts/detect-framework.test.d.ts +1 -0
- package/dist/scripts/detect-framework.test.js +122 -0
- package/dist/scripts/draft-rows.d.ts +19 -0
- package/dist/scripts/draft-rows.js +135 -0
- package/dist/scripts/draft-rows.test.d.ts +1 -0
- package/dist/scripts/draft-rows.test.js +113 -0
- package/dist/scripts/draft-schemas.d.ts +27 -0
- package/dist/scripts/draft-schemas.js +188 -0
- package/dist/scripts/draft-schemas.test.d.ts +1 -0
- package/dist/scripts/draft-schemas.test.js +152 -0
- package/dist/scripts/frameworks/astro/routes.d.ts +3 -0
- package/dist/scripts/frameworks/astro/routes.js +55 -0
- package/dist/scripts/frameworks/astro/template-style.d.ts +7 -0
- package/dist/scripts/frameworks/astro/template-style.js +19 -0
- package/dist/scripts/frameworks/discover.d.ts +70 -0
- package/dist/scripts/frameworks/discover.js +171 -0
- package/dist/scripts/frameworks/next/rewire.d.ts +30 -0
- package/dist/scripts/frameworks/next/rewire.js +258 -0
- package/dist/scripts/frameworks/next/rewire.test.d.ts +1 -0
- package/dist/scripts/frameworks/next/rewire.test.js +134 -0
- package/dist/scripts/frameworks/next/routes.d.ts +17 -0
- package/dist/scripts/frameworks/next/routes.js +134 -0
- package/dist/scripts/frameworks/next/routes.test.d.ts +1 -0
- package/dist/scripts/frameworks/next/routes.test.js +64 -0
- package/dist/scripts/frameworks/next/wiring.d.ts +26 -0
- package/dist/scripts/frameworks/next/wiring.js +163 -0
- package/dist/scripts/frameworks/next/wiring.test.d.ts +1 -0
- package/dist/scripts/frameworks/next/wiring.test.js +146 -0
- package/dist/scripts/frameworks/nuxt/routes.d.ts +3 -0
- package/dist/scripts/frameworks/nuxt/routes.js +54 -0
- package/dist/scripts/frameworks/nuxt/template-style.d.ts +9 -0
- package/dist/scripts/frameworks/nuxt/template-style.js +27 -0
- package/dist/scripts/frameworks/remix/routes.d.ts +3 -0
- package/dist/scripts/frameworks/remix/routes.js +50 -0
- package/dist/scripts/frameworks/sveltekit/routes.d.ts +3 -0
- package/dist/scripts/frameworks/sveltekit/routes.js +50 -0
- package/dist/scripts/frameworks/sveltekit/template-style.d.ts +9 -0
- package/dist/scripts/frameworks/sveltekit/template-style.js +54 -0
- package/dist/scripts/frameworks/vite/routes.d.ts +15 -0
- package/dist/scripts/frameworks/vite/routes.js +93 -0
- package/dist/scripts/frameworks/vite/routes.test.d.ts +1 -0
- package/dist/scripts/frameworks/vite/routes.test.js +73 -0
- package/dist/scripts/frameworks/vite/wiring.d.ts +10 -0
- package/dist/scripts/frameworks/vite/wiring.js +99 -0
- package/dist/scripts/frameworks/vite/wiring.test.d.ts +1 -0
- package/dist/scripts/frameworks/vite/wiring.test.js +88 -0
- package/dist/scripts/generated-types.test.d.ts +1 -0
- package/dist/scripts/generated-types.test.js +212 -0
- package/dist/scripts/lib/validation-report.d.ts +1 -0
- package/dist/scripts/lib/validation-report.js +3 -0
- package/dist/scripts/lint-translation-keys.test.d.ts +1 -0
- package/dist/scripts/lint-translation-keys.test.js +16 -0
- package/dist/scripts/render-parity/capture.d.ts +56 -0
- package/dist/scripts/render-parity/capture.js +366 -0
- package/dist/scripts/render-parity/capture.test.d.ts +1 -0
- package/dist/scripts/render-parity/capture.test.js +306 -0
- package/dist/scripts/render-parity/compare.d.ts +59 -0
- package/dist/scripts/render-parity/compare.js +0 -0
- package/dist/scripts/render-parity/compare.test.d.ts +1 -0
- package/dist/scripts/render-parity/compare.test.js +98 -0
- package/dist/scripts/render-parity/normalize-html.d.ts +13 -0
- package/dist/scripts/render-parity/normalize-html.js +223 -0
- package/dist/scripts/render-parity/normalize-html.test.d.ts +1 -0
- package/dist/scripts/render-parity/normalize-html.test.js +58 -0
- package/dist/scripts/render-parity/types.d.ts +41 -0
- package/dist/scripts/render-parity/types.js +1 -0
- package/dist/scripts/resolve-routes.js +1 -1
- package/dist/scripts/scan-wrappable.d.ts +196 -0
- package/dist/scripts/scan-wrappable.js +1221 -0
- package/dist/scripts/scan-wrappable.test.d.ts +1 -0
- package/dist/scripts/scan-wrappable.test.js +502 -0
- package/dist/scripts/sync-schemas.test.d.ts +1 -0
- package/dist/scripts/sync-schemas.test.js +124 -0
- package/dist/scripts/validate-route-metadata.js +11 -0
- package/dist/scripts/validate-route-metadata.test.d.ts +1 -0
- package/dist/scripts/validate-route-metadata.test.js +116 -0
- package/dist/scripts/validate-schemas.test.d.ts +1 -0
- package/dist/scripts/validate-schemas.test.js +263 -0
- package/package.json +85 -20
- package/scripts/add-ext.mjs +47 -0
- package/scripts/bump-version.mjs +58 -0
- package/scripts/bundle-cli.mjs +123 -0
- package/scripts/install-cli.mjs +36 -0
- package/scripts/lib/channels.mjs +70 -0
- package/scripts/lib/dev-release-state.mjs +44 -0
- package/scripts/lib/dev-release-state.test.ts +36 -0
- package/scripts/lib/postinstall-onboarding.test.ts +82 -0
- package/scripts/lib/release-core.mjs +225 -0
- package/scripts/lib/release-core.test.ts +147 -0
- package/scripts/migration-qa-gate.test.ts +155 -0
- package/scripts/publish-npm.mjs +180 -0
- package/templates/react-router/package.json +7 -10
- package/templates/react-router/src/pages/Index.tsx +1 -1
- package/dist/runtime/content/client/createContentClient.d.ts +0 -5
- package/dist/runtime/content/client/createContentClient.js +0 -300
- package/dist/runtime/content/client/createSingletonClient.d.ts +0 -5
- package/dist/runtime/content/client/createSingletonClient.js +0 -108
- package/dist/runtime/content/client/internal.d.ts +0 -44
- package/dist/runtime/content/client/internal.js +0 -236
- package/dist/runtime/content/client/types.d.ts +0 -136
- package/dist/runtime/content/client/useQueryLocale.d.ts +0 -2
- package/dist/runtime/content/client/useQueryLocale.js +0 -6
- /package/dist/{runtime/content/client/types.js → scripts/apply-wrap-templates.test.d.ts} +0 -0
|
@@ -1,61 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
// Vite flavor of the label layer: hydrates the framework-neutral store from
|
|
2
|
+
// the `virtual:translations` module (fimo/vite labels plugin) and wires HMR.
|
|
3
|
+
// Framework-agnostic consumers use ./labels-store.ts + ./labels-hook.ts.
|
|
2
4
|
import { defaultLocale as bundledDefaultLocale, dictionaries as bundledDictionaries, signature as translationSignature, updatedAt as bundledUpdatedAt, } from 'virtual:translations';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
const labelListeners = new Set();
|
|
6
|
-
let labelState = {
|
|
5
|
+
import { applyLabelUpdate, hydrateLabels } from './labels-store.js';
|
|
6
|
+
hydrateLabels({
|
|
7
7
|
dictionaries: bundledDictionaries ?? {},
|
|
8
8
|
defaultLocale: bundledDefaultLocale || 'en',
|
|
9
9
|
signature: translationSignature,
|
|
10
10
|
updatedAt: bundledUpdatedAt ?? null,
|
|
11
|
-
};
|
|
12
|
-
function subscribeLabels(listener) {
|
|
13
|
-
labelListeners.add(listener);
|
|
14
|
-
return () => {
|
|
15
|
-
labelListeners.delete(listener);
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
function getLabelSnapshot() {
|
|
19
|
-
return labelState;
|
|
20
|
-
}
|
|
21
|
-
function setLabelState(next) {
|
|
22
|
-
if (next.signature === labelState.signature) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
labelState = next;
|
|
26
|
-
for (const listener of labelListeners) {
|
|
27
|
-
listener();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
function isRecord(value) {
|
|
31
|
-
return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
|
|
32
|
-
}
|
|
33
|
-
function normalizeDictionaries(value) {
|
|
34
|
-
if (!isRecord(value)) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
const dictionaries = {};
|
|
38
|
-
for (const [locale, labels] of Object.entries(value)) {
|
|
39
|
-
if (!isRecord(labels)) {
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
dictionaries[locale] = Object.fromEntries(Object.entries(labels).filter((entry) => typeof entry[1] === 'string'));
|
|
43
|
-
}
|
|
44
|
-
return dictionaries;
|
|
45
|
-
}
|
|
46
|
-
function applyLabelUpdate(payload) {
|
|
47
|
-
if (!isRecord(payload)) {
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
const dictionaries = normalizeDictionaries(payload.dictionaries);
|
|
51
|
-
if (!dictionaries) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const defaultLocale = typeof payload.defaultLocale === 'string' ? payload.defaultLocale : labelState.defaultLocale;
|
|
55
|
-
const signature = typeof payload.signature === 'string' ? payload.signature : JSON.stringify({ dictionaries, defaultLocale });
|
|
56
|
-
const updatedAt = typeof payload.updatedAt === 'string' ? payload.updatedAt : null;
|
|
57
|
-
setLabelState({ dictionaries, defaultLocale, signature, updatedAt });
|
|
58
|
-
}
|
|
11
|
+
});
|
|
59
12
|
// @ts-ignore - import.meta.hot is provided by Vite during development.
|
|
60
13
|
if (import.meta.hot) {
|
|
61
14
|
const onLabelsUpdated = (payload) => {
|
|
@@ -69,35 +22,4 @@ if (import.meta.hot) {
|
|
|
69
22
|
import.meta.hot.off('fimo:labels-updated', onLabelsUpdated);
|
|
70
23
|
});
|
|
71
24
|
}
|
|
72
|
-
|
|
73
|
-
* Hook to provide a label function (`t`).
|
|
74
|
-
*
|
|
75
|
-
* Returns FimoString with source tracking for inline editing.
|
|
76
|
-
* Use with <Text> component for rendering, or String() for escape hatch.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* const { t } = useLabels();
|
|
80
|
-
*
|
|
81
|
-
* // With Text component (recommended)
|
|
82
|
-
* <Text value={t('welcome')} />
|
|
83
|
-
*
|
|
84
|
-
* // Escape hatch for attributes
|
|
85
|
-
* <input placeholder={String(t('email.placeholder'))} />
|
|
86
|
-
*/
|
|
87
|
-
export function useLabels() {
|
|
88
|
-
const localeContext = useLocale();
|
|
89
|
-
const labels = useSyncExternalStore(subscribeLabels, getLabelSnapshot, getLabelSnapshot);
|
|
90
|
-
const t = (fullKey) => {
|
|
91
|
-
const locale = localeContext.locale || labels.defaultLocale || 'en';
|
|
92
|
-
const dictionary = labels.dictionaries[locale] ?? labels.dictionaries[labels.defaultLocale] ?? {};
|
|
93
|
-
const text = dictionary[fullKey] ?? '';
|
|
94
|
-
return new FimoString(text, `__labels.${locale}.${fullKey}.value`);
|
|
95
|
-
};
|
|
96
|
-
return { t, locale: localeContext.locale };
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Legacy alias for older projects. Prefer useLabels() in new code.
|
|
100
|
-
*/
|
|
101
|
-
export function useTranslations() {
|
|
102
|
-
return useLabels();
|
|
103
|
-
}
|
|
25
|
+
export { useLabels, useTranslations } from './labels-hook.js';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FimoConfig } from '../shared/fimo-config.types.js';
|
|
3
|
+
import type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
|
|
4
|
+
export interface FimoSpaProvidersProps {
|
|
5
|
+
/** The project's fimo-config.json — import it directly: `import config from '../fimo-config.json'`. */
|
|
6
|
+
config: FimoConfig;
|
|
7
|
+
/** Tenant API base URL, e.g. `import.meta.env.VITE_API_URL`. Without it, wrapped values render their inline fallbacks. */
|
|
8
|
+
apiUrl?: string;
|
|
9
|
+
/** Preview client script for Fimo Studio edit mode. Pass only in dev, e.g. `import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined`. */
|
|
10
|
+
previewScriptUrl?: string;
|
|
11
|
+
media?: Record<string, WrappedMediaEntry>;
|
|
12
|
+
richText?: Record<string, WrappedRichTextEntry>;
|
|
13
|
+
locale?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fimo providers for wrapped CLIENT-RENDERED React apps (Vite SPAs). There is
|
|
18
|
+
* no server pass to load labels in, so this adapter fetches the dictionary in
|
|
19
|
+
* the browser and hydrates the framework-neutral WrappedProviders; until the
|
|
20
|
+
* fetch resolves (or when it fails), every wrapped value renders its inline
|
|
21
|
+
* fallback — the original hardcoded string. Mount once around the app root:
|
|
22
|
+
*
|
|
23
|
+
* import config from '../fimo-config.json';
|
|
24
|
+
* <FimoSpaProviders
|
|
25
|
+
* config={config}
|
|
26
|
+
* apiUrl={import.meta.env.VITE_API_URL}
|
|
27
|
+
* previewScriptUrl={import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined}
|
|
28
|
+
* >
|
|
29
|
+
* <App />
|
|
30
|
+
* </FimoSpaProviders>
|
|
31
|
+
*
|
|
32
|
+
* Navigation is History-API based (full page load): correct for any SPA
|
|
33
|
+
* router without depending on one.
|
|
34
|
+
*/
|
|
35
|
+
export declare function FimoSpaProviders({ config, apiUrl, previewScriptUrl, media, richText, locale, children, }: FimoSpaProvidersProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=FimoSpaProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FimoSpaProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/react/FimoSpaProviders.tsx"],"names":[],"mappings":"AACA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAGnG,MAAM,WAAW,qBAAqB;IACpC,uGAAuG;IACvG,MAAM,EAAE,UAAU,CAAC;IACnB,0HAA0H;IAC1H,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gKAAgK;IAChK,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAYD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,MAAM,EACN,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,GACT,EAAE,qBAAqB,2CA8CvB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useMemo, useState } from 'react';
|
|
4
|
+
import { getFimoDefaultLocale, getFimoLocales } from '../i18n/locale.js';
|
|
5
|
+
import { fetchLabelBundle, serializeBundle } from '../shared/labels-fetch.pure.js';
|
|
6
|
+
import { WrappedProviders } from '../wrapped/WrappedProviders.js';
|
|
7
|
+
/** Browser-safe stable signature (labelSignature uses Buffer, server-only). */
|
|
8
|
+
function bundleSignature(bundle) {
|
|
9
|
+
const serialized = serializeBundle(bundle);
|
|
10
|
+
let hash = 5381;
|
|
11
|
+
for (let i = 0; i < serialized.length; i++) {
|
|
12
|
+
hash = ((hash << 5) + hash + serialized.charCodeAt(i)) | 0;
|
|
13
|
+
}
|
|
14
|
+
return `spa-${hash}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fimo providers for wrapped CLIENT-RENDERED React apps (Vite SPAs). There is
|
|
18
|
+
* no server pass to load labels in, so this adapter fetches the dictionary in
|
|
19
|
+
* the browser and hydrates the framework-neutral WrappedProviders; until the
|
|
20
|
+
* fetch resolves (or when it fails), every wrapped value renders its inline
|
|
21
|
+
* fallback — the original hardcoded string. Mount once around the app root:
|
|
22
|
+
*
|
|
23
|
+
* import config from '../fimo-config.json';
|
|
24
|
+
* <FimoSpaProviders
|
|
25
|
+
* config={config}
|
|
26
|
+
* apiUrl={import.meta.env.VITE_API_URL}
|
|
27
|
+
* previewScriptUrl={import.meta.env.DEV ? import.meta.env.VITE_FIMO_PREVIEW_SCRIPT_URL : undefined}
|
|
28
|
+
* >
|
|
29
|
+
* <App />
|
|
30
|
+
* </FimoSpaProviders>
|
|
31
|
+
*
|
|
32
|
+
* Navigation is History-API based (full page load): correct for any SPA
|
|
33
|
+
* router without depending on one.
|
|
34
|
+
*/
|
|
35
|
+
export function FimoSpaProviders({ config, apiUrl, previewScriptUrl, media, richText, locale, children, }) {
|
|
36
|
+
const [labels, setLabels] = useState(undefined);
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!apiUrl) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
let cancelled = false;
|
|
42
|
+
const defaultLocale = getFimoDefaultLocale(config);
|
|
43
|
+
fetchLabelBundle(apiUrl, getFimoLocales(config), defaultLocale)
|
|
44
|
+
.then((bundle) => {
|
|
45
|
+
if (!cancelled) {
|
|
46
|
+
setLabels({ ...bundle, signature: bundleSignature(bundle) });
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
.catch(() => {
|
|
50
|
+
// Unreachable API: keep rendering the inline fallbacks.
|
|
51
|
+
});
|
|
52
|
+
return () => {
|
|
53
|
+
cancelled = true;
|
|
54
|
+
};
|
|
55
|
+
}, [apiUrl, config]);
|
|
56
|
+
const navigation = useMemo(() => ({
|
|
57
|
+
pathname: typeof window !== 'undefined' ? window.location.pathname : null,
|
|
58
|
+
navigate: (to) => {
|
|
59
|
+
window.location.assign(to);
|
|
60
|
+
},
|
|
61
|
+
}), []);
|
|
62
|
+
return (_jsxs(WrappedProviders, { config: config, labels: labels, media: media, richText: richText, locale: locale, navigation: navigation, children: [previewScriptUrl ? _jsx("script", { type: "module", src: previewScriptUrl }) : null, children] }));
|
|
63
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { Text } from '../primitives/components/Text.js';
|
|
2
|
+
export { Image } from '../primitives/components/Image.js';
|
|
3
|
+
export { StaticImage } from '../primitives/components/StaticImage.js';
|
|
4
|
+
export { Video } from '../primitives/components/Video.js';
|
|
5
|
+
export { Date } from '../primitives/components/Date.js';
|
|
6
|
+
export { Boolean } from '../primitives/components/Boolean.js';
|
|
7
|
+
export { RichText } from '../primitives/components/RichText.js';
|
|
8
|
+
export { useLabels, useTranslations } from '../primitives/labels-hook.js';
|
|
9
|
+
export { applyLabelUpdate, getLabelSnapshot, hydrateLabels, subscribeLabels } from '../primitives/labels-store.js';
|
|
10
|
+
export type { LabelState } from '../primitives/labels-store.js';
|
|
11
|
+
export { FimoText } from '../wrapped/FimoText.js';
|
|
12
|
+
export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
|
|
13
|
+
export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
|
|
14
|
+
export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
|
|
15
|
+
export { FimoFileLink } from '../wrapped/FimoFileLink.js';
|
|
16
|
+
export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
|
|
17
|
+
export type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
|
|
18
|
+
export { FimoSpaProviders } from './FimoSpaProviders.js';
|
|
19
|
+
export type { FimoSpaProvidersProps } from './FimoSpaProviders.js';
|
|
20
|
+
export { FimoString, FimoDate, FimoMedia, FimoBoolean, FimoRichText, type FimoSource, type FimoPart, type FimoRichTextContent, type FimoRichTextNodeProps, type FimoRichTextMarkProps, type FimoRichTextComponents, FIMO_SOURCE, FIMO_PARTS, isFimoString, isFimoDate, hasFimoSource, getFimoSource, getFimoParts, } from '../primitives/lib/index.js';
|
|
21
|
+
export { fimo } from '../primitives/lib/template.js';
|
|
22
|
+
export { useFimoLiveValue } from '../primitives/lib/useFimoLiveValue.js';
|
|
23
|
+
export { DataSourcesProvider } from '../content/DataSourcesProvider.js';
|
|
24
|
+
export { ConsoleErrorProvider } from '../iframe/ConsoleErrorProvider.js';
|
|
25
|
+
export { ScreenshotProvider } from '../iframe/ScreenshotProvider.js';
|
|
26
|
+
export { FimoLocaleProvider, useLocale } from '../i18n/FimoLocaleContext.js';
|
|
27
|
+
export type { FimoLocaleContextValue } from '../i18n/FimoLocaleContext.js';
|
|
28
|
+
export { getFimoDefaultLocale, getFimoLocales, getFimoTextDirection, localizeFimoPath, resolveFimoLocale, toHtmlLang, } from '../i18n/locale.js';
|
|
29
|
+
export type { FimoLocaleResolution } from '../i18n/locale.js';
|
|
30
|
+
export { getDisplayRoutes } from '../shared/display-routes.js';
|
|
31
|
+
export type { DisplayRoute, ParamInfo } from '../shared/display-routes.js';
|
|
32
|
+
export type { FimoConfig, FimoRouteConfig, FimoSEO } from '../shared/fimo-config.types.js';
|
|
33
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/react/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGhE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACnH,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAMhE,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAGnE,OAAO,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC3E,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// fimo/react — the framework-agnostic React core of the Fimo runtime.
|
|
2
|
+
// No Vite virtual modules, no react-router, no bundler assumptions:
|
|
3
|
+
// per-framework adapters (fimo/react-router via fimo/ui, fimo/next, ...)
|
|
4
|
+
// build on this surface.
|
|
5
|
+
// Inline-editing components
|
|
6
|
+
export { Text } from '../primitives/components/Text.js';
|
|
7
|
+
export { Image } from '../primitives/components/Image.js';
|
|
8
|
+
export { StaticImage } from '../primitives/components/StaticImage.js';
|
|
9
|
+
export { Video } from '../primitives/components/Video.js';
|
|
10
|
+
export { Date } from '../primitives/components/Date.js';
|
|
11
|
+
export { Boolean } from '../primitives/components/Boolean.js';
|
|
12
|
+
export { RichText } from '../primitives/components/RichText.js';
|
|
13
|
+
// Labels (framework-neutral store + hook; adapters hydrate the store)
|
|
14
|
+
export { useLabels, useTranslations } from '../primitives/labels-hook.js';
|
|
15
|
+
export { applyLabelUpdate, getLabelSnapshot, hydrateLabels, subscribeLabels } from '../primitives/labels-store.js';
|
|
16
|
+
// Wrapped-site primitives (the --apply codemod imports these from fimo/react
|
|
17
|
+
// in Vite React SPAs) + the client-side providers that hydrate them. All are
|
|
18
|
+
// fallback-safe without a provider: FimoText renders its children, media
|
|
19
|
+
// elements render their original src.
|
|
20
|
+
export { FimoText } from '../wrapped/FimoText.js';
|
|
21
|
+
export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
|
|
22
|
+
export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
|
|
23
|
+
export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
|
|
24
|
+
export { FimoFileLink } from '../wrapped/FimoFileLink.js';
|
|
25
|
+
export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
|
|
26
|
+
export { FimoSpaProviders } from './FimoSpaProviders.js';
|
|
27
|
+
// Source-tracking primitives & utilities
|
|
28
|
+
export { FimoString, FimoDate, FimoMedia, FimoBoolean, FimoRichText, FIMO_SOURCE, FIMO_PARTS, isFimoString, isFimoDate, hasFimoSource, getFimoSource, getFimoParts, } from '../primitives/lib/index.js';
|
|
29
|
+
export { fimo } from '../primitives/lib/template.js';
|
|
30
|
+
export { useFimoLiveValue } from '../primitives/lib/useFimoLiveValue.js';
|
|
31
|
+
// Preview/editor bridge providers (postMessage-based, framework-free)
|
|
32
|
+
export { DataSourcesProvider } from '../content/DataSourcesProvider.js';
|
|
33
|
+
export { ConsoleErrorProvider } from '../iframe/ConsoleErrorProvider.js';
|
|
34
|
+
export { ScreenshotProvider } from '../iframe/ScreenshotProvider.js';
|
|
35
|
+
// Locale
|
|
36
|
+
export { FimoLocaleProvider, useLocale } from '../i18n/FimoLocaleContext.js';
|
|
37
|
+
export { getFimoDefaultLocale, getFimoLocales, getFimoTextDirection, localizeFimoPath, resolveFimoLocale, toHtmlLang, } from '../i18n/locale.js';
|
|
38
|
+
// Config + routes
|
|
39
|
+
export { getDisplayRoutes } from '../shared/display-routes.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC3F,YAAY,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation-utils.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9F,wBAAgB,cAAc,CAC5B,EAAE,EAAE,gBAAgB,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,SAAS,GAC3C,gBAAgB,CAWlB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAOnE,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,qBAAqB;IACjF,EAAE,EAAE,EAAE,CAAC;CACR;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAqB,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,2CAGtF;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,GAAE,qBAA0B,GAAG,EAAE,CAI3E;AAED,wBAAgB,eAAe,KAIrB,IAAI,EAAE,GAAG,MAAM,EAAE,UAAS,eAAe,GAAG,qBAA0B,UAU/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/navigation.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { localizeFimoTo } from './navigation-utils';
|
|
3
|
+
describe('localizeFimoTo', () => {
|
|
4
|
+
const config = {
|
|
5
|
+
i18n: {
|
|
6
|
+
defaultLocale: 'en',
|
|
7
|
+
locales: ['en', 'es'],
|
|
8
|
+
routing: {
|
|
9
|
+
strategy: 'path-prefix',
|
|
10
|
+
prefixDefaultLocale: false,
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
it('localizes absolute internal paths while preserving search and hash', () => {
|
|
15
|
+
expect(localizeFimoTo('/pricing?plan=pro#faq', 'es', config)).toBe('/es/pricing?plan=pro#faq');
|
|
16
|
+
});
|
|
17
|
+
it('does not double-prefix already localized paths', () => {
|
|
18
|
+
expect(localizeFimoTo('/es/pricing', 'es', config)).toBe('/es/pricing');
|
|
19
|
+
});
|
|
20
|
+
it('keeps default locale paths unprefixed by default', () => {
|
|
21
|
+
expect(localizeFimoTo('/pricing', 'en', config)).toBe('/pricing');
|
|
22
|
+
});
|
|
23
|
+
it('leaves relative, hash, query, and external URLs alone', () => {
|
|
24
|
+
expect(localizeFimoTo('pricing', 'es', config)).toBe('pricing');
|
|
25
|
+
expect(localizeFimoTo('#pricing', 'es', config)).toBe('#pricing');
|
|
26
|
+
expect(localizeFimoTo('?modal=pricing', 'es', config)).toBe('?modal=pricing');
|
|
27
|
+
expect(localizeFimoTo('https://example.com/pricing', 'es', config)).toBe('https://example.com/pricing');
|
|
28
|
+
});
|
|
29
|
+
it('localizes object targets with pathnames', () => {
|
|
30
|
+
expect(localizeFimoTo({ pathname: '/pricing', search: '?plan=pro' }, 'es', config)).toEqual({
|
|
31
|
+
pathname: '/es/pricing',
|
|
32
|
+
search: '?plan=pro',
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/routes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,UAAU,cAAc;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,cAAc,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,CAAC,EAAE,CA4B/G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes.test.d.ts","sourceRoot":"","sources":["../../../src/runtime/react-router/routes.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { fimoRoutes } from './routes';
|
|
3
|
+
describe('fimoRoutes', () => {
|
|
4
|
+
const config = {
|
|
5
|
+
i18n: {
|
|
6
|
+
defaultLocale: 'en',
|
|
7
|
+
locales: ['en', 'es'],
|
|
8
|
+
routing: {
|
|
9
|
+
strategy: 'path-prefix',
|
|
10
|
+
prefixDefaultLocale: false,
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
it('adds concrete non-default locale aliases that reuse the same route modules', () => {
|
|
15
|
+
const routes = fimoRoutes([
|
|
16
|
+
{ index: true, file: './pages/Index.tsx', id: 'home' },
|
|
17
|
+
{ path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
|
|
18
|
+
{ path: 'blog/:slug', file: './pages/BlogPost.tsx', id: 'blog-post' },
|
|
19
|
+
], { config });
|
|
20
|
+
expect(routes).toEqual([
|
|
21
|
+
{ index: true, file: './pages/Index.tsx', id: 'home' },
|
|
22
|
+
{ path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
|
|
23
|
+
{ path: 'blog/:slug', file: './pages/BlogPost.tsx', id: 'blog-post' },
|
|
24
|
+
{ file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
|
|
25
|
+
{ path: 'es/pricing', file: './pages/Pricing.tsx', id: 'fimo.es.pricing' },
|
|
26
|
+
{ path: 'es/blog/:slug', file: './pages/BlogPost.tsx', id: 'fimo.es.blog-post' },
|
|
27
|
+
]);
|
|
28
|
+
});
|
|
29
|
+
it('can prefix the default locale when configured', () => {
|
|
30
|
+
const routes = fimoRoutes([{ index: true, file: './pages/Index.tsx', id: 'home' }], {
|
|
31
|
+
config: {
|
|
32
|
+
i18n: {
|
|
33
|
+
...config.i18n,
|
|
34
|
+
routing: {
|
|
35
|
+
strategy: 'path-prefix',
|
|
36
|
+
prefixDefaultLocale: true,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
expect(routes).toEqual([
|
|
42
|
+
{ index: true, file: './pages/Index.tsx', id: 'home' },
|
|
43
|
+
{ file: './pages/Index.tsx', id: 'fimo.en.home', path: 'en' },
|
|
44
|
+
{ file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
|
|
45
|
+
]);
|
|
46
|
+
});
|
|
47
|
+
it('localizes children below a pathless layout without duplicating files', () => {
|
|
48
|
+
const routes = fimoRoutes([
|
|
49
|
+
{
|
|
50
|
+
file: './pages/Layout.tsx',
|
|
51
|
+
id: 'site-layout',
|
|
52
|
+
children: [
|
|
53
|
+
{ index: true, file: './pages/Index.tsx', id: 'home' },
|
|
54
|
+
{ path: 'pricing', file: './pages/Pricing.tsx', id: 'pricing' },
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
], { config });
|
|
58
|
+
expect(routes[1]).toMatchObject({
|
|
59
|
+
file: './pages/Layout.tsx',
|
|
60
|
+
id: 'fimo.es.site-layout',
|
|
61
|
+
children: [
|
|
62
|
+
{ file: './pages/Index.tsx', id: 'fimo.es.home', path: 'es' },
|
|
63
|
+
{ path: 'es/pricing', file: './pages/Pricing.tsx', id: 'fimo.es.pricing' },
|
|
64
|
+
],
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { FimoConfig } from '../shared/fimo-config.types.js';
|
|
3
|
+
import type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
|
|
4
|
+
import { type WrappedLabels } from '../wrapped/WrappedProviders.js';
|
|
5
|
+
export type FimoRemixLabels = WrappedLabels;
|
|
6
|
+
export interface FimoRemixProvidersProps {
|
|
7
|
+
config: FimoConfig;
|
|
8
|
+
labels?: FimoRemixLabels;
|
|
9
|
+
media?: Record<string, WrappedMediaEntry>;
|
|
10
|
+
richText?: Record<string, WrappedRichTextEntry>;
|
|
11
|
+
locale?: string;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
/** Fimo providers for wrapped Remix apps — mount once in app/root.tsx. */
|
|
15
|
+
export declare function FimoRemixProviders(props: FimoRemixProvidersProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=FimoRemixProviders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FimoRemixProviders.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/FimoRemixProviders.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAEtF,MAAM,MAAM,eAAe,GAAG,aAAa,CAAC;AAE5C,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,2CAQhE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useLocation, useNavigate } from '@remix-run/react';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import { WrappedProviders } from '../wrapped/WrappedProviders.js';
|
|
6
|
+
/** Fimo providers for wrapped Remix apps — mount once in app/root.tsx. */
|
|
7
|
+
export function FimoRemixProviders(props) {
|
|
8
|
+
const location = useLocation();
|
|
9
|
+
const navigate = useNavigate();
|
|
10
|
+
const navigation = useMemo(() => ({ pathname: location.pathname, navigate: (to) => navigate(to) }), [location.pathname, navigate]);
|
|
11
|
+
return _jsx(WrappedProviders, { ...props, navigation: navigation });
|
|
12
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders the Fimo preview client script in development so the Fimo Studio
|
|
3
|
+
* preview can select/edit elements. Mount inside <head> in the root layout.
|
|
4
|
+
*
|
|
5
|
+
* The script URL comes from FIMO_PREVIEW_SCRIPT_URL (written by
|
|
6
|
+
* `fimo init` for wrapped projects, pointing at `<apiUrl>/preview.js`).
|
|
7
|
+
* Renders nothing in production builds.
|
|
8
|
+
*/
|
|
9
|
+
export declare function FimoRemixScripts(): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=FimoRemixScripts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FimoRemixScripts.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/FimoRemixScripts.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,mDAW/B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Renders the Fimo preview client script in development so the Fimo Studio
|
|
4
|
+
* preview can select/edit elements. Mount inside <head> in the root layout.
|
|
5
|
+
*
|
|
6
|
+
* The script URL comes from FIMO_PREVIEW_SCRIPT_URL (written by
|
|
7
|
+
* `fimo init` for wrapped projects, pointing at `<apiUrl>/preview.js`).
|
|
8
|
+
* Renders nothing in production builds.
|
|
9
|
+
*/
|
|
10
|
+
export function FimoRemixScripts() {
|
|
11
|
+
if (process.env.NODE_ENV !== 'development') {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const previewScriptUrl = process.env.FIMO_PREVIEW_SCRIPT_URL;
|
|
15
|
+
if (!previewScriptUrl) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return _jsx("script", { type: "module", src: previewScriptUrl });
|
|
19
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { FimoRemixProviders } from './FimoRemixProviders.js';
|
|
2
|
+
export type { FimoRemixLabels, FimoRemixProvidersProps } from './FimoRemixProviders.js';
|
|
3
|
+
export { FimoRemixScripts } from './FimoRemixScripts.js';
|
|
4
|
+
export { FimoText } from '../wrapped/FimoText.js';
|
|
5
|
+
export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
|
|
6
|
+
export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
|
|
7
|
+
export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
|
|
8
|
+
export { FimoFileLink } from '../wrapped/FimoFileLink.js';
|
|
9
|
+
export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
|
|
10
|
+
export type { WrappedMediaEntry, WrappedRichTextEntry } from '../wrapped/WrappedContentContext.js';
|
|
11
|
+
export { useLabels } from '../primitives/labels-hook.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC1F,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// fimo/remix — the Remix adapter. Framework-neutral pieces live in
|
|
2
|
+
// ../wrapped and are re-exported; this module only adds the Remix wiring.
|
|
3
|
+
export { FimoRemixProviders } from './FimoRemixProviders.js';
|
|
4
|
+
export { FimoRemixScripts } from './FimoRemixScripts.js';
|
|
5
|
+
export { FimoText } from '../wrapped/FimoText.js';
|
|
6
|
+
export { FimoRichTextBlock } from '../wrapped/FimoRichTextBlock.js';
|
|
7
|
+
export { FimoMediaImage } from '../wrapped/FimoMediaImage.js';
|
|
8
|
+
export { FimoMediaVideo } from '../wrapped/FimoMediaVideo.js';
|
|
9
|
+
export { FimoFileLink } from '../wrapped/FimoFileLink.js';
|
|
10
|
+
export { useWrappedMedia, useWrappedRichText } from '../wrapped/WrappedContentContext.js';
|
|
11
|
+
export { useLabels } from '../primitives/labels-hook.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/remix/server.ts"],"names":[],"mappings":"AACA,cAAc,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppResetScrollOnNavigate.d.ts","sourceRoot":"","sources":["../../../src/runtime/routing/AppResetScrollOnNavigate.tsx"],"names":[],"mappings":"AAGA,wBAAgB,wBAAwB,SAUvC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppRoutesProvider.d.ts","sourceRoot":"","sources":["../../../src/runtime/routing/AppRoutesProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,SAAS,CAAC;IACzE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;IACrF,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAmBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,SAAK,GAAG,YAAY,EAAE,CA4BlF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAoEhH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildSeoForPath.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/buildSeoForPath.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAK1E,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAExF;AA+BD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAMrE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAUpG"}
|
|
@@ -42,10 +42,7 @@ export function buildMetaForPath(pathname, routeData) {
|
|
|
42
42
|
}
|
|
43
43
|
export function buildFimoMeta(args) {
|
|
44
44
|
const pathname = args.location.pathname;
|
|
45
|
-
const
|
|
46
|
-
const rootData = firstMatch && typeof firstMatch === 'object' && 'data' in firstMatch
|
|
47
|
-
? firstMatch.data
|
|
48
|
-
: undefined;
|
|
45
|
+
const rootData = args.matches[0]?.data;
|
|
49
46
|
const routeData = rootData && typeof rootData === 'object' ? rootData.fimoMetaData : undefined;
|
|
50
47
|
const seo = getSeoForPath(pathname, routeData);
|
|
51
48
|
if (!seo) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"htmlProps.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/htmlProps.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,KAAK,GAAG,KAAK,CAAA;CAAE,CAIlH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/index.ts"],"names":[],"mappings":"AAEA,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAE9B,wBAAsB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE;;;GAIvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/seo/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAY,MAAM,gCAAgC,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,2HAWsB,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO1D;AAUD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAoBzG;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GAClD,eAAe,GAAG,SAAS,CAuB7B;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAapE;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAQ1F;AAaD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAwBhH"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FimoConfig } from './fimo-config.types.js';
|
|
2
|
+
export interface ParamInfo {
|
|
3
|
+
schema: string;
|
|
4
|
+
queryField: string;
|
|
5
|
+
displayField: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DisplayRoute {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
path: string;
|
|
11
|
+
params?: Record<string, ParamInfo>;
|
|
12
|
+
}
|
|
13
|
+
export declare function getDisplayRoutes(config: Pick<FimoConfig, 'routes'> | undefined): DisplayRoute[];
|
|
14
|
+
//# sourceMappingURL=display-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display-routes.d.ts","sourceRoot":"","sources":["../../../src/runtime/shared/display-routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CACpC;AAmBD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAG,YAAY,EAAE,CAU/F"}
|