eddev 2.0.0-beta.98 → 2.1.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/css/editor-styles.css +4 -0
- package/dist/app/entry/HydrationOverlay.d.ts +1 -0
- package/dist/app/entry/HydrationOverlay.d.ts.map +1 -0
- package/dist/app/entry/MetaTags.d.ts +1 -0
- package/dist/app/entry/MetaTags.d.ts.map +1 -0
- package/dist/app/entry/MetaTags.js +18 -3
- package/dist/app/entry/boot-admin.d.ts +1 -0
- package/dist/app/entry/boot-admin.d.ts.map +1 -0
- package/dist/app/entry/boot-admin.js +0 -1
- package/dist/app/entry/hydration-script.d.ts +1 -0
- package/dist/app/entry/hydration-script.d.ts.map +1 -0
- package/dist/app/entry/spa-root.d.ts +1 -0
- package/dist/app/entry/spa-root.d.ts.map +1 -0
- package/dist/app/entry/spa-root.js +1 -2
- package/dist/app/entry/ssr-root-client.d.ts +1 -0
- package/dist/app/entry/ssr-root-client.d.ts.map +1 -0
- package/dist/app/entry/ssr-root-client.js +3 -2
- package/dist/app/entry/ssr-root.d.ts +3 -0
- package/dist/app/entry/ssr-root.d.ts.map +1 -0
- package/dist/app/entry/ssr-root.js +3 -3
- package/dist/app/lib/admin/defineField.d.ts +1 -0
- package/dist/app/lib/admin/defineField.d.ts.map +1 -0
- package/dist/app/lib/admin/defineWidget.d.ts +1 -0
- package/dist/app/lib/admin/defineWidget.d.ts.map +1 -0
- package/dist/app/lib/admin/index.d.ts +1 -0
- package/dist/app/lib/admin/index.d.ts.map +1 -0
- package/dist/app/lib/admin/installFieldTypes.d.ts +1 -0
- package/dist/app/lib/admin/installFieldTypes.d.ts.map +1 -0
- package/dist/app/lib/admin/installFieldTypes.js +2 -0
- package/dist/app/lib/admin/runWidgets.d.ts +1 -0
- package/dist/app/lib/admin/runWidgets.d.ts.map +1 -0
- package/dist/app/lib/admin/runWidgets.js +7 -2
- package/dist/app/lib/blocks/BlockPropMutator.d.ts +33 -0
- package/dist/app/lib/blocks/BlockPropMutator.d.ts.map +1 -0
- package/dist/app/lib/blocks/BlockPropMutator.js +20 -0
- package/dist/app/lib/blocks/ContentBlocks.d.ts +7 -4
- package/dist/app/lib/blocks/ContentBlocks.d.ts.map +1 -0
- package/dist/app/lib/blocks/ContentBlocks.js +14 -1
- package/dist/app/lib/blocks/EditableText.d.ts +30 -5
- package/dist/app/lib/blocks/EditableText.d.ts.map +1 -0
- package/dist/app/lib/blocks/EditableText.js +34 -5
- package/dist/app/lib/blocks/InnerBlocks.d.ts +11 -6
- package/dist/app/lib/blocks/InnerBlocks.d.ts.map +1 -0
- package/dist/app/lib/blocks/InnerBlocks.js +67 -27
- package/dist/app/lib/blocks/SlotBlocks.d.ts +8 -0
- package/dist/app/lib/blocks/SlotBlocks.d.ts.map +1 -0
- package/dist/app/lib/blocks/SlotBlocks.js +45 -0
- package/dist/app/lib/blocks/block-utils.d.ts +1 -0
- package/dist/app/lib/blocks/block-utils.d.ts.map +1 -0
- package/dist/app/lib/blocks/block-utils.js +18 -1
- package/dist/app/lib/blocks/builtin-blocks.d.ts +2 -0
- package/dist/app/lib/blocks/builtin-blocks.d.ts.map +1 -0
- package/dist/app/lib/blocks/builtin-blocks.js +55 -0
- package/dist/app/lib/blocks/defineBlock.d.ts +4 -0
- package/dist/app/lib/blocks/defineBlock.d.ts.map +1 -0
- package/dist/app/lib/blocks/defineBlock.js +9 -0
- package/dist/app/lib/blocks/editor/EditingContext.d.ts +2 -0
- package/dist/app/lib/blocks/editor/EditingContext.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/EditingContext.js +31 -0
- package/dist/app/lib/blocks/editor/EditorHighlights.d.ts +1 -0
- package/dist/app/lib/blocks/editor/EditorHighlights.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/EditorHighlights.js +43 -9
- package/dist/app/lib/blocks/editor/EditorSupport.d.ts +1 -4
- package/dist/app/lib/blocks/editor/EditorSupport.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/EditorSupport.js +23 -9
- package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts +1 -0
- package/dist/app/lib/blocks/editor/ErrorBoundaryEditor.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/block-templates.d.ts +8 -1
- package/dist/app/lib/blocks/editor/block-templates.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/block-templates.js +71 -2
- package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts +1 -0
- package/dist/app/lib/blocks/editor/blocks-by-tag.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/controls.d.ts +1 -0
- package/dist/app/lib/blocks/editor/controls.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/create-block.d.ts +10 -0
- package/dist/app/lib/blocks/editor/create-block.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/create-block.js +13 -0
- package/dist/app/lib/blocks/editor/editor-config.d.ts +64 -7
- package/dist/app/lib/blocks/editor/editor-config.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/editor-config.js +28 -73
- package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts +4 -0
- package/dist/app/lib/blocks/editor/installGutenbergHooks.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/installGutenbergHooks.js +152 -27
- package/dist/app/lib/blocks/editor/root-blocks.d.ts +1 -0
- package/dist/app/lib/blocks/editor/root-blocks.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/usePostEditor.d.ts +12 -1
- package/dist/app/lib/blocks/editor/usePostEditor.d.ts.map +1 -0
- package/dist/app/lib/blocks/editor/usePostEditor.js +38 -13
- package/dist/app/lib/blocks/index.d.ts +8 -5
- package/dist/app/lib/blocks/index.d.ts.map +1 -0
- package/dist/app/lib/blocks/index.js +8 -5
- package/dist/app/lib/blocks/inline-editing.d.ts +16 -1
- package/dist/app/lib/blocks/inline-editing.d.ts.map +1 -0
- package/dist/app/lib/blocks/inline-editing.js +14 -1
- package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts +1 -0
- package/dist/app/lib/devtools/components/BreakpointIndicator.d.ts.map +1 -0
- package/dist/app/lib/devtools/components/BreakpointIndicator.js +1 -1
- package/dist/app/lib/devtools/components/DevUI.d.ts +1 -0
- package/dist/app/lib/devtools/components/DevUI.d.ts.map +1 -0
- package/dist/app/lib/devtools/components/DevUI.js +1 -1
- package/dist/app/lib/devtools/components/GridIndicator.d.ts +1 -0
- package/dist/app/lib/devtools/components/GridIndicator.d.ts.map +1 -0
- package/dist/app/lib/devtools/components/GridIndicator.js +1 -1
- package/dist/app/lib/devtools/dev-tools-store.d.ts +1 -0
- package/dist/app/lib/devtools/dev-tools-store.d.ts.map +1 -0
- package/dist/app/lib/devtools/hooks/usePersistState.d.ts +1 -0
- package/dist/app/lib/devtools/hooks/usePersistState.d.ts.map +1 -0
- package/dist/app/lib/devtools/hooks/useTailwind.d.ts +1358 -313
- package/dist/app/lib/devtools/hooks/useTailwind.d.ts.map +1 -0
- package/dist/app/lib/devtools/index.d.ts +1 -0
- package/dist/app/lib/devtools/index.d.ts.map +1 -0
- package/dist/app/lib/devtools/loader.d.ts +2 -1
- package/dist/app/lib/devtools/loader.d.ts.map +1 -0
- package/dist/app/lib/devtools/loader.js +4 -3
- package/dist/app/lib/devtools/tailwind.config.d.ts +1 -0
- package/dist/app/lib/devtools/tailwind.config.d.ts.map +1 -0
- package/dist/app/lib/devtools/useQueryDebug.d.ts +2 -1
- package/dist/app/lib/devtools/useQueryDebug.d.ts.map +1 -0
- package/dist/app/lib/dynamic/dynamic.d.ts +1 -0
- package/dist/app/lib/dynamic/dynamic.d.ts.map +1 -0
- package/dist/app/lib/dynamic/index.d.ts +1 -0
- package/dist/app/lib/dynamic/index.d.ts.map +1 -0
- package/dist/app/lib/hooks/index.d.ts +2 -1
- package/dist/app/lib/hooks/index.d.ts.map +1 -0
- package/dist/app/lib/hooks/index.js +1 -1
- package/dist/app/lib/hooks/{queryUtils.d.ts → query-hooks.d.ts} +8 -2
- package/dist/app/lib/hooks/query-hooks.d.ts.map +1 -0
- package/dist/app/lib/hooks/{queryUtils.js → query-hooks.js} +43 -11
- package/dist/app/lib/hooks/useAppData.d.ts +1 -0
- package/dist/app/lib/hooks/useAppData.d.ts.map +1 -0
- package/dist/app/lib/hooks/useAppData.js +11 -0
- package/dist/app/lib/hooks/useRPC.d.ts +1 -0
- package/dist/app/lib/hooks/useRPC.d.ts.map +1 -0
- package/dist/app/lib/hooks/useRPC.js +0 -1
- package/dist/app/lib/integrations/gravityforms/index.d.ts +3 -0
- package/dist/app/lib/integrations/gravityforms/index.d.ts.map +1 -0
- package/dist/app/lib/integrations/gravityforms/index.js +2 -0
- package/dist/app/lib/integrations/gravityforms/types.d.ts +145 -0
- package/dist/app/lib/integrations/gravityforms/types.d.ts.map +1 -0
- package/dist/app/lib/integrations/gravityforms/types.js +1 -0
- package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts +31 -0
- package/dist/app/lib/integrations/gravityforms/useGravityForm.d.ts.map +1 -0
- package/dist/app/lib/integrations/gravityforms/useGravityForm.js +298 -0
- package/dist/app/lib/internal/finalize-rpc.d.ts +1 -0
- package/dist/app/lib/internal/finalize-rpc.d.ts.map +1 -0
- package/dist/app/lib/internal/index.d.ts +1 -0
- package/dist/app/lib/internal/index.d.ts.map +1 -0
- package/dist/app/lib/internal/internal-store.d.ts +1 -0
- package/dist/app/lib/internal/internal-store.d.ts.map +1 -0
- package/dist/app/lib/internal/read-admin-manifest.d.ts +1 -0
- package/dist/app/lib/internal/read-admin-manifest.d.ts.map +1 -0
- package/dist/app/lib/internal/read-block-manifest.d.ts +2 -0
- package/dist/app/lib/internal/read-block-manifest.d.ts.map +1 -0
- package/dist/app/lib/internal/read-block-manifest.js +7 -0
- package/dist/app/lib/internal/read-view-manifest.d.ts +7 -4
- package/dist/app/lib/internal/read-view-manifest.d.ts.map +1 -0
- package/dist/app/lib/internal/read-view-manifest.js +18 -0
- package/dist/app/lib/legacy-stitches/createStitches.d.ts +8 -7
- package/dist/app/lib/legacy-stitches/createStitches.d.ts.map +1 -0
- package/dist/app/lib/legacy-stitches/index.d.ts +1 -0
- package/dist/app/lib/legacy-stitches/index.d.ts.map +1 -0
- package/dist/app/lib/routing/components/BackButton.d.ts +1 -0
- package/dist/app/lib/routing/components/BackButton.d.ts.map +1 -0
- package/dist/app/lib/routing/components/BrowserRouter.d.ts +7 -1
- package/dist/app/lib/routing/components/BrowserRouter.d.ts.map +1 -0
- package/dist/app/lib/routing/components/BrowserRouter.js +85 -14
- package/dist/app/lib/routing/components/ClientOnly.d.ts +1 -0
- package/dist/app/lib/routing/components/ClientOnly.d.ts.map +1 -0
- package/dist/app/lib/routing/components/ClientOnly.js +3 -3
- package/dist/app/lib/routing/components/Link.d.ts +21 -2
- package/dist/app/lib/routing/components/Link.d.ts.map +1 -0
- package/dist/app/lib/routing/components/Link.js +52 -23
- package/dist/app/lib/routing/components/NativeLinkHandler.d.ts +10 -0
- package/dist/app/lib/routing/components/NativeLinkHandler.d.ts.map +1 -0
- package/dist/app/lib/routing/components/NativeLinkHandler.js +23 -0
- package/dist/app/lib/routing/components/RouteRenderer.d.ts +1 -0
- package/dist/app/lib/routing/components/RouteRenderer.d.ts.map +1 -0
- package/dist/app/lib/routing/components/RouteRenderer.js +14 -1
- package/dist/app/lib/routing/components/SSRRouter.d.ts +3 -0
- package/dist/app/lib/routing/components/SSRRouter.d.ts.map +1 -0
- package/dist/app/lib/routing/components/SSRRouter.js +2 -0
- package/dist/app/lib/routing/components/ScrollRestoration.d.ts +1 -0
- package/dist/app/lib/routing/components/ScrollRestoration.d.ts.map +1 -0
- package/dist/app/lib/routing/context.d.ts +1 -0
- package/dist/app/lib/routing/context.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/{useIsSSR.d.ts → useHydrating.d.ts} +7 -0
- package/dist/app/lib/routing/hooks/useHydrating.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/{useIsSSR.js → useHydrating.js} +13 -3
- package/dist/app/lib/routing/hooks/useRestorableState.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRestorableState.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRestorableState.js +7 -2
- package/dist/app/lib/routing/hooks/useRoute.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRoute.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRouteMeta.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRouteMeta.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRouteTransition.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRouteTransition.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRouter.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRouter.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRouterEvents.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRouterEvents.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useRouterState.d.ts +1 -0
- package/dist/app/lib/routing/hooks/useRouterState.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useSearchParams.d.ts +78 -6
- package/dist/app/lib/routing/hooks/useSearchParams.d.ts.map +1 -0
- package/dist/app/lib/routing/hooks/useSearchParams.js +75 -15
- package/dist/app/lib/routing/index.d.ts +4 -1
- package/dist/app/lib/routing/index.d.ts.map +1 -0
- package/dist/app/lib/routing/index.js +3 -1
- package/dist/app/lib/routing/loader.d.ts +1 -0
- package/dist/app/lib/routing/loader.d.ts.map +1 -0
- package/dist/app/lib/routing/loader.js +1 -1
- package/dist/app/lib/routing/types.d.ts +40 -6
- package/dist/app/lib/routing/types.d.ts.map +1 -0
- package/dist/app/lib/routing/utils.d.ts +2 -0
- package/dist/app/lib/routing/utils.d.ts.map +1 -0
- package/dist/app/lib/routing/utils.js +5 -1
- package/dist/app/lib/runtime/apiConfig.d.ts +5 -0
- package/dist/app/lib/runtime/apiConfig.d.ts.map +1 -0
- package/dist/app/lib/runtime/errorHandling.d.ts +1 -0
- package/dist/app/lib/runtime/errorHandling.d.ts.map +1 -0
- package/dist/app/lib/runtime/index.d.ts +1 -0
- package/dist/app/lib/runtime/index.d.ts.map +1 -0
- package/dist/app/lib/views/defineView.d.ts +2 -1
- package/dist/app/lib/views/defineView.d.ts.map +1 -0
- package/dist/app/lib/views/index.d.ts +1 -0
- package/dist/app/lib/views/index.d.ts.map +1 -0
- package/dist/app/server/index.d.ts +4 -3
- package/dist/app/server/index.d.ts.map +1 -0
- package/dist/app/server/index.js +3 -3
- package/dist/app/server/proxy-wp-admin.d.ts +1 -0
- package/dist/app/server/proxy-wp-admin.d.ts.map +1 -0
- package/dist/app/server/proxy-wp-admin.js +23 -9
- package/dist/app/server/render-ai-page.d.ts +13 -0
- package/dist/app/server/render-ai-page.d.ts.map +1 -0
- package/dist/app/server/render-ai-page.js +102 -0
- package/dist/app/server/render-ssr-page.d.ts +17 -6
- package/dist/app/server/render-ssr-page.d.ts.map +1 -0
- package/dist/app/server/render-ssr-page.js +119 -36
- package/dist/app/server/rpc.d.ts +18 -41
- package/dist/app/server/rpc.d.ts.map +1 -0
- package/dist/app/server/server-context.d.ts +14 -3
- package/dist/app/server/server-context.d.ts.map +1 -0
- package/dist/app/server/server-context.js +204 -21
- package/dist/app/server/server-custom-config.d.ts +3 -0
- package/dist/app/server/server-custom-config.d.ts.map +1 -0
- package/dist/app/server/server-custom-config.js +1 -0
- package/dist/app/server/utils/content-security.d.ts +26 -0
- package/dist/app/server/utils/content-security.d.ts.map +1 -0
- package/dist/app/server/utils/content-security.js +124 -0
- package/dist/app/server/utils/headers.d.ts +1 -0
- package/dist/app/server/utils/headers.d.ts.map +1 -0
- package/dist/app/server/utils/replace-host.d.ts +1 -0
- package/dist/app/server/utils/replace-host.d.ts.map +1 -0
- package/dist/app/server/utils/swr-cache.d.ts +1 -0
- package/dist/app/server/utils/swr-cache.d.ts.map +1 -0
- package/dist/app/utils/APIProvider.d.ts +1 -0
- package/dist/app/utils/APIProvider.d.ts.map +1 -0
- package/dist/app/utils/BlockErrorBoundary.d.ts +1 -0
- package/dist/app/utils/BlockErrorBoundary.d.ts.map +1 -0
- package/dist/app/utils/ErrorMessage.d.ts +1 -0
- package/dist/app/utils/ErrorMessage.d.ts.map +1 -0
- package/dist/app/utils/RouteErrorBoundary.d.ts +2 -0
- package/dist/app/utils/RouteErrorBoundary.d.ts.map +1 -0
- package/dist/app/utils/RouteErrorBoundary.js +3 -0
- package/dist/app/utils/asset-capture.d.ts +1 -0
- package/dist/app/utils/asset-capture.d.ts.map +1 -0
- package/dist/app/utils/hydration-debugger.d.ts +1 -0
- package/dist/app/utils/hydration-debugger.d.ts.map +1 -0
- package/dist/app/utils/query-client.d.ts +1 -0
- package/dist/app/utils/query-client.d.ts.map +1 -0
- package/dist/app/utils/query-monitor.d.ts +27 -0
- package/dist/app/utils/query-monitor.d.ts.map +1 -0
- package/dist/app/utils/query-monitor.js +7 -0
- package/dist/app/utils/trpc-client.d.ts +1 -0
- package/dist/app/utils/trpc-client.d.ts.map +1 -0
- package/dist/app/utils/trpc-client.js +1 -1
- package/dist/app/utils/wp.d.ts +11 -10
- package/dist/app/utils/wp.d.ts.map +1 -0
- package/dist/node/cli/cli-mode.d.ts +1 -0
- package/dist/node/cli/cli-mode.d.ts.map +1 -0
- package/dist/node/cli/cli-worker.d.ts +1 -0
- package/dist/node/cli/cli-worker.d.ts.map +1 -0
- package/dist/node/cli/cli-worker.js +1 -0
- package/dist/node/cli/cli.d.ts +1 -0
- package/dist/node/cli/cli.d.ts.map +1 -0
- package/dist/node/cli/cli.js +100 -11
- package/dist/node/cli/display/CLIApp.d.ts +1 -0
- package/dist/node/cli/display/CLIApp.d.ts.map +1 -0
- package/dist/node/cli/display/boot-cli-app.d.ts +1 -0
- package/dist/node/cli/display/boot-cli-app.d.ts.map +1 -0
- package/dist/node/cli/display/components/Fullscreen.d.ts +1 -0
- package/dist/node/cli/display/components/Fullscreen.d.ts.map +1 -0
- package/dist/node/cli/display/components/LogEntries.d.ts +1 -0
- package/dist/node/cli/display/components/LogEntries.d.ts.map +1 -0
- package/dist/node/cli/display/components/MenuItem.d.ts +1 -0
- package/dist/node/cli/display/components/MenuItem.d.ts.map +1 -0
- package/dist/node/cli/display/components/TextInput.d.ts +1 -0
- package/dist/node/cli/display/components/TextInput.d.ts.map +1 -0
- package/dist/node/cli/display/hooks/useManifest.d.ts +1 -0
- package/dist/node/cli/display/hooks/useManifest.d.ts.map +1 -0
- package/dist/node/cli/display/hooks/useStatefulLog.d.ts +1 -0
- package/dist/node/cli/display/hooks/useStatefulLog.d.ts.map +1 -0
- package/dist/node/cli/display/tools/BlockList.d.ts +1 -0
- package/dist/node/cli/display/tools/BlockList.d.ts.map +1 -0
- package/dist/node/cli/display/tools/CreateBlock.d.ts +1 -0
- package/dist/node/cli/display/tools/CreateBlock.d.ts.map +1 -0
- package/dist/node/cli/display/tools/cli-tool-list.d.ts +1 -0
- package/dist/node/cli/display/tools/cli-tool-list.d.ts.map +1 -0
- package/dist/node/cli/display/tools/cli-tools.d.ts +1 -0
- package/dist/node/cli/display/tools/cli-tools.d.ts.map +1 -0
- package/dist/node/cli/display/util/colors.d.ts +1 -0
- package/dist/node/cli/display/util/colors.d.ts.map +1 -0
- package/dist/node/cli/version.d.ts +2 -1
- package/dist/node/cli/version.d.ts.map +1 -0
- package/dist/node/cli/version.js +1 -1
- package/dist/node/compiler/build-vinxi.d.ts +1 -0
- package/dist/node/compiler/build-vinxi.d.ts.map +1 -0
- package/dist/node/compiler/build-vinxi.js +1 -0
- package/dist/node/compiler/bundler.admin.d.ts +1 -0
- package/dist/node/compiler/bundler.admin.d.ts.map +1 -0
- package/dist/node/compiler/bundler.frontend.d.ts +2 -0
- package/dist/node/compiler/bundler.frontend.d.ts.map +1 -0
- package/dist/node/compiler/bundler.frontend.js +25 -11
- package/dist/node/compiler/cache-config.d.ts +3 -0
- package/dist/node/compiler/cache-config.d.ts.map +1 -0
- package/dist/node/compiler/cache-config.js +16 -0
- package/dist/node/compiler/dev-server.d.ts +4 -1
- package/dist/node/compiler/dev-server.d.ts.map +1 -0
- package/dist/node/compiler/dev-server.js +26 -13
- package/dist/node/compiler/get-vite-config.d.ts +11 -1
- package/dist/node/compiler/get-vite-config.d.ts.map +1 -0
- package/dist/node/compiler/get-vite-config.js +164 -36
- package/dist/node/compiler/vinxi-app.d.ts +1 -0
- package/dist/node/compiler/vinxi-app.d.ts.map +1 -0
- package/dist/node/compiler/vinxi-app.js +56 -39
- package/dist/node/compiler/vinxi-codegen.d.ts +1 -0
- package/dist/node/compiler/vinxi-codegen.d.ts.map +1 -0
- package/dist/node/compiler/vinxi-codegen.js +152 -85
- package/dist/node/graphql/graphql-codegen.d.ts +1 -0
- package/dist/node/graphql/graphql-codegen.d.ts.map +1 -0
- package/dist/node/graphql/graphql-codegen.js +52 -24
- package/dist/node/graphql/graphql-schema-loader.d.ts +1 -0
- package/dist/node/graphql/graphql-schema-loader.d.ts.map +1 -0
- package/dist/node/graphql/plugins/gql-plugin-files.d.ts +3 -1
- package/dist/node/graphql/plugins/gql-plugin-files.d.ts.map +1 -0
- package/dist/node/graphql/plugins/gql-plugin-files.js +3 -2
- package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts +1 -0
- package/dist/node/graphql/plugins/gql-plugin-no-duplicates.d.ts.map +1 -0
- package/dist/node/graphql/plugins/gql-plugin-queries.d.ts +1 -0
- package/dist/node/graphql/plugins/gql-plugin-queries.d.ts.map +1 -0
- package/dist/node/graphql/plugins/gql-plugin-queries.js +1 -1
- package/dist/node/graphql/query-files-loader.d.ts +1 -0
- package/dist/node/graphql/query-files-loader.d.ts.map +1 -0
- package/dist/node/graphql/wp-info-query.d.ts +1 -0
- package/dist/node/graphql/wp-info-query.d.ts.map +1 -0
- package/dist/node/project/config.d.ts +112 -7
- package/dist/node/project/config.d.ts.map +1 -0
- package/dist/node/project/config.js +54 -24
- package/dist/node/project/eddev-build-file.d.ts +1 -0
- package/dist/node/project/eddev-build-file.d.ts.map +1 -0
- package/dist/node/project/eddev-build-file.js +4 -2
- package/dist/node/project/env.d.ts +1 -0
- package/dist/node/project/env.d.ts.map +1 -0
- package/dist/node/project/favicons.d.ts +1 -0
- package/dist/node/project/favicons.d.ts.map +1 -0
- package/dist/node/project/manifest/block-manifest.d.ts +1 -0
- package/dist/node/project/manifest/block-manifest.d.ts.map +1 -0
- package/dist/node/project/manifest/block-manifest.js +7 -2
- package/dist/node/project/manifest/field-manifest.d.ts +1 -0
- package/dist/node/project/manifest/field-manifest.d.ts.map +1 -0
- package/dist/node/project/manifest/manifest.d.ts +1 -0
- package/dist/node/project/manifest/manifest.d.ts.map +1 -0
- package/dist/node/project/manifest/routes-manifest.d.ts +1 -0
- package/dist/node/project/manifest/routes-manifest.d.ts.map +1 -0
- package/dist/node/project/manifest/routes-manifest.js +1 -1
- package/dist/node/project/manifest/view-manifest.d.ts +1 -0
- package/dist/node/project/manifest/view-manifest.d.ts.map +1 -0
- package/dist/node/project/manifest/widget-manifest.d.ts +1 -0
- package/dist/node/project/manifest/widget-manifest.d.ts.map +1 -0
- package/dist/node/project/project.d.ts +4 -0
- package/dist/node/project/project.d.ts.map +1 -0
- package/dist/node/project/project.js +24 -1
- package/dist/node/project/wp-info.d.ts +2 -0
- package/dist/node/project/wp-info.d.ts.map +1 -0
- package/dist/node/storybook/index.d.ts +3 -0
- package/dist/node/storybook/index.d.ts.map +1 -0
- package/dist/node/storybook/index.js +13 -0
- package/dist/node/types/block-type.d.ts +33 -6
- package/dist/node/types/block-type.d.ts.map +1 -0
- package/dist/node/types/block-type.js +3 -1
- package/dist/node/types/view-type.d.ts +1 -0
- package/dist/node/types/view-type.d.ts.map +1 -0
- package/dist/node/utils/fetch-wp.d.ts +1 -0
- package/dist/node/utils/fetch-wp.d.ts.map +1 -0
- package/dist/node/utils/fetch-wp.js +4 -3
- package/dist/node/utils/format-zod-error.d.ts +1 -0
- package/dist/node/utils/format-zod-error.d.ts.map +1 -0
- package/dist/node/utils/fs-codegen.d.ts +2 -0
- package/dist/node/utils/fs-codegen.d.ts.map +1 -0
- package/dist/node/utils/fs-codegen.js +8 -1
- package/dist/node/utils/fs.d.ts +24 -16
- package/dist/node/utils/fs.d.ts.map +1 -0
- package/dist/node/utils/get-repo-info.d.ts +1 -0
- package/dist/node/utils/get-repo-info.d.ts.map +1 -0
- package/dist/node/utils/helpers.d.ts +1 -0
- package/dist/node/utils/helpers.d.ts.map +1 -0
- package/dist/node/utils/highlight-code.d.ts +1 -0
- package/dist/node/utils/highlight-code.d.ts.map +1 -0
- package/dist/node/utils/is-deploying.d.ts +1 -0
- package/dist/node/utils/is-deploying.d.ts.map +1 -0
- package/dist/node/utils/report-builder.d.ts +7 -6
- package/dist/node/utils/report-builder.d.ts.map +1 -0
- package/dist/node/utils/self-signed-cert.d.ts +5 -0
- package/dist/node/utils/self-signed-cert.d.ts.map +1 -0
- package/dist/node/utils/self-signed-cert.js +28 -4
- package/dist/node/utils/stateful-log.d.ts +1 -0
- package/dist/node/utils/stateful-log.d.ts.map +1 -0
- package/dist/node/utils/ts-export-extractor.d.ts +1 -0
- package/dist/node/utils/ts-export-extractor.d.ts.map +1 -0
- package/dist/node/utils/watch-file-tree.d.ts +1 -0
- package/dist/node/utils/watch-file-tree.d.ts.map +1 -0
- package/package.json +34 -24
- package/tsconfig.app.json +8 -3
- package/tsconfig.node.json +1 -0
- package/types.env.d.ts +3 -0
- package/types.meta.d.ts +449 -136
- package/dist/app/server/defineRouter.d.ts +0 -2
- package/dist/app/server/defineRouter.js +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useMemo, useRef, useState, useTransition } from "react";
|
|
2
|
+
import { useEffect, useMemo, useRef, useState, useTransition, startTransition as startTransitionRaw, } from "react";
|
|
3
3
|
import { isEqual, isRelative, parseURL, resolveURL } from "ufo";
|
|
4
4
|
import { clientMetaTags, RouterContext, RouterStateContext } from "../context.js";
|
|
5
5
|
import { $routeMetaStore } from "../hooks/useRouteMeta.js";
|
|
@@ -66,18 +66,19 @@ function historyStateForRoute(route) {
|
|
|
66
66
|
state: route.returnState,
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
|
-
let
|
|
69
|
+
let clientRouter = null;
|
|
70
|
+
export function getClientRouter() {
|
|
71
|
+
return clientRouter;
|
|
72
|
+
}
|
|
70
73
|
export function BrowserRouter(props) {
|
|
71
74
|
const pendingRoute = useRef(null);
|
|
72
75
|
const [transitioning, startTransition] = useTransition();
|
|
76
|
+
const pendingNavigationClick = useRef(null);
|
|
73
77
|
const [routerState, setRouterState] = useState(() => ({
|
|
74
78
|
activeRoute: initialRoute,
|
|
75
79
|
history: [initialRoute],
|
|
76
80
|
blockers: [],
|
|
77
81
|
}));
|
|
78
|
-
if (lastRouterState !== routerState) {
|
|
79
|
-
lastRouterState = routerState;
|
|
80
|
-
}
|
|
81
82
|
const { internals, api } = useMemo(() => {
|
|
82
83
|
let subscribers = new Set();
|
|
83
84
|
let state = routerState;
|
|
@@ -96,8 +97,19 @@ export function BrowserRouter(props) {
|
|
|
96
97
|
document.title = title;
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
|
-
|
|
100
|
+
startTransitionRaw(() => {
|
|
101
|
+
setRouterState(state);
|
|
102
|
+
});
|
|
100
103
|
};
|
|
104
|
+
// If a dynamic compojnent fails to load during a page transition, we need to reload the page
|
|
105
|
+
subscribers.add((event) => {
|
|
106
|
+
if (event.type === "error:component-load-failed") {
|
|
107
|
+
if (state?.pendingRoute) {
|
|
108
|
+
console.warn("Failed to load route component. May be a deployment mismatch.");
|
|
109
|
+
window.location.href = state.pendingRoute.uri;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
});
|
|
101
113
|
const internals = {
|
|
102
114
|
transitionEnded: null,
|
|
103
115
|
updateRoute: null,
|
|
@@ -189,6 +201,7 @@ export function BrowserRouter(props) {
|
|
|
189
201
|
emitEvent({
|
|
190
202
|
type: "navigate:start",
|
|
191
203
|
link,
|
|
204
|
+
linkData: args.linkData,
|
|
192
205
|
currentRoute: currentRoute,
|
|
193
206
|
hasPreloadedData: hasRouteData,
|
|
194
207
|
goingBack: !!args.goingBack,
|
|
@@ -199,7 +212,13 @@ export function BrowserRouter(props) {
|
|
|
199
212
|
if (cancelled)
|
|
200
213
|
return;
|
|
201
214
|
const data = await loader.loadRouteData(parseHrefPath(args.url)).catch((err) => {
|
|
202
|
-
emitEvent({
|
|
215
|
+
emitEvent({
|
|
216
|
+
type: "error",
|
|
217
|
+
url: args.url,
|
|
218
|
+
error: err,
|
|
219
|
+
critical: true,
|
|
220
|
+
linkData: args.linkData,
|
|
221
|
+
});
|
|
203
222
|
return {
|
|
204
223
|
view: "_error",
|
|
205
224
|
viewType: "react",
|
|
@@ -228,6 +247,7 @@ export function BrowserRouter(props) {
|
|
|
228
247
|
component: lazyComponent,
|
|
229
248
|
returnState: args.restoreState ?? {},
|
|
230
249
|
meta: getRouteMeta(data),
|
|
250
|
+
linkData: args.linkData,
|
|
231
251
|
});
|
|
232
252
|
setState({
|
|
233
253
|
pendingRoute: route,
|
|
@@ -237,12 +257,14 @@ export function BrowserRouter(props) {
|
|
|
237
257
|
currentRoute,
|
|
238
258
|
loadedRoute: route,
|
|
239
259
|
link,
|
|
260
|
+
linkData: args.linkData,
|
|
240
261
|
});
|
|
241
262
|
emitEvent({
|
|
242
263
|
type: "navigate:will-change",
|
|
243
264
|
currentRoute,
|
|
244
265
|
loadedRoute: route,
|
|
245
266
|
link,
|
|
267
|
+
linkData: args.linkData,
|
|
246
268
|
});
|
|
247
269
|
internals.transitionEnded = () => {
|
|
248
270
|
internals.transitionEnded = null;
|
|
@@ -255,8 +277,18 @@ export function BrowserRouter(props) {
|
|
|
255
277
|
currentRoute: route,
|
|
256
278
|
lastRoute: currentRoute,
|
|
257
279
|
link,
|
|
280
|
+
linkData: args.linkData,
|
|
258
281
|
});
|
|
259
282
|
$routeMetaStore.data = route.meta;
|
|
283
|
+
pendingNavigationClick.current = null;
|
|
284
|
+
// Update the 'Edit Page' button, if there is one
|
|
285
|
+
if (route.meta.editLink) {
|
|
286
|
+
const button = document.querySelector("#wp-admin-bar-edit a");
|
|
287
|
+
if (button) {
|
|
288
|
+
button.setAttribute("href", route.meta.editLink);
|
|
289
|
+
button.innerHTML = "Edit Page";
|
|
290
|
+
}
|
|
291
|
+
}
|
|
260
292
|
};
|
|
261
293
|
startTransition(() => {
|
|
262
294
|
pendingRoute.current = route;
|
|
@@ -268,11 +300,13 @@ export function BrowserRouter(props) {
|
|
|
268
300
|
}
|
|
269
301
|
const api = {
|
|
270
302
|
loader: loader,
|
|
271
|
-
|
|
303
|
+
hostname: window?._PAGE_DATA?.hostname,
|
|
304
|
+
async navigate(url, args) {
|
|
272
305
|
doRouteTransition({
|
|
273
306
|
url: url,
|
|
274
307
|
shouldPush: true,
|
|
275
308
|
goingBack: false,
|
|
309
|
+
linkData: args?.linkData,
|
|
276
310
|
});
|
|
277
311
|
},
|
|
278
312
|
getState() {
|
|
@@ -302,7 +336,7 @@ export function BrowserRouter(props) {
|
|
|
302
336
|
});
|
|
303
337
|
}
|
|
304
338
|
catch (err) {
|
|
305
|
-
emitEvent({ type: "error", error: err, critical: false });
|
|
339
|
+
emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
|
|
306
340
|
}
|
|
307
341
|
},
|
|
308
342
|
async preload(url) {
|
|
@@ -320,7 +354,7 @@ export function BrowserRouter(props) {
|
|
|
320
354
|
}
|
|
321
355
|
}
|
|
322
356
|
catch (err) {
|
|
323
|
-
emitEvent({ type: "error", error: err, critical: false });
|
|
357
|
+
emitEvent({ type: "error", error: err, critical: false, linkData: undefined });
|
|
324
358
|
}
|
|
325
359
|
},
|
|
326
360
|
subscribe(fn) {
|
|
@@ -329,9 +363,37 @@ export function BrowserRouter(props) {
|
|
|
329
363
|
subscribers.delete(fn);
|
|
330
364
|
};
|
|
331
365
|
},
|
|
332
|
-
handleClickEvent(e, originalHref, preferBack) {
|
|
333
|
-
const { mode, href } = getLinkHandlerMode(e, originalHref, state.activeRoute);
|
|
334
|
-
|
|
366
|
+
handleClickEvent(e, originalHref, preferBack, eventTarget, linkData) {
|
|
367
|
+
const { mode, href, isSameUrl } = getLinkHandlerMode(e, originalHref, state.activeRoute);
|
|
368
|
+
let cancelled = false;
|
|
369
|
+
// If the same link has only just been clicked very recently, ignore it.
|
|
370
|
+
// Likely this is a double-click, or the page has taken a bit longer to load than the user expected.
|
|
371
|
+
if (pendingNavigationClick.current && pendingNavigationClick.current.href === href) {
|
|
372
|
+
const pendingAge = Date.now() - pendingNavigationClick.current.startTime;
|
|
373
|
+
if (pendingAge < 1000) {
|
|
374
|
+
e.preventDefault();
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
pendingNavigationClick.current = { startTime: Date.now(), href: href };
|
|
380
|
+
}
|
|
381
|
+
if (href) {
|
|
382
|
+
emitEvent({
|
|
383
|
+
type: "clicked",
|
|
384
|
+
currentRoute: getActiveRoute(),
|
|
385
|
+
link: parseRouteLink(href),
|
|
386
|
+
linkData,
|
|
387
|
+
mode,
|
|
388
|
+
href,
|
|
389
|
+
isSameUrl,
|
|
390
|
+
target: (eventTarget || e.currentTarget || e.target),
|
|
391
|
+
cancel() {
|
|
392
|
+
cancelled = true;
|
|
393
|
+
},
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
if (mode === "ignore" || cancelled) {
|
|
335
397
|
e.preventDefault();
|
|
336
398
|
return;
|
|
337
399
|
}
|
|
@@ -350,7 +412,9 @@ export function BrowserRouter(props) {
|
|
|
350
412
|
}
|
|
351
413
|
}
|
|
352
414
|
}
|
|
353
|
-
api.navigate(href
|
|
415
|
+
api.navigate(href, {
|
|
416
|
+
linkData,
|
|
417
|
+
});
|
|
354
418
|
}
|
|
355
419
|
},
|
|
356
420
|
emitEvent,
|
|
@@ -423,5 +487,12 @@ export function BrowserRouter(props) {
|
|
|
423
487
|
window.removeEventListener("popstate", onPopState);
|
|
424
488
|
};
|
|
425
489
|
}, []);
|
|
490
|
+
useEffect(() => {
|
|
491
|
+
props.onReady?.();
|
|
492
|
+
}, []);
|
|
493
|
+
clientRouter = {
|
|
494
|
+
state: routerState,
|
|
495
|
+
api,
|
|
496
|
+
};
|
|
426
497
|
return (_jsx(RouterContext.Provider, { value: api, children: _jsx(RouterStateContext.Provider, { value: routerState, children: _jsx(AppRenderer, {}) }) }));
|
|
427
498
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientOnly.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/ClientOnly.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAGnD,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,oHAMtC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment } from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useHydrating } from "../hooks/useHydrating.js";
|
|
4
4
|
/**
|
|
5
5
|
* Renders children, but only on the client.
|
|
6
6
|
*
|
|
7
7
|
* The optional 'fallback' prop can be used to show a loading state or placeholder content while the client bundle is loading.
|
|
8
8
|
*/
|
|
9
9
|
export function ClientOnly(props) {
|
|
10
|
-
const mounted =
|
|
11
|
-
if (
|
|
10
|
+
const mounted = useHydrating();
|
|
11
|
+
if (mounted)
|
|
12
12
|
return props.fallback ?? null;
|
|
13
13
|
return _jsx(Fragment, { children: props.children });
|
|
14
14
|
}
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
import { ComponentPropsWithRef, ElementType, ReactElement } from "react";
|
|
2
|
-
|
|
1
|
+
import { ComponentPropsWithRef, ElementType, MouseEvent, ReactElement } from "react";
|
|
2
|
+
import { LinkClickData } from "../types.js";
|
|
3
|
+
type Props<T extends ElementType = "a"> = NoInfer<Omit<ComponentPropsWithRef<T>, "href" | "target">> & {
|
|
3
4
|
href?: string | null;
|
|
4
5
|
target?: string | null;
|
|
5
6
|
as?: T;
|
|
6
7
|
preferBack?: boolean | "exact";
|
|
8
|
+
linkData?: LinkClickData;
|
|
7
9
|
};
|
|
10
|
+
export declare function useLinkProps<T extends ElementType = "a">(props: Exclude<Props<T>, "as">, ref?: React.Ref<HTMLAnchorElement>): ({
|
|
11
|
+
ref: import("react").Ref<HTMLAnchorElement> | undefined;
|
|
12
|
+
"data-active": boolean | "path" | "query" | "exact" | undefined;
|
|
13
|
+
"data-child-active": boolean | undefined;
|
|
14
|
+
"data-pending": "path" | "query" | "exact" | undefined;
|
|
15
|
+
} & Exclude<Props<T>, "as"> & {
|
|
16
|
+
href: string;
|
|
17
|
+
onMouseEnter: (e: MouseEvent) => void;
|
|
18
|
+
onPointerDown: (e: PointerEvent) => void;
|
|
19
|
+
onClick: (e: MouseEvent) => void;
|
|
20
|
+
}) | ({
|
|
21
|
+
ref: import("react").Ref<HTMLAnchorElement> | undefined;
|
|
22
|
+
} & Exclude<Props<T>, "as"> & {
|
|
23
|
+
href: string | undefined;
|
|
24
|
+
onClick: (e: MouseEvent) => void;
|
|
25
|
+
});
|
|
8
26
|
export declare const Link: <T extends ElementType = "a">(props: Props<T>) => ReactElement;
|
|
9
27
|
/**
|
|
10
28
|
* Provides information about the given href parameter, such as whether it is active, whether a child page is active, or whether it is loading.
|
|
@@ -25,3 +43,4 @@ export declare function useLinkState(href: string): {
|
|
|
25
43
|
pending: "path" | "query" | "exact" | undefined;
|
|
26
44
|
};
|
|
27
45
|
export {};
|
|
46
|
+
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAsC,MAAM,OAAO,CAAA;AAIxH,OAAO,EAAE,aAAa,EAAc,MAAM,aAAa,CAAA;AAKvD,KAAK,KAAK,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG;IACrG,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,EAAE,CAAC,EAAE,CAAC,CAAA;IACN,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAA;CACzB,CAAA;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EACtD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAC9B,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC;;;;;;;sBAuBd,UAAU;uBAOT,YAAY;iBAOlB,UAAU;;;;;iBA9BR,UAAU;GAwC5B;AAED,eAAO,MAAM,IAAI,EAIX,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,CAAA;AAKpE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM;;;;;;;;;;;;EA6BxC"}
|
|
@@ -1,32 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { forwardRef, useMemo } from "react";
|
|
1
|
+
import { createElement, forwardRef, useMemo } from "react";
|
|
3
2
|
import { parseURL, resolveURL, withoutTrailingSlash } from "ufo";
|
|
4
|
-
import {
|
|
3
|
+
import { useHydrating } from "../hooks/useHydrating.js";
|
|
5
4
|
import { useRouter } from "../hooks/useRouter.js";
|
|
6
|
-
import { addTrailingSlash, isSameOrigin } from "../utils.js";
|
|
5
|
+
import { addTrailingSlash, getLinkHandlerMode, isSameOrigin } from "../utils.js";
|
|
7
6
|
import { useRoute } from "../hooks/useRoute.js";
|
|
8
7
|
import { useRouterState } from "../hooks/useRouterState.js";
|
|
9
|
-
export
|
|
10
|
-
const Comp = as || "a";
|
|
8
|
+
export function useLinkProps(props, ref) {
|
|
11
9
|
if (env.admin) {
|
|
12
|
-
return
|
|
10
|
+
return {
|
|
11
|
+
ref: ref,
|
|
12
|
+
...props,
|
|
13
|
+
href: props.href ?? undefined,
|
|
14
|
+
onClick: (e) => {
|
|
13
15
|
props.onClick?.(e);
|
|
14
16
|
e.preventDefault();
|
|
15
|
-
}
|
|
17
|
+
},
|
|
18
|
+
};
|
|
16
19
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const router = useRouter();
|
|
21
|
+
const state = useLinkState(props.href ?? "");
|
|
22
|
+
const finalProps = {
|
|
23
|
+
ref: ref,
|
|
24
|
+
"data-active": state.active ?? undefined,
|
|
25
|
+
"data-child-active": state.childActive ?? undefined,
|
|
26
|
+
"data-pending": state.pending ?? undefined,
|
|
27
|
+
...props,
|
|
28
|
+
href: addTrailingSlash(props.href),
|
|
29
|
+
onMouseEnter: (e) => {
|
|
30
|
+
props.onMouseEnter?.(e);
|
|
31
|
+
const mode = getLinkHandlerMode(e, props.href);
|
|
32
|
+
if (mode.mode === "navigate") {
|
|
24
33
|
router.preload(props.href);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
onPointerDown: (e) => {
|
|
37
|
+
props.onPointerDown?.(e);
|
|
38
|
+
const mode = getLinkHandlerMode(e, props.href);
|
|
39
|
+
if (mode.mode === "navigate") {
|
|
40
|
+
router.preload(props.href);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
onClick: (e) => {
|
|
44
|
+
props.onClick?.(e);
|
|
45
|
+
router.handleClickEvent(e, props.href ?? undefined, props.preferBack, undefined, props.linkData);
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
delete finalProps.preferBack;
|
|
49
|
+
delete finalProps.linkData;
|
|
50
|
+
return finalProps;
|
|
51
|
+
}
|
|
52
|
+
export const Link = forwardRef(({ as, ...props }, ref) => {
|
|
53
|
+
const Comp = as || "a";
|
|
54
|
+
const finalProps = useLinkProps(props, ref);
|
|
55
|
+
return createElement(Comp, finalProps);
|
|
30
56
|
});
|
|
31
57
|
// @ts-ignore
|
|
32
58
|
Link.displayName = "Link";
|
|
@@ -38,7 +64,7 @@ Link.displayName = "Link";
|
|
|
38
64
|
export function useLinkState(href) {
|
|
39
65
|
const route = useRoute();
|
|
40
66
|
const pendingRoute = useRouterState((r) => r.pendingRoute);
|
|
41
|
-
const isSSR =
|
|
67
|
+
const isSSR = useHydrating();
|
|
42
68
|
const state = useMemo(() => {
|
|
43
69
|
// If we're in SSR mode, do a quick and dirty check, which relies on the href being relative.
|
|
44
70
|
if (isSSR) {
|
|
@@ -54,8 +80,8 @@ export function useLinkState(href) {
|
|
|
54
80
|
}
|
|
55
81
|
const hrefUrl = parseURL(resolveURL(href));
|
|
56
82
|
const active = route ? compareUri(route, hrefUrl) : undefined;
|
|
57
|
-
const childActive = !active && route ? isSubpath(hrefUrl.pathname, route.pathname) : undefined;
|
|
58
|
-
const pending = pendingRoute ? compareUri(pendingRoute, hrefUrl) : undefined;
|
|
83
|
+
const childActive = !active && route ? isSubpath(hrefUrl.pathname, route.pathname) || undefined : undefined;
|
|
84
|
+
const pending = pendingRoute ? compareUri(pendingRoute, hrefUrl) || undefined : undefined;
|
|
59
85
|
return {
|
|
60
86
|
active,
|
|
61
87
|
childActive,
|
|
@@ -83,6 +109,9 @@ function compareUri(route, href) {
|
|
|
83
109
|
}
|
|
84
110
|
}
|
|
85
111
|
function isSubpath(parentPath, childPath) {
|
|
112
|
+
if (parentPath === "/" || childPath === "/") {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
86
115
|
if (withoutTrailingSlash(parentPath) === withoutTrailingSlash(childPath)) {
|
|
87
116
|
return false;
|
|
88
117
|
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLProps, JSX } from "react";
|
|
2
|
+
type Props<T extends keyof JSX.IntrinsicElements> = {
|
|
3
|
+
as?: T;
|
|
4
|
+
} & HTMLProps<T>;
|
|
5
|
+
/**
|
|
6
|
+
* Use this component to wrap any HTML element that contains <a> tags that are not already handled by the router.
|
|
7
|
+
*/
|
|
8
|
+
export declare function NativeLinkHandler<T extends keyof JSX.IntrinsicElements = "div">({ as, ...props }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=NativeLinkHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeLinkHandler.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/NativeLinkHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkB,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAGtD,KAAK,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,IAAI;IAClD,EAAE,CAAC,EAAE,CAAC,CAAA;CACP,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;AAEhB;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,2CAqB1G"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRouter } from "../hooks/useRouter";
|
|
3
|
+
/**
|
|
4
|
+
* Use this component to wrap any HTML element that contains <a> tags that are not already handled by the router.
|
|
5
|
+
*/
|
|
6
|
+
export function NativeLinkHandler({ as, ...props }) {
|
|
7
|
+
const handleClickEvent = useRouter((r) => r.handleClickEvent);
|
|
8
|
+
const Comp = (as ?? "div");
|
|
9
|
+
return (_jsx(Comp, { ...props, onClick: (e) => {
|
|
10
|
+
if (props.onClick)
|
|
11
|
+
props.onClick(e);
|
|
12
|
+
if (e.target instanceof HTMLAnchorElement) {
|
|
13
|
+
const link = e.target;
|
|
14
|
+
handleClickEvent?.(e, link.href, false, link);
|
|
15
|
+
}
|
|
16
|
+
else if (e.target instanceof HTMLElement) {
|
|
17
|
+
const link = e.target.closest("a");
|
|
18
|
+
if (link) {
|
|
19
|
+
handleClickEvent?.(e, link.href, false, link);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
} }));
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RouteRenderer.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/RouteRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAOxC,eAAO,MAAM,WAAW,oFAatB,CAAA;AAEF,wBAAgB,SAAS,4CAGxB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,2CA8BxD;yBA9Be,YAAY"}
|
|
@@ -21,9 +21,22 @@ export function RouteDisplay(props) {
|
|
|
21
21
|
if (!Component) {
|
|
22
22
|
console.error("No component for route");
|
|
23
23
|
}
|
|
24
|
+
const router = useRouter();
|
|
24
25
|
return useMemo(() => {
|
|
25
26
|
let child = !!Component && _jsx(Component, { ...props.route.props });
|
|
26
|
-
|
|
27
|
+
if (router.isAI) {
|
|
28
|
+
child = _jsx("div", { id: "ai-page-contents", children: child });
|
|
29
|
+
}
|
|
30
|
+
return (_jsx(RouteErrorBoundary, { route: props.route, onError: (error, errorInfo) => {
|
|
31
|
+
if (env.client) {
|
|
32
|
+
if (error.message.includes("Failed to fetch dynamically imported module")) {
|
|
33
|
+
router.emitEvent({
|
|
34
|
+
type: "error:component-load-failed",
|
|
35
|
+
error,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}, children: _jsx(RouteItemContext.Provider, { value: props.route, children: child }) }));
|
|
27
40
|
}, [Component, props.route, props.route]);
|
|
28
41
|
}
|
|
29
42
|
RouteDisplay.displayName = "RouteDisplay";
|
|
@@ -2,8 +2,11 @@ import { PropsWithChildren } from "react";
|
|
|
2
2
|
import { RouteLoader } from "../loader.js";
|
|
3
3
|
import { RouteState } from "../types.js";
|
|
4
4
|
type Props = PropsWithChildren<{
|
|
5
|
+
hostname?: string;
|
|
5
6
|
route: RouteState;
|
|
6
7
|
loader: RouteLoader;
|
|
8
|
+
isAI?: boolean;
|
|
7
9
|
}>;
|
|
8
10
|
export declare function SSRRouter(props: Props): import("react/jsx-runtime").JSX.Element;
|
|
9
11
|
export {};
|
|
12
|
+
//# sourceMappingURL=SSRRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SSRRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/SSRRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAY,MAAM,OAAO,CAAA;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAGxC,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,WAAW,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAC,CAAA;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,2CAiBrC"}
|
|
@@ -7,6 +7,8 @@ export function SSRRouter(props) {
|
|
|
7
7
|
const router = useRouter();
|
|
8
8
|
const routerState = useRouterState();
|
|
9
9
|
router.loader = props.loader;
|
|
10
|
+
router.hostname = props.hostname;
|
|
11
|
+
router.isAI = props.isAI;
|
|
10
12
|
routerState.history = [props.route];
|
|
11
13
|
routerState.activeRoute = props.route;
|
|
12
14
|
return (_jsx(RouterContext.Provider, { value: router, children: _jsx(RouterStateContext.Provider, { value: routerState, children: _jsx(AppRenderer, {}) }) }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollRestoration.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/components/ScrollRestoration.tsx"],"names":[],"mappings":"AAEA,KAAK,KAAK,GAAG;IACX,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,KAAK,IAAI,CAAA;IACxF,4CAA4C;IAC5C,SAAS,CAAC,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,QAiC7C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/app/lib/routing/context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAc,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAkBhF,eAAO,MAAM,aAAa,oCAgBxB,CAAA;AAEF,eAAO,MAAM,kBAAkB,yCAI7B,CAAA;AAEF,eAAO,MAAM,gBAAgB,+EAAwC,CAAA;AAErE,eAAO,MAAM,cAAc;UACX,IAAI,GAAG,YAAY,EAAE;sBACjB,YAAY,EAAE;CAGhC,CAAA"}
|
|
@@ -5,4 +5,11 @@
|
|
|
5
5
|
*
|
|
6
6
|
* On the client, this hook will return `true` once, after hydration, and then switch to `false`.
|
|
7
7
|
*/
|
|
8
|
+
export declare function useHydrating(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Alias of useHydrating (was renamed)
|
|
11
|
+
* @deprecated
|
|
12
|
+
* @see useHydrating
|
|
13
|
+
*/
|
|
8
14
|
export declare function useIsSSR(): boolean;
|
|
15
|
+
//# sourceMappingURL=useHydrating.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHydrating.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useHydrating.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,YAAY,YAe3B;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,YAEvB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEffect, useState } from "react";
|
|
1
|
+
import { startTransition, useEffect, useState } from "react";
|
|
2
2
|
let isSSR = true;
|
|
3
3
|
/**
|
|
4
4
|
* Use this function to help with SSR edge-cases.
|
|
@@ -7,12 +7,14 @@ let isSSR = true;
|
|
|
7
7
|
*
|
|
8
8
|
* On the client, this hook will return `true` once, after hydration, and then switch to `false`.
|
|
9
9
|
*/
|
|
10
|
-
export function
|
|
10
|
+
export function useHydrating() {
|
|
11
11
|
const [value, setValue] = useState(isSSR);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
if (!isSSR)
|
|
14
14
|
return;
|
|
15
|
-
|
|
15
|
+
startTransition(() => {
|
|
16
|
+
setValue(false);
|
|
17
|
+
});
|
|
16
18
|
const timer = setTimeout(() => {
|
|
17
19
|
isSSR = false;
|
|
18
20
|
}, 5000);
|
|
@@ -20,3 +22,11 @@ export function useIsSSR() {
|
|
|
20
22
|
}, []);
|
|
21
23
|
return value;
|
|
22
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Alias of useHydrating (was renamed)
|
|
27
|
+
* @deprecated
|
|
28
|
+
* @see useHydrating
|
|
29
|
+
*/
|
|
30
|
+
export function useIsSSR() {
|
|
31
|
+
return useHydrating();
|
|
32
|
+
}
|
|
@@ -4,3 +4,4 @@ import { Dispatch } from "react";
|
|
|
4
4
|
* You must pass a unique ID as an additional first parameter to ensure the state is restored correctly.
|
|
5
5
|
*/
|
|
6
6
|
export declare function useRestorableState<T>(key: string, fallback: T): [T, Dispatch<T>];
|
|
7
|
+
//# sourceMappingURL=useRestorableState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRestorableState.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRestorableState.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA0C,MAAM,OAAO,CAAA;AAIxE;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAkBhF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
1
|
+
import { startTransition, useCallback, useState } from "react";
|
|
2
2
|
import { useRouterEvents } from "./useRouterEvents.js";
|
|
3
3
|
import { useRoute } from "./useRoute.js";
|
|
4
4
|
/**
|
|
@@ -9,10 +9,15 @@ export function useRestorableState(key, fallback) {
|
|
|
9
9
|
const route = useRoute();
|
|
10
10
|
const initial = route.returnState?.[key] ?? fallback;
|
|
11
11
|
const [state, setState] = useState(initial);
|
|
12
|
+
const dispatch = useCallback((value) => {
|
|
13
|
+
startTransition(() => {
|
|
14
|
+
setState(value);
|
|
15
|
+
});
|
|
16
|
+
}, []);
|
|
12
17
|
useRouterEvents((event) => {
|
|
13
18
|
if (event.type === "capture-restorable-state") {
|
|
14
19
|
event.state[key] = state;
|
|
15
20
|
}
|
|
16
21
|
});
|
|
17
|
-
return [state,
|
|
22
|
+
return [state, dispatch];
|
|
18
23
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRoute.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRoute.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,UAAU,CAErC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CAOxG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteMeta.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouteMeta.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,eAAe;UACd,SAAS;CACrB,CAAA;AAEF,wBAAgB,YAAY,IAGf,SAAS,CACrB"}
|
|
@@ -2,3 +2,4 @@ import type { RouteState } from "../types.js";
|
|
|
2
2
|
type TransitionFunction = (currentRoute: RouteState, nextRoute: RouteState) => void | Promise<any | void>;
|
|
3
3
|
export declare function useRouteTransition(func: TransitionFunction): void;
|
|
4
4
|
export {};
|
|
5
|
+
//# sourceMappingURL=useRouteTransition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouteTransition.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouteTransition.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,KAAK,kBAAkB,GAAG,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AAEzG,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,QAe1D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouter.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouter.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,wBAAgB,SAAS,CAAC,CAAC,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,CAO1E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRouterEvents.d.ts","sourceRoot":"","sources":["../../../../../src/app/lib/routing/hooks/useRouterEvents.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,wBAAgB,eAAe,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,QAWpE"}
|