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
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{B as VDefaultsProvider,C as makeSizeProps,F as useBackgroundColor,Q as useProxiedModel,Vt as filterInputAttrs,c as LoaderSlot,gt as propsFactory,h as VIcon,it as useRender,kn as isString,mn as SUPPORTS_MATCH_MEDIA,nn as omit,st as genericComponent,u as useLoader}from"./ripple-BVltMmyV.js";import{D as createVNode,Pt as useId,Zn as normalizeClass,_ as createBaseVNode,er as normalizeStyle,et as mergeProps,o as Fragment,vn as ref,wn as toRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as forwardRefs}from"./VOverlay-CeMZurIN.js";import{u as VScaleTransition}from"./VAvatar-DPzqDH4r.js";import{l as VInput,m as useFocus,u as makeVInputProps,v as VSelectionControl,y as makeVSelectionControlProps}from"./VTextField-BR2eZeFT.js";import{r as VProgressCircular}from"./VBtn-B2MBK2DL.js";var makeVSwitchProps=propsFactory({inset:{type:[Boolean,String],default:false},flat:Boolean,thumbColor:String,loading:{type:[Boolean,String],default:false},...omit(makeVInputProps(),[`glow`]),...makeVSelectionControlProps(),...makeSizeProps()},`VSwitch`);var predefinedSizes=[`x-small`,`small`,`default`,`large`,`x-large`];var iconSizes={"x-small":11,small:14,default:16,large:18,"x-large":22};var VSwitch=genericComponent()({name:`VSwitch`,inheritAttrs:false,props:makeVSwitchProps(),emits:{"update:focused":focused=>true,"update:modelValue":value=>true,"update:indeterminate":value=>true},setup(props,{attrs,slots}){const indeterminate=useProxiedModel(props,`indeterminate`);const model=useProxiedModel(props,`modelValue`);const{loaderClasses}=useLoader(props);const{isFocused,focus,blur}=useFocus(props);const{backgroundColorClasses:thumbColorClasses,backgroundColorStyles:thumbColorStyles}=useBackgroundColor(()=>props.thumbColor);const control=ref();const inputRef=ref();const isForcedColorsModeActive=SUPPORTS_MATCH_MEDIA&&window.matchMedia(`(forced-colors: active)`).matches;const loaderColor=toRef(()=>{return isString(props.loading)&&props.loading!==``?props.loading:props.color});const uid=useId();const id=toRef(()=>props.id||`switch-${uid}`);const isPredefinedSize=toRef(()=>predefinedSizes.includes(props.size));const iconSize=toRef(()=>{return isPredefinedSize.value?iconSizes[props.size]:Math.round(16*Number(props.size)/32)});function onChange(){if(indeterminate.value)indeterminate.value=false}function onTrackClick(e){e.stopPropagation();e.preventDefault();control.value?.input?.click()}useRender(()=>{const[rootAttrs,controlAttrs]=filterInputAttrs(attrs);const inputProps=VInput.filterProps(props);const controlProps=VSelectionControl.filterProps(props);const isMaterial=[`material`,`square`].includes(String(props.inset));const hasThumbColor=!isForcedColorsModeActive&&!!props.thumbColor;return createVNode(VInput,mergeProps({"ref":inputRef,"class":[`v-switch`,{"v-switch--flat":props.flat},{"v-switch--inset":!!props.inset},{"v-switch--inset-material":isMaterial},{"v-switch--inset-square":props.inset===`square`},{"v-switch--indeterminate":indeterminate.value},isPredefinedSize.value?`v-switch--size-${props.size}`:void 0,loaderClasses.value,props.class]},rootAttrs,inputProps,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"id":id.value,"focused":isFocused.value,"style":[{"--v-switch-scale":isPredefinedSize.value?void 0:Number(props.size)/32},props.style]}),{...slots,default:({id,messagesId,isDisabled,isReadonly,isValid})=>{const slotProps={model,isValid};return createVNode(VSelectionControl,mergeProps({"ref":control},controlProps,{"modelValue":model.value,"onUpdate:modelValue":[$event=>model.value=$event,onChange],"id":id.value,"aria-describedby":messagesId.value,"type":`checkbox`,"aria-checked":indeterminate.value?`mixed`:void 0,"disabled":isDisabled.value,"readonly":isReadonly.value,"onFocus":focus,"onBlur":blur},controlAttrs),{...slots,default:({backgroundColorClasses,backgroundColorStyles})=>createBaseVNode(`div`,{"class":normalizeClass([`v-switch__track`,!isForcedColorsModeActive?backgroundColorClasses.value:void 0]),"style":normalizeStyle(backgroundColorStyles.value),"onClick":onTrackClick},[slots[`track-true`]&&createBaseVNode(`div`,{"key":`prepend`,"class":`v-switch__track-true`},[slots[`track-true`](slotProps)]),slots[`track-false`]&&createBaseVNode(`div`,{"key":`append`,"class":`v-switch__track-false`},[slots[`track-false`](slotProps)])]),input:({inputNode,icon,model:isSelected,backgroundColorClasses,backgroundColorStyles,textColorClasses,textColorStyles})=>createBaseVNode(Fragment,null,[inputNode,createBaseVNode(`div`,{"class":normalizeClass([`v-switch__thumb`,{"v-switch__thumb--filled":icon||props.loading},isForcedColorsModeActive?void 0:hasThumbColor&&isSelected.value?thumbColorClasses.value:isMaterial?backgroundColorClasses.value:props.inset?void 0:backgroundColorClasses.value]),"style":normalizeStyle([hasThumbColor&&isSelected.value?thumbColorStyles.value:isMaterial?backgroundColorClasses.value.length||backgroundColorStyles.value.backgroundColor?{backgroundColor:`currentColor`}:void 0:props.inset?void 0:backgroundColorStyles.value])},[slots.thumb?createVNode(VDefaultsProvider,{"defaults":{VIcon:{icon,size:isMaterial?iconSize.value:`x-small`}}},{default:()=>[slots.thumb({...slotProps,icon})]}):createVNode(VScaleTransition,null,{default:()=>[!props.loading?icon&&createVNode(VIcon,{"key":String(icon),"class":normalizeClass(isMaterial?textColorClasses.value:void 0),"style":normalizeStyle(isMaterial?textColorStyles.value:void 0),"icon":icon,"size":isMaterial?iconSize.value:`x-small`},null):createVNode(LoaderSlot,{"name":`v-switch`,"active":true,"color":isValid.value===false?void 0:loaderColor.value},{default:slotProps=>slots.loader?slots.loader(slotProps):createVNode(VProgressCircular,{"active":slotProps.isActive,"color":slotProps.color,"indeterminate":true,"size":iconSize.value,"width":`2`},null)})]})])])})}})});return forwardRefs({},inputRef)}});export{VSwitch as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{$ as useToggleScope,$t as matchesSelector,B as VDefaultsProvider,Dn as isNumber,E as useDensity,F as useBackgroundColor,G as makeThemeProps,Gt as getActiveElement,K as provideTheme,L as useTextColor,Ln as consoleWarn,N as makeRoundedProps,Ot as EventProp,P as useRounded,Pt as convertToUnit,Q as useProxiedModel,R as makeDimensionProps,T as makeDensityProps,Vt as filterInputAttrs,Wn as vShow,X as useLocale,Z as useRtl,_t as Box,an as pick,at as deepEqual,c as LoaderSlot,fn as PREFERS_REDUCED_MOTION,ft as provideDefaults,gt as propsFactory,h as VIcon,ht as makeComponentProps,it as useRender,jn as isUndefined,kn as isString,kt as callEvent,l as makeLoaderProps,mt as getCurrentInstanceName,nn as omit,pt as getCurrentInstance,st as genericComponent,t as Ripple,tt as IconValue,u as useLoader,un as wrapInArray,wn as isFunction,z as useDimension}from"./ripple-BVltMmyV.js";import{D as createVNode,Ht as watch,J as inject,On as unref,Pt as useId,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,ct as onMounted,er as normalizeStyle,et as mergeProps,fn as markRaw,g as computed,gt as provide,h as cloneVNode,it as onBeforeUnmount,o as Fragment,pn as onScopeDispose,rt as onBeforeMount,tt as nextTick,vn as ref,wn as toRef,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{f as animate,l as forwardRefs,p as nullifyTransforms}from"./VOverlay-CeMZurIN.js";import{a as MaybeTransition,b as standardEasing,c as VExpandXTransition,d as VSlideYTransition,i as Intersect,o as makeTransitionProps}from"./VAvatar-DPzqDH4r.js";var RulesSymbol=Symbol.for(`vuetify:rules`);function useRules(fn){const rules=inject(RulesSymbol,null);if(!fn){if(!rules)throw new Error(`Could not find Vuetify rules injection`);return rules.aliases}return rules?.resolve(fn)??toRef(fn)}var makeVLabelProps=propsFactory({text:String,onClick:EventProp(),...makeComponentProps(),...makeThemeProps()},`VLabel`);var VLabel=genericComponent()({name:`VLabel`,props:makeVLabelProps(),setup(props,{slots}){useRender(()=>createBaseVNode(`label`,{"class":normalizeClass([`v-label`,{"v-label--clickable":!!props.onClick},props.class]),"style":normalizeStyle(props.style),"onClick":props.onClick},[props.text,slots.default?.()]));return{}}});var VSelectionControlGroupSymbol=Symbol.for(`vuetify:selection-control-group`);var makeSelectionControlGroupProps=propsFactory({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:IconValue,trueIcon:IconValue,indeterminateIcon:IconValue,ripple:{type:[Boolean,Object],default:true},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:deepEqual},...makeComponentProps(),...makeDensityProps(),...makeThemeProps()},`SelectionControlGroup`);var makeVSelectionControlGroupProps=propsFactory({...makeSelectionControlGroupProps({defaultsTarget:`VSelectionControl`})},`VSelectionControlGroup`);var VSelectionControlGroup=genericComponent()({name:`VSelectionControlGroup`,props:makeVSelectionControlGroupProps(),emits:{"update:modelValue":value=>true},setup(props,{slots}){const modelValue=useProxiedModel(props,`modelValue`);const uid=useId();const id=toRef(()=>props.id||`v-selection-control-group-${uid}`);const name=toRef(()=>props.name||id.value);const updateHandlers=new Set;provide(VSelectionControlGroupSymbol,{modelValue,forceUpdate:()=>{updateHandlers.forEach(fn=>fn())},onForceUpdate:cb=>{updateHandlers.add(cb);onScopeDispose(()=>{updateHandlers.delete(cb)})}});provideDefaults({[props.defaultsTarget]:{color:toRef(()=>props.color),disabled:toRef(()=>props.disabled),density:toRef(()=>props.density),error:toRef(()=>props.error),inline:toRef(()=>props.inline),modelValue,multiple:toRef(()=>!!props.multiple||props.multiple==null&&Array.isArray(modelValue.value)),name,falseIcon:toRef(()=>props.falseIcon),trueIcon:toRef(()=>props.trueIcon),readonly:toRef(()=>props.readonly),ripple:toRef(()=>props.ripple),type:toRef(()=>props.type),valueComparator:toRef(()=>props.valueComparator)}});useRender(()=>createBaseVNode(`div`,{"class":normalizeClass([`v-selection-control-group`,{"v-selection-control-group--inline":props.inline},props.class]),"style":normalizeStyle(props.style),"role":props.type===`radio`?`radiogroup`:void 0},[slots.default?.()]));return{}}});var makeVSelectionControlProps=propsFactory({indeterminate:Boolean,label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...makeComponentProps(),...makeSelectionControlGroupProps()},`VSelectionControl`);function useSelectionControl(props){const group=inject(VSelectionControlGroupSymbol,void 0);const{densityClasses}=useDensity(props);const modelValue=useProxiedModel(props,`modelValue`);const trueValue=computed(()=>props.trueValue!==void 0?props.trueValue:props.value!==void 0?props.value:true);const falseValue=computed(()=>props.falseValue!==void 0?props.falseValue:false);const isMultiple=computed(()=>!!props.multiple||props.multiple==null&&Array.isArray(modelValue.value));const model=computed({get(){const val=group?group.modelValue.value:modelValue.value;return isMultiple.value?wrapInArray(val).some(v=>props.valueComparator(v,trueValue.value)):props.valueComparator(val,trueValue.value)},set(val){if(props.readonly)return;const currentValue=val?trueValue.value:falseValue.value;let newVal=currentValue;if(isMultiple.value)newVal=val?[...wrapInArray(modelValue.value),currentValue]:wrapInArray(modelValue.value).filter(item=>!props.valueComparator(item,trueValue.value));if(group)group.modelValue.value=newVal;else modelValue.value=newVal}});const isActive=computed(()=>model.value||props.indeterminate);const{textColorClasses,textColorStyles}=useTextColor(()=>{if(props.error||props.disabled)return void 0;return isActive.value?props.color:props.baseColor});const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>{return isActive.value&&!props.error&&!props.disabled?props.color:props.baseColor});return{group,densityClasses,trueValue,falseValue,model,textColorClasses,textColorStyles,backgroundColorClasses,backgroundColorStyles,icon:computed(()=>props.indeterminate?props.indeterminateIcon:model.value?props.trueIcon:props.falseIcon)}}var VSelectionControl=genericComponent()({name:`VSelectionControl`,directives:{vRipple:Ripple},inheritAttrs:false,props:makeVSelectionControlProps(),emits:{"update:modelValue":value=>true},setup(props,{attrs,slots}){const{group,densityClasses,icon,model,textColorClasses,textColorStyles,backgroundColorClasses,backgroundColorStyles,trueValue}=useSelectionControl(props);const uid=useId();const isFocused=shallowRef(false);const isFocusVisible=shallowRef(false);const input=ref();const id=toRef(()=>props.id||`input-${uid}`);const isInteractive=toRef(()=>!props.disabled&&!props.readonly);group?.onForceUpdate(()=>{if(input.value)input.value.checked=model.value});function onFocus(e){if(props.disabled)return;isFocused.value=true;if(matchesSelector(e.target,`:focus-visible`)!==false)isFocusVisible.value=true}function onBlur(){isFocused.value=false;isFocusVisible.value=false}function onClickLabel(e){e.stopPropagation()}function onInput(e){if(!isInteractive.value){if(input.value)input.value.checked=model.value;return}if(props.readonly&&group)nextTick(()=>group.forceUpdate());model.value=e.target.checked}useRender(()=>{const label=slots.label?slots.label({label:props.label,props:{for:id.value}}):props.label;const[rootAttrs,inputAttrs]=filterInputAttrs(attrs);const inputNode=createBaseVNode(`input`,mergeProps({"ref":input,"checked":model.value,"disabled":!!props.disabled,"id":id.value,"onBlur":onBlur,"onFocus":onFocus,"onInput":onInput,"aria-disabled":!!props.disabled,"aria-label":props.label,"type":props.type,"value":trueValue.value,"name":props.name,"aria-checked":props.type===`checkbox`?model.value:void 0},inputAttrs),null);return createBaseVNode(`div`,mergeProps({"class":[`v-selection-control`,{"v-selection-control--dirty":model.value,"v-selection-control--indeterminate":props.indeterminate,"v-selection-control--disabled":props.disabled,"v-selection-control--error":props.error,"v-selection-control--focused":isFocused.value,"v-selection-control--focus-visible":isFocusVisible.value,"v-selection-control--inline":props.inline},densityClasses.value,props.class]},rootAttrs,{"style":props.style}),[createBaseVNode(`div`,{"class":normalizeClass([`v-selection-control__wrapper`,textColorClasses.value]),"style":normalizeStyle(textColorStyles.value)},[slots.default?.({backgroundColorClasses,backgroundColorStyles}),withDirectives(createBaseVNode(`div`,{"class":normalizeClass([`v-selection-control__input`])},[slots.input?.({model,textColorClasses,textColorStyles,backgroundColorClasses,backgroundColorStyles,inputNode,icon:icon.value,props:{onFocus,onBlur,id:id.value}})??createBaseVNode(Fragment,null,[icon.value&&createVNode(VIcon,{"key":`icon`,"icon":icon.value},null),inputNode])]),[[Ripple,!props.disabled&&!props.readonly&&props.ripple,null,{center:true,circle:true}]])]),label&&createVNode(VLabel,{"for":id.value,"onClick":onClickLabel},{default:()=>[label]})])});return{isFocused,input}}});var makeVCheckboxBtnProps=propsFactory({...makeVSelectionControlProps({falseIcon:`$checkboxOff`,trueIcon:`$checkboxOn`,indeterminateIcon:`$checkboxIndeterminate`})},`VCheckboxBtn`);var VCheckboxBtn=genericComponent()({name:`VCheckboxBtn`,props:makeVCheckboxBtnProps(),emits:{"update:modelValue":value=>true,"update:indeterminate":value=>true},setup(props,{slots}){const indeterminate=useProxiedModel(props,`indeterminate`);const model=useProxiedModel(props,`modelValue`);function onChange(v){if(indeterminate.value)indeterminate.value=false}useRender(()=>{const controlProps=omit(VSelectionControl.filterProps(props),[`modelValue`]);return createVNode(VSelectionControl,mergeProps(controlProps,{"modelValue":model.value,"onUpdate:modelValue":[$event=>model.value=$event,onChange],"class":[`v-checkbox-btn`,props.class],"style":props.style,"type":`checkbox`,"aria-checked":indeterminate.value?`mixed`:void 0}),slots)});return{}}});function useInputIcon(props){const{t}=useLocale();function InputIcon({name,color,...attrs}){const localeKey={prepend:`prependAction`,prependInner:`prependAction`,append:`appendAction`,appendInner:`appendAction`,clear:`clear`}[name];const listener=props[`onClick:${name}`];function onKeydown(e){if(e.key!==`Enter`&&e.key!==` `)return;e.preventDefault();e.stopPropagation();callEvent(listener,new PointerEvent(`click`,e))}const label=listener&&localeKey?t(`$vuetify.input.${localeKey}`,props.label??``):void 0;return createVNode(VIcon,mergeProps({"icon":props[`${name}Icon`],"aria-label":label,"onClick":listener,"onKeydown":onKeydown,"color":color},attrs),null)}return{InputIcon}}var makeVMessagesProps=propsFactory({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...makeComponentProps(),...makeTransitionProps({transition:{component:VSlideYTransition,leaveAbsolute:true,group:true}})},`VMessages`);var VMessages=genericComponent()({name:`VMessages`,props:makeVMessagesProps(),setup(props,{slots}){const messages=computed(()=>wrapInArray(props.messages));const{textColorClasses,textColorStyles}=useTextColor(()=>props.color);useRender(()=>createVNode(MaybeTransition,{"transition":props.transition,"tag":`div`,"class":normalizeClass([`v-messages`,textColorClasses.value,props.class]),"style":normalizeStyle([textColorStyles.value,props.style])},{default:()=>[props.active&&messages.value.map((message,i)=>createBaseVNode(`div`,{"class":`v-messages__message`,"key":`${i}-${messages.value}`},[slots.message?slots.message({message}):message]))]}));return{}}});var makeFocusProps=propsFactory({focused:Boolean,"onUpdate:focused":EventProp()},`focus`);function useFocus(props,name=getCurrentInstanceName()){const isFocused=useProxiedModel(props,`focused`);const focusClasses=toRef(()=>{return{[`${name}--focused`]:isFocused.value}});function focus(){isFocused.value=true}function blur(){isFocused.value=false}return{focusClasses,isFocused,focus,blur}}var FormKey=Symbol.for(`vuetify:form`);var makeFormProps=propsFactory({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:`input`}},`form`);function createForm(props){const model=useProxiedModel(props,`modelValue`);const isDisabled=toRef(()=>props.disabled);const isReadonly=toRef(()=>props.readonly);const isValidating=shallowRef(false);const items=ref([]);const errors=ref([]);async function validate(){const results=[];let valid=true;errors.value=[];isValidating.value=true;for(const item of items.value){const itemErrorMessages=await item.validate();if(itemErrorMessages.length>0){valid=false;results.push({id:item.id,errorMessages:itemErrorMessages})}if(!valid&&props.fastFail)break}errors.value=results;isValidating.value=false;return{valid,errors:errors.value}}function reset(){items.value.forEach(item=>item.reset())}function resetValidation(){items.value.forEach(item=>item.resetValidation())}watch(items,()=>{let valid=0;let invalid=0;const results=[];for(const item of items.value)if(item.isValid===false){invalid++;results.push({id:item.id,errorMessages:item.errorMessages})}else if(item.isValid===true)valid++;errors.value=results;model.value=invalid>0?false:valid===items.value.length?true:null},{deep:true,flush:`post`});provide(FormKey,{register:({id,vm,validate,reset,resetValidation})=>{if(items.value.some(item=>item.id===id))consoleWarn(`Duplicate input name "${id}"`);items.value.push({id,validate,reset,resetValidation,vm:markRaw(vm),isValid:null,errorMessages:[]})},unregister:id=>{items.value=items.value.filter(item=>{return item.id!==id})},update:(id,isValid,errorMessages)=>{const found=items.value.find(item=>item.id===id);if(!found)return;found.isValid=isValid;found.errorMessages=errorMessages},isDisabled,isReadonly,isValidating,isValid:model,items,validateOn:toRef(()=>props.validateOn)});return{errors,isDisabled,isReadonly,isValidating,isValid:model,items,validate,reset,resetValidation}}function useForm(props){const form=inject(FormKey,null);return{...form,isReadonly:computed(()=>!!(props?.readonly??form?.isReadonly.value)),isDisabled:computed(()=>!!(props?.disabled??form?.isDisabled.value))}}var makeValidationProps=propsFactory({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:()=>[]},modelValue:null,validateOn:String,validationValue:null,...makeFocusProps()},`validation`);function useValidation(props,name=getCurrentInstanceName(),id=useId()){const model=useProxiedModel(props,`modelValue`);const validationModel=computed(()=>isUndefined(props.validationValue)?model.value:props.validationValue);const form=useForm(props);const rules=useRules(()=>props.rules);const internalErrorMessages=ref([]);const isPristine=shallowRef(true);const isDirty=computed(()=>!!(wrapInArray(model.value===``?null:model.value).length||wrapInArray(validationModel.value===``?null:validationModel.value).length));const errorMessages=computed(()=>{return props.errorMessages?.length?wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0,Math.max(0,Number(props.maxErrors))):internalErrorMessages.value});const validateOn=computed(()=>{let value=(props.validateOn??form.validateOn?.value)||`input`;if(value===`lazy`)value=`input lazy`;if(value===`eager`)value=`input eager`;const set=new Set(value?.split(` `)??[]);return{input:set.has(`input`),blur:set.has(`blur`)||set.has(`input`)||set.has(`invalid-input`),invalidInput:set.has(`invalid-input`),lazy:set.has(`lazy`),eager:set.has(`eager`)}});const isValid=computed(()=>{if(props.error||props.errorMessages?.length)return false;if(!props.rules.length)return true;if(isPristine.value)return internalErrorMessages.value.length||validateOn.value.lazy?null:true;else return!internalErrorMessages.value.length});const isValidating=shallowRef(false);let isResetting=false;const validationClasses=computed(()=>{return{[`${name}--error`]:isValid.value===false,[`${name}--dirty`]:isDirty.value,[`${name}--disabled`]:form.isDisabled.value,[`${name}--readonly`]:form.isReadonly.value}});const vm=getCurrentInstance(`validation`);const uid=computed(()=>props.name??unref(id));onBeforeMount(()=>{form.register?.({id:uid.value,vm,validate,reset,resetValidation})});onBeforeUnmount(()=>{form.unregister?.(uid.value)});onMounted(async()=>{if(!validateOn.value.lazy)await validate(!validateOn.value.eager);form.update?.(uid.value,isValid.value,errorMessages.value)});useToggleScope(()=>validateOn.value.input||validateOn.value.invalidInput&&isValid.value===false,()=>{watch(validationModel,()=>{if(!isResetting)validate()})});useToggleScope(()=>validateOn.value.blur,()=>{watch(()=>props.focused,val=>{if(!val)validate()})});watch([isValid,errorMessages],()=>{form.update?.(uid.value,isValid.value,errorMessages.value)});async function reset(){isResetting=true;model.value=null;await nextTick();isResetting=false;await resetValidation()}async function resetValidation(){isPristine.value=true;if(!validateOn.value.lazy)await validate(!validateOn.value.eager);else internalErrorMessages.value=[]}async function validate(silent=false){const results=[];isValidating.value=true;for(const rule of rules.value){if(results.length>=Number(props.maxErrors??1))break;const result=await(isFunction(rule)?rule:()=>rule)(validationModel.value);if(result===true)continue;if(result!==false&&!isString(result)){console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`);continue}results.push(result||``)}internalErrorMessages.value=results;isValidating.value=false;isPristine.value=silent;return internalErrorMessages.value}return{errorMessages,isDirty,isDisabled:form.isDisabled,isReadonly:form.isReadonly,isPristine,isValid,isValidating,reset,resetValidation,validate,validationClasses}}var makeVInputProps=propsFactory({id:String,appendIcon:IconValue,baseColor:String,centerAffix:{type:Boolean,default:true},color:String,glow:Boolean,iconColor:[Boolean,String],prependIcon:IconValue,detailsActive:{type:Boolean,default:null},hideDetails:[Boolean,String],hideSpinButtons:Boolean,hint:String,indentDetails:{type:Boolean,default:null},persistentHint:Boolean,messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:`horizontal`,validator:v=>[`horizontal`,`vertical`].includes(v)},"onClick:prepend":EventProp(),"onClick:append":EventProp(),...makeComponentProps(),...makeDensityProps(),...pick(makeDimensionProps(),[`maxWidth`,`minWidth`,`width`]),...makeThemeProps(),...makeValidationProps()},`VInput`);var VInput=genericComponent()({name:`VInput`,props:{...makeVInputProps()},emits:{"update:modelValue":value=>true},setup(props,{attrs,slots,emit}){const{densityClasses}=useDensity(props);const{dimensionStyles}=useDimension(props);const{themeClasses}=provideTheme(props);const{rtlClasses}=useRtl();const{InputIcon}=useInputIcon(props);const uid=useId();const id=computed(()=>props.id||`input-${uid}`);const{errorMessages,isDirty,isDisabled,isReadonly,isPristine,isValid,isValidating,reset,resetValidation,validate,validationClasses}=useValidation(props,`v-input`,id);const messages=computed(()=>{if(props.errorMessages?.length||!isPristine.value&&errorMessages.value.length)return errorMessages.value;else if(props.hint&&(props.persistentHint||props.focused))return props.hint;else return props.messages});const hasMessages=toRef(()=>messages.value.length>0);const hasDetails=toRef(()=>!props.hideDetails||props.hideDetails===`auto`&&(hasMessages.value||(props.detailsActive??!!slots.details)));const messagesId=computed(()=>hasDetails.value?`${id.value}-messages`:void 0);const slotProps=computed(()=>({id,messagesId,isDirty,isDisabled,isReadonly,isPristine,isValid,isValidating,hasDetails,reset,resetValidation,validate}));const color=toRef(()=>{return props.error||props.disabled?void 0:props.focused?props.color:props.baseColor});const iconColor=toRef(()=>{if(!props.iconColor)return void 0;return props.iconColor===true?color.value:props.iconColor});useRender(()=>{const hasPrepend=!!(slots.prepend||props.prependIcon);const hasAppend=!!(slots.append||props.appendIcon);return createBaseVNode(`div`,{"class":normalizeClass([`v-input`,`v-input--${props.direction}`,{"v-input--center-affix":props.centerAffix,"v-input--focused":props.focused,"v-input--glow":props.glow,"v-input--hide-spin-buttons":props.hideSpinButtons,"v-input--indent-details":props.indentDetails},densityClasses.value,themeClasses.value,rtlClasses.value,validationClasses.value,props.class]),"style":normalizeStyle([dimensionStyles.value,props.style])},[hasPrepend&&createBaseVNode(`div`,{"key":`prepend`,"class":`v-input__prepend`},[slots.prepend?slots.prepend(slotProps.value):props.prependIcon&&createVNode(InputIcon,{"key":`prepend-icon`,"name":`prepend`,"color":iconColor.value},null)]),slots.default&&createBaseVNode(`div`,{"class":`v-input__control`},[slots.default?.(slotProps.value)]),hasAppend&&createBaseVNode(`div`,{"key":`append`,"class":`v-input__append`},[slots.append?slots.append(slotProps.value):props.appendIcon&&createVNode(InputIcon,{"key":`append-icon`,"name":`append`,"color":iconColor.value},null)]),props.hideDetails!==true&&createBaseVNode(`div`,{"id":messagesId.value,"class":normalizeClass([`v-input__details`,{"v-input__details--hidden":!hasDetails.value}]),"role":`alert`,"aria-live":`polite`},[createVNode(VMessages,{"active":hasMessages.value,"messages":messages.value},{message:slots.message}),slots.details?.(slotProps.value)])])});return{reset,resetValidation,validate,isValid,errorMessages}}});var makeVCounterProps=propsFactory({active:Boolean,disabled:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...makeComponentProps(),...makeTransitionProps({transition:{component:VSlideYTransition}})},`VCounter`);var VCounter=genericComponent()({name:`VCounter`,functional:true,props:makeVCounterProps(),setup(props,{slots}){const lastMax=shallowRef(props.max);watch(()=>props.max,val=>val!=null&&(lastMax.value=val));const max=toRef(()=>props.active?props.max:lastMax.value);const counter=toRef(()=>{return max.value?`${props.value} / ${max.value}`:String(props.value)});useRender(()=>createVNode(MaybeTransition,{"transition":props.transition,"appear":true},{default:()=>[withDirectives(createBaseVNode(`div`,{"class":normalizeClass([`v-counter`,{"text-error":max.value&&!props.disabled&&parseFloat(props.value)>parseFloat(max.value)},props.class]),"style":normalizeStyle(props.style)},[slots.default?slots.default({counter:counter.value,max:max.value,value:props.value}):counter.value]),[[vShow,props.active]])]}));return{}}});var makeVFieldLabelProps=propsFactory({floating:Boolean,...makeComponentProps()},`VFieldLabel`);var VFieldLabel=genericComponent()({name:`VFieldLabel`,props:makeVFieldLabelProps(),setup(props,{slots}){useRender(()=>createVNode(VLabel,{"class":normalizeClass([`v-field-label`,{"v-field-label--floating":props.floating},props.class]),"style":normalizeStyle(props.style)},slots));return{}}});var allowedVariants=[`underlined`,`outlined`,`filled`,`solo`,`solo-inverted`,`solo-filled`,`plain`];var makeVFieldProps=propsFactory({appendInnerIcon:IconValue,bgColor:String,clearable:Boolean,clearIcon:{type:IconValue,default:`$clear`},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},glow:Boolean,error:Boolean,flat:Boolean,iconColor:[Boolean,String],label:String,persistentClear:Boolean,prependInnerIcon:IconValue,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:`filled`,validator:v=>allowedVariants.includes(v)},"onClick:clear":EventProp(),"onClick:appendInner":EventProp(),"onClick:prependInner":EventProp(),...makeComponentProps(),...makeLoaderProps(),...makeRoundedProps(),...makeThemeProps()},`VField`);var VField=genericComponent()({name:`VField`,inheritAttrs:false,props:{id:String,details:Boolean,labelId:String,...makeFocusProps(),...makeVFieldProps()},emits:{"update:focused":focused=>true,"update:modelValue":value=>true},setup(props,{attrs,emit,slots}){const{themeClasses}=provideTheme(props);const{loaderClasses}=useLoader(props);const{focusClasses,isFocused,focus,blur}=useFocus(props);const{InputIcon}=useInputIcon(props);const{roundedClasses,roundedStyles}=useRounded(props);const{rtlClasses}=useRtl();const isActive=toRef(()=>props.dirty||props.active);const hasLabel=toRef(()=>!!(props.label||slots.label));const hasFloatingLabel=toRef(()=>!props.singleLine&&hasLabel.value);const uid=useId();const id=computed(()=>props.id||`input-${uid}`);const messagesId=toRef(()=>!props.details?void 0:`${id.value}-messages`);const labelRef=ref();const floatingLabelRef=ref();const controlRef=ref();const isPlainOrUnderlined=computed(()=>[`plain`,`underlined`].includes(props.variant));const color=computed(()=>{return props.error||props.disabled?void 0:isActive.value&&isFocused.value?props.color:props.baseColor});const iconColor=computed(()=>{if(props.iconColor===true||!props.iconColor&&props.glow&&isFocused.value)return color.value;if(!props.iconColor||props.glow&&!isFocused.value)return void 0;return props.iconColor});const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.bgColor);const{textColorClasses,textColorStyles}=useTextColor(color);watch(isActive,val=>{if(hasFloatingLabel.value&&!PREFERS_REDUCED_MOTION()){const el=labelRef.value.$el;const targetEl=floatingLabelRef.value.$el;requestAnimationFrame(()=>{const rect=nullifyTransforms(el);const targetRect=new Box(targetEl);const x=targetRect.x-rect.x;const y=targetRect.y-rect.y-(rect.height/2-targetRect.height/2);const targetWidth=targetRect.width/.75;const width=Math.abs(targetWidth-rect.width)>1?{maxWidth:convertToUnit(targetWidth)}:void 0;const style=getComputedStyle(el);const targetStyle=getComputedStyle(targetEl);const duration=parseFloat(style.transitionDuration)*1e3||150;const scale=parseFloat(targetStyle.getPropertyValue(`--v-field-label-scale`));const color=targetStyle.getPropertyValue(`color`);el.style.visibility=`visible`;targetEl.style.visibility=`hidden`;animate(el,{transform:`translate(${x}px, ${y}px) scale(${scale})`,color,...width},{duration,easing:standardEasing,direction:val?`normal`:`reverse`}).finished.then(()=>{el.style.removeProperty(`visibility`);targetEl.style.removeProperty(`visibility`)})})}},{flush:`post`});const slotProps=computed(()=>({isActive,isFocused,controlRef,iconColor,blur,focus}));const floatingLabelProps=toRef(()=>{const ariaHidden=!isActive.value;return{"aria-hidden":ariaHidden,for:ariaHidden?void 0:id.value}});const mainLabelProps=toRef(()=>{const ariaHidden=hasFloatingLabel.value&&isActive.value;return{"aria-hidden":ariaHidden,for:ariaHidden?void 0:id.value}});function onClick(e){if(e.target!==getActiveElement())e.preventDefault()}useRender(()=>{const isOutlined=props.variant===`outlined`;const hasPrepend=!!(slots[`prepend-inner`]||props.prependInnerIcon);const hasClear=!!(props.clearable||slots.clear)&&!props.disabled;const hasAppend=!!(slots[`append-inner`]||props.appendInnerIcon||hasClear);const label=()=>slots.label?slots.label({...slotProps.value,label:props.label,props:{for:id.value}}):props.label;return createBaseVNode(`div`,mergeProps({"class":[`v-field`,{"v-field--active":isActive.value,"v-field--appended":hasAppend,"v-field--center-affix":props.centerAffix??!isPlainOrUnderlined.value,"v-field--disabled":props.disabled,"v-field--dirty":props.dirty,"v-field--error":props.error,"v-field--glow":props.glow,"v-field--flat":props.flat,"v-field--has-background":!!props.bgColor,"v-field--persistent-clear":props.persistentClear,"v-field--prepended":hasPrepend,"v-field--reverse":props.reverse,"v-field--single-line":props.singleLine,"v-field--no-label":!label(),[`v-field--variant-${props.variant}`]:true},themeClasses.value,backgroundColorClasses.value,focusClasses.value,loaderClasses.value,roundedClasses.value,rtlClasses.value,props.class],"style":[backgroundColorStyles.value,roundedStyles.value,props.style],"onClick":onClick},attrs),[createBaseVNode(`div`,{"class":`v-field__overlay`},null),createVNode(LoaderSlot,{"name":`v-field`,"active":!!props.loading,"color":props.error?`error`:isString(props.loading)?props.loading:props.color},{default:slots.loader}),hasPrepend&&createBaseVNode(`div`,{"key":`prepend`,"class":`v-field__prepend-inner`},[slots[`prepend-inner`]?slots[`prepend-inner`](slotProps.value):props.prependInnerIcon&&createVNode(InputIcon,{"key":`prepend-icon`,"name":`prependInner`,"color":iconColor.value},null)]),createBaseVNode(`div`,{"class":`v-field__field`,"data-no-activator":``},[[`filled`,`solo`,`solo-inverted`,`solo-filled`].includes(props.variant)&&hasFloatingLabel.value&&createVNode(VFieldLabel,mergeProps({"key":`floating-label`,"ref":floatingLabelRef,"class":[textColorClasses.value],"floating":true},floatingLabelProps.value,{"style":textColorStyles.value}),{default:()=>[label()]}),hasLabel.value&&createVNode(VFieldLabel,mergeProps({"key":`label`,"ref":labelRef,"id":props.labelId},mainLabelProps.value),{default:()=>[label()]}),slots.default?.({...slotProps.value,props:{id:id.value,class:`v-field__input`,"aria-describedby":messagesId.value},focus,blur})??createBaseVNode(`div`,{"id":id.value,"class":`v-field__input`,"aria-describedby":messagesId.value},null)]),hasClear&&createVNode(VExpandXTransition,{"key":`clear`},{default:()=>[withDirectives(createBaseVNode(`div`,{"class":`v-field__clearable`,"onMousedown":e=>{e.preventDefault();e.stopPropagation()}},[createVNode(VDefaultsProvider,{"defaults":{VIcon:{icon:props.clearIcon}}},{default:()=>[slots.clear?slots.clear({...slotProps.value,props:{onFocus:focus,onBlur:blur,onClick:props[`onClick:clear`],tabindex:-1}}):createVNode(InputIcon,{"name":`clear`,"onFocus":focus,"onBlur":blur,"tabindex":-1},null)]})]),[[vShow,props.dirty]])]}),hasAppend&&createBaseVNode(`div`,{"key":`append`,"class":`v-field__append-inner`},[slots[`append-inner`]?slots[`append-inner`](slotProps.value):props.appendInnerIcon&&createVNode(InputIcon,{"key":`append-icon`,"name":`appendInner`,"color":iconColor.value},null)]),createBaseVNode(`div`,{"class":normalizeClass([`v-field__outline`,textColorClasses.value]),"style":normalizeStyle(textColorStyles.value)},[isOutlined&&createBaseVNode(Fragment,null,[createBaseVNode(`div`,{"class":`v-field__outline__start`},null),hasFloatingLabel.value&&createBaseVNode(`div`,{"class":`v-field__outline__notch`},[createVNode(VFieldLabel,mergeProps({"ref":floatingLabelRef,"floating":true},floatingLabelProps.value),{default:()=>[label()]})]),createBaseVNode(`div`,{"class":`v-field__outline__end`},null)]),isPlainOrUnderlined.value&&hasFloatingLabel.value&&createVNode(VFieldLabel,mergeProps({"ref":floatingLabelRef,"floating":true},floatingLabelProps.value),{default:()=>[label()]})])])});return{controlRef,fieldIconColor:iconColor}}});var makeAutocompleteProps=propsFactory({autocomplete:String},`autocomplete`);function useAutocomplete(props){const uniqueId=useId();const reloadTrigger=shallowRef(0);const isSuppressing=toRef(()=>props.autocomplete===`suppress`);const fieldName=toRef(()=>{if(!props.name)return void 0;return isSuppressing.value?`${props.name}-${uniqueId}-${reloadTrigger.value}`:props.name});return{isSuppressing,fieldAutocomplete:toRef(()=>{return isSuppressing.value?`off`:props.autocomplete}),fieldName,update:()=>reloadTrigger.value=new Date().getTime()}}function useAutofocus(props){function onIntersect(isIntersecting,entries){if(!props.autofocus||!isIntersecting)return;const el=entries[0].target;const target=el.matches(`input,textarea`)?el:el.querySelector(`input,textarea`);setTimeout(()=>target?.focus(),50)}return{onIntersect}}var activeTypes=[`color`,`file`,`time`,`date`,`datetime-local`,`week`,`month`];var makeVTextFieldProps=propsFactory({autofocus:Boolean,counter:{type:[Boolean,Number,String],default:void 0},counterValue:[Number,Function],prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,role:String,type:{type:String,default:`text`},modelModifiers:Object,...makeAutocompleteProps(),...omit(makeVInputProps(),[`direction`]),...makeVFieldProps()},`VTextField`);var VTextField=genericComponent()({name:`VTextField`,directives:{vIntersect:Intersect},inheritAttrs:false,props:makeVTextFieldProps(),emits:{"click:control":e=>true,"mousedown:control":e=>true,"update:focused":focused=>true,"update:modelValue":val=>true},setup(props,{attrs,emit,slots}){const model=useProxiedModel(props,`modelValue`,void 0,v=>{if(Object.is(v,-0))return`-0`;return v});const{isFocused,focus,blur}=useFocus(props);const{onIntersect}=useAutofocus(props);const counterValue=computed(()=>{return isFunction(props.counterValue)?props.counterValue(model.value):isNumber(props.counterValue)?props.counterValue:(model.value??``).toString().length});const max=computed(()=>{if(attrs.maxlength)return attrs.maxlength;if(!props.counter||!isNumber(props.counter)&&!isString(props.counter))return void 0;return props.counter});const isPlainOrUnderlined=computed(()=>[`plain`,`underlined`].includes(props.variant));const vInputRef=ref();const vFieldRef=ref();const inputRef=ref();watch(()=>props.type,()=>void inputRef.value?.offsetHeight,{flush:`post`});const autocomplete=useAutocomplete(props);const isActive=computed(()=>activeTypes.includes(props.type)||props.persistentPlaceholder||isFocused.value||props.active);function onFocus(){if(autocomplete.isSuppressing.value)autocomplete.update();if(!isFocused.value)focus();nextTick(()=>{if(inputRef.value!==getActiveElement())inputRef.value?.focus()})}function onControlMousedown(e){emit(`mousedown:control`,e);if(e.target===inputRef.value)return;onFocus();e.preventDefault()}function onControlClick(e){emit(`click:control`,e)}function onClear(e,reset){e.stopPropagation();onFocus();nextTick(()=>{reset();callEvent(props[`onClick:clear`],e)})}function onInput(e){const el=e.target;if(!(props.modelModifiers?.trim&&[`text`,`search`,`password`,`tel`,`url`].includes(props.type))){model.value=el.value;return}const value=el.value;const start=el.selectionStart;const end=el.selectionEnd;model.value=value;nextTick(()=>{let offset=0;if(value.trimStart().length===el.value.length)offset=value.length-el.value.length;if(start!=null)el.selectionStart=start-offset;if(end!=null)el.selectionEnd=end-offset})}useRender(()=>{const hasCounter=!!(slots.counter||props.counter!==void 0);const counterActive=props.counter!==false&&props.counter!==null&&(props.persistentCounter||isFocused.value);const hasDetails=props.hideDetails!==true&&!!(slots.details||hasCounter);const detailsActive=!!(slots.details||hasCounter&&counterActive);const[rootAttrs,inputAttrs]=filterInputAttrs(attrs);const{modelValue:_,...inputProps}=VInput.filterProps(props);const fieldProps=VField.filterProps(props);return createVNode(VInput,mergeProps({"ref":vInputRef,"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"class":[`v-text-field`,{"v-text-field--prefixed":props.prefix,"v-text-field--suffixed":props.suffix,"v-input--plain-underlined":isPlainOrUnderlined.value},props.class],"style":props.style},rootAttrs,inputProps,{"centerAffix":!isPlainOrUnderlined.value,"focused":isFocused.value,"detailsActive":detailsActive,"indentDetails":props.indentDetails??!isPlainOrUnderlined.value}),{...slots,default:({id,isDisabled,isDirty,isReadonly,isValid,hasDetails,reset})=>createVNode(VField,mergeProps({"ref":vFieldRef,"onMousedown":onControlMousedown,"onClick":onControlClick,"onClick:clear":e=>onClear(e,reset),"role":props.role},omit(fieldProps,[`onClick:clear`]),{"id":id.value,"labelId":`${id.value}-label`,"active":isActive.value||isDirty.value,"dirty":isDirty.value||props.dirty,"disabled":isDisabled.value,"focused":isFocused.value,"details":hasDetails.value,"error":isValid.value===false}),{...slots,default:({props:{class:fieldClass,...slotProps},controlRef})=>{const inputNode=createBaseVNode(`input`,mergeProps({"ref":val=>inputRef.value=controlRef.value=val,"value":model.value,"onInput":onInput,"autofocus":props.autofocus,"readonly":isReadonly.value,"disabled":isDisabled.value,"name":autocomplete.fieldName.value,"autocomplete":autocomplete.fieldAutocomplete.value,"placeholder":props.placeholder,"size":1,"role":props.role,"type":props.type,"onFocus":focus,"onBlur":blur,"aria-labelledby":`${id.value}-label`},slotProps,inputAttrs),null);return createBaseVNode(Fragment,null,[props.prefix&&createBaseVNode(`span`,{"class":`v-text-field__prefix`},[createBaseVNode(`span`,{"class":`v-text-field__prefix__text`},[props.prefix])]),withDirectives(slots.default?createBaseVNode(`div`,{"class":normalizeClass(fieldClass),"data-no-activator":``},[slots.default({id}),inputNode]):cloneVNode(inputNode,{class:fieldClass}),[[Intersect,onIntersect,null,{once:true}]]),props.suffix&&createBaseVNode(`span`,{"class":`v-text-field__suffix`},[createBaseVNode(`span`,{"class":`v-text-field__suffix__text`},[props.suffix])])])}}),details:hasDetails?slotProps=>createBaseVNode(Fragment,null,[slots.details?.(slotProps),hasCounter&&createBaseVNode(Fragment,null,[createBaseVNode(`span`,null,null),createVNode(VCounter,{"active":counterActive,"value":counterValue.value,"max":max.value,"disabled":props.disabled},slots.counter)])]):void 0})});return forwardRefs({},vInputRef,vFieldRef,inputRef)}});export{VLabel as S,makeVCheckboxBtnProps as _,useAutocomplete as a,VSelectionControlGroup as b,VCounter as c,createForm as d,makeFormProps as f,VCheckboxBtn as g,useInputIcon as h,makeAutocompleteProps as i,VInput as l,useFocus as m,makeVTextFieldProps as n,VField as o,useForm as p,useAutofocus as r,makeVFieldProps as s,VTextField as t,makeVInputProps as u,VSelectionControl as v,makeSelectionControlGroupProps as x,makeVSelectionControlProps as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Dn as isNumber,Gt as getActiveElement,Nt as clamp,Pt as convertToUnit,Q as useProxiedModel,Un as vModelText,Vt as filterInputAttrs,gt as propsFactory,it as useRender,kn as isString,kt as callEvent,nn as omit,st as genericComponent,wn as isFunction}from"./ripple-BVltMmyV.js";import{D as createVNode,Ht as watch,Ut as watchEffect,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,ct as onMounted,et as mergeProps,g as computed,it as onBeforeUnmount,o as Fragment,tt as nextTick,vn as ref,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as forwardRefs}from"./VOverlay-CeMZurIN.js";import{g as useDisplay,i as Intersect}from"./VAvatar-DPzqDH4r.js";import{a as useAutocomplete,c as VCounter,i as makeAutocompleteProps,l as VInput,m as useFocus,o as VField,r as useAutofocus,s as makeVFieldProps,u as makeVInputProps}from"./VTextField-BR2eZeFT.js";var makeVTextareaProps=propsFactory({autoGrow:Boolean,autofocus:Boolean,counter:{type:[Boolean,Number,String],default:void 0},counterValue:Function,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,noResize:Boolean,rows:{type:[Number,String],default:5,validator:v=>!isNaN(parseFloat(v))},maxHeight:{type:[Number,String],validator:v=>!isNaN(parseFloat(v))},maxRows:{type:[Number,String],validator:v=>!isNaN(parseFloat(v))},suffix:String,modelModifiers:Object,...makeAutocompleteProps(),...omit(makeVInputProps(),[`direction`]),...makeVFieldProps()},`VTextarea`);var VTextarea=genericComponent()({name:`VTextarea`,directives:{vIntersect:Intersect},inheritAttrs:false,props:makeVTextareaProps(),emits:{"click:control":e=>true,"mousedown:control":e=>true,"update:focused":focused=>true,"update:modelValue":val=>true,"update:rows":rows=>true},setup(props,{attrs,emit,slots}){const model=useProxiedModel(props,`modelValue`);const{isFocused,focus,blur}=useFocus(props);const{onIntersect}=useAutofocus(props);const counterValue=computed(()=>{return isFunction(props.counterValue)?props.counterValue(model.value):(model.value||``).toString().length});const max=computed(()=>{if(attrs.maxlength)return attrs.maxlength;if(!props.counter||!isNumber(props.counter)&&!isString(props.counter))return void 0;return props.counter});const vInputRef=ref();const vFieldRef=ref();const controlHeight=shallowRef(``);const textareaRef=ref();const scrollbarWidth=ref(0);const{platform}=useDisplay();const autocomplete=useAutocomplete(props);const isActive=computed(()=>props.persistentPlaceholder||isFocused.value||props.active);function onFocus(){if(autocomplete.isSuppressing.value)autocomplete.update();if(textareaRef.value!==getActiveElement())textareaRef.value?.focus();if(!isFocused.value)focus()}function onControlClick(e){onFocus();emit(`click:control`,e)}function onControlMousedown(e){emit(`mousedown:control`,e)}function onClear(e){e.stopPropagation();onFocus();nextTick(()=>{model.value=``;callEvent(props[`onClick:clear`],e)})}function onInput(e){const el=e.target;if(!props.modelModifiers?.trim){model.value=el.value;return}const value=el.value;const start=el.selectionStart;const end=el.selectionEnd;model.value=value;nextTick(()=>{let offset=0;if(value.trimStart().length===el.value.length)offset=value.length-el.value.length;if(start!=null)el.selectionStart=start-offset;if(end!=null)el.selectionEnd=end-offset})}const sizerRef=ref();const rows=ref(Number(props.rows));const isPlainOrUnderlined=computed(()=>[`plain`,`underlined`].includes(props.variant));watchEffect(()=>{if(!props.autoGrow)rows.value=Number(props.rows)});function calculateInputHeight(){nextTick(()=>{if(!textareaRef.value)return;if(platform.value.firefox){scrollbarWidth.value=12;return}const{offsetWidth,clientWidth}=textareaRef.value;scrollbarWidth.value=Math.max(0,offsetWidth-clientWidth)});if(!props.autoGrow)return;nextTick(()=>{if(!sizerRef.value||!vFieldRef.value)return;const style=getComputedStyle(sizerRef.value);const fieldStyle=getComputedStyle(vFieldRef.value.$el);const padding=parseFloat(style.getPropertyValue(`--v-field-padding-top`))+parseFloat(style.getPropertyValue(`--v-input-padding-top`))+parseFloat(style.getPropertyValue(`--v-field-padding-bottom`));const height=sizerRef.value.scrollHeight;const lineHeight=parseFloat(style.lineHeight);const minHeight=Math.max(parseFloat(props.rows)*lineHeight+padding,parseFloat(fieldStyle.getPropertyValue(`--v-input-control-height`)));const maxHeight=props.maxHeight?parseFloat(props.maxHeight):parseFloat(props.maxRows)*lineHeight+padding||Infinity;const newHeight=clamp(height??0,minHeight,maxHeight);rows.value=Math.floor((newHeight-padding)/lineHeight);controlHeight.value=convertToUnit(newHeight)})}onMounted(calculateInputHeight);watch(model,calculateInputHeight);watch(()=>props.rows,calculateInputHeight);watch(()=>props.maxHeight,calculateInputHeight);watch(()=>props.maxRows,calculateInputHeight);watch(()=>props.density,calculateInputHeight);watch(rows,val=>{emit(`update:rows`,val)});let observer;watch(sizerRef,val=>{if(val){observer=new ResizeObserver(calculateInputHeight);observer.observe(sizerRef.value)}else observer?.disconnect()});onBeforeUnmount(()=>{observer?.disconnect()});useRender(()=>{const hasCounter=!!(slots.counter||props.counter!==void 0||props.counterValue!=null);const counterActive=props.counter!==false&&props.counter!==null&&(props.persistentCounter||isFocused.value);const hasDetails=props.hideDetails!==true&&!!(slots.details||hasCounter);const detailsActive=!!(slots.details||hasCounter&&counterActive);const[rootAttrs,inputAttrs]=filterInputAttrs(attrs);const{modelValue:_,...inputProps}=VInput.filterProps(props);const fieldProps={...VField.filterProps(props),"onClick:clear":onClear};return createVNode(VInput,mergeProps({"ref":vInputRef,"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"class":[`v-textarea v-text-field`,{"v-textarea--prefixed":props.prefix,"v-textarea--suffixed":props.suffix,"v-text-field--prefixed":props.prefix,"v-text-field--suffixed":props.suffix,"v-textarea--auto-grow":props.autoGrow,"v-textarea--no-resize":props.noResize||props.autoGrow,"v-input--plain-underlined":isPlainOrUnderlined.value},props.class],"style":[{"--v-textarea-max-height":props.maxHeight?convertToUnit(props.maxHeight):void 0,"--v-textarea-scroll-bar-width":convertToUnit(scrollbarWidth.value)},props.style]},rootAttrs,inputProps,{"centerAffix":rows.value===1&&!isPlainOrUnderlined.value,"focused":isFocused.value,"detailsActive":detailsActive,"indentDetails":props.indentDetails??!isPlainOrUnderlined.value}),{...slots,default:({id,isDisabled,isDirty,isReadonly,isValid,hasDetails})=>createVNode(VField,mergeProps({"ref":vFieldRef,"style":{"--v-textarea-control-height":controlHeight.value},"onClick":onControlClick,"onMousedown":onControlMousedown,"onClick:prependInner":props[`onClick:prependInner`],"onClick:appendInner":props[`onClick:appendInner`]},fieldProps,{"id":id.value,"active":isActive.value||isDirty.value,"labelId":`${id.value}-label`,"centerAffix":rows.value===1&&!isPlainOrUnderlined.value,"dirty":isDirty.value||props.dirty,"disabled":isDisabled.value,"focused":isFocused.value,"details":hasDetails.value,"error":isValid.value===false}),{...slots,default:({props:{class:fieldClass,...slotProps},controlRef})=>createBaseVNode(Fragment,null,[props.prefix&&createBaseVNode(`span`,{"class":`v-text-field__prefix`},[props.prefix]),withDirectives(createBaseVNode(`textarea`,mergeProps({"ref":val=>textareaRef.value=controlRef.value=val,"class":fieldClass,"value":model.value,"onInput":onInput,"autofocus":props.autofocus,"readonly":isReadonly.value,"disabled":isDisabled.value,"placeholder":props.placeholder,"rows":props.rows,"name":autocomplete.fieldName.value,"autocomplete":autocomplete.fieldAutocomplete.value,"onFocus":onFocus,"onBlur":blur,"aria-labelledby":`${id.value}-label`},slotProps,inputAttrs),null),[[Intersect,{handler:onIntersect},null,{once:true}]]),props.autoGrow&&withDirectives(createBaseVNode(`textarea`,{"class":normalizeClass([fieldClass,`v-textarea__sizer`]),"id":`${slotProps.id}-sizer`,"onUpdate:modelValue":$event=>model.value=$event,"ref":sizerRef,"readonly":true,"aria-hidden":`true`},null),[[vModelText,model.value]]),props.suffix&&createBaseVNode(`span`,{"class":`v-text-field__suffix`},[props.suffix])])}),details:hasDetails?slotProps=>createBaseVNode(Fragment,null,[slots.details?.(slotProps),hasCounter&&createBaseVNode(Fragment,null,[createBaseVNode(`span`,null,null),createVNode(VCounter,{"active":counterActive,"value":counterValue.value,"max":max.value,"disabled":props.disabled},slots.counter)])]):void 0})});return forwardRefs({},vInputRef,vFieldRef,textareaRef)}});export{VTextarea as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,er as normalizeStyle,g as computed,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as mdiAlertCircleOutline}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-CttxM1tw.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1=[`aria-busy`];var _hoisted_2={class:`vibe64-async-module-state__icon`};var _hoisted_3={class:`vibe64-async-module-state__copy`};var _hoisted_4={key:0,class:`vibe64-async-module-state__hint`};var _hoisted_5={class:`vibe64-async-module-state__actions`};var _sfc_main={__name:`Vibe64AsyncModuleState`,props:{label:{default:`Vibe64 module`,type:String},loading:{default:false,type:Boolean},message:{default:``,type:String},minHeight:{default:``,type:String},stale:{default:false,type:Boolean}},emits:[`reload`,`retry`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const title=computed(()=>props.loading?`Loading ${props.label}...`:`${props.label} could not load`);const stateStyle=computed(()=>props.minHeight?{minHeight:props.minHeight}:{});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`vibe64-async-module-state`,{"vibe64-async-module-state--loading":__props.loading}]),style:normalizeStyle(stateStyle.value),"aria-busy":__props.loading},[__props.loading?(openBlock(),createBlock(VSkeletonLoader,{key:0,"aria-label":title.value,class:`vibe64-async-module-state__skeleton`,type:`article`},null,8,[`aria-label`])):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_2,[createVNode(VIcon,{icon:unref(mdiAlertCircleOutline),color:`warning`,size:`30`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`h2`,null,toDisplayString(title.value),1),createBaseVNode(`p`,null,toDisplayString(__props.message),1),__props.stale?(openBlock(),createElementBlock(`p`,_hoisted_4,` If retry keeps failing, reload Vibe64 to pick up the current app files. `)):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_5,[createVNode(VBtn,{color:`primary`,size:`small`,type:`button`,variant:`flat`,onClick:_cache[0]||(_cache[0]=$event=>emit(`retry`))},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Retry `,-1)])]),_:1}),createVNode(VBtn,{size:`small`,type:`button`,variant:`tonal`,onClick:_cache[1]||(_cache[1]=$event=>emit(`reload`))},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(` Reload Vibe64 `,-1)])]),_:1})])])],64))],14,_hoisted_1)}}};var Vibe64AsyncModuleState_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c1fdb9ea`]]);export{Vibe64AsyncModuleState_default as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dashboard-back[data-v-c4bce62a]{font:var(--v64-type-label-lg,500 .875rem/1.25rem system-ui, sans-serif);letter-spacing:0;height:40px;min-height:40px;padding-inline:var(--v64-space-3,12px) var(--v64-space-4,16px);text-transform:none;font-size:.95rem}.dashboard-back[data-v-c4bce62a] .v-btn__prepend{margin-inline-end:var(--v64-space-2,8px)}.dashboard-back[data-v-c4bce62a]:focus-visible{outline:2px solid rgb(var(--v-theme-primary));outline-offset:2px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as createTextVNode,On as unref,mt as openBlock,qt as withCtx,v as createBlock,xt as renderSlot}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{g as mdiArrowLeft}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _sfc_main={__name:`Vibe64DashboardBackButton`,setup(__props){return(_ctx,_cache)=>{return openBlock(),createBlock(VBtn,{class:`dashboard-back`,color:`primary`,"prepend-icon":unref(mdiArrowLeft),rounded:`pill`,type:`button`,variant:`text`},{default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},()=>[_cache[0]||(_cache[0]=createTextVNode(`Back to dashboard`,-1))],true)]),_:3},8,[`prepend-icon`])}}};var Vibe64DashboardBackButton_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c4bce62a`]]);export{Vibe64DashboardBackButton_default as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,_ as createBaseVNode,b as createElementBlock,mt as openBlock,tr as toDisplayString,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1={class:`vibe64-dashboard-page-header`};var _hoisted_2={key:0,"aria-hidden":`true`,class:`vibe64-dashboard-page-header__icon`};var _hoisted_3={class:`vibe64-dashboard-page-header__copy`};var _hoisted_4={class:`vibe64-dashboard-page-header__title-row`};var _hoisted_5={class:`vibe64-dashboard-page-header__title`};var _hoisted_6={key:0,class:`vibe64-dashboard-page-header__description`};var _hoisted_7={key:1,class:`vibe64-dashboard-page-header__actions`};var _sfc_main={__name:`Vibe64DashboardPageHeader`,props:{description:{default:``,type:String},icon:{default:``,type:String},title:{default:``,type:String}},setup(__props){return(_ctx,_cache)=>{return openBlock(),createElementBlock(`header`,_hoisted_1,[__props.icon?(openBlock(),createElementBlock(`span`,_hoisted_2,[createVNode(VIcon,{icon:__props.icon,size:`22`},null,8,[`icon`])])):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`div`,_hoisted_4,[renderSlot(_ctx.$slots,`title`,{},()=>[createBaseVNode(`h1`,_hoisted_5,toDisplayString(__props.title),1)]),renderSlot(_ctx.$slots,`meta`)]),__props.description?(openBlock(),createElementBlock(`p`,_hoisted_6,toDisplayString(__props.description),1)):createCommentVNode(``,true)]),_ctx.$slots.actions?(openBlock(),createElementBlock(`div`,_hoisted_7,[renderSlot(_ctx.$slots,`actions`)])):createCommentVNode(``,true)])}}};var Vibe64DashboardPageHeader_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-df7b9696`]]);export{Vibe64DashboardPageHeader_default as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vibe64-dashboard-page-header[data-v-df7b9696]{animation:vibe64-dashboard-page-header-enter-df7b9696 var(--v64-duration-medium,.3s) var(--v64-ease-emphasized-decelerate,ease-out) both;align-items:center;gap:var(--v64-space-3,12px) var(--v64-space-4,16px);min-width:0;padding:var(--v64-space-1,4px) 0 var(--v64-space-2,8px);display:flex}.vibe64-dashboard-page-header__icon[data-v-df7b9696]{background:linear-gradient(145deg, color-mix(in srgb, var(--v64-surface) 55%, transparent), transparent 60%), var(--v64-primary-container);border-radius:var(--v64-shape-md,12px);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--v64-primary) 16%, transparent);color:var(--v64-primary);flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.vibe64-dashboard-page-header__copy[data-v-df7b9696]{flex:auto;gap:2px;min-width:0;display:grid}.vibe64-dashboard-page-header__title-row[data-v-df7b9696]{align-items:center;gap:var(--v64-space-2,8px);flex-wrap:wrap;min-width:0;display:flex}.vibe64-dashboard-page-header__title[data-v-df7b9696],.vibe64-dashboard-page-header__title-row h1[data-v-df7b9696-s]{color:var(--v64-on-surface);font:var(--v64-type-headline-sm,600 1.5rem/2rem system-ui, sans-serif);letter-spacing:0;margin:0}.vibe64-dashboard-page-header__description[data-v-df7b9696]{color:var(--v64-on-surface-variant);font:var(--v64-type-body-md,400 .875rem/1.25rem system-ui, sans-serif);margin:0}.vibe64-dashboard-page-header__actions[data-v-df7b9696]{align-items:center;gap:var(--v64-space-2,8px);flex-wrap:wrap;flex:none;justify-content:flex-end;display:flex}@keyframes vibe64-dashboard-page-header-enter-df7b9696{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.vibe64-dashboard-page-header[data-v-df7b9696]{animation:none}}@media (width<=600px){.vibe64-dashboard-page-header[data-v-df7b9696]{flex-wrap:wrap;align-items:flex-start}.vibe64-dashboard-page-header__icon[data-v-df7b9696]{width:40px;height:40px}.vibe64-dashboard-page-header__copy[data-v-df7b9696]{flex-basis:calc(100% - 56px)}.vibe64-dashboard-page-header__actions[data-v-df7b9696]{justify-content:flex-start;width:100%}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as createVNode,Lt as useSlots,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,ct as onMounted,g as computed,gt as provide,it as onBeforeUnmount,mt as openBlock,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{t as useEndpointResource}from"./useEndpointResource-MWVNfmMa.js";import{_ as useRouter,g as useRoute}from"./useApi-BPuI6ZR9-CFWU1m37.js";import{a as projectSlugFromRoute,r as projectAppPath}from"./vibe64ProjectScope.local-DqT6e5un.js";import{t as VSelect}from"./VSelect-DL3HaA5m.js";import{n as VList}from"./VMenu-C_x18lwb.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{r as scopedDevelopmentApiUrl}from"./studioUrls-Dj8rXeXO.js";import{a as VIBE64_ACTIVE_SESSION_NAV_KEY,o as _sfc_main$2}from"./index-BUq-MczL.js";import{t as getPlacements}from"./placement-DLsU3pCW.js";function normalizeRoutePath(pathValue=``){const path=String(pathValue||``).trim();if(!path||path===`/`)return path||`/`;return path.replace(/\/+$/u,``)}function routePathContainsSection(routePathValue=``,sectionPathValue=``){const routePath=normalizeRoutePath(routePathValue);const sectionPath=normalizeRoutePath(sectionPathValue);return Boolean(sectionPath&§ionPath!==`/`&&(routePath===sectionPath||routePath.startsWith(`${sectionPath}/`)))}var _hoisted_1$1={key:0,class:`section-container-shell__heading`};var _hoisted_2={key:0,class:`section-container-shell__title`};var _hoisted_3={key:1,class:`text-body-2 text-medium-emphasis mb-0`};var _hoisted_4={class:`section-container-shell__body`};var _hoisted_5={key:1,class:`section-container-shell__nav`,"aria-label":`Dashboard sections`};var _hoisted_6={class:`section-container-shell__content`};var MOBILE_SECTION_MEDIA_QUERY=`(max-width: 760px)`;var _sfc_main$1={__name:`SectionContainerShell`,props:{navigationCollapsed:{type:Boolean,default:false},title:{type:String,default:``},subtitle:{type:String,default:``},mobileSectionLinks:{type:Array,default:()=>[]}},setup(__props){const props=__props;const slots=useSlots();const route=useRoute();const router=useRouter();const mobileSectionLayout=ref(initialMobileSectionLayout());let mobileSectionMediaQuery=null;const resolvedTitle=computed(()=>String(props.title||``).trim());const resolvedSubtitle=computed(()=>String(props.subtitle||``).trim());const hasHeading=computed(()=>Boolean(resolvedTitle.value||resolvedSubtitle.value));const hasTabs=computed(()=>Boolean(slots.tabs));const mobileSectionLinks=computed(()=>{return props.mobileSectionLinks.map(link=>({disabled:link?.disabled===true,icon:String(link?.icon||``),id:String(link?.id||link?.to||link?.label||``),label:String(link?.label||``),to:normalizeRoutePath(link?.to||``)})).filter(link=>Boolean(link.id&&link.label&&link.to))});const mobileSectionsActive=computed(()=>Boolean(mobileSectionLayout.value&&mobileSectionLinks.value.length));const activeMobileSection=computed(()=>{return mobileSectionLinks.value.find(link=>routePathContainsSection(route.path||``,link.to))||null});const activeMobileSectionValue=computed(()=>activeMobileSection.value?.to||null);function initialMobileSectionLayout(){if(typeof window===`undefined`||typeof window.matchMedia!==`function`)return false;return window.matchMedia(MOBILE_SECTION_MEDIA_QUERY).matches}function syncMobileSectionLayout(){mobileSectionLayout.value=Boolean(mobileSectionMediaQuery?.matches)}function selectMobileSection(value=``){const targetPath=normalizeRoutePath(value||``);if(!targetPath||targetPath===activeMobileSectionValue.value)return;const targetLink=mobileSectionLinks.value.find(link=>link.to===targetPath);if(!targetLink||targetLink.disabled)return;router.push(targetLink.to)}onMounted(()=>{if(typeof window===`undefined`||typeof window.matchMedia!==`function`)return;mobileSectionMediaQuery=window.matchMedia(MOBILE_SECTION_MEDIA_QUERY);syncMobileSectionLayout();if(typeof mobileSectionMediaQuery.addEventListener===`function`)mobileSectionMediaQuery.addEventListener(`change`,syncMobileSectionLayout);else mobileSectionMediaQuery.addListener?.(syncMobileSectionLayout)});onBeforeUnmount(()=>{if(typeof mobileSectionMediaQuery?.removeEventListener===`function`)mobileSectionMediaQuery.removeEventListener(`change`,syncMobileSectionLayout);else mobileSectionMediaQuery?.removeListener?.(syncMobileSectionLayout);mobileSectionMediaQuery=null});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`section-container-shell`,{"section-container-shell--with-heading":hasHeading.value,"section-container-shell--collapsed":__props.navigationCollapsed}])},[hasHeading.value?(openBlock(),createElementBlock(`header`,_hoisted_1$1,[resolvedTitle.value?(openBlock(),createElementBlock(`h1`,_hoisted_2,toDisplayString(resolvedTitle.value),1)):createCommentVNode(``,true),resolvedSubtitle.value?(openBlock(),createElementBlock(`p`,_hoisted_3,toDisplayString(resolvedSubtitle.value),1)):createCommentVNode(``,true)])):createCommentVNode(``,true),createVNode(VSheet,{rounded:__props.navigationCollapsed?0:`xl`,border:!__props.navigationCollapsed,class:`section-container-shell__panel`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_4,[mobileSectionsActive.value&&!__props.navigationCollapsed?(openBlock(),createBlock(VSelect,{key:0,class:`section-container-shell__mobile-select`,"model-value":activeMobileSectionValue.value,items:mobileSectionLinks.value,"item-title":`label`,"item-value":`to`,"item-props":item=>({disabled:item.disabled,prependIcon:item.icon||void 0}),"prepend-inner-icon":activeMobileSection.value?.icon||void 0,label:`Dashboard section`,rounded:`lg`,variant:`outlined`,"hide-details":``,"onUpdate:modelValue":selectMobileSection},null,8,[`model-value`,`items`,`item-props`,`prepend-inner-icon`])):createCommentVNode(``,true),hasTabs.value&&!mobileSectionsActive.value&&!__props.navigationCollapsed?(openBlock(),createElementBlock(`nav`,_hoisted_5,[createVNode(VList,{nav:``,"bg-color":`transparent`,density:`compact`},{default:withCtx(()=>[renderSlot(_ctx.$slots,`tabs`,{},void 0,true)]),_:3})])):createCommentVNode(``,true),createBaseVNode(`main`,_hoisted_6,[renderSlot(_ctx.$slots,`default`,{},void 0,true)])])]),_:3},8,[`rounded`,`border`])],2)}}};var SectionContainerShell_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-4976d7b0`]]);function useVibe64DashboardPage({dashboardContext=null}={}){const route=useRoute();const projectSlug=computed(()=>projectSlugFromRoute(route));const projectBasePath=computed(()=>projectAppPath(projectSlug.value));return{dashboardSectionLinks:computed(()=>getPlacements().filter(placement=>placement?.kind===`link`&&placement?.owner===`app-dashboard`&&placement?.target===`page.section-nav`&&dashboardPlacementVisible(placement,dashboardContext)).sort((left,right)=>Number(left?.order||0)-Number(right?.order||0)).map(placement=>({disabled:placement?.props?.disabled===true,icon:placement?.props?.icon||``,id:placement?.id||``,label:placement?.props?.label||``,to:`${projectBasePath.value}${dashboardSectionSuffix(placement)}`})))}}function dashboardPlacementVisible(placement={},dashboardContext=null){const predicate=placement?.props?.visibleWhen;if(typeof predicate!==`function`)return true;const context=typeof dashboardContext===`function`?dashboardContext():dashboardContext?.value??dashboardContext;return predicate(context&&typeof context===`object`?context:{})===true}function activeSessionMobileSectionLinks(activeSessionNav=null){if(!activeSessionNav?.visible||!Array.isArray(activeSessionNav.tools))return[];return activeSessionNav.tools.map(tool=>({disabled:tool?.disabled===true,icon:String(tool?.icon||``),id:`active-session:${String(tool?.id||tool?.to||tool?.label||``)}`,label:String(tool?.label||``),to:String(tool?.to||``)})).filter(tool=>Boolean(tool.id!==`active-session:`&&tool.label&&tool.to))}function dashboardSectionSuffix(placement={}){const suffix=String(placement?.props?.scopedSuffix||placement?.props?.unscopedSuffix||``).trim();if(!suffix)return``;const projectRelativeSuffix=suffix.replace(/^\/+/u,``).replace(/^project\/\[slug\](?=\/|$)/u,``).replace(/^\[slug\](?=\/|$)/u,``).replace(/^\/+/u,``);return projectRelativeSuffix?`/${projectRelativeSuffix}`:``}var _hoisted_1={key:0,class:`vibe64-dashboard-nav-group-label`};var _sfc_main={__name:`Vibe64DashboardShell`,props:{dashboardContext:{default:()=>({}),type:Object}},setup(__props){const props=__props;const route=useRoute();const incomingPath=computed(()=>scopedDevelopmentApiUrl(`/api/vibe64/incoming`,projectSlugFromRoute(route)));const incomingQuery=computed(()=>({sessionId:props.dashboardContext.sessionId,state:`pending`,limit:1}));const incoming=useEndpointResource({path:incomingPath,readQuery:incomingQuery,queryKey:computed(()=>[`vibe64.incoming`,incomingPath.value,`badge`,incomingQuery.value]),enabled:computed(()=>props.dashboardContext.active!==false&&Boolean(props.dashboardContext.sessionId)&&!props.dashboardContext.lessonDashboard&&props.dashboardContext.projectContext?.repositoryMode===`github`),queryOptions:{retry:false,staleTime:3e4,refetchInterval:6e4}});const incomingCount=computed(()=>incoming.loadError.value?null:incoming.data.value?.pendingCount??null);provide(`vibe64.incoming.pendingCount`,incomingCount);const githubBrowserOpen=computed(()=>/\/dashboard\/(issues|pull-requests)\/?$/u.test(route.path));const{dashboardSectionLinks}=useVibe64DashboardPage({dashboardContext:()=>props.dashboardContext});const activeSessionNav=computed(()=>{const nav=props.dashboardContext?.activeSessionNav||null;return nav&&typeof nav===`object`?nav:null});const mobileDashboardSectionLinks=computed(()=>[...dashboardSectionLinks.value.map(link=>link.id===`vibe64.incoming.link`&&incomingCount.value>0?{...link,label:`${link.label} (${incomingCount.value})`}:link),...activeSessionMobileSectionLinks(activeSessionNav.value)]);provide(VIBE64_ACTIVE_SESSION_NAV_KEY,activeSessionNav);return(_ctx,_cache)=>{return openBlock(),createBlock(SectionContainerShell_default,{"mobile-section-links":mobileDashboardSectionLinks.value,"navigation-collapsed":githubBrowserOpen.value},{tabs:withCtx(()=>[unref(dashboardSectionLinks).length?(openBlock(),createElementBlock(`span`,_hoisted_1,`Project`)):createCommentVNode(``,true),createVNode(unref(_sfc_main$2),{target:`app-dashboard:primary-menu`,context:__props.dashboardContext},null,8,[`context`]),createVNode(unref(_sfc_main$2),{target:`app-dashboard:active-session-menu`,context:{activeSessionNav:activeSessionNav.value||{}}},null,8,[`context`])]),default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},void 0,true)]),_:3},8,[`mobile-section-links`,`navigation-collapsed`])}}};var Vibe64DashboardShell_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-afa88091`]]);export{Vibe64DashboardShell_default as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.section-container-shell[data-v-4976d7b0]{grid-template-rows:minmax(0,1fr);gap:.85rem;min-width:0;height:100%;min-height:0;display:grid}.section-container-shell--with-heading[data-v-4976d7b0]{grid-template-rows:auto minmax(0,1fr)}.section-container-shell__heading[data-v-4976d7b0]{min-width:0}.section-container-shell__title[data-v-4976d7b0]{font:var(--v64-type-title-lg);letter-spacing:0;margin:0 0 var(--v64-space-1)}.section-container-shell__panel[data-v-4976d7b0]{background:var(--v64-surface-container-lowest);min-height:0;display:grid;overflow:hidden;border-color:var(--v64-outline-variant)!important}.section-container-shell__body[data-v-4976d7b0]{gap:var(--v64-space-3);height:100%;min-height:0;padding:var(--v64-space-2);grid-template-columns:minmax(10rem,11.5rem) minmax(0,1fr);display:grid;overflow:hidden}.section-container-shell__nav[data-v-4976d7b0]{background:var(--v64-surface-container-low);border-radius:var(--v64-shape-lg);min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-1);overflow-y:auto}.section-container-shell__nav[data-v-4976d7b0] .v-list{gap:2px;padding:0;display:grid}.section-container-shell__nav[data-v-4976d7b0] .v-list-item{border-radius:var(--v64-shape-full);color:var(--v64-on-surface-variant);min-height:40px;padding-inline:var(--v64-space-3) var(--v64-space-4);transition:background-color var(--v64-duration-short) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard);margin:0}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__overlay{display:none}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:not(.v-list-item--active):not(.v-list-item--disabled):hover{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-hover) * 100%), transparent);color:var(--v64-on-surface)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:focus-visible{outline:2px solid var(--v64-primary);outline-offset:-2px}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:not(.v-list-item--disabled):active{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-pressed) * 100% + 4%), transparent)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item.v-list-item--active{background:var(--v64-primary-container);color:var(--v64-on-primary-container);font-weight:650}.section-container-shell__nav[data-v-4976d7b0] .v-list-item.v-list-item--active .v-list-item__prepend>.v-icon{color:var(--v64-primary);opacity:1}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__prepend{margin-inline-end:0}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__prepend>.v-icon{opacity:.86;margin-inline-end:0;font-size:20px}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__spacer{min-width:var(--v64-space-3);width:var(--v64-space-3)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item-title{font:var(--v64-type-label-lg);font-weight:inherit;letter-spacing:0;line-height:1.2}.section-container-shell__content[data-v-4976d7b0]{min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-2) var(--v64-space-4);scrollbar-gutter:stable;padding-left:.75rem;overflow-y:auto}.section-container-shell--collapsed .section-container-shell__body[data-v-4976d7b0]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);padding:0}.section-container-shell--collapsed .section-container-shell__content[data-v-4976d7b0]{padding:0}@media (prefers-reduced-motion:reduce){.section-container-shell__nav[data-v-4976d7b0] .v-list-item{transition:none}}@media (width<=760px){.section-container-shell__body[data-v-4976d7b0]{gap:var(--v64-space-2);padding:var(--v64-space-3) var(--v64-space-3) 0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.section-container-shell__mobile-select[data-v-4976d7b0] .v-field{background:var(--v64-surface-container-low);min-height:48px}.section-container-shell__content[data-v-4976d7b0]{padding:var(--v64-space-1) 0 var(--v64-space-4)}}.vibe64-dashboard-nav-group-label[data-v-afa88091]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.06em;padding:var(--v64-space-1) var(--v64-space-4) var(--v64-space-1);text-transform:uppercase}
|