@rangojs/router 0.0.0-experimental.48 → 0.0.0-experimental.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__internal.d.ts +83 -0
- package/dist/__internal.d.ts.map +1 -0
- package/dist/__internal.js +19 -0
- package/dist/__internal.js.map +1 -0
- package/dist/__mocks__/version.d.ts +7 -0
- package/dist/__mocks__/version.d.ts.map +1 -0
- package/dist/__mocks__/version.js +7 -0
- package/dist/__mocks__/version.js.map +1 -0
- package/dist/__tests__/client-href.test.d.ts +2 -0
- package/dist/__tests__/client-href.test.d.ts.map +1 -0
- package/dist/__tests__/client-href.test.js +74 -0
- package/dist/__tests__/client-href.test.js.map +1 -0
- package/dist/__tests__/component-utils.test.d.ts +2 -0
- package/dist/__tests__/component-utils.test.d.ts.map +1 -0
- package/dist/__tests__/component-utils.test.js +51 -0
- package/dist/__tests__/component-utils.test.js.map +1 -0
- package/dist/__tests__/event-controller.test.d.ts +2 -0
- package/dist/__tests__/event-controller.test.d.ts.map +1 -0
- package/dist/__tests__/event-controller.test.js +538 -0
- package/dist/__tests__/event-controller.test.js.map +1 -0
- package/dist/__tests__/helpers/route-tree.d.ts +118 -0
- package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
- package/dist/__tests__/helpers/route-tree.js +374 -0
- package/dist/__tests__/helpers/route-tree.js.map +1 -0
- package/dist/__tests__/match-result.test.d.ts +2 -0
- package/dist/__tests__/match-result.test.d.ts.map +1 -0
- package/dist/__tests__/match-result.test.js +154 -0
- package/dist/__tests__/match-result.test.js.map +1 -0
- package/dist/__tests__/navigation-store.test.d.ts +2 -0
- package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
- package/dist/__tests__/navigation-store.test.js +440 -0
- package/dist/__tests__/navigation-store.test.js.map +1 -0
- package/dist/__tests__/partial-update.test.d.ts +2 -0
- package/dist/__tests__/partial-update.test.d.ts.map +1 -0
- package/dist/__tests__/partial-update.test.js +1009 -0
- package/dist/__tests__/partial-update.test.js.map +1 -0
- package/dist/__tests__/reverse-types.test.d.ts +8 -0
- package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
- package/dist/__tests__/reverse-types.test.js +656 -0
- package/dist/__tests__/reverse-types.test.js.map +1 -0
- package/dist/__tests__/route-definition.test.d.ts +2 -0
- package/dist/__tests__/route-definition.test.d.ts.map +1 -0
- package/dist/__tests__/route-definition.test.js +55 -0
- package/dist/__tests__/route-definition.test.js.map +1 -0
- package/dist/__tests__/router-helpers.test.d.ts +2 -0
- package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
- package/dist/__tests__/router-helpers.test.js +377 -0
- package/dist/__tests__/router-helpers.test.js.map +1 -0
- package/dist/__tests__/router-integration-2.test.d.ts +2 -0
- package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
- package/dist/__tests__/router-integration-2.test.js +426 -0
- package/dist/__tests__/router-integration-2.test.js.map +1 -0
- package/dist/__tests__/router-integration.test.d.ts +2 -0
- package/dist/__tests__/router-integration.test.d.ts.map +1 -0
- package/dist/__tests__/router-integration.test.js +1051 -0
- package/dist/__tests__/router-integration.test.js.map +1 -0
- package/dist/__tests__/search-params.test.d.ts +5 -0
- package/dist/__tests__/search-params.test.d.ts.map +1 -0
- package/dist/__tests__/search-params.test.js +306 -0
- package/dist/__tests__/search-params.test.js.map +1 -0
- package/dist/__tests__/segment-system.test.d.ts +2 -0
- package/dist/__tests__/segment-system.test.d.ts.map +1 -0
- package/dist/__tests__/segment-system.test.js +627 -0
- package/dist/__tests__/segment-system.test.js.map +1 -0
- package/dist/__tests__/static-handler-types.test.d.ts +8 -0
- package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
- package/dist/__tests__/static-handler-types.test.js +63 -0
- package/dist/__tests__/static-handler-types.test.js.map +1 -0
- package/dist/__tests__/urls.test.d.ts +2 -0
- package/dist/__tests__/urls.test.d.ts.map +1 -0
- package/dist/__tests__/urls.test.js +421 -0
- package/dist/__tests__/urls.test.js.map +1 -0
- package/dist/__tests__/use-mount.test.d.ts +2 -0
- package/dist/__tests__/use-mount.test.d.ts.map +1 -0
- package/dist/__tests__/use-mount.test.js +35 -0
- package/dist/__tests__/use-mount.test.js.map +1 -0
- package/dist/bin/rango.d.ts +2 -0
- package/dist/bin/rango.d.ts.map +1 -0
- package/dist/bin/rango.js.map +1 -0
- package/dist/browser/event-controller.d.ts +191 -0
- package/dist/browser/event-controller.d.ts.map +1 -0
- package/dist/browser/event-controller.js +559 -0
- package/dist/browser/event-controller.js.map +1 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +14 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/link-interceptor.d.ts +38 -0
- package/dist/browser/link-interceptor.d.ts.map +1 -0
- package/dist/browser/link-interceptor.js +99 -0
- package/dist/browser/link-interceptor.js.map +1 -0
- package/dist/browser/logging.d.ts +10 -0
- package/dist/browser/logging.d.ts.map +1 -0
- package/dist/browser/logging.js +29 -0
- package/dist/browser/logging.js.map +1 -0
- package/dist/browser/lru-cache.d.ts +17 -0
- package/dist/browser/lru-cache.d.ts.map +1 -0
- package/dist/browser/lru-cache.js +50 -0
- package/dist/browser/lru-cache.js.map +1 -0
- package/dist/browser/merge-segment-loaders.d.ts +39 -0
- package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
- package/dist/browser/merge-segment-loaders.js +102 -0
- package/dist/browser/merge-segment-loaders.js.map +1 -0
- package/dist/browser/navigation-bridge.d.ts +102 -0
- package/dist/browser/navigation-bridge.d.ts.map +1 -0
- package/dist/browser/navigation-bridge.js +708 -0
- package/dist/browser/navigation-bridge.js.map +1 -0
- package/dist/browser/navigation-client.d.ts +25 -0
- package/dist/browser/navigation-client.d.ts.map +1 -0
- package/dist/browser/navigation-client.js +157 -0
- package/dist/browser/navigation-client.js.map +1 -0
- package/dist/browser/navigation-store.d.ts +101 -0
- package/dist/browser/navigation-store.d.ts.map +1 -0
- package/dist/browser/navigation-store.js +625 -0
- package/dist/browser/navigation-store.js.map +1 -0
- package/dist/browser/partial-update.d.ts +75 -0
- package/dist/browser/partial-update.d.ts.map +1 -0
- package/dist/browser/partial-update.js +426 -0
- package/dist/browser/partial-update.js.map +1 -0
- package/dist/browser/react/Link.d.ts +86 -0
- package/dist/browser/react/Link.d.ts.map +1 -0
- package/dist/browser/react/Link.js +128 -0
- package/dist/browser/react/Link.js.map +1 -0
- package/dist/browser/react/NavigationProvider.d.ts +63 -0
- package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
- package/dist/browser/react/NavigationProvider.js +216 -0
- package/dist/browser/react/NavigationProvider.js.map +1 -0
- package/dist/browser/react/ScrollRestoration.d.ts +75 -0
- package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
- package/dist/browser/react/ScrollRestoration.js +57 -0
- package/dist/browser/react/ScrollRestoration.js.map +1 -0
- package/dist/browser/react/context.d.ts +46 -0
- package/dist/browser/react/context.d.ts.map +1 -0
- package/dist/browser/react/context.js +10 -0
- package/dist/browser/react/context.js.map +1 -0
- package/dist/browser/react/index.d.ts +11 -0
- package/dist/browser/react/index.d.ts.map +1 -0
- package/dist/browser/react/index.js +22 -0
- package/dist/browser/react/index.js.map +1 -0
- package/dist/browser/react/location-state-shared.d.ts +63 -0
- package/dist/browser/react/location-state-shared.d.ts.map +1 -0
- package/dist/browser/react/location-state-shared.js +81 -0
- package/dist/browser/react/location-state-shared.js.map +1 -0
- package/dist/browser/react/location-state.d.ts +23 -0
- package/dist/browser/react/location-state.d.ts.map +1 -0
- package/dist/browser/react/location-state.js +29 -0
- package/dist/browser/react/location-state.js.map +1 -0
- package/dist/browser/react/mount-context.d.ts +24 -0
- package/dist/browser/react/mount-context.d.ts.map +1 -0
- package/dist/browser/react/mount-context.js +24 -0
- package/dist/browser/react/mount-context.js.map +1 -0
- package/dist/browser/react/use-action.d.ts +64 -0
- package/dist/browser/react/use-action.d.ts.map +1 -0
- package/dist/browser/react/use-action.js +134 -0
- package/dist/browser/react/use-action.js.map +1 -0
- package/dist/browser/react/use-client-cache.d.ts +41 -0
- package/dist/browser/react/use-client-cache.d.ts.map +1 -0
- package/dist/browser/react/use-client-cache.js +39 -0
- package/dist/browser/react/use-client-cache.js.map +1 -0
- package/dist/browser/react/use-handle.d.ts +31 -0
- package/dist/browser/react/use-handle.d.ts.map +1 -0
- package/dist/browser/react/use-handle.js +144 -0
- package/dist/browser/react/use-handle.js.map +1 -0
- package/dist/browser/react/use-href.d.ts +33 -0
- package/dist/browser/react/use-href.d.ts.map +1 -0
- package/dist/browser/react/use-href.js +39 -0
- package/dist/browser/react/use-href.js.map +1 -0
- package/dist/browser/react/use-link-status.d.ts +37 -0
- package/dist/browser/react/use-link-status.d.ts.map +1 -0
- package/dist/browser/react/use-link-status.js +99 -0
- package/dist/browser/react/use-link-status.js.map +1 -0
- package/dist/browser/react/use-mount.d.ts +25 -0
- package/dist/browser/react/use-mount.d.ts.map +1 -0
- package/dist/browser/react/use-mount.js +30 -0
- package/dist/browser/react/use-mount.js.map +1 -0
- package/dist/browser/react/use-navigation.d.ts +27 -0
- package/dist/browser/react/use-navigation.d.ts.map +1 -0
- package/dist/browser/react/use-navigation.js +87 -0
- package/dist/browser/react/use-navigation.js.map +1 -0
- package/dist/browser/react/use-segments.d.ts +38 -0
- package/dist/browser/react/use-segments.d.ts.map +1 -0
- package/dist/browser/react/use-segments.js +130 -0
- package/dist/browser/react/use-segments.js.map +1 -0
- package/dist/browser/request-controller.d.ts +26 -0
- package/dist/browser/request-controller.d.ts.map +1 -0
- package/dist/browser/request-controller.js +147 -0
- package/dist/browser/request-controller.js.map +1 -0
- package/dist/browser/rsc-router.d.ts +129 -0
- package/dist/browser/rsc-router.d.ts.map +1 -0
- package/dist/browser/rsc-router.js +195 -0
- package/dist/browser/rsc-router.js.map +1 -0
- package/dist/browser/scroll-restoration.d.ts +93 -0
- package/dist/browser/scroll-restoration.d.ts.map +1 -0
- package/dist/browser/scroll-restoration.js +321 -0
- package/dist/browser/scroll-restoration.js.map +1 -0
- package/dist/browser/segment-structure-assert.d.ts +17 -0
- package/dist/browser/segment-structure-assert.d.ts.map +1 -0
- package/dist/browser/segment-structure-assert.js +59 -0
- package/dist/browser/segment-structure-assert.js.map +1 -0
- package/dist/browser/server-action-bridge.d.ts +26 -0
- package/dist/browser/server-action-bridge.d.ts.map +1 -0
- package/dist/browser/server-action-bridge.js +668 -0
- package/dist/browser/server-action-bridge.js.map +1 -0
- package/dist/browser/shallow.d.ts +12 -0
- package/dist/browser/shallow.d.ts.map +1 -0
- package/dist/browser/shallow.js +34 -0
- package/dist/browser/shallow.js.map +1 -0
- package/dist/browser/types.d.ts +369 -0
- package/dist/browser/types.d.ts.map +1 -0
- package/dist/browser/types.js +2 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
- package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-cli.test.js +237 -0
- package/dist/build/__tests__/generate-cli.test.js.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-manifest.test.js +119 -0
- package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
- package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
- package/dist/build/__tests__/generate-route-types.test.js +620 -0
- package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
- package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
- package/dist/build/__tests__/per-router-manifest.test.js +308 -0
- package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
- package/dist/build/generate-manifest.d.ts +81 -0
- package/dist/build/generate-manifest.d.ts.map +1 -0
- package/dist/build/generate-manifest.js +276 -0
- package/dist/build/generate-manifest.js.map +1 -0
- package/dist/build/generate-route-types.d.ts +115 -0
- package/dist/build/generate-route-types.d.ts.map +1 -0
- package/dist/build/generate-route-types.js +740 -0
- package/dist/build/generate-route-types.js.map +1 -0
- package/dist/build/index.d.ts +21 -0
- package/dist/build/index.d.ts.map +1 -0
- package/dist/build/index.js +21 -0
- package/dist/build/index.js.map +1 -0
- package/dist/build/route-trie.d.ts +71 -0
- package/dist/build/route-trie.d.ts.map +1 -0
- package/dist/build/route-trie.js +175 -0
- package/dist/build/route-trie.js.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
- package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
- package/dist/cache/__tests__/cache-scope.test.js +208 -0
- package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
- package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
- package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
- package/dist/cache/__tests__/document-cache.test.js +345 -0
- package/dist/cache/__tests__/document-cache.test.js.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
- package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
- package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
- package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
- package/dist/cache/__tests__/memory-store.test.js +367 -0
- package/dist/cache/__tests__/memory-store.test.js.map +1 -0
- package/dist/cache/cache-scope.d.ts +102 -0
- package/dist/cache/cache-scope.d.ts.map +1 -0
- package/dist/cache/cache-scope.js +440 -0
- package/dist/cache/cache-scope.js.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
- package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
- package/dist/cache/cf/cf-cache-store.d.ts +165 -0
- package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
- package/dist/cache/cf/cf-cache-store.js +242 -0
- package/dist/cache/cf/cf-cache-store.js.map +1 -0
- package/dist/cache/cf/index.d.ts +14 -0
- package/dist/cache/cf/index.d.ts.map +1 -0
- package/dist/cache/cf/index.js +17 -0
- package/dist/cache/cf/index.js.map +1 -0
- package/dist/cache/document-cache.d.ts +64 -0
- package/dist/cache/document-cache.d.ts.map +1 -0
- package/dist/cache/document-cache.js +228 -0
- package/dist/cache/document-cache.js.map +1 -0
- package/dist/cache/index.d.ts +19 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +21 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory-segment-store.d.ts +110 -0
- package/dist/cache/memory-segment-store.d.ts.map +1 -0
- package/dist/cache/memory-segment-store.js +117 -0
- package/dist/cache/memory-segment-store.js.map +1 -0
- package/dist/cache/memory-store.d.ts +41 -0
- package/dist/cache/memory-store.d.ts.map +1 -0
- package/dist/cache/memory-store.js +191 -0
- package/dist/cache/memory-store.js.map +1 -0
- package/dist/cache/types.d.ts +317 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +12 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/client.d.ts +248 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +367 -0
- package/dist/client.js.map +1 -0
- package/dist/client.rsc.d.ts +26 -0
- package/dist/client.rsc.d.ts.map +1 -0
- package/dist/client.rsc.js +46 -0
- package/dist/client.rsc.js.map +1 -0
- package/dist/component-utils.d.ts +36 -0
- package/dist/component-utils.d.ts.map +1 -0
- package/dist/component-utils.js +61 -0
- package/dist/component-utils.js.map +1 -0
- package/dist/components/DefaultDocument.d.ts +13 -0
- package/dist/components/DefaultDocument.d.ts.map +1 -0
- package/dist/components/DefaultDocument.js +15 -0
- package/dist/components/DefaultDocument.js.map +1 -0
- package/dist/debug.d.ts +58 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/debug.js +157 -0
- package/dist/debug.js.map +1 -0
- package/dist/default-error-boundary.d.ts +11 -0
- package/dist/default-error-boundary.d.ts.map +1 -0
- package/dist/default-error-boundary.js +45 -0
- package/dist/default-error-boundary.js.map +1 -0
- package/dist/deps/browser.d.ts +2 -0
- package/dist/deps/browser.d.ts.map +1 -0
- package/dist/deps/browser.js +3 -0
- package/dist/deps/browser.js.map +1 -0
- package/dist/deps/html-stream-client.d.ts +2 -0
- package/dist/deps/html-stream-client.d.ts.map +1 -0
- package/dist/deps/html-stream-client.js +3 -0
- package/dist/deps/html-stream-client.js.map +1 -0
- package/dist/deps/html-stream-server.d.ts +2 -0
- package/dist/deps/html-stream-server.d.ts.map +1 -0
- package/dist/deps/html-stream-server.js +3 -0
- package/dist/deps/html-stream-server.js.map +1 -0
- package/dist/deps/rsc.d.ts +2 -0
- package/dist/deps/rsc.d.ts.map +1 -0
- package/dist/deps/rsc.js +4 -0
- package/dist/deps/rsc.js.map +1 -0
- package/dist/deps/ssr.d.ts +2 -0
- package/dist/deps/ssr.d.ts.map +1 -0
- package/dist/deps/ssr.js +3 -0
- package/dist/deps/ssr.js.map +1 -0
- package/dist/errors.d.ts +174 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +241 -0
- package/dist/errors.js.map +1 -0
- package/dist/handle.d.ts +78 -0
- package/dist/handle.d.ts.map +1 -0
- package/dist/handle.js +82 -0
- package/dist/handle.js.map +1 -0
- package/dist/handles/MetaTags.d.ts +14 -0
- package/dist/handles/MetaTags.d.ts.map +1 -0
- package/dist/handles/MetaTags.js +136 -0
- package/dist/handles/MetaTags.js.map +1 -0
- package/dist/handles/index.d.ts +6 -0
- package/dist/handles/index.d.ts.map +1 -0
- package/dist/handles/index.js +6 -0
- package/dist/handles/index.js.map +1 -0
- package/dist/handles/meta.d.ts +39 -0
- package/dist/handles/meta.d.ts.map +1 -0
- package/dist/handles/meta.js +202 -0
- package/dist/handles/meta.js.map +1 -0
- package/dist/host/__tests__/errors.test.d.ts +2 -0
- package/dist/host/__tests__/errors.test.d.ts.map +1 -0
- package/dist/host/__tests__/errors.test.js +76 -0
- package/dist/host/__tests__/errors.test.js.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
- package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
- package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
- package/dist/host/__tests__/pattern-matcher.test.js +251 -0
- package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
- package/dist/host/__tests__/router.test.d.ts +2 -0
- package/dist/host/__tests__/router.test.d.ts.map +1 -0
- package/dist/host/__tests__/router.test.js +241 -0
- package/dist/host/__tests__/router.test.js.map +1 -0
- package/dist/host/__tests__/testing.test.d.ts +2 -0
- package/dist/host/__tests__/testing.test.d.ts.map +1 -0
- package/dist/host/__tests__/testing.test.js +64 -0
- package/dist/host/__tests__/testing.test.js.map +1 -0
- package/dist/host/__tests__/utils.test.d.ts +2 -0
- package/dist/host/__tests__/utils.test.d.ts.map +1 -0
- package/dist/host/__tests__/utils.test.js +29 -0
- package/dist/host/__tests__/utils.test.js.map +1 -0
- package/dist/host/cookie-handler.d.ts +34 -0
- package/dist/host/cookie-handler.d.ts.map +1 -0
- package/dist/host/cookie-handler.js +124 -0
- package/dist/host/cookie-handler.js.map +1 -0
- package/dist/host/errors.d.ts +56 -0
- package/dist/host/errors.d.ts.map +1 -0
- package/dist/host/errors.js +79 -0
- package/dist/host/errors.js.map +1 -0
- package/dist/host/index.d.ts +29 -0
- package/dist/host/index.d.ts.map +1 -0
- package/dist/host/index.js +32 -0
- package/dist/host/index.js.map +1 -0
- package/dist/host/pattern-matcher.d.ts +36 -0
- package/dist/host/pattern-matcher.d.ts.map +1 -0
- package/dist/host/pattern-matcher.js +172 -0
- package/dist/host/pattern-matcher.js.map +1 -0
- package/dist/host/router.d.ts +26 -0
- package/dist/host/router.d.ts.map +1 -0
- package/dist/host/router.js +218 -0
- package/dist/host/router.js.map +1 -0
- package/dist/host/testing.d.ts +36 -0
- package/dist/host/testing.d.ts.map +1 -0
- package/dist/host/testing.js +55 -0
- package/dist/host/testing.js.map +1 -0
- package/dist/host/types.d.ts +115 -0
- package/dist/host/types.d.ts.map +1 -0
- package/dist/host/types.js +7 -0
- package/dist/host/types.js.map +1 -0
- package/dist/host/utils.d.ts +21 -0
- package/dist/host/utils.d.ts.map +1 -0
- package/dist/host/utils.js +23 -0
- package/dist/host/utils.js.map +1 -0
- package/dist/href-client.d.ts +131 -0
- package/dist/href-client.d.ts.map +1 -0
- package/dist/href-client.js +64 -0
- package/dist/href-client.js.map +1 -0
- package/dist/href-context.d.ts +29 -0
- package/dist/href-context.d.ts.map +1 -0
- package/dist/href-context.js +21 -0
- package/dist/href-context.js.map +1 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +91 -0
- package/dist/index.js.map +1 -0
- package/dist/index.rsc.d.ts +32 -0
- package/dist/index.rsc.d.ts.map +1 -0
- package/dist/index.rsc.js +40 -0
- package/dist/index.rsc.js.map +1 -0
- package/dist/internal-debug.d.ts +2 -0
- package/dist/internal-debug.d.ts.map +1 -0
- package/dist/internal-debug.js +5 -0
- package/dist/internal-debug.js.map +1 -0
- package/dist/loader.d.ts +14 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +20 -0
- package/dist/loader.js.map +1 -0
- package/dist/loader.rsc.d.ts +19 -0
- package/dist/loader.rsc.d.ts.map +1 -0
- package/dist/loader.rsc.js +99 -0
- package/dist/loader.rsc.js.map +1 -0
- package/dist/network-error-thrower.d.ts +17 -0
- package/dist/network-error-thrower.d.ts.map +1 -0
- package/dist/network-error-thrower.js +14 -0
- package/dist/network-error-thrower.js.map +1 -0
- package/dist/outlet-context.d.ts +13 -0
- package/dist/outlet-context.d.ts.map +1 -0
- package/dist/outlet-context.js +3 -0
- package/dist/outlet-context.js.map +1 -0
- package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
- package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
- package/dist/prerender/__tests__/param-hash.test.js +148 -0
- package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
- package/dist/prerender/param-hash.d.ts +16 -0
- package/dist/prerender/param-hash.d.ts.map +1 -0
- package/dist/prerender/param-hash.js +36 -0
- package/dist/prerender/param-hash.js.map +1 -0
- package/dist/prerender/store.d.ts +38 -0
- package/dist/prerender/store.d.ts.map +1 -0
- package/dist/prerender/store.js +61 -0
- package/dist/prerender/store.js.map +1 -0
- package/dist/prerender.d.ts +66 -0
- package/dist/prerender.d.ts.map +1 -0
- package/dist/prerender.js +57 -0
- package/dist/prerender.js.map +1 -0
- package/dist/reverse.d.ts +196 -0
- package/dist/reverse.d.ts.map +1 -0
- package/dist/reverse.js +78 -0
- package/dist/reverse.js.map +1 -0
- package/dist/root-error-boundary.d.ts +33 -0
- package/dist/root-error-boundary.d.ts.map +1 -0
- package/dist/root-error-boundary.js +165 -0
- package/dist/root-error-boundary.js.map +1 -0
- package/dist/route-content-wrapper.d.ts +46 -0
- package/dist/route-content-wrapper.d.ts.map +1 -0
- package/dist/route-content-wrapper.js +77 -0
- package/dist/route-content-wrapper.js.map +1 -0
- package/dist/route-definition.d.ts +421 -0
- package/dist/route-definition.d.ts.map +1 -0
- package/dist/route-definition.js +868 -0
- package/dist/route-definition.js.map +1 -0
- package/dist/route-map-builder.d.ts +155 -0
- package/dist/route-map-builder.d.ts.map +1 -0
- package/dist/route-map-builder.js +237 -0
- package/dist/route-map-builder.js.map +1 -0
- package/dist/route-types.d.ts +165 -0
- package/dist/route-types.d.ts.map +1 -0
- package/dist/route-types.js +7 -0
- package/dist/route-types.js.map +1 -0
- package/dist/router/__tests__/handler-context.test.d.ts +2 -0
- package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
- package/dist/router/__tests__/handler-context.test.js +65 -0
- package/dist/router/__tests__/handler-context.test.js.map +1 -0
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
- package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
- package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
- package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
- package/dist/router/__tests__/match-context.test.d.ts +2 -0
- package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-context.test.js +92 -0
- package/dist/router/__tests__/match-context.test.js.map +1 -0
- package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
- package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-pipelines.test.js +417 -0
- package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
- package/dist/router/__tests__/match-result.test.d.ts +2 -0
- package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
- package/dist/router/__tests__/match-result.test.js +457 -0
- package/dist/router/__tests__/match-result.test.js.map +1 -0
- package/dist/router/__tests__/on-error.test.d.ts +2 -0
- package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
- package/dist/router/__tests__/on-error.test.js +678 -0
- package/dist/router/__tests__/on-error.test.js.map +1 -0
- package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
- package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
- package/dist/router/__tests__/pattern-matching.test.js +629 -0
- package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
- package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
- package/dist/router/error-handling.d.ts +77 -0
- package/dist/router/error-handling.d.ts.map +1 -0
- package/dist/router/error-handling.js +202 -0
- package/dist/router/error-handling.js.map +1 -0
- package/dist/router/handler-context.d.ts +20 -0
- package/dist/router/handler-context.d.ts.map +1 -0
- package/dist/router/handler-context.js +198 -0
- package/dist/router/handler-context.js.map +1 -0
- package/dist/router/intercept-resolution.d.ts +66 -0
- package/dist/router/intercept-resolution.d.ts.map +1 -0
- package/dist/router/intercept-resolution.js +246 -0
- package/dist/router/intercept-resolution.js.map +1 -0
- package/dist/router/loader-resolution.d.ts +64 -0
- package/dist/router/loader-resolution.d.ts.map +1 -0
- package/dist/router/loader-resolution.js +284 -0
- package/dist/router/loader-resolution.js.map +1 -0
- package/dist/router/logging.d.ts +15 -0
- package/dist/router/logging.d.ts.map +1 -0
- package/dist/router/logging.js +99 -0
- package/dist/router/logging.js.map +1 -0
- package/dist/router/manifest.d.ts +22 -0
- package/dist/router/manifest.d.ts.map +1 -0
- package/dist/router/manifest.js +181 -0
- package/dist/router/manifest.js.map +1 -0
- package/dist/router/match-api.d.ts +35 -0
- package/dist/router/match-api.d.ts.map +1 -0
- package/dist/router/match-api.js +406 -0
- package/dist/router/match-api.js.map +1 -0
- package/dist/router/match-context.d.ts +206 -0
- package/dist/router/match-context.d.ts.map +1 -0
- package/dist/router/match-context.js +17 -0
- package/dist/router/match-context.js.map +1 -0
- package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
- package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
- package/dist/router/match-middleware/background-revalidation.js +75 -0
- package/dist/router/match-middleware/background-revalidation.js.map +1 -0
- package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
- package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
- package/dist/router/match-middleware/cache-lookup.js +257 -0
- package/dist/router/match-middleware/cache-lookup.js.map +1 -0
- package/dist/router/match-middleware/cache-store.d.ts +113 -0
- package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
- package/dist/router/match-middleware/cache-store.js +108 -0
- package/dist/router/match-middleware/cache-store.js.map +1 -0
- package/dist/router/match-middleware/index.d.ts +81 -0
- package/dist/router/match-middleware/index.d.ts.map +1 -0
- package/dist/router/match-middleware/index.js +80 -0
- package/dist/router/match-middleware/index.js.map +1 -0
- package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
- package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
- package/dist/router/match-middleware/intercept-resolution.js +134 -0
- package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
- package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
- package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
- package/dist/router/match-middleware/segment-resolution.js +53 -0
- package/dist/router/match-middleware/segment-resolution.js.map +1 -0
- package/dist/router/match-pipelines.d.ts +147 -0
- package/dist/router/match-pipelines.d.ts.map +1 -0
- package/dist/router/match-pipelines.js +82 -0
- package/dist/router/match-pipelines.js.map +1 -0
- package/dist/router/match-result.d.ts +126 -0
- package/dist/router/match-result.d.ts.map +1 -0
- package/dist/router/match-result.js +93 -0
- package/dist/router/match-result.js.map +1 -0
- package/dist/router/metrics.d.ts +20 -0
- package/dist/router/metrics.d.ts.map +1 -0
- package/dist/router/metrics.js +47 -0
- package/dist/router/metrics.js.map +1 -0
- package/dist/router/middleware.d.ts +249 -0
- package/dist/router/middleware.d.ts.map +1 -0
- package/dist/router/middleware.js +434 -0
- package/dist/router/middleware.js.map +1 -0
- package/dist/router/middleware.test.d.ts +2 -0
- package/dist/router/middleware.test.d.ts.map +1 -0
- package/dist/router/middleware.test.js +816 -0
- package/dist/router/middleware.test.js.map +1 -0
- package/dist/router/pattern-matching.d.ts +149 -0
- package/dist/router/pattern-matching.d.ts.map +1 -0
- package/dist/router/pattern-matching.js +349 -0
- package/dist/router/pattern-matching.js.map +1 -0
- package/dist/router/revalidation.d.ts +44 -0
- package/dist/router/revalidation.d.ts.map +1 -0
- package/dist/router/revalidation.js +147 -0
- package/dist/router/revalidation.js.map +1 -0
- package/dist/router/router-context.d.ts +135 -0
- package/dist/router/router-context.d.ts.map +1 -0
- package/dist/router/router-context.js +36 -0
- package/dist/router/router-context.js.map +1 -0
- package/dist/router/segment-resolution.d.ts +127 -0
- package/dist/router/segment-resolution.d.ts.map +1 -0
- package/dist/router/segment-resolution.js +919 -0
- package/dist/router/segment-resolution.js.map +1 -0
- package/dist/router/trie-matching.d.ts +40 -0
- package/dist/router/trie-matching.d.ts.map +1 -0
- package/dist/router/trie-matching.js +127 -0
- package/dist/router/trie-matching.js.map +1 -0
- package/dist/router/types.d.ts +136 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/types.js +7 -0
- package/dist/router/types.js.map +1 -0
- package/dist/router.d.ts +753 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.gen.d.ts +6 -0
- package/dist/router.gen.d.ts.map +1 -0
- package/dist/router.gen.js +6 -0
- package/dist/router.gen.js.map +1 -0
- package/dist/router.js +1304 -0
- package/dist/router.js.map +1 -0
- package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
- package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
- package/dist/rsc/__tests__/helpers.test.js +140 -0
- package/dist/rsc/__tests__/helpers.test.js.map +1 -0
- package/dist/rsc/handler.d.ts +45 -0
- package/dist/rsc/handler.d.ts.map +1 -0
- package/dist/rsc/handler.js +1172 -0
- package/dist/rsc/handler.js.map +1 -0
- package/dist/rsc/helpers.d.ts +16 -0
- package/dist/rsc/helpers.d.ts.map +1 -0
- package/dist/rsc/helpers.js +55 -0
- package/dist/rsc/helpers.js.map +1 -0
- package/dist/rsc/index.d.ts +22 -0
- package/dist/rsc/index.d.ts.map +1 -0
- package/dist/rsc/index.js +23 -0
- package/dist/rsc/index.js.map +1 -0
- package/dist/rsc/nonce.d.ts +9 -0
- package/dist/rsc/nonce.d.ts.map +1 -0
- package/dist/rsc/nonce.js +18 -0
- package/dist/rsc/nonce.js.map +1 -0
- package/dist/rsc/types.d.ts +206 -0
- package/dist/rsc/types.d.ts.map +1 -0
- package/dist/rsc/types.js +8 -0
- package/dist/rsc/types.js.map +1 -0
- package/dist/search-params.d.ts +103 -0
- package/dist/search-params.d.ts.map +1 -0
- package/dist/search-params.js +74 -0
- package/dist/search-params.js.map +1 -0
- package/dist/segment-system.d.ts +75 -0
- package/dist/segment-system.d.ts.map +1 -0
- package/dist/segment-system.js +336 -0
- package/dist/segment-system.js.map +1 -0
- package/dist/server/context.d.ts +245 -0
- package/dist/server/context.d.ts.map +1 -0
- package/dist/server/context.js +197 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/fetchable-loader-store.d.ts +18 -0
- package/dist/server/fetchable-loader-store.d.ts.map +1 -0
- package/dist/server/fetchable-loader-store.js +18 -0
- package/dist/server/fetchable-loader-store.js.map +1 -0
- package/dist/server/handle-store.d.ts +85 -0
- package/dist/server/handle-store.d.ts.map +1 -0
- package/dist/server/handle-store.js +142 -0
- package/dist/server/handle-store.js.map +1 -0
- package/dist/server/loader-registry.d.ts +55 -0
- package/dist/server/loader-registry.d.ts.map +1 -0
- package/dist/server/loader-registry.js +132 -0
- package/dist/server/loader-registry.js.map +1 -0
- package/dist/server/request-context.d.ts +226 -0
- package/dist/server/request-context.d.ts.map +1 -0
- package/dist/server/request-context.js +290 -0
- package/dist/server/request-context.js.map +1 -0
- package/dist/server/root-layout.d.ts +4 -0
- package/dist/server/root-layout.d.ts.map +1 -0
- package/dist/server/root-layout.js +5 -0
- package/dist/server/root-layout.js.map +1 -0
- package/dist/server.d.ts +15 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +20 -0
- package/dist/server.js.map +1 -0
- package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
- package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
- package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
- package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
- package/dist/ssr/index.d.ts +98 -0
- package/dist/ssr/index.d.ts.map +1 -0
- package/dist/ssr/index.js +158 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/static-handler.d.ts +50 -0
- package/dist/static-handler.d.ts.map +1 -0
- package/dist/static-handler.gen.d.ts +5 -0
- package/dist/static-handler.gen.d.ts.map +1 -0
- package/dist/static-handler.gen.js +5 -0
- package/dist/static-handler.gen.js.map +1 -0
- package/dist/static-handler.js +29 -0
- package/dist/static-handler.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +20 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/ThemeProvider.js +240 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/ThemeScript.d.ts +48 -0
- package/dist/theme/ThemeScript.d.ts.map +1 -0
- package/dist/theme/ThemeScript.js +13 -0
- package/dist/theme/ThemeScript.js.map +1 -0
- package/dist/theme/__tests__/theme.test.d.ts +2 -0
- package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
- package/dist/theme/__tests__/theme.test.js +103 -0
- package/dist/theme/__tests__/theme.test.js.map +1 -0
- package/dist/theme/constants.d.ts +29 -0
- package/dist/theme/constants.d.ts.map +1 -0
- package/dist/theme/constants.js +48 -0
- package/dist/theme/constants.js.map +1 -0
- package/dist/theme/index.d.ts +31 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +36 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/theme/theme-context.d.ts +40 -0
- package/dist/theme/theme-context.d.ts.map +1 -0
- package/dist/theme/theme-context.js +60 -0
- package/dist/theme/theme-context.js.map +1 -0
- package/dist/theme/theme-script.d.ts +27 -0
- package/dist/theme/theme-script.d.ts.map +1 -0
- package/dist/theme/theme-script.js +147 -0
- package/dist/theme/theme-script.js.map +1 -0
- package/dist/theme/types.d.ts +163 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +11 -0
- package/dist/theme/types.js.map +1 -0
- package/dist/theme/use-theme.d.ts +12 -0
- package/dist/theme/use-theme.d.ts.map +1 -0
- package/dist/theme/use-theme.js +40 -0
- package/dist/theme/use-theme.js.map +1 -0
- package/dist/types.d.ts +1479 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/dist/urls.d.ts +441 -0
- package/dist/urls.d.ts.map +1 -0
- package/dist/urls.gen.d.ts +8 -0
- package/dist/urls.gen.d.ts.map +1 -0
- package/dist/urls.gen.js +8 -0
- package/dist/urls.gen.js.map +1 -0
- package/dist/urls.js +443 -0
- package/dist/urls.js.map +1 -0
- package/dist/use-loader.d.ts +127 -0
- package/dist/use-loader.d.ts.map +1 -0
- package/dist/use-loader.js +237 -0
- package/dist/use-loader.js.map +1 -0
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
- package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
- package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
- package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
- package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
- package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
- package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
- package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
- package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
- package/dist/vite/__tests__/expose-router-id.test.js +39 -0
- package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
- package/dist/vite/ast-handler-extract.d.ts +49 -0
- package/dist/vite/ast-handler-extract.d.ts.map +1 -0
- package/dist/vite/ast-handler-extract.js +249 -0
- package/dist/vite/ast-handler-extract.js.map +1 -0
- package/dist/vite/expose-action-id.d.ts +19 -0
- package/dist/vite/expose-action-id.d.ts.map +1 -0
- package/dist/vite/expose-action-id.js +250 -0
- package/dist/vite/expose-action-id.js.map +1 -0
- package/dist/vite/expose-id-utils.d.ts +69 -0
- package/dist/vite/expose-id-utils.d.ts.map +1 -0
- package/dist/vite/expose-id-utils.js +289 -0
- package/dist/vite/expose-id-utils.js.map +1 -0
- package/dist/vite/expose-internal-ids.d.ts +22 -0
- package/dist/vite/expose-internal-ids.d.ts.map +1 -0
- package/dist/vite/expose-internal-ids.js +886 -0
- package/dist/vite/expose-internal-ids.js.map +1 -0
- package/dist/vite/index.d.ts +149 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +1 -1
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/index.named-routes.gen.ts +103 -0
- package/dist/vite/package-resolution.d.ts +43 -0
- package/dist/vite/package-resolution.d.ts.map +1 -0
- package/dist/vite/package-resolution.js +112 -0
- package/dist/vite/package-resolution.js.map +1 -0
- package/dist/vite/virtual-entries.d.ts +25 -0
- package/dist/vite/virtual-entries.d.ts.map +1 -0
- package/dist/vite/virtual-entries.js +110 -0
- package/dist/vite/virtual-entries.js.map +1 -0
- package/package.json +1 -1
- package/skills/parallel/SKILL.md +67 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { resolveThemeConfig, THEME_DEFAULTS, THEME_COOKIE } from "../constants.js";
|
|
3
|
+
import { generateThemeScript } from "../theme-script.js";
|
|
4
|
+
describe("Theme Configuration", () => {
|
|
5
|
+
describe("resolveThemeConfig", () => {
|
|
6
|
+
it("should apply defaults when no config provided", () => {
|
|
7
|
+
const config = {};
|
|
8
|
+
const resolved = resolveThemeConfig(config);
|
|
9
|
+
expect(resolved.defaultTheme).toBe(THEME_DEFAULTS.defaultTheme);
|
|
10
|
+
expect(resolved.themes).toEqual(THEME_DEFAULTS.themes);
|
|
11
|
+
expect(resolved.attribute).toBe(THEME_DEFAULTS.attribute);
|
|
12
|
+
expect(resolved.storageKey).toBe(THEME_DEFAULTS.storageKey);
|
|
13
|
+
expect(resolved.enableSystem).toBe(THEME_DEFAULTS.enableSystem);
|
|
14
|
+
expect(resolved.enableColorScheme).toBe(THEME_DEFAULTS.enableColorScheme);
|
|
15
|
+
});
|
|
16
|
+
it("should preserve custom config values", () => {
|
|
17
|
+
const config = {
|
|
18
|
+
defaultTheme: "dark",
|
|
19
|
+
themes: ["light", "dark", "sepia"],
|
|
20
|
+
attribute: "data-theme",
|
|
21
|
+
storageKey: "app-theme",
|
|
22
|
+
enableSystem: false,
|
|
23
|
+
enableColorScheme: false,
|
|
24
|
+
};
|
|
25
|
+
const resolved = resolveThemeConfig(config);
|
|
26
|
+
expect(resolved.defaultTheme).toBe("dark");
|
|
27
|
+
expect(resolved.themes).toEqual(["light", "dark", "sepia"]);
|
|
28
|
+
expect(resolved.attribute).toBe("data-theme");
|
|
29
|
+
expect(resolved.storageKey).toBe("app-theme");
|
|
30
|
+
expect(resolved.enableSystem).toBe(false);
|
|
31
|
+
expect(resolved.enableColorScheme).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
it("should generate value mapping for themes", () => {
|
|
34
|
+
const config = {
|
|
35
|
+
themes: ["light", "dark"],
|
|
36
|
+
};
|
|
37
|
+
const resolved = resolveThemeConfig(config);
|
|
38
|
+
expect(resolved.value).toEqual({
|
|
39
|
+
light: "light",
|
|
40
|
+
dark: "dark",
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it("should use custom value mapping when provided", () => {
|
|
44
|
+
const config = {
|
|
45
|
+
themes: ["light", "dark"],
|
|
46
|
+
value: {
|
|
47
|
+
light: "light-mode",
|
|
48
|
+
dark: "dark-mode",
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
const resolved = resolveThemeConfig(config);
|
|
52
|
+
expect(resolved.value).toEqual({
|
|
53
|
+
light: "light-mode",
|
|
54
|
+
dark: "dark-mode",
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
describe("THEME_COOKIE", () => {
|
|
59
|
+
it("should have correct defaults", () => {
|
|
60
|
+
expect(THEME_COOKIE.maxAge).toBe(60 * 60 * 24 * 365);
|
|
61
|
+
expect(THEME_COOKIE.path).toBe("/");
|
|
62
|
+
expect(THEME_COOKIE.sameSite).toBe("lax");
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe("Theme Script", () => {
|
|
67
|
+
describe("generateThemeScript", () => {
|
|
68
|
+
it("should generate a minified script", () => {
|
|
69
|
+
const config = {
|
|
70
|
+
defaultTheme: "system",
|
|
71
|
+
themes: ["light", "dark"],
|
|
72
|
+
attribute: "class",
|
|
73
|
+
storageKey: "theme",
|
|
74
|
+
enableSystem: true,
|
|
75
|
+
enableColorScheme: true,
|
|
76
|
+
value: { light: "light", dark: "dark" },
|
|
77
|
+
};
|
|
78
|
+
const script = generateThemeScript(config);
|
|
79
|
+
// Should be a string
|
|
80
|
+
expect(typeof script).toBe("string");
|
|
81
|
+
// Should not have multi-line formatting (minified)
|
|
82
|
+
expect(script.includes("\n ")).toBe(false);
|
|
83
|
+
// Should contain key configuration values
|
|
84
|
+
expect(script.includes('"theme"')).toBe(true);
|
|
85
|
+
expect(script.includes('"system"')).toBe(true);
|
|
86
|
+
expect(script.includes('"class"')).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
it("should handle data-* attributes", () => {
|
|
89
|
+
const config = {
|
|
90
|
+
defaultTheme: "light",
|
|
91
|
+
themes: ["light", "dark"],
|
|
92
|
+
attribute: "data-theme",
|
|
93
|
+
storageKey: "theme",
|
|
94
|
+
enableSystem: true,
|
|
95
|
+
enableColorScheme: true,
|
|
96
|
+
value: { light: "light", dark: "dark" },
|
|
97
|
+
};
|
|
98
|
+
const script = generateThemeScript(config);
|
|
99
|
+
expect(script.includes('"data-theme"')).toBe(true);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=theme.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.test.js","sourceRoot":"","sources":["../../../src/theme/__tests__/theme.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default values for theme configuration
|
|
3
|
+
*/
|
|
4
|
+
import type { ResolvedThemeConfig, ThemeConfig } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Default theme configuration values
|
|
7
|
+
*/
|
|
8
|
+
export declare const THEME_DEFAULTS: {
|
|
9
|
+
readonly defaultTheme: "system";
|
|
10
|
+
readonly themes: readonly ["light", "dark"];
|
|
11
|
+
readonly attribute: "class";
|
|
12
|
+
readonly storageKey: "theme";
|
|
13
|
+
readonly enableSystem: true;
|
|
14
|
+
readonly enableColorScheme: true;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Cookie configuration for theme persistence
|
|
18
|
+
*/
|
|
19
|
+
export declare const THEME_COOKIE: {
|
|
20
|
+
readonly maxAge: number;
|
|
21
|
+
readonly path: string;
|
|
22
|
+
readonly sameSite: "lax";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Resolve theme config by applying defaults.
|
|
26
|
+
* Accepts `true` to enable with all defaults, or a config object.
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveThemeConfig(config: ThemeConfig | true): ResolvedThemeConfig;
|
|
29
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/theme/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;CAK1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,mBAAmB,CAuBlF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default values for theme configuration
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Default theme configuration values
|
|
6
|
+
*/
|
|
7
|
+
export const THEME_DEFAULTS = {
|
|
8
|
+
defaultTheme: "system",
|
|
9
|
+
themes: ["light", "dark"],
|
|
10
|
+
attribute: "class",
|
|
11
|
+
storageKey: "theme",
|
|
12
|
+
enableSystem: true,
|
|
13
|
+
enableColorScheme: true,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Cookie configuration for theme persistence
|
|
17
|
+
*/
|
|
18
|
+
export const THEME_COOKIE = {
|
|
19
|
+
maxAge: 60 * 60 * 24 * 365, // 1 year
|
|
20
|
+
path: "/",
|
|
21
|
+
sameSite: "lax",
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Resolve theme config by applying defaults.
|
|
25
|
+
* Accepts `true` to enable with all defaults, or a config object.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveThemeConfig(config) {
|
|
28
|
+
// Handle `theme: true` shorthand
|
|
29
|
+
if (config === true) {
|
|
30
|
+
config = {};
|
|
31
|
+
}
|
|
32
|
+
const themes = config.themes ?? [...THEME_DEFAULTS.themes];
|
|
33
|
+
// Build value mapping - default to identity mapping
|
|
34
|
+
const value = {};
|
|
35
|
+
for (const theme of themes) {
|
|
36
|
+
value[theme] = config.value?.[theme] ?? theme;
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
defaultTheme: config.defaultTheme ?? THEME_DEFAULTS.defaultTheme,
|
|
40
|
+
themes,
|
|
41
|
+
attribute: config.attribute ?? THEME_DEFAULTS.attribute,
|
|
42
|
+
storageKey: config.storageKey ?? THEME_DEFAULTS.storageKey,
|
|
43
|
+
enableSystem: config.enableSystem ?? THEME_DEFAULTS.enableSystem,
|
|
44
|
+
enableColorScheme: config.enableColorScheme ?? THEME_DEFAULTS.enableColorScheme,
|
|
45
|
+
value,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/theme/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO;IACnB,YAAY,EAAE,IAAI;IAClB,iBAAiB,EAAE,IAAI;CACf,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAIrB;IACF,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,SAAS;IACrC,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAA0B;IAC3D,iCAAiC;IACjC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,GAAG,EAAE,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAE3D,oDAAoD;IACpD,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IAChD,CAAC;IAED,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY;QAChE,MAAM;QACN,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS;QACvD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU;QAC1D,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,cAAc,CAAC,YAAY;QAChE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,cAAc,CAAC,iBAAiB;QAC/E,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme module exports for @rangojs/router/theme
|
|
3
|
+
*
|
|
4
|
+
* This module provides theme management for rsc-router:
|
|
5
|
+
* - useTheme: Hook for accessing theme state in client components
|
|
6
|
+
* - ThemeProvider: Component for manual theme provider setup (typically not needed)
|
|
7
|
+
* - Types for theme configuration
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* // In a client component
|
|
12
|
+
* import { useTheme } from "@rangojs/router/theme";
|
|
13
|
+
*
|
|
14
|
+
* function ThemeToggle() {
|
|
15
|
+
* const { theme, setTheme, themes } = useTheme();
|
|
16
|
+
* return (
|
|
17
|
+
* <select value={theme} onChange={e => setTheme(e.target.value)}>
|
|
18
|
+
* {themes.map(t => <option key={t}>{t}</option>)}
|
|
19
|
+
* </select>
|
|
20
|
+
* );
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export { useTheme } from "./use-theme.js";
|
|
25
|
+
export { ThemeProvider } from "./ThemeProvider.js";
|
|
26
|
+
export { ThemeScript, type ThemeScriptProps } from "./ThemeScript.js";
|
|
27
|
+
export type { Theme, ResolvedTheme, ThemeAttribute, ThemeConfig, ResolvedThemeConfig, UseThemeReturn, ThemeProviderProps, ThemeContextValue, } from "./types.js";
|
|
28
|
+
export { THEME_DEFAULTS, THEME_COOKIE, resolveThemeConfig } from "./constants.js";
|
|
29
|
+
export { generateThemeScript, getNonceAttribute } from "./theme-script.js";
|
|
30
|
+
export { ThemeContext, useThemeContext, initThemeConfigSync, getSSRThemeConfig, } from "./theme-context.js";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGtE,YAAY,EACV,KAAK,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme module exports for @rangojs/router/theme
|
|
3
|
+
*
|
|
4
|
+
* This module provides theme management for rsc-router:
|
|
5
|
+
* - useTheme: Hook for accessing theme state in client components
|
|
6
|
+
* - ThemeProvider: Component for manual theme provider setup (typically not needed)
|
|
7
|
+
* - Types for theme configuration
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* // In a client component
|
|
12
|
+
* import { useTheme } from "@rangojs/router/theme";
|
|
13
|
+
*
|
|
14
|
+
* function ThemeToggle() {
|
|
15
|
+
* const { theme, setTheme, themes } = useTheme();
|
|
16
|
+
* return (
|
|
17
|
+
* <select value={theme} onChange={e => setTheme(e.target.value)}>
|
|
18
|
+
* {themes.map(t => <option key={t}>{t}</option>)}
|
|
19
|
+
* </select>
|
|
20
|
+
* );
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
// Main hook for accessing theme
|
|
25
|
+
export { useTheme } from "./use-theme.js";
|
|
26
|
+
// Provider (typically auto-included via NavigationProvider when theme is enabled)
|
|
27
|
+
export { ThemeProvider } from "./ThemeProvider.js";
|
|
28
|
+
// Script component for FOUC prevention (use in document head)
|
|
29
|
+
export { ThemeScript } from "./ThemeScript.js";
|
|
30
|
+
// Constants (for advanced use cases)
|
|
31
|
+
export { THEME_DEFAULTS, THEME_COOKIE, resolveThemeConfig } from "./constants.js";
|
|
32
|
+
// Script generation (for advanced SSR use cases)
|
|
33
|
+
export { generateThemeScript, getNonceAttribute } from "./theme-script.js";
|
|
34
|
+
// Context (for advanced use cases)
|
|
35
|
+
export { ThemeContext, useThemeContext, initThemeConfigSync, getSSRThemeConfig, } from "./theme-context.js";
|
|
36
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,gCAAgC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,kFAAkF;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,8DAA8D;AAC9D,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AActE,qCAAqC;AACrC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAElF,iDAAiD;AACjD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3E,mCAAmC;AACnC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme context for sharing theme state and configuration.
|
|
3
|
+
*
|
|
4
|
+
* Used by:
|
|
5
|
+
* - ThemeProvider to provide theme state
|
|
6
|
+
* - useTheme hook to access theme state
|
|
7
|
+
* - MetaTags to check if theme is enabled and render script
|
|
8
|
+
*/
|
|
9
|
+
import { type Context } from "react";
|
|
10
|
+
import type { ResolvedThemeConfig, ThemeContextValue } from "./types.js";
|
|
11
|
+
/**
|
|
12
|
+
* React context for theme state
|
|
13
|
+
* null when theme is not enabled in router config
|
|
14
|
+
*/
|
|
15
|
+
export declare const ThemeContext: Context<ThemeContextValue | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Initialize theme config synchronously for SSR.
|
|
18
|
+
* Called before rendering to populate state for MetaTags.
|
|
19
|
+
*
|
|
20
|
+
* @param config - Theme config from router, or null if theme is disabled
|
|
21
|
+
*/
|
|
22
|
+
export declare function initThemeConfigSync(config: ResolvedThemeConfig | null): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get theme config for SSR/hydration.
|
|
25
|
+
* Used by MetaTags to render the theme script.
|
|
26
|
+
*
|
|
27
|
+
* @returns Theme config if available, null otherwise
|
|
28
|
+
*/
|
|
29
|
+
export declare function getSSRThemeConfig(): ResolvedThemeConfig | null;
|
|
30
|
+
/**
|
|
31
|
+
* Get theme context (internal use)
|
|
32
|
+
* Returns null if theme is not enabled
|
|
33
|
+
*/
|
|
34
|
+
export declare function useThemeContext(): ThemeContextValue | null;
|
|
35
|
+
/**
|
|
36
|
+
* Get theme context, throwing if not available
|
|
37
|
+
* Use this in useTheme hook
|
|
38
|
+
*/
|
|
39
|
+
export declare function requireThemeContext(): ThemeContextValue;
|
|
40
|
+
//# sourceMappingURL=theme-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-context.d.ts","sourceRoot":"","sources":["../../src/theme/theme-context.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzE;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAiD,CAAC;AAS7G;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,GAAG,IAAI,CAE9D;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAE1D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,iBAAiB,CAUvD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
/**
|
|
3
|
+
* Theme context for sharing theme state and configuration.
|
|
4
|
+
*
|
|
5
|
+
* Used by:
|
|
6
|
+
* - ThemeProvider to provide theme state
|
|
7
|
+
* - useTheme hook to access theme state
|
|
8
|
+
* - MetaTags to check if theme is enabled and render script
|
|
9
|
+
*/
|
|
10
|
+
import { createContext, useContext } from "react";
|
|
11
|
+
/**
|
|
12
|
+
* React context for theme state
|
|
13
|
+
* null when theme is not enabled in router config
|
|
14
|
+
*/
|
|
15
|
+
export const ThemeContext = createContext(null);
|
|
16
|
+
/**
|
|
17
|
+
* SSR module-level state for theme config.
|
|
18
|
+
* Populated by initThemeConfigSync before React renders.
|
|
19
|
+
* Used by MetaTags during SSR to render the theme script.
|
|
20
|
+
*/
|
|
21
|
+
let ssrThemeConfig = null;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize theme config synchronously for SSR.
|
|
24
|
+
* Called before rendering to populate state for MetaTags.
|
|
25
|
+
*
|
|
26
|
+
* @param config - Theme config from router, or null if theme is disabled
|
|
27
|
+
*/
|
|
28
|
+
export function initThemeConfigSync(config) {
|
|
29
|
+
ssrThemeConfig = config;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get theme config for SSR/hydration.
|
|
33
|
+
* Used by MetaTags to render the theme script.
|
|
34
|
+
*
|
|
35
|
+
* @returns Theme config if available, null otherwise
|
|
36
|
+
*/
|
|
37
|
+
export function getSSRThemeConfig() {
|
|
38
|
+
return ssrThemeConfig;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get theme context (internal use)
|
|
42
|
+
* Returns null if theme is not enabled
|
|
43
|
+
*/
|
|
44
|
+
export function useThemeContext() {
|
|
45
|
+
return useContext(ThemeContext);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get theme context, throwing if not available
|
|
49
|
+
* Use this in useTheme hook
|
|
50
|
+
*/
|
|
51
|
+
export function requireThemeContext() {
|
|
52
|
+
const ctx = useContext(ThemeContext);
|
|
53
|
+
if (!ctx) {
|
|
54
|
+
throw new Error("useTheme must be used within a ThemeProvider. " +
|
|
55
|
+
"Make sure theme is enabled in your router config: " +
|
|
56
|
+
"createRouter({ theme: { ... } })");
|
|
57
|
+
}
|
|
58
|
+
return ctx;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=theme-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-context.js","sourceRoot":"","sources":["../../src/theme/theme-context.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;GAOG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAgB,MAAM,OAAO,CAAC;AAGhE;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAsC,aAAa,CAA2B,IAAI,CAAC,CAAC;AAE7G;;;;GAIG;AACH,IAAI,cAAc,GAA+B,IAAI,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAkC;IACpE,cAAc,GAAG,MAAM,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,gDAAgD;YAC9C,oDAAoD;YACpD,kCAAkC,CACrC,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates an inline script for FOUC prevention.
|
|
3
|
+
*
|
|
4
|
+
* This script runs synchronously before page paint to:
|
|
5
|
+
* 1. Read theme from cookie or localStorage
|
|
6
|
+
* 2. Detect system preference if theme is "system"
|
|
7
|
+
* 3. Apply theme to HTML element via class or data attribute
|
|
8
|
+
* 4. Optionally set color-scheme CSS property
|
|
9
|
+
*
|
|
10
|
+
* The script is minified and inlined in <head> before any other content.
|
|
11
|
+
*/
|
|
12
|
+
import type { ResolvedThemeConfig } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Generate the inline script for theme initialization
|
|
15
|
+
*
|
|
16
|
+
* The script is designed to:
|
|
17
|
+
* - Run synchronously before paint (blocking)
|
|
18
|
+
* - Be as small as possible to minimize blocking time
|
|
19
|
+
* - Work without any external dependencies
|
|
20
|
+
* - Handle all edge cases (no localStorage, no cookie, etc.)
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateThemeScript(config: ResolvedThemeConfig): string;
|
|
23
|
+
/**
|
|
24
|
+
* Generate nonce attribute string if nonce is provided
|
|
25
|
+
*/
|
|
26
|
+
export declare function getNonceAttribute(nonce?: string): string;
|
|
27
|
+
//# sourceMappingURL=theme-script.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-script.d.ts","sourceRoot":"","sources":["../../src/theme/theme-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAiGvE;AA0BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates an inline script for FOUC prevention.
|
|
3
|
+
*
|
|
4
|
+
* This script runs synchronously before page paint to:
|
|
5
|
+
* 1. Read theme from cookie or localStorage
|
|
6
|
+
* 2. Detect system preference if theme is "system"
|
|
7
|
+
* 3. Apply theme to HTML element via class or data attribute
|
|
8
|
+
* 4. Optionally set color-scheme CSS property
|
|
9
|
+
*
|
|
10
|
+
* The script is minified and inlined in <head> before any other content.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Generate the inline script for theme initialization
|
|
14
|
+
*
|
|
15
|
+
* The script is designed to:
|
|
16
|
+
* - Run synchronously before paint (blocking)
|
|
17
|
+
* - Be as small as possible to minimize blocking time
|
|
18
|
+
* - Work without any external dependencies
|
|
19
|
+
* - Handle all edge cases (no localStorage, no cookie, etc.)
|
|
20
|
+
*/
|
|
21
|
+
export function generateThemeScript(config) {
|
|
22
|
+
// Build the script as a string, then minify
|
|
23
|
+
const script = `
|
|
24
|
+
(function() {
|
|
25
|
+
var storageKey = ${JSON.stringify(config.storageKey)};
|
|
26
|
+
var defaultTheme = ${JSON.stringify(config.defaultTheme)};
|
|
27
|
+
var attribute = ${JSON.stringify(config.attribute)};
|
|
28
|
+
var enableSystem = ${config.enableSystem};
|
|
29
|
+
var enableColorScheme = ${config.enableColorScheme};
|
|
30
|
+
var valueMap = ${JSON.stringify(config.value)};
|
|
31
|
+
var themes = ${JSON.stringify(config.themes)};
|
|
32
|
+
|
|
33
|
+
// Read theme from cookie or localStorage
|
|
34
|
+
function getStoredTheme() {
|
|
35
|
+
// Try cookie first (for SSR consistency)
|
|
36
|
+
var cookies = document.cookie.split(';');
|
|
37
|
+
for (var i = 0; i < cookies.length; i++) {
|
|
38
|
+
var cookie = cookies[i].trim();
|
|
39
|
+
if (cookie.indexOf(storageKey + '=') === 0) {
|
|
40
|
+
return decodeURIComponent(cookie.substring(storageKey.length + 1));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Fall back to localStorage
|
|
44
|
+
try {
|
|
45
|
+
return localStorage.getItem(storageKey);
|
|
46
|
+
} catch (e) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Get system preference
|
|
52
|
+
function getSystemTheme() {
|
|
53
|
+
if (typeof window !== 'undefined' && window.matchMedia) {
|
|
54
|
+
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
|
55
|
+
}
|
|
56
|
+
return 'light';
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Resolve "system" to actual theme
|
|
60
|
+
function resolveTheme(theme) {
|
|
61
|
+
if (theme === 'system' && enableSystem) {
|
|
62
|
+
return getSystemTheme();
|
|
63
|
+
}
|
|
64
|
+
return theme;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Apply theme to HTML element
|
|
68
|
+
function applyTheme(theme) {
|
|
69
|
+
var resolved = resolveTheme(theme);
|
|
70
|
+
var value = valueMap[resolved] || resolved;
|
|
71
|
+
var el = document.documentElement;
|
|
72
|
+
|
|
73
|
+
// Apply attribute
|
|
74
|
+
if (attribute === 'class') {
|
|
75
|
+
// Remove all theme classes, then add current
|
|
76
|
+
for (var i = 0; i < themes.length; i++) {
|
|
77
|
+
var v = valueMap[themes[i]] || themes[i];
|
|
78
|
+
el.classList.remove(v);
|
|
79
|
+
}
|
|
80
|
+
el.classList.add(value);
|
|
81
|
+
} else {
|
|
82
|
+
el.setAttribute(attribute, value);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Set color-scheme for native dark mode support
|
|
86
|
+
if (enableColorScheme) {
|
|
87
|
+
el.style.colorScheme = resolved;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Get stored theme or use default
|
|
92
|
+
var stored = getStoredTheme();
|
|
93
|
+
var theme = stored && (stored === 'system' || themes.indexOf(stored) !== -1)
|
|
94
|
+
? stored
|
|
95
|
+
: defaultTheme;
|
|
96
|
+
|
|
97
|
+
// Apply immediately
|
|
98
|
+
applyTheme(theme);
|
|
99
|
+
|
|
100
|
+
// Listen for system preference changes (for "system" theme)
|
|
101
|
+
if (enableSystem && typeof window !== 'undefined' && window.matchMedia) {
|
|
102
|
+
try {
|
|
103
|
+
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function() {
|
|
104
|
+
var current = getStoredTheme() || defaultTheme;
|
|
105
|
+
if (current === 'system') {
|
|
106
|
+
applyTheme('system');
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
} catch (e) {
|
|
110
|
+
// Older browsers may not support addEventListener on MediaQueryList
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
})();
|
|
114
|
+
`;
|
|
115
|
+
// Minify by removing comments, extra whitespace, and newlines
|
|
116
|
+
return minifyScript(script);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Basic script minification
|
|
120
|
+
* Removes comments, extra whitespace, and unnecessary newlines
|
|
121
|
+
*/
|
|
122
|
+
function minifyScript(script) {
|
|
123
|
+
return script
|
|
124
|
+
// Remove single-line comments
|
|
125
|
+
.replace(/\/\/.*$/gm, "")
|
|
126
|
+
// Remove multi-line comments
|
|
127
|
+
.replace(/\/\*[\s\S]*?\*\//g, "")
|
|
128
|
+
// Remove leading/trailing whitespace from lines
|
|
129
|
+
.split("\n")
|
|
130
|
+
.map((line) => line.trim())
|
|
131
|
+
.filter((line) => line.length > 0)
|
|
132
|
+
.join("")
|
|
133
|
+
// Collapse multiple spaces to single space
|
|
134
|
+
.replace(/\s+/g, " ")
|
|
135
|
+
// Remove spaces around operators and punctuation
|
|
136
|
+
.replace(/\s*([{};,=!<>()[\]+\-*/&|?:])\s*/g, "$1")
|
|
137
|
+
// Add back necessary spaces (e.g., "var x")
|
|
138
|
+
.replace(/(var|function|return|if|for|try|catch|typeof|else)\(/g, "$1 (")
|
|
139
|
+
.replace(/\)([a-zA-Z])/g, ") $1");
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Generate nonce attribute string if nonce is provided
|
|
143
|
+
*/
|
|
144
|
+
export function getNonceAttribute(nonce) {
|
|
145
|
+
return nonce ? ` nonce="${nonce}"` : "";
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=theme-script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-script.js","sourceRoot":"","sources":["../../src/theme/theme-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA2B;IAC7D,4CAA4C;IAC5C,MAAM,MAAM,GAAG;;qBAEI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;uBAC/B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;uBAC7B,MAAM,CAAC,YAAY;4BACd,MAAM,CAAC,iBAAiB;mBACjC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmF7C,CAAC;IAEA,8DAA8D;IAC9D,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,OAAO,MAAM;QACX,8BAA8B;SAC7B,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QACzB,6BAA6B;SAC5B,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACjC,gDAAgD;SAC/C,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,EAAE,CAAC;QACT,2CAA2C;SAC1C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;QACrB,iDAAiD;SAChD,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC;QACnD,4CAA4C;SAC3C,OAAO,CAAC,uDAAuD,EAAE,MAAM,CAAC;SACxE,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C,CAAC"}
|