vibe64 0.1.32 → 0.1.34
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/bin/run.js +1717 -1648
- package/bin/server.js +81 -68
- package/bin/upgrade-state.js +5438 -5189
- package/dist/assets/{GithubBrowserTabs-2bEGbRAs.js → GithubBrowserTabs-DO5PHon-.js} +1 -1
- package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +3 -0
- package/dist/assets/GithubMarkdown-U7-j-qNI.css +1 -0
- package/dist/assets/StudioErrorNotice-sQfmeR-z.js +1 -0
- package/dist/assets/VAlert-P256xaE0.js +1 -0
- package/dist/assets/VAutocomplete-BDb95qJX.js +1 -0
- package/dist/assets/VAvatar-9ilDR2r2.css +1 -0
- package/dist/assets/VAvatar-DPzqDH4r.js +1 -0
- package/dist/assets/VBtn-B2MBK2DL.js +1 -0
- package/dist/assets/VCard-mXy0k4aS.js +1 -0
- package/dist/assets/VCheckbox-C7A1ZW4D.js +1 -0
- package/dist/assets/VChip-CcI-Oo2J.js +1 -0
- package/dist/assets/VDialog-Bu3EfKb1.js +1 -0
- package/dist/assets/VDivider-BMEqUoAB.js +1 -0
- package/dist/assets/VExpansionPanels-Dgjrop0V.js +1 -0
- package/dist/assets/VMenu-C_x18lwb.js +1 -0
- package/dist/assets/VOverlay-CeMZurIN.js +1 -0
- package/dist/assets/VRadioGroup-CUu2-KIP.js +1 -0
- package/dist/assets/VRow-Cpw7OHQV.js +1 -0
- package/dist/assets/{VSelect-DY-ZuBJJ.js → VSelect-DL3HaA5m.js} +1 -1
- package/dist/assets/VSheet-DZWsu0kL.js +1 -0
- package/dist/assets/VSkeletonLoader-CttxM1tw.js +1 -0
- package/dist/assets/VSpacer-Dhmsvk4t.js +1 -0
- package/dist/assets/{VSwitch-Bm1bwl2V.js → VSwitch-BRHeDJkH.js} +1 -1
- package/dist/assets/VTextField-BR2eZeFT.js +1 -0
- package/dist/assets/VTextarea-DbqamXJd.js +1 -0
- package/dist/assets/Vibe64AsyncModuleState-Dx7YKRPp.js +1 -0
- package/dist/assets/Vibe64DashboardBackButton-DD9UR77P.css +1 -0
- package/dist/assets/Vibe64DashboardBackButton-yE6cyYg2.js +1 -0
- package/dist/assets/Vibe64DashboardPageHeader-BXQR00HK.js +1 -0
- package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +1 -0
- package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +1 -0
- package/dist/assets/Vibe64DashboardShell-MBkUHjs-.css +1 -0
- package/dist/assets/Vibe64DatabaseWorkspace-BONJdxBS.js +18 -0
- package/dist/assets/{Vibe64DatabaseWorkspace-C39Jvver.css → Vibe64DatabaseWorkspace-CR4pzzcf.css} +1 -1
- package/dist/assets/Vibe64OutputControls-DAAmA09l.js +8 -0
- package/dist/assets/{Vibe64OutputControls-CsZFv12r.css → Vibe64OutputControls-DPBsyDZM.css} +1 -1
- package/dist/assets/{Vibe64RepositoryWorkspace-ebUaYOU4.js → Vibe64RepositoryWorkspace-ByQlZbyO.js} +2 -2
- package/dist/assets/{Vibe64RepositoryWorkspace-Cqm6TOFk.css → Vibe64RepositoryWorkspace-CVHcT93M.css} +1 -1
- package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +107 -0
- package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +1 -0
- package/dist/assets/Vibe64TemporaryAiFixAction-BGlcrq4d.js +1 -0
- package/dist/assets/Vibe64UiStoryboardView-3WXph5bz.css +1 -0
- package/dist/assets/Vibe64UiStoryboardView-Brlwdvqi.js +7 -0
- package/dist/assets/Vibe64UnavailableSessions-zwlWlcZD.js +1 -0
- package/dist/assets/_sessionId_-CvOkQbVy.js +1 -0
- package/dist/assets/{_sessionTool_-B39BIzzZ.js → _sessionTool_-Dwod5ns9.js} +1 -1
- package/dist/assets/_slug_-B31c15cc.css +1 -0
- package/dist/assets/_slug_-Dy35qLo1.js +1 -0
- package/dist/assets/access-BVu5XYm2.js +1 -0
- package/dist/assets/app-DRXCcv05.css +1 -0
- package/dist/assets/app-zt7HwQKT.js +1 -0
- package/dist/assets/assistantRouting-CwbwfkwB.js +3 -0
- package/dist/assets/{changes-ByjS7QGx.js → changes-olY8cnFK.js} +1 -1
- package/dist/assets/{client-C-tpoG6F.js → client-BrV4QPwG.js} +1 -1
- package/dist/assets/createSimpleFunctional-CZTGuNuR.js +1 -0
- package/dist/assets/dashboard-BnXD-H4R.js +1 -0
- package/dist/assets/definitions-DaOPIkyB.js +1 -0
- package/dist/assets/env-DJhnLOH7.css +1 -0
- package/dist/assets/env-DN0vW4EI.js +1 -0
- package/dist/assets/{error-DFKtZBJ8.js → error-DgrgRbJJ.js} +1 -1
- package/dist/assets/{error-DE4zo8Lk.js → error-Dug56can.js} +1 -1
- package/dist/assets/health-7oIQODer.css +1 -0
- package/dist/assets/health-Z6m96GDr.js +1 -0
- package/dist/assets/history-BOwbCRQP.css +1 -0
- package/dist/assets/history-BxlpB-YH.js +1 -0
- package/dist/assets/incoming-BOxRVlOM.js +2 -0
- package/dist/assets/incoming-DWDrmxyH.css +1 -0
- package/dist/assets/index-BUq-MczL.js +86 -0
- package/dist/assets/{index-D4MsP3dq.css → index-DtmBqE3h.css} +1 -1
- package/dist/assets/{integrations-B4txOZfY.js → integrations-BFltGDVI.js} +1 -1
- package/dist/assets/issues-1iS5zoed.js +1 -0
- package/dist/assets/issues-XnpGgdmn.css +1 -0
- package/dist/assets/layout-BkWVNT37.js +1 -0
- package/dist/assets/lazy-NHSwD9FS.js +1 -0
- package/dist/assets/mdi-C54lQ0i_.js +1 -0
- package/dist/assets/{pages-BW2l8fNe.js → pages-DuMgH61T.js} +1 -1
- package/dist/assets/{placement-JxzrmUR3.js → placement-CwTqWLQH.js} +1 -1
- package/dist/assets/placement-DLsU3pCW.js +1 -0
- package/dist/assets/pull-requests-BJOwNL4k.js +1 -0
- package/dist/assets/pull-requests-CdbhyFOv.css +1 -0
- package/dist/assets/{repository-BTC3lkrh.js → repository-JWLVST3D.js} +1 -1
- package/dist/assets/{VAvatar-CAFvgSUo.js → ripple-BVltMmyV.js} +2 -2
- package/dist/assets/ripple-DqhAt1Ze.css +1 -0
- package/dist/assets/runtime-core.esm-bundler-DGXg_mpN.js +3 -0
- package/dist/assets/{session-CG-TUCJt.css → session-5qADMzDP.css} +1 -1
- package/dist/assets/session-C5Nj8Dlq.js +1 -0
- package/dist/assets/settings-BopLnpB0.css +1 -0
- package/dist/assets/settings-c273Ikrm.js +1 -0
- package/dist/assets/ssrBoot-Rlh6kLbD.js +1 -0
- package/dist/assets/{studioGateApi-C0GvzVlt.js → studioGateApi-DhA9IJGZ.js} +1 -1
- package/dist/assets/{studioUrls-CIab-Axb.js → studioUrls-Dj8rXeXO.js} +1 -1
- package/dist/assets/{useApi-BPuI6ZR9-Dr8wK_Co.js → useApi-BPuI6ZR9-CFWU1m37.js} +1 -1
- package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +1 -0
- package/dist/assets/useCommand-DWuxfAV0.js +1 -0
- package/dist/assets/useEndpointResource-MWVNfmMa.js +1 -0
- package/dist/assets/{usePaths-DVTieF_G.js → usePaths-Db88-HOm.js} +1 -1
- package/dist/assets/{useUiFeedback-Tzi-PRlX.js → useUiFeedback-0FqKuZRP.js} +1 -1
- package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +1 -0
- package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +1 -0
- package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +28 -0
- package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +1 -0
- package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +1 -0
- package/dist/assets/useVibe64SessionData-DFTyLzci.js +1 -0
- package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +1 -0
- package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +1 -0
- package/dist/assets/{useVibe64Terminal-C2XJ9Y1K.js → useVibe64Terminal-BPnN25WH.js} +1 -1
- package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +1 -0
- package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +1 -0
- package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +1 -0
- package/dist/assets/vibe64RepositoryRealtime-DXk0Jai3.js +1 -0
- package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +1 -0
- package/dist/assets/vibe64SessionFocus-kqPOPaOH.js +1 -0
- package/dist/assets/{vibe64SessionInfo-D8l22MFm.js → vibe64SessionInfo-BHxtTrLX.js} +1 -1
- package/dist/assets/vibe64SessionToolDefinitions-NfLd1HZI.js +1 -0
- package/dist/assets/vue-flow-core-BlVEnES8.js +26 -0
- package/dist/index.html +51 -48
- package/docs/colleague-usage/account-profile-and-appearance.md +29 -0
- package/docs/colleague-usage/ai-accounts-and-routing.md +23 -4
- package/docs/colleague-usage/ai-balance-and-allowance.md +4 -0
- package/docs/colleague-usage/architecture-explanations.md +99 -0
- package/docs/colleague-usage/auto-workflow.md +49 -11
- package/docs/colleague-usage/coding-agent-failures.md +94 -0
- package/docs/colleague-usage/coding-agent-goal-pause.md +110 -0
- package/docs/colleague-usage/coding-agent-goals.md +140 -38
- package/docs/colleague-usage/coding-agent-history.md +20 -2
- package/docs/colleague-usage/coding-agent-recovery.md +136 -0
- package/docs/colleague-usage/coding-agents.md +138 -150
- package/docs/colleague-usage/colleague-recovery.md +28 -5
- package/docs/colleague-usage/colleague-upgrade-recovery.md +4 -0
- package/docs/colleague-usage/colleague-watches.md +84 -0
- package/docs/colleague-usage/colleague.md +18 -34
- package/docs/colleague-usage/connected-contributions.md +196 -0
- package/docs/colleague-usage/connected-projects.md +196 -0
- package/docs/colleague-usage/conversation-context.md +67 -1
- package/docs/colleague-usage/dashboard-navigation.md +79 -5
- package/docs/colleague-usage/database.md +11 -0
- package/docs/colleague-usage/developing-vibe64.md +137 -0
- package/docs/colleague-usage/development-copies.md +20 -0
- package/docs/colleague-usage/development-env.md +34 -0
- package/docs/colleague-usage/file-interfaces.md +156 -0
- package/docs/colleague-usage/github-work.md +88 -1
- package/docs/colleague-usage/health-checks.md +32 -0
- package/docs/colleague-usage/incoming-changes.md +94 -0
- package/docs/colleague-usage/learning-chat-retention.md +11 -2
- package/docs/colleague-usage/learning-code-questions.md +55 -0
- package/docs/colleague-usage/learning-course-catalogue.md +118 -0
- package/docs/colleague-usage/learning-diagrams-and-voice.md +97 -0
- package/docs/colleague-usage/learning-history.md +17 -9
- package/docs/colleague-usage/learning-lesson-watch.md +95 -0
- package/docs/colleague-usage/learning-mode-ui.md +187 -85
- package/docs/colleague-usage/learning-native-session.md +12 -10
- package/docs/colleague-usage/learning-practical-exercises.md +71 -0
- package/docs/colleague-usage/learning-practical-gestures.md +18 -1
- package/docs/colleague-usage/learning-practice-projects.md +55 -4
- package/docs/colleague-usage/learning-session-creation.md +7 -7
- package/docs/colleague-usage/learning-teacher-guide.md +52 -0
- package/docs/colleague-usage/learning-with-colleague.md +59 -80
- package/docs/colleague-usage/lesson-authoring.md +12 -4
- package/docs/colleague-usage/lesson-practical-assessment.md +3 -1
- package/docs/colleague-usage/managed-app-access.md +6 -0
- package/docs/colleague-usage/message-delivery-recovery.md +56 -0
- package/docs/colleague-usage/plans.md +14 -7
- package/docs/colleague-usage/preview-browser-checks.md +61 -0
- package/docs/colleague-usage/preview-lesson-presentation.md +56 -0
- package/docs/colleague-usage/preview-starting-application.md +92 -0
- package/docs/colleague-usage/preview.md +70 -96
- package/docs/colleague-usage/project-architecture.md +229 -0
- package/docs/colleague-usage/project-language-tools.md +31 -0
- package/docs/colleague-usage/project-messages.md +106 -0
- package/docs/colleague-usage/project-settings.md +22 -0
- package/docs/colleague-usage/project-setup.md +29 -2
- package/docs/colleague-usage/session-terminal.md +42 -0
- package/docs/colleague-usage/sessions.md +122 -52
- package/docs/colleague-usage/teaching-content.md +12 -6
- package/docs/colleague-usage/temporary-chat-context.md +29 -0
- package/docs/colleague-usage/temporary-chats.md +95 -2
- package/docs/colleague-usage/voice-chat.md +10 -43
- package/docs/colleague-usage/voice-face-and-speaking-voice.md +73 -0
- package/docs/colleague-usage/workspace-preparation.md +89 -0
- package/docs/training-content.md +208 -7
- package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-runtime/README.md +29 -0
- package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
- package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
- package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
- package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
- package/node_modules/@jskit-ai/kernel/package.json +1 -1
- package/node_modules/@jskit-ai/payments-core/package.json +1 -1
- package/node_modules/@jskit-ai/realtime/package.json +1 -1
- package/node_modules/@jskit-ai/resource-core/package.json +1 -1
- package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
- package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
- package/node_modules/@local/vibe64-core/package.json +1 -0
- package/node_modules/@local/vibe64-execution/src/host/execHelper.js +280 -272
- package/node_modules/@local/vibe64-genesis/README.md +15 -0
- package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +879 -1225
- package/node_modules/@local/vibe64-genesis/package.json +2 -1
- package/node_modules/@local/vibe64-genesis/src/server/index.js +496 -418
- package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +165 -146
- package/node_modules/@local/vibe64-runtime/src/server/agentSessionCommandHook.js +8 -8
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +128 -129
- package/node_modules/@local/vibe64-system-graph/README.md +136 -6
- package/node_modules/@local/vibe64-terminals/package.json +3 -0
- package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1527 -1326
- package/node_modules/@local/vibe64-training/package.json +6 -1
- package/node_modules/@local/vibe64-voice/package.json +1 -0
- package/package.json +16 -16
- package/server.bundle.mjs +42853 -40268
- package/dist/assets/StudioErrorNotice-Ccjvcn9C.js +0 -1
- package/dist/assets/VAlert-B7ciJKQL.js +0 -1
- package/dist/assets/VAutocomplete-QjMk5d_j.js +0 -1
- package/dist/assets/VAvatar-nHaK192T.css +0 -1
- package/dist/assets/VBtn-Kl_qcBsy.js +0 -1
- package/dist/assets/VCard-nrJPeo91.js +0 -1
- package/dist/assets/VCheckbox-DTRAWOIf.js +0 -1
- package/dist/assets/VChip-Dfs5jX0f.js +0 -1
- package/dist/assets/VDialog-Dt1VjJg1.js +0 -1
- package/dist/assets/VDivider-DFsS0OTx.js +0 -1
- package/dist/assets/VExpansionPanels-CYKU0cAr.js +0 -1
- package/dist/assets/VMenu-BLxobsuU.js +0 -1
- package/dist/assets/VOverlay-BvFVZKNS.js +0 -1
- package/dist/assets/VRadioGroup-DzQzpCfg.js +0 -1
- package/dist/assets/VRow-BR2RMCM1.js +0 -1
- package/dist/assets/VSheet-BA95RNmA.js +0 -1
- package/dist/assets/VSkeletonLoader-hpJqr0HL.js +0 -1
- package/dist/assets/VSpacer-B1l1hVvU.js +0 -1
- package/dist/assets/VTextField-CA_p3N4d.js +0 -1
- package/dist/assets/VTextarea-NyCqY4h5.js +0 -1
- package/dist/assets/Vibe64AsyncModuleState-DEFlqJ97.js +0 -1
- package/dist/assets/Vibe64DashboardShell-BNv2I-P8.js +0 -1
- package/dist/assets/Vibe64DashboardShell-w20wNTGW.css +0 -1
- package/dist/assets/Vibe64DatabaseWorkspace-CuY5lN1o.js +0 -43
- package/dist/assets/Vibe64OutputControls-D2JuYlYU.js +0 -8
- package/dist/assets/Vibe64SessionFiles-C-rWehq_.js +0 -34
- package/dist/assets/Vibe64SessionFiles-Dsr6KQNP.css +0 -1
- package/dist/assets/Vibe64SubsystemsView-BvdU_o6H.css +0 -1
- package/dist/assets/Vibe64SubsystemsView-DJCjSzQM.js +0 -1
- package/dist/assets/Vibe64SystemWorldView-B91ioQaO.js +0 -4312
- package/dist/assets/Vibe64SystemWorldView-BXiQ7_Qb.css +0 -1
- package/dist/assets/Vibe64UnavailableSessions-OvnoD3ZB.js +0 -1
- package/dist/assets/_sessionId_-JTvMh54L.js +0 -1
- package/dist/assets/_slug_-DP_heCDa.js +0 -1
- package/dist/assets/_slug_-DmBZGb0q.css +0 -1
- package/dist/assets/access-C8GQIS19.js +0 -1
- package/dist/assets/app-B83lF61Y.js +0 -1
- package/dist/assets/app-ByLIQ3SB.css +0 -1
- package/dist/assets/assistantRouting-TDtryU6o.js +0 -1
- package/dist/assets/createSimpleFunctional-DPIT6zsT.js +0 -1
- package/dist/assets/dashboard-CWGFPojJ.js +0 -1
- package/dist/assets/definitions-BeLcvOW3.js +0 -1
- package/dist/assets/display-BLmcO-5p.js +0 -1
- package/dist/assets/env-7bqFyF_E.css +0 -1
- package/dist/assets/env-BVwxNL8M.js +0 -1
- package/dist/assets/health-BzNhp7r8.js +0 -1
- package/dist/assets/health-DoHTXTGx.css +0 -1
- package/dist/assets/history-BPeZGofK.js +0 -1
- package/dist/assets/history-iMQxp5AR.css +0 -1
- package/dist/assets/httpClient-BaaZuFvF.js +0 -1
- package/dist/assets/index-5sKwLHOH.js +0 -86
- package/dist/assets/issues-DCEhGlfn.css +0 -1
- package/dist/assets/issues-wby50y9b.js +0 -3
- package/dist/assets/layout-YCn17mK1.js +0 -1
- package/dist/assets/lazy-CvQfXeLg.js +0 -1
- package/dist/assets/mdi-C31_SZp-.js +0 -1
- package/dist/assets/placement-C4R2t6rl.js +0 -1
- package/dist/assets/pull-requests-BNK6mq2u.css +0 -1
- package/dist/assets/pull-requests-lNQAigaC.js +0 -1
- package/dist/assets/runtime-core.esm-bundler-DMrccYS5.js +0 -3
- package/dist/assets/session-D38nzG41.js +0 -1
- package/dist/assets/settings-CFyUJ_kR.js +0 -1
- package/dist/assets/settings-vWsAEoE9.css +0 -1
- package/dist/assets/useArchivedVibe64Sessions-C2DSq2Z4.js +0 -1
- package/dist/assets/useCommand-BzThFLYP.js +0 -1
- package/dist/assets/useEndpointResource-C2KD4Ub_.js +0 -1
- package/dist/assets/useVibe64ConversationLog-CMUlXJtU.js +0 -1
- package/dist/assets/useVibe64DatabaseTools-DBcKhm6B.js +0 -1
- package/dist/assets/useVibe64LearningMode-BPRWM5Rp.js +0 -28
- package/dist/assets/useVibe64LearningMode-PJUv0O25.css +0 -1
- package/dist/assets/useVibe64SessionData-CdtJbAIx.js +0 -1
- package/dist/assets/useVibe64SessionSelection-aR0f6xVT.js +0 -1
- package/dist/assets/useVibe64SystemGraph-DeTPBn0e.js +0 -1
- package/dist/assets/vibe64AssistantHost-Dgyz4TrT.js +0 -1
- package/dist/assets/vibe64ProjectScope.local-GOSMVDRi.js +0 -1
- package/dist/assets/vibe64RepositoryRealtime-t5Al8BlU.js +0 -1
- package/dist/assets/vibe64SessionFocus-CcN6Grgw.js +0 -1
- package/dist/assets/vibe64SessionFocus-ChabllPA.css +0 -1
- package/dist/assets/vibe64SessionToolDefinitions-BaO1DEup.js +0 -1
- /package/dist/assets/{vibe64RepositoryRealtime-D_mq1dFE.css → Vibe64TemporaryAiFixAction-D_mq1dFE.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as useElevation,B as VDefaultsProvider,E as useDensity,En as isNullOrUndefined,F as useBackgroundColor,G as makeThemeProps,Gt as getActiveElement,In as consoleError,K as provideTheme,Kt as getNextElement,L as useTextColor,M as useBorder,N as makeRoundedProps,On as isObject,Ot as EventProp,P as useRounded,Pt as convertToUnit,Q as useProxiedModel,R as makeDimensionProps,Rn as deprecate,S as useVariant,T as makeDensityProps,Tn as isNull,Ut as focusChild,V as makeTagProps,Wn as vShow,Wt as focusableChildren,Z as useRtl,Zt as isPrimitive,an as pick,at as deepEqual,b as genOverlays,ft as provideDefaults,gt as propsFactory,h as VIcon,ht as makeComponentProps,i as useLink,it as useRender,j as makeBorderProps,jn as isUndefined,k as makeElevationProps,kn as isString,n as makeRouterProps,nn as omit,ot as defineComponent,pt as getCurrentInstance,qt as getPropertyFromItem,st as genericComponent,t as Ripple,tt as IconValue,un as wrapInArray,wn as isFunction,x as makeVariantProps,z as useDimension}from"./ripple-BVltMmyV.js";import{Cn as toRaw,D as createVNode,En as toValue,Ht as watch,J as inject,Pt as useId,Ut as watchEffect,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,er as normalizeStyle,et as mergeProps,g as computed,gt as provide,it as onBeforeUnmount,o as Fragment,ot as onDeactivated,rt as onBeforeMount,tr as toDisplayString,tt as nextTick,vn as ref,wn as toRef,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{c as VMenuSymbol,l as forwardRefs,n as makeVOverlayProps,r as useScopeId,t as VOverlay,u as VDialogTransition}from"./VOverlay-CeMZurIN.js";import{t as createSimpleFunctional}from"./createSimpleFunctional-CZTGuNuR.js";import{a as MaybeTransition,s as VExpandTransition,t as VAvatar}from"./VAvatar-DPzqDH4r.js";import{t as useSsrBoot}from"./ssrBoot-Rlh6kLbD.js";import{t as VDivider}from"./VDivider-BMEqUoAB.js";function throttle(fn,delay,options={leading:true,trailing:true}){let timeoutId=0;let lastExec=0;let throttling=false;let start=0;function clear(){clearTimeout(timeoutId);throttling=false;start=0}const wrap=(...args)=>{clearTimeout(timeoutId);const now=Date.now();if(!start)start=now;const elapsed=now-Math.max(start,lastExec);function invoke(){lastExec=Date.now();timeoutId=setTimeout(clear,delay);fn(...args)}if(!throttling){throttling=true;if(options.leading)invoke()}else if(elapsed>=delay)invoke();else if(options.trailing)timeoutId=setTimeout(invoke,delay-elapsed)};wrap.clear=clear;wrap.immediate=fn;return wrap}var ListKey=Symbol.for(`vuetify:list`);function createList(options={filterable:false}){const parent=inject(ListKey,{filterable:false,hasPrepend:shallowRef(false),updateHasPrepend:()=>null,trackingIndex:shallowRef(-1),navigationStrategy:shallowRef(`focus`),uid:``});const{filterable,trackingIndex=parent.trackingIndex,navigationStrategy=parent.navigationStrategy,uid=parent.uid||useId()}=options;const data={filterable:parent.filterable||filterable,hasPrepend:shallowRef(false),updateHasPrepend:value=>{if(value)data.hasPrepend.value=value},trackingIndex,navigationStrategy,uid};provide(ListKey,data);return parent}function useList(){return inject(ListKey,null)}var independentActiveStrategy=mandatory=>{const strategy={activate:({id,value,activated})=>{id=toRaw(id);if(mandatory&&!value&&activated.size===1&&activated.has(id))return activated;if(value)activated.add(id);else activated.delete(id);return activated},in:(v,children,parents)=>{let set=new Set;if(!isNullOrUndefined(v))for(const id of wrapInArray(v))set=strategy.activate({id,value:true,activated:new Set(set),children,parents});return set},out:v=>{return Array.from(v)}};return strategy};var independentSingleActiveStrategy=mandatory=>{const parentStrategy=independentActiveStrategy(mandatory);return{activate:({activated,id,...rest})=>{id=toRaw(id);const singleSelected=activated.has(id)?new Set([id]):new Set;return parentStrategy.activate({...rest,id,activated:singleSelected})},in:(v,children,parents)=>{let set=new Set;if(!isNullOrUndefined(v)){const arr=wrapInArray(v);if(arr.length)set=parentStrategy.in(arr.slice(0,1),children,parents)}return set},out:(v,children,parents)=>{return parentStrategy.out(v,children,parents)}}};var leafActiveStrategy=mandatory=>{const parentStrategy=independentActiveStrategy(mandatory);return{activate:({id,activated,children,...rest})=>{id=toRaw(id);if(children.has(id))return activated;return parentStrategy.activate({id,activated,children,...rest})},in:parentStrategy.in,out:parentStrategy.out}};var leafSingleActiveStrategy=mandatory=>{const parentStrategy=independentSingleActiveStrategy(mandatory);return{activate:({id,activated,children,...rest})=>{id=toRaw(id);if(children.has(id))return activated;return parentStrategy.activate({id,activated,children,...rest})},in:parentStrategy.in,out:parentStrategy.out}};var singleOpenStrategy={open:({id,value,opened,parents})=>{if(value){const newOpened=new Set;newOpened.add(id);let parent=parents.get(id);while(!isNullOrUndefined(parent)){newOpened.add(parent);parent=parents.get(parent)}return newOpened}else{opened.delete(id);return opened}},select:()=>null};var multipleOpenStrategy={open:({id,value,opened,parents})=>{if(value){let parent=parents.get(id);opened.add(id);while(!isNullOrUndefined(parent)&&parent!==id){opened.add(parent);parent=parents.get(parent)}return opened}else opened.delete(id);return opened},select:()=>null};var listOpenStrategy={open:multipleOpenStrategy.open,select:({id,value,opened,parents})=>{if(!value)return opened;const path=[];let parent=parents.get(id);while(!isNullOrUndefined(parent)){path.push(parent);parent=parents.get(parent)}return new Set(path)}};var independentSelectStrategy=mandatory=>{const strategy={select:({id,value,selected})=>{id=toRaw(id);if(mandatory&&!value){const on=Array.from(selected.entries()).reduce((arr,[key,value])=>{if(value===`on`)arr.push(key);return arr},[]);if(on.length===1&&on[0]===id)return selected}selected.set(id,value?`on`:`off`);return selected},in:(v,children,parents,disabled)=>{const map=new Map;for(const id of v||[])strategy.select({id,value:true,selected:map,children,parents,disabled});return map},out:v=>{const arr=[];for(const[key,value]of v.entries())if(value===`on`)arr.push(key);return arr}};return strategy};var independentSingleSelectStrategy=mandatory=>{const parentStrategy=independentSelectStrategy(mandatory);return{select:({selected,id,...rest})=>{id=toRaw(id);const singleSelected=selected.has(id)?new Map([[id,selected.get(id)]]):new Map;return parentStrategy.select({...rest,id,selected:singleSelected})},in:(v,children,parents,disabled)=>{if(v?.length)return parentStrategy.in(v.slice(0,1),children,parents,disabled);return new Map},out:(v,children,parents)=>{return parentStrategy.out(v,children,parents)}}};var leafSelectStrategy=mandatory=>{const parentStrategy=independentSelectStrategy(mandatory);return{select:({id,selected,children,...rest})=>{id=toRaw(id);if(children.has(id))return selected;return parentStrategy.select({id,selected,children,...rest})},in:parentStrategy.in,out:parentStrategy.out}};var leafSingleSelectStrategy=mandatory=>{const parentStrategy=independentSingleSelectStrategy(mandatory);return{select:({id,selected,children,...rest})=>{id=toRaw(id);if(children.has(id))return selected;return parentStrategy.select({id,selected,children,...rest})},in:parentStrategy.in,out:parentStrategy.out}};var classicSelectStrategy=mandatory=>{const strategy={select:({id,value,selected,children,parents,disabled})=>{id=toRaw(id);const original=new Map(selected);const items=[id];while(items.length){const item=items.shift();if(!disabled.has(item))selected.set(toRaw(item),value?`on`:`off`);if(children.has(item))items.push(...children.get(item))}let parent=toRaw(parents.get(id));while(parent){let everySelected=true;let noneSelected=true;for(const child of children.get(parent)){const cid=toRaw(child);if(disabled.has(cid))continue;if(selected.get(cid)!==`on`)everySelected=false;if(selected.has(cid)&&selected.get(cid)!==`off`)noneSelected=false;if(!everySelected&&!noneSelected)break}selected.set(parent,everySelected?`on`:noneSelected?`off`:`indeterminate`);parent=toRaw(parents.get(parent))}if(mandatory&&!value){if(Array.from(selected.entries()).reduce((arr,[key,value])=>{if(value===`on`)arr.push(key);return arr},[]).length===0)return original}return selected},in:(v,children,parents)=>{let map=new Map;for(const id of v||[])map=strategy.select({id,value:true,selected:map,children,parents,disabled:new Set});return map},out:(v,children)=>{const arr=[];for(const[key,value]of v.entries())if(value===`on`&&!children.has(key))arr.push(key);return arr}};return strategy};var trunkSelectStrategy=mandatory=>{const parentStrategy=classicSelectStrategy(mandatory);return{select:parentStrategy.select,in:parentStrategy.in,out:(v,children,parents)=>{const arr=[];for(const[key,value]of v.entries())if(value===`on`){if(parents.has(key)){const parent=parents.get(key);if(v.get(parent)===`on`)continue}arr.push(key)}return arr}}};var branchSelectStrategy=mandatory=>{const strategy={select:classicSelectStrategy(mandatory).select,in:(v,children,parents,disabled)=>{let map=new Map;for(const id of v||[]){if(children.has(id))continue;map=strategy.select({id,value:true,selected:map,children,parents,disabled})}return map},out:v=>{const arr=[];for(const[key,value]of v.entries())if(value===`on`||value===`indeterminate`)arr.push(key);return arr}};return strategy};var VNestedSymbol=Symbol.for(`vuetify:nested`);var emptyNested={id:shallowRef(),root:{itemsRegistration:ref(`render`),register:()=>null,unregister:()=>null,updateDisabled:()=>null,children:ref(new Map),parents:ref(new Map),disabled:ref(new Set),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:ref(false),scrollToActive:ref(false),selectable:ref(false),opened:ref(new Set),activated:ref(new Set),selected:ref(new Map),selectedValues:ref([]),getPath:()=>[]}};var makeNestedProps=propsFactory({activatable:Boolean,selectable:Boolean,activeStrategy:[String,Function,Object],selectStrategy:[String,Function,Object],openStrategy:[String,Object],opened:null,activated:null,selected:null,mandatory:Boolean,itemsRegistration:{type:String,default:`render`}},`nested`);var useNested=(props,{items,returnObject,scrollToActive,valueComparator})=>{let isUnmounted=false;const children=shallowRef(new Map);const parents=shallowRef(new Map);const disabled=shallowRef(new Set);const opened=useProxiedModel(props,`opened`,props.opened,v=>new Set(Array.isArray(v)?v.map(i=>toRaw(i)):v),v=>[...v.values()]);let batch=null;function currentOpened(){if(!batch)queueMicrotask(()=>{batch=null});return batch??opened.value}function setOpened(value){batch=value;opened.value=value}const activeStrategy=computed(()=>{if(isFunction(props.activeStrategy))return props.activeStrategy(props.mandatory);if(isObject(props.activeStrategy))return props.activeStrategy;switch(props.activeStrategy){case`leaf`:return leafActiveStrategy(props.mandatory);case`single-leaf`:return leafSingleActiveStrategy(props.mandatory);case`independent`:return independentActiveStrategy(props.mandatory);default:return independentSingleActiveStrategy(props.mandatory)}});const selectStrategy=computed(()=>{if(isFunction(props.selectStrategy))return props.selectStrategy(props.mandatory);if(isObject(props.selectStrategy))return props.selectStrategy;switch(props.selectStrategy){case`single-leaf`:return leafSingleSelectStrategy(props.mandatory);case`leaf`:return leafSelectStrategy(props.mandatory);case`independent`:return independentSelectStrategy(props.mandatory);case`single-independent`:return independentSingleSelectStrategy(props.mandatory);case`trunk`:return trunkSelectStrategy(props.mandatory);case`branch`:return branchSelectStrategy(props.mandatory);default:return classicSelectStrategy(props.mandatory)}});const openStrategy=computed(()=>{if(isObject(props.openStrategy))return props.openStrategy;switch(props.openStrategy){case`list`:return listOpenStrategy;case`single`:return singleOpenStrategy;default:return multipleOpenStrategy}});const flatItems=computed(()=>{const flat=[];const stack=[...items.value];while(stack.length){const item=stack.pop();flat.push(item);if(item.children)stack.push(...item.children)}return flat});function resolveValue(value){const comparator=toValue(valueComparator);if(!comparator)return value;const _returnObject=toValue(returnObject);for(const item of flatItems.value){const itemVal=_returnObject?toRaw(item.raw):item.value;if(comparator(value,itemVal))return itemVal}return value}const activated=useProxiedModel(props,`activated`,props.activated,v=>activeStrategy.value.in(Array.isArray(v)?v.map(resolveValue):v,children.value,parents.value),v=>activeStrategy.value.out(v,children.value,parents.value));const selected=useProxiedModel(props,`selected`,props.selected,v=>selectStrategy.value.in(Array.isArray(v)?v.map(resolveValue):v,children.value,parents.value,disabled.value),v=>selectStrategy.value.out(v,children.value,parents.value));onBeforeUnmount(()=>{isUnmounted=true});function getPath(id){const path=[];let parent=toRaw(id);while(!isUndefined(parent)){path.unshift(parent);parent=parents.value.get(parent)}return path}const vm=getCurrentInstance(`nested`);const nodeIds=new Set;const itemsUpdatePropagation=throttle(()=>{nextTick(()=>{children.value=new Map(children.value);parents.value=new Map(parents.value)})},100);watch(()=>[items.value,toValue(returnObject)],()=>{if(props.itemsRegistration===`props`)updateInternalMaps()},{immediate:true});function updateInternalMaps(){const _parents=new Map;const _children=new Map;const _disabled=new Set;const getValue=toValue(returnObject)?item=>toRaw(item.raw):item=>item.value;const stack=[...items.value];let i=0;while(i<stack.length){const item=stack[i++];const itemValue=getValue(item);if(item.children){const childValues=[];for(const child of item.children){const childValue=getValue(child);_parents.set(childValue,itemValue);childValues.push(childValue);stack.push(child)}_children.set(itemValue,childValues)}if(item.props.disabled)_disabled.add(itemValue)}children.value=_children;parents.value=_parents;disabled.value=_disabled}const nested={id:shallowRef(),root:{opened,activatable:toRef(()=>props.activatable),scrollToActive:toRef(()=>toValue(scrollToActive)),selectable:toRef(()=>props.selectable),activated,selected,selectedValues:computed(()=>{const arr=[];for(const[key,value]of selected.value.entries())if(value===`on`)arr.push(key);return arr}),itemsRegistration:toRef(()=>props.itemsRegistration),register:(id,parentId,isDisabled,isGroup)=>{if(nodeIds.has(id)){const path=getPath(id).map(String).join(` -> `);const newPath=getPath(parentId).concat(id).map(String).join(` -> `);consoleError(`Multiple nodes with the same ID\n\t${path}\n\t${newPath}`);return}else nodeIds.add(id);parentId&&id!==parentId&&parents.value.set(id,parentId);isDisabled&&disabled.value.add(id);isGroup&&children.value.set(id,[]);if(!isNullOrUndefined(parentId))children.value.set(parentId,[...children.value.get(parentId)||[],id]);itemsUpdatePropagation()},unregister:id=>{if(isUnmounted)return;nodeIds.delete(id);children.value.delete(id);disabled.value.delete(id);const parent=parents.value.get(id);if(parent){const list=children.value.get(parent)??[];children.value.set(parent,list.filter(child=>child!==id))}parents.value.delete(id);itemsUpdatePropagation()},updateDisabled:(id,isDisabled)=>{if(isDisabled)disabled.value.add(id);else disabled.value.delete(id)},open:(id,value,event)=>{vm.emit(`click:open`,{id,value,path:getPath(id),event});const newOpened=openStrategy.value.open({id,value,opened:new Set(currentOpened()),children:children.value,parents:parents.value,event});newOpened&&setOpened(newOpened)},openOnSelect:(id,value,event)=>{const newOpened=openStrategy.value.select({id,value,selected:new Map(selected.value),opened:new Set(currentOpened()),children:children.value,parents:parents.value,event});newOpened&&setOpened(newOpened)},select:(id,value,event)=>{vm.emit(`click:select`,{id,value,path:getPath(id),event});const newSelected=selectStrategy.value.select({id,value,selected:new Map(selected.value),children:children.value,parents:parents.value,disabled:disabled.value,event});newSelected&&(selected.value=newSelected);nested.root.openOnSelect(id,value,event)},activate:(id,value,event)=>{if(!props.activatable)return nested.root.select(id,true,event);vm.emit(`click:activate`,{id,value,path:getPath(id),event});const newActivated=activeStrategy.value.activate({id,value,activated:new Set(activated.value),children:children.value,parents:parents.value,event});if(newActivated.size!==activated.value.size)activated.value=newActivated;else{for(const value of newActivated)if(!activated.value.has(value)){activated.value=newActivated;return}for(const value of activated.value)if(!newActivated.has(value)){activated.value=newActivated;return}}},children,parents,disabled,getPath}};provide(VNestedSymbol,nested);return nested.root};var useNestedItem=(id,isDisabled,isGroup)=>{const parent=inject(VNestedSymbol,emptyNested);const uidSymbol=Symbol(`nested item`);const computedId=computed(()=>{const idValue=toRaw(toValue(id));return!isUndefined(idValue)?idValue:uidSymbol});const item={...parent,id:computedId,open:(open,e)=>parent.root.open(computedId.value,open,e),openOnSelect:(open,e)=>parent.root.openOnSelect(computedId.value,open,e),isOpen:computed(()=>parent.root.opened.value.has(computedId.value)),parent:computed(()=>parent.root.parents.value.get(computedId.value)),activate:(activated,e)=>parent.root.activate(computedId.value,activated,e),isActivated:computed(()=>parent.root.activated.value.has(computedId.value)),scrollToActive:parent.root.scrollToActive,select:(selected,e)=>parent.root.select(computedId.value,selected,e),isSelected:computed(()=>parent.root.selected.value.get(computedId.value)===`on`),isIndeterminate:computed(()=>parent.root.selected.value.get(computedId.value)===`indeterminate`),isLeaf:computed(()=>!parent.root.children.value.get(computedId.value)),isGroupActivator:parent.isGroupActivator};onBeforeMount(()=>{if(parent.isGroupActivator||parent.root.itemsRegistration.value===`props`)return;nextTick(()=>{parent.root.register(computedId.value,parent.id.value,toValue(isDisabled),isGroup)})});onBeforeUnmount(()=>{if(parent.isGroupActivator||parent.root.itemsRegistration.value===`props`)return;parent.root.unregister(computedId.value)});watch(computedId,(val,oldVal)=>{if(parent.isGroupActivator||parent.root.itemsRegistration.value===`props`)return;parent.root.unregister(oldVal);nextTick(()=>{parent.root.register(val,parent.id.value,toValue(isDisabled),isGroup)})});watch(()=>toValue(isDisabled),val=>{parent.root.updateDisabled(computedId.value,val)});isGroup&&provide(VNestedSymbol,item);return item};var useNestedGroupActivator=()=>{const parent=inject(VNestedSymbol,emptyNested);provide(VNestedSymbol,{...parent,isGroupActivator:true})};var VListGroupActivator=defineComponent({name:`VListGroupActivator`,setup(_,{slots}){useNestedGroupActivator();return()=>slots.default?.()}});var makeVListGroupProps=propsFactory({activeColor:String,baseColor:String,color:String,collapseIcon:{type:IconValue,default:`$collapse`},disabled:Boolean,expandIcon:{type:IconValue,default:`$expand`},rawId:[String,Number],prependIcon:IconValue,appendIcon:IconValue,fluid:Boolean,subgroup:Boolean,title:String,value:null,...makeComponentProps(),...makeTagProps()},`VListGroup`);var VListGroup=genericComponent()({name:`VListGroup`,props:makeVListGroupProps(),setup(props,{slots}){const{isOpen,open,id:_id}=useNestedItem(()=>props.value,()=>props.disabled,true);const id=computed(()=>`v-list-group--id-${String(props.rawId??_id.value)}`);const list=useList();const{isBooted}=useSsrBoot();const parent=inject(VNestedSymbol);const renderWhenClosed=toRef(()=>parent?.root?.itemsRegistration.value===`render`);function onClick(e){if([`INPUT`,`TEXTAREA`].includes(e.target?.tagName))return;open(!isOpen.value,e)}const activatorProps=computed(()=>({onClick,class:`v-list-group__header`,id:id.value}));const toggleIcon=computed(()=>isOpen.value?props.collapseIcon:props.expandIcon);const activatorDefaults=computed(()=>({VListItem:{activeColor:props.activeColor,baseColor:props.baseColor,color:props.color,prependIcon:props.prependIcon||props.subgroup&&toggleIcon.value,appendIcon:props.appendIcon||!props.subgroup&&toggleIcon.value,title:props.title,value:props.value}}));useRender(()=>createVNode(props.tag,{"class":normalizeClass([`v-list-group`,{"v-list-group--prepend":list?.hasPrepend.value,"v-list-group--fluid":props.fluid,"v-list-group--subgroup":props.subgroup,"v-list-group--open":isOpen.value},props.class]),"style":normalizeStyle(props.style)},{default:()=>[slots.activator&&createVNode(VDefaultsProvider,{"defaults":activatorDefaults.value},{default:()=>[createVNode(VListGroupActivator,null,{default:()=>[slots.activator({props:activatorProps.value,isOpen:isOpen.value})]})]}),createVNode(MaybeTransition,{"transition":{component:VExpandTransition},"disabled":!isBooted.value},{default:()=>[renderWhenClosed.value?withDirectives(createBaseVNode(`div`,{"class":`v-list-group__items`,"role":`group`,"aria-labelledby":id.value,"inert":!isOpen.value},[slots.default?.()]),[[vShow,isOpen.value]]):isOpen.value&&createBaseVNode(`div`,{"class":`v-list-group__items`,"role":`group`,"aria-labelledby":id.value},[slots.default?.()])]})]}));return{isOpen}}});var makeVListItemSubtitleProps=propsFactory({opacity:[Number,String],...makeComponentProps(),...makeTagProps()},`VListItemSubtitle`);var VListItemSubtitle=genericComponent()({name:`VListItemSubtitle`,props:makeVListItemSubtitleProps(),setup(props,{slots}){useRender(()=>createVNode(props.tag,{"class":normalizeClass([`v-list-item-subtitle`,props.class]),"style":normalizeStyle([{"--v-list-item-subtitle-opacity":props.opacity},props.style])},slots));return{}}});var VListItemTitle=createSimpleFunctional(`v-list-item-title`);var makeVListItemProps=propsFactory({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:IconValue,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:IconValue,ripple:{type:[Boolean,Object],default:true},slim:Boolean,prependGap:[Number,String],subtitle:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},value:null,index:Number,tabindex:[Number,String],onClick:EventProp(),onClickOnce:EventProp(),...makeBorderProps(),...makeComponentProps(),...makeDensityProps(),...makeDimensionProps(),...makeElevationProps(),...makeRoundedProps(),...makeRouterProps(),...makeTagProps(),...makeThemeProps(),...makeVariantProps({variant:`text`})},`VListItem`);var VListItem=genericComponent()({name:`VListItem`,directives:{vRipple:Ripple},props:makeVListItemProps(),emits:{click:e=>true},setup(props,{attrs,slots,emit}){const link=useLink(props,attrs);const rootEl=ref();const id=computed(()=>props.value===void 0?link.href.value:props.value);const{activate,isActivated,select,isOpen,isSelected,isIndeterminate,isGroupActivator,root,parent,openOnSelect,scrollToActive,id:uid}=useNestedItem(id,()=>props.disabled,false);const list=useList();const isActive=computed(()=>props.active!==false&&(props.active||link.isActive?.value||(root.activatable.value?isActivated.value:isSelected.value)));const isLink=toRef(()=>props.link!==false&&link.isLink.value);const isSelectable=computed(()=>!!list&&(root.selectable.value||root.activatable.value||props.value!=null));const isClickable=computed(()=>!props.disabled&&props.link!==false&&(props.link||link.isClickable.value||isSelectable.value));const isTracked=computed(()=>list&&list.navigationStrategy.value===`track`&&props.index!==void 0&&list.trackingIndex.value===props.index);const role=computed(()=>list?isLink.value?`link`:isSelectable.value?`option`:`listitem`:void 0);const ariaSelected=computed(()=>{if(!isSelectable.value)return void 0;return root.activatable.value?isActivated.value:root.selectable.value?isSelected.value:isActive.value});const roundedProps=toRef(()=>props.rounded||props.nav);const color=toRef(()=>props.color??props.activeColor);const variantProps=toRef(()=>({color:isActive.value?color.value??props.baseColor:props.baseColor,variant:props.variant}));watch(()=>link.isActive?.value,val=>{if(!val)return;handleActiveLink()});watch(isActivated,val=>{if(!val||!scrollToActive)return;rootEl.value?.scrollIntoView({block:`nearest`,behavior:`instant`})});watch(isTracked,val=>{if(!val)return;rootEl.value?.scrollIntoView({block:`nearest`,behavior:`instant`})});onBeforeMount(()=>{if(link.isActive?.value)nextTick(()=>handleActiveLink())});function handleActiveLink(){if(parent.value!=null)root.open(parent.value,true);openOnSelect(true)}const{themeClasses}=provideTheme(props);const{borderClasses}=useBorder(props);const{colorClasses,colorStyles,variantClasses}=useVariant(variantProps);const{densityClasses}=useDensity(props);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{roundedClasses,roundedStyles}=useRounded(roundedProps);const lineClasses=toRef(()=>props.lines?`v-list-item--${props.lines}-line`:void 0);const rippleOptions=toRef(()=>props.ripple!==void 0&&!!props.ripple&&list?.filterable?{keys:[`Enter`]}:props.ripple);const slotProps=computed(()=>({isActive:isActive.value,select,isOpen:isOpen.value,isSelected:isSelected.value,isIndeterminate:isIndeterminate.value,isDisabled:props.disabled}));function onClick(e){emit(`click`,e);if([`INPUT`,`TEXTAREA`].includes(e.target?.tagName))return;if(!isClickable.value)return;link.navigate.value?.(e);if(isGroupActivator)return;if(root.activatable.value)activate(!isActivated.value,e);else if(root.selectable.value)select(!isSelected.value,e);else if(props.value!=null&&!isLink.value)select(!isSelected.value,e)}function onKeyDown(e){const target=e.target;if([`INPUT`,`TEXTAREA`].includes(target.tagName))return;if(e.currentTarget?.getAttribute(`role`)===`treeitem`)return;if(e.key===`Enter`||e.key===` `&&!list?.filterable){e.preventDefault();e.stopPropagation();e.target.dispatchEvent(new MouseEvent(`click`,e))}}useRender(()=>{const Tag=isLink.value?`a`:props.tag;const hasTitle=slots.title||props.title!=null;const hasSubtitle=slots.subtitle||props.subtitle!=null;const hasAppend=!!(!!(props.appendAvatar||props.appendIcon)||slots.append);const hasPrepend=!!(!!(props.prependAvatar||props.prependIcon)||slots.prepend);list?.updateHasPrepend(hasPrepend);if(props.activeColor)deprecate(`active-color`,[`color`,`base-color`]);return withDirectives(createVNode(Tag,mergeProps(link.linkProps,{"ref":rootEl,"id":props.index!==void 0&&list?`v-list-item-${list.uid}-${props.index}`:void 0,"class":[`v-list-item`,{"v-list-item--active":isActive.value,"v-list-item--disabled":props.disabled,"v-list-item--link":isClickable.value,"v-list-item--nav":props.nav,"v-list-item--prepend":!hasPrepend&&list?.hasPrepend.value,"v-list-item--slim":props.slim,"v-list-item--focus-visible":isTracked.value,[`${props.activeClass}`]:props.activeClass&&isActive.value},themeClasses.value,borderClasses.value,colorClasses.value,densityClasses.value,elevationClasses.value,lineClasses.value,roundedClasses.value,variantClasses.value,props.class],"style":[{"--v-list-prepend-gap":convertToUnit(props.prependGap)},colorStyles.value,dimensionStyles.value,roundedStyles.value,props.style],"tabindex":props.tabindex??(isClickable.value?list?-2:0:void 0),"aria-selected":ariaSelected.value,"role":role.value,"onClick":(isClickable.value||props.onClick||props.onClickOnce)&&onClick,"onKeydown":isClickable.value&&!isLink.value&&onKeyDown}),{default:()=>[genOverlays(isClickable.value||isActive.value,`v-list-item`),hasPrepend&&createBaseVNode(`div`,{"key":`prepend`,"class":`v-list-item__prepend`},[!slots.prepend?createBaseVNode(Fragment,null,[props.prependAvatar&&createVNode(VAvatar,{"key":`prepend-avatar`,"density":props.density,"image":props.prependAvatar},null),props.prependIcon&&createVNode(VIcon,{"key":`prepend-icon`,"density":props.density,"icon":props.prependIcon},null)]):createVNode(VDefaultsProvider,{"key":`prepend-defaults`,"defaults":{VAvatar:{density:props.density,image:props.prependAvatar},VIcon:{density:props.density,icon:props.prependIcon},VListItemAction:{start:true},VCheckboxBtn:{density:props.density}}},{default:()=>[slots.prepend?.(slotProps.value)]}),createBaseVNode(`div`,{"class":`v-list-item__spacer`},null)]),createBaseVNode(`div`,{"class":`v-list-item__content`,"data-no-activator":``},[hasTitle&&createVNode(VListItemTitle,{"key":`title`},{default:()=>[slots.title?.({title:props.title})??toDisplayString(props.title)]}),hasSubtitle&&createVNode(VListItemSubtitle,{"key":`subtitle`},{default:()=>[slots.subtitle?.({subtitle:props.subtitle})??toDisplayString(props.subtitle)]}),slots.default?.(slotProps.value)]),hasAppend&&createBaseVNode(`div`,{"key":`append`,"class":`v-list-item__append`},[!slots.append?createBaseVNode(Fragment,null,[props.appendIcon&&createVNode(VIcon,{"key":`append-icon`,"density":props.density,"icon":props.appendIcon},null),props.appendAvatar&&createVNode(VAvatar,{"key":`append-avatar`,"density":props.density,"image":props.appendAvatar},null)]):createVNode(VDefaultsProvider,{"key":`append-defaults`,"defaults":{VAvatar:{density:props.density,image:props.appendAvatar},VIcon:{density:props.density,icon:props.appendIcon},VListItemAction:{end:true},VCheckboxBtn:{density:props.density}}},{default:()=>[slots.append?.(slotProps.value)]}),createBaseVNode(`div`,{"class":`v-list-item__spacer`},null)])]}),[[Ripple,isClickable.value&&rippleOptions.value]])});return{activate,isActivated,isGroupActivator,isSelected,list,select,root,id:uid,link}}});var makeVListSubheaderProps=propsFactory({color:String,inset:Boolean,sticky:Boolean,title:String,...makeComponentProps(),...makeTagProps()},`VListSubheader`);var VListSubheader=genericComponent()({name:`VListSubheader`,props:makeVListSubheaderProps(),setup(props,{slots}){const{textColorClasses,textColorStyles}=useTextColor(()=>props.color);useRender(()=>{const hasText=!!(slots.default||props.title);return createVNode(props.tag,{"class":normalizeClass([`v-list-subheader`,{"v-list-subheader--inset":props.inset,"v-list-subheader--sticky":props.sticky},textColorClasses.value,props.class]),"style":normalizeStyle([{textColorStyles},props.style])},{default:()=>[hasText&&createBaseVNode(`div`,{"class":`v-list-subheader__text`},[slots.default?.()??props.title])]})});return{}}});var makeVListChildrenProps=propsFactory({items:Array,returnObject:Boolean},`VListChildren`);var VListChildren=genericComponent()({name:`VListChildren`,props:makeVListChildrenProps(),setup(props,{slots}){createList();return()=>slots.default?.()??props.items?.map(({children,props:itemProps,type,raw:item},index)=>{if(type===`divider`)return slots.divider?.({props:itemProps})??createVNode(VDivider,itemProps,null);if(type===`subheader`)return slots.subheader?.({props:itemProps})??createVNode(VListSubheader,itemProps,null);const slotsWithItem={subtitle:slots.subtitle?slotProps=>slots.subtitle?.({...slotProps,item}):void 0,prepend:slots.prepend?slotProps=>slots.prepend?.({...slotProps,item}):void 0,append:slots.append?slotProps=>slots.append?.({...slotProps,item}):void 0,title:slots.title?slotProps=>slots.title?.({...slotProps,item}):void 0};const listGroupProps=VListGroup.filterProps(itemProps);return children?createVNode(VListGroup,mergeProps(listGroupProps,{"value":props.returnObject?item:itemProps?.value,"rawId":itemProps?.value}),{activator:({props:activatorProps})=>{const listItemProps=mergeProps(itemProps,activatorProps,{value:props.returnObject?item:itemProps.value});return slots.header?slots.header({props:listItemProps}):createVNode(VListItem,mergeProps(listItemProps,{"index":index}),slotsWithItem)},default:()=>createVNode(VListChildren,{"items":children,"returnObject":props.returnObject},slots)}):slots.item?slots.item({props:{...itemProps,index}}):createVNode(VListItem,mergeProps(itemProps,{"index":index,"value":props.returnObject?item:itemProps.value}),slotsWithItem)})}});var makeItemsProps=propsFactory({items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:`title`},itemValue:{type:[String,Array,Function],default:`value`},itemChildren:{type:[Boolean,String,Array,Function],default:`children`},itemProps:{type:[Boolean,String,Array,Function],default:`props`},itemType:{type:[Boolean,String,Array,Function],default:`type`},returnObject:Boolean,valueComparator:Function},`list-items`);var itemTypes$1=new Set([`item`,`divider`,`subheader`]);function transformItem$1(props,item){const title=getPropertyFromItem(item,props.itemTitle,item);const value=getPropertyFromItem(item,props.itemValue,title);const children=getPropertyFromItem(item,props.itemChildren);const itemProps=props.itemProps===true?isObject(item)?`children`in item?omit(item,[`children`]):item:void 0:getPropertyFromItem(item,props.itemProps);let type=getPropertyFromItem(item,props.itemType,`item`);if(!itemTypes$1.has(type))type=`item`;const _props={title,value,...itemProps};return{type,title:String(_props.title??``),value:_props.value,props:_props,children:type===`item`&&Array.isArray(children)?transformItems$1(props,children):void 0,raw:item}}transformItem$1.neededProps=[`itemTitle`,`itemValue`,`itemChildren`,`itemProps`,`itemType`];function transformItems$1(props,items){const _props=pick(props,transformItem$1.neededProps);const array=[];for(const item of items)array.push(transformItem$1(_props,item));return array}function useItems(props){const items=computed(()=>transformItems$1(props,props.items));const hasNullItem=computed(()=>items.value.some(item=>isNull(item.value)));const itemsMap=shallowRef(new Map);const keylessItems=shallowRef([]);watchEffect(()=>{const _items=items.value;const map=new Map;const keyless=[];for(let i=0;i<_items.length;i++){const item=_items[i];if(isPrimitive(item.value)||isNull(item.value)){let values=map.get(item.value);if(!values){values=[];map.set(item.value,values)}values.push(item)}else keyless.push(item)}itemsMap.value=map;keylessItems.value=keyless});function transformIn(value){const _items=itemsMap.value;const _allItems=items.value;const _keylessItems=keylessItems.value;const _hasNullItem=hasNullItem.value;const _returnObject=props.returnObject;const hasValueComparator=!!props.valueComparator;const valueComparator=props.valueComparator||deepEqual;const _props=pick(props,transformItem$1.neededProps);const returnValue=[];main:for(const v of value){if(!_hasNullItem&&isNull(v))continue;if(_returnObject&&isString(v)){returnValue.push(transformItem$1(_props,v));continue}const fastItems=_items.get(v);if(hasValueComparator||!fastItems){for(const item of hasValueComparator?_allItems:_keylessItems)if(valueComparator(v,item.value)){returnValue.push(item);continue main}returnValue.push(transformItem$1(_props,v));continue}returnValue.push(...fastItems)}return returnValue}function transformOut(value){return props.returnObject?value.map(({raw})=>raw):value.map(({value})=>value)}return{items,transformIn,transformOut}}var itemTypes=new Set([`item`,`divider`,`subheader`]);function transformItem(props,item){const title=isPrimitive(item)?item:getPropertyFromItem(item,props.itemTitle);const value=isPrimitive(item)?item:getPropertyFromItem(item,props.itemValue,void 0);const children=getPropertyFromItem(item,props.itemChildren);const itemProps=props.itemProps===true?omit(item,[`children`]):getPropertyFromItem(item,props.itemProps);let type=getPropertyFromItem(item,props.itemType,`item`);if(!itemTypes.has(type))type=`item`;const _props={title,value,...itemProps};return{type,title:_props.title,value:_props.value,props:_props,children:type===`item`&&children?transformItems(props,children):void 0,raw:item}}function transformItems(props,items){const array=[];for(const item of items)array.push(transformItem(props,item));return array}function useListItems(props){return{items:computed(()=>transformItems(props,props.items))}}var makeVListProps=propsFactory({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,filterable:Boolean,expandIcon:IconValue,collapseIcon:IconValue,lines:{type:[Boolean,String],default:`one`},slim:Boolean,prependGap:[Number,String],indent:[Number,String],nav:Boolean,navigationStrategy:{type:String,default:`focus`},navigationIndex:Number,"onClick:open":EventProp(),"onClick:select":EventProp(),"onUpdate:opened":EventProp(),...makeNestedProps({selectStrategy:`single-leaf`,openStrategy:`list`}),...makeBorderProps(),...makeComponentProps(),...makeDensityProps(),...makeDimensionProps(),...makeElevationProps(),...makeItemsProps(),...makeRoundedProps(),...makeTagProps(),...makeThemeProps(),...makeVariantProps({variant:`text`})},`VList`);var VList=genericComponent()({name:`VList`,props:makeVListProps(),emits:{"update:selected":value=>true,"update:activated":value=>true,"update:opened":value=>true,"update:navigationIndex":value=>true,"click:open":value=>true,"click:activate":value=>true,"click:select":value=>true},setup(props,{attrs,slots,emit}){const{items}=useListItems(props);const{themeClasses}=provideTheme(props);const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.bgColor);const{borderClasses}=useBorder(props);const{densityClasses}=useDensity(props);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{roundedClasses,roundedStyles}=useRounded(props);const{children,open,parents,select,getPath}=useNested(props,{items,returnObject:toRef(()=>props.returnObject),scrollToActive:toRef(()=>props.navigationStrategy===`track`),valueComparator:toRef(()=>props.valueComparator)});const lineClasses=toRef(()=>props.lines?`v-list--${props.lines}-line`:void 0);const activeColor=toRef(()=>props.activeColor);const baseColor=toRef(()=>props.baseColor);const color=toRef(()=>props.color);const isSelectable=toRef(()=>props.selectable||props.activatable);const navigationIndex=useProxiedModel(props,`navigationIndex`,-1,v=>v??-1);const uid=useId();createList({filterable:props.filterable,trackingIndex:navigationIndex,navigationStrategy:toRef(()=>props.navigationStrategy),uid});watch(items,()=>{if(props.navigationStrategy===`track`)navigationIndex.value=-1});provideDefaults({VListGroup:{activeColor,baseColor,color,expandIcon:toRef(()=>props.expandIcon),collapseIcon:toRef(()=>props.collapseIcon)},VListItem:{activeClass:toRef(()=>props.activeClass),activeColor,baseColor,color,density:toRef(()=>props.density),disabled:toRef(()=>props.disabled),lines:toRef(()=>props.lines),nav:toRef(()=>props.nav),slim:toRef(()=>props.slim),variant:toRef(()=>props.variant),tabindex:toRef(()=>props.navigationStrategy===`track`?-1:void 0)}});const isFocused=shallowRef(false);const contentRef=ref();function onFocusin(e){isFocused.value=true}function onFocusout(e){isFocused.value=false}function onFocus(e){if(props.navigationStrategy===`track`){if(!~navigationIndex.value)navigationIndex.value=getNextIndex(`first`)}else if(!isFocused.value&&!(e.relatedTarget&&contentRef.value?.contains(e.relatedTarget)))focus()}function onBlur(){if(props.navigationStrategy===`track`)navigationIndex.value=-1}function getNavigationDirection(key){switch(key){case`ArrowDown`:return`next`;case`ArrowUp`:return`prev`;case`Home`:return`first`;case`End`:return`last`;default:return null}}function getNextIndex(direction){const itemCount=items.value.length;if(itemCount===0)return-1;let nextIndex;if(direction===`first`)nextIndex=0;else if(direction===`last`)nextIndex=itemCount-1;else{nextIndex=navigationIndex.value+(direction===`next`?1:-1);if(nextIndex<0)nextIndex=itemCount-1;if(nextIndex>=itemCount)nextIndex=0}const startIndex=nextIndex;let attempts=0;while(attempts<itemCount){const item=items.value[nextIndex];if(item&&item.type!==`divider`&&item.type!==`subheader`)return nextIndex;nextIndex+=direction===`next`||direction===`first`?1:-1;if(nextIndex<0)nextIndex=itemCount-1;if(nextIndex>=itemCount)nextIndex=0;if(nextIndex===startIndex)return-1;attempts++}return-1}function onKeydown(e){const target=e.target;if(!contentRef.value||target.tagName===`INPUT`&&[`Home`,`End`].includes(e.key)||target.tagName===`TEXTAREA`)return;const direction=getNavigationDirection(e.key);if(direction!==null){e.preventDefault();if(props.navigationStrategy===`track`){const nextIndex=getNextIndex(direction);if(nextIndex!==-1)navigationIndex.value=nextIndex}else{focus(direction,{preventScroll:true});const focused=getActiveElement();if(focused&&contentRef.value?.contains(focused))focused.scrollIntoView({block:`nearest`})}}}function onMousedown(e){isFocused.value=true}function focus(location,options){if(contentRef.value)return focusChild(contentRef.value,location,options)}useRender(()=>{const indent=props.indent??(props.prependGap?Number(props.prependGap)+24:void 0);const ariaMultiselectable=isSelectable.value?attrs.ariaMultiselectable??!String(props.selectStrategy).startsWith(`single-`):void 0;return createVNode(props.tag,{"ref":contentRef,"class":normalizeClass([`v-list`,{"v-list--disabled":props.disabled,"v-list--nav":props.nav,"v-list--slim":props.slim},themeClasses.value,backgroundColorClasses.value,borderClasses.value,densityClasses.value,elevationClasses.value,lineClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([{"--v-list-indent":convertToUnit(indent),"--v-list-group-prepend":indent?`0px`:void 0,"--v-list-prepend-gap":convertToUnit(props.prependGap)},backgroundColorStyles.value,dimensionStyles.value,roundedStyles.value,props.style]),"tabindex":props.disabled||isFocused.value?-1:0,"role":isSelectable.value?`listbox`:`list`,"aria-activedescendant":props.navigationStrategy===`track`&&navigationIndex.value>=0?`v-list-item-${uid}-${navigationIndex.value}`:void 0,"aria-multiselectable":ariaMultiselectable,"onFocusin":onFocusin,"onFocusout":onFocusout,"onFocus":onFocus,"onBlur":onBlur,"onKeydown":onKeydown,"onMousedown":onMousedown},{default:()=>[createVNode(VListChildren,{"items":items.value,"returnObject":props.returnObject},slots)]})});return{open,select,focus,children,parents,getPath,navigationIndex}}});var makeVMenuProps=propsFactory({_disableKeys:Boolean,id:String,submenu:Boolean,openOnArrow:{type:Boolean,default:true},...omit(makeVOverlayProps({captureFocus:true,closeDelay:250,closeOnContentClick:true,locationStrategy:`connected`,location:void 0,openDelay:300,scrim:false,scrollStrategy:`reposition`,transition:{component:VDialogTransition}}),[`absolute`])},`VMenu`);var VMenu=genericComponent()({name:`VMenu`,props:makeVMenuProps(),emits:{"update:modelValue":value=>true},setup(props,{slots}){const isActive=useProxiedModel(props,`modelValue`);const{scopeId}=useScopeId();const{isRtl}=useRtl();const uid=useId();const id=toRef(()=>props.id||`v-menu-${uid}`);const overlay=ref();const parent=inject(VMenuSymbol,null);const openChildren=shallowRef(new Map);provide(VMenuSymbol,{register(childUid,close){for(const[otherUid,closeOther]of[...openChildren.value])if(otherUid!==childUid)closeOther();openChildren.value.set(childUid,close)},unregister(childUid){openChildren.value.delete(childUid)},closeParents(e){const clickedOutside=!e||overlay.value?.contentEl?._clickOutside?.lastMousedownWasOutside;setTimeout(()=>{if(!openChildren.value.size&&!props.persistent&&clickedOutside){isActive.value=false;parent?.closeParents(e)}},40)},rootOpenedByHover:props.submenu&&parent?parent.rootOpenedByHover:()=>overlay.value?.openedByHover??false});onBeforeUnmount(()=>parent?.unregister(uid));onDeactivated(()=>isActive.value=false);watch(isActive,val=>{if(val)parent?.register(uid,()=>{isActive.value=false});else{parent?.unregister(uid);for(const[,closeChild]of[...openChildren.value])closeChild()}},{immediate:true});function onKeydown(e){if(props.disabled)return;if(e.key===`Tab`){if(props.submenu&&!props.retainFocus){e.preventDefault();isActive.value=false;overlay.value?.activatorEl?.focus();return}if(!getNextElement(focusableChildren(overlay.value?.contentEl,false),e.shiftKey?`prev`:`next`,el=>el.tabIndex>=0)&&!props.retainFocus)isActive.value=false}else if(props.submenu&&e.key===(isRtl.value?`ArrowRight`:`ArrowLeft`)){isActive.value=false;overlay.value?.activatorEl?.focus()}}function setInitialFocus(e){const el=overlay.value?.contentEl;if(!el||!isActive.value)return;if(![`ArrowUp`,`ArrowDown`].includes(e.key))return;const focusable=focusableChildren(el);const focusTargetRole=(e.key===`ArrowUp`?focusable.at(-1):focusable[0])?.getAttribute(`role`)??``;const selectedOption=[`option`,`listbox`].includes(focusTargetRole)&&focusable.find(child=>child.getAttribute(`role`)===`option`&&child.getAttribute(`aria-selected`)===`true`&&child.offsetParent!=null);if(selectedOption)selectedOption.focus();else focusChild(el,e.key===`ArrowDown`?`next`:`prev`)}function onActivatorKeydown(e){if(props.disabled||props._disableKeys||e.isComposing)return;const el=overlay.value?.contentEl;if(el&&isActive.value){if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(!props.openOnArrow)return;e.preventDefault();e.stopImmediatePropagation();focusChild(el,e.key===`ArrowDown`?`next`:`prev`)}else if(props.submenu){if(e.key===(isRtl.value?`ArrowRight`:`ArrowLeft`)){isActive.value=false;overlay.value?.activatorEl?.focus()}else if(e.key===(isRtl.value?`ArrowLeft`:`ArrowRight`)){e.preventDefault();focusChild(el,`first`)}}}else if(props.submenu?e.key===(isRtl.value?`ArrowLeft`:`ArrowRight`):props.openOnArrow&&[`ArrowDown`,`ArrowUp`].includes(e.key)){isActive.value=true;e.preventDefault();focusContentWhenReady(e)}}function focusContentWhenReady(e,attempt=1){if(!isActive.value)return;const el=overlay.value?.contentEl;if(el?.contains(getActiveElement()))return;if(el&&focusableChildren(el).length){if([`ArrowUp`,`ArrowDown`].includes(e.key))setInitialFocus(e);else onActivatorKeydown(e);if(el.contains(getActiveElement()))return}if(attempt<=10)requestAnimationFrame(()=>focusContentWhenReady(e,attempt+1))}const activatorProps=computed(()=>mergeProps({"aria-haspopup":`menu`,"aria-expanded":String(isActive.value),"aria-controls":id.value,"aria-owns":id.value,onKeydown:onActivatorKeydown},props.activatorProps));useRender(()=>{const overlayProps=VOverlay.filterProps(props);return createVNode(VOverlay,mergeProps({"ref":overlay,"id":id.value,"class":[`v-menu`,props.class],"style":props.style},overlayProps,{"modelValue":isActive.value,"onUpdate:modelValue":$event=>isActive.value=$event,"absolute":true,"_submenu":props.submenu,"activatorProps":activatorProps.value,"location":props.location??(props.submenu?`end`:`bottom`),"onKeydown":onKeydown},scopeId),{activator:slots.activator,default:(...args)=>createVNode(VDefaultsProvider,{"root":`VMenu`},{default:()=>[slots.default?.(...args)]})})});return forwardRefs({id,ΨopenChildren:openChildren},overlay)}});export{useItems as a,VListItemTitle as c,transformItem$1 as i,VListItemSubtitle as l,VList as n,VListSubheader as o,makeItemsProps as r,VListItem as s,VMenu as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as useToggleScope,$t as matchesSelector,An as isSymbol,Bt as eventName,Ct as flipSide,Dn as isNumber,Dt as CircularBuffer,En as isNullOrUndefined,F as useBackgroundColor,G as makeThemeProps,Gt as getActiveElement,In as consoleError,It as defer,K as provideTheme,Lt as destructComputed,Nt as clamp,Pt as convertToUnit,Q as useProxiedModel,R as makeDimensionProps,St as flipCorner,Tt as parseAnchor,Wn as vShow,Wt as focusableChildren,Yt as isOn,Z as useRtl,_t as Box,a as useRouter,at as deepEqual,bt as getTargetBox,dn as IN_BROWSER,fn as PREFERS_REDUCED_MOTION,gt as propsFactory,ht as makeComponentProps,it as useRender,kn as isString,ln as templateRef,nn as omit,pt as getCurrentInstance,r as useBackButton,st as genericComponent,vt as getElementBox,wn as isFunction,wt as getAxis,xt as flipAlign,yt as getOverflow,z as useDimension,zn as Transition}from"./ripple-BVltMmyV.js";import{Cn as toRaw,D as createVNode,En as toValue,Ht as watch,J as inject,Ut as watchEffect,Vt as warn,Yt as withDirectives,_ as createBaseVNode,_n as readonly,ct as onMounted,et as mergeProps,g as computed,gn as reactive,gt as provide,in as effectScope,it as onBeforeUnmount,o as Fragment,pn as onScopeDispose,tt as nextTick,u as Teleport,vn as ref,wn as toRef,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{_ as acceleratedEasing,a as MaybeTransition,b as standardEasing,g as useDisplay,o as makeTransitionProps,v as deceleratedEasing}from"./VAvatar-DPzqDH4r.js";import{n as useLazy,t as makeLazyProps}from"./lazy-NHSwD9FS.js";function nullifyTransforms(el){const rect=new Box(el);const style=getComputedStyle(el);const tx=style.transform;if(tx){let ta,sx,sy,dx,dy;if(tx.startsWith(`matrix3d(`)){ta=tx.slice(9,-1).split(/, /);sx=Number(ta[0]);sy=Number(ta[5]);dx=Number(ta[12]);dy=Number(ta[13])}else if(tx.startsWith(`matrix(`)){ta=tx.slice(7,-1).split(/, /);sx=Number(ta[0]);sy=Number(ta[3]);dx=Number(ta[4]);dy=Number(ta[5])}else return new Box(rect);const to=style.transformOrigin;const x=rect.x-dx-(1-sx)*parseFloat(to);const y=rect.y-dy-(1-sy)*parseFloat(to.slice(to.indexOf(` `)+1));const w=sx?rect.width/sx:el.offsetWidth+1;const h=sy?rect.height/sy:el.offsetHeight+1;return new Box({x,y,width:w,height:h})}else return new Box(rect)}function animate(el,keyframes,options){if(typeof el.animate===`undefined`)return{finished:Promise.resolve()};let animation;try{animation=el.animate(keyframes,options)}catch(err){return{finished:Promise.resolve()}}if(typeof animation.finished===`undefined`)animation.finished=new Promise(resolve=>{animation.onfinish=()=>{resolve(animation)}});return animation}var handlers=new WeakMap;function bindProps(el,props){Object.keys(props).forEach(k=>{if(isOn(k)){const name=eventName(k);const handler=handlers.get(el);if(isNullOrUndefined(props[k]))handler?.forEach(v=>{const[n,fn]=v;if(n===name){el.removeEventListener(name,fn);handler.delete(v)}});else if(!handler||![...handler].some(v=>v[0]===name&&v[1]===props[k])){el.addEventListener(name,props[k]);const _handler=handler||new Set;_handler.add([name,props[k]]);if(!handlers.has(el))handlers.set(el,_handler)}}else if(isNullOrUndefined(props[k]))el.removeAttribute(k);else el.setAttribute(k,props[k])})}function unbindProps(el,props){Object.keys(props).forEach(k=>{if(isOn(k)){const name=eventName(k);const handler=handlers.get(el);handler?.forEach(v=>{const[n,fn]=v;if(n===name){el.removeEventListener(name,fn);handler.delete(v)}})}else el.removeAttribute(k)})}function attachedRoot(node){if(!isFunction(node.getRootNode)){while(node.parentNode)node=node.parentNode;if(node!==document)return null;return document}const root=node.getRootNode();if(root!==document&&root.getRootNode({composed:true})!==document)return null;return root}function getScrollParent(el,includeHidden=false){while(el){if(includeHidden?isPotentiallyScrollable(el):hasScrollbar(el))return el;el=el.parentElement}return document.scrollingElement}function getScrollParents(el,stopAt){const elements=[];if(stopAt&&el&&!stopAt.contains(el))return elements;while(el){if(hasScrollbar(el))elements.push(el);if(el===stopAt)break;el=el.parentElement}return elements}function hasScrollbar(el){if(!el||el.nodeType!==Node.ELEMENT_NODE)return false;const style=window.getComputedStyle(el);const hasVerticalScrollbar=style.overflowY===`scroll`||style.overflowY===`auto`&&el.scrollHeight>el.clientHeight;const hasHorizontalScrollbar=style.overflowX===`scroll`||style.overflowX===`auto`&&el.scrollWidth>el.clientWidth;return hasVerticalScrollbar||hasHorizontalScrollbar}function isPotentiallyScrollable(el){if(!el||el.nodeType!==Node.ELEMENT_NODE)return false;const style=window.getComputedStyle(el);return[`scroll`,`auto`].includes(style.overflowY)}function isFixedPosition(el){while(el){if(window.getComputedStyle(el).position===`fixed`)return true;el=el.offsetParent}return false}var makeVDialogTransitionProps=propsFactory({target:[Object,Array]},`v-dialog-transition`);var saved=new WeakMap;var VDialogTransition=genericComponent()({name:`VDialogTransition`,props:makeVDialogTransitionProps(),setup(props,{slots}){const functions={onBeforeEnter(el){el.style.pointerEvents=`none`;el.style.visibility=`hidden`},async onEnter(el,done){await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>requestAnimationFrame(resolve));el.style.visibility=``;const dimensions=getDimensions(props.target,el);const{x,y,sx,sy,speed}=dimensions;saved.set(el,dimensions);if(PREFERS_REDUCED_MOTION())animate(el,[{opacity:0},{}],{duration:125*speed,easing:deceleratedEasing}).finished.then(()=>done());else{const animation=animate(el,[{transform:`translate(${x}px, ${y}px) scale(${sx}, ${sy})`,opacity:0},{}],{duration:225*speed,easing:deceleratedEasing});getChildren(el)?.forEach(el=>{animate(el,[{opacity:0},{opacity:0,offset:.33},{}],{duration:450*speed,easing:standardEasing})});animation.finished.then(()=>done())}},onAfterEnter(el){el.style.removeProperty(`pointer-events`)},onBeforeLeave(el){el.style.pointerEvents=`none`},async onLeave(el,done){await new Promise(resolve=>requestAnimationFrame(resolve));let dimensions;if(!saved.has(el)||Array.isArray(props.target)||props.target.offsetParent||props.target.getClientRects().length)dimensions=getDimensions(props.target,el);else dimensions=saved.get(el);const{x,y,sx,sy,speed}=dimensions;if(PREFERS_REDUCED_MOTION())animate(el,[{},{opacity:0}],{duration:85*speed,easing:acceleratedEasing}).finished.then(()=>done());else{animate(el,[{},{transform:`translate(${x}px, ${y}px) scale(${sx}, ${sy})`,opacity:0}],{duration:125*speed,easing:acceleratedEasing}).finished.then(()=>done());getChildren(el)?.forEach(el=>{animate(el,[{},{opacity:0,offset:.2},{opacity:0}],{duration:250*speed,easing:standardEasing})})}},onAfterLeave(el){el.style.removeProperty(`pointer-events`)}};return()=>{return props.target?createVNode(Transition,mergeProps({"name":`dialog-transition`},functions,{"css":false}),slots):createVNode(Transition,{"name":`dialog-transition`},slots)}}});function getChildren(el){const els=el.querySelector(`:scope > .v-card, :scope > .v-sheet, :scope > .v-list`)?.children;return els&&[...els]}function getDimensions(target,el){const targetBox=getTargetBox(target);const elBox=nullifyTransforms(el);const[originX,originY]=getComputedStyle(el).transformOrigin.split(` `).map(v=>parseFloat(v));const[anchorSide,anchorOffset]=getComputedStyle(el).getPropertyValue(`--v-overlay-anchor-origin`).split(` `);let offsetX=targetBox.left+targetBox.width/2;if(anchorSide===`left`||anchorOffset===`left`)offsetX-=targetBox.width/2;else if(anchorSide===`right`||anchorOffset===`right`)offsetX+=targetBox.width/2;let offsetY=targetBox.top+targetBox.height/2;if(anchorSide===`top`||anchorOffset===`top`)offsetY-=targetBox.height/2;else if(anchorSide===`bottom`||anchorOffset===`bottom`)offsetY+=targetBox.height/2;const tsx=targetBox.width/elBox.width;const tsy=targetBox.height/elBox.height;const maxs=Math.max(1,tsx,tsy);const sx=tsx/maxs||0;const sy=tsy/maxs||0;const asa=elBox.width*elBox.height/(window.innerWidth*window.innerHeight);const speed=asa>.12?Math.min(1.5,(asa-.12)*10+1):1;return{x:offsetX-(originX+elBox.left),y:offsetY-(originY+elBox.top),sx,sy,speed}}var Refs=Symbol(`Forwarded refs`);function getDescriptor(obj,key){let currentObj=obj;while(currentObj){const descriptor=Reflect.getOwnPropertyDescriptor(currentObj,key);if(descriptor)return descriptor;currentObj=Object.getPrototypeOf(currentObj)}}function forwardRefs(target,...refs){target[Refs]=refs;return new Proxy(target,{get(target,key){if(Reflect.has(target,key))return Reflect.get(target,key);if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key)){const val=Reflect.get(ref.value,key);return isFunction(val)?val.bind(ref.value):val}},has(target,key){if(Reflect.has(target,key))return true;if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return false;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key))return true;return false},set(target,key,value){if(Reflect.has(target,key))return Reflect.set(target,key,value);if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return false;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key))return Reflect.set(ref.value,key,value);return false},getOwnPropertyDescriptor(target,key){const descriptor=Reflect.getOwnPropertyDescriptor(target,key);if(descriptor)return descriptor;if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return;for(const ref of refs){if(!ref.value)continue;const descriptor=getDescriptor(ref.value,key)??(`_`in ref.value?getDescriptor(ref.value._?.setupState,key):void 0);if(descriptor)return descriptor}for(const ref of refs){const childRefs=ref.value&&ref.value[Refs];if(!childRefs)continue;const queue=childRefs.slice();while(queue.length){const ref=queue.shift();const descriptor=getDescriptor(ref.value,key);if(descriptor)return descriptor;const childRefs=ref.value&&ref.value[Refs];if(childRefs)queue.push(...childRefs)}}}})}var VMenuSymbol=Symbol.for(`vuetify:v-menu`);function elementToViewport(point,offset){return{x:point.x+offset.x,y:point.y+offset.y}}function getOffset(a,b){return{x:a.x-b.x,y:a.y-b.y}}function anchorToPoint(anchor,box){if(anchor.side===`top`||anchor.side===`bottom`){const{side,align}=anchor;return elementToViewport({x:align===`left`?0:align===`center`?box.width/2:align===`right`?box.width:align,y:side===`top`?0:side===`bottom`?box.height:side},box)}else if(anchor.side===`left`||anchor.side===`right`){const{side,align}=anchor;return elementToViewport({x:side===`left`?0:side===`right`?box.width:side,y:align===`top`?0:align===`center`?box.height/2:align===`bottom`?box.height:align},box)}return elementToViewport({x:box.width/2,y:box.height/2},box)}var locationStrategies={static:staticLocationStrategy,connected:connectedLocationStrategy};var makeLocationStrategyProps=propsFactory({locationStrategy:{type:[String,Function],default:`static`,validator:val=>isFunction(val)||val in locationStrategies},location:String,origin:{type:String,default:`auto`},offset:[Number,String,Array],stickToTarget:Boolean,viewportMargin:{type:[Number,String],default:12}},`VOverlay-location-strategies`);function useLocationStrategies(props,data){const contentStyles=ref({});const updateLocation=ref();if(IN_BROWSER)useToggleScope(()=>!!(data.isActive.value&&props.locationStrategy),reset=>{watch(()=>props.locationStrategy,reset);onScopeDispose(()=>{window.removeEventListener(`resize`,onResize);visualViewport?.removeEventListener(`resize`,onVisualResize);visualViewport?.removeEventListener(`scroll`,onVisualScroll);updateLocation.value=void 0;if(data.isActive.value)contentStyles.value={}});window.addEventListener(`resize`,onResize,{passive:true});visualViewport?.addEventListener(`resize`,onVisualResize,{passive:true});visualViewport?.addEventListener(`scroll`,onVisualScroll,{passive:true});if(isFunction(props.locationStrategy))updateLocation.value=props.locationStrategy(data,props,contentStyles)?.updateLocation;else updateLocation.value=locationStrategies[props.locationStrategy](data,props,contentStyles)?.updateLocation});function onResize(e){updateLocation.value?.(e)}function onVisualResize(e){updateLocation.value?.(e)}function onVisualScroll(e){updateLocation.value?.(e)}return{contentStyles,updateLocation}}function getStaticLocationClasses(location){if(!location)return void 0;const normalized=location.includes(` `)?location:`${location} center`;let justify=`center`;let align=`center`;const inline={left:`start`,start:`start`,right:`end`,end:`end`};const block={top:`start`,bottom:`end`};for(const token of normalized.split(` `))if(token in inline)justify=inline[token];else if(token in block)align=block[token];return{[`v-overlay--justify-${justify}`]:true,[`v-overlay--align-${align}`]:true}}function staticLocationStrategy(data,props,contentStyles){function updateStyles(){if(props.origin!==`auto`&&props.origin!==`overlap`){const{side,align}=parseAnchor(props.origin,data.isRtl.value);contentStyles.value={transformOrigin:`${side} ${align}`}}else contentStyles.value={}}watch([()=>props.origin,data.isRtl],updateStyles,{immediate:true});return{updateLocation:()=>{}}}function resolveCssLength(value,container,isWidth){const probe=document.createElement(`div`);probe.style.position=`absolute`;probe.style.visibility=`hidden`;probe.style[isWidth?`width`:`height`]=value;container.appendChild(probe);const size=isWidth?probe.offsetWidth:probe.offsetHeight;container.removeChild(probe);return size>0?size:Infinity}function getIntrinsicSize(el,isRtl){const contentBox=nullifyTransforms(el);const computed=getComputedStyle(el);function offset(side){return el.style[side]?parseFloat(computed[side])||0:0}if(isRtl)contentBox.x+=offset(`right`);else contentBox.x-=offset(`left`);contentBox.y-=offset(`top`);return contentBox}function connectedLocationStrategy(data,props,contentStyles){if(Array.isArray(data.target.value)||isFixedPosition(data.target.value))Object.assign(contentStyles.value,{position:`fixed`,top:0,[data.isRtl.value?`right`:`left`]:0});const{preferredAnchor,preferredOrigin}=destructComputed(()=>{const parsedAnchor=parseAnchor(props.location??`bottom`,data.isRtl.value);const parsedOrigin=props.origin===`overlap`?parsedAnchor:props.origin===`auto`?flipSide(parsedAnchor):parseAnchor(props.origin,data.isRtl.value);if(parsedAnchor.side===parsedOrigin.side&&parsedAnchor.align===flipAlign(parsedOrigin).align)return{preferredAnchor:flipCorner(parsedAnchor),preferredOrigin:flipCorner(parsedOrigin)};else return{preferredAnchor:parsedAnchor,preferredOrigin:parsedOrigin}});const[getMinWidth,getMinHeight,getMaxWidth,getMaxHeight]=[`minWidth`,`minHeight`,`maxWidth`,`maxHeight`].map(key=>{const isWidth=key.endsWith(`Width`);return()=>{const raw=props[key];if(raw==null)return Infinity;const container=data.contentEl.value?.parentElement??document.documentElement;if(isNumber(raw)||/^-?[\d.]+(?:px)?$/.test(raw.trim()))return parseFloat(raw);if(raw.endsWith(`%`)){const box=getElementBox(container);return parseFloat(raw)*(isWidth?box.width:box.height)/100}return resolveCssLength(raw,container,isWidth)}});const offset=computed(()=>{if(Array.isArray(props.offset))return props.offset;if(isString(props.offset)){const offset=props.offset.split(` `).map(parseFloat);if(offset.length<2)offset.push(0);return offset}return isNumber(props.offset)?[props.offset,0]:[0,0]});let observe=false;let lastFrame=-1;const flipped=new CircularBuffer(4);const observer=new ResizeObserver(()=>{if(!observe)return;requestAnimationFrame(newTime=>{if(newTime!==lastFrame)flipped.clear();requestAnimationFrame(newNewTime=>{lastFrame=newNewTime})});if(flipped.isFull){const values=flipped.values();if(deepEqual(values.at(-1),values.at(-3))&&!deepEqual(values.at(-1),values.at(-2)))return}const result=updateLocation();if(result)flipped.push(result.flipped)});let targetBox=new Box({x:0,y:0,width:0,height:0});watch(data.target,(newTarget,oldTarget)=>{if(oldTarget&&!Array.isArray(oldTarget))observer.unobserve(oldTarget);if(!Array.isArray(newTarget)){if(newTarget)observer.observe(newTarget)}else if(!deepEqual(newTarget,oldTarget))updateLocation()},{immediate:true});watch(data.contentEl,(newContentEl,oldContentEl)=>{if(oldContentEl)observer.unobserve(oldContentEl);if(newContentEl)observer.observe(newContentEl)},{immediate:true});onScopeDispose(()=>{observer.disconnect()});function updateLocation(){observe=false;requestAnimationFrame(()=>observe=true);if(!data.target.value||!data.contentEl.value)return;if(Array.isArray(data.target.value)||data.target.value.offsetParent||data.target.value.getClientRects().length)targetBox=getTargetBox(data.target.value);const contentBox=getIntrinsicSize(data.contentEl.value,data.isRtl.value);const scrollParents=getScrollParents(data.contentEl.value);const viewportMargin=Number(props.viewportMargin);const minWidth=getMinWidth();const minHeight=getMinHeight();const maxWidth=getMaxWidth();const maxHeight=getMaxHeight();if(!scrollParents.length){scrollParents.push(document.documentElement);if(!(data.contentEl.value.style.top&&data.contentEl.value.style.left)){contentBox.x-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-x`)||0);contentBox.y-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-y`)||0)}}const viewport=scrollParents.reduce((box,el)=>{const scrollBox=getElementBox(el);if(box)return new Box({x:Math.max(box.left,scrollBox.left),y:Math.max(box.top,scrollBox.top),width:Math.min(box.right,scrollBox.right)-Math.max(box.left,scrollBox.left),height:Math.min(box.bottom,scrollBox.bottom)-Math.max(box.top,scrollBox.top)});return scrollBox},void 0);if(props.stickToTarget){viewport.x+=Math.min(viewportMargin,targetBox.x);viewport.y+=Math.min(viewportMargin,targetBox.y);viewport.width=Math.max(viewport.width-viewportMargin*2,targetBox.x+targetBox.width-viewportMargin);viewport.height=Math.max(viewport.height-viewportMargin*2,targetBox.y+targetBox.height-viewportMargin)}else{viewport.x+=viewportMargin;viewport.y+=viewportMargin;viewport.width-=viewportMargin*2;viewport.height-=viewportMargin*2}let placement={anchor:preferredAnchor.value,origin:preferredOrigin.value};function checkOverflow(_placement){const box=new Box(contentBox);const targetPoint=anchorToPoint(_placement.anchor,targetBox);const contentPoint=anchorToPoint(_placement.origin,box);let{x,y}=getOffset(targetPoint,contentPoint);switch(_placement.anchor.side){case`top`:y-=offset.value[0];break;case`bottom`:y+=offset.value[0];break;case`left`:x-=offset.value[0];break;case`right`:x+=offset.value[0]}switch(_placement.anchor.align){case`top`:y-=offset.value[1];break;case`bottom`:y+=offset.value[1];break;case`left`:x-=offset.value[1];break;case`right`:x+=offset.value[1]}box.x+=x;box.y+=y;box.width=Math.min(box.width,maxWidth);box.height=Math.min(box.height,maxHeight);return{overflows:getOverflow(box,viewport),x,y}}let x=0;let y=0;const available={x:0,y:0};const flipped={x:false,y:false};let resets=-1;while(true){if(resets++>10){consoleError(`Infinite loop detected in connectedLocationStrategy`);break}const{x:_x,y:_y,overflows}=checkOverflow(placement);x+=_x;y+=_y;contentBox.x+=_x;contentBox.y+=_y;{const axis=getAxis(placement.anchor);const hasOverflowX=overflows.x.before||overflows.x.after;const hasOverflowY=overflows.y.before||overflows.y.after;let reset=false;[`x`,`y`].forEach(key=>{if(key===`x`&&hasOverflowX&&!flipped.x||key===`y`&&hasOverflowY&&!flipped.y){const newPlacement={anchor:{...placement.anchor},origin:{...placement.origin}};const flip=key===`x`?axis===`y`?flipAlign:flipSide:axis===`y`?flipSide:flipAlign;newPlacement.anchor=flip(newPlacement.anchor);newPlacement.origin=flip(newPlacement.origin);const{overflows:newOverflows}=checkOverflow(newPlacement);if(newOverflows[key].before<=overflows[key].before&&newOverflows[key].after<=overflows[key].after||newOverflows[key].before+newOverflows[key].after<(overflows[key].before+overflows[key].after)/2){placement=newPlacement;reset=flipped[key]=true}}});if(reset)continue}if(overflows.x.before){x+=overflows.x.before;contentBox.x+=overflows.x.before}if(overflows.x.after){x-=overflows.x.after;contentBox.x-=overflows.x.after}if(overflows.y.before){y+=overflows.y.before;contentBox.y+=overflows.y.before}if(overflows.y.after){y-=overflows.y.after;contentBox.y-=overflows.y.after}{const overflows=getOverflow(contentBox,viewport);available.x=viewport.width-overflows.x.before-overflows.x.after;available.y=viewport.height-overflows.y.before-overflows.y.after;x+=overflows.x.before;contentBox.x+=overflows.x.before;y+=overflows.y.before;contentBox.y+=overflows.y.before}break}const axis=getAxis(placement.anchor);const transformOrigin=props.origin!==`auto`&&props.origin!==`overlap`?parseAnchor(props.origin,data.isRtl.value):placement.origin;Object.assign(contentStyles.value,{"--v-overlay-anchor-origin":`${placement.anchor.side} ${placement.anchor.align}`,transformOrigin:`${transformOrigin.side} ${transformOrigin.align}`,top:convertToUnit(pixelRound(y)),left:data.isRtl.value?void 0:convertToUnit(pixelRound(x)),right:data.isRtl.value?convertToUnit(pixelRound(-x)):void 0,minWidth:convertToUnit(axis===`y`?Math.min(minWidth,targetBox.width):minWidth),maxWidth:convertToUnit(pixelCeil(clamp(available.x,minWidth===Infinity?0:minWidth,maxWidth))),maxHeight:convertToUnit(pixelCeil(clamp(available.y,minHeight===Infinity?0:minHeight,maxHeight)))});return{available,contentBox,flipped}}watch(()=>[preferredAnchor.value,preferredOrigin.value,props.origin,props.offset,props.minWidth,props.minHeight,props.maxWidth,props.maxHeight],()=>updateLocation());nextTick(()=>{const result=updateLocation();if(!result)return;const{available,contentBox}=result;if(contentBox.height>available.y)requestAnimationFrame(()=>{updateLocation();requestAnimationFrame(()=>{updateLocation()})})});return{updateLocation}}function pixelRound(val){return Math.round(val*devicePixelRatio)/devicePixelRatio}function pixelCeil(val){return Math.ceil(val*devicePixelRatio)/devicePixelRatio}var clean=true;var frames=[];function requestNewFrame(cb){if(!clean||frames.length){frames.push(cb);run()}else{clean=false;cb();run()}}var raf=-1;function run(){cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>{const frame=frames.shift();if(frame)frame();if(frames.length)run();else clean=true})}var scrollStrategies={none:null,close:closeScrollStrategy,block:blockScrollStrategy,reposition:repositionScrollStrategy};var makeScrollStrategyProps=propsFactory({scrollStrategy:{type:[String,Function],default:`block`,validator:val=>isFunction(val)||val in scrollStrategies}},`VOverlay-scroll-strategies`);function useScrollStrategies(props,data){if(!IN_BROWSER)return;let scope;watchEffect(async()=>{scope?.stop();if(!(data.isActive.value&&props.scrollStrategy))return;scope=effectScope();await new Promise(resolve=>setTimeout(resolve));scope.active&&scope.run(()=>{if(isFunction(props.scrollStrategy))props.scrollStrategy(data,props,scope);else scrollStrategies[props.scrollStrategy]?.(data,props,scope)})});onScopeDispose(()=>{scope?.stop()})}function closeScrollStrategy(data){function onScroll(e){data.isActive.value=false}bindScroll(getTargetEl(data.target.value,data.contentEl.value),onScroll)}function blockScrollStrategy(data,props){const offsetParent=data.root.value?.offsetParent;const target=getTargetEl(data.target.value,data.contentEl.value);const scrollElements=[...new Set([...getScrollParents(target,props.contained?offsetParent:void 0),...getScrollParents(data.contentEl.value,props.contained?offsetParent:void 0)])].filter(el=>!el.classList.contains(`v-overlay-scroll-blocked`));const scrollbarWidth=window.innerWidth-document.documentElement.offsetWidth;const scrollableParent=(el=>hasScrollbar(el)&&el)(offsetParent||document.documentElement);if(scrollableParent)data.root.value.classList.add(`v-overlay--scroll-blocked`);scrollElements.forEach((el,i)=>{el.style.setProperty(`--v-body-scroll-x`,convertToUnit(-el.scrollLeft));el.style.setProperty(`--v-body-scroll-y`,convertToUnit(-el.scrollTop));if(el!==document.documentElement||getComputedStyle(el).overflowY!==`scroll`)el.style.setProperty(`--v-scrollbar-offset`,convertToUnit(scrollbarWidth));el.classList.add(`v-overlay-scroll-blocked`)});onScopeDispose(()=>{scrollElements.forEach((el,i)=>{const x=parseFloat(el.style.getPropertyValue(`--v-body-scroll-x`));const y=parseFloat(el.style.getPropertyValue(`--v-body-scroll-y`));const scrollBehavior=el.style.scrollBehavior;el.style.scrollBehavior=`auto`;el.style.removeProperty(`--v-body-scroll-x`);el.style.removeProperty(`--v-body-scroll-y`);el.style.removeProperty(`--v-scrollbar-offset`);el.classList.remove(`v-overlay-scroll-blocked`);el.scrollLeft=-x;el.scrollTop=-y;el.style.scrollBehavior=scrollBehavior});if(scrollableParent)data.root.value.classList.remove(`v-overlay--scroll-blocked`)})}function repositionScrollStrategy(data,props,scope){let slow=false;let raf=-1;let ric=-1;function update(e){requestNewFrame(()=>{const start=performance.now();data.updateLocation.value?.(e);slow=(performance.now()-start)/(1e3/60)>2})}ric=(typeof requestIdleCallback===`undefined`?cb=>cb():requestIdleCallback)(()=>{scope.run(()=>{bindScroll(getTargetEl(data.target.value,data.contentEl.value),e=>{if(slow){cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>{raf=requestAnimationFrame(()=>{update(e)})})}else update(e)})})});onScopeDispose(()=>{typeof cancelIdleCallback!==`undefined`&&cancelIdleCallback(ric);cancelAnimationFrame(raf)})}function getTargetEl(target,contentEl){return Array.isArray(target)?document.elementsFromPoint(...target).find(el=>!contentEl?.contains(el)):target??contentEl}function bindScroll(el,onScroll){const scrollElements=[document,...getScrollParents(el)];scrollElements.forEach(el=>{el.addEventListener(`scroll`,onScroll,{passive:true})});onScopeDispose(()=>{scrollElements.forEach(el=>{el.removeEventListener(`scroll`,onScroll)})})}var makeDelayProps=propsFactory({closeDelay:[Number,String],openDelay:[Number,String]},`delay`);function useDelay(props,cb){let clearDelay=()=>{};function runDelay(isOpening,options){clearDelay?.();const delay=isOpening?props.openDelay:props.closeDelay;const normalizedDelay=Math.max(options?.minDelay??0,Number(delay??0));return new Promise(resolve=>{clearDelay=defer(normalizedDelay,()=>{cb?.(isOpening);resolve(isOpening)})})}function runOpenDelay(){return runDelay(true)}function runCloseDelay(options){return runDelay(false,options)}return{clearDelay,runOpenDelay,runCloseDelay}}var makeActivatorProps=propsFactory({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...makeDelayProps()},`VOverlay-activator`);function useActivator(props,{isActive,isTop,contentEl,isSubmenu=false}){const vm=getCurrentInstance(`useActivator`);const activatorEl=ref();const parentMenu=inject(VMenuSymbol,null);let isHovered=false;let isFocused=false;let firstEnter=true;const openedByHover=ref(false);let delayCallbackFiredOpen=false;const shouldCloseOnLeave=()=>!isSubmenu||(parentMenu?.rootOpenedByHover?.()??openedByHover.value);const openOnFocus=computed(()=>props.openOnFocus||props.openOnFocus==null&&props.openOnHover);const openOnClick=computed(()=>props.openOnClick||props.openOnClick==null&&!props.openOnHover&&!openOnFocus.value);const{runOpenDelay,runCloseDelay}=useDelay(props,value=>{if(value===(props.openOnHover&&isHovered||openOnFocus.value&&isFocused)&&!(props.openOnHover&&isActive.value&&!isTop.value)){if(isActive.value!==value){firstEnter=true;if(value){delayCallbackFiredOpen=true;openedByHover.value=isHovered&&props.openOnHover}}isActive.value=value}});let reopenLock=false;watch(isActive,v=>{if(!v){reopenLock=true;setTimeout(()=>reopenLock=false,50);openedByHover.value=false;delayCallbackFiredOpen=false;return}if(!delayCallbackFiredOpen)openedByHover.value=false;delayCallbackFiredOpen=false});const cursorTarget=ref();const availableEvents={onClick:e=>{if(reopenLock&&!isActive.value)return;e.stopPropagation();activatorEl.value=e.currentTarget||e.target;if(!isActive.value)cursorTarget.value=[e.clientX,e.clientY];isActive.value=!isActive.value},onMouseenter:e=>{isHovered=true;activatorEl.value=e.currentTarget||e.target;if(props.target===`cursor`)cursorTarget.value=[e.clientX,e.clientY];runOpenDelay()},onMousemove:e=>{cursorTarget.value=[e.clientX,e.clientY]},onMouseleave:e=>{isHovered=false;if(props.target===`cursor`)isFocused=false;if(shouldCloseOnLeave())runCloseDelay()},onFocus:e=>{if(reopenLock)return;if(matchesSelector(e.target,`:focus-visible`)===false)return;isFocused=true;e.stopPropagation();activatorEl.value=e.currentTarget||e.target;runOpenDelay()},onBlur:e=>{const next=e.relatedTarget;if(!next||contentEl.value?.contains(next))return;isFocused=false;e.stopPropagation();runCloseDelay({minDelay:1})}};const activatorEvents=computed(()=>{const events={};if(openOnClick.value)events.onClick=availableEvents.onClick;if(props.openOnHover){events.onMouseenter=availableEvents.onMouseenter;events.onMouseleave=availableEvents.onMouseleave;if(props.target===`cursor`&&!openOnClick.value)events.onMousemove=availableEvents.onMousemove}if(openOnFocus.value){events.onFocus=availableEvents.onFocus;events.onBlur=availableEvents.onBlur}return events});const contentEvents=computed(()=>{const events={};if(props.openOnHover){events.onMouseenter=()=>{isHovered=true;runOpenDelay()};events.onMouseleave=()=>{isHovered=false;if(shouldCloseOnLeave())runCloseDelay()}}if(openOnFocus.value){events.onFocusin=e=>{if(!e.target.matches(`:focus-visible`))return;isFocused=true;runOpenDelay()};events.onFocusout=e=>{const next=e.relatedTarget;if(!next||contentEl.value?.contains(next))return;isFocused=false;runCloseDelay({minDelay:1})}}if(props.closeOnContentClick){const menu=inject(VMenuSymbol,null);events.onClick=()=>{isActive.value=false;menu?.closeParents()}}return events});const scrimEvents=computed(()=>{const events={};if(props.openOnHover){events.onMouseenter=()=>{if(firstEnter){isHovered=true;firstEnter=false;runOpenDelay()}};events.onMouseleave=()=>{isHovered=false;if(shouldCloseOnLeave())runCloseDelay()}}return events});watch(isTop,val=>{if(val&&shouldCloseOnLeave()&&(props.openOnHover&&!isHovered&&(!openOnFocus.value||!isFocused)||openOnFocus.value&&!isFocused&&(!props.openOnHover||!isHovered))&&!contentEl.value?.contains(getActiveElement()))runCloseDelay()});watch(isActive,val=>{if(!val)setTimeout(()=>{cursorTarget.value=void 0})},{flush:`post`});const activatorRef=templateRef();watchEffect(()=>{if(!activatorRef.value)return;nextTick(()=>{activatorEl.value=activatorRef.el})});const targetRef=templateRef();const target=computed(()=>{if(props.target===`cursor`&&cursorTarget.value)return cursorTarget.value;if(targetRef.value)return targetRef.el;return getTarget(props.target,vm)||activatorEl.value});const targetEl=computed(()=>{return Array.isArray(target.value)?void 0:target.value});let scope;watch(()=>!!props.activator,val=>{if(val&&IN_BROWSER){scope=effectScope();scope.run(()=>{_useActivator(props,vm,{activatorEl,activatorEvents})})}else if(scope)scope.stop()},{flush:`post`,immediate:true});onScopeDispose(()=>{scope?.stop()});return{activatorEl,activatorRef,target,targetEl,targetRef,activatorEvents,contentEvents,scrimEvents,openedByHover}}function _useActivator(props,vm,{activatorEl,activatorEvents}){watch(()=>props.activator,(val,oldVal)=>{if(oldVal&&val!==oldVal){const activator=getActivator(oldVal);activator&&unbindActivatorProps(activator)}if(val)nextTick(()=>bindActivatorProps())},{immediate:true});watch(()=>props.activatorProps,()=>{bindActivatorProps()});onScopeDispose(()=>{unbindActivatorProps()});function bindActivatorProps(el=getActivator(),_props=props.activatorProps){if(!el)return;bindProps(el,mergeProps(activatorEvents.value,_props))}function unbindActivatorProps(el=getActivator(),_props=props.activatorProps){if(!el)return;unbindProps(el,mergeProps(activatorEvents.value,_props))}function getActivator(selector=props.activator){const activator=getTarget(selector,vm);activatorEl.value=activator?.nodeType===Node.ELEMENT_NODE?activator:void 0;return activatorEl.value}}function getTarget(selector,vm){if(!selector)return;let target;if(selector===`parent`){let el=vm?.proxy?.$el?.parentNode;while(el?.hasAttribute(`data-no-activator`))el=el.parentNode;target=el}else if(isString(selector))target=document.querySelector(selector);else if(`$el`in selector)target=selector.$el;else target=selector;return target}var makeFocusTrapProps=propsFactory({retainFocus:Boolean,captureFocus:Boolean,disableInitialFocus:Boolean},`focusTrap`);var registry=new Map;var subscribers=0;function lastActiveTrap(){let el;for(const{isActive,contentEl}of registry.values())if(isActive.value&&contentEl.value)el=contentEl.value;return el}function onKeydown(e){const activeElement=getActiveElement();if(e.key!==`Tab`||!activeElement)return;const parentTraps=Array.from(registry.values()).filter(({isActive,contentEl})=>isActive.value&&contentEl.value?.contains(activeElement)).map(x=>x.contentEl.value);let closestTrap;let currentNode=activeElement;while(currentNode){if(parentTraps.includes(currentNode)){closestTrap=currentNode;break}currentNode=currentNode.parentElement}if(!closestTrap){const trapEl=lastActiveTrap();if(!trapEl)return;const focusable=focusableChildren(trapEl).filter(x=>x.tabIndex>=0);e.preventDefault();if(!focusable.length)trapEl.focus({preventScroll:true});else if(e.shiftKey)focusable[focusable.length-1].focus();else focusable[0].focus();return}const focusable=focusableChildren(closestTrap).filter(x=>x.tabIndex>=0);if(!focusable.length)return;if(focusable.length===1&&focusable[0].classList.contains(`v-list`)&&focusable[0].contains(activeElement)){e.preventDefault();return}const firstElement=focusable[0];const lastElement=focusable[focusable.length-1];const atFirst=activeElement===firstElement||activeElement===closestTrap||firstElement.classList.contains(`v-list`)&&firstElement.contains(activeElement);const atLast=activeElement===lastElement||lastElement.classList.contains(`v-list`)&&lastElement.contains(activeElement);if(e.shiftKey&&atFirst){e.preventDefault();lastElement.focus()}if(!e.shiftKey&&atLast){e.preventDefault();firstElement.focus()}}function useFocusTrap(props,{isActive,localTop,contentEl}){const trapId=Symbol(`trap`);let focusTrapSuppressed=false;let focusTrapSuppressionTimeout=-1;async function onPointerdown(){focusTrapSuppressed=true;focusTrapSuppressionTimeout=window.setTimeout(()=>{focusTrapSuppressed=false},100)}async function captureOnFocus(e){const before=e.relatedTarget;const after=e.target;document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`keydown`,captureOnKeydown);await new Promise(resolve=>requestAnimationFrame(resolve));if(isActive.value&&!focusTrapSuppressed&&before!==after&&contentEl.value&&toValue(localTop)&&![document,contentEl.value].includes(after)&&!contentEl.value.contains(after))focusableChildren(contentEl.value)[0]?.focus()}function captureOnKeydown(e){if(e.key!==`Tab`)return;document.removeEventListener(`keydown`,captureOnKeydown);if(isActive.value&&contentEl.value&&e.target&&!contentEl.value.contains(e.target)){const allFocusableElements=focusableChildren(document.documentElement);if(e.shiftKey&&e.target===allFocusableElements.at(0)||!e.shiftKey&&e.target===allFocusableElements.at(-1)){const focusable=focusableChildren(contentEl.value);if(focusable.length>0){e.preventDefault();focusable[0].focus()}}}}const shouldCapture=toRef(()=>isActive.value&&props.captureFocus&&!props.disableInitialFocus);if(IN_BROWSER){watch(()=>props.retainFocus,val=>{if(val)registry.set(trapId,{isActive,contentEl});else registry.delete(trapId)},{immediate:true});watch(shouldCapture,val=>{if(val){document.addEventListener(`pointerdown`,onPointerdown);document.addEventListener(`focusin`,captureOnFocus,{once:true});document.addEventListener(`keydown`,captureOnKeydown)}else{document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`focusin`,captureOnFocus);document.removeEventListener(`keydown`,captureOnKeydown)}},{immediate:true});if(subscribers++<1)document.addEventListener(`keydown`,onKeydown)}onScopeDispose(()=>{registry.delete(trapId);if(!IN_BROWSER)return;clearTimeout(focusTrapSuppressionTimeout);document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`focusin`,captureOnFocus);document.removeEventListener(`keydown`,captureOnKeydown);if(--subscribers<1)document.removeEventListener(`keydown`,onKeydown)})}function useHydration(){if(!IN_BROWSER)return shallowRef(false);const{ssr}=useDisplay();if(ssr){const isMounted=shallowRef(false);onMounted(()=>{isMounted.value=true});return isMounted}else return shallowRef(true)}function useScopeId(){const scopeId=getCurrentInstance(`useScopeId`).vnode.scopeId;return{scopeId:scopeId?{[scopeId]:``}:void 0}}var StackSymbol=Symbol.for(`vuetify:stack`);var globalStack=reactive([]);function useStack(isActive,zIndex,disableGlobalStack){const vm=getCurrentInstance(`useStack`);const createStackEntry=!disableGlobalStack;const parent=inject(StackSymbol,void 0);const stack=reactive({activeChildren:new Set});provide(StackSymbol,stack);const _zIndex=shallowRef(Number(toValue(zIndex)));useToggleScope(isActive,()=>{const lastZIndex=globalStack.at(-1)?.[1];_zIndex.value=lastZIndex?lastZIndex+10:Number(toValue(zIndex));if(createStackEntry)globalStack.push([vm.uid,_zIndex.value]);parent?.activeChildren.add(vm.uid);onScopeDispose(()=>{if(createStackEntry){const idx=toRaw(globalStack).findIndex(v=>v[0]===vm.uid);globalStack.splice(idx,1)}parent?.activeChildren.delete(vm.uid)})});const globalTop=shallowRef(true);if(createStackEntry)watchEffect(()=>{const _isTop=globalStack.at(-1)?.[0]===vm.uid;setTimeout(()=>globalTop.value=_isTop)});const localTop=toRef(()=>!stack.activeChildren.size);return{globalTop:readonly(globalTop),localTop,stackStyles:toRef(()=>({zIndex:_zIndex.value}))}}function useTeleport(target){return{teleportTarget:computed(()=>{const _target=target();if(_target===true||!IN_BROWSER)return void 0;const targetElement=_target===false?document.body:isString(_target)?document.querySelector(_target):_target;if(!targetElement){warn(`Unable to locate target ${_target}`);return}let container=[...targetElement.children].find(el=>el.matches(`.v-overlay-container`));if(!container){container=document.createElement(`div`);container.className=`v-overlay-container`;targetElement.appendChild(container)}return container})}}function defaultConditional(){return true}function checkEvent(e,el,binding,ignoreActive=false){if(!e||!ignoreActive&&checkIsActive(e,binding)===false)return false;const root=attachedRoot(el);if(typeof ShadowRoot!==`undefined`&&root instanceof ShadowRoot&&root.host===e.target)return false;const value=binding.value;const elements=((isFunction(value)?void 0:value.include)||(()=>[]))();elements.push(el);return!elements.some(el=>el?.contains(e.target))}function checkIsActive(e,binding){const value=binding.value;return((isFunction(value)?void 0:value.closeConditional)||defaultConditional)(e)}function directive(e,el,binding){const handler=isFunction(binding.value)?binding.value:binding.value.handler;e.shadowTarget=e.target;el._clickOutside.lastMousedownWasOutside&&checkEvent(e,el,binding)&&setTimeout(()=>{checkIsActive(e,binding)&&handler&&handler(e)},0)}function handleShadow(el,callback){const root=attachedRoot(el);callback(document);if(typeof ShadowRoot!==`undefined`&&root instanceof ShadowRoot)callback(root)}var ClickOutside={mounted(el,binding){const onClick=e=>directive(e,el,binding);const onMousedown=e=>{el._clickOutside.lastMousedownWasOutside=checkEvent(e,el,binding,true)};handleShadow(el,app=>{app.addEventListener(`click`,onClick,true);app.addEventListener(`mousedown`,onMousedown,true)});if(!el._clickOutside)el._clickOutside={lastMousedownWasOutside:false};el._clickOutside[binding.instance.$.uid]={onClick,onMousedown}},beforeUnmount(el,binding){if(!el._clickOutside)return;handleShadow(el,app=>{if(!app||!el._clickOutside?.[binding.instance.$.uid])return;const{onClick,onMousedown}=el._clickOutside[binding.instance.$.uid];app.removeEventListener(`click`,onClick,true);app.removeEventListener(`mousedown`,onMousedown,true)});delete el._clickOutside[binding.instance.$.uid]}};var overlayActivators=new WeakMap;function Scrim(props){const{modelValue,color,...rest}=props;return createVNode(Transition,{"name":`fade-transition`,"appear":true},{default:()=>[props.modelValue&&createBaseVNode(`div`,mergeProps({"class":[`v-overlay__scrim`,props.color.backgroundColorClasses.value],"style":props.color.backgroundColorStyles.value},rest),null)]})}var makeVOverlayProps=propsFactory({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:true},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:true},zIndex:{type:[Number,String],default:2e3},...makeActivatorProps(),...makeComponentProps(),...makeDimensionProps(),...makeLazyProps(),...makeLocationStrategyProps(),...makeScrollStrategyProps(),...makeFocusTrapProps(),...makeThemeProps(),...makeTransitionProps()},`VOverlay`);var VOverlay=genericComponent()({name:`VOverlay`,directives:{vClickOutside:ClickOutside},inheritAttrs:false,props:{_disableGlobalStack:Boolean,_submenu:Boolean,...omit(makeVOverlayProps(),[`disableInitialFocus`])},emits:{"click:outside":e=>true,"update:modelValue":value=>true,keydown:e=>true,afterEnter:()=>true,afterLeave:()=>true},setup(props,{slots,attrs,emit}){const vm=getCurrentInstance(`VOverlay`);const root=ref();const scrimEl=ref();const contentEl=ref();const model=useProxiedModel(props,`modelValue`);const isActive=computed({get:()=>model.value,set:v=>{if(!(v&&props.disabled))model.value=v}});const{themeClasses}=provideTheme(props);const{rtlClasses,isRtl}=useRtl();const{hasContent,onAfterLeave:_onAfterLeave}=useLazy(props,isActive);const scrimColor=useBackgroundColor(()=>{return isString(props.scrim)?props.scrim:null});const{globalTop,localTop,stackStyles}=useStack(isActive,()=>props.zIndex,props._disableGlobalStack);const{activatorEl,activatorRef,target,targetEl,targetRef,activatorEvents,contentEvents,scrimEvents,openedByHover}=useActivator(props,{isActive,isTop:localTop,contentEl,isSubmenu:props._submenu});const{teleportTarget}=useTeleport(()=>{const target=props.attach||props.contained;if(target)return target;const rootNode=activatorEl?.value?.getRootNode()||vm.proxy?.$el?.getRootNode();if(rootNode instanceof ShadowRoot)return rootNode;return false});const{dimensionStyles}=useDimension(props);const isMounted=useHydration();const staticLocationClasses=computed(()=>{return props.locationStrategy===`static`?getStaticLocationClasses(props.location):void 0});const{scopeId}=useScopeId();watch(()=>props.disabled,v=>{if(v)isActive.value=false});const{contentStyles,updateLocation}=useLocationStrategies(props,{isRtl,contentEl,target,isActive});useScrollStrategies(props,{root,contentEl,targetEl,target,isActive,updateLocation});const menu=inject(VMenuSymbol,null);if(vm.parent?.type?.name!==`VMenu`)provide(VMenuSymbol,null);function onClickOutside(e){emit(`click:outside`,e);if(!props.persistent)isActive.value=false;else animateClick();if(!props.scrim)menu?.closeParents(e)}function closeConditional(e){return isActive.value&&localTop.value&&(!props.scrim||e.target===scrimEl.value||e instanceof MouseEvent&&e.shadowTarget===scrimEl.value)}useFocusTrap(props,{isActive,localTop,contentEl});let openedWithActivatorFocus=false;watchEffect(()=>{if(!contentEl.value)return;if(activatorEl.value)overlayActivators.set(contentEl.value,activatorEl.value);else overlayActivators.delete(contentEl.value)});function ownsFocus(activeElement){let current=activeElement;const visited=new Set;while(current){const el=current.closest(`.v-overlay__content`);if(!el||visited.has(el))return false;if(el===contentEl.value)return true;visited.add(el);current=overlayActivators.get(el)??null}return false}function returnFocusToActivator(){const el=activatorEl.value;if(!el||!el.isConnected)return;if(el.closest(`.v-overlay__content`))return;if(contentEl.value?._clickOutside?.lastMousedownWasOutside)return;const activeEl=getActiveElement();if(!((!activeEl||activeEl===document.body)&&openedWithActivatorFocus||activeEl===el||el.contains(activeEl)||ownsFocus(activeEl)))return;const parent=el.parentElement;const focusableInParent=parent?focusableChildren(parent):[];let target;if(focusableInParent.includes(el))target=el;else{const focusableWithin=focusableChildren(el);target=focusableWithin.find(x=>x.tagName===`INPUT`||x.tagName===`TEXTAREA`)??focusableWithin[0]}target?.focus({preventScroll:true})}watch(isActive,val=>{if(val){const activeEl=getActiveElement();const el=activatorEl.value;openedWithActivatorFocus=!!el&&(activeEl===el||el.contains(activeEl));if(contentEl.value)contentEl.value.inert=false;if(contentEl.value?._clickOutside)contentEl.value._clickOutside.lastMousedownWasOutside=false}else{if(contentEl.value)contentEl.value.inert=true;returnFocusToActivator()}},{flush:`post`});IN_BROWSER&&watch(isActive,val=>{if(val)window.addEventListener(`keydown`,onKeydown);else window.removeEventListener(`keydown`,onKeydown)},{immediate:true});onBeforeUnmount(()=>{if(!IN_BROWSER)return;window.removeEventListener(`keydown`,onKeydown)});function onKeydown(e){if(e.key===`Escape`&&globalTop.value){if(!contentEl.value?.contains(getActiveElement()))emit(`keydown`,e);if(!props.persistent){isActive.value=false;if(contentEl.value?.contains(getActiveElement()))activatorEl.value?.focus()}else animateClick()}}function onKeydownSelf(e){if(e.key===`Escape`&&!globalTop.value)return;emit(`keydown`,e)}const router=useRouter();useToggleScope(()=>props.closeOnBack,()=>{useBackButton(router,()=>{if(globalTop.value&&isActive.value){if(!props.persistent)isActive.value=false;else animateClick();return false}})});const top=ref();watch(()=>isActive.value&&(props.absolute||props.contained)&&teleportTarget.value==null,val=>{if(val){const scrollParent=getScrollParent(root.value);if(scrollParent&&scrollParent!==document.scrollingElement)top.value=scrollParent.scrollTop}});function animateClick(){if(props.noClickAnimation)return;contentEl.value&&animate(contentEl.value,[{transformOrigin:`center`},{transform:`scale(1.03)`},{transformOrigin:`center`}],{duration:150,easing:`cubic-bezier(0.4, 0, 0.2, 1)`})}function onAfterEnter(){emit(`afterEnter`)}function onAfterLeave(){_onAfterLeave();emit(`afterLeave`)}useRender(()=>createBaseVNode(Fragment,null,[slots.activator?.({isActive:isActive.value,targetRef,props:mergeProps({ref:activatorRef},activatorEvents.value,props.activatorProps)}),isMounted.value&&hasContent.value&&createVNode(Teleport,{"disabled":!teleportTarget.value,"to":teleportTarget.value},{default:()=>[createBaseVNode(`div`,mergeProps({"class":[`v-overlay`,{"v-overlay--absolute":props.absolute||props.contained,"v-overlay--active":isActive.value,"v-overlay--contained":props.contained},staticLocationClasses.value,themeClasses.value,rtlClasses.value,props.class],"style":[stackStyles.value,{"--v-overlay-opacity":props.opacity,top:convertToUnit(top.value)},props.style],"ref":root,"onKeydown":onKeydownSelf},scopeId,attrs),[createVNode(Scrim,mergeProps({"color":scrimColor,"modelValue":isActive.value&&!!props.scrim,"ref":scrimEl},scrimEvents.value),null),createVNode(MaybeTransition,{"appear":true,"persisted":true,"transition":props.transition,"target":target.value,"onAfterEnter":onAfterEnter,"onAfterLeave":onAfterLeave},{default:()=>[withDirectives(createBaseVNode(`div`,mergeProps({"ref":contentEl,"class":[`v-overlay__content`,props.contentClass],"style":[dimensionStyles.value,contentStyles.value]},contentEvents.value,props.contentProps),[slots.default?.({isActive})]),[[vShow,isActive.value],[ClickOutside,{handler:onClickOutside,closeConditional,include:()=>{if(!isActive.value)return[];return[activatorEl.value,...Array.from(document.querySelectorAll(`.v-overlay__content`)).filter(ownsFocus)]}}]])]})])]})]));return{activatorEl,scrimEl,target,animateClick,contentEl,rootEl:root,globalTop,localTop,updateLocation,openedByHover}}});export{useFocusTrap as a,VMenuSymbol as c,getScrollParent as d,animate as f,makeFocusTrapProps as i,forwardRefs as l,makeVOverlayProps as n,makeDelayProps as o,nullifyTransforms as p,useScopeId as r,useDelay as s,VOverlay as t,VDialogTransition as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Q as useProxiedModel,Vt as filterInputAttrs,gt as propsFactory,it as useRender,nn as omit,st as genericComponent,tt as IconValue}from"./ripple-BVltMmyV.js";import{D as createVNode,Pt as useId,_ as createBaseVNode,et as mergeProps,g as computed,o as Fragment,vn as ref}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as forwardRefs}from"./VOverlay-CeMZurIN.js";import{S as VLabel,b as VSelectionControlGroup,l as VInput,u as makeVInputProps,v as VSelectionControl,x as makeSelectionControlGroupProps,y as makeVSelectionControlProps}from"./VTextField-BR2eZeFT.js";var makeVRadioProps=propsFactory({...omit(makeVSelectionControlProps({falseIcon:`$radioOff`,trueIcon:`$radioOn`}),[`indeterminate`,`indeterminateIcon`])},`VRadio`);var VRadio=genericComponent()({name:`VRadio`,props:makeVRadioProps(),emits:{"update:modelValue":value=>true},setup(props,{slots}){const model=useProxiedModel(props,`modelValue`);useRender(()=>{const controlProps=omit(VSelectionControl.filterProps(props),[`modelValue`]);return createVNode(VSelectionControl,mergeProps(controlProps,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"class":[`v-radio`,props.class],"style":props.style,"type":`radio`}),slots)});return{}}});var makeVRadioGroupProps=propsFactory({height:{type:[Number,String],default:`auto`},...omit(makeVInputProps(),[`direction`,`glow`]),...omit(makeSelectionControlGroupProps(),[`multiple`]),trueIcon:{type:IconValue,default:`$radioOn`},falseIcon:{type:IconValue,default:`$radioOff`},type:{type:String,default:`radio`}},`VRadioGroup`);var VRadioGroup=genericComponent()({name:`VRadioGroup`,inheritAttrs:false,props:makeVRadioGroupProps(),emits:{"update:modelValue":value=>true},setup(props,{attrs,slots}){const uid=useId();const id=computed(()=>props.id||`radio-group-${uid}`);const model=useProxiedModel(props,`modelValue`);const inputRef=ref();useRender(()=>{const[rootAttrs,controlAttrs]=filterInputAttrs(attrs);const inputProps=VInput.filterProps(props);const controlProps=VSelectionControl.filterProps(props);const label=slots.label?slots.label({label:props.label,props:{for:id.value}}):props.label;return createVNode(VInput,mergeProps({"ref":inputRef,"class":[`v-radio-group`,props.class],"style":props.style},rootAttrs,inputProps,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"id":id.value}),{...slots,default:({id,messagesId,isDisabled,isReadonly})=>createBaseVNode(Fragment,null,[label&&createVNode(VLabel,{"id":id.value},{default:()=>[label]}),createVNode(VSelectionControlGroup,mergeProps(controlProps,{"id":id.value,"aria-describedby":messagesId.value,"defaultsTarget":`VRadio`,"trueIcon":props.trueIcon,"falseIcon":props.falseIcon,"type":props.type,"disabled":isDisabled.value,"readonly":isReadonly.value,"aria-labelledby":label?id.value:void 0,"multiple":false},controlAttrs,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event}),slots)])})});return forwardRefs({},inputRef)}});export{VRadio as n,VRadioGroup as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Pt as convertToUnit,Qt as keys,Rn as deprecate,T as makeDensityProps,V as makeTagProps,gt as propsFactory,ht as makeComponentProps,kn as isString,st as genericComponent}from"./ripple-BVltMmyV.js";import{B as h,Mn as capitalize,g as computed}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{p as breakpoints}from"./VAvatar-DPzqDH4r.js";var breakpointProps=(()=>{return breakpoints.reduce((props,val)=>{props[val]={type:[Boolean,String,Number],default:false};return props},{})})();var offsetProps=(()=>{return breakpoints.reduce((props,val)=>{const offsetKey=`offset`+capitalize(val);props[offsetKey]={type:[String,Number],default:null};return props},{})})();var propMap$1={col:keys(breakpointProps),offset:keys(offsetProps),order:[`order`,`orderSm`,`orderMd`,`orderLg`,`orderXl`,`orderXxl`]};function parseCols(val){if(isString(val)&&val.includes(`/`)){const[cols,size]=val.split(`/`);return{cols:Number(cols),size:Number(size)}}return{cols:val}}function parseBreakpoint(type,prop,val){if(val==null||val===false)return{};const{cols,size}=parseCols(val);const breakpoint=prop.replace(type,``).toLowerCase();if(type===`offset`)return{className:`v-col--offset-${breakpoint}-${cols}`,variables:[{[`--v-col-offset-base-${breakpoint}`]:size}]};else if(type===`order`)return{className:`order-${breakpoint}-${cols}`};return{className:cols===``||cols===true?`v-col--${breakpoint}`:`v-col--cols-${breakpoint}-${cols}`,variables:[{[`--v-col-size-base-${breakpoint}`]:size}]}}var ALIGN_SELF_VALUES=[`auto`,`start`,`end`,`center`,`baseline`,`stretch`];var alignSelfValidator=str=>ALIGN_SELF_VALUES.includes(str);var makeVColProps=propsFactory({cols:{type:[Boolean,String,Number],default:false},...breakpointProps,offset:{type:[String,Number],default:null},...offsetProps,order:{type:[String,Number],default:null},orderSm:{type:[String,Number],default:null},orderMd:{type:[String,Number],default:null},orderLg:{type:[String,Number],default:null},orderXl:{type:[String,Number],default:null},orderXxl:{type:[String,Number],default:null},alignSelf:{type:String,default:null,validator:alignSelfValidator},...makeComponentProps(),...makeTagProps()},`VCol`);var VCol=genericComponent()({name:`VCol`,props:makeVColProps(),setup(props,{slots}){const sizeBaseOverride=computed(()=>parseCols(props.cols).size);const offsetBaseOverride=computed(()=>parseCols(props.offset).size);const responsive=computed(()=>{const classList=[`v-col`];const variablesList=[];let type;for(type in propMap$1)propMap$1[type].forEach(prop=>{const value=props[prop];const{className,variables}=parseBreakpoint(type,prop,value);if(className)classList.push(className);if(variables)variablesList.push(...variables)});const{cols}=parseCols(props.cols);const{cols:offset}=parseCols(props.offset);classList.push({[`v-col--cols-${cols}`]:cols,[`v-col--offset-${offset}`]:offset,[`order-${props.order}`]:props.order,[`align-self-${props.alignSelf}`]:props.alignSelf});return{classes:classList,variables:variablesList}});return()=>h(props.tag,{class:[responsive.value.classes,props.class],style:[{"--v-col-size-base":sizeBaseOverride.value},{"--v-col-offset-base":offsetBaseOverride.value},responsive.value.variables,props.style]},slots.default?.())}});var ALIGNMENT=[`start`,`end`,`center`];var SPACE=[`space-between`,`space-around`,`space-evenly`];var ALIGN_VALUES=[...ALIGNMENT,`baseline`,`stretch`];var alignValidator=str=>ALIGN_VALUES.includes(str);var JUSTIFY_VALUES=[...ALIGNMENT,...SPACE];var justifyValidator=str=>JUSTIFY_VALUES.includes(str);var ALIGN_CONTENT_VALUES=[...ALIGNMENT,...SPACE,`stretch`];var alignContentValidator=str=>ALIGN_CONTENT_VALUES.includes(str);var propMap={align:[`align`,`alignSm`,`alignMd`,`alignLg`,`alignXl`,`alignXxl`],justify:[`justify`,`justifySm`,`justifyMd`,`justifyLg`,`justifyXl`,`justifyXxl`],alignContent:[`alignContent`,`alignContentSm`,`alignContentMd`,`alignContentLg`,`alignContentXl`,`alignContentXxl`]};var classMap={align:`align`,justify:`justify`,alignContent:`align-content`};function breakpointClass(type,prop,val){let className=classMap[type];if(val==null)return;if(prop){const breakpoint=prop.replace(type,``);className+=`-${breakpoint}`}className+=`-${val}`;return className.toLowerCase()}var makeVRowProps=propsFactory({dense:Boolean,align:{type:String,default:null,validator:alignValidator},alignSm:{type:String,default:null,validator:alignValidator},alignMd:{type:String,default:null,validator:alignValidator},alignLg:{type:String,default:null,validator:alignValidator},alignXl:{type:String,default:null,validator:alignValidator},alignXxl:{type:String,default:null,validator:alignValidator},justify:{type:String,default:null,validator:justifyValidator},justifySm:{type:String,default:null,validator:justifyValidator},justifyMd:{type:String,default:null,validator:justifyValidator},justifyLg:{type:String,default:null,validator:justifyValidator},justifyXl:{type:String,default:null,validator:justifyValidator},justifyXxl:{type:String,default:null,validator:justifyValidator},alignContent:{type:String,default:null,validator:alignContentValidator},alignContentSm:{type:String,default:null,validator:alignContentValidator},alignContentMd:{type:String,default:null,validator:alignContentValidator},alignContentLg:{type:String,default:null,validator:alignContentValidator},alignContentXl:{type:String,default:null,validator:alignContentValidator},alignContentXxl:{type:String,default:null,validator:alignContentValidator},noGutters:Boolean,gap:[Number,String,Array],size:[Number,String],...makeComponentProps(),...makeDensityProps(),...makeTagProps()},`VRow`);var VRow=genericComponent()({name:`VRow`,props:makeVRowProps(),setup(props,{slots}){if(props.dense)deprecate(`dense`,`density="compact"`);const classes=computed(()=>{const classList=[];let type;for(type in propMap)propMap[type].forEach(prop=>{const value=props[prop];const className=breakpointClass(type,prop,value);if(className)classList.push(className)});classList.push({"v-row--no-gutters":props.noGutters,"v-row--density-default":props.density==="default"&&!props.noGutters&&!props.dense,"v-row--density-compact":props.density===`compact`||props.dense,"v-row--density-comfortable":props.density===`comfortable`,[`align-${props.align}`]:props.align,[`justify-${props.justify}`]:props.justify,[`align-content-${props.alignContent}`]:props.alignContent});return classList});const horizontalGap=computed(()=>{return Array.isArray(props.gap)?convertToUnit(props.gap[0]||0):convertToUnit(props.gap)});const verticalGap=computed(()=>{return Array.isArray(props.gap)?convertToUnit(props.gap[1]||0):horizontalGap.value});return()=>h(props.tag,{class:[`v-row`,classes.value,props.class],style:[{"--v-col-gap-x":horizontalGap.value,"--v-col-gap-y":verticalGap.value,"--v-row-columns":props.size},props.style]},slots.default?.())}});export{VCol as n,VRow as t};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{$t as getPropertyFromItem,An as isNullOrUndefined,Bt as convertToUnit,Cn as findMatchRanges,Dn as isBoolean,En as isArray,Fn as isUndefined,G as useDimension,In as mergeDeep,It as camelizeProps,J as useResizeObserver,K as VDefaultsProvider,Lt as checkPrintable,Mn as isObject,Nn as isString,On as isFunction,Pn as isSymbol,R as makeTransitionProps,Rn as resolveIds,Sn as clamp$1,St as propsFactory,Tn as hexToRgb,U as useTextColor,Vt as debounce,W as makeDimensionProps,Wt as ensureValidVNode,Xt as focusableChildren,Zt as getActiveElement,_ as VIcon,_t as injectNestedDefaults,an as matchesSelector,at as useToggleScope,bn as UNSAFE_KEYS,cn as omit,dt as deepEqual,ft as defineComponent,gn as IN_BROWSER$1,hn as wrapInArray,it as useProxiedModel,jn as isNumber,kn as isNull,nt as useLocale,pt as genericComponent,q as makeTagProps,st as IconValue,t as VAvatar,ut as useRender,wn as foreground,xn as V0Error,xt as makeComponentProps,yt as getCurrentInstance,zn as useId,zt as clamp}from"./VAvatar-CAFvgSUo.js";import{Cn as toRaw,D as createVNode,E as createTextVNode,En as toValue,H as hasInjectionContext,Ht as watch,J as inject,On as unref,Pt as useId$1,Ut as watchEffect,Zn as normalizeClass,_ as createBaseVNode,_n as readonly,bn as shallowReadonly,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,gt as provide,o as Fragment,pn as onScopeDispose,tt as nextTick,un as isRef,vn as ref,wn as toRef,xn as shallowRef,yn as shallowReactive}from"./runtime-core.esm-bundler-DMrccYS5.js";import{d as getScrollParent,l as forwardRefs,u as VDialogTransition}from"./VOverlay-BvFVZKNS.js";import{a as useDisplay}from"./display-BLmcO-5p.js";import{a as useItems,n as VList,o as VListSubheader,r as makeItemsProps,s as VListItem,t as VMenu}from"./VMenu-BLxobsuU.js";import{t as VChip}from"./VChip-Dfs5jX0f.js";import{g as VCheckboxBtn,h as useInputIcon,n as makeVTextFieldProps,p as useForm,t as VTextField}from"./VTextField-CA_p3N4d.js";import{t as VDivider}from"./VDivider-DFsS0OTx.js";import{t as VSheet}from"./VSheet-BA95RNmA.js";var IN_BROWSER=typeof window!==`undefined`;var SUPPORTS_TOUCH=IN_BROWSER&&(`ontouchstart`in window||window.navigator.maxTouchPoints>0);var SUPPORTS_MATCH_MEDIA=IN_BROWSER&&`matchMedia`in window&&typeof window.matchMedia===`function`;var SUPPORTS_OBSERVER=IN_BROWSER&&`ResizeObserver`in window;var SUPPORTS_INTERSECTION_OBSERVER=IN_BROWSER&&`IntersectionObserver`in window;var SUPPORTS_MUTATION_OBSERVER=IN_BROWSER&&`MutationObserver`in window;var __LOGGER_ENABLED__=typeof{}.VITE_LOGGER_ENABLED!==`undefined`&&{}.VITE_LOGGER_ENABLED===`true`;var makeVVirtualScrollItemProps=propsFactory({renderless:Boolean,...makeComponentProps()},`VVirtualScrollItem`);var VVirtualScrollItem=genericComponent()({name:`VVirtualScrollItem`,inheritAttrs:false,props:makeVVirtualScrollItemProps(),emits:{"update:height":height=>true},setup(props,{attrs,emit,slots}){const{resizeRef,contentRect}=useResizeObserver(void 0,`border`);watch(()=>contentRect.value?.height,height=>{if(height!=null)emit(`update:height`,height)});useRender(()=>props.renderless?createBaseVNode(Fragment,null,[slots.default?.({itemRef:resizeRef})]):createBaseVNode(`div`,mergeProps({"ref":resizeRef,"class":[`v-virtual-scroll__item`,props.class],"style":props.style},attrs),[slots.default?.()]))}});var UP=-1;var DOWN=1;var BUFFER_PX=100;var makeVirtualProps=propsFactory({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function useVirtual(props,items){const display=useDisplay();const itemHeight=shallowRef(0);watchEffect(()=>{itemHeight.value=parseFloat(props.itemHeight||0)});const first=shallowRef(0);const last=shallowRef(Math.ceil((parseInt(props.height)||display.height.value)/(itemHeight.value||16))||1);const paddingTop=shallowRef(0);const paddingBottom=shallowRef(0);const containerRef=ref();const markerRef=ref();let markerOffset=0;const{resizeRef,contentRect}=useResizeObserver();watchEffect(()=>{resizeRef.value=containerRef.value});const viewportHeight=computed(()=>{return containerRef.value===document.documentElement?display.height.value:contentRect.value?.height||parseInt(props.height)||0});const hasInitialRender=computed(()=>{return!!(containerRef.value&&markerRef.value&&viewportHeight.value&&itemHeight.value)});let sizes=Array.from({length:items.value.length});let offsets=Array.from({length:items.value.length});let heights=new Map;const updateTime=shallowRef(0);let targetScrollIndex=-1;let targetScrollPosition=`start`;let targetScrollHeight=0;function getSize(index){return sizes[index]||itemHeight.value}const updateOffsets=debounce(()=>{const start=performance.now();offsets[0]=0;const length=items.value.length;for(let i=1;i<=length;i++)offsets[i]=(offsets[i-1]||0)+getSize(i-1);updateTime.value=Math.max(updateTime.value,performance.now()-start);calculateVisibleItems()},updateTime);const unwatch=watch(hasInitialRender,v=>{if(!v)return;unwatch();markerOffset=markerRef.value.offsetTop;updateOffsets.immediate();calculateVisibleItems();if(!~targetScrollIndex)return;nextTick(()=>{IN_BROWSER$1&&window.requestAnimationFrame(()=>{if(~targetScrollIndex)scrollToIndex(targetScrollIndex,targetScrollPosition)})})});onScopeDispose(()=>{updateOffsets.clear()});function estimateItemHeight(){let total=0;for(const count of heights.values())total+=count;let seen=0;for(const height of[...heights.keys()].sort((a,b)=>a-b)){seen+=heights.get(height);if(seen*2>=total)return height}return itemHeight.value}function handleItemResize(index,height){const prevHeight=sizes[index];const prevItemHeight=itemHeight.value;if(height>0){if(prevHeight){const count=heights.get(prevHeight)-1;count?heights.set(prevHeight,count):heights.delete(prevHeight)}heights.set(height,(heights.get(height)??0)+1);itemHeight.value=estimateItemHeight()}if(prevHeight!==height||prevItemHeight!==itemHeight.value){sizes[index]=height;updateOffsets()}}function calculateOffset(index){index=clamp(index,0,items.value.length);const whole=Math.floor(index);const fraction=index%1;const next=whole+1;const wholeOffset=offsets[whole]||0;return wholeOffset+((offsets[next]||wholeOffset)-wholeOffset)*fraction}function calculateIndex(scrollTop){return binaryClosest(offsets,scrollTop)}let lastScrollTop=0;let scrollVelocity=0;let lastScrollTime=0;watch(viewportHeight,(val,oldVal)=>{calculateVisibleItems();if(val<oldVal)requestAnimationFrame(()=>{scrollVelocity=0;calculateVisibleItems()})});let scrollTimeout=-1;function handleScroll(){if(!containerRef.value||!markerRef.value)return;const scrollTop=containerRef.value.scrollTop;const scrollTime=performance.now();if(scrollTime-lastScrollTime>500){scrollVelocity=Math.sign(scrollTop-lastScrollTop);markerOffset=markerRef.value.offsetTop}else scrollVelocity=scrollTop-lastScrollTop;lastScrollTop=scrollTop;lastScrollTime=scrollTime;window.clearTimeout(scrollTimeout);scrollTimeout=window.setTimeout(handleScrollend,500);calculateVisibleItems()}function handleScrollend(){if(!containerRef.value||!markerRef.value)return;scrollVelocity=0;lastScrollTime=0;window.clearTimeout(scrollTimeout);calculateVisibleItems()}let raf=-1;function calculateVisibleItems(){cancelAnimationFrame(raf);raf=requestAnimationFrame(_calculateVisibleItems)}function _calculateVisibleItems(){if(!containerRef.value||!viewportHeight.value||!itemHeight.value)return;const scrollTop=lastScrollTop-markerOffset;const direction=Math.sign(scrollVelocity);const startPx=Math.max(0,scrollTop-BUFFER_PX);const start=clamp(calculateIndex(startPx),0,items.value.length);const endPx=scrollTop+viewportHeight.value+BUFFER_PX;const end=clamp(calculateIndex(endPx)+1,start+1,items.value.length);if((direction!==UP||start<first.value)&&(direction!==DOWN||end>last.value)){const topOverflow=calculateOffset(first.value)-calculateOffset(start);const bottomOverflow=calculateOffset(end)-calculateOffset(last.value);if(Math.max(topOverflow,bottomOverflow)>BUFFER_PX){first.value=start;last.value=end}else{if(start<=0)first.value=start;if(end>=items.value.length){last.value=end;first.value=start}}}paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value)}function calculateScrollTop(index,position){const offset=calculateOffset(index);if(position===`center`)return Math.max(0,offset-viewportHeight.value/2+getSize(index)/2);if(position===`end`){const scrollport=containerRef.value?.clientHeight||viewportHeight.value;return Math.max(0,offset+markerOffset-scrollport+getSize(index))}return offset}function scrollToIndex(index,position=`start`){if(targetScrollIndex!==index)targetScrollHeight=0;const offset=calculateOffset(index);if(!containerRef.value||index&&!offset){targetScrollIndex=index;targetScrollPosition=position;return}const itemSize=itemHeight.value||16;const buffer=Math.ceil(BUFFER_PX/itemSize);const viewport=Math.max(1,Math.ceil((viewportHeight.value||0)/itemSize));const lead=position===`center`?Math.ceil(viewport/2):position===`end`?viewport:0;first.value=clamp(index-lead-buffer,0,Math.max(0,items.value.length-1));last.value=clamp(index-lead+viewport+buffer,first.value+1,items.value.length);paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value);scrollVelocity=0;lastScrollTime=0;targetScrollIndex=index;targetScrollPosition=position;nextTick(()=>{const el=containerRef.value;if(!el||!~targetScrollIndex||targetScrollIndex!==index)return;const top=calculateScrollTop(index,position);el.scrollTop=top;lastScrollTop=el.scrollTop;if(index&&el.scrollTop<top-1&&el.scrollHeight>targetScrollHeight){targetScrollHeight=el.scrollHeight;IN_BROWSER$1&&requestAnimationFrame(()=>{if(targetScrollIndex===index)scrollToIndex(index,position)})}else{targetScrollIndex=-1;targetScrollPosition=`start`;calculateVisibleItems()}})}const computedItems=computed(()=>{return items.value.slice(first.value,last.value).map((item,index)=>{const _index=index+first.value;return{raw:item,index:_index,key:getPropertyFromItem(item,props.itemKey,_index)}})});watch(items,()=>{sizes=Array.from({length:items.value.length});offsets=Array.from({length:items.value.length});heights=new Map;updateOffsets.immediate();calculateVisibleItems()},{deep:1});return{calculateVisibleItems,containerRef,markerRef,computedItems,paddingTop,paddingBottom,scrollToIndex,handleScroll,handleScrollend,handleItemResize}}function binaryClosest(arr,val){let high=arr.length-1;let low=0;let mid=0;let item=null;let target=-1;if(arr[high]<val)return high;while(low<=high){mid=low+high>>1;item=arr[mid];if(item>val)high=mid-1;else if(item<val){target=mid;low=mid+1}else if(item===val)return mid;else return low}return target}var makeVVirtualScrollProps=propsFactory({items:{type:Array,default:()=>[]},renderless:Boolean,...makeVirtualProps(),...makeComponentProps(),...makeDimensionProps()},`VVirtualScroll`);var VVirtualScroll=genericComponent()({name:`VVirtualScroll`,props:makeVVirtualScrollProps(),setup(props,{slots}){const vm=getCurrentInstance(`VVirtualScroll`);const{dimensionStyles}=useDimension(props);const{calculateVisibleItems,containerRef,markerRef,handleScroll,handleScrollend,handleItemResize,scrollToIndex,paddingTop,paddingBottom,computedItems}=useVirtual(props,toRef(()=>props.items));useToggleScope(()=>props.renderless,()=>{function handleListeners(add=false){const method=add?`addEventListener`:`removeEventListener`;if(!IN_BROWSER$1)return;if(containerRef.value===document.documentElement){document[method](`scroll`,handleScroll,{passive:true});document[method](`scrollend`,handleScrollend)}else{containerRef.value?.[method](`scroll`,handleScroll,{passive:true});containerRef.value?.[method](`scrollend`,handleScrollend)}}onMounted(()=>{containerRef.value=getScrollParent(vm.vnode.el,true);handleListeners(true)});onScopeDispose(handleListeners)});useRender(()=>{const children=computedItems.value.map(item=>createVNode(VVirtualScrollItem,{"key":item.key,"renderless":props.renderless,"onUpdate:height":height=>handleItemResize(item.index,height)},{default:slotProps=>slots.default?.({item:item.raw,index:item.index,...slotProps})}));return props.renderless?createBaseVNode(Fragment,null,[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__spacer`,"style":{paddingTop:convertToUnit(paddingTop.value)}},null),children,createBaseVNode(`div`,{"class":`v-virtual-scroll__spacer`,"style":{paddingBottom:convertToUnit(paddingBottom.value)}},null)]):createBaseVNode(`div`,{"ref":containerRef,"class":normalizeClass([`v-virtual-scroll`,props.class]),"onScrollPassive":handleScroll,"onScrollend":handleScrollend,"style":normalizeStyle([dimensionStyles.value,props.style])},[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__container`,"style":{paddingTop:convertToUnit(paddingTop.value),paddingBottom:convertToUnit(paddingBottom.value)}},[children])])});return{calculateVisibleItems,scrollToIndex}}});function useContext(key,defaultValue){const context=inject(key,defaultValue);if(isUndefined(context))throw new V0Error(`Context "${String(key)}" not found. Ensure it's provided by an ancestor.`,{code:`V0_CONTEXT_MISSING`,key});return context}function provideContext(key,context,app){if(app)app.provide(key,context);else provide(key,context);return context}function createContext(keyOrOptions,defaultValue){if(isString(keyOrOptions)||isSymbol(keyOrOptions)){const _key=keyOrOptions;function _provideContext(context,app){return provideContext(_key,context,app)}function _useContext(){return useContext(_key,defaultValue)}return[_useContext,_provideContext]}const suffix=isObject(keyOrOptions)?keyOrOptions.suffix:void 0;function _provideContext(key,context,app){return provideContext(suffix?`${key}:${suffix}`:key,context,app)}function _useContext(key,defaultValue){return useContext(suffix?`${key}:${suffix}`:key,defaultValue)}return[_useContext,_provideContext]}function createTrinity(keyOrUseContext,provideContextOrContext,maybeContext){if(isString(keyOrUseContext)){const[useContext,provideContext]=createContext(keyOrUseContext);const context=provideContextOrContext;return[useContext,(_context=context,app)=>provideContext(_context,app),context]}const provideContext=provideContextOrContext;const context=maybeContext;return[keyOrUseContext,(_context=context,app)=>provideContext(_context,app),context]}var INSTALLED=Symbol.for(`v0:installed-plugins`);function getInstalled(app){const ctx=app._context;return ctx[INSTALLED]??=new Set}function createPlugin(options){return{install(app){app.runWithContext(()=>{const installed=getInstalled(app);if(installed.has(options.namespace))return;installed.add(options.namespace);options.provide(app);options.setup?.(app)})}}}function deriveKey(namespace){return namespace.startsWith(`v0:`)?namespace.slice(3):namespace}function getPersistedStorage(){return useContext(`v0:storage`)}function createPluginContext(defaultNamespace,factory,config){function createXContext(_options={}){const{namespace=defaultNamespace,persist:_persist,...options}=_options;const context=factory(options);return createTrinity(namespace,context)}function createXPlugin(_options={}){const{namespace=defaultNamespace,persist:shouldPersist,...options}=_options;let context;return createPlugin({namespace,provide:app=>{const[,provide,ctx]=createXContext({...options,namespace});context=ctx;provide(context,app);if(shouldPersist&&config?.restore){const storage=getPersistedStorage();const key=deriveKey(namespace);const saved=storage.get(key);if(!isNullOrUndefined(saved.value))config.restore(context,saved.value)}},setup:config?.setup||shouldPersist?app=>{const ctx=context;config?.setup?.(ctx,app,options);if(shouldPersist&&config?.persist){const storage=getPersistedStorage();const key=deriveKey(namespace);const stored=storage.get(key);const stop=watch(()=>config.persist(ctx),val=>{stored.value=val});app.onUnmount(stop)}}:void 0})}function useX(namespace=defaultNamespace){if(config?.fallback){if(!hasInjectionContext())return config.fallback(namespace);const provided=inject(namespace,void 0);if(!isUndefined(provided))return provided;return config.fallback(namespace)}return useContext(namespace)}return[createXContext,createXPlugin,useX]}var LoggerAdapter=class{};var V0LoggerAdapter=class extends LoggerAdapter{prefix;colors;timestamps;constructor(options={}){super();this.prefix=options.prefix||`v0`;this.colors=options.colors!==false;this.timestamps=options.timestamps!==false}debug(message,...args){this.log(`debug`,`debug`,message,...args)}info(message,...args){this.log(`info`,`info`,message,...args)}warn(message,...args){this.log(`warn`,`warn`,message,...args)}error(message,...args){this.log(`error`,`error`,message,...args)}trace(message,...args){this.log(`trace`,`trace`,message,...args)}fatal(message,...args){this.log(`fatal`,`error`,message,...args)}format(level,message,...args){return[[this.timestamps?this.timestamp():``,`[${this.prefix} ${level.toLowerCase()}]`,message].filter(Boolean).join(` `),...args]}timestamp(){if(!IN_BROWSER)return new Date().toISOString();return new Date().toTimeString().split(` `)[0]??``}style(level){if(!this.colors||!IN_BROWSER)return``;return{trace:`color: #64748b`,debug:`color: #3b82f6`,info:`color: #10b981`,warn:`color: #f59e0b`,error:`color: #ef4444`,fatal:`color: #dc2626; font-weight: bold`,silent:``}[level]||``}log(level,method,message,...args){const[formattedMessage,...restArgs]=this.format(level,message,...args);const style=this.style(level);if(IN_BROWSER&&style&&isFunction(console[method]))console[method](`%c${formattedMessage}`,style,...restArgs);else if(isFunction(console[method]))console[method](formattedMessage,...restArgs)}};function createLogger(options={}){const{adapter=new V0LoggerAdapter({prefix:options.prefix}),level:initialLevel=`info`,enabled:initialEnabled=__LOGGER_ENABLED__}=options;let currentLevel=initialLevel;let isEnabled=initialEnabled;function value(level){return{trace:0,debug:1,info:2,warn:3,error:4,fatal:5,silent:6}[level]??2}function can(level){if(!isEnabled)return false;return value(level)>=value(currentLevel)}function format(message){return message}function debug(message,...args){if(can(`debug`))adapter.debug(format(message),...args)}function info(message,...args){if(can(`info`))adapter.info(format(message),...args)}function warn(message,...args){if(can(`warn`))adapter.warn(format(message),...args)}function error(message,...args){if(can(`error`))adapter.error(format(message),...args)}function trace(message,...args){if(can(`trace`))adapter.trace?.(format(message),...args)}function fatal(message,...args){if(can(`fatal`))adapter.fatal?.(format(message),...args)}function level(newLevel){currentLevel=newLevel}function current(){return currentLevel}function enabled(){return isEnabled}function enable(){isEnabled=true}function disable(){isEnabled=false}return{debug,info,warn,error,trace,fatal,level,current,enabled,enable,disable}}var NAMESPACE=`v0:logger`;function createFallbackLogger(namespace=NAMESPACE){function format(message,type){return`[${namespace} ${type}] ${message}`}return{debug:(message,...args)=>console.debug(format(message,`debug`),...args),info:(message,...args)=>console.info(format(message,`info`),...args),warn:(message,...args)=>console.warn(format(message,`warn`),...args),error:(message,...args)=>console.error(format(message,`error`),...args),trace:(message,...args)=>console.trace(format(message,`trace`),...args),fatal:(message,...args)=>console.error(format(message,`fatal`),...args),level:()=>{},current:()=>`info`,enabled:()=>true,enable:()=>{},disable:()=>{}}}var[createLoggerContext,createLoggerPlugin,useLoggerContext]=createPluginContext(NAMESPACE,options=>createLogger(options),{fallback:ns=>createFallbackLogger(ns),setup:(context,_app,_options)=>{}});function createScopedLogger(logger,scope){const tag=`[${scope}]`;function wrap(method){return(message,...args)=>method(`${tag} ${message}`,...args)}return{...logger,debug:wrap(logger.debug),info:wrap(logger.info),warn:wrap(logger.warn),error:wrap(logger.error),trace:wrap(logger.trace),fatal:wrap(logger.fatal)}}function useLogger(scope){const logger=useLoggerContext();return isUndefined(scope)||!scope.trim()?logger:createScopedLogger(logger,scope)}function createRegistry(options){const logger=useLogger();const events=options?.events??false;const reactive=options?.reactive??false;const collection=reactive?shallowReactive(new Map):new Map;const catalog=new Map;const directory=new Map;const cache=new Map;const listeners=new Map;const minted=new WeakSet;const order=[];const version=shallowRef(0);let indexDependentCount=0;let needsReindex=false;let minDirtyIndex=Infinity;let maxDirtyIndex=-Infinity;let isBatching=false;let structural=false;let batched=[];function dispatch(event,data){const cbs=listeners.get(event);if(!cbs)return;for(const cb of cbs)cb(data)}function emit(event,data=void 0){if(!events)return;if(isBatching){batched.push({event,data});return}dispatch(event,data)}function on(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}if(!listeners.has(event))listeners.set(event,new Set);listeners.get(event).add(cb)}function off(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}listeners.get(event)?.delete(cb)}function dispose(){listeners.clear();clear()}function get(id){return collection.get(id)}function upsert(id,patch={},event){if(needsReindex)reindex();const existing=get(id);if(!existing)return register({...patch,id});const hasValue=Object.hasOwn(patch,`value`);let value=existing.value;let valueIsIndex=existing.valueIsIndex;if(hasValue){if(isUndefined(patch.value)){value=existing.index;valueIsIndex=true}else{value=patch.value;valueIsIndex=false}if(valueIsIndex!==existing.valueIsIndex){if(valueIsIndex)indexDependentCount++;else indexDependentCount--}if(!Object.is(value,existing.value)){unassign(existing.value,id);assign(value,id)}}Object.assign(existing,patch,{id,index:existing.index,value,valueIsIndex});collection.set(id,existing);cache.clear();emit(`update:ticket`,existing);if(event)emit(event,existing);return existing}function browse(value){if(needsReindex)reindex();const bucket=catalog.get(value);return bucket?bucket.slice():void 0}function lookup(index){if(needsReindex)reindex();return directory.get(index)}function has(id){return collection.has(id)}function assign(value,id){const bucket=catalog.get(value);if(bucket){if(!bucket.includes(id))bucket.push(id)}else catalog.set(value,[id])}function unassign(value,id){const bucket=catalog.get(value);if(!bucket)return;const next=bucket.filter(v=>v!==id);if(next.length===0)catalog.delete(value);else catalog.set(value,next)}function keys(){if(reactive)version.value;const cached=cache.get(`keys`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>ticket.id);cache.set(`keys`,out);return out}function values(){if(reactive)version.value;const cached=cache.get(`values`);if(!isUndefined(cached))return cached;const out=order.slice();cache.set(`values`,out);return out}function entries(){if(reactive)version.value;const cached=cache.get(`entries`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>[ticket.id,ticket]);cache.set(`entries`,out);return out}function clear(){order.length=0;collection.clear();catalog.clear();directory.clear();invalidate();indexDependentCount=0;needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`clear:registry`)}function invalidate(){cache.clear();if(isBatching){structural=true;return}version.value++}function batch(fn){if(isBatching)return fn();isBatching=true;structural=false;batched=[];try{return fn()}finally{isBatching=false;const queue=batched;batched=[];cache.clear();try{for(const{event,data}of queue)dispatch(event,data)}finally{if(structural)version.value++}}}function reindex(){const size=order.length;const start=minDirtyIndex===Infinity?0:minDirtyIndex;const end=maxDirtyIndex===-Infinity?size-1:Math.min(maxDirtyIndex,size-1);const full=start===0&&end===size-1;invalidate();if(full){catalog.clear();directory.clear()}else for(let i=start;i<=end;i++){const ticket=order[i];directory.delete(ticket.index);if(ticket.valueIsIndex)unassign(ticket.value,ticket.id)}for(let i=start;i<=end;i++){const ticket=order[i];if(ticket.valueIsIndex){ticket.value=i;assign(ticket.value,ticket.id)}else if(full)assign(ticket.value,ticket.id);ticket.index=i;directory.set(i,ticket.id)}needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`reindex:registry`)}function register(registration={}){if(needsReindex)reindex();const size=collection.size;const auto=isNullOrUndefined(registration.id);const id=registration.id??useId();if(has(id)){logger.warn(`Ticket "${id}" already exists. Use \`upsert()\` to update or check \`has()\` before registering.`);return get(id)}const valueIsUndefined=isUndefined(registration.value);const index=size;const value=valueIsUndefined?index:registration.value;const valueIsIndex=registration.valueIsIndex??valueIsUndefined;if(valueIsIndex)indexDependentCount++;const input={unregister:()=>unregister(id),...registration,id,index,value,valueIsIndex};const ticket=reactive?shallowReactive(input):input;if(auto)minted.add(ticket);collection.set(ticket.id,ticket);order.push(ticket);directory.set(ticket.index,ticket.id);assign(ticket.value,ticket.id);invalidate();emit(`register:ticket`,ticket);return ticket}function unregister(id){const ticket=collection.get(id);if(!ticket)return;if(ticket.valueIsIndex)indexDependentCount--;let orderPos=ticket.index;if(order[orderPos]!==ticket)orderPos=order.indexOf(ticket);if(orderPos!==-1)order.splice(orderPos,1);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id);const willReindex=indexDependentCount>0&&ticket.index<collection.size;if(!willReindex)invalidate();minDirtyIndex=Math.min(minDirtyIndex,ticket.index);if(willReindex)reindex();else needsReindex=true;emit(`unregister:ticket`,ticket)}function onboard(registrations){return batch(()=>registrations.map(registration=>register(registration)))}function toInput(ticket){const input={...ticket};delete input.index;delete input.valueIsIndex;delete input.unregister;if(minted.has(ticket))delete input.id;if(ticket.valueIsIndex)delete input.value;return input}function offboard(ids){const removed=[];const removedIds=new Set;for(const id of ids){if(removedIds.has(id))continue;const ticket=collection.get(id);if(ticket){removed.push(ticket);removedIds.add(id)}}if(removed.length===0)return[];batch(()=>{let w=0;for(const ticket of order)if(!removedIds.has(ticket.id))order[w++]=ticket;order.length=w;invalidate();for(const ticket of removed){if(ticket.valueIsIndex)indexDependentCount--;minDirtyIndex=Math.min(minDirtyIndex,ticket.index);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id)}for(const ticket of removed)emit(`unregister:ticket`,ticket);if(indexDependentCount>0&&minDirtyIndex<collection.size)reindex();else needsReindex=true});return removed.map(ticket=>toInput(ticket))}function move(id,toIndex){if(needsReindex)reindex();const ticket=collection.get(id);if(!ticket)return void 0;const size=collection.size;const target=clamp$1(toIndex,0,size-1);const from=ticket.index;if(from===target)return ticket;return batch(()=>{order.splice(from,1);order.splice(target,0,ticket);minDirtyIndex=Math.min(from,target);maxDirtyIndex=Math.max(from,target);reindex();emit(`update:ticket`,ticket);return ticket})}function reorder(ids){if(needsReindex)reindex();if(ids.length!==collection.size)return;const seen=new Set;const next=[];for(const id of ids){if(seen.has(id))return;const ticket=collection.get(id);if(!ticket)return;seen.add(id);next.push(ticket)}batch(()=>{for(const[i,ticket]of next.entries())order[i]=ticket;minDirtyIndex=0;maxDirtyIndex=-Infinity;reindex()})}function seek(direction=`first`,from,predicate){if(collection.size===0)return void 0;if(needsReindex)reindex();const n=order.length;if(!predicate&&isUndefined(from))return direction===`first`?order[0]:order.at(-1);const index=isUndefined(from)?void 0:clamp$1(from,0,n-1);if(direction===`last`){const start=isUndefined(index)?n-1:index;for(let i=start;i>=0;i--){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}else{const start=isUndefined(index)?0:index;for(let i=start;i<n;i++){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}}return{collection,emit,on,off,dispose,has,keys,clear,browse,entries,values,lookup,get,upsert,register,unregister,reindex,move,reorder,seek,batch,onboard,offboard,get size(){return collection.size}}}function createModel(_options={}){const{disabled=false,enroll=true,multiple=false,...options}=_options;const registry=createRegistry(options);const selectedIds=shallowReactive(new Set);const selectedItems=computed(()=>new Set(resolveIds(selectedIds,registry.get)));const selectedValues=computed(()=>{const out=new Set;for(const item of selectedItems.value)out.add(toValue(item.value));return out});function select(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;if(!toValue(multiple))selectedIds.clear();selectedIds.add(id)}function unselect(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;selectedIds.delete(id)}function toggle(id){if(toValue(disabled))return;if(selected(id))unselect(id);else select(id)}function selected(id){return selectedIds.has(id)}function apply(values,_options){const value=values[0];let written=false;for(const id of selectedIds){const item=registry.get(id);if(!item||!isRef(item.value))continue;if(!isUndefined(value))item.value.value=value;written=true}if(written)return;if(!toValue(multiple))selectedIds.clear();if(isUndefined(value))return;const id=registry.browse(toRaw(value))?.values().next().value;if(!isUndefined(id))select(id)}function register(registration={}){const id=registration.id??useId();const item={disabled:false,unregister:()=>unregister(id),...registration,isSelected:toRef(()=>selected(id)),id};const ticket=registry.register(item);if(toValue(enroll)&&!toValue(disabled)&&!toValue(ticket.disabled))select(id);return ticket}function unregister(id){selectedIds.delete(id);registry.unregister(id)}function onboard(registrations){return registry.batch(()=>registrations.map(r=>register(r)))}function offboard(ids){for(const id of ids)selectedIds.delete(id);return registry.offboard(ids)}function reset(){selectedIds.clear()}function clear(){reset();registry.clear()}function dispose(){reset();registry.dispose()}return{...registry,disabled,selectedIds,selectedItems,selectedValues,register,onboard,unregister,offboard,clear,dispose,reset,select,unselect,toggle,selected,apply,get size(){return registry.size}}}function createSelection(_options={}){const{enroll=false,mandatory=false,multiple=false,...options}=_options;const model=createModel({...options,multiple,enroll:false});function seek(direction=`first`,from){return model.seek(direction,from,ticket=>!toValue(ticket.disabled))}function mandate(){if(!toValue(mandatory)||model.size===0||model.selectedIds.size>0)return;const ticket=seek(`first`);if(ticket)model.select(ticket.id)}function drain(id){if(toValue(model.disabled))return;if(toValue(mandatory)&&model.selectedIds.size===1)return;model.selectedIds.delete(id)}function unselect(id){if(toValue(model.disabled))return;const item=model.get(id);if(!item||toValue(item.disabled))return;drain(id)}function toggle(id){if(toValue(model.disabled))return;if(model.selectedIds.has(id))unselect(id);else model.select(id)}function apply(values,options){const isMultiple=options?.multiple??toValue(multiple);const currentIds=new Set(model.selectedIds);const targetIds=new Set;if(isMultiple){for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids){const ticket=model.get(id);if(!ticket||toValue(ticket.disabled))continue;targetIds.add(id)}}if(toValue(mandatory)&&targetIds.size===0)return;for(const id of currentIds)if(!targetIds.has(id))model.selectedIds.delete(id);for(const id of targetIds)model.selectedIds.add(id)}else{for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids)targetIds.add(id)}const next=targetIds.values().next().value;const last=currentIds.values().next().value;if(!isUndefined(last))drain(last);if(!isUndefined(next))model.select(next)}}function register(registration={}){const id=registration.id??useId();const decorated={select:()=>model.select(id),unselect:()=>unselect(id),toggle:()=>toggle(id),...registration,id};const ticket=model.register(decorated);if(toValue(enroll)&&!toValue(model.disabled)&&!toValue(ticket.disabled))model.select(ticket.id);if(toValue(mandatory)===`force`)mandate();return ticket}function onboard(registrations){const tickets=model.batch(()=>registrations.map(registration=>register(registration)));if(toValue(mandatory)===`force`)mandate();return tickets}return{...model,multiple,register,onboard,unselect,toggle,apply,mandate,seek,get size(){return model.size}}}function createSingle(_options={}){const{mandatory=false,...options}=_options;const registry=createSelection({...options,mandatory,multiple:false});const selectedId=toRef(()=>registry.selectedIds.values().next().value);const selectedItem=toRef(()=>registry.selectedItems.value.values().next().value);const selectedIndex=toRef(()=>selectedItem.value?.index??-1);const selectedValue=toRef(()=>selectedItem.value?.value);return{...registry,selectedId,selectedItem,selectedIndex,selectedValue,get size(){return registry.size}}}function createTokens(tokens={},options={}){const logger=useLogger();const registry=createRegistry({...options,events:true});const cache=new Map;function invalidate(){cache.clear()}registry.on(`register:ticket`,invalidate);registry.on(`unregister:ticket`,invalidate);registry.on(`update:ticket`,invalidate);registry.on(`reindex:registry`,invalidate);registry.on(`clear:registry`,invalidate);registry.onboard(flatten(tokens,options.prefix,!!options.flat));function isAlias(token){return isString(token)&&token.length>2&&token[0]===`{`&&token.at(-1)===`}`}function isTokenAlias(value){return isObject(value)&&`$value`in value}function resolve(token,visited=new Set){const cacheKey=isString(token)?token:JSON.stringify(token);if(cache.has(cacheKey))return cache.get(cacheKey);const reference=isTokenAlias(token)?token.$value:token;const isAliasReference=isString(reference)&&isAlias(reference);if(isTokenAlias(token)&&!isAliasReference){cache.set(cacheKey,reference);return reference}const clean=isAliasReference?reference.slice(1,-1):String(reference);if(visited.has(clean)){logger.warn(`Circular alias detected for "${clean}"`);cache.set(cacheKey,void 0);return}visited.add(clean);let found=registry.get(clean);let segments=[];if(!found&&clean.includes(`.`)){const parts=clean.split(`.`);for(let i=parts.length-1;i>0;i--){const prefix=parts.slice(0,i).join(`.`);const suffix=parts.slice(i);const candidate=registry.get(prefix);if(!isUndefined(candidate?.value)){found=candidate;segments=suffix;break}}}if(isUndefined(found?.value)){if(isAliasReference)logger.warn(`Alias not found for "${String(reference)}"`);cache.set(cacheKey,void 0);return}let current=found.value;if(segments.length>0){if(isTokenAlias(current))current=current.$value;for(const segment of segments){if(!isObject(current)||UNSAFE_KEYS.has(segment)||!Object.prototype.hasOwnProperty.call(current,segment)){current=void 0;break}current=current[segment];if(isTokenAlias(current))current=current.$value}if(isUndefined(current)){logger.warn(`Path not found inside "${clean}": ${segments.join(`.`)}`);cache.set(cacheKey,void 0);return}}else if(isTokenAlias(current))current=current.$value;const result=isString(current)&&isAlias(current)?resolve(current,visited):current;cache.set(cacheKey,result);return result}return{...registry,resolve,isAlias,get size(){return registry.size}}}function flatten(tokens,prefix=``,flat=false){const flattened=[];const stack=[{tokens,prefix,flat}];while(stack.length>0){const{tokens:currentTokens,prefix:currentPrefix,flat}=stack.pop();const meta={};for(const k in currentTokens){if(!Object.hasOwn(currentTokens,k))continue;if(k.startsWith(`$`))meta[k]=currentTokens[k]}if(Object.keys(meta).length>0&¤tPrefix)flattened.push({id:currentPrefix,value:meta});for(const key in currentTokens){if(!Object.hasOwn(currentTokens,key))continue;if(UNSAFE_KEYS.has(key))continue;if(key.startsWith(`$`))continue;const value=currentTokens[key];const id=currentPrefix?`${currentPrefix}.${key}`:key;if(!isObject(value)){flattened.push({id,value});continue}if(`$value`in value){flattened.push({id,value});const inner=value.$value;if(isObject(inner)&&!flat)for(const innerKey in inner){if(!Object.hasOwn(inner,innerKey))continue;if(UNSAFE_KEYS.has(innerKey))continue;if(innerKey.startsWith(`$`))continue;const child=inner[innerKey];const childId=`${id}.${innerKey}`;if(!isObject(child))flattened.push({id:childId,value:child});else if(`$value`in child)flattened.push({id:childId,value:child});else stack.push({tokens:child,prefix:childId,flat})}continue}if(flat){flattened.push({id,value});continue}stack.push({tokens:value,prefix:id,flat})}}return flattened}function toArray(value){return isNullOrUndefined(value)?[]:isArray(value)?value:[value]}function useEventListener(target,event,listener,options){const cleanups=[];function cleanup(){for(const fn of cleanups)fn();cleanups.length=0}function register(el,event,listener,options){el.addEventListener(event,listener,options);return()=>el.removeEventListener(event,listener,options)}const stopWatcher=watch(()=>[toValue(target),toValue(event),unref(listener),toValue(options)],([el,events,listeners,opts])=>{cleanup();if(!el)return;const eventList=toArray(events);const listenerList=toArray(listeners);for(const event of eventList)for(const listenerFn of listenerList)cleanups.push(register(el,event,listenerFn,opts))},{immediate:true,flush:`post`});function stop(){stopWatcher();cleanup()}onScopeDispose(stop,true);return stop}function useWindowEventListener(event,listener,options){return IN_BROWSER?useEventListener(window,event,listener,options):()=>{}}var ThemeAdapter=class ThemeAdapter{static SAFE_IDENT=/^[a-zA-Z0-9_-]+$/;static UNSAFE_CSS=/url\s*\(|src\s*\(|image\s*\(|image-set\s*\(|cross-fade\s*\(|@import|expression\s*\(|[;{}<>\\]|\/\*/i;stylesheetId=`v0-theme-stylesheet`;prefix;rgb=false;dispose;constructor(prefix){if(!ThemeAdapter.SAFE_IDENT.test(prefix))throw new V0Error(`Invalid theme prefix: "${prefix}". Expected an identifier matching ${ThemeAdapter.SAFE_IDENT}.`,{code:`V0_THEME_INVALID_PREFIX`,prefix});this.prefix=prefix}generate(colors,isDark){let css=``;for(const theme in colors){const themeColors=colors[theme];if(!themeColors)continue;if(!ThemeAdapter.SAFE_IDENT.test(theme))continue;const vars=Object.entries(themeColors).filter(([key,val])=>ThemeAdapter.SAFE_IDENT.test(key)&&!ThemeAdapter.UNSAFE_CSS.test(val)).map(([key,val])=>` --${this.prefix}-${key}: ${this.rgb?this.decompose(val):val};`).join(`
|
|
1
|
+
import{$ as useToggleScope,$t as matchesSelector,An as isSymbol,At as camelizeProps,B as VDefaultsProvider,Cn as isBoolean,Dn as isNumber,En as isNullOrUndefined,Fn as useId,Ft as debounce,Gt as getActiveElement,H as useResizeObserver,L as useTextColor,Mn as mergeDeep,Nt as clamp,On as isObject,Pn as resolveIds,Pt as convertToUnit,Q as useProxiedModel,R as makeDimensionProps,Rt as ensureValidVNode,Sn as isArray,Tn as isNull,V as makeTagProps,Wt as focusableChildren,X as useLocale,_n as V0Error,at as deepEqual,bn as foreground,dn as IN_BROWSER$1,dt as injectNestedDefaults,gn as UNSAFE_KEYS,gt as propsFactory,h as VIcon,ht as makeComponentProps,it as useRender,jn as isUndefined,jt as checkPrintable,kn as isString,nn as omit,ot as defineComponent,pt as getCurrentInstance,qt as getPropertyFromItem,st as genericComponent,tt as IconValue,un as wrapInArray,vn as clamp$1,wn as isFunction,xn as hexToRgb,yn as findMatchRanges,z as useDimension}from"./ripple-BVltMmyV.js";import{Cn as toRaw,D as createVNode,E as createTextVNode,En as toValue,H as hasInjectionContext,Ht as watch,J as inject,On as unref,Pt as useId$1,Ut as watchEffect,Zn as normalizeClass,_ as createBaseVNode,_n as readonly,bn as shallowReadonly,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,gt as provide,o as Fragment,pn as onScopeDispose,tt as nextTick,un as isRef,vn as ref,wn as toRef,xn as shallowRef,yn as shallowReactive}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{d as getScrollParent,l as forwardRefs,u as VDialogTransition}from"./VOverlay-CeMZurIN.js";import{g as useDisplay,o as makeTransitionProps,t as VAvatar}from"./VAvatar-DPzqDH4r.js";import{a as useItems,n as VList,o as VListSubheader,r as makeItemsProps,s as VListItem,t as VMenu}from"./VMenu-C_x18lwb.js";import{t as VChip}from"./VChip-CcI-Oo2J.js";import{g as VCheckboxBtn,h as useInputIcon,n as makeVTextFieldProps,p as useForm,t as VTextField}from"./VTextField-BR2eZeFT.js";import{t as VDivider}from"./VDivider-BMEqUoAB.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";var IN_BROWSER=typeof window!==`undefined`;var SUPPORTS_TOUCH=IN_BROWSER&&(`ontouchstart`in window||window.navigator.maxTouchPoints>0);var SUPPORTS_MATCH_MEDIA=IN_BROWSER&&`matchMedia`in window&&typeof window.matchMedia===`function`;var SUPPORTS_OBSERVER=IN_BROWSER&&`ResizeObserver`in window;var SUPPORTS_INTERSECTION_OBSERVER=IN_BROWSER&&`IntersectionObserver`in window;var SUPPORTS_MUTATION_OBSERVER=IN_BROWSER&&`MutationObserver`in window;var __LOGGER_ENABLED__=typeof{}.VITE_LOGGER_ENABLED!==`undefined`&&{}.VITE_LOGGER_ENABLED===`true`;var makeVVirtualScrollItemProps=propsFactory({renderless:Boolean,...makeComponentProps()},`VVirtualScrollItem`);var VVirtualScrollItem=genericComponent()({name:`VVirtualScrollItem`,inheritAttrs:false,props:makeVVirtualScrollItemProps(),emits:{"update:height":height=>true},setup(props,{attrs,emit,slots}){const{resizeRef,contentRect}=useResizeObserver(void 0,`border`);watch(()=>contentRect.value?.height,height=>{if(height!=null)emit(`update:height`,height)});useRender(()=>props.renderless?createBaseVNode(Fragment,null,[slots.default?.({itemRef:resizeRef})]):createBaseVNode(`div`,mergeProps({"ref":resizeRef,"class":[`v-virtual-scroll__item`,props.class],"style":props.style},attrs),[slots.default?.()]))}});var UP=-1;var DOWN=1;var BUFFER_PX=100;var makeVirtualProps=propsFactory({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function useVirtual(props,items){const display=useDisplay();const itemHeight=shallowRef(0);watchEffect(()=>{itemHeight.value=parseFloat(props.itemHeight||0)});const first=shallowRef(0);const last=shallowRef(Math.ceil((parseInt(props.height)||display.height.value)/(itemHeight.value||16))||1);const paddingTop=shallowRef(0);const paddingBottom=shallowRef(0);const containerRef=ref();const markerRef=ref();let markerOffset=0;const{resizeRef,contentRect}=useResizeObserver();watchEffect(()=>{resizeRef.value=containerRef.value});const viewportHeight=computed(()=>{return containerRef.value===document.documentElement?display.height.value:contentRect.value?.height||parseInt(props.height)||0});const hasInitialRender=computed(()=>{return!!(containerRef.value&&markerRef.value&&viewportHeight.value&&itemHeight.value)});let sizes=Array.from({length:items.value.length});let offsets=Array.from({length:items.value.length});let heights=new Map;const updateTime=shallowRef(0);let targetScrollIndex=-1;let targetScrollPosition=`start`;let targetScrollHeight=0;function getSize(index){return sizes[index]||itemHeight.value}const updateOffsets=debounce(()=>{const start=performance.now();offsets[0]=0;const length=items.value.length;for(let i=1;i<=length;i++)offsets[i]=(offsets[i-1]||0)+getSize(i-1);updateTime.value=Math.max(updateTime.value,performance.now()-start);calculateVisibleItems()},updateTime);const unwatch=watch(hasInitialRender,v=>{if(!v)return;unwatch();markerOffset=markerRef.value.offsetTop;updateOffsets.immediate();calculateVisibleItems();if(!~targetScrollIndex)return;nextTick(()=>{IN_BROWSER$1&&window.requestAnimationFrame(()=>{if(~targetScrollIndex)scrollToIndex(targetScrollIndex,targetScrollPosition)})})});onScopeDispose(()=>{updateOffsets.clear()});function estimateItemHeight(){let total=0;for(const count of heights.values())total+=count;let seen=0;for(const height of[...heights.keys()].sort((a,b)=>a-b)){seen+=heights.get(height);if(seen*2>=total)return height}return itemHeight.value}function handleItemResize(index,height){const prevHeight=sizes[index];const prevItemHeight=itemHeight.value;if(height>0){if(prevHeight){const count=heights.get(prevHeight)-1;count?heights.set(prevHeight,count):heights.delete(prevHeight)}heights.set(height,(heights.get(height)??0)+1);itemHeight.value=estimateItemHeight()}if(prevHeight!==height||prevItemHeight!==itemHeight.value){sizes[index]=height;updateOffsets()}}function calculateOffset(index){index=clamp(index,0,items.value.length);const whole=Math.floor(index);const fraction=index%1;const next=whole+1;const wholeOffset=offsets[whole]||0;return wholeOffset+((offsets[next]||wholeOffset)-wholeOffset)*fraction}function calculateIndex(scrollTop){return binaryClosest(offsets,scrollTop)}let lastScrollTop=0;let scrollVelocity=0;let lastScrollTime=0;watch(viewportHeight,(val,oldVal)=>{calculateVisibleItems();if(val<oldVal)requestAnimationFrame(()=>{scrollVelocity=0;calculateVisibleItems()})});let scrollTimeout=-1;function handleScroll(){if(!containerRef.value||!markerRef.value)return;const scrollTop=containerRef.value.scrollTop;const scrollTime=performance.now();if(scrollTime-lastScrollTime>500){scrollVelocity=Math.sign(scrollTop-lastScrollTop);markerOffset=markerRef.value.offsetTop}else scrollVelocity=scrollTop-lastScrollTop;lastScrollTop=scrollTop;lastScrollTime=scrollTime;window.clearTimeout(scrollTimeout);scrollTimeout=window.setTimeout(handleScrollend,500);calculateVisibleItems()}function handleScrollend(){if(!containerRef.value||!markerRef.value)return;scrollVelocity=0;lastScrollTime=0;window.clearTimeout(scrollTimeout);calculateVisibleItems()}let raf=-1;function calculateVisibleItems(){cancelAnimationFrame(raf);raf=requestAnimationFrame(_calculateVisibleItems)}function _calculateVisibleItems(){if(!containerRef.value||!viewportHeight.value||!itemHeight.value)return;const scrollTop=lastScrollTop-markerOffset;const direction=Math.sign(scrollVelocity);const startPx=Math.max(0,scrollTop-BUFFER_PX);const start=clamp(calculateIndex(startPx),0,items.value.length);const endPx=scrollTop+viewportHeight.value+BUFFER_PX;const end=clamp(calculateIndex(endPx)+1,start+1,items.value.length);if((direction!==UP||start<first.value)&&(direction!==DOWN||end>last.value)){const topOverflow=calculateOffset(first.value)-calculateOffset(start);const bottomOverflow=calculateOffset(end)-calculateOffset(last.value);if(Math.max(topOverflow,bottomOverflow)>BUFFER_PX){first.value=start;last.value=end}else{if(start<=0)first.value=start;if(end>=items.value.length){last.value=end;first.value=start}}}paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value)}function calculateScrollTop(index,position){const offset=calculateOffset(index);if(position===`center`)return Math.max(0,offset-viewportHeight.value/2+getSize(index)/2);if(position===`end`){const scrollport=containerRef.value?.clientHeight||viewportHeight.value;return Math.max(0,offset+markerOffset-scrollport+getSize(index))}return offset}function scrollToIndex(index,position=`start`){if(targetScrollIndex!==index)targetScrollHeight=0;const offset=calculateOffset(index);if(!containerRef.value||index&&!offset){targetScrollIndex=index;targetScrollPosition=position;return}const itemSize=itemHeight.value||16;const buffer=Math.ceil(BUFFER_PX/itemSize);const viewport=Math.max(1,Math.ceil((viewportHeight.value||0)/itemSize));const lead=position===`center`?Math.ceil(viewport/2):position===`end`?viewport:0;first.value=clamp(index-lead-buffer,0,Math.max(0,items.value.length-1));last.value=clamp(index-lead+viewport+buffer,first.value+1,items.value.length);paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value);scrollVelocity=0;lastScrollTime=0;targetScrollIndex=index;targetScrollPosition=position;nextTick(()=>{const el=containerRef.value;if(!el||!~targetScrollIndex||targetScrollIndex!==index)return;const top=calculateScrollTop(index,position);el.scrollTop=top;lastScrollTop=el.scrollTop;if(index&&el.scrollTop<top-1&&el.scrollHeight>targetScrollHeight){targetScrollHeight=el.scrollHeight;IN_BROWSER$1&&requestAnimationFrame(()=>{if(targetScrollIndex===index)scrollToIndex(index,position)})}else{targetScrollIndex=-1;targetScrollPosition=`start`;calculateVisibleItems()}})}const computedItems=computed(()=>{return items.value.slice(first.value,last.value).map((item,index)=>{const _index=index+first.value;return{raw:item,index:_index,key:getPropertyFromItem(item,props.itemKey,_index)}})});watch(items,()=>{sizes=Array.from({length:items.value.length});offsets=Array.from({length:items.value.length});heights=new Map;updateOffsets.immediate();calculateVisibleItems()},{deep:1});return{calculateVisibleItems,containerRef,markerRef,computedItems,paddingTop,paddingBottom,scrollToIndex,handleScroll,handleScrollend,handleItemResize}}function binaryClosest(arr,val){let high=arr.length-1;let low=0;let mid=0;let item=null;let target=-1;if(arr[high]<val)return high;while(low<=high){mid=low+high>>1;item=arr[mid];if(item>val)high=mid-1;else if(item<val){target=mid;low=mid+1}else if(item===val)return mid;else return low}return target}var makeVVirtualScrollProps=propsFactory({items:{type:Array,default:()=>[]},renderless:Boolean,...makeVirtualProps(),...makeComponentProps(),...makeDimensionProps()},`VVirtualScroll`);var VVirtualScroll=genericComponent()({name:`VVirtualScroll`,props:makeVVirtualScrollProps(),setup(props,{slots}){const vm=getCurrentInstance(`VVirtualScroll`);const{dimensionStyles}=useDimension(props);const{calculateVisibleItems,containerRef,markerRef,handleScroll,handleScrollend,handleItemResize,scrollToIndex,paddingTop,paddingBottom,computedItems}=useVirtual(props,toRef(()=>props.items));useToggleScope(()=>props.renderless,()=>{function handleListeners(add=false){const method=add?`addEventListener`:`removeEventListener`;if(!IN_BROWSER$1)return;if(containerRef.value===document.documentElement){document[method](`scroll`,handleScroll,{passive:true});document[method](`scrollend`,handleScrollend)}else{containerRef.value?.[method](`scroll`,handleScroll,{passive:true});containerRef.value?.[method](`scrollend`,handleScrollend)}}onMounted(()=>{containerRef.value=getScrollParent(vm.vnode.el,true);handleListeners(true)});onScopeDispose(handleListeners)});useRender(()=>{const children=computedItems.value.map(item=>createVNode(VVirtualScrollItem,{"key":item.key,"renderless":props.renderless,"onUpdate:height":height=>handleItemResize(item.index,height)},{default:slotProps=>slots.default?.({item:item.raw,index:item.index,...slotProps})}));return props.renderless?createBaseVNode(Fragment,null,[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__spacer`,"style":{paddingTop:convertToUnit(paddingTop.value)}},null),children,createBaseVNode(`div`,{"class":`v-virtual-scroll__spacer`,"style":{paddingBottom:convertToUnit(paddingBottom.value)}},null)]):createBaseVNode(`div`,{"ref":containerRef,"class":normalizeClass([`v-virtual-scroll`,props.class]),"onScrollPassive":handleScroll,"onScrollend":handleScrollend,"style":normalizeStyle([dimensionStyles.value,props.style])},[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__container`,"style":{paddingTop:convertToUnit(paddingTop.value),paddingBottom:convertToUnit(paddingBottom.value)}},[children])])});return{calculateVisibleItems,scrollToIndex}}});function useContext(key,defaultValue){const context=inject(key,defaultValue);if(isUndefined(context))throw new V0Error(`Context "${String(key)}" not found. Ensure it's provided by an ancestor.`,{code:`V0_CONTEXT_MISSING`,key});return context}function provideContext(key,context,app){if(app)app.provide(key,context);else provide(key,context);return context}function createContext(keyOrOptions,defaultValue){if(isString(keyOrOptions)||isSymbol(keyOrOptions)){const _key=keyOrOptions;function _provideContext(context,app){return provideContext(_key,context,app)}function _useContext(){return useContext(_key,defaultValue)}return[_useContext,_provideContext]}const suffix=isObject(keyOrOptions)?keyOrOptions.suffix:void 0;function _provideContext(key,context,app){return provideContext(suffix?`${key}:${suffix}`:key,context,app)}function _useContext(key,defaultValue){return useContext(suffix?`${key}:${suffix}`:key,defaultValue)}return[_useContext,_provideContext]}function createTrinity(keyOrUseContext,provideContextOrContext,maybeContext){if(isString(keyOrUseContext)){const[useContext,provideContext]=createContext(keyOrUseContext);const context=provideContextOrContext;return[useContext,(_context=context,app)=>provideContext(_context,app),context]}const provideContext=provideContextOrContext;const context=maybeContext;return[keyOrUseContext,(_context=context,app)=>provideContext(_context,app),context]}var INSTALLED=Symbol.for(`v0:installed-plugins`);function getInstalled(app){const ctx=app._context;return ctx[INSTALLED]??=new Set}function createPlugin(options){return{install(app){app.runWithContext(()=>{const installed=getInstalled(app);if(installed.has(options.namespace))return;installed.add(options.namespace);options.provide(app);options.setup?.(app)})}}}function deriveKey(namespace){return namespace.startsWith(`v0:`)?namespace.slice(3):namespace}function getPersistedStorage(){return useContext(`v0:storage`)}function createPluginContext(defaultNamespace,factory,config){function createXContext(_options={}){const{namespace=defaultNamespace,persist:_persist,...options}=_options;const context=factory(options);return createTrinity(namespace,context)}function createXPlugin(_options={}){const{namespace=defaultNamespace,persist:shouldPersist,...options}=_options;let context;return createPlugin({namespace,provide:app=>{const[,provide,ctx]=createXContext({...options,namespace});context=ctx;provide(context,app);if(shouldPersist&&config?.restore){const storage=getPersistedStorage();const key=deriveKey(namespace);const saved=storage.get(key);if(!isNullOrUndefined(saved.value))config.restore(context,saved.value)}},setup:config?.setup||shouldPersist?app=>{const ctx=context;config?.setup?.(ctx,app,options);if(shouldPersist&&config?.persist){const storage=getPersistedStorage();const key=deriveKey(namespace);const stored=storage.get(key);const stop=watch(()=>config.persist(ctx),val=>{stored.value=val});app.onUnmount(stop)}}:void 0})}function useX(namespace=defaultNamespace){if(config?.fallback){if(!hasInjectionContext())return config.fallback(namespace);const provided=inject(namespace,void 0);if(!isUndefined(provided))return provided;return config.fallback(namespace)}return useContext(namespace)}return[createXContext,createXPlugin,useX]}var LoggerAdapter=class{};var V0LoggerAdapter=class extends LoggerAdapter{prefix;colors;timestamps;constructor(options={}){super();this.prefix=options.prefix||`v0`;this.colors=options.colors!==false;this.timestamps=options.timestamps!==false}debug(message,...args){this.log(`debug`,`debug`,message,...args)}info(message,...args){this.log(`info`,`info`,message,...args)}warn(message,...args){this.log(`warn`,`warn`,message,...args)}error(message,...args){this.log(`error`,`error`,message,...args)}trace(message,...args){this.log(`trace`,`trace`,message,...args)}fatal(message,...args){this.log(`fatal`,`error`,message,...args)}format(level,message,...args){return[[this.timestamps?this.timestamp():``,`[${this.prefix} ${level.toLowerCase()}]`,message].filter(Boolean).join(` `),...args]}timestamp(){if(!IN_BROWSER)return new Date().toISOString();return new Date().toTimeString().split(` `)[0]??``}style(level){if(!this.colors||!IN_BROWSER)return``;return{trace:`color: #64748b`,debug:`color: #3b82f6`,info:`color: #10b981`,warn:`color: #f59e0b`,error:`color: #ef4444`,fatal:`color: #dc2626; font-weight: bold`,silent:``}[level]||``}log(level,method,message,...args){const[formattedMessage,...restArgs]=this.format(level,message,...args);const style=this.style(level);if(IN_BROWSER&&style&&isFunction(console[method]))console[method](`%c${formattedMessage}`,style,...restArgs);else if(isFunction(console[method]))console[method](formattedMessage,...restArgs)}};function createLogger(options={}){const{adapter=new V0LoggerAdapter({prefix:options.prefix}),level:initialLevel=`info`,enabled:initialEnabled=__LOGGER_ENABLED__}=options;let currentLevel=initialLevel;let isEnabled=initialEnabled;function value(level){return{trace:0,debug:1,info:2,warn:3,error:4,fatal:5,silent:6}[level]??2}function can(level){if(!isEnabled)return false;return value(level)>=value(currentLevel)}function format(message){return message}function debug(message,...args){if(can(`debug`))adapter.debug(format(message),...args)}function info(message,...args){if(can(`info`))adapter.info(format(message),...args)}function warn(message,...args){if(can(`warn`))adapter.warn(format(message),...args)}function error(message,...args){if(can(`error`))adapter.error(format(message),...args)}function trace(message,...args){if(can(`trace`))adapter.trace?.(format(message),...args)}function fatal(message,...args){if(can(`fatal`))adapter.fatal?.(format(message),...args)}function level(newLevel){currentLevel=newLevel}function current(){return currentLevel}function enabled(){return isEnabled}function enable(){isEnabled=true}function disable(){isEnabled=false}return{debug,info,warn,error,trace,fatal,level,current,enabled,enable,disable}}var NAMESPACE=`v0:logger`;function createFallbackLogger(namespace=NAMESPACE){function format(message,type){return`[${namespace} ${type}] ${message}`}return{debug:(message,...args)=>console.debug(format(message,`debug`),...args),info:(message,...args)=>console.info(format(message,`info`),...args),warn:(message,...args)=>console.warn(format(message,`warn`),...args),error:(message,...args)=>console.error(format(message,`error`),...args),trace:(message,...args)=>console.trace(format(message,`trace`),...args),fatal:(message,...args)=>console.error(format(message,`fatal`),...args),level:()=>{},current:()=>`info`,enabled:()=>true,enable:()=>{},disable:()=>{}}}var[createLoggerContext,createLoggerPlugin,useLoggerContext]=createPluginContext(NAMESPACE,options=>createLogger(options),{fallback:ns=>createFallbackLogger(ns),setup:(context,_app,_options)=>{}});function createScopedLogger(logger,scope){const tag=`[${scope}]`;function wrap(method){return(message,...args)=>method(`${tag} ${message}`,...args)}return{...logger,debug:wrap(logger.debug),info:wrap(logger.info),warn:wrap(logger.warn),error:wrap(logger.error),trace:wrap(logger.trace),fatal:wrap(logger.fatal)}}function useLogger(scope){const logger=useLoggerContext();return isUndefined(scope)||!scope.trim()?logger:createScopedLogger(logger,scope)}function createRegistry(options){const logger=useLogger();const events=options?.events??false;const reactive=options?.reactive??false;const collection=reactive?shallowReactive(new Map):new Map;const catalog=new Map;const directory=new Map;const cache=new Map;const listeners=new Map;const minted=new WeakSet;const order=[];const version=shallowRef(0);let indexDependentCount=0;let needsReindex=false;let minDirtyIndex=Infinity;let maxDirtyIndex=-Infinity;let isBatching=false;let structural=false;let batched=[];function dispatch(event,data){const cbs=listeners.get(event);if(!cbs)return;for(const cb of cbs)cb(data)}function emit(event,data=void 0){if(!events)return;if(isBatching){batched.push({event,data});return}dispatch(event,data)}function on(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}if(!listeners.has(event))listeners.set(event,new Set);listeners.get(event).add(cb)}function off(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}listeners.get(event)?.delete(cb)}function dispose(){listeners.clear();clear()}function get(id){return collection.get(id)}function upsert(id,patch={},event){if(needsReindex)reindex();const existing=get(id);if(!existing)return register({...patch,id});const hasValue=Object.hasOwn(patch,`value`);let value=existing.value;let valueIsIndex=existing.valueIsIndex;if(hasValue){if(isUndefined(patch.value)){value=existing.index;valueIsIndex=true}else{value=patch.value;valueIsIndex=false}if(valueIsIndex!==existing.valueIsIndex){if(valueIsIndex)indexDependentCount++;else indexDependentCount--}if(!Object.is(value,existing.value)){unassign(existing.value,id);assign(value,id)}}Object.assign(existing,patch,{id,index:existing.index,value,valueIsIndex});collection.set(id,existing);cache.clear();emit(`update:ticket`,existing);if(event)emit(event,existing);return existing}function browse(value){if(needsReindex)reindex();const bucket=catalog.get(value);return bucket?bucket.slice():void 0}function lookup(index){if(needsReindex)reindex();return directory.get(index)}function has(id){return collection.has(id)}function assign(value,id){const bucket=catalog.get(value);if(bucket){if(!bucket.includes(id))bucket.push(id)}else catalog.set(value,[id])}function unassign(value,id){const bucket=catalog.get(value);if(!bucket)return;const next=bucket.filter(v=>v!==id);if(next.length===0)catalog.delete(value);else catalog.set(value,next)}function keys(){if(reactive)version.value;const cached=cache.get(`keys`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>ticket.id);cache.set(`keys`,out);return out}function values(){if(reactive)version.value;const cached=cache.get(`values`);if(!isUndefined(cached))return cached;const out=order.slice();cache.set(`values`,out);return out}function entries(){if(reactive)version.value;const cached=cache.get(`entries`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>[ticket.id,ticket]);cache.set(`entries`,out);return out}function clear(){order.length=0;collection.clear();catalog.clear();directory.clear();invalidate();indexDependentCount=0;needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`clear:registry`)}function invalidate(){cache.clear();if(isBatching){structural=true;return}version.value++}function batch(fn){if(isBatching)return fn();isBatching=true;structural=false;batched=[];try{return fn()}finally{isBatching=false;const queue=batched;batched=[];cache.clear();try{for(const{event,data}of queue)dispatch(event,data)}finally{if(structural)version.value++}}}function reindex(){const size=order.length;const start=minDirtyIndex===Infinity?0:minDirtyIndex;const end=maxDirtyIndex===-Infinity?size-1:Math.min(maxDirtyIndex,size-1);const full=start===0&&end===size-1;invalidate();if(full){catalog.clear();directory.clear()}else for(let i=start;i<=end;i++){const ticket=order[i];directory.delete(ticket.index);if(ticket.valueIsIndex)unassign(ticket.value,ticket.id)}for(let i=start;i<=end;i++){const ticket=order[i];if(ticket.valueIsIndex){ticket.value=i;assign(ticket.value,ticket.id)}else if(full)assign(ticket.value,ticket.id);ticket.index=i;directory.set(i,ticket.id)}needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`reindex:registry`)}function register(registration={}){if(needsReindex)reindex();const size=collection.size;const auto=isNullOrUndefined(registration.id);const id=registration.id??useId();if(has(id)){logger.warn(`Ticket "${id}" already exists. Use \`upsert()\` to update or check \`has()\` before registering.`);return get(id)}const valueIsUndefined=isUndefined(registration.value);const index=size;const value=valueIsUndefined?index:registration.value;const valueIsIndex=registration.valueIsIndex??valueIsUndefined;if(valueIsIndex)indexDependentCount++;const input={unregister:()=>unregister(id),...registration,id,index,value,valueIsIndex};const ticket=reactive?shallowReactive(input):input;if(auto)minted.add(ticket);collection.set(ticket.id,ticket);order.push(ticket);directory.set(ticket.index,ticket.id);assign(ticket.value,ticket.id);invalidate();emit(`register:ticket`,ticket);return ticket}function unregister(id){const ticket=collection.get(id);if(!ticket)return;if(ticket.valueIsIndex)indexDependentCount--;let orderPos=ticket.index;if(order[orderPos]!==ticket)orderPos=order.indexOf(ticket);if(orderPos!==-1)order.splice(orderPos,1);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id);const willReindex=indexDependentCount>0&&ticket.index<collection.size;if(!willReindex)invalidate();minDirtyIndex=Math.min(minDirtyIndex,ticket.index);if(willReindex)reindex();else needsReindex=true;emit(`unregister:ticket`,ticket)}function onboard(registrations){return batch(()=>registrations.map(registration=>register(registration)))}function toInput(ticket){const input={...ticket};delete input.index;delete input.valueIsIndex;delete input.unregister;if(minted.has(ticket))delete input.id;if(ticket.valueIsIndex)delete input.value;return input}function offboard(ids){const removed=[];const removedIds=new Set;for(const id of ids){if(removedIds.has(id))continue;const ticket=collection.get(id);if(ticket){removed.push(ticket);removedIds.add(id)}}if(removed.length===0)return[];batch(()=>{let w=0;for(const ticket of order)if(!removedIds.has(ticket.id))order[w++]=ticket;order.length=w;invalidate();for(const ticket of removed){if(ticket.valueIsIndex)indexDependentCount--;minDirtyIndex=Math.min(minDirtyIndex,ticket.index);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id)}for(const ticket of removed)emit(`unregister:ticket`,ticket);if(indexDependentCount>0&&minDirtyIndex<collection.size)reindex();else needsReindex=true});return removed.map(ticket=>toInput(ticket))}function move(id,toIndex){if(needsReindex)reindex();const ticket=collection.get(id);if(!ticket)return void 0;const size=collection.size;const target=clamp$1(toIndex,0,size-1);const from=ticket.index;if(from===target)return ticket;return batch(()=>{order.splice(from,1);order.splice(target,0,ticket);minDirtyIndex=Math.min(from,target);maxDirtyIndex=Math.max(from,target);reindex();emit(`update:ticket`,ticket);return ticket})}function reorder(ids){if(needsReindex)reindex();if(ids.length!==collection.size)return;const seen=new Set;const next=[];for(const id of ids){if(seen.has(id))return;const ticket=collection.get(id);if(!ticket)return;seen.add(id);next.push(ticket)}batch(()=>{for(const[i,ticket]of next.entries())order[i]=ticket;minDirtyIndex=0;maxDirtyIndex=-Infinity;reindex()})}function seek(direction=`first`,from,predicate){if(collection.size===0)return void 0;if(needsReindex)reindex();const n=order.length;if(!predicate&&isUndefined(from))return direction===`first`?order[0]:order.at(-1);const index=isUndefined(from)?void 0:clamp$1(from,0,n-1);if(direction===`last`){const start=isUndefined(index)?n-1:index;for(let i=start;i>=0;i--){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}else{const start=isUndefined(index)?0:index;for(let i=start;i<n;i++){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}}return{collection,emit,on,off,dispose,has,keys,clear,browse,entries,values,lookup,get,upsert,register,unregister,reindex,move,reorder,seek,batch,onboard,offboard,get size(){return collection.size}}}function createModel(_options={}){const{disabled=false,enroll=true,multiple=false,...options}=_options;const registry=createRegistry(options);const selectedIds=shallowReactive(new Set);const selectedItems=computed(()=>new Set(resolveIds(selectedIds,registry.get)));const selectedValues=computed(()=>{const out=new Set;for(const item of selectedItems.value)out.add(toValue(item.value));return out});function select(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;if(!toValue(multiple))selectedIds.clear();selectedIds.add(id)}function unselect(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;selectedIds.delete(id)}function toggle(id){if(toValue(disabled))return;if(selected(id))unselect(id);else select(id)}function selected(id){return selectedIds.has(id)}function apply(values,_options){const value=values[0];let written=false;for(const id of selectedIds){const item=registry.get(id);if(!item||!isRef(item.value))continue;if(!isUndefined(value))item.value.value=value;written=true}if(written)return;if(!toValue(multiple))selectedIds.clear();if(isUndefined(value))return;const id=registry.browse(toRaw(value))?.values().next().value;if(!isUndefined(id))select(id)}function register(registration={}){const id=registration.id??useId();const item={disabled:false,unregister:()=>unregister(id),...registration,isSelected:toRef(()=>selected(id)),id};const ticket=registry.register(item);if(toValue(enroll)&&!toValue(disabled)&&!toValue(ticket.disabled))select(id);return ticket}function unregister(id){selectedIds.delete(id);registry.unregister(id)}function onboard(registrations){return registry.batch(()=>registrations.map(r=>register(r)))}function offboard(ids){for(const id of ids)selectedIds.delete(id);return registry.offboard(ids)}function reset(){selectedIds.clear()}function clear(){reset();registry.clear()}function dispose(){reset();registry.dispose()}return{...registry,disabled,selectedIds,selectedItems,selectedValues,register,onboard,unregister,offboard,clear,dispose,reset,select,unselect,toggle,selected,apply,get size(){return registry.size}}}function createSelection(_options={}){const{enroll=false,mandatory=false,multiple=false,...options}=_options;const model=createModel({...options,multiple,enroll:false});function seek(direction=`first`,from){return model.seek(direction,from,ticket=>!toValue(ticket.disabled))}function mandate(){if(!toValue(mandatory)||model.size===0||model.selectedIds.size>0)return;const ticket=seek(`first`);if(ticket)model.select(ticket.id)}function drain(id){if(toValue(model.disabled))return;if(toValue(mandatory)&&model.selectedIds.size===1)return;model.selectedIds.delete(id)}function unselect(id){if(toValue(model.disabled))return;const item=model.get(id);if(!item||toValue(item.disabled))return;drain(id)}function toggle(id){if(toValue(model.disabled))return;if(model.selectedIds.has(id))unselect(id);else model.select(id)}function apply(values,options){const isMultiple=options?.multiple??toValue(multiple);const currentIds=new Set(model.selectedIds);const targetIds=new Set;if(isMultiple){for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids){const ticket=model.get(id);if(!ticket||toValue(ticket.disabled))continue;targetIds.add(id)}}if(toValue(mandatory)&&targetIds.size===0)return;for(const id of currentIds)if(!targetIds.has(id))model.selectedIds.delete(id);for(const id of targetIds)model.selectedIds.add(id)}else{for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids)targetIds.add(id)}const next=targetIds.values().next().value;const last=currentIds.values().next().value;if(!isUndefined(last))drain(last);if(!isUndefined(next))model.select(next)}}function register(registration={}){const id=registration.id??useId();const decorated={select:()=>model.select(id),unselect:()=>unselect(id),toggle:()=>toggle(id),...registration,id};const ticket=model.register(decorated);if(toValue(enroll)&&!toValue(model.disabled)&&!toValue(ticket.disabled))model.select(ticket.id);if(toValue(mandatory)===`force`)mandate();return ticket}function onboard(registrations){const tickets=model.batch(()=>registrations.map(registration=>register(registration)));if(toValue(mandatory)===`force`)mandate();return tickets}return{...model,multiple,register,onboard,unselect,toggle,apply,mandate,seek,get size(){return model.size}}}function createSingle(_options={}){const{mandatory=false,...options}=_options;const registry=createSelection({...options,mandatory,multiple:false});const selectedId=toRef(()=>registry.selectedIds.values().next().value);const selectedItem=toRef(()=>registry.selectedItems.value.values().next().value);const selectedIndex=toRef(()=>selectedItem.value?.index??-1);const selectedValue=toRef(()=>selectedItem.value?.value);return{...registry,selectedId,selectedItem,selectedIndex,selectedValue,get size(){return registry.size}}}function createTokens(tokens={},options={}){const logger=useLogger();const registry=createRegistry({...options,events:true});const cache=new Map;function invalidate(){cache.clear()}registry.on(`register:ticket`,invalidate);registry.on(`unregister:ticket`,invalidate);registry.on(`update:ticket`,invalidate);registry.on(`reindex:registry`,invalidate);registry.on(`clear:registry`,invalidate);registry.onboard(flatten(tokens,options.prefix,!!options.flat));function isAlias(token){return isString(token)&&token.length>2&&token[0]===`{`&&token.at(-1)===`}`}function isTokenAlias(value){return isObject(value)&&`$value`in value}function resolve(token,visited=new Set){const cacheKey=isString(token)?token:JSON.stringify(token);if(cache.has(cacheKey))return cache.get(cacheKey);const reference=isTokenAlias(token)?token.$value:token;const isAliasReference=isString(reference)&&isAlias(reference);if(isTokenAlias(token)&&!isAliasReference){cache.set(cacheKey,reference);return reference}const clean=isAliasReference?reference.slice(1,-1):String(reference);if(visited.has(clean)){logger.warn(`Circular alias detected for "${clean}"`);cache.set(cacheKey,void 0);return}visited.add(clean);let found=registry.get(clean);let segments=[];if(!found&&clean.includes(`.`)){const parts=clean.split(`.`);for(let i=parts.length-1;i>0;i--){const prefix=parts.slice(0,i).join(`.`);const suffix=parts.slice(i);const candidate=registry.get(prefix);if(!isUndefined(candidate?.value)){found=candidate;segments=suffix;break}}}if(isUndefined(found?.value)){if(isAliasReference)logger.warn(`Alias not found for "${String(reference)}"`);cache.set(cacheKey,void 0);return}let current=found.value;if(segments.length>0){if(isTokenAlias(current))current=current.$value;for(const segment of segments){if(!isObject(current)||UNSAFE_KEYS.has(segment)||!Object.prototype.hasOwnProperty.call(current,segment)){current=void 0;break}current=current[segment];if(isTokenAlias(current))current=current.$value}if(isUndefined(current)){logger.warn(`Path not found inside "${clean}": ${segments.join(`.`)}`);cache.set(cacheKey,void 0);return}}else if(isTokenAlias(current))current=current.$value;const result=isString(current)&&isAlias(current)?resolve(current,visited):current;cache.set(cacheKey,result);return result}return{...registry,resolve,isAlias,get size(){return registry.size}}}function flatten(tokens,prefix=``,flat=false){const flattened=[];const stack=[{tokens,prefix,flat}];while(stack.length>0){const{tokens:currentTokens,prefix:currentPrefix,flat}=stack.pop();const meta={};for(const k in currentTokens){if(!Object.hasOwn(currentTokens,k))continue;if(k.startsWith(`$`))meta[k]=currentTokens[k]}if(Object.keys(meta).length>0&¤tPrefix)flattened.push({id:currentPrefix,value:meta});for(const key in currentTokens){if(!Object.hasOwn(currentTokens,key))continue;if(UNSAFE_KEYS.has(key))continue;if(key.startsWith(`$`))continue;const value=currentTokens[key];const id=currentPrefix?`${currentPrefix}.${key}`:key;if(!isObject(value)){flattened.push({id,value});continue}if(`$value`in value){flattened.push({id,value});const inner=value.$value;if(isObject(inner)&&!flat)for(const innerKey in inner){if(!Object.hasOwn(inner,innerKey))continue;if(UNSAFE_KEYS.has(innerKey))continue;if(innerKey.startsWith(`$`))continue;const child=inner[innerKey];const childId=`${id}.${innerKey}`;if(!isObject(child))flattened.push({id:childId,value:child});else if(`$value`in child)flattened.push({id:childId,value:child});else stack.push({tokens:child,prefix:childId,flat})}continue}if(flat){flattened.push({id,value});continue}stack.push({tokens:value,prefix:id,flat})}}return flattened}function toArray(value){return isNullOrUndefined(value)?[]:isArray(value)?value:[value]}function useEventListener(target,event,listener,options){const cleanups=[];function cleanup(){for(const fn of cleanups)fn();cleanups.length=0}function register(el,event,listener,options){el.addEventListener(event,listener,options);return()=>el.removeEventListener(event,listener,options)}const stopWatcher=watch(()=>[toValue(target),toValue(event),unref(listener),toValue(options)],([el,events,listeners,opts])=>{cleanup();if(!el)return;const eventList=toArray(events);const listenerList=toArray(listeners);for(const event of eventList)for(const listenerFn of listenerList)cleanups.push(register(el,event,listenerFn,opts))},{immediate:true,flush:`post`});function stop(){stopWatcher();cleanup()}onScopeDispose(stop,true);return stop}function useWindowEventListener(event,listener,options){return IN_BROWSER?useEventListener(window,event,listener,options):()=>{}}var ThemeAdapter=class ThemeAdapter{static SAFE_IDENT=/^[a-zA-Z0-9_-]+$/;static UNSAFE_CSS=/url\s*\(|src\s*\(|image\s*\(|image-set\s*\(|cross-fade\s*\(|@import|expression\s*\(|[;{}<>\\]|\/\*/i;stylesheetId=`v0-theme-stylesheet`;prefix;rgb=false;dispose;constructor(prefix){if(!ThemeAdapter.SAFE_IDENT.test(prefix))throw new V0Error(`Invalid theme prefix: "${prefix}". Expected an identifier matching ${ThemeAdapter.SAFE_IDENT}.`,{code:`V0_THEME_INVALID_PREFIX`,prefix});this.prefix=prefix}generate(colors,isDark){let css=``;for(const theme in colors){const themeColors=colors[theme];if(!themeColors)continue;if(!ThemeAdapter.SAFE_IDENT.test(theme))continue;const vars=Object.entries(themeColors).filter(([key,val])=>ThemeAdapter.SAFE_IDENT.test(key)&&!ThemeAdapter.UNSAFE_CSS.test(val)).map(([key,val])=>` --${this.prefix}-${key}: ${this.rgb?this.decompose(val):val};`).join(`
|
|
2
2
|
`);css+=`[data-theme="${theme}"] {\n${vars}\n}\n`}if(!isUndefined(isDark))css+=`:root {\n color-scheme: ${isDark?`dark`:`light`};\n}\n`;return css}decompose(hex){const{r,g,b,a}=hexToRgb(hex);return isUndefined(a)?`${r}, ${g}, ${b}`:`${r}, ${g}, ${b}, ${a}`}};var V0StyleSheetThemeAdapter=class extends ThemeAdapter{cspNonce;sheet;constructor(options={}){super(options.prefix??`v0`);this.cspNonce=options.cspNonce;this.stylesheetId=options.stylesheetId??this.stylesheetId}setup(app,context,target){if(IN_BROWSER){this.update(context.colors.value,context.isDark.value);const stopWatch=watch([context.colors,context.isDark],([colors,isDark])=>{this.update(colors,isDark)});if(isNull(target)){this.dispose=()=>{stopWatch();this.detach()};return}const targetEl=target instanceof HTMLElement?target:isString(target)?document.querySelector(target):app._container||document.querySelector(`#app`)||document.body;if(!targetEl){this.dispose=()=>{stopWatch();this.detach()};return}if(context.selectedId.value)targetEl.dataset.theme=String(context.selectedId.value);const stopTheme=watch(context.selectedId,id=>{if(!id)return;targetEl.dataset.theme=String(id)});this.dispose=()=>{stopWatch();stopTheme();this.detach()}}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const id=context.selectedId.value;const entry=head.push({htmlAttrs:{"data-theme":id?String(id):``},style:[{innerHTML:this.generate(context.colors.value,context.isDark.value),id:this.stylesheetId,...this.cspNonce?{nonce:this.cspNonce}:{}}]});const stop=watch([context.selectedId,context.colors,context.isDark],([themeId,colors,isDark])=>{entry.patch?.({htmlAttrs:{"data-theme":themeId?String(themeId):``},style:[{innerHTML:this.generate(colors,isDark),id:this.stylesheetId,...this.cspNonce?{nonce:this.cspNonce}:{}}]})});this.dispose=()=>{stop();entry.dispose?.()}}}}update(colors,isDark){if(!IN_BROWSER)return;this.upsert(this.generate(colors,isDark))}upsert(styles){if(!IN_BROWSER)return;if(!this.sheet){this.sheet=new CSSStyleSheet;document.adoptedStyleSheets=[...document.adoptedStyleSheets,this.sheet]}this.sheet.replaceSync(styles)}detach(){if(!IN_BROWSER)return;document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s!==this.sheet);this.sheet=void 0}};function createHydration(){const isHydrated=shallowRef(false);const isSettled=shallowRef(false);function hydrate(){isHydrated.value=true}function settle(){isSettled.value=true}return{isHydrated:shallowReadonly(isHydrated),isSettled:shallowReadonly(isSettled),hydrate,settle}}function createFallbackHydration(){return{isHydrated:shallowReadonly(shallowRef(true)),isSettled:shallowReadonly(shallowRef(true)),hydrate:()=>{},settle:()=>{}}}var[createHydrationContext,createHydrationPlugin,useHydration]=createPluginContext(`v0:hydration`,()=>createHydration(),{fallback:()=>createFallbackHydration(),setup:(context,app)=>{const{mount}=app;app.mount=(...args)=>{const vm=mount(...args);nextTick().then(()=>{context.hydrate();nextTick().then(()=>context.settle())});app.mount=mount;return vm}}});function useMediaQuery(query){const resolvedQuery=toRef(()=>toValue(query));const initialQuery=toValue(query);const initialMql=IN_BROWSER&&SUPPORTS_MATCH_MEDIA?window.matchMedia(initialQuery):null;const matches=shallowRef(initialMql?.matches??false);const mediaQueryList=shallowRef(initialMql);const hydration=useHydration();let cleanup=null;function listen(){if(!IN_BROWSER||!SUPPORTS_MATCH_MEDIA)return;cleanup?.();cleanup=null;const mql=window.matchMedia(resolvedQuery.value);mediaQueryList.value=mql;matches.value=mql.matches;function handler(e){matches.value=e.matches}mql.addEventListener(`change`,handler);cleanup=()=>mql.removeEventListener(`change`,handler)}const stopWatch=watch([resolvedQuery,()=>hydration.isHydrated.value],([_,hydrated])=>{if(hydrated)listen()},{immediate:true});function stop(){stopWatch();cleanup?.();cleanup=null}onScopeDispose(stop,true);return{matches:shallowReadonly(matches),query:resolvedQuery,mediaQueryList:shallowReadonly(mediaQueryList),stop}}function usePrefersDark(){return useMediaQuery(`(prefers-color-scheme: dark)`)}function usePrefersReducedMotion(){return useMediaQuery(`(prefers-reduced-motion: reduce)`)}function createTheme(_options={}){const{themes={},palette={},foreground:genForeground,system,...options}=_options;const tokens=createTokens({palette,...themes},{flat:true});const registry=createSingle({...options,reactive:true});const logger=useLogger();for(const id in themes){const{colors:value,...theme}=themes[id];register({id,value,...theme})}const pair=resolveSystemPair(system,registry,logger);const following=shallowRef(Boolean(pair));if(!pair&&options.default&&!registry.selectedId.value)registry.select(options.default);const names=toRef(()=>registry.keys());const colors=computed(()=>{const resolved={};const currentId=registry.selectedId.value;for(const theme of registry.values()){if(theme.lazy&&theme.id!==currentId)continue;const themeColors=resolve(theme.value);if(genForeground)for(const[key,value]of Object.entries(themeColors)){const onKey=`on-${key}`;if(!key.startsWith(`on-`)&&!(onKey in themeColors))themeColors[onKey]=foreground(value)}resolved[theme.id]=themeColors}return resolved});const isDark=toRef(()=>registry.selectedItem.value?.dark??false);const isSystem=toRef(()=>following.value);const media=pair?usePrefersDark():void 0;function follow(){if(!pair||!media)return;const id=media.matches.value?pair.dark:pair.light;if(registry.has(id))registry.select(id)}if(pair){if(IN_BROWSER)follow();else if(options.default&&!registry.selectedId.value)registry.select(options.default);watch(()=>media.matches.value,()=>{if(following.value)follow()})}function select(id){following.value=false;registry.select(id)}function reset(){if(pair){following.value=true;follow();return}if(options.default)registry.select(options.default)}function cycle(themes=names.value){const current=themes.indexOf(registry.selectedId.value??``);select(themes[current===-1?0:(current+1)%themes.length])}function resolve(colors){const resolved={};for(const[key,value]of Object.entries(colors))resolved[key]=tokens.isAlias(value)?tokens.resolve(value):value;return resolved}function register(registration={}){const{colors,...rest}=registration;if(colors&&rest.id&&!registry.has(rest.id))tokens.onboard(flatten({[rest.id]:{colors}},``,true));const item={lazy:false,dark:false,...rest,...colors?{value:colors}:{}};return registry.register(item)}function onboard(registrations){return registry.batch(()=>registrations.map(registration=>register(registration)))}return{...registry,colors,isDark,isSystem,select,reset,register,onboard,cycle,dispose:()=>{media?.stop()},get size(){return registry.size}}}function resolveSystemPair(system,registry,logger){if(!system)return void 0;const light=registry.get(system.light);const dark=registry.get(system.dark);if(!light){logger.warn(`[v0:theme] system.light "${String(system.light)}" is not registered`);return}if(!dark){logger.warn(`[v0:theme] system.dark "${String(system.dark)}" is not registered`);return}if(!dark.dark)logger.warn(`[v0:theme] system.dark "${String(system.dark)}" should have dark: true`);return system}function createThemeFallback(){return{size:0,colors:computed(()=>({})),isDark:shallowRef(false),isSystem:shallowRef(false),cycle:()=>{},reset:()=>{},onboard:()=>[],dispose:()=>{}}}var[createThemeContext,createThemePlugin,useTheme]=createPluginContext(`v0:theme`,options=>createTheme(options),{fallback:()=>createThemeFallback(),setup:(context,app,{adapter=new V0StyleSheetThemeAdapter,target,rgb})=>{if(rgb)adapter.rgb=true;adapter.setup(app,context,target);app.onUnmount(()=>adapter.dispose?.())},persist:ctx=>ctx.isSystem.value?null:ctx.selectedId.value,restore:(ctx,saved)=>{if(isString(saved)||isNumber(saved))ctx.select(saved)}});function merge(ranges){const sorted=ranges.filter(span=>span[0]<span[1]).toSorted((a,b)=>a[0]-b[0]);const merged=[];for(const span of sorted){const last=merged.at(-1);if(last&&span[0]<=last[1])last[1]=Math.max(last[1],span[1]);else merged.push([span[0],span[1]])}return merged}function chunk(text,ranges){const chunks=[];let cursor=0;for(const[start,end]of ranges){if(cursor<start)chunks.push({text:text.slice(cursor,start),match:false});chunks.push({text:text.slice(start,end),match:true});cursor=end}if(cursor<text.length)chunks.push({text:text.slice(cursor),match:false});return chunks}function find(text,query,options){const spans=[];for(const term of toArray(query).filter(Boolean))spans.push(...findMatchRanges(text,term,options));return merge(spans)}function toHighlight(text,query,options={}){const _text=toValue(text);const _query=toValue(query);const _matches=toValue(options.matches);const matchAll=toValue(options.matchAll)??false;const ignoreCase=toValue(options.ignoreCase)??false;const ignoreAccents=toValue(options.ignoreAccents)??false;if(_matches?.length)return chunk(_text,merge(_matches));if(_query){const ranges=find(_text,_query,{matchAll,ignoreCase,ignoreAccents});return ranges.length>0?chunk(_text,ranges):[{text:_text,match:false}]}return[{text:_text,match:false}]}function createDefaultBreakpoints(){return{mobileBreakpoint:`lg`,breakpoints:{xs:0,sm:600,md:840,lg:1145,xl:1545,xxl:2138}}}function createBreakpoints(_options={}){const{ssr,...options}=_options;const defaults=createDefaultBreakpoints();const{mobileBreakpoint,breakpoints}=mergeDeep(defaults,options);const sorted=Object.entries(breakpoints).toSorted((a,b)=>a[1]-b[1]);const names=sorted.map(([n])=>n);const mb=isNumber(mobileBreakpoint)?mobileBreakpoint:breakpoints[mobileBreakpoint]??breakpoints.md;const initialWidth=ssr?ssr.clientWidth:IN_BROWSER?window.innerWidth:0;const initialHeight=ssr?ssr.clientHeight??0:IN_BROWSER?window.innerHeight:0;const name=shallowRef(`xs`);const width=shallowRef(initialWidth);const height=shallowRef(initialHeight);const isMobile=shallowRef(false);const xs=shallowRef(false);const sm=shallowRef(false);const md=shallowRef(false);const lg=shallowRef(false);const xl=shallowRef(false);const xxl=shallowRef(false);const smAndUp=shallowRef(false);const mdAndUp=shallowRef(false);const lgAndUp=shallowRef(false);const xlAndUp=shallowRef(false);const smAndDown=shallowRef(false);const mdAndDown=shallowRef(false);const lgAndDown=shallowRef(false);const xlAndDown=shallowRef(false);function resolve(value,media){let current=`xs`;for(let i=sorted.length-1;i>=0;i--){const px=sorted[i][1];if(media?window.matchMedia(`(min-width: ${px}px)`).matches:value>=px){current=sorted[i][0];break}}const index=names.indexOf(current);const mobile=isNumber(mb)?media?!window.matchMedia(`(min-width: ${mb}px)`).matches:value<mb:index<names.indexOf(mobileBreakpoint);return{current,index,mobile}}function apply({current,index,mobile}){name.value=current;isMobile.value=mobile;xs.value=index===0;sm.value=index===1;md.value=index===2;lg.value=index===3;xl.value=index===4;xxl.value=index===5;smAndUp.value=index>=1;mdAndUp.value=index>=2;lgAndUp.value=index>=3;xlAndUp.value=index>=4;smAndDown.value=index<=1;mdAndDown.value=index<=2;lgAndDown.value=index<=3;xlAndDown.value=index<=4}apply(resolve(initialWidth,!ssr&&IN_BROWSER&&SUPPORTS_MATCH_MEDIA));function update(){if(!IN_BROWSER)return;width.value=window.innerWidth;height.value=window.innerHeight;apply(resolve(width.value,SUPPORTS_MATCH_MEDIA))}return{breakpoints,mobileBreakpoint,name:readonly(name),width:readonly(width),height:readonly(height),isMobile:readonly(isMobile),xs:readonly(xs),sm:readonly(sm),md:readonly(md),lg:readonly(lg),xl:readonly(xl),xxl:readonly(xxl),smAndUp:readonly(smAndUp),mdAndUp:readonly(mdAndUp),lgAndUp:readonly(lgAndUp),xlAndUp:readonly(xlAndUp),smAndDown:readonly(smAndDown),mdAndDown:readonly(mdAndDown),lgAndDown:readonly(lgAndDown),xlAndDown:readonly(xlAndDown),ssr:!!ssr,update}}function createBreakpointsFallback(options={}){if(options.ssr)return createBreakpoints(options);const defaults=createDefaultBreakpoints();return{breakpoints:defaults.breakpoints,mobileBreakpoint:defaults.mobileBreakpoint,name:readonly(shallowRef(`xs`)),width:readonly(shallowRef(0)),height:readonly(shallowRef(0)),isMobile:readonly(shallowRef(true)),xs:readonly(shallowRef(true)),sm:readonly(shallowRef(false)),md:readonly(shallowRef(false)),lg:readonly(shallowRef(false)),xl:readonly(shallowRef(false)),xxl:readonly(shallowRef(false)),smAndUp:readonly(shallowRef(false)),mdAndUp:readonly(shallowRef(false)),lgAndUp:readonly(shallowRef(false)),xlAndUp:readonly(shallowRef(false)),smAndDown:readonly(shallowRef(true)),mdAndDown:readonly(shallowRef(true)),lgAndDown:readonly(shallowRef(true)),xlAndDown:readonly(shallowRef(true)),ssr:false,update:()=>{}}}var[createBreakpointsContext,createBreakpointsPlugin,useBreakpoints]=createPluginContext(`v0:breakpoints`,options=>createBreakpoints(options),{fallback:()=>createBreakpointsFallback(),setup:(context,app,_options)=>{if(IN_BROWSER&&!_options?.ssr)context.update();const{mount}=app;app.mount=(...args)=>{const vm=mount(...args);const hydration=useHydration();function listener(){context.update()}const unwatch=watch(hydration.isHydrated,hydrated=>{if(hydrated)listener()},{immediate:true});const cleanup=useWindowEventListener(`resize`,listener,{passive:true});onScopeDispose(()=>{cleanup();unwatch()},true);app.mount=mount;return vm}}});var isMac=IN_BROWSER&&/mac|iphone|ipad|ipod/i.test(navigator?.userAgent??``);var ReducedMotionAdapter=class{dispose};function payload(reduced){return reduced?`reduce`:`no-preference`}var V0ReducedMotionAdapter=class extends ReducedMotionAdapter{setup(app,context){if(IN_BROWSER){function sync(reduced){document.body.dataset.reducedMotion=payload(reduced)}sync(context.isReduced.value);this.dispose=watch(context.isReduced,sync)}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const entry=head.push({bodyAttrs:{"data-reduced-motion":payload(context.isReduced.value)}});const stop=watch(context.isReduced,reduced=>entry.patch?.({bodyAttrs:{"data-reduced-motion":payload(reduced)}}));this.dispose=()=>{stop();entry.dispose?.()}}}}};function createReducedMotion(options={}){const selectedMode=shallowRef(options.mode??`system`);const media=usePrefersReducedMotion();const isReduced=toRef(()=>{if(selectedMode.value===`always`)return true;if(selectedMode.value===`never`)return false;return media.matches.value});function select(value){selectedMode.value=value}return{selectedMode:shallowReadonly(selectedMode),isReduced,select,dispose:media.stop}}function createReducedMotionFallback(){return{selectedMode:shallowReadonly(shallowRef(`system`)),isReduced:shallowReadonly(shallowRef(false)),select:()=>{},dispose:()=>{}}}var[createReducedMotionContext,createReducedMotionPlugin,useReducedMotion]=createPluginContext(`v0:reduced-motion`,options=>createReducedMotion(options),{fallback:()=>createReducedMotionFallback(),persist:context=>context.selectedMode.value,restore:(context,saved)=>{if(saved===`system`||saved===`always`||saved===`never`)context.select(saved)},setup:(context,app,{adapter=new V0ReducedMotionAdapter})=>{app.onUnmount(()=>context.dispose());adapter.setup(app,context);app.onUnmount(()=>adapter.dispose?.())}});var RtlAdapter=class{dispose};var V0RtlAdapter=class extends RtlAdapter{setup(app,context,target){if(IN_BROWSER){if(isNull(target))return;const targetEl=target instanceof HTMLElement?target:isString(target)?document.querySelector(target):document.documentElement;if(!targetEl)return;targetEl.dir=context.isRtl.value?`rtl`:`ltr`;this.dispose=watch(context.isRtl,value=>{targetEl.dir=value?`rtl`:`ltr`})}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const entry=head.push({htmlAttrs:{dir:context.isRtl.value?`rtl`:`ltr`}});const stop=watch(context.isRtl,rtl=>entry.patch?.({htmlAttrs:{dir:rtl?`rtl`:`ltr`}}));this.dispose=()=>{stop();entry.dispose?.()}}}}};function createRtl(options={}){const isRtl=shallowRef(options.default??false);function toggle(){isRtl.value=!isRtl.value}return{isRtl,toggle,dispose:()=>{}}}function createRtlFallback(){return{isRtl:shallowRef(false),toggle:()=>{},dispose:()=>{}}}var[createRtlContext,createRtlPlugin,useRtl]=createPluginContext(`v0:rtl`,options=>createRtl(options),{fallback:()=>createRtlFallback(),setup:(context,app,{adapter=new V0RtlAdapter,target})=>{adapter.setup(app,context,target);app.onUnmount(()=>adapter.dispose?.())},persist:ctx=>ctx.isRtl.value,restore:(ctx,saved)=>{if(isBoolean(saved))ctx.isRtl.value=saved}});var makeVHighlightProps=propsFactory({text:{type:String,default:``},query:[String,Array],matches:Array,matchAll:Boolean,ignoreCase:Boolean,ignoreAccents:[Boolean,String],color:String,opacity:[String,Number],markClass:String,...makeTagProps({tag:`span`})},`VHighlight`);var VHighlight=defineComponent({name:`VHighlight`,props:makeVHighlightProps(),setup(props){const chunks=computed(()=>toHighlight(()=>props.text,()=>props.query,{matches:()=>props.matches,matchAll:()=>props.matchAll,ignoreCase:()=>props.ignoreCase,ignoreAccents:()=>props.ignoreAccents??false}));const{textColorClasses,textColorStyles}=useTextColor(()=>props.color);return()=>createVNode(props.tag,{"class":`v-highlight`},{default:()=>[chunks.value.map((chunk,i)=>chunk.match?createBaseVNode(`mark`,{"key":i,"class":normalizeClass([`v-highlight__mark`,textColorClasses.value,props.markClass]),"style":normalizeStyle([textColorStyles.value,{"--v-highlight-opacity":props.opacity}])},[chunk.text]):createBaseVNode(`span`,{"key":i},[chunk.text]))]})}});function useFocusRepair(active,content,fallback){return function repairOrphanedFocus(e){if(!e.relatedTarget&&document.activeElement===document.body&&active.value){requestAnimationFrame(()=>{if(!active.value)return;const el=content();((el&&focusableChildren(el)[0])??fallback())?.focus({preventScroll:true})});return true}return false}}function isNavigable(item){return!!item&&item.type!==`divider`&&item.type!==`subheader`&&!item.props?.disabled}function findNavigableIndex(items,from,step){const count=items.length;for(let offset=0;offset<count;offset++){const index=((from+offset*step)%count+count)%count;if(isNavigable(items[index]))return index}return-1}function useScrolling(listRef,textFieldRef,virtualScrollRef,displayItems,options={}){const isScrolling=shallowRef(false);let scrollTimeout;let focusToken=0;let pendingOpenStep=null;function onListScroll(e){cancelAnimationFrame(scrollTimeout);isScrolling.value=true;scrollTimeout=requestAnimationFrame(()=>{scrollTimeout=requestAnimationFrame(()=>{isScrolling.value=false})})}async function finishScrolling(){await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>{if(isScrolling.value){const stop=watch(isScrolling,()=>{stop();resolve()})}else resolve()})}function getListEl(){return listRef.value?.$el}function findItemEl(index){return getListEl()?.querySelector(`[aria-posinset="${index+1}"]`)??null}async function focusItem(index,scroll=true,position=`center`){if(index<0)return false;if(!scroll){const mounted=findItemEl(index);mounted?.focus({preventScroll:true});return!!mounted}const token=++focusToken;const listEl=getListEl();if(listEl?.contains(getActiveElement()))listEl.focus({preventScroll:true});virtualScrollRef.value?.scrollToIndex(index,position);let el=findItemEl(index);const deadline=performance.now()+500;while(!el&&performance.now()<deadline){await new Promise(resolve=>requestAnimationFrame(resolve));if(token!==focusToken)return true;el=findItemEl(index)}el?.focus({preventScroll:true});if(el&&listEl)alignItem(listEl,el,position);return!!el}function alignItem(listEl,el,position){const viewTop=listEl.getBoundingClientRect().top+listEl.clientTop;const viewHeight=listEl.clientHeight;const{top,height}=el.getBoundingClientRect();const delta=position===`start`?top-viewTop:position===`end`?top+height-(viewTop+viewHeight):top+height/2-(viewTop+viewHeight/2);if(Math.abs(delta)>1)listEl.scrollTop+=delta}async function focusFirstItem(){if(!await focusItem(findNavigableIndex(toValue(displayItems),0,1)))listRef.value?.focus(`first`)}async function focusLastItem(){const items=toValue(displayItems);if(!await focusItem(findNavigableIndex(items,items.length-1,-1)))listRef.value?.focus(`last`)}async function focusFromActivator(step,landOnSelected=false){if(!toValue(options.noAutoScroll)){const selected=options.selectedIndex?.()??-1;if(selected>=0){const target=landOnSelected?selected:findNavigableIndex(toValue(displayItems),selected+step,step);return await focusItem(target,false)||focusItem(target)}}if(step===1){const header=options.headerEl?.();const firstInHeader=header&&focusableChildren(header)[0];if(firstInHeader)return firstInHeader.focus()}if(findNavigableIndex(toValue(displayItems),0,1)<0){const content=options.menuContentEl?.();const children=content?focusableChildren(content):[];return(step===1?children[0]:children.at(-1))?.focus()}return step===1?focusFirstItem():focusLastItem()}function onActivatorKeydown(e,menu){const step=e.key===`ArrowDown`?1:e.key===`ArrowUp`?-1:null;if(!step)return false;const wasOpen=menu.value;menu.value=true;if(getListEl()?.contains(getActiveElement()))return false;if(!wasOpen){setPendingFocus(step);return false}e.stopImmediatePropagation();focusFromActivator(step);return true}function setPendingFocus(step){pendingOpenStep=step}function flushPendingFocus(){if(!pendingOpenStep)return false;const step=pendingOpenStep;pendingOpenStep=null;focusFromActivator(step,true);return true}function onListKeydownCapture(e){if(e.key!==`ArrowUp`&&e.key!==`ArrowDown`)return;const listEl=getListEl();const active=getActiveElement();if(!listEl||!active||!listEl.contains(active))return;const itemEl=active.closest(`[aria-posinset]`);if(!itemEl||!listEl.contains(itemEl))return;const mounted=listEl.querySelectorAll(`[aria-posinset]`);if(!(itemEl===(e.key===`ArrowUp`?mounted[0]:mounted[mounted.length-1])))return;const position=Number(itemEl.getAttribute(`aria-posinset`));if(!position)return;const step=e.key===`ArrowUp`?-1:1;const index=findNavigableIndex(toValue(displayItems),position-1+step,step);if(index<0||index===position-1)return;e.preventDefault();e.stopImmediatePropagation();focusItem(index,true,step===1?`end`:`start`)}async function onListKeydown(e){if(e.key===`Tab`){textFieldRef.value?.focus();return}if(e.key===`Home`||e.key===`End`){e.preventDefault();e.stopImmediatePropagation();await(e.key===`Home`?focusFirstItem():focusLastItem());return}if(e.key!==`PageDown`&&e.key!==`PageUp`)return;const list=getListEl();if(!list)return;await finishScrolling();const children=list.querySelectorAll(`:scope > :not(.v-virtual-scroll__spacer)`);if(e.key===`PageDown`){const top=list.getBoundingClientRect().top;for(const child of children)if(child.getBoundingClientRect().top>=top){child.focus();break}}else{const bottom=list.getBoundingClientRect().bottom;for(const child of[...children].reverse())if(child.getBoundingClientRect().bottom<=bottom){child.focus();break}}}return{listEvents:{onScrollPassive:onListScroll,onKeydownCapture:onListKeydownCapture,onKeydown:onListKeydown},focusItem,focusFirstItem,focusLastItem,focusFromActivator,onActivatorKeydown,setPendingFocus,flushPendingFocus}}function useOpenOnFocus(menu,isFocused,enabled){let returningFocus=false;watch(menu,val=>{if(val)return;returningFocus=true;nextTick(()=>returningFocus=false)});watch(isFocused,val=>{if(!val||returningFocus)returningFocus=false;else if(toValue(enabled))menu.value=true})}function useSelectionMenu(props,options){const _menu=useProxiedModel(props,`menu`);const menu=computed({get:()=>_menu.value,set:v=>{if(_menu.value&&!v&&options.vMenuRef.value?.ΨopenChildren.size)return;if(!v&&props.menuProps?.persistent)return;if(v&&toValue(options.menuDisabled))return;_menu.value=v}});useOpenOnFocus(menu,options.isFocused,()=>props.openOnFocus);function closeOnSelect(){if(props.multiple||props.menuProps?.closeOnContentClick===false)return;menu.value=false}return{menu,closeOnSelect}}function useFocusGroups({groups,onLeave}){function getContentRef(group){return group.type===`list`?group.contentRef.value?.$el:group.contentRef.value}function getChildren(group){const contentRef=getContentRef(group);return contentRef?focusableChildren(contentRef):[]}function onTabKeydown(e){const target=e.target;const direction=e.shiftKey?`backward`:`forward`;const children=groups.map(getChildren);const currentGroupIndex=groups.map(g=>g.type===`list`?g.contentRef.value?.$el:g.contentRef.value).findIndex(el=>el?.contains(target));const nextIndex=nextFocusGroup(children,currentGroupIndex,direction,target);if(isNull(nextIndex)){const originGroup=groups[currentGroupIndex];const origin=children[currentGroupIndex];if(originGroup.type===`list`||(direction===`forward`?origin.at(-1)===e.target:origin.at(0)===e.target)){onLeave();const refocused=getActiveElement();if(refocused){const relayed=new KeyboardEvent(`keydown`,{key:`Tab`,shiftKey:e.shiftKey,bubbles:true,cancelable:true});refocused.dispatchEvent(relayed);if(relayed.defaultPrevented)e.preventDefault()}}}else{e.preventDefault();e.stopImmediatePropagation();const nextGroup=groups[nextIndex];if(nextGroup.type===`list`&&toValue(nextGroup.displayItemsCount)>0)nextGroup.contentRef.value?.focus(0);else{const fromBefore=direction===`forward`;children[nextIndex].at(fromBefore?0:-1).focus()}}}function nextFocusGroup(children,currentIndex,direction,target){const originGroup=groups[currentIndex];const origin=children[currentIndex];if(originGroup.type!==`list`){if(!(direction===`forward`?origin.at(-1)===target:origin.at(0)===target))return null}const step=direction===`forward`?1:-1;for(let i=currentIndex+step;i>=0&&i<groups.length;i+=step){const group=groups[i];if(children[i].length>0||group.type===`list`&&toValue(group.displayItemsCount)>0)return i}return null}return{onTabKeydown}}function createDefaultFilter(ignoreAccents){return(value,query)=>{if(isNullOrUndefined(value)||isNullOrUndefined(query))return-1;if(!query.length)return 0;const ranges=findMatchRanges(value.toString(),query.toString(),{ignoreCase:true,ignoreAccents,matchAll:true});return ranges.length?ranges:-1}}var defaultFilter=createDefaultFilter();function normaliseMatch(match,query){if(isNullOrUndefined(match)||isBoolean(match)||match===-1)return;if(isNumber(match))return[[match,match+query.length]];if(Array.isArray(match[0]))return match;return[match]}var makeFilterProps=propsFactory({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:`intersection`},ignoreAccents:[Boolean,String],noFilter:Boolean},`filter`);function filterItems(items,query,options){const array=[];const filter=options?.default??createDefaultFilter(options?.ignoreAccents);const keys=options?.filterKeys?wrapInArray(options.filterKeys):false;const customFiltersLength=Object.keys(options?.customKeyFilter??{}).length;if(!items?.length)return array;let lookAheadItems=[];loop:for(let i=0;i<items.length;i++){const[item,transformed=item]=wrapInArray(items[i]);const customMatches={};const defaultMatches={};let match=-1;if((query||customFiltersLength>0)&&!options?.noFilter){let hasOnlyCustomFilters=false;if(isObject(item)){if(item.type===`divider`||item.type===`subheader`){if(lookAheadItems.at(-1)?.type!==`divider`||item.type!==`subheader`)lookAheadItems=[];lookAheadItems.push({index:i,matches:{},type:item.type});continue}const filterKeys=keys||Object.keys(transformed);hasOnlyCustomFilters=filterKeys.length===customFiltersLength;for(const key of filterKeys){const value=getPropertyFromItem(transformed,key);const keyFilter=options?.customKeyFilter?.[key];match=keyFilter?keyFilter(value,query,item):filter(value,query,item);if(match!==-1&&match!==false){if(keyFilter)customMatches[key]=normaliseMatch(match,query);else defaultMatches[key]=normaliseMatch(match,query)}else if(options?.filterMode===`every`)continue loop}}else{match=filter(item,query,item);if(match!==-1&&match!==false)defaultMatches.title=normaliseMatch(match,query)}const defaultMatchesLength=Object.keys(defaultMatches).length;const customMatchesLength=Object.keys(customMatches).length;if(!defaultMatchesLength&&!customMatchesLength)continue;if(options?.filterMode===`union`&&customMatchesLength!==customFiltersLength&&!defaultMatchesLength)continue;if(options?.filterMode===`intersection`&&(customMatchesLength!==customFiltersLength||!defaultMatchesLength&&customFiltersLength>0&&!hasOnlyCustomFilters))continue}if(lookAheadItems.length){array.push(...lookAheadItems);lookAheadItems=[]}array.push({index:i,matches:{...defaultMatches,...customMatches}})}return array}function useFilter(props,items,query,options){const filteredItems=shallowRef([]);const filteredMatches=shallowRef(new Map);const transformedItems=computed(()=>options?.transform?unref(items).map(item=>[item,options.transform(item)]):unref(items));watchEffect(()=>{const _query=isFunction(query)?query():unref(query);const strQuery=!isString(_query)&&!isNumber(_query)?``:String(_query);const results=filterItems(transformedItems.value,strQuery,{customKeyFilter:{...props.customKeyFilter,...unref(options?.customKeyFilter)},default:props.customFilter,filterKeys:props.filterKeys,filterMode:props.filterMode,ignoreAccents:props.ignoreAccents,noFilter:props.noFilter});const originalItems=unref(items);const _filteredItems=[];const _filteredMatches=new Map;results.forEach(({index,matches})=>{const item=originalItems[index];_filteredItems.push(item);if(!isUndefined(item.value))_filteredMatches.set(item.value,matches)});filteredItems.value=_filteredItems;filteredMatches.value=_filteredMatches});function getMatches(item){return filteredMatches.value.get(item.value)}return{filteredItems,filteredMatches,getMatches}}var makeMenuActivatorProps=propsFactory({closeText:{type:String,default:`$vuetify.close`},openText:{type:String,default:`$vuetify.open`}},`autocomplete`);function useMenuActivator(props,isOpen){const uid=useId$1();const menuId=computed(()=>`menu-${uid}`);return{menuId,ariaExpanded:toRef(()=>toValue(isOpen)),ariaControls:toRef(()=>menuId.value)}}var makeSelectProps=propsFactory({chips:Boolean,closableChips:Boolean,eager:Boolean,form:String,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:IconValue,default:`$dropdown`},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:`$vuetify.noDataText`},openOnClear:Boolean,openOnFocus:Boolean,itemColor:String,noAutoScroll:Boolean,...makeMenuActivatorProps(),...makeItemsProps({itemChildren:false})},`Select`);var makeVSelectProps=propsFactory({search:String,...makeFilterProps({filterKeys:[`title`]}),...makeSelectProps(),...omit(makeVTextFieldProps({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`]),...makeTransitionProps({transition:{component:VDialogTransition}})},`VSelect`);var VSelect=genericComponent()({name:`VSelect`,props:makeVSelectProps(),emits:{"update:focused":focused=>true,"update:modelValue":value=>true,"update:menu":ue=>true,"update:search":value=>true,"item:added":item=>true,"item:removed":item=>true},setup(props,{emit,slots}){const{t}=useLocale();const vTextFieldRef=ref();const vMenuRef=ref();const listRef=ref();const headerRef=ref();const footerRef=ref();const vVirtualScrollRef=ref();const{items,transformIn,transformOut}=useItems(props);const search=useProxiedModel(props,`search`,``);const{filteredItems,getMatches}=useFilter(props,items,()=>search.value);const model=useProxiedModel(props,`modelValue`,[],v=>transformIn(v===null?[null]:wrapInArray(v)),v=>{const transformed=transformOut(v);return props.multiple?transformed:transformed[0]??null});const counterValue=computed(()=>{return isFunction(props.counterValue)?props.counterValue(model.value):isNumber(props.counterValue)?props.counterValue:model.value.length});const form=useForm(props);const selectedValues=computed(()=>model.value.map(selection=>selection.value));const isFocused=shallowRef(false);const closableChips=toRef(()=>props.closableChips&&!form.isReadonly.value&&!form.isDisabled.value);const chipDefaults=injectNestedDefaults(`VChip`);const{InputIcon}=useInputIcon(props);let keyboardLookupPrefix=``;let keyboardLookupIndex=0;let keyboardLookupLastTime;let openedByKeyboard=false;const displayItems=computed(()=>{const baseItems=search.value?filteredItems.value:items.value;if(props.hideSelected)return baseItems.filter(item=>!model.value.some(s=>(props.valueComparator||deepEqual)(s,item)));return baseItems});const menuDisabled=computed(()=>props.hideNoData&&!displayItems.value.length||form.isReadonly.value||form.isDisabled.value);const{menu,closeOnSelect}=useSelectionMenu(props,{vMenuRef,menuDisabled,isFocused});const{menuId,ariaExpanded,ariaControls}=useMenuActivator(props,menu);const computedMenuProps=computed(()=>{return{...props.menuProps,activatorProps:{...props.menuProps?.activatorProps||{},"aria-haspopup":`listbox`}}});const{listEvents,focusItem,focusFirstItem,focusLastItem,onActivatorKeydown,setPendingFocus,flushPendingFocus}=useScrolling(listRef,vTextFieldRef,vVirtualScrollRef,displayItems,{selectedIndex:getSelectedIndex,menuContentEl:()=>vMenuRef.value?.contentEl,noAutoScroll:()=>props.noAutoScroll});const repairOrphanedFocus=useFocusRepair(menu,()=>vMenuRef.value?.contentEl,()=>vTextFieldRef.value?.controlRef);const{onTabKeydown}=useFocusGroups({groups:[{type:`element`,contentRef:headerRef},{type:`list`,contentRef:listRef,displayItemsCount:()=>displayItems.value.length},{type:`element`,contentRef:footerRef}],onLeave:()=>{menu.value=false;vTextFieldRef.value?.focus()}});function onClear(e){if(props.openOnClear)menu.value=true}function onMousedownControl(){if(menuDisabled.value)return;openedByKeyboard=false;setPendingFocus(null);menu.value=!menu.value}function onMenuKeydown(e){if(e.key===`Tab`)onTabKeydown(e);if(listRef.value?.$el.contains(e.target)&&checkPrintable(e))onKeydown(e)}function onKeydown(e){if(!e.key||form.isReadonly.value)return;switch(e.key){case`Escape`:case`Tab`:menu.value=false;break;case`Enter`:case` `:e.preventDefault();openedByKeyboard=true;menu.value=true;break;case`ArrowDown`:case`ArrowUp`:e.preventDefault();openedByKeyboard=true;if(onActivatorKeydown(e,menu))return;break;case`Home`:e.preventDefault();if(menu.value)focusFirstItem();break;case`End`:e.preventDefault();if(menu.value)focusLastItem();break;case`Backspace`:if(!props.clearable)break;e.preventDefault();for(const item of model.value)emit(`item:removed`,item);model.value=[];onClear(e);return}const KEYBOARD_LOOKUP_THRESHOLD=1e3;if(!checkPrintable(e))return;const now=performance.now();if(now-keyboardLookupLastTime>KEYBOARD_LOOKUP_THRESHOLD){keyboardLookupPrefix=``;keyboardLookupIndex=0}keyboardLookupPrefix+=e.key.toLowerCase();keyboardLookupLastTime=now;const items=displayItems.value;function findItem(){let result=findItemBase();if(result)return result;if(keyboardLookupPrefix.at(-1)===keyboardLookupPrefix.at(-2)){keyboardLookupPrefix=keyboardLookupPrefix.slice(0,-1);keyboardLookupIndex++;result=findItemBase();if(result)return result}keyboardLookupIndex=0;result=findItemBase();if(result)return result;keyboardLookupPrefix=e.key.toLowerCase();return findItemBase()}function findItemBase(){for(let i=keyboardLookupIndex;i<items.length;i++){const _item=items[i];if(_item.title.toLowerCase().startsWith(keyboardLookupPrefix))return[_item,i]}}const result=findItem();if(!result)return;const[item,index]=result;keyboardLookupIndex=index;if(menu.value){if(!props.multiple)select(item,true,false);focusItem(index)}else if(!props.multiple)select(item,true)}function select(item,set=true,closeMenu=true){if(item.props.disabled)return;const comparator=props.valueComparator||deepEqual;if(props.multiple){const index=model.value.findIndex(selection=>comparator(selection.value,item.value));const add=set==null?!~index:set;if(~index){const value=add?[...model.value,item]:[...model.value];const[removed]=value.splice(index,1);if(!add)emit(`item:removed`,removed);model.value=value}else if(add){emit(`item:added`,item);model.value=[...model.value,item]}}else{const add=set!==false;const old=model.value[0];if(add){if(old&&!comparator(old.value,item.value)){emit(`item:removed`,old);emit(`item:added`,item)}else if(!old)emit(`item:added`,item);model.value=[item]}else{if(old)emit(`item:removed`,old);model.value=[]}if(closeMenu)nextTick(()=>closeOnSelect())}}let mousedownInsideContentAt=0;function onMousedownContent(){mousedownInsideContentAt=performance.now()}function onBlur(e){const target=e.target;if(!vTextFieldRef.value?.$el.contains(target))menu.value=false;const next=e.relatedTarget;if(vMenuRef.value?.contentEl?.contains(next)||!next&&performance.now()-mousedownInsideContentAt<10)isFocused.value=true}function getSelectedIndex(){return displayItems.value.findIndex(item=>model.value.some(s=>(props.valueComparator||deepEqual)(s.value,item.value)))}async function onAfterEnter(){if(props.eager)vVirtualScrollRef.value?.calculateVisibleItems();if(!listRef.value||!isFocused.value)return;if(flushPendingFocus())return;if(listRef.value.$el?.contains(getActiveElement()))return;const selected=getSelectedIndex();if(selected>=0&&await focusItem(selected,!props.noAutoScroll))return;if(openedByKeyboard)focusFirstItem()}function onAfterLeave(){search.value=``;if(isFocused.value){if(vMenuRef.value?.contentEl?._clickOutside?.lastMousedownWasOutside)isFocused.value=false;else vTextFieldRef.value?.focus()}}function onFocusin(e){isFocused.value=true}function onFocusout(e){if(!vTextFieldRef.value?.$el.contains(e.relatedTarget)&&!e.currentTarget.contains(e.relatedTarget)){if(repairOrphanedFocus(e))return;isFocused.value=false}}function onModelUpdate(v){if(v==null){for(const item of model.value)emit(`item:removed`,item);model.value=[]}else if(matchesSelector(vTextFieldRef.value,`:autofill`)||matchesSelector(vTextFieldRef.value,`:-webkit-autofill`)){const item=items.value.find(item=>item.title===v);if(item)select(item)}else if(vTextFieldRef.value)vTextFieldRef.value.value=``}watch(menu,val=>{if(!val){openedByKeyboard=false;setPendingFocus(null)}if(!props.hideSelected&&menu.value&&model.value.length){const index=getSelectedIndex();IN_BROWSER$1&&!props.noAutoScroll&&window.requestAnimationFrame(()=>{index>=0&&vVirtualScrollRef.value?.scrollToIndex(index,`center`)})}});watch(items,(newVal,oldVal)=>{if(menu.value)return;if(isFocused.value&&props.hideNoData&&!oldVal.length&&newVal.length)menu.value=true});useRender(()=>{const hasChips=!!(props.chips||slots.chip);const hasList=!!(!props.hideNoData||displayItems.value.length||slots[`prepend-item`]||slots[`append-item`]||slots[`no-data`]);const isDirty=model.value.length>0;const textFieldProps=VTextField.filterProps(props);const placeholder=isDirty||!isFocused.value&&props.label&&!props.persistentPlaceholder?void 0:props.placeholder;const menuSlotProps={search,filteredItems:filteredItems.value};return createVNode(VTextField,mergeProps({"ref":vTextFieldRef},textFieldProps,{"modelValue":model.value.map(v=>v.props.title).join(`, `),"name":void 0,"onUpdate:modelValue":onModelUpdate,"focused":isFocused.value,"onUpdate:focused":$event=>isFocused.value=$event,"validationValue":model.externalValue,"counterValue":counterValue.value,"dirty":isDirty,"class":[`v-select`,{"v-select--active-menu":menu.value,"v-select--chips":!!props.chips,[`v-select--${props.multiple?`multiple`:`single`}`]:true,"v-select--selected":model.value.length,"v-select--selection-slot":!!slots.selection},props.class],"style":props.style,"inputmode":`none`,"placeholder":placeholder,"onClick:clear":onClear,"onMousedown:control":onMousedownControl,"onBlur":onBlur,"onKeydown":onKeydown,"aria-expanded":ariaExpanded.value,"aria-controls":ariaControls.value}),{...slots,default:({id})=>createBaseVNode(Fragment,null,[selectedValues.value.map((value,i)=>createBaseVNode(`input`,{"key":i,"type":`hidden`,"name":props.name,"value":value,"form":props.form},null)),createVNode(VMenu,mergeProps({"id":menuId.value,"ref":vMenuRef,"modelValue":menu.value,"onUpdate:modelValue":$event=>menu.value=$event,"activator":`parent`,"captureFocus":false,"openOnArrow":false,"disabled":menuDisabled.value,"_disableKeys":true,"eager":props.eager,"maxHeight":310,"openOnClick":false,"closeOnContentClick":false,"transition":props.transition,"onAfterEnter":onAfterEnter,"onAfterLeave":onAfterLeave},computedMenuProps.value,{"contentClass":[`v-select__content`,computedMenuProps.value.contentClass]}),{default:()=>[createVNode(VSheet,{"elevation":props.menuElevation,"onFocusin":onFocusin,"onFocusout":onFocusout,"onKeydown":onMenuKeydown,"onMousedown":onMousedownContent},{default:()=>[slots[`menu-header`]&&createBaseVNode(`header`,{"ref":headerRef},[slots[`menu-header`](menuSlotProps)]),hasList&&createVNode(VList,mergeProps({"key":`select-list`,"ref":listRef,"class":`v-list--navigable`,"selected":selectedValues.value,"selectStrategy":props.multiple?`independent`:`single-independent`,"tabindex":`-1`,"selectable":!!displayItems.value.length,"aria-live":`polite`,"aria-labelledby":`${id.value}-label`,"aria-multiselectable":props.multiple,"color":props.itemColor??props.color},listEvents,props.listProps),{default:()=>[slots[`prepend-item`]?.(),!displayItems.value.length&&!props.hideNoData&&(slots[`no-data`]?.()??createVNode(VListItem,{"key":`no-data`,"title":t(props.noDataText)},null)),createVNode(VVirtualScroll,{"ref":vVirtualScrollRef,"renderless":true,"items":displayItems.value,"itemKey":`value`},{default:({item,index,itemRef})=>{const camelizedProps=camelizeProps(item.props);const itemProps=mergeProps(item.props,{ref:itemRef,key:item.value,onClick:()=>select(item,null),"aria-posinset":index+1,"aria-setsize":displayItems.value.length});if(item.type===`divider`)return slots.divider?.({props:item.raw,index})??createVNode(VDivider,mergeProps(item.props,{"ref":itemRef,"key":`divider-${index}`}),null);if(item.type===`subheader`)return slots.subheader?.({props:item.raw,index})??createVNode(VListSubheader,mergeProps(item.props,{"ref":itemRef,"key":`subheader-${index}`}),null);return slots.item?.({item:item.raw,internalItem:item,index,props:itemProps})??createVNode(VListItem,mergeProps(itemProps,{"role":`option`}),{prepend:({isSelected})=>createBaseVNode(Fragment,null,[props.multiple&&!props.hideSelected?createVNode(VCheckboxBtn,{"key":item.value,"modelValue":isSelected,"ripple":false,"tabindex":`-1`,"aria-hidden":true,"onClick":event=>event.preventDefault()},null):void 0,camelizedProps.prependAvatar&&createVNode(VAvatar,{"image":camelizedProps.prependAvatar},null),camelizedProps.prependIcon&&createVNode(VIcon,{"icon":camelizedProps.prependIcon},null)]),title:()=>{return search.value?createVNode(VHighlight,{"text":item.title,"matches":getMatches(item)?.title,"markClass":`v-select__mask`,"matchAll":true,"ignoreCase":true},null):item.title}})}}),slots[`append-item`]?.()]}),slots[`menu-footer`]&&createBaseVNode(`footer`,{"ref":footerRef},[slots[`menu-footer`](menuSlotProps)])]})]}),model.value.map((item,index)=>{function onChipClose(e){e.stopPropagation();e.preventDefault();select(item,false)}const slotProps=mergeProps(VChip.filterProps(item.props),{"onClick:close":onChipClose,onKeydown(e){if(e.key!==`Enter`&&e.key!==` `)return;e.preventDefault();e.stopPropagation();onChipClose(e)},onMousedown(e){e.preventDefault();e.stopPropagation()},modelValue:true,"onUpdate:modelValue":void 0});const hasSlot=hasChips?!!slots.chip:!!slots.selection;const slotContent=hasSlot?ensureValidVNode(hasChips?slots.chip({item:item.raw,internalItem:item,index,props:slotProps}):slots.selection({item:item.raw,internalItem:item,index})):void 0;if(hasSlot&&!slotContent)return void 0;return createBaseVNode(`div`,{"key":item.value,"class":`v-select__selection`},[hasChips?!slots.chip?createVNode(VChip,mergeProps({"key":`chip`,"closable":closableChips.value,"size":chipDefaults.value?.size??`small`,"text":item.title,"disabled":item.props.disabled},slotProps),null):createVNode(VDefaultsProvider,{"key":`chip-defaults`,"defaults":{VChip:{closable:closableChips.value,size:chipDefaults.value?.size??`small`,text:item.title}}},{default:()=>[slotContent]}):slotContent??createBaseVNode(`span`,{"class":`v-select__selection-text`},[item.title,props.multiple&&index<model.value.length-1&&createBaseVNode(`span`,{"class":`v-select__selection-comma`},[createTextVNode(`,`)])])])})]),"append-inner":(...args)=>createBaseVNode(Fragment,null,[slots[`append-inner`]?.(...args),props.menuIcon?createVNode(VIcon,{"class":`v-select__menu-icon`,"color":vTextFieldRef.value?.fieldIconColor,"icon":props.menuIcon,"aria-hidden":true},null):void 0,props.appendInnerIcon&&createVNode(InputIcon,{"key":`append-icon`,"name":`appendInner`,"color":args[0].iconColor.value},null)])})});return forwardRefs({isFocused,menu,search,filteredItems,select},vTextFieldRef)}});export{useFilter as a,useScrolling as c,VVirtualScroll as d,makeFilterProps as i,useFocusRepair as l,makeSelectProps as n,useFocusGroups as o,useMenuActivator as r,useSelectionMenu as s,VSelect as t,VHighlight as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as useElevation,D as makeLocationProps,F as useBackgroundColor,G as makeThemeProps,K as provideTheme,M as useBorder,N as makeRoundedProps,O as useLocation,P as useRounded,R as makeDimensionProps,V as makeTagProps,gt as propsFactory,ht as makeComponentProps,it as useRender,j as makeBorderProps,k as makeElevationProps,o as makePositionProps,s as usePosition,st as genericComponent,z as useDimension}from"./ripple-BVltMmyV.js";import{D as createVNode,Zn as normalizeClass,er as normalizeStyle}from"./runtime-core.esm-bundler-DGXg_mpN.js";var makeVSheetProps=propsFactory({color:String,...makeBorderProps(),...makeComponentProps(),...makeDimensionProps(),...makeElevationProps(),...makeLocationProps(),...makePositionProps(),...makeRoundedProps(),...makeTagProps(),...makeThemeProps()},`VSheet`);var VSheet=genericComponent()({name:`VSheet`,props:makeVSheetProps(),setup(props,{slots}){const{themeClasses}=provideTheme(props);const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.color);const{borderClasses}=useBorder(props);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{locationStyles}=useLocation(props);const{positionClasses}=usePosition(props);const{roundedClasses,roundedStyles}=useRounded(props);useRender(()=>createVNode(props.tag,{"class":normalizeClass([`v-sheet`,themeClasses.value,backgroundColorClasses.value,borderClasses.value,elevationClasses.value,positionClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([backgroundColorStyles.value,dimensionStyles.value,locationStyles.value,roundedStyles.value,props.style])},slots));return{}}});export{makeVSheetProps as n,VSheet as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as useElevation,F as useBackgroundColor,G as makeThemeProps,K as provideTheme,Ln as consoleWarn,R as makeDimensionProps,X as useLocale,gt as propsFactory,it as useRender,k as makeElevationProps,st as genericComponent,un as wrapInArray,z as useDimension}from"./ripple-BVltMmyV.js";import{Zn as normalizeClass,_ as createBaseVNode,et as mergeProps,g as computed,o as Fragment}from"./runtime-core.esm-bundler-DGXg_mpN.js";var rootTypes={actions:`button@2`,article:`heading, paragraph`,avatar:`avatar`,button:`button`,card:`image, heading`,"card-avatar":`image, list-item-avatar`,chip:`chip`,"chip-group":`chip@8`,"date-picker":`list-item, heading, divider, date-picker-options, date-picker-days, actions`,"date-picker-options":`text, avatar@2`,"date-picker-days":`avatar@28`,divider:`divider`,heading:`heading`,image:`image`,"list-item":`text`,"list-item-avatar":`avatar, text`,"list-item-two-line":`sentences`,"list-item-avatar-two-line":`avatar, sentences`,"list-item-three-line":`paragraph`,"list-item-avatar-three-line":`avatar, paragraph`,ossein:`ossein`,paragraph:`text@3`,sentences:`text@2`,subtitle:`text`,table:`table-heading, table-thead, table-tbody, table-tfoot`,"table-heading":`heading, text`,"table-thead":`heading@6`,"table-tbody":`table-row-divider@6`,"table-row-divider":`table-row, divider`,"table-row":`table-cell@6`,"table-cell":`text`,"table-tfoot":`text@2, avatar@2`,text:`text`};function genBone(type,children=[]){return createBaseVNode(`div`,{"class":normalizeClass([`v-skeleton-loader__bone`,`v-skeleton-loader__${type}`])},[children])}function genBones(bone,types){const[type,length]=bone.split(`@`);return Array.from({length}).map(()=>genStructure(type,types))}function genStructure(type,types){if(!type)return[];if(type.includes(`,`))return mapBones(type,types);if(type.includes(`@`))return genBones(type,types);if(!(type in types)){consoleWarn(`Unknown skeleton type "${type}", register it with the types prop`);return[genBone(type)]}const bone=types[type];let children=[];if(type===bone){}else if(bone.includes(`,`))children=mapBones(bone,types);else if(bone.includes(`@`))children=genBones(bone,types);else children.push(genStructure(bone,types));return[genBone(type,children)]}function mapBones(bones,types){return bones.replace(/\s/g,``).split(`,`).map(bone=>genStructure(bone,types))}var makeVSkeletonLoaderProps=propsFactory({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:`$vuetify.loading`},type:{type:[String,Array],default:`ossein`},types:Object,...makeDimensionProps(),...makeElevationProps(),...makeThemeProps()},`VSkeletonLoader`);var VSkeletonLoader=genericComponent()({name:`VSkeletonLoader`,inheritAttrs:false,props:makeVSkeletonLoaderProps(),setup(props,{attrs,slots}){const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.color);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{themeClasses}=provideTheme(props);const{t}=useLocale();const items=computed(()=>genStructure(wrapInArray(props.type).join(`,`),{...rootTypes,...props.types}));useRender(()=>{const isLoading=!slots.default||props.loading;const loadingProps=props.boilerplate||!isLoading?{}:{ariaLive:`polite`,ariaLabel:t(props.loadingText),role:`alert`};return isLoading?createBaseVNode(`div`,mergeProps({"class":[`v-skeleton-loader`,{"v-skeleton-loader--boilerplate":props.boilerplate},themeClasses.value,backgroundColorClasses.value,elevationClasses.value],"style":[backgroundColorStyles.value,dimensionStyles.value]},loadingProps,attrs),[items.value]):createBaseVNode(Fragment,null,[slots.default?.()])});return{}}});export{VSkeletonLoader as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as createSimpleFunctional}from"./createSimpleFunctional-CZTGuNuR.js";var VSpacer=createSimpleFunctional(`v-spacer`,`div`,`VSpacer`);export{VSpacer as t};
|