@codeyam/codeyam-cli 0.1.0-staging.596f0eb → 0.1.0-staging.76566f9
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/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +2 -1
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +2 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +22 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.ts +23 -1
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +401 -106
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +60 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +734 -45
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +2 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.ts +715 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.ts +233 -75
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +19 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +34 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +23 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.ts +98 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +34 -1
- package/analyzer-template/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.ts +236 -24
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityKeyAttributes.ts +18 -1
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarioData.ts +41 -0
- package/analyzer-template/packages/ai/src/lib/generateChangesEntityScenarios.ts +37 -4
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/generateEntityKeyAttributes.ts +213 -12
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +36 -25
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +114 -11
- package/analyzer-template/packages/ai/src/lib/getConditionalUsagesFromCode.ts +143 -31
- package/analyzer-template/packages/ai/src/lib/guessScenarioDataFromDescription.ts +8 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +7 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.ts +42 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.ts +38 -2
- package/analyzer-template/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.ts +28 -2
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/worker/analyzeScopeWorker.ts +8 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +127 -43
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +158 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +405 -45
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.ts +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +260 -133
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.ts +10 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarioData.ts +77 -83
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateScenarios.ts +2 -5
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +196 -86
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts +15 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.d.ts.map +1 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js +31 -0
- package/analyzer-template/packages/aws/dist/src/lib/s3/checkS3ObjectExists.js.map +1 -0
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/aws/s3/index.ts +1 -0
- package/analyzer-template/packages/aws/src/lib/s3/checkS3ObjectExists.ts +47 -0
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +4 -4
- package/analyzer-template/packages/database/src/lib/kysely/tableRelations.ts +2 -2
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +20 -9
- package/analyzer-template/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.ts +9 -4
- package/analyzer-template/packages/generate/src/lib/deepMerge.ts +26 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tableRelations.d.ts +2 -2
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts +8 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/analysesTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +14 -7
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/scenariosTable.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
- package/analyzer-template/packages/github/dist/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js +27 -1
- package/analyzer-template/packages/github/dist/generate/src/lib/deepMerge.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.d.ts +4 -3
- package/analyzer-template/packages/github/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/index.js +1 -0
- package/analyzer-template/packages/github/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts +31 -1
- package/analyzer-template/packages/github/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts +51 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/github/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/github/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/types/index.ts +8 -0
- package/analyzer-template/packages/types/src/types/Analysis.ts +32 -1
- package/analyzer-template/packages/types/src/types/Scenario.ts +75 -6
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +49 -0
- package/analyzer-template/packages/ui-components/src/components/ScenarioDetailInteractiveView.tsx +23 -7
- package/analyzer-template/packages/utils/dist/types/index.d.ts +4 -3
- package/analyzer-template/packages/utils/dist/types/index.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/index.js +1 -0
- package/analyzer-template/packages/utils/dist/types/index.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts +31 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Analysis.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts +51 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js +21 -1
- package/analyzer-template/packages/utils/dist/types/src/types/Scenario.js.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +48 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/analyzer-template/packages/utils/dist/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/analyzer-template/packages/utils/src/lib/lightweightEntityExtractor.ts +27 -0
- package/analyzer-template/playwright/takeElementScreenshot.ts +26 -11
- package/analyzer-template/playwright/takeScreenshot.ts +9 -7
- package/analyzer-template/project/constructMockCode.ts +286 -84
- package/analyzer-template/project/orchestrateCapture/SequentialCaptureTaskRunner.ts +77 -37
- package/analyzer-template/project/reconcileMockDataKeys.ts +5 -2
- package/analyzer-template/project/runMultiScenarioServer.ts +11 -10
- package/analyzer-template/project/serverOnlyModules.ts +71 -23
- package/analyzer-template/project/start.ts +10 -0
- package/analyzer-template/project/startScenarioCapture.ts +73 -41
- package/analyzer-template/project/writeMockDataTsx.ts +115 -54
- package/analyzer-template/project/writeScenarioComponents.ts +571 -162
- package/analyzer-template/project/writeSimpleRoot.ts +11 -13
- package/background/src/lib/virtualized/project/constructMockCode.js +265 -75
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js +67 -32
- package/background/src/lib/virtualized/project/orchestrateCapture/SequentialCaptureTaskRunner.js.map +1 -1
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js +5 -2
- package/background/src/lib/virtualized/project/reconcileMockDataKeys.js.map +1 -1
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js +11 -9
- package/background/src/lib/virtualized/project/runMultiScenarioServer.js.map +1 -1
- package/background/src/lib/virtualized/project/serverOnlyModules.js +62 -25
- package/background/src/lib/virtualized/project/serverOnlyModules.js.map +1 -1
- package/background/src/lib/virtualized/project/start.js +6 -0
- package/background/src/lib/virtualized/project/start.js.map +1 -1
- package/background/src/lib/virtualized/project/startScenarioCapture.js +54 -31
- package/background/src/lib/virtualized/project/startScenarioCapture.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +106 -46
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +399 -106
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +11 -11
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +14 -2
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +215 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -0
- package/codeyam-cli/src/commands/report.js +26 -23
- package/codeyam-cli/src/commands/report.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +2 -2
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +252 -106
- package/codeyam-cli/src/utils/generateReport.js.map +1 -1
- package/codeyam-cli/src/utils/install-skills.js +2 -2
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js +38 -0
- package/codeyam-cli/src/utils/queue/__tests__/manager.test.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +140 -16
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/queue/manager.js +19 -7
- package/codeyam-cli/src/utils/queue/manager.js.map +1 -1
- package/codeyam-cli/src/utils/queue/persistence.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +47 -0
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/dbNotifier.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +5 -10
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/bootstrap.js +9 -0
- package/codeyam-cli/src/webserver/bootstrap.js.map +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-wXL1Z2Aq.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-efWKDYMr.js → EntityTypeBadge-CzGX-miz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-CXFKsCOD.js +41 -0
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-D-9pXIaY.js +25 -0
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-CBQPrpT0.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/LoadingDots-D1CdlbrV.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-wDPcZNKx.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-4lcOlid-.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-BfmDgXxG.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-CUxUNEEC.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-COPstp9J.js → TruncatedFilePath-6J7zDUD5.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/_index-DHImXdXq.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-CVP_WGQ3.js +32 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.link-scenario-value-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-key-attributes-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.update-valid-values-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-BYimnrHg.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/chunk-JMJ3UQ3L-BambyYE_.js +51 -0
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-CaVsIRxt.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-CgUsG7ib.js +21 -0
- package/codeyam-cli/src/webserver/build/client/assets/cy-logo-cli-CKnwPCDr.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-DW_hdGUc.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-Dt-SjPsw.js +23 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha.scenarios._scenarioId.fullscreen-DyB90fWk.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-D_3ero5o.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-CfLCUi9S.js +5 -0
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-DKJyZfAY.js +29 -0
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-DAtOlaWE.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/files-ClR0d32A.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/git-D62Lxxmv.js +15 -0
- package/codeyam-cli/src/webserver/build/client/assets/globals-C9s7Lhdl.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-fmIEn3Bc.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-BosqDOlH.js +3 -0
- package/codeyam-cli/src/webserver/build/client/assets/index-CzNNiTkw.js +9 -0
- package/codeyam-cli/src/webserver/build/client/assets/keyAttributeCoverage-CTlFMihX.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-CNp9QFCX.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/manifest-0d27da29.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/preload-helper-ckwbz45p.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-B_wIKCIf.js +56 -0
- package/codeyam-cli/src/webserver/build/client/assets/scenarioStatus-B_8jpV3e.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/search-DDGjYAMJ.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/settings-DgTyB-Wg.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/simulations-CoNWGt0K.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-CBc5dE1s.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/useCustomSizes-BMIGFP-m.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/useInteractiveMode-Dk_FQqWJ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-3pmpUQB-.js → useLastLogLine-BqPPNjAl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-DsJbgMY9.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-DEyawJ8r.js → useToast-DWHcCcl1.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-CU58-Ttc.js +1 -0
- package/codeyam-cli/src/webserver/build/server/assets/server-build-D35o2uae.js +175 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/devServer.js +1 -3
- package/codeyam-cli/src/webserver/devServer.js.map +1 -1
- package/codeyam-cli/templates/codeyam-setup-skill.md +138 -3
- package/codeyam-cli/templates/debug-codeyam.md +625 -0
- package/package.json +14 -14
- package/packages/ai/src/lib/analyzeScope.js +2 -0
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +16 -0
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js +16 -0
- package/packages/ai/src/lib/astScopes/patterns/switchStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +305 -88
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +582 -41
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +2 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js +454 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/MuiManager.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js +173 -55
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/ReactFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +16 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +30 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +20 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js +86 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertNullToUndefinedBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +28 -2
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js +179 -17
- package/packages/ai/src/lib/gatherRelevantDependentKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js +6 -0
- package/packages/ai/src/lib/generateChangesEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js +41 -0
- package/packages/ai/src/lib/generateChangesEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateChangesEntityScenarios.js +37 -4
- package/packages/ai/src/lib/generateChangesEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +4 -0
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityKeyAttributes.js +176 -9
- package/packages/ai/src/lib/generateEntityKeyAttributes.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +29 -25
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +105 -9
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js +84 -14
- package/packages/ai/src/lib/getConditionalUsagesFromCode.js.map +1 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js +2 -1
- package/packages/ai/src/lib/guessScenarioDataFromDescription.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +6 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateChangesEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js +38 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenariosGenerator.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js +16 -3
- package/packages/ai/src/lib/promptGenerators/guessNewScenarioDataFromDescriptionGenerator.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js +4 -0
- package/packages/ai/src/lib/worker/analyzeScopeWorker.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +100 -23
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +125 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +298 -45
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateChangesScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +201 -80
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js +10 -5
- package/packages/analyze/src/lib/files/scenarios/generateKeyAttributes.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js +55 -69
- package/packages/analyze/src/lib/files/scenarios/generateScenarioData.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js +2 -5
- package/packages/analyze/src/lib/files/scenarios/generateScenarios.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +171 -81
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +2 -2
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js +9 -3
- package/packages/database/src/lib/kysely/tables/debugReportsTable.js.map +1 -1
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js +8 -4
- package/packages/generate/src/lib/componentScenarioPage/getIFrameMessageListenerCode.js.map +1 -1
- package/packages/generate/src/lib/deepMerge.js +27 -1
- package/packages/generate/src/lib/deepMerge.js.map +1 -1
- package/packages/types/index.js +1 -0
- package/packages/types/index.js.map +1 -1
- package/packages/types/src/types/Scenario.js +21 -1
- package/packages/types/src/types/Scenario.js.map +1 -1
- package/packages/utils/src/lib/lightweightEntityExtractor.js +25 -0
- package/packages/utils/src/lib/lightweightEntityExtractor.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +3 -1
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js +0 -238
- package/codeyam-cli/scripts/fixtures/cal.com/universal-mocks/packages/prisma/index.js.map +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityItem-CVbSvOjo.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/EntityTypeIcon-DcwcHyl5.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/InteractivePreview-WgwC1GfJ.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/LibraryFunctionPreview-IEKom9O2.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/LogViewer-BYnfxbUG.js +0 -3
- package/codeyam-cli/src/webserver/build/client/assets/ReportIssueModal-_lBPJCzG.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/SafeScreenshot-lHVhvsu_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/ScenarioViewer-d_TBk4GQ.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/_index-kGT7VUqj.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/activity.(_tab)-DDGmhu7P.js +0 -7
- package/codeyam-cli/src/webserver/build/client/assets/chevron-down-n_HPRfM_.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/chunk-WWGJGFF6-CbVoyx1U.js +0 -26
- package/codeyam-cli/src/webserver/build/client/assets/circle-check-D1VOYveA.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/createLucideIcon-YR8jjAlu.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/dev.empty-B8vP3V_s.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha._-CN6aLCT1.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.create-scenario-DA5Jeu2P.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/entity._sha_.edit._scenarioId-BTeitalf.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/entry.client-du6UEYD-.js +0 -13
- package/codeyam-cli/src/webserver/build/client/assets/fileTableUtils-BpjkhMoi.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/files-BQGvk4lJ.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/git-DVdYRT-I.js +0 -12
- package/codeyam-cli/src/webserver/build/client/assets/globals-CO-U8Bpo.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/html2canvas-pro.esm-XQCGvadH.js +0 -5
- package/codeyam-cli/src/webserver/build/client/assets/index-DCG-vks0.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/loader-circle-GazdNeLl.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-0b694d28.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/root-D3tQP7hx.js +0 -16
- package/codeyam-cli/src/webserver/build/client/assets/search-CIY6XmtE.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/server-build-CMKNK2uU.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-CoMDgElu.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/simulations-agkniXp2.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/triangle-alert-B2VUcygF.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/useReportContext-EvdK-zXP.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/index-DGVHQEXD.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-CghkTkIL.js +0 -166
- package/codeyam-cli/templates/debug-command.md +0 -303
- /package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-CMKNK2uU.css → styles-CMKNK2uU.css} +0 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function Ba(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const o=Object.getOwnPropertyDescriptor(n,a);o&&Object.defineProperty(e,a,o.get?o:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var us=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Wa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xt={exports:{}},ot={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Jr;function Ya(){if(Jr)return ot;Jr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(n,a,o){var i=null;if(o!==void 0&&(i=""+o),a.key!==void 0&&(i=""+a.key),"key"in a){o={};for(var l in a)l!=="key"&&(o[l]=a[l])}else o=a;return a=o.ref,{$$typeof:e,type:n,key:i,ref:a!==void 0?a:null,props:o}}return ot.Fragment=t,ot.jsx=r,ot.jsxs=r,ot}var Gr;function Va(){return Gr||(Gr=1,Xt.exports=Ya()),Xt.exports}var cs=Va(),qt={exports:{}},B={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var Kr;function Ja(){if(Kr)return B;Kr=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),i=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),s=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),c=Symbol.for("react.activity"),y=Symbol.iterator;function g(p){return p===null||typeof p!="object"?null:(p=y&&p[y]||p["@@iterator"],typeof p=="function"?p:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,R={};function b(p,S,j){this.props=p,this.context=S,this.refs=R,this.updater=j||E}b.prototype.isReactComponent={},b.prototype.setState=function(p,S){if(typeof p!="object"&&typeof p!="function"&&p!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,p,S,"setState")},b.prototype.forceUpdate=function(p){this.updater.enqueueForceUpdate(this,p,"forceUpdate")};function L(){}L.prototype=b.prototype;function D(p,S,j){this.props=p,this.context=S,this.refs=R,this.updater=j||E}var k=D.prototype=new L;k.constructor=D,C(k,b.prototype),k.isPureReactComponent=!0;var T=Array.isArray;function _(){}var m={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function H(p,S,j){var N=j.ref;return{$$typeof:e,type:p,key:S,ref:N!==void 0?N:null,props:j}}function J(p,S){return H(p.type,S,p.props)}function K(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function ae(p){var S={"=":"=0",":":"=2"};return"$"+p.replace(/[=:]/g,function(j){return S[j]})}var le=/\/+/g;function Q(p,S){return typeof p=="object"&&p!==null&&p.key!=null?ae(""+p.key):S.toString(36)}function ue(p){switch(p.status){case"fulfilled":return p.value;case"rejected":throw p.reason;default:switch(typeof p.status=="string"?p.then(_,_):(p.status="pending",p.then(function(S){p.status==="pending"&&(p.status="fulfilled",p.value=S)},function(S){p.status==="pending"&&(p.status="rejected",p.reason=S)})),p.status){case"fulfilled":return p.value;case"rejected":throw p.reason}}throw p}function X(p,S,j,N,z){var G=typeof p;(G==="undefined"||G==="boolean")&&(p=null);var te=!1;if(p===null)te=!0;else switch(G){case"bigint":case"string":case"number":te=!0;break;case"object":switch(p.$$typeof){case e:case t:te=!0;break;case h:return te=p._init,X(te(p._payload),S,j,N,z)}}if(te)return z=z(p),te=N===""?"."+Q(p,0):N,T(z)?(j="",te!=null&&(j=te.replace(le,"$&/")+"/"),X(z,S,j,"",function(Yt){return Yt})):z!=null&&(K(z)&&(z=J(z,j+(z.key==null||p&&p.key===z.key?"":(""+z.key).replace(le,"$&/")+"/")+te)),S.push(z)),1;te=0;var de=N===""?".":N+":";if(T(p))for(var me=0;me<p.length;me++)N=p[me],G=de+Q(N,me),te+=X(N,S,j,G,z);else if(me=g(p),typeof me=="function")for(p=me.call(p),me=0;!(N=p.next()).done;)N=N.value,G=de+Q(N,me++),te+=X(N,S,j,G,z);else if(G==="object"){if(typeof p.then=="function")return X(ue(p),S,j,N,z);throw S=String(p),Error("Objects are not valid as a React child (found: "+(S==="[object Object]"?"object with keys {"+Object.keys(p).join(", ")+"}":S)+"). If you meant to render a collection of children, use an array instead.")}return te}function ee(p,S,j){if(p==null)return p;var N=[],z=0;return X(p,N,"","",function(G){return S.call(j,G,z++)}),N}function re(p){if(p._status===-1){var S=p._result;S=S(),S.then(function(j){(p._status===0||p._status===-1)&&(p._status=1,p._result=j)},function(j){(p._status===0||p._status===-1)&&(p._status=2,p._result=j)}),p._status===-1&&(p._status=0,p._result=S)}if(p._status===1)return p._result.default;throw p._result}var ce=typeof reportError=="function"?reportError:function(p){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var S=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof p=="object"&&p!==null&&typeof p.message=="string"?String(p.message):String(p),error:p});if(!window.dispatchEvent(S))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",p);return}console.error(p)},se={map:ee,forEach:function(p,S,j){ee(p,function(){S.apply(this,arguments)},j)},count:function(p){var S=0;return ee(p,function(){S++}),S},toArray:function(p){return ee(p,function(S){return S})||[]},only:function(p){if(!K(p))throw Error("React.Children.only expected to receive a single React element child.");return p}};return B.Activity=c,B.Children=se,B.Component=b,B.Fragment=r,B.Profiler=a,B.PureComponent=D,B.StrictMode=n,B.Suspense=s,B.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=m,B.__COMPILER_RUNTIME={__proto__:null,c:function(p){return m.H.useMemoCache(p)}},B.cache=function(p){return function(){return p.apply(null,arguments)}},B.cacheSignal=function(){return null},B.cloneElement=function(p,S,j){if(p==null)throw Error("The argument must be a React element, but you passed "+p+".");var N=C({},p.props),z=p.key;if(S!=null)for(G in S.key!==void 0&&(z=""+S.key),S)!M.call(S,G)||G==="key"||G==="__self"||G==="__source"||G==="ref"&&S.ref===void 0||(N[G]=S[G]);var G=arguments.length-2;if(G===1)N.children=j;else if(1<G){for(var te=Array(G),de=0;de<G;de++)te[de]=arguments[de+2];N.children=te}return H(p.type,z,N)},B.createContext=function(p){return p={$$typeof:i,_currentValue:p,_currentValue2:p,_threadCount:0,Provider:null,Consumer:null},p.Provider=p,p.Consumer={$$typeof:o,_context:p},p},B.createElement=function(p,S,j){var N,z={},G=null;if(S!=null)for(N in S.key!==void 0&&(G=""+S.key),S)M.call(S,N)&&N!=="key"&&N!=="__self"&&N!=="__source"&&(z[N]=S[N]);var te=arguments.length-2;if(te===1)z.children=j;else if(1<te){for(var de=Array(te),me=0;me<te;me++)de[me]=arguments[me+2];z.children=de}if(p&&p.defaultProps)for(N in te=p.defaultProps,te)z[N]===void 0&&(z[N]=te[N]);return H(p,G,z)},B.createRef=function(){return{current:null}},B.forwardRef=function(p){return{$$typeof:l,render:p}},B.isValidElement=K,B.lazy=function(p){return{$$typeof:h,_payload:{_status:-1,_result:p},_init:re}},B.memo=function(p,S){return{$$typeof:u,type:p,compare:S===void 0?null:S}},B.startTransition=function(p){var S=m.T,j={};m.T=j;try{var N=p(),z=m.S;z!==null&&z(j,N),typeof N=="object"&&N!==null&&typeof N.then=="function"&&N.then(_,ce)}catch(G){ce(G)}finally{S!==null&&j.types!==null&&(S.types=j.types),m.T=S}},B.unstable_useCacheRefresh=function(){return m.H.useCacheRefresh()},B.use=function(p){return m.H.use(p)},B.useActionState=function(p,S,j){return m.H.useActionState(p,S,j)},B.useCallback=function(p,S){return m.H.useCallback(p,S)},B.useContext=function(p){return m.H.useContext(p)},B.useDebugValue=function(){},B.useDeferredValue=function(p,S){return m.H.useDeferredValue(p,S)},B.useEffect=function(p,S){return m.H.useEffect(p,S)},B.useEffectEvent=function(p){return m.H.useEffectEvent(p)},B.useId=function(){return m.H.useId()},B.useImperativeHandle=function(p,S,j){return m.H.useImperativeHandle(p,S,j)},B.useInsertionEffect=function(p,S){return m.H.useInsertionEffect(p,S)},B.useLayoutEffect=function(p,S){return m.H.useLayoutEffect(p,S)},B.useMemo=function(p,S){return m.H.useMemo(p,S)},B.useOptimistic=function(p,S){return m.H.useOptimistic(p,S)},B.useReducer=function(p,S,j){return m.H.useReducer(p,S,j)},B.useRef=function(p){return m.H.useRef(p)},B.useState=function(p){return m.H.useState(p)},B.useSyncExternalStore=function(p,S,j){return m.H.useSyncExternalStore(p,S,j)},B.useTransition=function(){return m.H.useTransition()},B.version="19.2.3",B}var Xr;function Ga(){return Xr||(Xr=1,qt.exports=Ja()),qt.exports}var f=Ga();const Ka=Wa(f),Xa=Ba({__proto__:null,default:Ka},[f]);/**
|
|
18
|
+
* react-router v7.11.0
|
|
19
|
+
*
|
|
20
|
+
* Copyright (c) Remix Software Inc.
|
|
21
|
+
*
|
|
22
|
+
* This source code is licensed under the MIT license found in the
|
|
23
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
24
|
+
*
|
|
25
|
+
* @license MIT
|
|
26
|
+
*/var Tn=e=>{throw TypeError(e)},qa=(e,t,r)=>t.has(e)||Tn("Cannot "+r),Qt=(e,t,r)=>(qa(e,t,"read from private field"),r?r.call(e):t.get(e)),Qa=(e,t,r)=>t.has(e)?Tn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),qr="popstate";function ds(e={}){function t(n,a){let{pathname:o,search:i,hash:l}=n.location;return ft("",{pathname:o,search:i,hash:l},a.state&&a.state.usr||null,a.state&&a.state.key||"default")}function r(n,a){return typeof a=="string"?a:Me(a)}return eo(t,r,null,e)}function W(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function oe(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Za(){return Math.random().toString(36).substring(2,10)}function Qr(e,t){return{usr:e.state,key:e.key,idx:t}}function ft(e,t,r=null,n){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?$e(t):t,state:r,key:t&&t.key||n||Za()}}function Me({pathname:e="/",search:t="",hash:r=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),r&&r!=="#"&&(e+=r.charAt(0)==="#"?r:"#"+r),e}function $e(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substring(r),e=e.substring(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substring(n),e=e.substring(0,n)),e&&(t.pathname=e)}return t}function eo(e,t,r,n={}){let{window:a=document.defaultView,v5Compat:o=!1}=n,i=a.history,l="POP",s=null,u=h();u==null&&(u=0,i.replaceState({...i.state,idx:u},""));function h(){return(i.state||{idx:null}).idx}function c(){l="POP";let R=h(),b=R==null?null:R-u;u=R,s&&s({action:l,location:C.location,delta:b})}function y(R,b){l="PUSH";let L=ft(C.location,R,b);u=h()+1;let D=Qr(L,u),k=C.createHref(L);try{i.pushState(D,"",k)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;a.location.assign(k)}o&&s&&s({action:l,location:C.location,delta:1})}function g(R,b){l="REPLACE";let L=ft(C.location,R,b);u=h();let D=Qr(L,u),k=C.createHref(L);i.replaceState(D,"",k),o&&s&&s({action:l,location:C.location,delta:0})}function E(R){return Mn(R)}let C={get action(){return l},get location(){return e(a,i)},listen(R){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(qr,c),s=R,()=>{a.removeEventListener(qr,c),s=null}},createHref(R){return t(a,R)},createURL:E,encodeLocation(R){let b=E(R);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:y,replace:g,go(R){return i.go(R)}};return C}function Mn(e,t=!1){let r="http://localhost";typeof window<"u"&&(r=window.location.origin!=="null"?window.location.origin:window.location.href),W(r,"No window.location.(origin|href) available to create URL");let n=typeof e=="string"?e:Me(e);return n=n.replace(/ $/,"%20"),!t&&n.startsWith("//")&&(n=r+n),new URL(n,r)}var ut,Zr=class{constructor(e){if(Qa(this,ut,new Map),e)for(let[t,r]of e)this.set(t,r)}get(e){if(Qt(this,ut).has(e))return Qt(this,ut).get(e);if(e.defaultValue!==void 0)return e.defaultValue;throw new Error("No value found for context")}set(e,t){Qt(this,ut).set(e,t)}};ut=new WeakMap;var to=new Set(["lazy","caseSensitive","path","id","index","children"]);function ro(e){return to.has(e)}var no=new Set(["lazy","caseSensitive","path","id","index","middleware","children"]);function ao(e){return no.has(e)}function oo(e){return e.index===!0}function ht(e,t,r=[],n={},a=!1){return e.map((o,i)=>{let l=[...r,String(i)],s=typeof o.id=="string"?o.id:l.join("-");if(W(o.index!==!0||!o.children,"Cannot specify children on an index route"),W(a||!n[s],`Found a route id collision on id "${s}". Route id's must be globally unique within Data Router usages`),oo(o)){let u={...o,id:s};return n[s]=en(u,t(u)),u}else{let u={...o,id:s,children:void 0};return n[s]=en(u,t(u)),o.children&&(u.children=ht(o.children,t,l,n,a)),u}})}function en(e,t){return Object.assign(e,{...t,...typeof t.lazy=="object"&&t.lazy!=null?{lazy:{...e.lazy,...t.lazy}}:{}})}function Ie(e,t,r="/"){return ct(e,t,r,!1)}function ct(e,t,r,n){let a=typeof t=="string"?$e(t):t,o=be(a.pathname||"/",r);if(o==null)return null;let i=Dn(e);io(i);let l=null;for(let s=0;l==null&&s<i.length;++s){let u=vo(o);l=yo(i[s],u,n)}return l}function _n(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],loaderData:t[r.id],handle:r.handle}}function Dn(e,t=[],r=[],n="",a=!1){let o=(i,l,s=a,u)=>{let h={relativePath:u===void 0?i.path||"":u,caseSensitive:i.caseSensitive===!0,childrenIndex:l,route:i};if(h.relativePath.startsWith("/")){if(!h.relativePath.startsWith(n)&&s)return;W(h.relativePath.startsWith(n),`Absolute route path "${h.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),h.relativePath=h.relativePath.slice(n.length)}let c=Te([n,h.relativePath]),y=r.concat(h);i.children&&i.children.length>0&&(W(i.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${c}".`),Dn(i.children,t,y,c,s)),!(i.path==null&&!i.index)&&t.push({path:c,score:mo(c,i.index),routesMeta:y})};return e.forEach((i,l)=>{var s;if(i.path===""||!((s=i.path)!=null&&s.includes("?")))o(i,l);else for(let u of On(i.path))o(i,l,!0,u)}),t}function On(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(n.length===0)return a?[o,""]:[o];let i=On(n.join("/")),l=[];return l.push(...i.map(s=>s===""?o:[o,s].join("/"))),a&&l.push(...i),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function io(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:po(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}var lo=/^:[\w-]+$/,so=3,uo=2,co=1,fo=10,ho=-2,tn=e=>e==="*";function mo(e,t){let r=e.split("/"),n=r.length;return r.some(tn)&&(n+=ho),t&&(n+=uo),r.filter(a=>!tn(a)).reduce((a,o)=>a+(lo.test(o)?so:o===""?co:fo),n)}function po(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function yo(e,t,r=!1){let{routesMeta:n}=e,a={},o="/",i=[];for(let l=0;l<n.length;++l){let s=n[l],u=l===n.length-1,h=o==="/"?t:t.slice(o.length)||"/",c=Ft({path:s.relativePath,caseSensitive:s.caseSensitive,end:u},h),y=s.route;if(!c&&u&&r&&!n[n.length-1].route.index&&(c=Ft({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},h)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:Te([o,c.pathname]),pathnameBase:Eo(Te([o,c.pathnameBase])),route:y}),c.pathnameBase!=="/"&&(o=Te([o,c.pathnameBase]))}return i}function Ft(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=An(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),l=a.slice(1);return{params:n.reduce((u,{paramName:h,isOptional:c},y)=>{if(h==="*"){let E=l[y]||"";i=o.slice(0,o.length-E.length).replace(/(.)\/+$/,"$1")}const g=l[y];return c&&!g?u[h]=void 0:u[h]=(g||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:i,pattern:e}}function An(e,t=!1,r=!0){oe(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,s)=>(n.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(n.push({paramName:"*"}),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function vo(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return oe(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function be(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function go({basename:e,pathname:t}){return t==="/"?e:Te([e,t])}var In=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,$t=e=>In.test(e);function wo(e,t="/"){let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?$e(e):e,o;if(r)if($t(r))o=r;else{if(r.includes("//")){let i=r;r=r.replace(/\/\/+/g,"/"),oe(!1,`Pathnames cannot have embedded double slashes - normalizing ${i} -> ${r}`)}r.startsWith("/")?o=rn(r.substring(1),"/"):o=rn(r,t)}else o=t;return{pathname:o,search:Ro(n),hash:bo(a)}}function rn(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Zt(e,t,r,n){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${r}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Fn(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function wr(e){let t=Fn(e);return t.map((r,n)=>n===t.length-1?r.pathname:r.pathnameBase)}function Er(e,t,r,n=!1){let a;typeof e=="string"?a=$e(e):(a={...e},W(!a.pathname||!a.pathname.includes("?"),Zt("?","pathname","search",a)),W(!a.pathname||!a.pathname.includes("#"),Zt("#","pathname","hash",a)),W(!a.search||!a.search.includes("#"),Zt("#","search","hash",a)));let o=e===""||a.pathname==="",i=o?"/":a.pathname,l;if(i==null)l=r;else{let c=t.length-1;if(!n&&i.startsWith("..")){let y=i.split("/");for(;y[0]==="..";)y.shift(),c-=1;a.pathname=y.join("/")}l=c>=0?t[c]:"/"}let s=wo(a,l),u=i&&i!=="/"&&i.endsWith("/"),h=(o||i===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||h)&&(s.pathname+="/"),s}var Te=e=>e.join("/").replace(/\/\/+/g,"/"),Eo=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Ro=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,bo=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,So=class{constructor(e,t){this.type="DataWithResponseInit",this.data=e,this.init=t||null}};function xo(e,t){return new So(e,typeof t=="number"?{status:t}:t)}var Co=(e,t=302)=>{let r=t;typeof r=="number"?r={status:r}:typeof r.status>"u"&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,{...r,headers:n})},je=class{constructor(e,t,r,n=!1){this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}};function Ve(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function pt(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var kn=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Nn(e,t){let r=e;if(typeof r!="string"||!In.test(r))return{absoluteURL:void 0,isExternal:!1,to:r};let n=r,a=!1;if(kn)try{let o=new URL(window.location.href),i=r.startsWith("//")?new URL(o.protocol+r):new URL(r),l=be(i.pathname,t);i.origin===o.origin&&l!=null?r=l+i.search+i.hash:a=!0}catch{oe(!1,`<Link to="${r}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:n,isExternal:a,to:r}}var Ne=Symbol("Uninstrumented");function Lo(e,t){let r={lazy:[],"lazy.loader":[],"lazy.action":[],"lazy.middleware":[],middleware:[],loader:[],action:[]};e.forEach(a=>a({id:t.id,index:t.index,path:t.path,instrument(o){let i=Object.keys(r);for(let l of i)o[l]&&r[l].push(o[l])}}));let n={};if(typeof t.lazy=="function"&&r.lazy.length>0){let a=qe(r.lazy,t.lazy,()=>{});a&&(n.lazy=a)}if(typeof t.lazy=="object"){let a=t.lazy;["middleware","loader","action"].forEach(o=>{let i=a[o],l=r[`lazy.${o}`];if(typeof i=="function"&&l.length>0){let s=qe(l,i,()=>{});s&&(n.lazy=Object.assign(n.lazy||{},{[o]:s}))}})}return["loader","action"].forEach(a=>{let o=t[a];if(typeof o=="function"&&r[a].length>0){let i=o[Ne]??o,l=qe(r[a],i,(...s)=>nn(s[0]));l&&(l[Ne]=i,n[a]=l)}}),t.middleware&&t.middleware.length>0&&r.middleware.length>0&&(n.middleware=t.middleware.map(a=>{let o=a[Ne]??a,i=qe(r.middleware,o,(...l)=>nn(l[0]));return i?(i[Ne]=o,i):a})),n}function Po(e,t){let r={navigate:[],fetch:[]};if(t.forEach(n=>n({instrument(a){let o=Object.keys(a);for(let i of o)a[i]&&r[i].push(a[i])}})),r.navigate.length>0){let n=e.navigate[Ne]??e.navigate,a=qe(r.navigate,n,(...o)=>{let[i,l]=o;return{to:typeof i=="number"||typeof i=="string"?i:i?Me(i):".",...an(e,l??{})}});a&&(a[Ne]=n,e.navigate=a)}if(r.fetch.length>0){let n=e.fetch[Ne]??e.fetch,a=qe(r.fetch,n,(...o)=>{let[i,,l,s]=o;return{href:l??".",fetcherKey:i,...an(e,s??{})}});a&&(a[Ne]=n,e.fetch=a)}return e}function qe(e,t,r){return e.length===0?null:async(...n)=>{let a=await $n(e,r(...n),()=>t(...n),e.length-1);if(a.type==="error")throw a.value;return a.value}}async function $n(e,t,r,n){let a=e[n],o;if(a){let i,l=async()=>(i?console.error("You cannot call instrumented handlers more than once"):i=$n(e,t,r,n-1),o=await i,W(o,"Expected a result"),o.type==="error"&&o.value instanceof Error?{status:"error",error:o.value}:{status:"success",error:void 0});try{await a(l,t)}catch(s){console.error("An instrumentation function threw an error:",s)}i||await l(),await i}else try{o={type:"success",value:await r()}}catch(i){o={type:"error",value:i}}return o||{type:"error",value:new Error("No result assigned in instrumentation chain.")}}function nn(e){let{request:t,context:r,params:n,unstable_pattern:a}=e;return{request:To(t),params:{...n},unstable_pattern:a,context:Mo(r)}}function an(e,t){return{currentUrl:Me(e.state.location),..."formMethod"in t?{formMethod:t.formMethod}:{},..."formEncType"in t?{formEncType:t.formEncType}:{},..."formData"in t?{formData:t.formData}:{},..."body"in t?{body:t.body}:{}}}function To(e){return{method:e.method,url:e.url,headers:{get:(...t)=>e.headers.get(...t)}}}function Mo(e){if(Do(e)){let t={...e};return Object.freeze(t),t}else return{get:t=>e.get(t)}}var _o=Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Do(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getOwnPropertyNames(t).sort().join("\0")===_o}var jn=["POST","PUT","PATCH","DELETE"],Oo=new Set(jn),Ao=["GET",...jn],Io=new Set(Ao),Un=new Set([301,302,303,307,308]),Fo=new Set([307,308]),er={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Hn={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},it={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},ko=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),zn="remix-router-transitions",Bn=Symbol("ResetLoaderData");function fs(e){const t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u";W(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let n=e.hydrationRouteProperties||[],a=e.mapRouteProperties||ko,o=a;if(e.unstable_instrumentations){let d=e.unstable_instrumentations;o=v=>({...a(v),...Lo(d.map(w=>w.route).filter(Boolean),v)})}let i={},l=ht(e.routes,o,void 0,i),s,u=e.basename||"/";u.startsWith("/")||(u=`/${u}`);let h=e.dataStrategy||Ho,c={...e.future},y=null,g=new Set,E=null,C=null,R=null,b=e.hydrationData!=null,L=Ie(l,e.history.location,u),D=!1,k=null,T;if(L==null&&!e.patchRoutesOnNavigation){let d=xe(404,{pathname:e.history.location.pathname}),{matches:v,route:w}=Ct(l);T=!0,L=v,k={[w.id]:d}}else if(L&&!e.hydrationData&&Et(L,l,e.history.location.pathname).active&&(L=null),L)if(L.some(d=>d.route.lazy))T=!1;else if(!L.some(d=>Rr(d.route)))T=!0;else{let d=e.hydrationData?e.hydrationData.loaderData:null,v=e.hydrationData?e.hydrationData.errors:null;if(v){let w=L.findIndex(x=>v[x.route.id]!==void 0);T=L.slice(0,w+1).every(x=>!sr(x.route,d,v))}else T=L.every(w=>!sr(w.route,d,v))}else{T=!1,L=[];let d=Et(null,l,e.history.location.pathname);d.active&&d.matches&&(D=!0,L=d.matches)}let _,m={historyAction:e.history.action,location:e.history.location,matches:L,initialized:T,navigation:er,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||k,fetchers:new Map,blockers:new Map},M="POP",H=null,J=!1,K,ae=!1,le=new Map,Q=null,ue=!1,X=!1,ee=new Set,re=new Map,ce=0,se=-1,p=new Map,S=new Set,j=new Map,N=new Map,z=new Set,G=new Map,te,de=null;function me(){if(y=e.history.listen(({action:d,location:v,delta:w})=>{if(te){te(),te=void 0;return}oe(G.size===0||w!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let x=zr({currentLocation:m.location,nextLocation:v,historyAction:d});if(x&&w!=null){let P=new Promise(I=>{te=I});e.history.go(w*-1),wt(x,{state:"blocked",location:v,proceed(){wt(x,{state:"proceeding",proceed:void 0,reset:void 0,location:v}),P.then(()=>e.history.go(w))},reset(){let I=new Map(m.blockers);I.set(x,it),pe({blockers:I})}}),H==null||H.resolve(),H=null;return}return Ue(d,v)}),r){oi(t,le);let d=()=>ii(t,le);t.addEventListener("pagehide",d),Q=()=>t.removeEventListener("pagehide",d)}return m.initialized||Ue("POP",m.location,{initialHydration:!0}),_}function Yt(){y&&y(),Q&&Q(),g.clear(),K&&K.abort(),m.fetchers.forEach((d,v)=>Jt(v)),m.blockers.forEach((d,v)=>Hr(v))}function Pa(d){return g.add(d),()=>g.delete(d)}function pe(d,v={}){d.matches&&(d.matches=d.matches.map(P=>{let I=i[P.route.id],U=P.route;return U.element!==I.element||U.errorElement!==I.errorElement||U.hydrateFallbackElement!==I.hydrateFallbackElement?{...P,route:I}:P})),m={...m,...d};let w=[],x=[];m.fetchers.forEach((P,I)=>{P.state==="idle"&&(z.has(I)?w.push(I):x.push(I))}),z.forEach(P=>{!m.fetchers.has(P)&&!re.has(P)&&w.push(P)}),[...g].forEach(P=>P(m,{deletedFetchers:w,newErrors:d.errors??null,viewTransitionOpts:v.viewTransitionOpts,flushSync:v.flushSync===!0})),w.forEach(P=>Jt(P)),x.forEach(P=>m.fetchers.delete(P))}function Ge(d,v,{flushSync:w}={}){var Y,F;let x=m.actionData!=null&&m.navigation.formMethod!=null&&ve(m.navigation.formMethod)&&m.navigation.state==="loading"&&((Y=d.state)==null?void 0:Y._isRedirect)!==!0,P;v.actionData?Object.keys(v.actionData).length>0?P=v.actionData:P=null:x?P=m.actionData:P=null;let I=v.loaderData?pn(m.loaderData,v.loaderData,v.matches||[],v.errors):m.loaderData,U=m.blockers;U.size>0&&(U=new Map(U),U.forEach((V,q)=>U.set(q,it)));let O=ue?!1:Wr(d,v.matches||m.matches),A=J===!0||m.navigation.formMethod!=null&&ve(m.navigation.formMethod)&&((F=d.state)==null?void 0:F._isRedirect)!==!0;s&&(l=s,s=void 0),ue||M==="POP"||(M==="PUSH"?e.history.push(d,d.state):M==="REPLACE"&&e.history.replace(d,d.state));let $;if(M==="POP"){let V=le.get(m.location.pathname);V&&V.has(d.pathname)?$={currentLocation:m.location,nextLocation:d}:le.has(d.pathname)&&($={currentLocation:d,nextLocation:m.location})}else if(ae){let V=le.get(m.location.pathname);V?V.add(d.pathname):(V=new Set([d.pathname]),le.set(m.location.pathname,V)),$={currentLocation:m.location,nextLocation:d}}pe({...v,actionData:P,loaderData:I,historyAction:M,location:d,initialized:!0,navigation:er,revalidation:"idle",restoreScrollPosition:O,preventScrollReset:A,blockers:U},{viewTransitionOpts:$,flushSync:w===!0}),M="POP",J=!1,ae=!1,ue=!1,X=!1,H==null||H.resolve(),H=null,de==null||de.resolve(),de=null}async function Ir(d,v){if(H==null||H.resolve(),H=null,typeof d=="number"){H||(H=gn());let q=H.promise;return e.history.go(d),q}let w=lr(m.location,m.matches,u,d,v==null?void 0:v.fromRouteId,v==null?void 0:v.relative),{path:x,submission:P,error:I}=on(!1,w,v),U=m.location,O=ft(m.location,x,v&&v.state);O={...O,...e.history.encodeLocation(O)};let A=v&&v.replace!=null?v.replace:void 0,$="PUSH";A===!0?$="REPLACE":A===!1||P!=null&&ve(P.formMethod)&&P.formAction===m.location.pathname+m.location.search&&($="REPLACE");let Y=v&&"preventScrollReset"in v?v.preventScrollReset===!0:void 0,F=(v&&v.flushSync)===!0,V=zr({currentLocation:U,nextLocation:O,historyAction:$});if(V){wt(V,{state:"blocked",location:O,proceed(){wt(V,{state:"proceeding",proceed:void 0,reset:void 0,location:O}),Ir(d,v)},reset(){let q=new Map(m.blockers);q.set(V,it),pe({blockers:q})}});return}await Ue($,O,{submission:P,pendingError:I,preventScrollReset:Y,replace:v&&v.replace,enableViewTransition:v&&v.viewTransition,flushSync:F,callSiteDefaultShouldRevalidate:v&&v.unstable_defaultShouldRevalidate})}function Ta(){de||(de=gn()),Vt(),pe({revalidation:"loading"});let d=de.promise;return m.navigation.state==="submitting"?d:m.navigation.state==="idle"?(Ue(m.historyAction,m.location,{startUninterruptedRevalidation:!0}),d):(Ue(M||m.historyAction,m.navigation.location,{overrideNavigation:m.navigation,enableViewTransition:ae===!0}),d)}async function Ue(d,v,w){K&&K.abort(),K=null,M=d,ue=(w&&w.startUninterruptedRevalidation)===!0,ja(m.location,m.matches),J=(w&&w.preventScrollReset)===!0,ae=(w&&w.enableViewTransition)===!0;let x=s||l,P=w&&w.overrideNavigation,I=w!=null&&w.initialHydration&&m.matches&&m.matches.length>0&&!D?m.matches:Ie(x,v,u),U=(w&&w.flushSync)===!0;if(I&&m.initialized&&!X&&Ko(m.location,v)&&!(w&&w.submission&&ve(w.submission.formMethod))){Ge(v,{matches:I},{flushSync:U});return}let O=Et(I,x,v.pathname);if(O.active&&O.matches&&(I=O.matches),!I){let{error:fe,notFoundMatches:ge,route:ne}=Gt(v.pathname);Ge(v,{matches:ge,loaderData:{},errors:{[ne.id]:fe}},{flushSync:U});return}K=new AbortController;let A=Xe(e.history,v,K.signal,w&&w.submission),$=e.getContext?await e.getContext():new Zr,Y;if(w&&w.pendingError)Y=[ke(I).route.id,{type:"error",error:w.pendingError}];else if(w&&w.submission&&ve(w.submission.formMethod)){let fe=await Ma(A,v,w.submission,I,$,O.active,w&&w.initialHydration===!0,{replace:w.replace,flushSync:U});if(fe.shortCircuited)return;if(fe.pendingActionResult){let[ge,ne]=fe.pendingActionResult;if(Re(ne)&&Ve(ne.error)&&ne.error.status===404){K=null,Ge(v,{matches:fe.matches,loaderData:{},errors:{[ge]:ne.error}});return}}I=fe.matches||I,Y=fe.pendingActionResult,P=tr(v,w.submission),U=!1,O.active=!1,A=Xe(e.history,A.url,A.signal)}let{shortCircuited:F,matches:V,loaderData:q,errors:he}=await _a(A,v,I,$,O.active,P,w&&w.submission,w&&w.fetcherSubmission,w&&w.replace,w&&w.initialHydration===!0,U,Y,w&&w.callSiteDefaultShouldRevalidate);F||(K=null,Ge(v,{matches:V||I,...yn(Y),loaderData:q,errors:he}))}async function Ma(d,v,w,x,P,I,U,O={}){Vt();let A=ni(v,w);if(pe({navigation:A},{flushSync:O.flushSync===!0}),I){let F=await Rt(x,v.pathname,d.signal);if(F.type==="aborted")return{shortCircuited:!0};if(F.type==="error"){if(F.partialMatches.length===0){let{matches:q,route:he}=Ct(l);return{matches:q,pendingActionResult:[he.id,{type:"error",error:F.error}]}}let V=ke(F.partialMatches).route.id;return{matches:F.partialMatches,pendingActionResult:[V,{type:"error",error:F.error}]}}else if(F.matches)x=F.matches;else{let{notFoundMatches:V,error:q,route:he}=Gt(v.pathname);return{matches:V,pendingActionResult:[he.id,{type:"error",error:q}]}}}let $,Y=Dt(x,v);if(!Y.route.action&&!Y.route.lazy)$={type:"error",error:xe(405,{method:d.method,pathname:v.pathname,routeId:Y.route.id})};else{let F=Qe(o,i,d,x,Y,U?[]:n,P),V=await rt(d,F,P,null);if($=V[Y.route.id],!$){for(let q of x)if(V[q.route.id]){$=V[q.route.id];break}}if(d.signal.aborted)return{shortCircuited:!0}}if(Ye($)){let F;return O&&O.replace!=null?F=O.replace:F=fn($.response.headers.get("Location"),new URL(d.url),u)===m.location.pathname+m.location.search,await He(d,$,!0,{submission:w,replace:F}),{shortCircuited:!0}}if(Re($)){let F=ke(x,Y.route.id);return(O&&O.replace)!==!0&&(M="PUSH"),{matches:x,pendingActionResult:[F.route.id,$,Y.route.id]}}return{matches:x,pendingActionResult:[Y.route.id,$]}}async function _a(d,v,w,x,P,I,U,O,A,$,Y,F,V){let q=I||tr(v,U),he=U||O||vn(q),fe=!ue&&!$;if(P){if(fe){let ye=Fr(F);pe({navigation:q,...ye!==void 0?{actionData:ye}:{}},{flushSync:Y})}let Z=await Rt(w,v.pathname,d.signal);if(Z.type==="aborted")return{shortCircuited:!0};if(Z.type==="error"){if(Z.partialMatches.length===0){let{matches:Ke,route:We}=Ct(l);return{matches:Ke,loaderData:{},errors:{[We.id]:Z.error}}}let ye=ke(Z.partialMatches).route.id;return{matches:Z.partialMatches,loaderData:{},errors:{[ye]:Z.error}}}else if(Z.matches)w=Z.matches;else{let{error:ye,notFoundMatches:Ke,route:We}=Gt(v.pathname);return{matches:Ke,loaderData:{},errors:{[We.id]:ye}}}}let ge=s||l,{dsMatches:ne,revalidatingFetchers:Se}=ln(d,x,o,i,e.history,m,w,he,v,$?[]:n,$===!0,X,ee,z,j,S,ge,u,e.patchRoutesOnNavigation!=null,F,V);if(se=++ce,!e.dataStrategy&&!ne.some(Z=>Z.shouldLoad)&&!ne.some(Z=>Z.route.middleware&&Z.route.middleware.length>0)&&Se.length===0){let Z=jr();return Ge(v,{matches:w,loaderData:{},errors:F&&Re(F[1])?{[F[0]]:F[1].error}:null,...yn(F),...Z?{fetchers:new Map(m.fetchers)}:{}},{flushSync:Y}),{shortCircuited:!0}}if(fe){let Z={};if(!P){Z.navigation=q;let ye=Fr(F);ye!==void 0&&(Z.actionData=ye)}Se.length>0&&(Z.fetchers=Da(Se)),pe(Z,{flushSync:Y})}Se.forEach(Z=>{Oe(Z.key),Z.controller&&re.set(Z.key,Z.controller)});let ze=()=>Se.forEach(Z=>Oe(Z.key));K&&K.signal.addEventListener("abort",ze);let{loaderResults:nt,fetcherResults:Fe}=await kr(ne,Se,d,x);if(d.signal.aborted)return{shortCircuited:!0};K&&K.signal.removeEventListener("abort",ze),Se.forEach(Z=>re.delete(Z.key));let Pe=Lt(nt);if(Pe)return await He(d,Pe.result,!0,{replace:A}),{shortCircuited:!0};if(Pe=Lt(Fe),Pe)return S.add(Pe.key),await He(d,Pe.result,!0,{replace:A}),{shortCircuited:!0};let{loaderData:Kt,errors:at}=mn(m,w,nt,F,Se,Fe);$&&m.errors&&(at={...m.errors,...at});let Be=jr(),bt=Ur(se),St=Be||bt||Se.length>0;return{matches:w,loaderData:Kt,errors:at,...St?{fetchers:new Map(m.fetchers)}:{}}}function Fr(d){if(d&&!Re(d[1]))return{[d[0]]:d[1].data};if(m.actionData)return Object.keys(m.actionData).length===0?null:m.actionData}function Da(d){return d.forEach(v=>{let w=m.fetchers.get(v.key),x=lt(void 0,w?w.data:void 0);m.fetchers.set(v.key,x)}),new Map(m.fetchers)}async function Oa(d,v,w,x){Oe(d);let P=(x&&x.flushSync)===!0,I=s||l,U=lr(m.location,m.matches,u,w,v,x==null?void 0:x.relative),O=Ie(I,U,u),A=Et(O,I,U);if(A.active&&A.matches&&(O=A.matches),!O){De(d,v,xe(404,{pathname:U}),{flushSync:P});return}let{path:$,submission:Y,error:F}=on(!0,U,x);if(F){De(d,v,F,{flushSync:P});return}let V=e.getContext?await e.getContext():new Zr,q=(x&&x.preventScrollReset)===!0;if(Y&&ve(Y.formMethod)){await Aa(d,v,$,O,V,A.active,P,q,Y,x&&x.unstable_defaultShouldRevalidate);return}j.set(d,{routeId:v,path:$}),await Ia(d,v,$,O,V,A.active,P,q,Y)}async function Aa(d,v,w,x,P,I,U,O,A,$){Vt(),j.delete(d);let Y=m.fetchers.get(d);_e(d,ai(A,Y),{flushSync:U});let F=new AbortController,V=Xe(e.history,w,F.signal,A);if(I){let ie=await Rt(x,new URL(V.url).pathname,V.signal,d);if(ie.type==="aborted")return;if(ie.type==="error"){De(d,v,ie.error,{flushSync:U});return}else if(ie.matches)x=ie.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:U});return}}let q=Dt(x,w);if(!q.route.action&&!q.route.lazy){let ie=xe(405,{method:A.formMethod,pathname:w,routeId:v});De(d,v,ie,{flushSync:U});return}re.set(d,F);let he=ce,fe=Qe(o,i,V,x,q,n,P),ge=await rt(V,fe,P,d),ne=ge[q.route.id];if(!ne){for(let ie of fe)if(ge[ie.route.id]){ne=ge[ie.route.id];break}}if(V.signal.aborted){re.get(d)===F&&re.delete(d);return}if(z.has(d)){if(Ye(ne)||Re(ne)){_e(d,Ae(void 0));return}}else{if(Ye(ne))if(re.delete(d),se>he){_e(d,Ae(void 0));return}else return S.add(d),_e(d,lt(A)),He(V,ne,!1,{fetcherSubmission:A,preventScrollReset:O});if(Re(ne)){De(d,v,ne.error);return}}let Se=m.navigation.location||m.location,ze=Xe(e.history,Se,F.signal),nt=s||l,Fe=m.navigation.state!=="idle"?Ie(nt,m.navigation.location,u):m.matches;W(Fe,"Didn't find any matches after fetcher action");let Pe=++ce;p.set(d,Pe);let Kt=lt(A,ne.data);m.fetchers.set(d,Kt);let{dsMatches:at,revalidatingFetchers:Be}=ln(ze,P,o,i,e.history,m,Fe,A,Se,n,!1,X,ee,z,j,S,nt,u,e.patchRoutesOnNavigation!=null,[q.route.id,ne],$);Be.filter(ie=>ie.key!==d).forEach(ie=>{let xt=ie.key,Vr=m.fetchers.get(xt),za=lt(void 0,Vr?Vr.data:void 0);m.fetchers.set(xt,za),Oe(xt),ie.controller&&re.set(xt,ie.controller)}),pe({fetchers:new Map(m.fetchers)});let bt=()=>Be.forEach(ie=>Oe(ie.key));F.signal.addEventListener("abort",bt);let{loaderResults:St,fetcherResults:Z}=await kr(at,Be,ze,P);if(F.signal.aborted)return;if(F.signal.removeEventListener("abort",bt),p.delete(d),re.delete(d),Be.forEach(ie=>re.delete(ie.key)),m.fetchers.has(d)){let ie=Ae(ne.data);m.fetchers.set(d,ie)}let ye=Lt(St);if(ye)return He(ze,ye.result,!1,{preventScrollReset:O});if(ye=Lt(Z),ye)return S.add(ye.key),He(ze,ye.result,!1,{preventScrollReset:O});let{loaderData:Ke,errors:We}=mn(m,Fe,St,void 0,Be,Z);Ur(Pe),m.navigation.state==="loading"&&Pe>se?(W(M,"Expected pending action"),K&&K.abort(),Ge(m.navigation.location,{matches:Fe,loaderData:Ke,errors:We,fetchers:new Map(m.fetchers)})):(pe({errors:We,loaderData:pn(m.loaderData,Ke,Fe,We),fetchers:new Map(m.fetchers)}),X=!1)}async function Ia(d,v,w,x,P,I,U,O,A){let $=m.fetchers.get(d);_e(d,lt(A,$?$.data:void 0),{flushSync:U});let Y=new AbortController,F=Xe(e.history,w,Y.signal);if(I){let ne=await Rt(x,new URL(F.url).pathname,F.signal,d);if(ne.type==="aborted")return;if(ne.type==="error"){De(d,v,ne.error,{flushSync:U});return}else if(ne.matches)x=ne.matches;else{De(d,v,xe(404,{pathname:w}),{flushSync:U});return}}let V=Dt(x,w);re.set(d,Y);let q=ce,he=Qe(o,i,F,x,V,n,P),ge=(await rt(F,he,P,d))[V.route.id];if(re.get(d)===Y&&re.delete(d),!F.signal.aborted){if(z.has(d)){_e(d,Ae(void 0));return}if(Ye(ge))if(se>q){_e(d,Ae(void 0));return}else{S.add(d),await He(F,ge,!1,{preventScrollReset:O});return}if(Re(ge)){De(d,v,ge.error);return}_e(d,Ae(ge.data))}}async function He(d,v,w,{submission:x,fetcherSubmission:P,preventScrollReset:I,replace:U}={}){w||(H==null||H.resolve(),H=null),v.response.headers.has("X-Remix-Revalidate")&&(X=!0);let O=v.response.headers.get("Location");W(O,"Expected a Location header on the redirect Response"),O=fn(O,new URL(d.url),u);let A=ft(m.location,O,{_isRedirect:!0});if(r){let he=!1;if(v.response.headers.has("X-Remix-Reload-Document"))he=!0;else if($t(O)){const fe=Mn(O,!0);he=fe.origin!==t.location.origin||be(fe.pathname,u)==null}if(he){U?t.location.replace(O):t.location.assign(O);return}}K=null;let $=U===!0||v.response.headers.has("X-Remix-Replace")?"REPLACE":"PUSH",{formMethod:Y,formAction:F,formEncType:V}=m.navigation;!x&&!P&&Y&&F&&V&&(x=vn(m.navigation));let q=x||P;if(Fo.has(v.response.status)&&q&&ve(q.formMethod))await Ue($,A,{submission:{...q,formAction:O},preventScrollReset:I||J,enableViewTransition:w?ae:void 0});else{let he=tr(A,x);await Ue($,A,{overrideNavigation:he,fetcherSubmission:P,preventScrollReset:I||J,enableViewTransition:w?ae:void 0})}}async function rt(d,v,w,x){var U;let P,I={};try{P=await Bo(h,d,v,x,w,!1)}catch(O){return v.filter(A=>A.shouldLoad).forEach(A=>{I[A.route.id]={type:"error",error:O}}),I}if(d.signal.aborted)return I;if(!ve(d.method))for(let O of v){if(((U=P[O.route.id])==null?void 0:U.type)==="error")break;!P.hasOwnProperty(O.route.id)&&!m.loaderData.hasOwnProperty(O.route.id)&&(!m.errors||!m.errors.hasOwnProperty(O.route.id))&&O.shouldCallHandler()&&(P[O.route.id]={type:"error",result:new Error(`No result returned from dataStrategy for route ${O.route.id}`)})}for(let[O,A]of Object.entries(P))if(Zo(A)){let $=A.result;I[O]={type:"redirect",response:Jo($,d,O,v,u)}}else I[O]=await Vo(A);return I}async function kr(d,v,w,x){let P=rt(w,d,x,null),I=Promise.all(v.map(async A=>{if(A.matches&&A.match&&A.request&&A.controller){let Y=(await rt(A.request,A.matches,x,A.key))[A.match.route.id];return{[A.key]:Y}}else return Promise.resolve({[A.key]:{type:"error",error:xe(404,{pathname:A.path})}})})),U=await P,O=(await I).reduce((A,$)=>Object.assign(A,$),{});return{loaderResults:U,fetcherResults:O}}function Vt(){X=!0,j.forEach((d,v)=>{re.has(v)&&ee.add(v),Oe(v)})}function _e(d,v,w={}){m.fetchers.set(d,v),pe({fetchers:new Map(m.fetchers)},{flushSync:(w&&w.flushSync)===!0})}function De(d,v,w,x={}){let P=ke(m.matches,v);Jt(d),pe({errors:{[P.route.id]:w},fetchers:new Map(m.fetchers)},{flushSync:(x&&x.flushSync)===!0})}function Nr(d){return N.set(d,(N.get(d)||0)+1),z.has(d)&&z.delete(d),m.fetchers.get(d)||Hn}function Fa(d,v){Oe(d,v==null?void 0:v.reason),_e(d,Ae(null))}function Jt(d){let v=m.fetchers.get(d);re.has(d)&&!(v&&v.state==="loading"&&p.has(d))&&Oe(d),j.delete(d),p.delete(d),S.delete(d),z.delete(d),ee.delete(d),m.fetchers.delete(d)}function ka(d){let v=(N.get(d)||0)-1;v<=0?(N.delete(d),z.add(d)):N.set(d,v),pe({fetchers:new Map(m.fetchers)})}function Oe(d,v){let w=re.get(d);w&&(w.abort(v),re.delete(d))}function $r(d){for(let v of d){let w=Nr(v),x=Ae(w.data);m.fetchers.set(v,x)}}function jr(){let d=[],v=!1;for(let w of S){let x=m.fetchers.get(w);W(x,`Expected fetcher: ${w}`),x.state==="loading"&&(S.delete(w),d.push(w),v=!0)}return $r(d),v}function Ur(d){let v=[];for(let[w,x]of p)if(x<d){let P=m.fetchers.get(w);W(P,`Expected fetcher: ${w}`),P.state==="loading"&&(Oe(w),p.delete(w),v.push(w))}return $r(v),v.length>0}function Na(d,v){let w=m.blockers.get(d)||it;return G.get(d)!==v&&G.set(d,v),w}function Hr(d){m.blockers.delete(d),G.delete(d)}function wt(d,v){let w=m.blockers.get(d)||it;W(w.state==="unblocked"&&v.state==="blocked"||w.state==="blocked"&&v.state==="blocked"||w.state==="blocked"&&v.state==="proceeding"||w.state==="blocked"&&v.state==="unblocked"||w.state==="proceeding"&&v.state==="unblocked",`Invalid blocker state transition: ${w.state} -> ${v.state}`);let x=new Map(m.blockers);x.set(d,v),pe({blockers:x})}function zr({currentLocation:d,nextLocation:v,historyAction:w}){if(G.size===0)return;G.size>1&&oe(!1,"A router only supports one blocker at a time");let x=Array.from(G.entries()),[P,I]=x[x.length-1],U=m.blockers.get(P);if(!(U&&U.state==="proceeding")&&I({currentLocation:d,nextLocation:v,historyAction:w}))return P}function Gt(d){let v=xe(404,{pathname:d}),w=s||l,{matches:x,route:P}=Ct(w);return{notFoundMatches:x,route:P,error:v}}function $a(d,v,w){if(E=d,R=v,C=w||null,!b&&m.navigation===er){b=!0;let x=Wr(m.location,m.matches);x!=null&&pe({restoreScrollPosition:x})}return()=>{E=null,R=null,C=null}}function Br(d,v){return C&&C(d,v.map(x=>_n(x,m.loaderData)))||d.key}function ja(d,v){if(E&&R){let w=Br(d,v);E[w]=R()}}function Wr(d,v){if(E){let w=Br(d,v),x=E[w];if(typeof x=="number")return x}return null}function Et(d,v,w){if(e.patchRoutesOnNavigation)if(d){if(Object.keys(d[0].params).length>0)return{active:!0,matches:ct(v,w,u,!0)}}else return{active:!0,matches:ct(v,w,u,!0)||[]};return{active:!1,matches:null}}async function Rt(d,v,w,x){if(!e.patchRoutesOnNavigation)return{type:"success",matches:d};let P=d;for(;;){let I=s==null,U=s||l,O=i;try{await e.patchRoutesOnNavigation({signal:w,path:v,matches:P,fetcherKey:x,patch:(Y,F)=>{w.aborted||sn(Y,F,U,O,o,!1)}})}catch(Y){return{type:"error",error:Y,partialMatches:P}}finally{I&&!w.aborted&&(l=[...l])}if(w.aborted)return{type:"aborted"};let A=Ie(U,v,u),$=null;if(A){if(Object.keys(A[0].params).length===0)return{type:"success",matches:A};if($=ct(U,v,u,!0),!($&&P.length<$.length&&Yr(P,$.slice(0,P.length))))return{type:"success",matches:A}}if($||($=ct(U,v,u,!0)),!$||Yr(P,$))return{type:"success",matches:null};P=$}}function Yr(d,v){return d.length===v.length&&d.every((w,x)=>w.route.id===v[x].route.id)}function Ua(d){i={},s=ht(d,o,void 0,i)}function Ha(d,v,w=!1){let x=s==null;sn(d,v,s||l,i,o,w),x&&(l=[...l],pe({}))}return _={get basename(){return u},get future(){return c},get state(){return m},get routes(){return l},get window(){return t},initialize:me,subscribe:Pa,enableScrollRestoration:$a,navigate:Ir,fetch:Oa,revalidate:Ta,createHref:d=>e.history.createHref(d),encodeLocation:d=>e.history.encodeLocation(d),getFetcher:Nr,resetFetcher:Fa,deleteFetcher:ka,dispose:Yt,getBlocker:Na,deleteBlocker:Hr,patchRoutes:Ha,_internalFetchControllers:re,_internalSetRoutes:Ua,_internalSetStateDoNotUseOrYouWillBreakYourApp(d){pe(d)}},e.unstable_instrumentations&&(_=Po(_,e.unstable_instrumentations.map(d=>d.router).filter(Boolean))),_}function No(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function lr(e,t,r,n,a,o){let i,l;if(a){i=[];for(let u of t)if(i.push(u),u.route.id===a){l=u;break}}else i=t,l=t[t.length-1];let s=Er(n||".",wr(i),be(e.pathname,r)||e.pathname,o==="path");if(n==null&&(s.search=e.search,s.hash=e.hash),(n==null||n===""||n===".")&&l){let u=br(s.search);if(l.route.index&&!u)s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index";else if(!l.route.index&&u){let h=new URLSearchParams(s.search),c=h.getAll("index");h.delete("index"),c.filter(g=>g).forEach(g=>h.append("index",g));let y=h.toString();s.search=y?`?${y}`:""}}return r!=="/"&&(s.pathname=go({basename:r,pathname:s.pathname})),Me(s)}function on(e,t,r){if(!r||!No(r))return{path:t};if(r.formMethod&&!ri(r.formMethod))return{path:t,error:xe(405,{method:r.formMethod})};let n=()=>({path:t,error:xe(400,{type:"invalid-body"})}),o=(r.formMethod||"get").toUpperCase(),i=Kn(t);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!ve(o))return n();let c=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((y,[g,E])=>`${y}${g}=${E}
|
|
27
|
+
`,""):String(r.body);return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:void 0,text:c}}}else if(r.formEncType==="application/json"){if(!ve(o))return n();try{let c=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:t,submission:{formMethod:o,formAction:i,formEncType:r.formEncType,formData:void 0,json:c,text:void 0}}}catch{return n()}}}W(typeof FormData=="function","FormData is not available in this environment");let l,s;if(r.formData)l=cr(r.formData),s=r.formData;else if(r.body instanceof FormData)l=cr(r.body),s=r.body;else if(r.body instanceof URLSearchParams)l=r.body,s=hn(l);else if(r.body==null)l=new URLSearchParams,s=new FormData;else try{l=new URLSearchParams(r.body),s=hn(l)}catch{return n()}let u={formMethod:o,formAction:i,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:s,json:void 0,text:void 0};if(ve(u.formMethod))return{path:t,submission:u};let h=$e(t);return e&&h.search&&br(h.search)&&l.append("index",""),h.search=`?${l}`,{path:Me(h),submission:u}}function ln(e,t,r,n,a,o,i,l,s,u,h,c,y,g,E,C,R,b,L,D,k){var ue;let T=D?Re(D[1])?D[1].error:D[1].data:void 0,_=a.createURL(o.location),m=a.createURL(s),M;if(h&&o.errors){let X=Object.keys(o.errors)[0];M=i.findIndex(ee=>ee.route.id===X)}else if(D&&Re(D[1])){let X=D[0];M=i.findIndex(ee=>ee.route.id===X)-1}let H=D?D[1].statusCode:void 0,J=H&&H>=400,K={currentUrl:_,currentParams:((ue=o.matches[0])==null?void 0:ue.params)||{},nextUrl:m,nextParams:i[0].params,...l,actionResult:T,actionStatus:H},ae=pt(i),le=i.map((X,ee)=>{let{route:re}=X,ce=null;if(M!=null&&ee>M?ce=!1:re.lazy?ce=!0:Rr(re)?h?ce=sr(re,o.loaderData,o.errors):$o(o.loaderData,o.matches[ee],X)&&(ce=!0):ce=!1,ce!==null)return ur(r,n,e,ae,X,u,t,ce);let se=!1;typeof k=="boolean"?se=k:J?se=!1:(c||_.pathname+_.search===m.pathname+m.search||_.search!==m.search||jo(o.matches[ee],X))&&(se=!0);let p={...K,defaultShouldRevalidate:se},S=dt(X,p);return ur(r,n,e,ae,X,u,t,S,p,k)}),Q=[];return E.forEach((X,ee)=>{if(h||!i.some(z=>z.route.id===X.routeId)||g.has(ee))return;let re=o.fetchers.get(ee),ce=re&&re.state!=="idle"&&re.data===void 0,se=Ie(R,X.path,b);if(!se){if(L&&ce)return;Q.push({key:ee,routeId:X.routeId,path:X.path,matches:null,match:null,request:null,controller:null});return}if(C.has(ee))return;let p=Dt(se,X.path),S=new AbortController,j=Xe(a,X.path,S.signal),N=null;if(y.has(ee))y.delete(ee),N=Qe(r,n,j,se,p,u,t);else if(ce)c&&(N=Qe(r,n,j,se,p,u,t));else{let z;typeof k=="boolean"?z=k:J?z=!1:z=c;let G={...K,defaultShouldRevalidate:z};dt(p,G)&&(N=Qe(r,n,j,se,p,u,t,G))}N&&Q.push({key:ee,routeId:X.routeId,path:X.path,matches:N,match:p,request:j,controller:S})}),{dsMatches:le,revalidatingFetchers:Q}}function Rr(e){return e.loader!=null||e.middleware!=null&&e.middleware.length>0}function sr(e,t,r){if(e.lazy)return!0;if(!Rr(e))return!1;let n=t!=null&&e.id in t,a=r!=null&&r[e.id]!==void 0;return!n&&a?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!n&&!a}function $o(e,t,r){let n=!t||r.route.id!==t.route.id,a=!e.hasOwnProperty(r.route.id);return n||a}function jo(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function dt(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}function sn(e,t,r,n,a,o){let i;if(e){let u=n[e];W(u,`No route found to patch children into: routeId = ${e}`),u.children||(u.children=[]),i=u.children}else i=r;let l=[],s=[];if(t.forEach(u=>{let h=i.find(c=>Wn(u,c));h?s.push({existingRoute:h,newRoute:u}):l.push(u)}),l.length>0){let u=ht(l,a,[e||"_","patch",String((i==null?void 0:i.length)||"0")],n);i.push(...u)}if(o&&s.length>0)for(let u=0;u<s.length;u++){let{existingRoute:h,newRoute:c}=s[u],y=h,[g]=ht([c],a,[],{},!0);Object.assign(y,{element:g.element?g.element:y.element,errorElement:g.errorElement?g.errorElement:y.errorElement,hydrateFallbackElement:g.hydrateFallbackElement?g.hydrateFallbackElement:y.hydrateFallbackElement})}}function Wn(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((r,n)=>{var a;return(a=t.children)==null?void 0:a.some(o=>Wn(r,o))}):!1}var un=new WeakMap,Yn=({key:e,route:t,manifest:r,mapRouteProperties:n})=>{let a=r[t.id];if(W(a,"No route found in manifest"),!a.lazy||typeof a.lazy!="object")return;let o=a.lazy[e];if(!o)return;let i=un.get(a);i||(i={},un.set(a,i));let l=i[e];if(l)return l;let s=(async()=>{let u=ro(e),c=a[e]!==void 0&&e!=="hasErrorBoundary";if(u)oe(!u,"Route property "+e+" is not a supported lazy route property. This property will be ignored."),i[e]=Promise.resolve();else if(c)oe(!1,`Route "${a.id}" has a static property "${e}" defined. The lazy property will be ignored.`);else{let y=await o();y!=null&&(Object.assign(a,{[e]:y}),Object.assign(a,n(a)))}typeof a.lazy=="object"&&(a.lazy[e]=void 0,Object.values(a.lazy).every(y=>y===void 0)&&(a.lazy=void 0))})();return i[e]=s,s},cn=new WeakMap;function Uo(e,t,r,n,a){let o=r[e.id];if(W(o,"No route found in manifest"),!e.lazy)return{lazyRoutePromise:void 0,lazyHandlerPromise:void 0};if(typeof e.lazy=="function"){let h=cn.get(o);if(h)return{lazyRoutePromise:h,lazyHandlerPromise:h};let c=(async()=>{W(typeof e.lazy=="function","No lazy route function found");let y=await e.lazy(),g={};for(let E in y){let C=y[E];if(C===void 0)continue;let R=ao(E),L=o[E]!==void 0&&E!=="hasErrorBoundary";R?oe(!R,"Route property "+E+" is not a supported property to be returned from a lazy route function. This property will be ignored."):L?oe(!L,`Route "${o.id}" has a static property "${E}" defined but its lazy function is also returning a value for this property. The lazy route property "${E}" will be ignored.`):g[E]=C}Object.assign(o,g),Object.assign(o,{...n(o),lazy:void 0})})();return cn.set(o,c),c.catch(()=>{}),{lazyRoutePromise:c,lazyHandlerPromise:c}}let i=Object.keys(e.lazy),l=[],s;for(let h of i){if(a&&a.includes(h))continue;let c=Yn({key:h,route:e,manifest:r,mapRouteProperties:n});c&&(l.push(c),h===t&&(s=c))}let u=l.length>0?Promise.all(l).then(()=>{}):void 0;return u==null||u.catch(()=>{}),s==null||s.catch(()=>{}),{lazyRoutePromise:u,lazyHandlerPromise:s}}async function dn(e){let t=e.matches.filter(a=>a.shouldLoad),r={};return(await Promise.all(t.map(a=>a.resolve()))).forEach((a,o)=>{r[t[o].route.id]=a}),r}async function Ho(e){return e.matches.some(t=>t.route.middleware)?Vn(e,()=>dn(e)):dn(e)}function Vn(e,t){return zo(e,t,n=>{if(ti(n))throw n;return n},qo,r);function r(n,a,o){if(o)return Promise.resolve(Object.assign(o.value,{[a]:{type:"error",result:n}}));{let{matches:i}=e,l=Math.min(Math.max(i.findIndex(u=>u.route.id===a),0),Math.max(i.findIndex(u=>u.shouldCallHandler()),0)),s=ke(i,i[l].route.id).route.id;return Promise.resolve({[s]:{type:"error",result:n}})}}}async function zo(e,t,r,n,a){let{matches:o,request:i,params:l,context:s,unstable_pattern:u}=e,h=o.flatMap(y=>y.route.middleware?y.route.middleware.map(g=>[y.route.id,g]):[]);return await Jn({request:i,params:l,context:s,unstable_pattern:u},h,t,r,n,a)}async function Jn(e,t,r,n,a,o,i=0){let{request:l}=e;if(l.signal.aborted)throw l.signal.reason??new Error(`Request aborted: ${l.method} ${l.url}`);let s=t[i];if(!s)return await r();let[u,h]=s,c,y=async()=>{if(c)throw new Error("You may only call `next()` once per middleware");try{return c={value:await Jn(e,t,r,n,a,o,i+1)},c.value}catch(g){return c={value:await o(g,u,c)},c.value}};try{let g=await h(e,y),E=g!=null?n(g):void 0;return a(E)?E:c?E??c.value:(c={value:await y()},c.value)}catch(g){return await o(g,u,c)}}function Gn(e,t,r,n,a){let o=Yn({key:"middleware",route:n.route,manifest:t,mapRouteProperties:e}),i=Uo(n.route,ve(r.method)?"action":"loader",t,e,a);return{middleware:o,route:i.lazyRoutePromise,handler:i.lazyHandlerPromise}}function ur(e,t,r,n,a,o,i,l,s=null,u){let h=!1,c=Gn(e,t,r,a,o);return{...a,_lazyPromises:c,shouldLoad:l,shouldRevalidateArgs:s,shouldCallHandler(y){return h=!0,s?typeof u=="boolean"?dt(a,{...s,defaultShouldRevalidate:u}):typeof y=="boolean"?dt(a,{...s,defaultShouldRevalidate:y}):dt(a,s):l},resolve(y){let{lazy:g,loader:E,middleware:C}=a.route,R=h||l||y&&!ve(r.method)&&(g||E),b=C&&C.length>0&&!E&&!g;return R&&(ve(r.method)||!b)?Wo({request:r,unstable_pattern:n,match:a,lazyHandlerPromise:c==null?void 0:c.handler,lazyRoutePromise:c==null?void 0:c.route,handlerOverride:y,scopedContext:i}):Promise.resolve({type:"data",result:void 0})}}}function Qe(e,t,r,n,a,o,i,l=null){return n.map(s=>s.route.id!==a.route.id?{...s,shouldLoad:!1,shouldRevalidateArgs:l,shouldCallHandler:()=>!1,_lazyPromises:Gn(e,t,r,s,o),resolve:()=>Promise.resolve({type:"data",result:void 0})}:ur(e,t,r,pt(n),s,o,i,!0,l))}async function Bo(e,t,r,n,a,o){r.some(u=>{var h;return(h=u._lazyPromises)==null?void 0:h.middleware})&&await Promise.all(r.map(u=>{var h;return(h=u._lazyPromises)==null?void 0:h.middleware}));let i={request:t,unstable_pattern:pt(r),params:r[0].params,context:a,matches:r},s=await e({...i,fetcherKey:n,runClientMiddleware:u=>{let h=i;return Vn(h,()=>u({...h,fetcherKey:n,runClientMiddleware:()=>{throw new Error("Cannot call `runClientMiddleware()` from within an `runClientMiddleware` handler")}}))}});try{await Promise.all(r.flatMap(u=>{var h,c;return[(h=u._lazyPromises)==null?void 0:h.handler,(c=u._lazyPromises)==null?void 0:c.route]}))}catch{}return s}async function Wo({request:e,unstable_pattern:t,match:r,lazyHandlerPromise:n,lazyRoutePromise:a,handlerOverride:o,scopedContext:i}){let l,s,u=ve(e.method),h=u?"action":"loader",c=y=>{let g,E=new Promise((b,L)=>g=L);s=()=>g(),e.signal.addEventListener("abort",s);let C=b=>typeof y!="function"?Promise.reject(new Error(`You cannot call the handler for a route which defines a boolean "${h}" [routeId: ${r.route.id}]`)):y({request:e,unstable_pattern:t,params:r.params,context:i},...b!==void 0?[b]:[]),R=(async()=>{try{return{type:"data",result:await(o?o(L=>C(L)):C())}}catch(b){return{type:"error",result:b}}})();return Promise.race([R,E])};try{let y=u?r.route.action:r.route.loader;if(n||a)if(y){let g,[E]=await Promise.all([c(y).catch(C=>{g=C}),n,a]);if(g!==void 0)throw g;l=E}else{await n;let g=u?r.route.action:r.route.loader;if(g)[l]=await Promise.all([c(g),a]);else if(h==="action"){let E=new URL(e.url),C=E.pathname+E.search;throw xe(405,{method:e.method,pathname:C,routeId:r.route.id})}else return{type:"data",result:void 0}}else if(y)l=await c(y);else{let g=new URL(e.url),E=g.pathname+g.search;throw xe(404,{pathname:E})}}catch(y){return{type:"error",result:y}}finally{s&&e.signal.removeEventListener("abort",s)}return l}async function Yo(e){let t=e.headers.get("Content-Type");return t&&/\bapplication\/json\b/.test(t)?e.body==null?null:e.json():e.text()}async function Vo(e){var n,a,o,i,l;let{result:t,type:r}=e;if(jt(t)){let s;try{s=await Yo(t)}catch(u){return{type:"error",error:u}}return r==="error"?{type:"error",error:new je(t.status,t.statusText,s),statusCode:t.status,headers:t.headers}:{type:"data",data:s,statusCode:t.status,headers:t.headers}}return r==="error"?dr(t)?t.data instanceof Error?{type:"error",error:t.data,statusCode:(n=t.init)==null?void 0:n.status,headers:(a=t.init)!=null&&a.headers?new Headers(t.init.headers):void 0}:{type:"error",error:Xo(t),statusCode:Ve(t)?t.status:void 0,headers:(o=t.init)!=null&&o.headers?new Headers(t.init.headers):void 0}:{type:"error",error:t,statusCode:Ve(t)?t.status:void 0}:dr(t)?{type:"data",data:t.data,statusCode:(i=t.init)==null?void 0:i.status,headers:(l=t.init)!=null&&l.headers?new Headers(t.init.headers):void 0}:{type:"data",data:t}}function Jo(e,t,r,n,a){let o=e.headers.get("Location");if(W(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!$t(o)){let i=n.slice(0,n.findIndex(l=>l.route.id===r)+1);o=lr(new URL(t.url),i,a,o),e.headers.set("Location",o)}return e}function fn(e,t,r){if($t(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=be(a.pathname,r)!=null;if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Xe(e,t,r,n){let a=e.createURL(Kn(t)).toString(),o={signal:r};if(n&&ve(n.formMethod)){let{formMethod:i,formEncType:l}=n;o.method=i.toUpperCase(),l==="application/json"?(o.headers=new Headers({"Content-Type":l}),o.body=JSON.stringify(n.json)):l==="text/plain"?o.body=n.text:l==="application/x-www-form-urlencoded"&&n.formData?o.body=cr(n.formData):o.body=n.formData}return new Request(a,o)}function cr(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,typeof n=="string"?n:n.name);return t}function hn(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Go(e,t,r,n=!1,a=!1){let o={},i=null,l,s=!1,u={},h=r&&Re(r[1])?r[1].error:void 0;return e.forEach(c=>{if(!(c.route.id in t))return;let y=c.route.id,g=t[y];if(W(!Ye(g),"Cannot handle redirect results in processLoaderData"),Re(g)){let E=g.error;if(h!==void 0&&(E=h,h=void 0),i=i||{},a)i[y]=E;else{let C=ke(e,y);i[C.route.id]==null&&(i[C.route.id]=E)}n||(o[y]=Bn),s||(s=!0,l=Ve(g.error)?g.error.status:500),g.headers&&(u[y]=g.headers)}else o[y]=g.data,g.statusCode&&g.statusCode!==200&&!s&&(l=g.statusCode),g.headers&&(u[y]=g.headers)}),h!==void 0&&r&&(i={[r[0]]:h},r[2]&&(o[r[2]]=void 0)),{loaderData:o,errors:i,statusCode:l||200,loaderHeaders:u}}function mn(e,t,r,n,a,o){let{loaderData:i,errors:l}=Go(t,r,n);return a.filter(s=>!s.matches||s.matches.some(u=>u.shouldLoad)).forEach(s=>{let{key:u,match:h,controller:c}=s;if(c&&c.signal.aborted)return;let y=o[u];if(W(y,"Did not find corresponding fetcher result"),Re(y)){let g=ke(e.matches,h==null?void 0:h.route.id);l&&l[g.route.id]||(l={...l,[g.route.id]:y.error}),e.fetchers.delete(u)}else if(Ye(y))W(!1,"Unhandled fetcher revalidation redirect");else{let g=Ae(y.data);e.fetchers.set(u,g)}}),{loaderData:i,errors:l}}function pn(e,t,r,n){let a=Object.entries(t).filter(([,o])=>o!==Bn).reduce((o,[i,l])=>(o[i]=l,o),{});for(let o of r){let i=o.route.id;if(!t.hasOwnProperty(i)&&e.hasOwnProperty(i)&&o.route.loader&&(a[i]=e[i]),n&&n.hasOwnProperty(i))break}return a}function yn(e){return e?Re(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function ke(e,t){return(t?e.slice(0,e.findIndex(n=>n.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Ct(e){let t=e.length===1?e[0]:e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function xe(e,{pathname:t,routeId:r,method:n,type:a,message:o}={}){let i="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(i="Bad Request",n&&t&&r?l=`You made a ${n} request to "${t}" but did not provide a \`loader\` for route "${r}", so there is no way to handle the request.`:a==="invalid-body"&&(l="Unable to encode submission body")):e===403?(i="Forbidden",l=`Route "${r}" does not match URL "${t}"`):e===404?(i="Not Found",l=`No route matches URL "${t}"`):e===405&&(i="Method Not Allowed",n&&t&&r?l=`You made a ${n.toUpperCase()} request to "${t}" but did not provide an \`action\` for route "${r}", so there is no way to handle the request.`:n&&(l=`Invalid request method "${n.toUpperCase()}"`)),new je(e||500,i,new Error(l),!0)}function Lt(e){let t=Object.entries(e);for(let r=t.length-1;r>=0;r--){let[n,a]=t[r];if(Ye(a))return{key:n,result:a}}}function Kn(e){let t=typeof e=="string"?$e(e):e;return Me({...t,hash:""})}function Ko(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Xo(e){var t,r;return new je(((t=e.init)==null?void 0:t.status)??500,((r=e.init)==null?void 0:r.statusText)??"Internal Server Error",e.data)}function qo(e){return e!=null&&typeof e=="object"&&Object.entries(e).every(([t,r])=>typeof t=="string"&&Qo(r))}function Qo(e){return e!=null&&typeof e=="object"&&"type"in e&&"result"in e&&(e.type==="data"||e.type==="error")}function Zo(e){return jt(e.result)&&Un.has(e.result.status)}function Re(e){return e.type==="error"}function Ye(e){return(e&&e.type)==="redirect"}function dr(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function jt(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function ei(e){return Un.has(e)}function ti(e){return jt(e)&&ei(e.status)&&e.headers.has("Location")}function ri(e){return Io.has(e.toUpperCase())}function ve(e){return Oo.has(e.toUpperCase())}function br(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Dt(e,t){let r=typeof t=="string"?$e(t).search:t.search;if(e[e.length-1].route.index&&br(r||""))return e[e.length-1];let n=Fn(e);return n[n.length-1]}function vn(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(!(!t||!r||!n)){if(a!=null)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a};if(o!=null)return{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0};if(i!==void 0)return{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}}}function tr(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function ni(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function lt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function ai(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Ae(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function oi(e,t){try{let r=e.sessionStorage.getItem(zn);if(r){let n=JSON.parse(r);for(let[a,o]of Object.entries(n||{}))o&&Array.isArray(o)&&t.set(a,new Set(o||[]))}}catch{}}function ii(e,t){if(t.size>0){let r={};for(let[n,a]of t)r[n]=[...a];try{e.sessionStorage.setItem(zn,JSON.stringify(r))}catch(n){oe(!1,`Failed to save applied view transitions in sessionStorage (${n}).`)}}}function gn(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}var Je=f.createContext(null);Je.displayName="DataRouter";var Ze=f.createContext(null);Ze.displayName="DataRouterState";var Xn=f.createContext(!1);function qn(){return f.useContext(Xn)}var Sr=f.createContext({isTransitioning:!1});Sr.displayName="ViewTransition";var xr=f.createContext(new Map);xr.displayName="Fetchers";var li=f.createContext(null);li.displayName="Await";var Ee=f.createContext(null);Ee.displayName="Navigation";var Ut=f.createContext(null);Ut.displayName="Location";var Ce=f.createContext({outlet:null,matches:[],isDataRoute:!1});Ce.displayName="Route";var Cr=f.createContext(null);Cr.displayName="RouteError";var Qn="REACT_ROUTER_ERROR",si="REDIRECT",ui="ROUTE_ERROR_RESPONSE";function ci(e){if(e.startsWith(`${Qn}:${si}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function di(e){if(e.startsWith(`${Qn}:${ui}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new je(t.status,t.statusText,t.data)}catch{}}function fi(e,{relative:t}={}){W(yt(),"useHref() may be used only in the context of a <Router> component.");let{basename:r,navigator:n}=f.useContext(Ee),{hash:a,pathname:o,search:i}=vt(e,{relative:t}),l=o;return r!=="/"&&(l=o==="/"?r:Te([r,o])),n.createHref({pathname:l,search:i,hash:a})}function yt(){return f.useContext(Ut)!=null}function Le(){return W(yt(),"useLocation() may be used only in the context of a <Router> component."),f.useContext(Ut).location}var Zn="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function ea(e){f.useContext(Ee).static||f.useLayoutEffect(e)}function ta(){let{isDataRoute:e}=f.useContext(Ce);return e?Ti():hi()}function hi(){W(yt(),"useNavigate() may be used only in the context of a <Router> component.");let e=f.useContext(Je),{basename:t,navigator:r}=f.useContext(Ee),{matches:n}=f.useContext(Ce),{pathname:a}=Le(),o=JSON.stringify(wr(n)),i=f.useRef(!1);return ea(()=>{i.current=!0}),f.useCallback((s,u={})=>{if(oe(i.current,Zn),!i.current)return;if(typeof s=="number"){r.go(s);return}let h=Er(s,JSON.parse(o),a,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:Te([t,h.pathname])),(u.replace?r.replace:r.push)(h,u.state,u)},[t,r,o,a,e])}var mi=f.createContext(null);function pi(e){let t=f.useContext(Ce).outlet;return f.useMemo(()=>t&&f.createElement(mi.Provider,{value:e},t),[t,e])}function yi(){let{matches:e}=f.useContext(Ce),t=e[e.length-1];return t?t.params:{}}function vt(e,{relative:t}={}){let{matches:r}=f.useContext(Ce),{pathname:n}=Le(),a=JSON.stringify(wr(r));return f.useMemo(()=>Er(e,JSON.parse(a),n,t==="path"),[e,a,n,t])}function vi(e,t,r,n,a){W(yt(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:o}=f.useContext(Ee),{matches:i}=f.useContext(Ce),l=i[i.length-1],s=l?l.params:{},u=l?l.pathname:"/",h=l?l.pathnameBase:"/",c=l&&l.route;{let L=c&&c.path||"";oa(u,!c||L.endsWith("*")||L.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${u}" (under <Route path="${L}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
28
|
+
|
|
29
|
+
Please change the parent <Route path="${L}"> to <Route path="${L==="/"?"*":`${L}/*`}">.`)}let y=Le(),g;g=y;let E=g.pathname||"/",C=E;if(h!=="/"){let L=h.replace(/^\//,"").split("/");C="/"+E.replace(/^\//,"").split("/").slice(L.length).join("/")}let R=Ie(e,{pathname:C});return oe(c||R!=null,`No routes matched location "${g.pathname}${g.search}${g.hash}" `),oe(R==null||R[R.length-1].route.element!==void 0||R[R.length-1].route.Component!==void 0||R[R.length-1].route.lazy!==void 0,`Matched leaf route at location "${g.pathname}${g.search}${g.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`),bi(R&&R.map(L=>Object.assign({},L,{params:Object.assign({},s,L.params),pathname:Te([h,o.encodeLocation?o.encodeLocation(L.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathname]),pathnameBase:L.pathnameBase==="/"?h:Te([h,o.encodeLocation?o.encodeLocation(L.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:L.pathnameBase])})),i,r,n,a)}function gi(){let e=aa(),t=Ve(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},o={padding:"2px 4px",backgroundColor:n},i=null;return console.error("Error handled by React Router default ErrorBoundary:",e),i=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:o},"ErrorBoundary")," or"," ",f.createElement("code",{style:o},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),r?f.createElement("pre",{style:a},r):null,i)}var wi=f.createElement(gi,null),ra=class extends f.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const r=di(e.digest);r&&(e=r)}let t=e!==void 0?f.createElement(Ce.Provider,{value:this.props.routeContext},f.createElement(Cr.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?f.createElement(Ei,{error:e},t):t}};ra.contextType=Xn;var rr=new WeakMap;function Ei({children:e,error:t}){let{basename:r}=f.useContext(Ee);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let n=ci(t.digest);if(n){let a=rr.get(t);if(a)throw a;let o=Nn(n.location,r);if(kn&&!rr.get(t))if(o.isExternal||n.reloadDocument)window.location.href=o.absoluteURL||o.to;else{const i=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(o.to,{replace:n.replace}));throw rr.set(t,i),i}return f.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o.absoluteURL||o.to}`})}}return e}function Ri({routeContext:e,match:t,children:r}){let n=f.useContext(Je);return n&&n.static&&n.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=t.route.id),f.createElement(Ce.Provider,{value:e},r)}function bi(e,t=[],r=null,n=null,a=null){if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r==null?void 0:r.errors;if(i!=null){let h=o.findIndex(c=>c.route.id&&(i==null?void 0:i[c.route.id])!==void 0);W(h>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,h+1))}let l=!1,s=-1;if(r)for(let h=0;h<o.length;h++){let c=o[h];if((c.route.HydrateFallback||c.route.hydrateFallbackElement)&&(s=h),c.route.id){let{loaderData:y,errors:g}=r,E=c.route.loader&&!y.hasOwnProperty(c.route.id)&&(!g||g[c.route.id]===void 0);if(c.route.lazy||E){l=!0,s>=0?o=o.slice(0,s+1):o=[o[0]];break}}}let u=r&&n?(h,c)=>{var y,g;n(h,{location:r.location,params:((g=(y=r.matches)==null?void 0:y[0])==null?void 0:g.params)??{},unstable_pattern:pt(r.matches),errorInfo:c})}:void 0;return o.reduceRight((h,c,y)=>{let g,E=!1,C=null,R=null;r&&(g=i&&c.route.id?i[c.route.id]:void 0,C=c.route.errorElement||wi,l&&(s<0&&y===0?(oa("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,R=null):s===y&&(E=!0,R=c.route.hydrateFallbackElement||null)));let b=t.concat(o.slice(0,y+1)),L=()=>{let D;return g?D=C:E?D=R:c.route.Component?D=f.createElement(c.route.Component,null):c.route.element?D=c.route.element:D=h,f.createElement(Ri,{match:c,routeContext:{outlet:h,matches:b,isDataRoute:r!=null},children:D})};return r&&(c.route.ErrorBoundary||c.route.errorElement||y===0)?f.createElement(ra,{location:r.location,revalidation:r.revalidation,component:C,error:g,children:L(),routeContext:{outlet:null,matches:b,isDataRoute:!0},onError:u}):L()},null)}function Lr(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function na(e){let t=f.useContext(Je);return W(t,Lr(e)),t}function et(e){let t=f.useContext(Ze);return W(t,Lr(e)),t}function Si(e){let t=f.useContext(Ce);return W(t,Lr(e)),t}function gt(e){let t=Si(e),r=t.matches[t.matches.length-1];return W(r.route.id,`${e} can only be used on routes that contain a unique "id"`),r.route.id}function xi(){return gt("useRouteId")}function Ci(){return et("useNavigation").navigation}function hs(){let e=na("useRevalidator"),t=et("useRevalidator"),r=f.useCallback(async()=>{await e.router.revalidate()},[e.router]);return f.useMemo(()=>({revalidate:r,state:t.revalidation}),[r,t.revalidation])}function Pr(){let{matches:e,loaderData:t}=et("useMatches");return f.useMemo(()=>e.map(r=>_n(r,t)),[e,t])}function Li(){let e=et("useLoaderData"),t=gt("useLoaderData");return e.loaderData[t]}function Pi(){let e=et("useActionData"),t=gt("useLoaderData");return e.actionData?e.actionData[t]:void 0}function aa(){var n;let e=f.useContext(Cr),t=et("useRouteError"),r=gt("useRouteError");return e!==void 0?e:(n=t.errors)==null?void 0:n[r]}function Ti(){let{router:e}=na("useNavigate"),t=gt("useNavigate"),r=f.useRef(!1);return ea(()=>{r.current=!0}),f.useCallback(async(a,o={})=>{oe(r.current,Zn),r.current&&(typeof a=="number"?await e.navigate(a):await e.navigate(a,{fromRouteId:t,...o}))},[e,t])}var wn={};function oa(e,t,r){!t&&!wn[e]&&(wn[e]=!0,oe(!1,r))}var En={};function fr(e,t){!e&&!En[t]&&(En[t]=!0,console.warn(t))}var Mi="useOptimistic",Rn=Xa[Mi],_i=()=>{};function Di(e){return Rn?Rn(e):[e,_i]}function ms(e){let t={hasErrorBoundary:e.hasErrorBoundary||e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&(e.element&&oe(!1,"You should not include both `Component` and `element` on your route - `Component` will be used."),Object.assign(t,{element:f.createElement(e.Component),Component:void 0})),e.HydrateFallback&&(e.hydrateFallbackElement&&oe(!1,"You should not include both `HydrateFallback` and `hydrateFallbackElement` on your route - `HydrateFallback` will be used."),Object.assign(t,{hydrateFallbackElement:f.createElement(e.HydrateFallback),HydrateFallback:void 0})),e.ErrorBoundary&&(e.errorElement&&oe(!1,"You should not include both `ErrorBoundary` and `errorElement` on your route - `ErrorBoundary` will be used."),Object.assign(t,{errorElement:f.createElement(e.ErrorBoundary),ErrorBoundary:void 0})),t}var ps=["HydrateFallback","hydrateFallbackElement"],Oi=class{constructor(){this.status="pending",this.promise=new Promise((e,t)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",e(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",t(r))}})}};function ys({router:e,flushSync:t,onError:r,unstable_useTransitions:n}){n=qn()||n;let[o,i]=f.useState(e.state),[l,s]=Di(o),[u,h]=f.useState(),[c,y]=f.useState({isTransitioning:!1}),[g,E]=f.useState(),[C,R]=f.useState(),[b,L]=f.useState(),D=f.useRef(new Map),k=f.useCallback((M,{deletedFetchers:H,newErrors:J,flushSync:K,viewTransitionOpts:ae})=>{J&&r&&Object.values(J).forEach(Q=>{var ue;return r(Q,{location:M.location,params:((ue=M.matches[0])==null?void 0:ue.params)??{},unstable_pattern:pt(M.matches)})}),M.fetchers.forEach((Q,ue)=>{Q.data!==void 0&&D.current.set(ue,Q.data)}),H.forEach(Q=>D.current.delete(Q)),fr(K===!1||t!=null,'You provided the `flushSync` option to a router update, but you are not using the `<RouterProvider>` from `react-router/dom` so `ReactDOM.flushSync()` is unavailable. Please update your app to `import { RouterProvider } from "react-router/dom"` and ensure you have `react-dom` installed as a dependency to use the `flushSync` option.');let le=e.window!=null&&e.window.document!=null&&typeof e.window.document.startViewTransition=="function";if(fr(ae==null||le,"You provided the `viewTransition` option to a router update, but you do not appear to be running in a DOM environment as `window.startViewTransition` is not available."),!ae||!le){t&&K?t(()=>i(M)):n===!1?i(M):f.startTransition(()=>{n===!0&&s(Q=>bn(Q,M)),i(M)});return}if(t&&K){t(()=>{C&&(g==null||g.resolve(),C.skipTransition()),y({isTransitioning:!0,flushSync:!0,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})});let Q=e.window.document.startViewTransition(()=>{t(()=>i(M))});Q.finished.finally(()=>{t(()=>{E(void 0),R(void 0),h(void 0),y({isTransitioning:!1})})}),t(()=>R(Q));return}C?(g==null||g.resolve(),C.skipTransition(),L({state:M,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation})):(h(M),y({isTransitioning:!0,flushSync:!1,currentLocation:ae.currentLocation,nextLocation:ae.nextLocation}))},[e.window,t,C,g,n,s,r]);f.useLayoutEffect(()=>e.subscribe(k),[e,k]),f.useEffect(()=>{c.isTransitioning&&!c.flushSync&&E(new Oi)},[c]),f.useEffect(()=>{if(g&&u&&e.window){let M=u,H=g.promise,J=e.window.document.startViewTransition(async()=>{n===!1?i(M):f.startTransition(()=>{n===!0&&s(K=>bn(K,M)),i(M)}),await H});J.finished.finally(()=>{E(void 0),R(void 0),h(void 0),y({isTransitioning:!1})}),R(J)}},[u,g,e.window,n,s]),f.useEffect(()=>{g&&u&&l.location.key===u.location.key&&g.resolve()},[g,C,l.location,u]),f.useEffect(()=>{!c.isTransitioning&&b&&(h(b.state),y({isTransitioning:!0,flushSync:!1,currentLocation:b.currentLocation,nextLocation:b.nextLocation}),L(void 0))},[c.isTransitioning,b]);let T=f.useMemo(()=>({createHref:e.createHref,encodeLocation:e.encodeLocation,go:M=>e.navigate(M),push:(M,H,J)=>e.navigate(M,{state:H,preventScrollReset:J==null?void 0:J.preventScrollReset}),replace:(M,H,J)=>e.navigate(M,{replace:!0,state:H,preventScrollReset:J==null?void 0:J.preventScrollReset})}),[e]),_=e.basename||"/",m=f.useMemo(()=>({router:e,navigator:T,static:!1,basename:_,onError:r}),[e,T,_,r]);return f.createElement(f.Fragment,null,f.createElement(Je.Provider,{value:m},f.createElement(Ze.Provider,{value:l},f.createElement(xr.Provider,{value:D.current},f.createElement(Sr.Provider,{value:c},f.createElement(Fi,{basename:_,location:l.location,navigationType:l.historyAction,navigator:T,unstable_useTransitions:n},f.createElement(Ai,{routes:e.routes,future:e.future,state:l,onError:r})))))),null)}function bn(e,t){return{...e,navigation:t.navigation.state!=="idle"?t.navigation:e.navigation,revalidation:t.revalidation!=="idle"?t.revalidation:e.revalidation,actionData:t.navigation.state!=="submitting"?t.actionData:e.actionData,fetchers:t.fetchers}}var Ai=f.memo(Ii);function Ii({routes:e,future:t,state:r,onError:n}){return vi(e,void 0,r,n,t)}function vs(e){return pi(e.context)}function Fi({basename:e="/",children:t=null,location:r,navigationType:n="POP",navigator:a,static:o=!1,unstable_useTransitions:i}){W(!yt(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),s=f.useMemo(()=>({basename:l,navigator:a,static:o,unstable_useTransitions:i,future:{}}),[l,a,o,i]);typeof r=="string"&&(r=$e(r));let{pathname:u="/",search:h="",hash:c="",state:y=null,key:g="default"}=r,E=f.useMemo(()=>{let C=be(u,l);return C==null?null:{location:{pathname:C,search:h,hash:c,state:y,key:g},navigationType:n}},[l,u,h,c,y,g,n]);return oe(E!=null,`<Router basename="${l}"> is not able to match the URL "${u}${h}${c}" because it does not start with the basename, so the <Router> won't render anything.`),E==null?null:f.createElement(Ee.Provider,{value:s},f.createElement(Ut.Provider,{children:t,value:E}))}function ki(){return{params:yi(),loaderData:Li(),actionData:Pi(),matches:Pr()}}function gs(e){return function(){const r=ki();return f.createElement(e,r)}}var Ot="get",At="application/x-www-form-urlencoded";function Ht(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function Ni(e){return Ht(e)&&e.tagName.toLowerCase()==="button"}function $i(e){return Ht(e)&&e.tagName.toLowerCase()==="form"}function ji(e){return Ht(e)&&e.tagName.toLowerCase()==="input"}function Ui(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Hi(e,t){return e.button===0&&(!t||t==="_self")&&!Ui(e)}function hr(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function zi(e,t){let r=hr(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(o=>{r.append(a,o)})}),r}var Pt=null;function Bi(){if(Pt===null)try{new FormData(document.createElement("form"),0),Pt=!1}catch{Pt=!0}return Pt}var Wi=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function nr(e){return e!=null&&!Wi.has(e)?(oe(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${At}"`),null):e}function Yi(e,t){let r,n,a,o,i;if($i(e)){let l=e.getAttribute("action");n=l?be(l,t):null,r=e.getAttribute("method")||Ot,a=nr(e.getAttribute("enctype"))||At,o=new FormData(e)}else if(Ni(e)||ji(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||l.getAttribute("action");if(n=s?be(s,t):null,r=e.getAttribute("formmethod")||l.getAttribute("method")||Ot,a=nr(e.getAttribute("formenctype"))||nr(l.getAttribute("enctype"))||At,o=new FormData(l,e),!Bi()){let{name:u,type:h,value:c}=e;if(h==="image"){let y=u?`${u}.`:"";o.append(`${y}x`,"0"),o.append(`${y}y`,"0")}else u&&o.append(u,c)}}else{if(Ht(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=Ot,n=null,a=At,i=e}return o&&a==="text/plain"&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}var Vi=-1,Ji=-2,Gi=-3,Ki=-4,Xi=-5,qi=-6,Qi=-7,Zi="B",el="D",ia="E",tl="M",rl="N",la="P",nl="R",al="S",ol="Y",il="U",ll="Z",sa=class{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}};function sl(){const e=new TextDecoder;let t="";return new TransformStream({transform(r,n){const a=e.decode(r,{stream:!0}),o=(t+a).split(`
|
|
30
|
+
`);t=o.pop()||"";for(const i of o)n.enqueue(i)},flush(r){t&&r.enqueue(t)}})}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ar=typeof window<"u"?window:typeof globalThis<"u"?globalThis:void 0;function mr(e){const{hydrated:t,values:r}=this;if(typeof e=="number")return Sn.call(this,e);if(!Array.isArray(e)||!e.length)throw new SyntaxError;const n=r.length;for(const a of e)r.push(a);return t.length=r.length,Sn.call(this,n)}function Sn(e){const{hydrated:t,values:r,deferred:n,plugins:a}=this;let o;const i=[[e,s=>{o=s}]];let l=[];for(;i.length>0;){const[s,u]=i.pop();switch(s){case Qi:u(void 0);continue;case Xi:u(null);continue;case Ji:u(NaN);continue;case qi:u(1/0);continue;case Gi:u(-1/0);continue;case Ki:u(-0);continue}if(t[s]){u(t[s]);continue}const h=r[s];if(!h||typeof h!="object"){t[s]=h,u(h);continue}if(Array.isArray(h))if(typeof h[0]=="string"){const[c,y,g]=h;switch(c){case el:u(t[s]=new Date(y));continue;case il:u(t[s]=new URL(y));continue;case Zi:u(t[s]=BigInt(y));continue;case nl:u(t[s]=new RegExp(y,g));continue;case ol:u(t[s]=Symbol.for(y));continue;case al:const E=new Set;t[s]=E;for(let k=h.length-1;k>0;k--)i.push([h[k],T=>{E.add(T)}]);u(E);continue;case tl:const C=new Map;t[s]=C;for(let k=h.length-2;k>0;k-=2){const T=[];i.push([h[k+1],_=>{T[1]=_}]),i.push([h[k],_=>{T[0]=_}]),l.push(()=>{C.set(T[0],T[1])})}u(C);continue;case rl:const R=Object.create(null);t[s]=R;for(const k of Object.keys(y).reverse()){const T=[];i.push([y[k],_=>{T[1]=_}]),i.push([Number(k.slice(1)),_=>{T[0]=_}]),l.push(()=>{R[T[0]]=T[1]})}u(R);continue;case la:if(t[y])u(t[s]=t[y]);else{const k=new sa;n[y]=k,u(t[s]=k.promise)}continue;case ia:const[,b,L]=h;let D=L&&ar&&ar[L]?new ar[L](b):new Error(b);t[s]=D,u(D);continue;case ll:u(t[s]=t[y]);continue;default:if(Array.isArray(a)){const k=[],T=h.slice(1);for(let _=0;_<T.length;_++){const m=T[_];i.push([m,M=>{k[_]=M}])}l.push(()=>{for(const _ of a){const m=_(h[0],...k);if(m){u(t[s]=m.value);return}}throw new SyntaxError});continue}throw new SyntaxError}}else{const c=[];t[s]=c;for(let y=0;y<h.length;y++){const g=h[y];g!==Vi&&i.push([g,E=>{c[y]=E}])}u(c);continue}else{const c={};t[s]=c;for(const y of Object.keys(h).reverse()){const g=[];i.push([h[y],E=>{g[1]=E}]),i.push([Number(y.slice(1)),E=>{g[0]=E}]),l.push(()=>{c[g[0]]=g[1]})}u(c);continue}}for(;l.length>0;)l.pop()();return o}async function ul(e,t){const{plugins:r}=t??{},n=new sa,a=e.pipeThrough(sl()).getReader(),o={values:[],hydrated:[],deferred:{},plugins:r},i=await cl.call(o,a);let l=n.promise;return i.done?n.resolve():l=dl.call(o,a).then(n.resolve).catch(s=>{for(const u of Object.values(o.deferred))u.reject(s);n.reject(s)}),{done:l.then(()=>a.closed),value:i.value}}async function cl(e){const t=await e.read();if(!t.value)throw new SyntaxError;let r;try{r=JSON.parse(t.value)}catch{throw new SyntaxError}return{done:t.done,value:mr.call(this,r)}}async function dl(e){let t=await e.read();for(;!t.done;){if(!t.value)continue;const r=t.value;switch(r[0]){case la:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=mr.call(this,l);o.resolve(s);break}case ia:{const n=r.indexOf(":"),a=Number(r.slice(1,n)),o=this.deferred[a];if(!o)throw new Error(`Deferred ID ${a} not found in stream`);const i=r.slice(n+1);let l;try{l=JSON.parse(i)}catch{throw new SyntaxError}const s=mr.call(this,l);o.reject(s);break}default:throw new SyntaxError}t=await e.read()}}async function fl(e){let t={signal:e.signal};if(e.method!=="GET"){t.method=e.method;let r=e.headers.get("Content-Type");r&&/\bapplication\/json\b/.test(r)?(t.headers={"Content-Type":r},t.body=JSON.stringify(await e.json())):r&&/\btext\/plain\b/.test(r)?(t.headers={"Content-Type":r},t.body=await e.text()):r&&/\bapplication\/x-www-form-urlencoded\b/.test(r)?t.body=new URLSearchParams(await e.text()):t.body=await e.formData()}return t}var hl={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},ml=/[&><\u2028\u2029]/g;function pl(e){return e.replace(ml,t=>hl[t])}function we(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}var pr=Symbol("SingleFetchRedirect"),ua=class extends Error{},yl=202,vl=new Set([100,101,204,205]);function ws(e,t,r,n,a){let o=gl(e,i=>{let l=t.routes[i.route.id];we(l,"Route not found in manifest");let s=r[i.route.id];return{hasLoader:l.hasLoader,hasClientLoader:l.hasClientLoader,hasShouldRevalidate:!!(s!=null&&s.shouldRevalidate)}},Cl,n,a);return async i=>i.runClientMiddleware(o)}function gl(e,t,r,n,a,o=()=>!0){return async i=>{let{request:l,matches:s,fetcherKey:u}=i,h=e();if(l.method!=="GET")return wl(i,r,a);let c=s.some(y=>{let{hasLoader:g,hasClientLoader:E}=t(y);return y.shouldCallHandler()&&g&&!E});return!n&&!c?El(i,t,r,a):u?Sl(i,r,a):Rl(i,h,t,r,n,a,o)}}async function wl(e,t,r){let n=e.matches.find(i=>i.shouldCallHandler());we(n,"No action match found");let a,o=await n.resolve(async i=>await i(async()=>{let{data:s,status:u}=await t(e,r,[n.route.id]);return a=u,mt(s,n.route.id)}));return jt(o.result)||Ve(o.result)||dr(o.result)?{[n.route.id]:o}:{[n.route.id]:{type:o.type,result:xo(o.result,a)}}}async function El(e,t,r,n){let a=e.matches.filter(i=>i.shouldCallHandler()),o={};return await Promise.all(a.map(i=>i.resolve(async l=>{try{let{hasClientLoader:s}=t(i),u=i.route.id,h=s?await l(async()=>{let{data:c}=await r(e,n,[u]);return mt(c,u)}):await l();o[i.route.id]={type:"data",result:h}}catch(s){o[i.route.id]={type:"error",result:s}}}))),o}async function Rl(e,t,r,n,a,o,i=()=>!0){let l=new Set,s=!1,u=e.matches.map(()=>xn()),h=xn(),c={},y=Promise.all(e.matches.map(async(E,C)=>E.resolve(async R=>{u[C].resolve();let b=E.route.id,{hasLoader:L,hasClientLoader:D,hasShouldRevalidate:k}=r(E),T=!E.shouldRevalidateArgs||E.shouldRevalidateArgs.actionStatus==null||E.shouldRevalidateArgs.actionStatus<400;if(!E.shouldCallHandler(T)){s||(s=E.shouldRevalidateArgs!=null&&L&&k===!0);return}if(i(E)&&D){L&&(s=!0);try{let m=await R(async()=>{let{data:M}=await n(e,o,[b]);return mt(M,b)});c[b]={type:"data",result:m}}catch(m){c[b]={type:"error",result:m}}return}L&&l.add(b);try{let m=await R(async()=>{let M=await h.promise;return mt(M,b)});c[b]={type:"data",result:m}}catch(m){c[b]={type:"error",result:m}}})));if(await Promise.all(u.map(E=>E.promise)),(!t.state.initialized&&t.state.navigation.state==="idle"||l.size===0)&&!window.__reactRouterHdrActive)h.resolve({routes:{}});else{let E=a&&s&&l.size>0?[...l.keys()]:void 0;try{let C=await n(e,o,E);h.resolve(C.data)}catch(C){h.reject(C)}}return await y,await bl(h.promise,e.matches,l,c),c}async function bl(e,t,r,n){var a;try{let o,i=await e;if("routes"in i){for(let l of t)if(l.route.id in i.routes){let s=i.routes[l.route.id];if("error"in s){o=s.error,((a=n[l.route.id])==null?void 0:a.result)==null&&(n[l.route.id]={type:"error",result:o});break}}}o!==void 0&&Array.from(r.values()).forEach(l=>{n[l].result instanceof ua&&(n[l].result=o)})}catch{}}async function Sl(e,t,r){let n=e.matches.find(i=>i.shouldCallHandler());we(n,"No fetcher match found");let a=n.route.id,o=await n.resolve(async i=>i(async()=>{let{data:l}=await t(e,r,[a]);return mt(l,a)}));return{[n.route.id]:o}}function xl(e){let t=e.searchParams.getAll("index");e.searchParams.delete("index");let r=[];for(let n of t)n&&r.push(n);for(let n of r)e.searchParams.append("index",n);return e}function ca(e,t,r){let n=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n.pathname==="/"?n.pathname=`_root.${r}`:t&&be(n.pathname,t)==="/"?n.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:n.pathname=`${n.pathname.replace(/\/$/,"")}.${r}`,n}async function Cl(e,t,r){let{request:n}=e,a=ca(n.url,t,"data");n.method==="GET"&&(a=xl(a),r&&a.searchParams.set("_routes",r.join(",")));let o=await fetch(a,await fl(n));if(o.status>=400&&!o.headers.has("X-Remix-Response"))throw new je(o.status,o.statusText,await o.text());if(o.status===204&&o.headers.has("X-Remix-Redirect"))return{status:yl,data:{redirect:{redirect:o.headers.get("X-Remix-Redirect"),status:Number(o.headers.get("X-Remix-Status")||"302"),revalidate:o.headers.get("X-Remix-Revalidate")==="true",reload:o.headers.get("X-Remix-Reload-Document")==="true",replace:o.headers.get("X-Remix-Replace")==="true"}}};if(vl.has(o.status)){let i={};return r&&n.method!=="GET"&&(i[r[0]]={data:void 0}),{status:o.status,data:{routes:i}}}we(o.body,"No response body to decode");try{let i=await Ll(o.body,window),l;if(n.method==="GET"){let s=i.value;pr in s?l={redirect:s[pr]}:l={routes:s}}else{let s=i.value,u=r==null?void 0:r[0];we(u,"No routeId found for single fetch call decoding"),"redirect"in s?l={redirect:s}:l={routes:{[u]:s}}}return{status:o.status,data:l}}catch{throw new Error("Unable to decode turbo-stream response")}}function Ll(e,t){return ul(e,{plugins:[(r,...n)=>{if(r==="SanitizedError"){let[a,o,i]=n,l=Error;a&&a in t&&typeof t[a]=="function"&&(l=t[a]);let s=new l(o);return s.stack=i,{value:s}}if(r==="ErrorResponse"){let[a,o,i]=n;return{value:new je(o,i,a)}}if(r==="SingleFetchRedirect")return{value:{[pr]:n[0]}};if(r==="SingleFetchClassInstance")return{value:n[0]};if(r==="SingleFetchFallback")return{value:void 0}}]})}function mt(e,t){if("redirect"in e){let{redirect:n,revalidate:a,reload:o,replace:i,status:l}=e.redirect;throw Co(n,{status:l,headers:{...a?{"X-Remix-Revalidate":"yes"}:null,...o?{"X-Remix-Reload-Document":"yes"}:null,...i?{"X-Remix-Replace":"yes"}:null}})}let r=e.routes[t];if(r==null)throw new ua(`No result found for routeId "${t}"`);if("error"in r)throw r.error;if("data"in r)return r.data;throw new Error(`Invalid response found for routeId "${t}"`)}function xn(){let e,t,r=new Promise((n,a)=>{e=async o=>{n(o);try{await r}catch{}},t=async o=>{a(o);try{await r}catch{}}});return{promise:r,resolve:e,reject:t}}async function da(e,t){if(e.id in t)return t[e.id];try{let r=await import(e.module);return t[e.id]=r,r}catch(r){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(r),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Pl(e,t,r){let n=e.map(o=>{var s;let i=t[o.route.id],l=r.routes[o.route.id];return[l&&l.css?l.css.map(u=>({rel:"stylesheet",href:u})):[],((s=i==null?void 0:i.links)==null?void 0:s.call(i))||[]]}).flat(2),a=Mr(e,r);return pa(n,a)}function fa(e){return e.css?e.css.map(t=>({rel:"stylesheet",href:t})):[]}async function Tl(e){if(!e.css)return;let t=fa(e);await Promise.all(t.map(ma))}async function ha(e,t){if(!e.css&&!t.links||!Al())return;let r=[];if(e.css&&r.push(...fa(e)),t.links&&r.push(...t.links()),r.length===0)return;let n=[];for(let a of r)!Tr(a)&&a.rel==="stylesheet"&&n.push({...a,rel:"preload",as:"style"});await Promise.all(n.map(ma))}async function ma(e){return new Promise(t=>{if(e.media&&!window.matchMedia(e.media).matches||document.querySelector(`link[rel="stylesheet"][href="${e.href}"]`))return t();let r=document.createElement("link");Object.assign(r,e);function n(){document.head.contains(r)&&document.head.removeChild(r)}r.onload=()=>{n(),t()},r.onerror=()=>{n(),t()},document.head.appendChild(r)})}function Tr(e){return e!=null&&typeof e.page=="string"}function Ml(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function _l(e,t,r){let n=await Promise.all(e.map(async a=>{let o=t.routes[a.route.id];if(o){let i=await da(o,r);return i.links?i.links():[]}return[]}));return pa(n.flat(1).filter(Ml).filter(a=>a.rel==="stylesheet"||a.rel==="preload").map(a=>a.rel==="stylesheet"?{...a,rel:"prefetch",as:"style"}:{...a,rel:"prefetch"}))}function Cn(e,t,r,n,a,o){let i=(s,u)=>r[u]?s.route.id!==r[u].route.id:!0,l=(s,u)=>{var h;return r[u].pathname!==s.pathname||((h=r[u].route.path)==null?void 0:h.endsWith("*"))&&r[u].params["*"]!==s.params["*"]};return o==="assets"?t.filter((s,u)=>i(s,u)||l(s,u)):o==="data"?t.filter((s,u)=>{var c;let h=n.routes[s.route.id];if(!h||!h.hasLoader)return!1;if(i(s,u)||l(s,u))return!0;if(s.route.shouldRevalidate){let y=s.route.shouldRevalidate({currentUrl:new URL(a.pathname+a.search+a.hash,window.origin),currentParams:((c=r[0])==null?void 0:c.params)||{},nextUrl:new URL(e,window.origin),nextParams:s.params,defaultShouldRevalidate:!0});if(typeof y=="boolean")return y}return!0}):[]}function Mr(e,t,{includeHydrateFallback:r}={}){return Dl(e.map(n=>{let a=t.routes[n.route.id];if(!a)return[];let o=[a.module];return a.clientActionModule&&(o=o.concat(a.clientActionModule)),a.clientLoaderModule&&(o=o.concat(a.clientLoaderModule)),r&&a.hydrateFallbackModule&&(o=o.concat(a.hydrateFallbackModule)),a.imports&&(o=o.concat(a.imports)),o}).flat(1))}function Dl(e){return[...new Set(e)]}function Ol(e){let t={},r=Object.keys(e).sort();for(let n of r)t[n]=e[n];return t}function pa(e,t){let r=new Set,n=new Set(t);return e.reduce((a,o)=>{if(t&&!Tr(o)&&o.as==="script"&&o.href&&n.has(o.href))return a;let l=JSON.stringify(Ol(o));return r.has(l)||(r.add(l),a.push({key:l,link:o})),a},[])}var Tt;function Al(){if(Tt!==void 0)return Tt;let e=document.createElement("link");return Tt=e.relList.supports("preload"),e=null,Tt}function Il(){return f.createElement(yr,{title:"Loading...",renderScripts:!0},f.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
31
|
+
console.log(
|
|
32
|
+
"💿 Hey developer 👋. You can provide a way better UX than this " +
|
|
33
|
+
"when your app is loading JS modules and/or running \`clientLoader\` " +
|
|
34
|
+
"functions. Check out https://reactrouter.com/start/framework/route-module#hydratefallback " +
|
|
35
|
+
"for more information."
|
|
36
|
+
);
|
|
37
|
+
`}}))}function ya(e){let t={};return Object.values(e).forEach(r=>{if(r){let n=r.parentId||"";t[n]||(t[n]=[]),t[n].push(r)}}),t}function Fl(e,t,r){let n=va(t),a=t.HydrateFallback&&(!r||e.id==="root")?t.HydrateFallback:e.id==="root"?Il:void 0,o=t.ErrorBoundary?t.ErrorBoundary:e.id==="root"?()=>f.createElement(Ea,{error:aa()}):void 0;return e.id==="root"&&t.Layout?{...n?{element:f.createElement(t.Layout,null,f.createElement(n,null))}:{Component:n},...o?{errorElement:f.createElement(t.Layout,null,f.createElement(o,null))}:{ErrorBoundary:o},...a?{hydrateFallbackElement:f.createElement(t.Layout,null,f.createElement(a,null))}:{HydrateFallback:a}}:{Component:n,ErrorBoundary:o,HydrateFallback:a}}function Es(e,t,r,n,a,o){return _r(t,r,n,a,o,"",ya(t),e)}function Mt(e,t){if(e==="loader"&&!t.hasLoader||e==="action"&&!t.hasAction){let n=`You are trying to call ${e==="action"?"serverAction()":"serverLoader()"} on a route that does not have a server ${e} (routeId: "${t.id}")`;throw console.error(n),new je(400,"Bad Request",new Error(n),!0)}}function or(e,t){let r=e==="clientAction"?"a":"an",n=`Route "${t}" does not have ${r} ${e}, but you are trying to submit to it. To fix this, please add ${r} \`${e}\` function to the route`;throw console.error(n),new je(405,"Method Not Allowed",new Error(n),!0)}function _r(e,t,r,n,a,o="",i=ya(e),l){return(i[o]||[]).map(s=>{var L,D,k;let u=t[s.id];function h(T){return we(typeof T=="function","No single fetch function available for route handler"),T()}function c(T){return s.hasLoader?h(T):Promise.resolve(null)}function y(T){if(!s.hasAction)throw or("action",s.id);return h(T)}function g(T){import(T)}function E(T){T.clientActionModule&&g(T.clientActionModule),T.clientLoaderModule&&g(T.clientLoaderModule)}async function C(T){let _=t[s.id],m=_?ha(s,_):Promise.resolve();try{return T()}finally{await m}}let R={id:s.id,index:s.index,path:s.path};if(u){Object.assign(R,{...R,...Fl(s,u,a),middleware:u.clientMiddleware,handle:u.handle,shouldRevalidate:Ln(R.path,u,s,n,l)});let T=r&&r.loaderData&&s.id in r.loaderData,_=T?(L=r==null?void 0:r.loaderData)==null?void 0:L[s.id]:void 0,m=r&&r.errors&&s.id in r.errors,M=m?(D=r==null?void 0:r.errors)==null?void 0:D[s.id]:void 0,H=l==null&&(((k=u.clientLoader)==null?void 0:k.hydrate)===!0||!s.hasLoader);R.loader=async({request:J,params:K,context:ae,unstable_pattern:le},Q)=>{try{return await C(async()=>(we(u,"No `routeModule` available for critical-route loader"),u.clientLoader?u.clientLoader({request:J,params:K,context:ae,unstable_pattern:le,async serverLoader(){if(Mt("loader",s),H){if(T)return _;if(m)throw M}return c(Q)}}):c(Q)))}finally{H=!1}},R.loader.hydrate=$l(s.id,u.clientLoader,s.hasLoader,a),R.action=({request:J,params:K,context:ae,unstable_pattern:le},Q)=>C(async()=>{if(we(u,"No `routeModule` available for critical-route action"),!u.clientAction){if(a)throw or("clientAction",s.id);return y(Q)}return u.clientAction({request:J,params:K,context:ae,unstable_pattern:le,async serverAction(){return Mt("action",s),y(Q)}})})}else{s.hasClientLoader||(R.loader=(m,M)=>C(()=>c(M))),s.hasClientAction||(R.action=(m,M)=>C(()=>{if(a)throw or("clientAction",s.id);return y(M)}));let T;async function _(){return T?await T:(T=(async()=>{(s.clientLoaderModule||s.clientActionModule)&&await new Promise(M=>setTimeout(M,0));let m=Nl(s,t);return E(s),await m})(),await T)}R.lazy={loader:s.hasClientLoader?async()=>{let{clientLoader:m}=s.clientLoaderModule?await import(s.clientLoaderModule):await _();return we(m,"No `clientLoader` export found"),(M,H)=>m({...M,async serverLoader(){return Mt("loader",s),c(H)}})}:void 0,action:s.hasClientAction?async()=>{let m=s.clientActionModule?import(s.clientActionModule):_();E(s);let{clientAction:M}=await m;return we(M,"No `clientAction` export found"),(H,J)=>M({...H,async serverAction(){return Mt("action",s),y(J)}})}:void 0,middleware:s.hasClientMiddleware?async()=>{let{clientMiddleware:m}=s.clientMiddlewareModule?await import(s.clientMiddlewareModule):await _();return we(m,"No `clientMiddleware` export found"),m}:void 0,shouldRevalidate:async()=>{let m=await _();return Ln(R.path,m,s,n,l)},handle:async()=>(await _()).handle,Component:async()=>(await _()).Component,ErrorBoundary:s.hasErrorBoundary?async()=>(await _()).ErrorBoundary:void 0}}let b=_r(e,t,r,n,a,s.id,i,l);return b.length>0&&(R.children=b),R})}function Ln(e,t,r,n,a){if(a)return kl(r.id,t.shouldRevalidate,a);if(!n&&r.hasLoader&&!r.hasClientLoader){let o=e?An(e)[1].map(l=>l.paramName):[];const i=l=>o.some(s=>l.currentParams[s]!==l.nextParams[s]);if(t.shouldRevalidate){let l=t.shouldRevalidate;return s=>l({...s,defaultShouldRevalidate:i(s)})}else return l=>i(l)}return t.shouldRevalidate}function kl(e,t,r){let n=!1;return a=>n?t?t(a):a.defaultShouldRevalidate:(n=!0,r.has(e))}async function Nl(e,t){let r=da(e,t),n=Tl(e),a=await r;return await Promise.all([n,ha(e,a)]),{Component:va(a),ErrorBoundary:a.ErrorBoundary,clientMiddleware:a.clientMiddleware,clientAction:a.clientAction,clientLoader:a.clientLoader,handle:a.handle,links:a.links,meta:a.meta,shouldRevalidate:a.shouldRevalidate}}function va(e){if(e.default==null)return;if(!(typeof e.default=="object"&&Object.keys(e.default).length===0))return e.default}function $l(e,t,r,n){return n&&e!=="root"||t!=null&&(t.hydrate===!0||r!==!0)}var It=new Set,jl=1e3,kt=new Set,Ul=7680;function Dr(e,t){return e.mode==="lazy"&&t===!0}function Hl({sri:e,...t},r){let n=new Set(r.state.matches.map(l=>l.route.id)),a=r.state.location.pathname.split("/").filter(Boolean),o=["/"];for(a.pop();a.length>0;)o.push(`/${a.join("/")}`),a.pop();o.forEach(l=>{let s=Ie(r.routes,l,r.basename);s&&s.forEach(u=>n.add(u.route.id))});let i=[...n].reduce((l,s)=>Object.assign(l,{[s]:t.routes[s]}),{});return{...t,routes:i,sri:e?!0:void 0}}function Rs(e,t,r,n,a,o){if(Dr(n,r))return async({path:i,patch:l,signal:s,fetcherKey:u})=>{kt.has(i)||await ga([i],u?window.location.href:i,e,t,r,a,o,n.manifestPath,l,s)}}function bs(e,t,r,n,a,o){f.useEffect(()=>{var h,c;if(!Dr(a,n)||((c=(h=window.navigator)==null?void 0:h.connection)==null?void 0:c.saveData)===!0)return;function i(y){let g=y.tagName==="FORM"?y.getAttribute("action"):y.getAttribute("href");if(!g)return;let E=y.tagName==="A"?y.pathname:new URL(g,window.location.origin).pathname;kt.has(E)||It.add(E)}async function l(){document.querySelectorAll("a[data-discover], form[data-discover]").forEach(i);let y=Array.from(It.keys()).filter(g=>kt.has(g)?(It.delete(g),!1):!0);if(y.length!==0)try{await ga(y,null,t,r,n,o,e.basename,a.manifestPath,e.patchRoutes)}catch(g){console.error("Failed to fetch manifest patches",g)}}let s=Wl(l,100);l();let u=new MutationObserver(()=>s());return u.observe(document.documentElement,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["data-discover","href","action"]}),()=>u.disconnect()},[n,o,t,r,e,a])}function zl(e,t){let r=e||"/__manifest";return t==null?r:`${t}${r}`.replace(/\/+/g,"/")}var ir="react-router-manifest-version";async function ga(e,t,r,n,a,o,i,l,s,u){const h=new URLSearchParams;h.set("paths",e.sort().join(",")),h.set("version",r.version);let c=new URL(zl(l,i),window.location.origin);if(c.search=h.toString(),c.toString().length>Ul){It.clear();return}let y;try{let R=await fetch(c,{signal:u});if(R.ok){if(R.status===204&&R.headers.has("X-Remix-Reload-Document")){if(!t){console.warn("Detected a manifest version mismatch during eager route discovery. The next navigation/fetch to an undiscovered route will result in a new document navigation to sync up with the latest manifest.");return}try{if(sessionStorage.getItem(ir)===r.version){console.error("Unable to discover routes due to manifest version mismatch.");return}sessionStorage.setItem(ir,r.version)}catch{}window.location.href=t,console.warn("Detected manifest version mismatch, reloading..."),await new Promise(()=>{})}else if(R.status>=400)throw new Error(await R.text())}else throw new Error(`${R.status} ${R.statusText}`);try{sessionStorage.removeItem(ir)}catch{}y=await R.json()}catch(R){if(u!=null&&u.aborted)return;throw R}let g=new Set(Object.keys(r.routes)),E=Object.values(y).reduce((R,b)=>(b&&!g.has(b.id)&&(R[b.id]=b),R),{});Object.assign(r.routes,E),e.forEach(R=>Bl(R,kt));let C=new Set;Object.values(E).forEach(R=>{R&&(!R.parentId||!E[R.parentId])&&C.add(R.parentId)}),C.forEach(R=>s(R||null,_r(E,n,null,a,o,R)))}function Bl(e,t){if(t.size>=jl){let r=t.values().next().value;t.delete(r)}t.add(e)}function Wl(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}function Or(){let e=f.useContext(Je);return we(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function zt(){let e=f.useContext(Ze);return we(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Bt=f.createContext(void 0);Bt.displayName="FrameworkContext";function tt(){let e=f.useContext(Bt);return we(e,"You must render this element inside a <HydratedRouter> element"),e}function Yl(e,t){let r=f.useContext(Bt),[n,a]=f.useState(!1),[o,i]=f.useState(!1),{onFocus:l,onBlur:s,onMouseEnter:u,onMouseLeave:h,onTouchStart:c}=t,y=f.useRef(null);f.useEffect(()=>{if(e==="render"&&i(!0),e==="viewport"){let C=b=>{b.forEach(L=>{i(L.isIntersecting)})},R=new IntersectionObserver(C,{threshold:.5});return y.current&&R.observe(y.current),()=>{R.disconnect()}}},[e]),f.useEffect(()=>{if(n){let C=setTimeout(()=>{i(!0)},100);return()=>{clearTimeout(C)}}},[n]);let g=()=>{a(!0)},E=()=>{a(!1),i(!1)};return r?e!=="intent"?[o,y,{}]:[o,y,{onFocus:st(l,g),onBlur:st(s,E),onMouseEnter:st(u,g),onMouseLeave:st(h,E),onTouchStart:st(c,g)}]:[!1,y,{}]}function st(e,t){return r=>{e&&e(r),r.defaultPrevented||t(r)}}function Ar(e,t,r){if(r&&!Nt)return[e[0]];if(t){let n=e.findIndex(a=>t[a.route.id]!==void 0);return e.slice(0,n+1)}return e}var Pn="data-react-router-critical-css";function Ss({nonce:e}){let{isSpaMode:t,manifest:r,routeModules:n,criticalCss:a}=tt(),{errors:o,matches:i}=zt(),l=Ar(i,o,t),s=f.useMemo(()=>Pl(l,n,r),[l,n,r]);return f.createElement(f.Fragment,null,typeof a=="string"?f.createElement("style",{[Pn]:"",dangerouslySetInnerHTML:{__html:a}}):null,typeof a=="object"?f.createElement("link",{[Pn]:"",rel:"stylesheet",href:a.href,nonce:e}):null,s.map(({key:u,link:h})=>Tr(h)?f.createElement(wa,{key:u,nonce:e,...h}):f.createElement("link",{key:u,nonce:e,...h})))}function wa({page:e,...t}){let{router:r}=Or(),n=f.useMemo(()=>Ie(r.routes,e,r.basename),[r.routes,e,r.basename]);return n?f.createElement(Jl,{page:e,matches:n,...t}):null}function Vl(e){let{manifest:t,routeModules:r}=tt(),[n,a]=f.useState([]);return f.useEffect(()=>{let o=!1;return _l(e,t,r).then(i=>{o||a(i)}),()=>{o=!0}},[e,t,r]),n}function Jl({page:e,matches:t,...r}){let n=Le(),{manifest:a,routeModules:o}=tt(),{basename:i}=Or(),{loaderData:l,matches:s}=zt(),u=f.useMemo(()=>Cn(e,t,s,a,n,"data"),[e,t,s,a,n]),h=f.useMemo(()=>Cn(e,t,s,a,n,"assets"),[e,t,s,a,n]),c=f.useMemo(()=>{if(e===n.pathname+n.search+n.hash)return[];let E=new Set,C=!1;if(t.forEach(b=>{var D;let L=a.routes[b.route.id];!L||!L.hasLoader||(!u.some(k=>k.route.id===b.route.id)&&b.route.id in l&&((D=o[b.route.id])!=null&&D.shouldRevalidate)||L.hasClientLoader?C=!0:E.add(b.route.id))}),E.size===0)return[];let R=ca(e,i,"data");return C&&E.size>0&&R.searchParams.set("_routes",t.filter(b=>E.has(b.route.id)).map(b=>b.route.id).join(",")),[R.pathname+R.search]},[i,l,n,a,u,t,e,o]),y=f.useMemo(()=>Mr(h,a),[h,a]),g=Vl(h);return f.createElement(f.Fragment,null,c.map(E=>f.createElement("link",{key:E,rel:"prefetch",as:"fetch",href:E,...r})),y.map(E=>f.createElement("link",{key:E,rel:"modulepreload",href:E,...r})),g.map(({key:E,link:C})=>f.createElement("link",{key:E,nonce:r.nonce,...C})))}function xs(){let{isSpaMode:e,routeModules:t}=tt(),{errors:r,matches:n,loaderData:a}=zt(),o=Le(),i=Ar(n,r,e),l=null;r&&(l=r[i[i.length-1].route.id]);let s=[],u=null,h=[];for(let c=0;c<i.length;c++){let y=i[c],g=y.route.id,E=a[g],C=y.params,R=t[g],b=[],L={id:g,data:E,loaderData:E,meta:[],params:y.params,pathname:y.pathname,handle:y.route.handle,error:l};if(h[c]=L,R!=null&&R.meta?b=typeof R.meta=="function"?R.meta({data:E,loaderData:E,params:C,location:o,matches:h,error:l}):Array.isArray(R.meta)?[...R.meta]:R.meta:u&&(b=[...u]),b=b||[],!Array.isArray(b))throw new Error("The route at "+y.route.path+` returns an invalid value. All route meta functions must return an array of meta objects.
|
|
38
|
+
|
|
39
|
+
To reference the meta function API, see https://remix.run/route/meta`);L.meta=b,h[c]=L,s=[...b],u=s}return f.createElement(f.Fragment,null,s.flat().map(c=>{if(!c)return null;if("tagName"in c){let{tagName:y,...g}=c;if(!Gl(y))return console.warn(`A meta object uses an invalid tagName: ${y}. Expected either 'link' or 'meta'`),null;let E=y;return f.createElement(E,{key:JSON.stringify(g),...g})}if("title"in c)return f.createElement("title",{key:"title"},String(c.title));if("charset"in c&&(c.charSet??(c.charSet=c.charset),delete c.charset),"charSet"in c&&c.charSet!=null)return typeof c.charSet=="string"?f.createElement("meta",{key:"charSet",charSet:c.charSet}):null;if("script:ld+json"in c)try{let y=JSON.stringify(c["script:ld+json"]);return f.createElement("script",{key:`script:ld+json:${y}`,type:"application/ld+json",dangerouslySetInnerHTML:{__html:pl(y)}})}catch{return null}return f.createElement("meta",{key:JSON.stringify(c),...c})}))}function Gl(e){return typeof e=="string"&&/^(meta|link)$/.test(e)}var Nt=!1;function Kl(){Nt=!0}function Xl(e){let{manifest:t,serverHandoffString:r,isSpaMode:n,renderMeta:a,routeDiscovery:o,ssr:i}=tt(),{router:l,static:s,staticContext:u}=Or(),{matches:h}=zt(),c=qn(),y=Dr(o,i);a&&(a.didRenderScripts=!0);let g=Ar(h,null,n);f.useEffect(()=>{Kl()},[]);let E=f.useMemo(()=>{var k;if(c)return null;let L=u?`window.__reactRouterContext = ${r};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());`:" ",D=s?`${(k=t.hmr)!=null&&k.runtime?`import ${JSON.stringify(t.hmr.runtime)};`:""}${y?"":`import ${JSON.stringify(t.url)}`};
|
|
40
|
+
${g.map((T,_)=>{let m=`route${_}`,M=t.routes[T.route.id];we(M,`Route ${T.route.id} not found in manifest`);let{clientActionModule:H,clientLoaderModule:J,clientMiddlewareModule:K,hydrateFallbackModule:ae,module:le}=M,Q=[...H?[{module:H,varName:`${m}_clientAction`}]:[],...J?[{module:J,varName:`${m}_clientLoader`}]:[],...K?[{module:K,varName:`${m}_clientMiddleware`}]:[],...ae?[{module:ae,varName:`${m}_HydrateFallback`}]:[],{module:le,varName:`${m}_main`}];if(Q.length===1)return`import * as ${m} from ${JSON.stringify(le)};`;let ue=Q.map(ee=>`import * as ${ee.varName} from "${ee.module}";`).join(`
|
|
41
|
+
`),X=`const ${m} = {${Q.map(ee=>`...${ee.varName}`).join(",")}};`;return[ue,X].join(`
|
|
42
|
+
`)}).join(`
|
|
43
|
+
`)}
|
|
44
|
+
${y?`window.__reactRouterManifest = ${JSON.stringify(Hl(t,l),null,2)};`:""}
|
|
45
|
+
window.__reactRouterRouteModules = {${g.map((T,_)=>`${JSON.stringify(T.route.id)}:route${_}`).join(",")}};
|
|
46
|
+
|
|
47
|
+
import(${JSON.stringify(t.entry.module)});`:" ";return f.createElement(f.Fragment,null,f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:L},type:void 0}),f.createElement("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:D},type:"module",async:!0}))},[]),C=Nt||c?[]:ql(t.entry.imports.concat(Mr(g,t,{includeHydrateFallback:!0}))),R=typeof t.sri=="object"?t.sri:{};return fr(!c,"The <Scripts /> element is a no-op when using RSC and can be safely removed."),Nt||c?null:f.createElement(f.Fragment,null,typeof t.sri=="object"?f.createElement("script",{"rr-importmap":"",type:"importmap",suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:JSON.stringify({integrity:R})}}):null,y?null:f.createElement("link",{rel:"modulepreload",href:t.url,crossOrigin:e.crossOrigin,integrity:R[t.url],suppressHydrationWarning:!0}),f.createElement("link",{rel:"modulepreload",href:t.entry.module,crossOrigin:e.crossOrigin,integrity:R[t.entry.module],suppressHydrationWarning:!0}),C.map(b=>f.createElement("link",{key:b,rel:"modulepreload",href:b,crossOrigin:e.crossOrigin,integrity:R[b],suppressHydrationWarning:!0})),E)}function ql(e){return[...new Set(e)]}function Ql(...e){return t=>{e.forEach(r=>{typeof r=="function"?r(t):r!=null&&(r.current=t)})}}var Cs=class extends f.Component{constructor(e){super(e),this.state={error:e.error||null,location:e.location}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error||null,location:e.location}:{error:e.error||t.error,location:t.location}}render(){return this.state.error?f.createElement(Ea,{error:this.state.error,isOutsideRemixApp:!0}):this.props.children}};function Ea({error:e,isOutsideRemixApp:t}){console.error(e);let r=f.createElement("script",{dangerouslySetInnerHTML:{__html:`
|
|
48
|
+
console.log(
|
|
49
|
+
"💿 Hey developer 👋. You can provide a way better UX than this when your app throws errors. Check out https://reactrouter.com/how-to/error-boundary for more information."
|
|
50
|
+
);
|
|
51
|
+
`}});if(Ve(e))return f.createElement(yr,{title:"Unhandled Thrown Response!"},f.createElement("h1",{style:{fontSize:"24px"}},e.status," ",e.statusText),r);let n;if(e instanceof Error)n=e;else{let a=e==null?"Unknown Error":typeof e=="object"&&"toString"in e?e.toString():JSON.stringify(e);n=new Error(a)}return f.createElement(yr,{title:"Application Error!",isOutsideRemixApp:t},f.createElement("h1",{style:{fontSize:"24px"}},"Application Error"),f.createElement("pre",{style:{padding:"2rem",background:"hsla(10, 50%, 50%, 0.1)",color:"red",overflow:"auto"}},n.stack),r)}function yr({title:e,renderScripts:t,isOutsideRemixApp:r,children:n}){var o;let{routeModules:a}=tt();return(o=a.root)!=null&&o.Layout&&!r?n:f.createElement("html",{lang:"en"},f.createElement("head",null,f.createElement("meta",{charSet:"utf-8"}),f.createElement("meta",{name:"viewport",content:"width=device-width,initial-scale=1,viewport-fit=cover"}),f.createElement("title",null,e)),f.createElement("body",null,f.createElement("main",{style:{fontFamily:"system-ui, sans-serif",padding:"2rem"}},n,t?f.createElement(Xl,null):null)))}var Zl=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{Zl&&(window.__reactRouterVersion="7.11.0")}catch{}var Ra=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ba=f.forwardRef(function({onClick:t,discover:r="render",prefetch:n="none",relative:a,reloadDocument:o,replace:i,state:l,target:s,to:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y,...g},E){let{basename:C,unstable_useTransitions:R}=f.useContext(Ee),b=typeof u=="string"&&Ra.test(u),L=Nn(u,C);u=L.to;let D=fi(u,{relative:a}),[k,T,_]=Yl(n,g),m=rs(u,{replace:i,state:l,target:s,preventScrollReset:h,relative:a,viewTransition:c,unstable_defaultShouldRevalidate:y,unstable_useTransitions:R});function M(J){t&&t(J),J.defaultPrevented||m(J)}let H=f.createElement("a",{...g,..._,href:L.absoluteURL||D,onClick:L.isExternal||o?t:M,ref:Ql(E,T),target:s,"data-discover":!b&&r==="render"?"true":void 0});return k&&!b?f.createElement(f.Fragment,null,H,f.createElement(wa,{page:D})):H});ba.displayName="Link";var es=f.forwardRef(function({"aria-current":t="page",caseSensitive:r=!1,className:n="",end:a=!1,style:o,to:i,viewTransition:l,children:s,...u},h){let c=vt(i,{relative:u.relative}),y=Le(),g=f.useContext(Ze),{navigator:E,basename:C}=f.useContext(Ee),R=g!=null&&ss(c)&&l===!0,b=E.encodeLocation?E.encodeLocation(c).pathname:c.pathname,L=y.pathname,D=g&&g.navigation&&g.navigation.location?g.navigation.location.pathname:null;r||(L=L.toLowerCase(),D=D?D.toLowerCase():null,b=b.toLowerCase()),D&&C&&(D=be(D,C)||D);const k=b!=="/"&&b.endsWith("/")?b.length-1:b.length;let T=L===b||!a&&L.startsWith(b)&&L.charAt(k)==="/",_=D!=null&&(D===b||!a&&D.startsWith(b)&&D.charAt(b.length)==="/"),m={isActive:T,isPending:_,isTransitioning:R},M=T?t:void 0,H;typeof n=="function"?H=n(m):H=[n,T?"active":null,_?"pending":null,R?"transitioning":null].filter(Boolean).join(" ");let J=typeof o=="function"?o(m):o;return f.createElement(ba,{...u,"aria-current":M,className:H,ref:h,style:J,to:i,viewTransition:l},typeof s=="function"?s(m):s)});es.displayName="NavLink";var Sa=f.forwardRef(({discover:e="render",fetcherKey:t,navigate:r,reloadDocument:n,replace:a,state:o,method:i=Ot,action:l,onSubmit:s,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y,...g},E)=>{let{unstable_useTransitions:C}=f.useContext(Ee),R=La(),b=os(l,{relative:u}),L=i.toLowerCase()==="get"?"get":"post",D=typeof l=="string"&&Ra.test(l),k=T=>{if(s&&s(T),T.defaultPrevented)return;T.preventDefault();let _=T.nativeEvent.submitter,m=(_==null?void 0:_.getAttribute("formmethod"))||i,M=()=>R(_||T.currentTarget,{fetcherKey:t,method:m,navigate:r,replace:a,state:o,relative:u,preventScrollReset:h,viewTransition:c,unstable_defaultShouldRevalidate:y});C&&r!==!1?f.startTransition(()=>M()):M()};return f.createElement("form",{ref:E,method:L,action:b,onSubmit:n?s:k,...g,"data-discover":!D&&e==="render"?"true":void 0})});Sa.displayName="Form";function ts({getKey:e,storageKey:t,...r}){let n=f.useContext(Bt),{basename:a}=f.useContext(Ee),o=Le(),i=Pr();is({getKey:e,storageKey:t});let l=f.useMemo(()=>{if(!n||!e)return null;let u=gr(o,i,a,e);return u!==o.key?u:null},[]);if(!n||n.isSpaMode)return null;let s=((u,h)=>{if(!window.history.state||!window.history.state.key){let c=Math.random().toString(32).slice(2);window.history.replaceState({key:c},"")}try{let y=JSON.parse(sessionStorage.getItem(u)||"{}")[h||window.history.state.key];typeof y=="number"&&window.scrollTo(0,y)}catch(c){console.error(c),sessionStorage.removeItem(u)}}).toString();return f.createElement("script",{...r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:`(${s})(${JSON.stringify(t||vr)}, ${JSON.stringify(l)})`}})}ts.displayName="ScrollRestoration";function xa(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Wt(e){let t=f.useContext(Je);return W(t,xa(e)),t}function Ca(e){let t=f.useContext(Ze);return W(t,xa(e)),t}function rs(e,{target:t,replace:r,state:n,preventScrollReset:a,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l,unstable_useTransitions:s}={}){let u=ta(),h=Le(),c=vt(e,{relative:o});return f.useCallback(y=>{if(Hi(y,t)){y.preventDefault();let g=r!==void 0?r:Me(h)===Me(c),E=()=>u(e,{replace:g,state:n,preventScrollReset:a,relative:o,viewTransition:i,unstable_defaultShouldRevalidate:l});s?f.startTransition(()=>E()):E()}},[h,u,c,r,n,t,e,a,o,i,l,s])}function Ls(e){oe(typeof URLSearchParams<"u","You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=f.useRef(hr(e)),r=f.useRef(!1),n=Le(),a=f.useMemo(()=>zi(n.search,r.current?null:t.current),[n.search]),o=ta(),i=f.useCallback((l,s)=>{const u=hr(typeof l=="function"?l(new URLSearchParams(a)):l);r.current=!0,o("?"+u,s)},[o,a]);return[a,i]}var ns=0,as=()=>`__${String(++ns)}__`;function La(){let{router:e}=Wt("useSubmit"),{basename:t}=f.useContext(Ee),r=xi(),n=e.fetch,a=e.navigate;return f.useCallback(async(o,i={})=>{let{action:l,method:s,encType:u,formData:h,body:c}=Yi(o,t);if(i.navigate===!1){let y=i.fetcherKey||as();await n(y,r,i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:c,formMethod:i.method||s,formEncType:i.encType||u,flushSync:i.flushSync})}else await a(i.action||l,{unstable_defaultShouldRevalidate:i.unstable_defaultShouldRevalidate,preventScrollReset:i.preventScrollReset,formData:h,body:c,formMethod:i.method||s,formEncType:i.encType||u,replace:i.replace,state:i.state,fromRouteId:r,flushSync:i.flushSync,viewTransition:i.viewTransition})},[n,a,t,r])}function os(e,{relative:t}={}){let{basename:r}=f.useContext(Ee),n=f.useContext(Ce);W(n,"useFormAction must be used inside a RouteContext");let[a]=n.matches.slice(-1),o={...vt(e||".",{relative:t})},i=Le();if(e==null){o.search=i.search;let l=new URLSearchParams(o.search),s=l.getAll("index");if(s.some(h=>h==="")){l.delete("index"),s.filter(c=>c).forEach(c=>l.append("index",c));let h=l.toString();o.search=h?`?${h}`:""}}return(!e||e===".")&&a.route.index&&(o.search=o.search?o.search.replace(/^\?/,"?index&"):"?index"),r!=="/"&&(o.pathname=o.pathname==="/"?r:Te([r,o.pathname])),Me(o)}function Ps({key:e}={}){var T;let{router:t}=Wt("useFetcher"),r=Ca("useFetcher"),n=f.useContext(xr),a=f.useContext(Ce),o=(T=a.matches[a.matches.length-1])==null?void 0:T.route.id;W(n,"useFetcher must be used inside a FetchersContext"),W(a,"useFetcher must be used inside a RouteContext"),W(o!=null,'useFetcher can only be used on routes that contain a unique "id"');let i=f.useId(),[l,s]=f.useState(e||i);e&&e!==l&&s(e);let{deleteFetcher:u,getFetcher:h,resetFetcher:c,fetch:y}=t;f.useEffect(()=>(h(l),()=>u(l)),[u,h,l]);let g=f.useCallback(async(_,m)=>{W(o,"No routeId available for fetcher.load()"),await y(l,o,_,m)},[l,o,y]),E=La(),C=f.useCallback(async(_,m)=>{await E(_,{...m,navigate:!1,fetcherKey:l})},[l,E]),R=f.useCallback(_=>c(l,_),[c,l]),b=f.useMemo(()=>{let _=f.forwardRef((m,M)=>f.createElement(Sa,{...m,navigate:!1,fetcherKey:l,ref:M}));return _.displayName="fetcher.Form",_},[l]),L=r.fetchers.get(l)||Hn,D=n.get(l);return f.useMemo(()=>({Form:b,submit:C,load:g,reset:R,...L,data:D}),[b,C,g,R,L,D])}var vr="react-router-scroll-positions",_t={};function gr(e,t,r,n){let a=null;return n&&(r!=="/"?a=n({...e,pathname:be(e.pathname,r)||e.pathname},t):a=n(e,t)),a==null&&(a=e.key),a}function is({getKey:e,storageKey:t}={}){let{router:r}=Wt("useScrollRestoration"),{restoreScrollPosition:n,preventScrollReset:a}=Ca("useScrollRestoration"),{basename:o}=f.useContext(Ee),i=Le(),l=Pr(),s=Ci();f.useEffect(()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"}),[]),ls(f.useCallback(()=>{if(s.state==="idle"){let u=gr(i,l,o,e);_t[u]=window.scrollY}try{sessionStorage.setItem(t||vr,JSON.stringify(_t))}catch(u){oe(!1,`Failed to save scroll positions in sessionStorage, <ScrollRestoration /> will not work properly (${u}).`)}window.history.scrollRestoration="auto"},[s.state,e,o,i,l,t])),typeof document<"u"&&(f.useLayoutEffect(()=>{try{let u=sessionStorage.getItem(t||vr);u&&(_t=JSON.parse(u))}catch{}},[t]),f.useLayoutEffect(()=>{let u=r==null?void 0:r.enableScrollRestoration(_t,()=>window.scrollY,e?(h,c)=>gr(h,c,o,e):void 0);return()=>u&&u()},[r,o,e]),f.useLayoutEffect(()=>{if(n!==!1){if(typeof n=="number"){window.scrollTo(0,n);return}try{if(i.hash){let u=document.getElementById(decodeURIComponent(i.hash.slice(1)));if(u){u.scrollIntoView();return}}}catch{oe(!1,`"${i.hash.slice(1)}" is not a decodable element ID. The view will not scroll to it.`)}a!==!0&&window.scrollTo(0,0)}},[i,n,a]))}function ls(e,t){let{capture:r}={};f.useEffect(()=>{let n=r!=null?{capture:r}:void 0;return window.addEventListener("pagehide",e,n),()=>{window.removeEventListener("pagehide",e,n)}},[e,r])}function ss(e,{relative:t}={}){let r=f.useContext(Sr);W(r!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:n}=Wt("useViewTransitionState"),a=vt(e,{relative:t});if(!r.isTransitioning)return!1;let o=be(r.currentLocation.pathname,n)||r.currentLocation.pathname,i=be(r.nextLocation.pathname,n)||r.nextLocation.pathname;return Ft(a.pathname,i)!=null||Ft(a.pathname,o)!=null}export{ms as A,ps as B,Ss as C,Xl as D,je as E,Bt as F,Wa as G,us as H,ba as L,xs as M,vl as N,vs as O,Ka as R,ts as S,ta as a,Ls as b,Ps as c,Le as d,Pi as e,hs as f,Ga as g,yi as h,Ve as i,cs as j,W as k,bs as l,Ie as m,Cs as n,ys as o,Ll as p,_r as q,f as r,$l as s,fs as t,Li as u,Rs as v,gs as w,ws as x,ds as y,Es as z};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import{c}from"./createLucideIcon-CgUsG7ib.js";/**
|
|
2
|
+
* @license lucide-react v0.556.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const e=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],r=c("circle-check",e);export{r as C};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{r as s}from"./chunk-JMJ3UQ3L-BambyYE_.js";/**
|
|
2
|
+
* @license lucide-react v0.556.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const C=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),w=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,r,o)=>o?o.toUpperCase():r.toLowerCase()),i=t=>{const e=w(t);return e.charAt(0).toUpperCase()+e.slice(1)},l=(...t)=>t.filter((e,r,o)=>!!e&&e.trim()!==""&&o.indexOf(e)===r).join(" ").trim(),f=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};/**
|
|
7
|
+
* @license lucide-react v0.556.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/var h={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
|
|
12
|
+
* @license lucide-react v0.556.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const g=s.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:n="",children:a,iconNode:u,...c},p)=>s.createElement("svg",{ref:p,...h,width:e,height:e,stroke:t,strokeWidth:o?Number(r)*24/Number(e):r,className:l("lucide",n),...!a&&!f(c)&&{"aria-hidden":"true"},...c},[...u.map(([m,d])=>s.createElement(m,d)),...Array.isArray(a)?a:[a]]));/**
|
|
17
|
+
* @license lucide-react v0.556.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const b=(t,e)=>{const r=s.forwardRef(({className:o,...n},a)=>s.createElement(g,{ref:a,iconNode:e,className:l(`lucide-${C(i(t))}`,`lucide-${t}`,o),...n}));return r.displayName=i(t),r};export{b as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o="/assets/cy-logo-cli-C1gnJVOL.svg";export{o as c};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{w as t,c as r,j as e}from"./chunk-JMJ3UQ3L-BambyYE_.js";import{S as i}from"./ScenarioViewer-CUxUNEEC.js";import{W as n}from"./InteractivePreview-D-9pXIaY.js";import"./useCustomSizes-BMIGFP-m.js";import"./LogViewer-wDPcZNKx.js";import"./SafeScreenshot-BfmDgXxG.js";import"./useLastLogLine-BqPPNjAl.js";import"./useInteractiveMode-Dk_FQqWJ.js";import"./preload-helper-ckwbz45p.js";import"./ReportIssueModal-4lcOlid-.js";import"./createLucideIcon-CgUsG7ib.js";import"./circle-check-CaVsIRxt.js";import"./triangle-alert-CBc5dE1s.js";import"./scenarioStatus-B_8jpV3e.js";const N=()=>[{title:"Empty State - CodeYam"},{name:"description",content:"Simulations empty state development view"}],y=t(function(){r();const s={sha:"mock-sha",name:"Dashboard",filePath:"codeyam-cli/src/webserver/app/routes/_index.tsx",entityType:"visual"};return e.jsx(n,{children:e.jsxs("div",{className:"h-screen bg-[#f9f9f9] flex flex-col overflow-hidden",children:[e.jsx("header",{className:"bg-white border-b border-gray-200 shrink-0 relative h-[54px]",children:e.jsxs("div",{className:"flex items-center h-full px-6 gap-6",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M13 8.5H4M4 8.5L8.5 4M4 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),e.jsx("h1",{className:"text-lg font-semibold text-black m-0 leading-[26px] shrink-0",children:"Dashboard"}),e.jsx("span",{className:"text-xs text-[#626262] font-mono whitespace-nowrap overflow-hidden text-ellipsis min-w-0",children:"codeyam-cli/src/webserver/app/routes/_index.tsx"})]}),e.jsxs("div",{className:"flex items-center gap-3 shrink-0",children:[e.jsxs("div",{className:"flex items-center gap-2 px-[15px] py-0 h-[26px] bg-[#efefef] border border-[#e1e1e1] rounded",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-[#626262]"}),e.jsx("span",{className:"text-xs font-semibold text-[#626262]",children:"Not analyzed"})]}),e.jsx("button",{className:"px-[15px] py-0 h-[26px] bg-[#005c75] text-white rounded text-xs font-semibold border-none cursor-pointer hover:bg-[#004a5e] transition-colors",children:"Analyze"})]}),e.jsxs("div",{className:"flex items-center gap-1 text-[10px] text-[#626262] ml-auto",children:[e.jsx("span",{className:"leading-[22px]",children:"Next Entity"}),e.jsx("svg",{width:"17",height:"17",viewBox:"0 0 17 17",fill:"none",className:"shrink-0",children:e.jsx("path",{d:"M4 8.5H13M13 8.5L8.5 4M13 8.5L8.5 13",stroke:"#005c75",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]})]})}),e.jsx("div",{className:"bg-[#efefef] border-b border-[#efefef] shrink-0",children:e.jsxs("div",{className:"flex items-center gap-3 h-11 px-[15px]",children:[e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded bg-[#343434] text-[#efefef] font-semibold h-8",children:["Scenarios",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#cbf3fa] text-[#005c75] min-w-[25px] text-center",children:"0"})]}),e.jsxs("div",{className:"px-4 flex items-center justify-center gap-3 shrink-0 text-sm rounded-[9px] text-[#3e3e3e] font-normal",children:["Related Entities",e.jsx("span",{className:"px-2 py-0.5 rounded-[9px] text-xs font-semibold bg-[#e1e1e1] text-[#3e3e3e] min-w-[25px] text-center",children:"5"})]}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Code"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"Data Structure"}),e.jsx("div",{className:"px-4 shrink-0 text-sm text-[#3e3e3e] font-normal",children:"History"})]})}),e.jsxs("div",{className:"flex flex-1 gap-0 min-h-0",children:[e.jsx("div",{className:"w-[165px] bg-[#e1e1e1] border-r border-[#c7c7c7] flex items-center justify-center shrink-0",children:e.jsx("span",{className:"text-xs font-medium text-[#8e8e8e] leading-5",children:"No Scenarios"})}),e.jsx(i,{selectedScenario:null,analysis:void 0,entity:s,viewMode:"screenshot",cacheBuster:Date.now(),hasScenarios:!1,isAnalyzing:!1,projectSlug:null,hasAnApiKey:!0})]})]})})});export{y as default,N as meta};
|