vibe64 0.1.39 → 0.1.40
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 +1942 -1846
- package/bin/server.js +136 -112
- package/bin/upgrade-state.js +5023 -4860
- package/dist/assets/GithubBrowserTabs-BoDkGFtY.js +1 -0
- package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
- package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
- package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
- package/dist/assets/VAlert-gwuhYlYb.js +1 -0
- package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
- package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
- package/dist/assets/VBtn-BhVEwXLX.js +1 -0
- package/dist/assets/VCard-C3Hx769y.js +1 -0
- package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
- package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
- package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
- package/dist/assets/VChip-VVdtjfq-.js +1 -0
- package/dist/assets/VDialog-CQDhjRiV.js +1 -0
- package/dist/assets/VDivider-Dq25WsKu.js +1 -0
- package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
- package/dist/assets/VMenu-CDcBLYWR.js +1 -0
- package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
- package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
- package/dist/assets/VRow-BskP28jR.js +1 -0
- package/dist/assets/VSelect-D3oLvCcB.js +2 -0
- package/dist/assets/VSheet-DxYEFfnM.js +1 -0
- package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
- package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
- package/dist/assets/VSwitch-BxGuGypi.js +1 -0
- package/dist/assets/VTextField-C0b_0cSa.js +1 -0
- package/dist/assets/VTextField-F6unyhrS.css +1 -0
- package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
- package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
- package/dist/assets/Vibe64AuthSettingsButton-CmiidAs5.js +5 -0
- package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
- package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
- package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
- package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
- package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
- package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
- package/dist/assets/Vibe64DashboardShell-MCzEQCWu.js +1 -0
- package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-DM9V017v.js} +3 -3
- package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
- package/dist/assets/Vibe64OutputControls-CU9H0Dur.js +8 -0
- package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
- package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
- package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-DaAChLA8.js} +2 -2
- package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-CM2EzXBf.js} +4 -4
- package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
- package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
- package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
- package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
- package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-DVHd6D5V.js} +1 -1
- package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
- package/dist/assets/_slug_-DsfaE8Vh.js +25 -0
- package/dist/assets/_slug_-_qfQqdHb.css +1 -0
- package/dist/assets/{access-WlhPvPgy.js → access-BbzSuMt5.js} +1 -1
- package/dist/assets/app-BNh2oZg-.js +1 -0
- package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
- package/dist/assets/{changes-CHJjrZAc.js → changes-D8Koqrqg.js} +1 -1
- package/dist/assets/client-CybfBKCn.js +2 -0
- package/dist/assets/client-D6UGamrv.css +1 -0
- package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
- package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
- package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
- package/dist/assets/{dashboard-CuutW8iv.js → dashboard-DLrmf5ed.js} +1 -1
- package/dist/assets/definitions-DgyQJgn-.js +1 -0
- package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
- package/dist/assets/env-B5V1EC4M.css +1 -0
- package/dist/assets/env-rVQwLtYr.js +1 -0
- package/dist/assets/health-92hh8xXh.css +1 -0
- package/dist/assets/health-B6r9LLrd.js +1 -0
- package/dist/assets/{history-1_NU8azF.js → history-C6xLWUxL.js} +1 -1
- package/dist/assets/incoming-Bdqo8z25.css +1 -0
- package/dist/assets/incoming-CNwZa_yD.js +2 -0
- package/dist/assets/index-B9P6KjvH.js +138 -0
- package/dist/assets/{index-irlMYzLh.css → index-BC29JK2e.css} +1 -1
- package/dist/assets/{integrations-BMzWQQpa.js → integrations-CcrqPXxj.js} +10 -10
- package/dist/assets/integrations-Co8WvCiD.css +1 -0
- package/dist/assets/issues-DEjIlMdl.js +1 -0
- package/dist/assets/layout-B2Ap07aa.js +1 -0
- package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
- package/dist/assets/{learning-Bdi3XRS7.js → learning-BP1xvd8w.js} +1 -1
- package/dist/assets/mdi-Bt90Ns76.js +1 -0
- package/dist/assets/placement-CQy46H3H.js +1 -0
- package/dist/assets/publish-CPWnztCc.css +1 -0
- package/dist/assets/publish-CVXolnAG.js +3 -0
- package/dist/assets/pull-requests-BjwokcU0.css +1 -0
- package/dist/assets/pull-requests-DdgzLzY_.js +1 -0
- package/dist/assets/{repository-BL_2bgzC.js → repository-5S0LzRq3.js} +1 -1
- package/dist/assets/ripple-EFNA8EBu.js +11 -0
- package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
- package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
- package/dist/assets/{settings-1rpuL7eR.js → settings-BKP_eQ3F.js} +1 -1
- package/dist/assets/settings-D8x4KUqV.css +1 -0
- package/dist/assets/shared-DZETtWRH.js +2 -0
- package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
- package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
- package/dist/assets/useArchivedVibe64Sessions-D8DWpcSy.js +1 -0
- package/dist/assets/useCommand-nWFczmJy.js +1 -0
- package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
- package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
- package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
- package/dist/assets/useVibe64ConversationLog-D-Vkq0sK.js +1 -0
- package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-Dpm53ruL.js} +1 -1
- package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
- package/dist/assets/useVibe64SessionData-CGJXj3r7.js +1 -0
- package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-BEqKR412.js} +1 -1
- package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
- package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
- package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
- package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
- package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
- package/dist/assets/vibe64SessionFocus-tv2wz7_H.js +1 -0
- package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
- package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
- package/dist/index.html +56 -46
- package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
- package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
- package/docs/colleague-usage/ai-model-setups.md +159 -0
- package/docs/colleague-usage/ai-onboarding.md +94 -21
- package/docs/colleague-usage/ai-personal-use.md +41 -0
- package/docs/colleague-usage/auto-workflow.md +8 -3
- package/docs/colleague-usage/codex-context-recovery.md +2 -1
- package/docs/colleague-usage/coding-agent-goals.md +7 -4
- package/docs/colleague-usage/coding-agents.md +8 -5
- package/docs/colleague-usage/colleague-watches.md +15 -4
- package/docs/colleague-usage/colleague.md +21 -5
- package/docs/colleague-usage/connected-contributions.md +13 -13
- package/docs/colleague-usage/connected-projects.md +2 -2
- package/docs/colleague-usage/conversation-context.md +1 -1
- package/docs/colleague-usage/dashboard-navigation.md +5 -3
- package/docs/colleague-usage/development-env.md +21 -4
- package/docs/colleague-usage/file-interfaces.md +1 -1
- package/docs/colleague-usage/github-work.md +8 -8
- package/docs/colleague-usage/health-checks.md +52 -18
- package/docs/colleague-usage/incoming-changes.md +3 -3
- package/docs/colleague-usage/integrations.md +5 -3
- package/docs/colleague-usage/learning-course-catalogue.md +3 -3
- package/docs/colleague-usage/learning-environment.md +55 -47
- package/docs/colleague-usage/learning-mode-ui.md +13 -10
- package/docs/colleague-usage/learning-practice-projects.md +13 -2
- package/docs/colleague-usage/learning-teacher-guide.md +9 -4
- package/docs/colleague-usage/learning-with-colleague.md +9 -5
- package/docs/colleague-usage/lesson-authoring.md +12 -12
- package/docs/colleague-usage/lesson-step-bar.md +22 -22
- package/docs/colleague-usage/main-chat-approvals.md +150 -0
- package/docs/colleague-usage/preview-browser-checks.md +5 -1
- package/docs/colleague-usage/project-language-tools.md +16 -2
- package/docs/colleague-usage/project-settings.md +1 -1
- package/docs/colleague-usage/project-setup.md +17 -7
- package/docs/colleague-usage/publishing.md +185 -0
- package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
- package/docs/colleague-usage/sessions.md +18 -10
- package/docs/colleague-usage/set-up-linux.md +254 -0
- package/docs/colleague-usage/set-up-macos.md +199 -0
- package/docs/colleague-usage/set-up-windows.md +76 -0
- package/docs/colleague-usage/starter-apps.md +21 -4
- package/docs/colleague-usage/teaching-content.md +2 -2
- package/docs/colleague-usage/team-ai-access.md +108 -0
- package/docs/colleague-usage/temporary-chats.md +9 -7
- package/docs/colleague-usage/workspace-preparation.md +50 -1
- package/docs/templates/learn-topic/README.md +3 -3
- package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
- package/docs/training-content.md +37 -15
- package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
- 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-catalog/patterns/oauth-connection/PATTERN.md +25 -0
- 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/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-accounts/package.json +2 -1
- package/node_modules/@local/vibe64-core/package.json +4 -1
- package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
- package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +73 -69
- package/node_modules/@local/vibe64-genesis/package.json +1 -0
- package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
- package/node_modules/@local/vibe64-genesis/src/server/index.js +501 -415
- package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
- package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +143 -139
- package/node_modules/@local/vibe64-packaging/package.json +26 -0
- package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
- package/node_modules/@local/vibe64-project/package.json +3 -1
- package/node_modules/@local/vibe64-publishing/package.json +12 -0
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
- package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
- package/node_modules/@local/vibe64-terminals/package.json +2 -1
- package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1340 -1300
- package/node_modules/@local/vibe64-training/package.json +2 -1
- package/package.json +19 -15
- package/server.bundle.mjs +42890 -40887
- package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
- package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
- package/dist/assets/VAlert-P256xaE0.js +0 -1
- package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
- package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
- package/dist/assets/VBtn-B2MBK2DL.js +0 -1
- package/dist/assets/VCard-mXy0k4aS.js +0 -1
- package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
- package/dist/assets/VChip-CcI-Oo2J.js +0 -1
- package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
- package/dist/assets/VDivider-BMEqUoAB.js +0 -1
- package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
- package/dist/assets/VMenu-C_x18lwb.js +0 -1
- package/dist/assets/VOverlay-CeMZurIN.js +0 -1
- package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
- package/dist/assets/VRow-Cpw7OHQV.js +0 -1
- package/dist/assets/VSelect-DL3HaA5m.js +0 -2
- package/dist/assets/VSheet-DZWsu0kL.js +0 -1
- package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
- package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
- package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
- package/dist/assets/VTextField-BR2eZeFT.js +0 -1
- package/dist/assets/VTextField-BiatYyd3.css +0 -1
- package/dist/assets/VTextarea-DbqamXJd.js +0 -1
- package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
- package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
- package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
- package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
- package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
- package/dist/assets/_slug_-BclonbST.js +0 -24
- package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
- package/dist/assets/app-BNP_n_Tt.js +0 -1
- package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
- package/dist/assets/client-BWV84wi2.js +0 -2
- package/dist/assets/client-DGrP-2AJ.css +0 -1
- package/dist/assets/definitions-BrMvu6yV.js +0 -1
- package/dist/assets/env-BzRtyO0w.css +0 -1
- package/dist/assets/env-D3KQGvRe.js +0 -1
- package/dist/assets/health-BJvooRnJ.css +0 -1
- package/dist/assets/health-BhoO1d4h.js +0 -1
- package/dist/assets/incoming-DWDrmxyH.css +0 -1
- package/dist/assets/incoming-DzADFGqp.js +0 -2
- package/dist/assets/index-dNxr4Lg9.js +0 -138
- package/dist/assets/integrations-Cq1x-Di9.css +0 -1
- package/dist/assets/issues-Bywux4s7.js +0 -1
- package/dist/assets/mdi-CG9pWOSj.js +0 -1
- package/dist/assets/placement-BF-zIEhA.js +0 -1
- package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
- package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
- package/dist/assets/ripple-BVltMmyV.js +0 -11
- package/dist/assets/settings-BopLnpB0.css +0 -1
- package/dist/assets/shared-DpMvYJO3.js +0 -2
- package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
- package/dist/assets/studioUrls-DmMMIScP.js +0 -1
- package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
- package/dist/assets/useCommand-Bqxb-naz.js +0 -1
- package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
- package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
- package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
- package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
- package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
- package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
- package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
- package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Cn as toRaw,D as createVNode,En as toValue,Ht as watch,J as inject,Ut as watchEffect,Vt as warn,Yt as withDirectives,_ as createBaseVNode,_n as readonly,ct as onMounted,et as mergeProps,g as computed,gn as reactive,gt as provide,in as effectScope,it as onBeforeUnmount,o as Fragment,pn as onScopeDispose,tt as nextTick,u as Teleport,vn as ref,wn as toRef,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{$ as makeThemeProps,$t as defer,At as getCurrentInstance,Bn as isFunction,Bt as flipSide,En as templateRef,F as makeTransitionProps,Ft as getElementBox,Gn as isString,H as useDimension,Hn as isNullOrUndefined,Ht as parseAnchor,It as getOverflow,Kn as isSymbol,Lt as getTargetBox,Mt as makeComponentProps,Nt as propsFactory,On as IN_BROWSER,P as MaybeTransition,Pt as Box,Qn as consoleError,R as useBackgroundColor,Rt as flipAlign,St as deepEqual,Un as isNumber,V as makeDimensionProps,Vt as getAxis,Wt as CircularBuffer,Xt as clamp,Zt as convertToUnit,_n as matchesSelector,_t as useRender,a as useRouter,ar as vShow,bn as omit,cn as getActiveElement,dt as useProxiedModel,en as destructComputed,et as provideTheme,ft as useToggleScope,ot as useDisplay,pn as isOn,r as useBackButton,rn as eventName,sn as focusableChildren,tr as Transition,ut as useRtl,wt as genericComponent,xt as standardEasing,zt as flipCorner}from"./ripple-EFNA8EBu.js";import{n as useLazy,t as makeLazyProps}from"./lazy-BjyT2XvW.js";function nullifyTransforms(el){const rect=new Box(el);const style=getComputedStyle(el);const tx=style.transform;if(tx){let ta,sx,sy,dx,dy;if(tx.startsWith(`matrix3d(`)){ta=tx.slice(9,-1).split(/, /);sx=Number(ta[0]);sy=Number(ta[5]);dx=Number(ta[12]);dy=Number(ta[13])}else if(tx.startsWith(`matrix(`)){ta=tx.slice(7,-1).split(/, /);sx=Number(ta[0]);sy=Number(ta[3]);dx=Number(ta[4]);dy=Number(ta[5])}else return new Box(rect);const to=style.transformOrigin;const x=rect.x-dx-(1-sx)*parseFloat(to);const y=rect.y-dy-(1-sy)*parseFloat(to.slice(to.indexOf(` `)+1));const w=sx?rect.width/sx:el.offsetWidth+1;const h=sy?rect.height/sy:el.offsetHeight+1;return new Box({x,y,width:w,height:h})}else return new Box(rect)}function animate(el,keyframes,options){if(typeof el.animate===`undefined`)return{finished:Promise.resolve()};let animation;try{animation=el.animate(keyframes,options)}catch(err){return{finished:Promise.resolve()}}if(typeof animation.finished===`undefined`)animation.finished=new Promise(resolve=>{animation.onfinish=()=>{resolve(animation)}});return animation}var handlers=new WeakMap;function bindProps(el,props){Object.keys(props).forEach(k=>{if(isOn(k)){const name=eventName(k);const handler=handlers.get(el);if(isNullOrUndefined(props[k]))handler?.forEach(v=>{const[n,fn]=v;if(n===name){el.removeEventListener(name,fn);handler.delete(v)}});else if(!handler||![...handler].some(v=>v[0]===name&&v[1]===props[k])){el.addEventListener(name,props[k]);const _handler=handler||new Set;_handler.add([name,props[k]]);if(!handlers.has(el))handlers.set(el,_handler)}}else if(isNullOrUndefined(props[k]))el.removeAttribute(k);else el.setAttribute(k,props[k])})}function unbindProps(el,props){Object.keys(props).forEach(k=>{if(isOn(k)){const name=eventName(k);const handler=handlers.get(el);handler?.forEach(v=>{const[n,fn]=v;if(n===name){el.removeEventListener(name,fn);handler.delete(v)}})}else el.removeAttribute(k)})}function attachedRoot(node){if(!isFunction(node.getRootNode)){while(node.parentNode)node=node.parentNode;if(node!==document)return null;return document}const root=node.getRootNode();if(root!==document&&root.getRootNode({composed:true})!==document)return null;return root}function getScrollParent(el,includeHidden=false){while(el){if(includeHidden?isPotentiallyScrollable(el):hasScrollbar(el))return el;el=el.parentElement}return document.scrollingElement}function getScrollParents(el,stopAt){const elements=[];if(stopAt&&el&&!stopAt.contains(el))return elements;while(el){if(hasScrollbar(el))elements.push(el);if(el===stopAt)break;el=el.parentElement}return elements}function hasScrollbar(el){if(!el||el.nodeType!==Node.ELEMENT_NODE)return false;const style=window.getComputedStyle(el);const hasVerticalScrollbar=style.overflowY===`scroll`||style.overflowY===`auto`&&el.scrollHeight>el.clientHeight;const hasHorizontalScrollbar=style.overflowX===`scroll`||style.overflowX===`auto`&&el.scrollWidth>el.clientWidth;return hasVerticalScrollbar||hasHorizontalScrollbar}function isPotentiallyScrollable(el){if(!el||el.nodeType!==Node.ELEMENT_NODE)return false;const style=window.getComputedStyle(el);return[`scroll`,`auto`].includes(style.overflowY)}function isFixedPosition(el){while(el){if(window.getComputedStyle(el).position===`fixed`)return true;el=el.offsetParent}return false}var Refs=Symbol(`Forwarded refs`);function getDescriptor(obj,key){let currentObj=obj;while(currentObj){const descriptor=Reflect.getOwnPropertyDescriptor(currentObj,key);if(descriptor)return descriptor;currentObj=Object.getPrototypeOf(currentObj)}}function forwardRefs(target,...refs){target[Refs]=refs;return new Proxy(target,{get(target,key){if(Reflect.has(target,key))return Reflect.get(target,key);if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key)){const val=Reflect.get(ref.value,key);return isFunction(val)?val.bind(ref.value):val}},has(target,key){if(Reflect.has(target,key))return true;if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return false;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key))return true;return false},set(target,key,value){if(Reflect.has(target,key))return Reflect.set(target,key,value);if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return false;for(const ref of refs)if(ref.value&&Reflect.has(ref.value,key))return Reflect.set(ref.value,key,value);return false},getOwnPropertyDescriptor(target,key){const descriptor=Reflect.getOwnPropertyDescriptor(target,key);if(descriptor)return descriptor;if(isSymbol(key)||key.startsWith(`$`)||key.startsWith(`__`))return;for(const ref of refs){if(!ref.value)continue;const descriptor=getDescriptor(ref.value,key)??(`_`in ref.value?getDescriptor(ref.value._?.setupState,key):void 0);if(descriptor)return descriptor}for(const ref of refs){const childRefs=ref.value&&ref.value[Refs];if(!childRefs)continue;const queue=childRefs.slice();while(queue.length){const ref=queue.shift();const descriptor=getDescriptor(ref.value,key);if(descriptor)return descriptor;const childRefs=ref.value&&ref.value[Refs];if(childRefs)queue.push(...childRefs)}}}})}var VMenuSymbol=Symbol.for(`vuetify:v-menu`);function elementToViewport(point,offset){return{x:point.x+offset.x,y:point.y+offset.y}}function getOffset(a,b){return{x:a.x-b.x,y:a.y-b.y}}function anchorToPoint(anchor,box){if(anchor.side===`top`||anchor.side===`bottom`){const{side,align}=anchor;return elementToViewport({x:align===`left`?0:align===`center`?box.width/2:align===`right`?box.width:align,y:side===`top`?0:side===`bottom`?box.height:side},box)}else if(anchor.side===`left`||anchor.side===`right`){const{side,align}=anchor;return elementToViewport({x:side===`left`?0:side===`right`?box.width:side,y:align===`top`?0:align===`center`?box.height/2:align===`bottom`?box.height:align},box)}return elementToViewport({x:box.width/2,y:box.height/2},box)}var locationStrategies={static:staticLocationStrategy,connected:connectedLocationStrategy};var makeLocationStrategyProps=propsFactory({locationStrategy:{type:[String,Function],default:`static`,validator:val=>isFunction(val)||val in locationStrategies},location:String,origin:{type:String,default:`auto`},offset:[Number,String,Array],stickToTarget:Boolean,viewportMargin:{type:[Number,String],default:12}},`VOverlay-location-strategies`);function useLocationStrategies(props,data){const contentStyles=ref({});const updateLocation=ref();if(IN_BROWSER)useToggleScope(()=>!!(data.isActive.value&&props.locationStrategy),reset=>{watch(()=>props.locationStrategy,reset);onScopeDispose(()=>{window.removeEventListener(`resize`,onResize);visualViewport?.removeEventListener(`resize`,onVisualResize);visualViewport?.removeEventListener(`scroll`,onVisualScroll);updateLocation.value=void 0;if(data.isActive.value)contentStyles.value={}});window.addEventListener(`resize`,onResize,{passive:true});visualViewport?.addEventListener(`resize`,onVisualResize,{passive:true});visualViewport?.addEventListener(`scroll`,onVisualScroll,{passive:true});if(isFunction(props.locationStrategy))updateLocation.value=props.locationStrategy(data,props,contentStyles)?.updateLocation;else updateLocation.value=locationStrategies[props.locationStrategy](data,props,contentStyles)?.updateLocation});function onResize(e){updateLocation.value?.(e)}function onVisualResize(e){updateLocation.value?.(e)}function onVisualScroll(e){updateLocation.value?.(e)}return{contentStyles,updateLocation}}function getStaticLocationClasses(location){if(!location)return void 0;const normalized=location.includes(` `)?location:`${location} center`;let justify=`center`;let align=`center`;const inline={left:`start`,start:`start`,right:`end`,end:`end`};const block={top:`start`,bottom:`end`};for(const token of normalized.split(` `))if(token in inline)justify=inline[token];else if(token in block)align=block[token];return{[`v-overlay--justify-${justify}`]:true,[`v-overlay--align-${align}`]:true}}function staticLocationStrategy(data,props,contentStyles){function updateStyles(){if(props.origin!==`auto`&&props.origin!==`overlap`){const{side,align}=parseAnchor(props.origin,data.isRtl.value);contentStyles.value={transformOrigin:`${side} ${align}`}}else contentStyles.value={}}watch([()=>props.origin,data.isRtl],updateStyles,{immediate:true});return{updateLocation:()=>{}}}function resolveCssLength(value,container,isWidth){const probe=document.createElement(`div`);probe.style.position=`absolute`;probe.style.visibility=`hidden`;probe.style[isWidth?`width`:`height`]=value;container.appendChild(probe);const size=isWidth?probe.offsetWidth:probe.offsetHeight;container.removeChild(probe);return size>0?size:Infinity}function getIntrinsicSize(el,isRtl){const contentBox=nullifyTransforms(el);const computed=getComputedStyle(el);function offset(side){return el.style[side]?parseFloat(computed[side])||0:0}if(isRtl)contentBox.x+=offset(`right`);else contentBox.x-=offset(`left`);contentBox.y-=offset(`top`);return contentBox}function connectedLocationStrategy(data,props,contentStyles){if(Array.isArray(data.target.value)||isFixedPosition(data.target.value))Object.assign(contentStyles.value,{position:`fixed`,top:0,[data.isRtl.value?`right`:`left`]:0});const{preferredAnchor,preferredOrigin}=destructComputed(()=>{const parsedAnchor=parseAnchor(props.location??`bottom`,data.isRtl.value);const parsedOrigin=props.origin===`overlap`?parsedAnchor:props.origin===`auto`?flipSide(parsedAnchor):parseAnchor(props.origin,data.isRtl.value);if(parsedAnchor.side===parsedOrigin.side&&parsedAnchor.align===flipAlign(parsedOrigin).align)return{preferredAnchor:flipCorner(parsedAnchor),preferredOrigin:flipCorner(parsedOrigin)};else return{preferredAnchor:parsedAnchor,preferredOrigin:parsedOrigin}});const[getMinWidth,getMinHeight,getMaxWidth,getMaxHeight]=[`minWidth`,`minHeight`,`maxWidth`,`maxHeight`].map(key=>{const isWidth=key.endsWith(`Width`);return()=>{const raw=props[key];if(raw==null)return Infinity;const container=data.contentEl.value?.parentElement??document.documentElement;if(isNumber(raw)||/^-?[\d.]+(?:px)?$/.test(raw.trim()))return parseFloat(raw);if(raw.endsWith(`%`)){const box=getElementBox(container);return parseFloat(raw)*(isWidth?box.width:box.height)/100}return resolveCssLength(raw,container,isWidth)}});const offset=computed(()=>{if(Array.isArray(props.offset))return props.offset;if(isString(props.offset)){const offset=props.offset.split(` `).map(parseFloat);if(offset.length<2)offset.push(0);return offset}return isNumber(props.offset)?[props.offset,0]:[0,0]});let observe=false;let lastFrame=-1;const flipped=new CircularBuffer(4);const observer=new ResizeObserver(()=>{if(!observe)return;requestAnimationFrame(newTime=>{if(newTime!==lastFrame)flipped.clear();requestAnimationFrame(newNewTime=>{lastFrame=newNewTime})});if(flipped.isFull){const values=flipped.values();if(deepEqual(values.at(-1),values.at(-3))&&!deepEqual(values.at(-1),values.at(-2)))return}const result=updateLocation();if(result)flipped.push(result.flipped)});let targetBox=new Box({x:0,y:0,width:0,height:0});watch(data.target,(newTarget,oldTarget)=>{if(oldTarget&&!Array.isArray(oldTarget))observer.unobserve(oldTarget);if(!Array.isArray(newTarget)){if(newTarget)observer.observe(newTarget)}else if(!deepEqual(newTarget,oldTarget))updateLocation()},{immediate:true});watch(data.contentEl,(newContentEl,oldContentEl)=>{if(oldContentEl)observer.unobserve(oldContentEl);if(newContentEl)observer.observe(newContentEl)},{immediate:true});onScopeDispose(()=>{observer.disconnect()});function updateLocation(){observe=false;requestAnimationFrame(()=>observe=true);if(!data.target.value||!data.contentEl.value)return;if(Array.isArray(data.target.value)||data.target.value.offsetParent||data.target.value.getClientRects().length)targetBox=getTargetBox(data.target.value);const contentBox=getIntrinsicSize(data.contentEl.value,data.isRtl.value);const scrollParents=getScrollParents(data.contentEl.value);const viewportMargin=Number(props.viewportMargin);const minWidth=getMinWidth();const minHeight=getMinHeight();const maxWidth=getMaxWidth();const maxHeight=getMaxHeight();if(!scrollParents.length){scrollParents.push(document.documentElement);if(!(data.contentEl.value.style.top&&data.contentEl.value.style.left)){contentBox.x-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-x`)||0);contentBox.y-=parseFloat(document.documentElement.style.getPropertyValue(`--v-body-scroll-y`)||0)}}const viewport=scrollParents.reduce((box,el)=>{const scrollBox=getElementBox(el);if(box)return new Box({x:Math.max(box.left,scrollBox.left),y:Math.max(box.top,scrollBox.top),width:Math.min(box.right,scrollBox.right)-Math.max(box.left,scrollBox.left),height:Math.min(box.bottom,scrollBox.bottom)-Math.max(box.top,scrollBox.top)});return scrollBox},void 0);if(props.stickToTarget){viewport.x+=Math.min(viewportMargin,targetBox.x);viewport.y+=Math.min(viewportMargin,targetBox.y);viewport.width=Math.max(viewport.width-viewportMargin*2,targetBox.x+targetBox.width-viewportMargin);viewport.height=Math.max(viewport.height-viewportMargin*2,targetBox.y+targetBox.height-viewportMargin)}else{viewport.x+=viewportMargin;viewport.y+=viewportMargin;viewport.width-=viewportMargin*2;viewport.height-=viewportMargin*2}let placement={anchor:preferredAnchor.value,origin:preferredOrigin.value};function checkOverflow(_placement){const box=new Box(contentBox);const targetPoint=anchorToPoint(_placement.anchor,targetBox);const contentPoint=anchorToPoint(_placement.origin,box);let{x,y}=getOffset(targetPoint,contentPoint);switch(_placement.anchor.side){case`top`:y-=offset.value[0];break;case`bottom`:y+=offset.value[0];break;case`left`:x-=offset.value[0];break;case`right`:x+=offset.value[0]}switch(_placement.anchor.align){case`top`:y-=offset.value[1];break;case`bottom`:y+=offset.value[1];break;case`left`:x-=offset.value[1];break;case`right`:x+=offset.value[1]}box.x+=x;box.y+=y;box.width=Math.min(box.width,maxWidth);box.height=Math.min(box.height,maxHeight);return{overflows:getOverflow(box,viewport),x,y}}let x=0;let y=0;const available={x:0,y:0};const flipped={x:false,y:false};let resets=-1;while(true){if(resets++>10){consoleError(`Infinite loop detected in connectedLocationStrategy`);break}const{x:_x,y:_y,overflows}=checkOverflow(placement);x+=_x;y+=_y;contentBox.x+=_x;contentBox.y+=_y;{const axis=getAxis(placement.anchor);const hasOverflowX=overflows.x.before||overflows.x.after;const hasOverflowY=overflows.y.before||overflows.y.after;let reset=false;[`x`,`y`].forEach(key=>{if(key===`x`&&hasOverflowX&&!flipped.x||key===`y`&&hasOverflowY&&!flipped.y){const newPlacement={anchor:{...placement.anchor},origin:{...placement.origin}};const flip=key===`x`?axis===`y`?flipAlign:flipSide:axis===`y`?flipSide:flipAlign;newPlacement.anchor=flip(newPlacement.anchor);newPlacement.origin=flip(newPlacement.origin);const{overflows:newOverflows}=checkOverflow(newPlacement);if(newOverflows[key].before<=overflows[key].before&&newOverflows[key].after<=overflows[key].after||newOverflows[key].before+newOverflows[key].after<(overflows[key].before+overflows[key].after)/2){placement=newPlacement;reset=flipped[key]=true}}});if(reset)continue}if(overflows.x.before){x+=overflows.x.before;contentBox.x+=overflows.x.before}if(overflows.x.after){x-=overflows.x.after;contentBox.x-=overflows.x.after}if(overflows.y.before){y+=overflows.y.before;contentBox.y+=overflows.y.before}if(overflows.y.after){y-=overflows.y.after;contentBox.y-=overflows.y.after}{const overflows=getOverflow(contentBox,viewport);available.x=viewport.width-overflows.x.before-overflows.x.after;available.y=viewport.height-overflows.y.before-overflows.y.after;x+=overflows.x.before;contentBox.x+=overflows.x.before;y+=overflows.y.before;contentBox.y+=overflows.y.before}break}const axis=getAxis(placement.anchor);const transformOrigin=props.origin!==`auto`&&props.origin!==`overlap`?parseAnchor(props.origin,data.isRtl.value):placement.origin;Object.assign(contentStyles.value,{"--v-overlay-anchor-origin":`${placement.anchor.side} ${placement.anchor.align}`,transformOrigin:`${transformOrigin.side} ${transformOrigin.align}`,top:convertToUnit(pixelRound(y)),left:data.isRtl.value?void 0:convertToUnit(pixelRound(x)),right:data.isRtl.value?convertToUnit(pixelRound(-x)):void 0,minWidth:convertToUnit(axis===`y`?Math.min(minWidth,targetBox.width):minWidth),maxWidth:convertToUnit(pixelCeil(clamp(available.x,minWidth===Infinity?0:minWidth,maxWidth))),maxHeight:convertToUnit(pixelCeil(clamp(available.y,minHeight===Infinity?0:minHeight,maxHeight)))});return{available,contentBox,flipped}}watch(()=>[preferredAnchor.value,preferredOrigin.value,props.origin,props.offset,props.minWidth,props.minHeight,props.maxWidth,props.maxHeight],()=>updateLocation());nextTick(()=>{const result=updateLocation();if(!result)return;const{available,contentBox}=result;if(contentBox.height>available.y)requestAnimationFrame(()=>{updateLocation();requestAnimationFrame(()=>{updateLocation()})})});return{updateLocation}}function pixelRound(val){return Math.round(val*devicePixelRatio)/devicePixelRatio}function pixelCeil(val){return Math.ceil(val*devicePixelRatio)/devicePixelRatio}var clean=true;var frames=[];function requestNewFrame(cb){if(!clean||frames.length){frames.push(cb);run()}else{clean=false;cb();run()}}var raf=-1;function run(){cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>{const frame=frames.shift();if(frame)frame();if(frames.length)run();else clean=true})}var scrollStrategies={none:null,close:closeScrollStrategy,block:blockScrollStrategy,reposition:repositionScrollStrategy};var makeScrollStrategyProps=propsFactory({scrollStrategy:{type:[String,Function],default:`block`,validator:val=>isFunction(val)||val in scrollStrategies}},`VOverlay-scroll-strategies`);function useScrollStrategies(props,data){if(!IN_BROWSER)return;let scope;watchEffect(async()=>{scope?.stop();if(!(data.isActive.value&&props.scrollStrategy))return;scope=effectScope();await new Promise(resolve=>setTimeout(resolve));scope.active&&scope.run(()=>{if(isFunction(props.scrollStrategy))props.scrollStrategy(data,props,scope);else scrollStrategies[props.scrollStrategy]?.(data,props,scope)})});onScopeDispose(()=>{scope?.stop()})}function closeScrollStrategy(data){function onScroll(e){data.isActive.value=false}bindScroll(getTargetEl(data.target.value,data.contentEl.value),onScroll)}function blockScrollStrategy(data,props){const offsetParent=data.root.value?.offsetParent;const target=getTargetEl(data.target.value,data.contentEl.value);const scrollElements=[...new Set([...getScrollParents(target,props.contained?offsetParent:void 0),...getScrollParents(data.contentEl.value,props.contained?offsetParent:void 0)])].filter(el=>!el.classList.contains(`v-overlay-scroll-blocked`));const scrollbarWidth=window.innerWidth-document.documentElement.offsetWidth;const scrollableParent=(el=>hasScrollbar(el)&&el)(offsetParent||document.documentElement);if(scrollableParent)data.root.value.classList.add(`v-overlay--scroll-blocked`);scrollElements.forEach((el,i)=>{el.style.setProperty(`--v-body-scroll-x`,convertToUnit(-el.scrollLeft));el.style.setProperty(`--v-body-scroll-y`,convertToUnit(-el.scrollTop));if(el!==document.documentElement||getComputedStyle(el).overflowY!==`scroll`)el.style.setProperty(`--v-scrollbar-offset`,convertToUnit(scrollbarWidth));el.classList.add(`v-overlay-scroll-blocked`)});onScopeDispose(()=>{scrollElements.forEach((el,i)=>{const x=parseFloat(el.style.getPropertyValue(`--v-body-scroll-x`));const y=parseFloat(el.style.getPropertyValue(`--v-body-scroll-y`));const scrollBehavior=el.style.scrollBehavior;el.style.scrollBehavior=`auto`;el.style.removeProperty(`--v-body-scroll-x`);el.style.removeProperty(`--v-body-scroll-y`);el.style.removeProperty(`--v-scrollbar-offset`);el.classList.remove(`v-overlay-scroll-blocked`);el.scrollLeft=-x;el.scrollTop=-y;el.style.scrollBehavior=scrollBehavior});if(scrollableParent)data.root.value.classList.remove(`v-overlay--scroll-blocked`)})}function repositionScrollStrategy(data,props,scope){let slow=false;let raf=-1;let ric=-1;function update(e){requestNewFrame(()=>{const start=performance.now();data.updateLocation.value?.(e);slow=(performance.now()-start)/(1e3/60)>2})}ric=(typeof requestIdleCallback===`undefined`?cb=>cb():requestIdleCallback)(()=>{scope.run(()=>{bindScroll(getTargetEl(data.target.value,data.contentEl.value),e=>{if(slow){cancelAnimationFrame(raf);raf=requestAnimationFrame(()=>{raf=requestAnimationFrame(()=>{update(e)})})}else update(e)})})});onScopeDispose(()=>{typeof cancelIdleCallback!==`undefined`&&cancelIdleCallback(ric);cancelAnimationFrame(raf)})}function getTargetEl(target,contentEl){return Array.isArray(target)?document.elementsFromPoint(...target).find(el=>!contentEl?.contains(el)):target??contentEl}function bindScroll(el,onScroll){const scrollElements=[document,...getScrollParents(el)];scrollElements.forEach(el=>{el.addEventListener(`scroll`,onScroll,{passive:true})});onScopeDispose(()=>{scrollElements.forEach(el=>{el.removeEventListener(`scroll`,onScroll)})})}var makeDelayProps=propsFactory({closeDelay:[Number,String],openDelay:[Number,String]},`delay`);function useDelay(props,cb){let clearDelay=()=>{};function runDelay(isOpening,options){clearDelay?.();const delay=isOpening?props.openDelay:props.closeDelay;const normalizedDelay=Math.max(options?.minDelay??0,Number(delay??0));return new Promise(resolve=>{clearDelay=defer(normalizedDelay,()=>{cb?.(isOpening);resolve(isOpening)})})}function runOpenDelay(){return runDelay(true)}function runCloseDelay(options){return runDelay(false,options)}return{clearDelay,runOpenDelay,runCloseDelay}}var makeActivatorProps=propsFactory({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...makeDelayProps()},`VOverlay-activator`);function useActivator(props,{isActive,isTop,contentEl,isSubmenu=false}){const vm=getCurrentInstance(`useActivator`);const activatorEl=ref();const parentMenu=inject(VMenuSymbol,null);let isHovered=false;let isFocused=false;let firstEnter=true;const openedByHover=ref(false);let delayCallbackFiredOpen=false;const shouldCloseOnLeave=()=>!isSubmenu||(parentMenu?.rootOpenedByHover?.()??openedByHover.value);const openOnFocus=computed(()=>props.openOnFocus||props.openOnFocus==null&&props.openOnHover);const openOnClick=computed(()=>props.openOnClick||props.openOnClick==null&&!props.openOnHover&&!openOnFocus.value);const{runOpenDelay,runCloseDelay}=useDelay(props,value=>{if(value===(props.openOnHover&&isHovered||openOnFocus.value&&isFocused)&&!(props.openOnHover&&isActive.value&&!isTop.value)){if(isActive.value!==value){firstEnter=true;if(value){delayCallbackFiredOpen=true;openedByHover.value=isHovered&&props.openOnHover}}isActive.value=value}});let reopenLock=false;watch(isActive,v=>{if(!v){reopenLock=true;setTimeout(()=>reopenLock=false,50);openedByHover.value=false;delayCallbackFiredOpen=false;return}if(!delayCallbackFiredOpen)openedByHover.value=false;delayCallbackFiredOpen=false});const cursorTarget=ref();const availableEvents={onClick:e=>{if(reopenLock&&!isActive.value)return;e.stopPropagation();activatorEl.value=e.currentTarget||e.target;if(!isActive.value)cursorTarget.value=[e.clientX,e.clientY];isActive.value=!isActive.value},onMouseenter:e=>{isHovered=true;activatorEl.value=e.currentTarget||e.target;if(props.target===`cursor`)cursorTarget.value=[e.clientX,e.clientY];runOpenDelay()},onMousemove:e=>{cursorTarget.value=[e.clientX,e.clientY]},onMouseleave:e=>{isHovered=false;if(props.target===`cursor`)isFocused=false;if(shouldCloseOnLeave())runCloseDelay()},onFocus:e=>{if(reopenLock)return;if(matchesSelector(e.target,`:focus-visible`)===false)return;isFocused=true;e.stopPropagation();activatorEl.value=e.currentTarget||e.target;runOpenDelay()},onBlur:e=>{const next=e.relatedTarget;if(!next||contentEl.value?.contains(next))return;isFocused=false;e.stopPropagation();runCloseDelay({minDelay:1})}};const activatorEvents=computed(()=>{const events={};if(openOnClick.value)events.onClick=availableEvents.onClick;if(props.openOnHover){events.onMouseenter=availableEvents.onMouseenter;events.onMouseleave=availableEvents.onMouseleave;if(props.target===`cursor`&&!openOnClick.value)events.onMousemove=availableEvents.onMousemove}if(openOnFocus.value){events.onFocus=availableEvents.onFocus;events.onBlur=availableEvents.onBlur}return events});const contentEvents=computed(()=>{const events={};if(props.openOnHover){events.onMouseenter=()=>{isHovered=true;runOpenDelay()};events.onMouseleave=()=>{isHovered=false;if(shouldCloseOnLeave())runCloseDelay()}}if(openOnFocus.value){events.onFocusin=e=>{if(!e.target.matches(`:focus-visible`))return;isFocused=true;runOpenDelay()};events.onFocusout=e=>{const next=e.relatedTarget;if(!next||contentEl.value?.contains(next))return;isFocused=false;runCloseDelay({minDelay:1})}}if(props.closeOnContentClick){const menu=inject(VMenuSymbol,null);events.onClick=()=>{isActive.value=false;menu?.closeParents()}}return events});const scrimEvents=computed(()=>{const events={};if(props.openOnHover){events.onMouseenter=()=>{if(firstEnter){isHovered=true;firstEnter=false;runOpenDelay()}};events.onMouseleave=()=>{isHovered=false;if(shouldCloseOnLeave())runCloseDelay()}}return events});watch(isTop,val=>{if(val&&shouldCloseOnLeave()&&(props.openOnHover&&!isHovered&&(!openOnFocus.value||!isFocused)||openOnFocus.value&&!isFocused&&(!props.openOnHover||!isHovered))&&!contentEl.value?.contains(getActiveElement()))runCloseDelay()});watch(isActive,val=>{if(!val)setTimeout(()=>{cursorTarget.value=void 0})},{flush:`post`});const activatorRef=templateRef();watchEffect(()=>{if(!activatorRef.value)return;nextTick(()=>{activatorEl.value=activatorRef.el})});const targetRef=templateRef();const target=computed(()=>{if(props.target===`cursor`&&cursorTarget.value)return cursorTarget.value;if(targetRef.value)return targetRef.el;return getTarget(props.target,vm)||activatorEl.value});const targetEl=computed(()=>{return Array.isArray(target.value)?void 0:target.value});let scope;watch(()=>!!props.activator,val=>{if(val&&IN_BROWSER){scope=effectScope();scope.run(()=>{_useActivator(props,vm,{activatorEl,activatorEvents})})}else if(scope)scope.stop()},{flush:`post`,immediate:true});onScopeDispose(()=>{scope?.stop()});return{activatorEl,activatorRef,target,targetEl,targetRef,activatorEvents,contentEvents,scrimEvents,openedByHover}}function _useActivator(props,vm,{activatorEl,activatorEvents}){watch(()=>props.activator,(val,oldVal)=>{if(oldVal&&val!==oldVal){const activator=getActivator(oldVal);activator&&unbindActivatorProps(activator)}if(val)nextTick(()=>bindActivatorProps())},{immediate:true});watch(()=>props.activatorProps,()=>{bindActivatorProps()});onScopeDispose(()=>{unbindActivatorProps()});function bindActivatorProps(el=getActivator(),_props=props.activatorProps){if(!el)return;bindProps(el,mergeProps(activatorEvents.value,_props))}function unbindActivatorProps(el=getActivator(),_props=props.activatorProps){if(!el)return;unbindProps(el,mergeProps(activatorEvents.value,_props))}function getActivator(selector=props.activator){const activator=getTarget(selector,vm);activatorEl.value=activator?.nodeType===Node.ELEMENT_NODE?activator:void 0;return activatorEl.value}}function getTarget(selector,vm){if(!selector)return;let target;if(selector===`parent`){let el=vm?.proxy?.$el?.parentNode;while(el?.hasAttribute(`data-no-activator`))el=el.parentNode;target=el}else if(isString(selector))target=document.querySelector(selector);else if(`$el`in selector)target=selector.$el;else target=selector;return target}var makeFocusTrapProps=propsFactory({retainFocus:Boolean,captureFocus:Boolean,disableInitialFocus:Boolean},`focusTrap`);var registry=new Map;var subscribers=0;function lastActiveTrap(){let el;for(const{isActive,contentEl}of registry.values())if(isActive.value&&contentEl.value)el=contentEl.value;return el}function onKeydown(e){const activeElement=getActiveElement();if(e.key!==`Tab`||!activeElement)return;const parentTraps=Array.from(registry.values()).filter(({isActive,contentEl})=>isActive.value&&contentEl.value?.contains(activeElement)).map(x=>x.contentEl.value);let closestTrap;let currentNode=activeElement;while(currentNode){if(parentTraps.includes(currentNode)){closestTrap=currentNode;break}currentNode=currentNode.parentElement}if(!closestTrap){const trapEl=lastActiveTrap();if(!trapEl)return;const focusable=focusableChildren(trapEl).filter(x=>x.tabIndex>=0);e.preventDefault();if(!focusable.length)trapEl.focus({preventScroll:true});else if(e.shiftKey)focusable[focusable.length-1].focus();else focusable[0].focus();return}const focusable=focusableChildren(closestTrap).filter(x=>x.tabIndex>=0);if(!focusable.length)return;if(focusable.length===1&&focusable[0].classList.contains(`v-list`)&&focusable[0].contains(activeElement)){e.preventDefault();return}const firstElement=focusable[0];const lastElement=focusable[focusable.length-1];const atFirst=activeElement===firstElement||activeElement===closestTrap||firstElement.classList.contains(`v-list`)&&firstElement.contains(activeElement);const atLast=activeElement===lastElement||lastElement.classList.contains(`v-list`)&&lastElement.contains(activeElement);if(e.shiftKey&&atFirst){e.preventDefault();lastElement.focus()}if(!e.shiftKey&&atLast){e.preventDefault();firstElement.focus()}}function useFocusTrap(props,{isActive,localTop,contentEl}){const trapId=Symbol(`trap`);let focusTrapSuppressed=false;let focusTrapSuppressionTimeout=-1;async function onPointerdown(){focusTrapSuppressed=true;focusTrapSuppressionTimeout=window.setTimeout(()=>{focusTrapSuppressed=false},100)}async function captureOnFocus(e){const before=e.relatedTarget;const after=e.target;document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`keydown`,captureOnKeydown);await new Promise(resolve=>requestAnimationFrame(resolve));if(isActive.value&&!focusTrapSuppressed&&before!==after&&contentEl.value&&toValue(localTop)&&![document,contentEl.value].includes(after)&&!contentEl.value.contains(after))focusableChildren(contentEl.value)[0]?.focus()}function captureOnKeydown(e){if(e.key!==`Tab`)return;document.removeEventListener(`keydown`,captureOnKeydown);if(isActive.value&&contentEl.value&&e.target&&!contentEl.value.contains(e.target)){const allFocusableElements=focusableChildren(document.documentElement);if(e.shiftKey&&e.target===allFocusableElements.at(0)||!e.shiftKey&&e.target===allFocusableElements.at(-1)){const focusable=focusableChildren(contentEl.value);if(focusable.length>0){e.preventDefault();focusable[0].focus()}}}}const shouldCapture=toRef(()=>isActive.value&&props.captureFocus&&!props.disableInitialFocus);if(IN_BROWSER){watch(()=>props.retainFocus,val=>{if(val)registry.set(trapId,{isActive,contentEl});else registry.delete(trapId)},{immediate:true});watch(shouldCapture,val=>{if(val){document.addEventListener(`pointerdown`,onPointerdown);document.addEventListener(`focusin`,captureOnFocus,{once:true});document.addEventListener(`keydown`,captureOnKeydown)}else{document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`focusin`,captureOnFocus);document.removeEventListener(`keydown`,captureOnKeydown)}},{immediate:true});if(subscribers++<1)document.addEventListener(`keydown`,onKeydown)}onScopeDispose(()=>{registry.delete(trapId);if(!IN_BROWSER)return;clearTimeout(focusTrapSuppressionTimeout);document.removeEventListener(`pointerdown`,onPointerdown);document.removeEventListener(`focusin`,captureOnFocus);document.removeEventListener(`keydown`,captureOnKeydown);if(--subscribers<1)document.removeEventListener(`keydown`,onKeydown)})}function useHydration(){if(!IN_BROWSER)return shallowRef(false);const{ssr}=useDisplay();if(ssr){const isMounted=shallowRef(false);onMounted(()=>{isMounted.value=true});return isMounted}else return shallowRef(true)}function useScopeId(){const scopeId=getCurrentInstance(`useScopeId`).vnode.scopeId;return{scopeId:scopeId?{[scopeId]:``}:void 0}}var StackSymbol=Symbol.for(`vuetify:stack`);var globalStack=reactive([]);function useStack(isActive,zIndex,disableGlobalStack){const vm=getCurrentInstance(`useStack`);const createStackEntry=!disableGlobalStack;const parent=inject(StackSymbol,void 0);const stack=reactive({activeChildren:new Set});provide(StackSymbol,stack);const _zIndex=shallowRef(Number(toValue(zIndex)));useToggleScope(isActive,()=>{const lastZIndex=globalStack.at(-1)?.[1];_zIndex.value=lastZIndex?lastZIndex+10:Number(toValue(zIndex));if(createStackEntry)globalStack.push([vm.uid,_zIndex.value]);parent?.activeChildren.add(vm.uid);onScopeDispose(()=>{if(createStackEntry){const idx=toRaw(globalStack).findIndex(v=>v[0]===vm.uid);globalStack.splice(idx,1)}parent?.activeChildren.delete(vm.uid)})});const globalTop=shallowRef(true);if(createStackEntry)watchEffect(()=>{const _isTop=globalStack.at(-1)?.[0]===vm.uid;setTimeout(()=>globalTop.value=_isTop)});const localTop=toRef(()=>!stack.activeChildren.size);return{globalTop:readonly(globalTop),localTop,stackStyles:toRef(()=>({zIndex:_zIndex.value}))}}function useTeleport(target){return{teleportTarget:computed(()=>{const _target=target();if(_target===true||!IN_BROWSER)return void 0;const targetElement=_target===false?document.body:isString(_target)?document.querySelector(_target):_target;if(!targetElement){warn(`Unable to locate target ${_target}`);return}let container=[...targetElement.children].find(el=>el.matches(`.v-overlay-container`));if(!container){container=document.createElement(`div`);container.className=`v-overlay-container`;targetElement.appendChild(container)}return container})}}function defaultConditional(){return true}function checkEvent(e,el,binding,ignoreActive=false){if(!e||!ignoreActive&&checkIsActive(e,binding)===false)return false;const root=attachedRoot(el);if(typeof ShadowRoot!==`undefined`&&root instanceof ShadowRoot&&root.host===e.target)return false;const value=binding.value;const elements=((isFunction(value)?void 0:value.include)||(()=>[]))();elements.push(el);return!elements.some(el=>el?.contains(e.target))}function checkIsActive(e,binding){const value=binding.value;return((isFunction(value)?void 0:value.closeConditional)||defaultConditional)(e)}function directive(e,el,binding){const handler=isFunction(binding.value)?binding.value:binding.value.handler;e.shadowTarget=e.target;el._clickOutside.lastMousedownWasOutside&&checkEvent(e,el,binding)&&setTimeout(()=>{checkIsActive(e,binding)&&handler&&handler(e)},0)}function handleShadow(el,callback){const root=attachedRoot(el);callback(document);if(typeof ShadowRoot!==`undefined`&&root instanceof ShadowRoot)callback(root)}var ClickOutside={mounted(el,binding){const onClick=e=>directive(e,el,binding);const onMousedown=e=>{el._clickOutside.lastMousedownWasOutside=checkEvent(e,el,binding,true)};handleShadow(el,app=>{app.addEventListener(`click`,onClick,true);app.addEventListener(`mousedown`,onMousedown,true)});if(!el._clickOutside)el._clickOutside={lastMousedownWasOutside:false};el._clickOutside[binding.instance.$.uid]={onClick,onMousedown}},beforeUnmount(el,binding){if(!el._clickOutside)return;handleShadow(el,app=>{if(!app||!el._clickOutside?.[binding.instance.$.uid])return;const{onClick,onMousedown}=el._clickOutside[binding.instance.$.uid];app.removeEventListener(`click`,onClick,true);app.removeEventListener(`mousedown`,onMousedown,true)});delete el._clickOutside[binding.instance.$.uid]}};var overlayActivators=new WeakMap;function Scrim(props){const{modelValue,color,...rest}=props;return createVNode(Transition,{"name":`fade-transition`,"appear":true},{default:()=>[props.modelValue&&createBaseVNode(`div`,mergeProps({"class":[`v-overlay__scrim`,props.color.backgroundColorClasses.value],"style":props.color.backgroundColorStyles.value},rest),null)]})}var makeVOverlayProps=propsFactory({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:true},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:true},zIndex:{type:[Number,String],default:2e3},...makeActivatorProps(),...makeComponentProps(),...makeDimensionProps(),...makeLazyProps(),...makeLocationStrategyProps(),...makeScrollStrategyProps(),...makeFocusTrapProps(),...makeThemeProps(),...makeTransitionProps()},`VOverlay`);var VOverlay=genericComponent()({name:`VOverlay`,directives:{vClickOutside:ClickOutside},inheritAttrs:false,props:{_disableGlobalStack:Boolean,_submenu:Boolean,...omit(makeVOverlayProps(),[`disableInitialFocus`])},emits:{"click:outside":e=>true,"update:modelValue":value=>true,keydown:e=>true,afterEnter:()=>true,afterLeave:()=>true},setup(props,{slots,attrs,emit}){const vm=getCurrentInstance(`VOverlay`);const root=ref();const scrimEl=ref();const contentEl=ref();const model=useProxiedModel(props,`modelValue`);const isActive=computed({get:()=>model.value,set:v=>{if(!(v&&props.disabled))model.value=v}});const{themeClasses}=provideTheme(props);const{rtlClasses,isRtl}=useRtl();const{hasContent,onAfterLeave:_onAfterLeave}=useLazy(props,isActive);const scrimColor=useBackgroundColor(()=>{return isString(props.scrim)?props.scrim:null});const{globalTop,localTop,stackStyles}=useStack(isActive,()=>props.zIndex,props._disableGlobalStack);const{activatorEl,activatorRef,target,targetEl,targetRef,activatorEvents,contentEvents,scrimEvents,openedByHover}=useActivator(props,{isActive,isTop:localTop,contentEl,isSubmenu:props._submenu});const{teleportTarget}=useTeleport(()=>{const target=props.attach||props.contained;if(target)return target;const rootNode=activatorEl?.value?.getRootNode()||vm.proxy?.$el?.getRootNode();if(rootNode instanceof ShadowRoot)return rootNode;return false});const{dimensionStyles}=useDimension(props);const isMounted=useHydration();const staticLocationClasses=computed(()=>{return props.locationStrategy===`static`?getStaticLocationClasses(props.location):void 0});const{scopeId}=useScopeId();watch(()=>props.disabled,v=>{if(v)isActive.value=false});const{contentStyles,updateLocation}=useLocationStrategies(props,{isRtl,contentEl,target,isActive});useScrollStrategies(props,{root,contentEl,targetEl,target,isActive,updateLocation});const menu=inject(VMenuSymbol,null);if(vm.parent?.type?.name!==`VMenu`)provide(VMenuSymbol,null);function onClickOutside(e){emit(`click:outside`,e);if(!props.persistent)isActive.value=false;else animateClick();if(!props.scrim)menu?.closeParents(e)}function closeConditional(e){return isActive.value&&localTop.value&&(!props.scrim||e.target===scrimEl.value||e instanceof MouseEvent&&e.shadowTarget===scrimEl.value)}useFocusTrap(props,{isActive,localTop,contentEl});let openedWithActivatorFocus=false;watchEffect(()=>{if(!contentEl.value)return;if(activatorEl.value)overlayActivators.set(contentEl.value,activatorEl.value);else overlayActivators.delete(contentEl.value)});function ownsFocus(activeElement){let current=activeElement;const visited=new Set;while(current){const el=current.closest(`.v-overlay__content`);if(!el||visited.has(el))return false;if(el===contentEl.value)return true;visited.add(el);current=overlayActivators.get(el)??null}return false}function returnFocusToActivator(){const el=activatorEl.value;if(!el||!el.isConnected)return;if(el.closest(`.v-overlay__content`))return;if(contentEl.value?._clickOutside?.lastMousedownWasOutside)return;const activeEl=getActiveElement();if(!((!activeEl||activeEl===document.body)&&openedWithActivatorFocus||activeEl===el||el.contains(activeEl)||ownsFocus(activeEl)))return;const parent=el.parentElement;const focusableInParent=parent?focusableChildren(parent):[];let target;if(focusableInParent.includes(el))target=el;else{const focusableWithin=focusableChildren(el);target=focusableWithin.find(x=>x.tagName===`INPUT`||x.tagName===`TEXTAREA`)??focusableWithin[0]}target?.focus({preventScroll:true})}watch(isActive,val=>{if(val){const activeEl=getActiveElement();const el=activatorEl.value;openedWithActivatorFocus=!!el&&(activeEl===el||el.contains(activeEl));if(contentEl.value)contentEl.value.inert=false;if(contentEl.value?._clickOutside)contentEl.value._clickOutside.lastMousedownWasOutside=false}else{if(contentEl.value)contentEl.value.inert=true;returnFocusToActivator()}},{flush:`post`});IN_BROWSER&&watch(isActive,val=>{if(val)window.addEventListener(`keydown`,onKeydown);else window.removeEventListener(`keydown`,onKeydown)},{immediate:true});onBeforeUnmount(()=>{if(!IN_BROWSER)return;window.removeEventListener(`keydown`,onKeydown)});function onKeydown(e){if(e.key===`Escape`&&globalTop.value){if(!contentEl.value?.contains(getActiveElement()))emit(`keydown`,e);if(!props.persistent){isActive.value=false;if(contentEl.value?.contains(getActiveElement()))activatorEl.value?.focus()}else animateClick()}}function onKeydownSelf(e){if(e.key===`Escape`&&!globalTop.value)return;emit(`keydown`,e)}const router=useRouter();useToggleScope(()=>props.closeOnBack,()=>{useBackButton(router,()=>{if(globalTop.value&&isActive.value){if(!props.persistent)isActive.value=false;else animateClick();return false}})});const top=ref();watch(()=>isActive.value&&(props.absolute||props.contained)&&teleportTarget.value==null,val=>{if(val){const scrollParent=getScrollParent(root.value);if(scrollParent&&scrollParent!==document.scrollingElement)top.value=scrollParent.scrollTop}});function animateClick(){if(props.noClickAnimation)return;contentEl.value&&animate(contentEl.value,[{transformOrigin:`center`},{transform:`scale(1.03)`},{transformOrigin:`center`}],{duration:150,easing:`cubic-bezier(0.4, 0, 0.2, 1)`})}function onAfterEnter(){emit(`afterEnter`)}function onAfterLeave(){_onAfterLeave();emit(`afterLeave`)}useRender(()=>createBaseVNode(Fragment,null,[slots.activator?.({isActive:isActive.value,targetRef,props:mergeProps({ref:activatorRef},activatorEvents.value,props.activatorProps)}),isMounted.value&&hasContent.value&&createVNode(Teleport,{"disabled":!teleportTarget.value,"to":teleportTarget.value},{default:()=>[createBaseVNode(`div`,mergeProps({"class":[`v-overlay`,{"v-overlay--absolute":props.absolute||props.contained,"v-overlay--active":isActive.value,"v-overlay--contained":props.contained},staticLocationClasses.value,themeClasses.value,rtlClasses.value,props.class],"style":[stackStyles.value,{"--v-overlay-opacity":props.opacity,top:convertToUnit(top.value)},props.style],"ref":root,"onKeydown":onKeydownSelf},scopeId,attrs),[createVNode(Scrim,mergeProps({"color":scrimColor,"modelValue":isActive.value&&!!props.scrim,"ref":scrimEl},scrimEvents.value),null),createVNode(MaybeTransition,{"appear":true,"persisted":true,"transition":props.transition,"target":target.value,"onAfterEnter":onAfterEnter,"onAfterLeave":onAfterLeave},{default:()=>[withDirectives(createBaseVNode(`div`,mergeProps({"ref":contentEl,"class":[`v-overlay__content`,props.contentClass],"style":[dimensionStyles.value,contentStyles.value]},contentEvents.value,props.contentProps),[slots.default?.({isActive})]),[[vShow,isActive.value],[ClickOutside,{handler:onClickOutside,closeConditional,include:()=>{if(!isActive.value)return[];return[activatorEl.value,...Array.from(document.querySelectorAll(`.v-overlay__content`)).filter(ownsFocus)]}}]])]})])]})]));return{activatorEl,scrimEl,target,animateClick,contentEl,rootEl:root,globalTop,localTop,updateLocation,openedByHover}}});export{useFocusTrap as a,VMenuSymbol as c,animate as d,nullifyTransforms as f,makeFocusTrapProps as i,forwardRefs as l,makeVOverlayProps as n,makeDelayProps as o,useScopeId as r,useDelay as s,VOverlay as t,getScrollParent as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as createVNode,Pt as useId,_ as createBaseVNode,et as mergeProps,g as computed,o as Fragment,vn as ref}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{Nt as propsFactory,_t as useRender,bn as omit,dt as useProxiedModel,in as filterInputAttrs,mt as IconValue,wt as genericComponent}from"./ripple-EFNA8EBu.js";import{l as forwardRefs}from"./VOverlay-Cp4rFk6g.js";import{g as VLabel,l as VInput,u as makeVInputProps}from"./VTextField-C0b_0cSa.js";import{a as VSelectionControlGroup,i as makeVSelectionControlProps,o as makeSelectionControlGroupProps,r as VSelectionControl}from"./VCheckboxBtn-DYcQU2Pn.js";var makeVRadioProps=propsFactory({...omit(makeVSelectionControlProps({falseIcon:`$radioOff`,trueIcon:`$radioOn`}),[`indeterminate`,`indeterminateIcon`])},`VRadio`);var VRadio=genericComponent()({name:`VRadio`,props:makeVRadioProps(),emits:{"update:modelValue":value=>true},setup(props,{slots}){const model=useProxiedModel(props,`modelValue`);useRender(()=>{const controlProps=omit(VSelectionControl.filterProps(props),[`modelValue`]);return createVNode(VSelectionControl,mergeProps(controlProps,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"class":[`v-radio`,props.class],"style":props.style,"type":`radio`}),slots)});return{}}});var makeVRadioGroupProps=propsFactory({height:{type:[Number,String],default:`auto`},...omit(makeVInputProps(),[`direction`,`glow`]),...omit(makeSelectionControlGroupProps(),[`multiple`]),trueIcon:{type:IconValue,default:`$radioOn`},falseIcon:{type:IconValue,default:`$radioOff`},type:{type:String,default:`radio`}},`VRadioGroup`);var VRadioGroup=genericComponent()({name:`VRadioGroup`,inheritAttrs:false,props:makeVRadioGroupProps(),emits:{"update:modelValue":value=>true},setup(props,{attrs,slots}){const uid=useId();const id=computed(()=>props.id||`radio-group-${uid}`);const model=useProxiedModel(props,`modelValue`);const inputRef=ref();useRender(()=>{const[rootAttrs,controlAttrs]=filterInputAttrs(attrs);const inputProps=VInput.filterProps(props);const controlProps=VSelectionControl.filterProps(props);const label=slots.label?slots.label({label:props.label,props:{for:id.value}}):props.label;return createVNode(VInput,mergeProps({"ref":inputRef,"class":[`v-radio-group`,props.class],"style":props.style},rootAttrs,inputProps,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event,"id":id.value}),{...slots,default:({id,messagesId,isDisabled,isReadonly})=>createBaseVNode(Fragment,null,[label&&createVNode(VLabel,{"id":id.value},{default:()=>[label]}),createVNode(VSelectionControlGroup,mergeProps(controlProps,{"id":id.value,"aria-describedby":messagesId.value,"defaultsTarget":`VRadio`,"trueIcon":props.trueIcon,"falseIcon":props.falseIcon,"type":props.type,"disabled":isDisabled.value,"readonly":isReadonly.value,"aria-labelledby":label?id.value:void 0,"multiple":false},controlAttrs,{"modelValue":model.value,"onUpdate:modelValue":$event=>model.value=$event}),slots)])})});return forwardRefs({},inputRef)}});export{VRadio as n,VRadioGroup as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{B as h,Mn as capitalize,g as computed}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{Gn as isString,Mt as makeComponentProps,Nt as propsFactory,T as makeDensityProps,Y as makeTagProps,Zt as convertToUnit,er as deprecate,gn as keys,rt as breakpoints,wt as genericComponent}from"./ripple-EFNA8EBu.js";var breakpointProps=(()=>{return breakpoints.reduce((props,val)=>{props[val]={type:[Boolean,String,Number],default:false};return props},{})})();var offsetProps=(()=>{return breakpoints.reduce((props,val)=>{const offsetKey=`offset`+capitalize(val);props[offsetKey]={type:[String,Number],default:null};return props},{})})();var propMap$1={col:keys(breakpointProps),offset:keys(offsetProps),order:[`order`,`orderSm`,`orderMd`,`orderLg`,`orderXl`,`orderXxl`]};function parseCols(val){if(isString(val)&&val.includes(`/`)){const[cols,size]=val.split(`/`);return{cols:Number(cols),size:Number(size)}}return{cols:val}}function parseBreakpoint(type,prop,val){if(val==null||val===false)return{};const{cols,size}=parseCols(val);const breakpoint=prop.replace(type,``).toLowerCase();if(type===`offset`)return{className:`v-col--offset-${breakpoint}-${cols}`,variables:[{[`--v-col-offset-base-${breakpoint}`]:size}]};else if(type===`order`)return{className:`order-${breakpoint}-${cols}`};return{className:cols===``||cols===true?`v-col--${breakpoint}`:`v-col--cols-${breakpoint}-${cols}`,variables:[{[`--v-col-size-base-${breakpoint}`]:size}]}}var ALIGN_SELF_VALUES=[`auto`,`start`,`end`,`center`,`baseline`,`stretch`];var alignSelfValidator=str=>ALIGN_SELF_VALUES.includes(str);var makeVColProps=propsFactory({cols:{type:[Boolean,String,Number],default:false},...breakpointProps,offset:{type:[String,Number],default:null},...offsetProps,order:{type:[String,Number],default:null},orderSm:{type:[String,Number],default:null},orderMd:{type:[String,Number],default:null},orderLg:{type:[String,Number],default:null},orderXl:{type:[String,Number],default:null},orderXxl:{type:[String,Number],default:null},alignSelf:{type:String,default:null,validator:alignSelfValidator},...makeComponentProps(),...makeTagProps()},`VCol`);var VCol=genericComponent()({name:`VCol`,props:makeVColProps(),setup(props,{slots}){const sizeBaseOverride=computed(()=>parseCols(props.cols).size);const offsetBaseOverride=computed(()=>parseCols(props.offset).size);const responsive=computed(()=>{const classList=[`v-col`];const variablesList=[];let type;for(type in propMap$1)propMap$1[type].forEach(prop=>{const value=props[prop];const{className,variables}=parseBreakpoint(type,prop,value);if(className)classList.push(className);if(variables)variablesList.push(...variables)});const{cols}=parseCols(props.cols);const{cols:offset}=parseCols(props.offset);classList.push({[`v-col--cols-${cols}`]:cols,[`v-col--offset-${offset}`]:offset,[`order-${props.order}`]:props.order,[`align-self-${props.alignSelf}`]:props.alignSelf});return{classes:classList,variables:variablesList}});return()=>h(props.tag,{class:[responsive.value.classes,props.class],style:[{"--v-col-size-base":sizeBaseOverride.value},{"--v-col-offset-base":offsetBaseOverride.value},responsive.value.variables,props.style]},slots.default?.())}});var ALIGNMENT=[`start`,`end`,`center`];var SPACE=[`space-between`,`space-around`,`space-evenly`];var ALIGN_VALUES=[...ALIGNMENT,`baseline`,`stretch`];var alignValidator=str=>ALIGN_VALUES.includes(str);var JUSTIFY_VALUES=[...ALIGNMENT,...SPACE];var justifyValidator=str=>JUSTIFY_VALUES.includes(str);var ALIGN_CONTENT_VALUES=[...ALIGNMENT,...SPACE,`stretch`];var alignContentValidator=str=>ALIGN_CONTENT_VALUES.includes(str);var propMap={align:[`align`,`alignSm`,`alignMd`,`alignLg`,`alignXl`,`alignXxl`],justify:[`justify`,`justifySm`,`justifyMd`,`justifyLg`,`justifyXl`,`justifyXxl`],alignContent:[`alignContent`,`alignContentSm`,`alignContentMd`,`alignContentLg`,`alignContentXl`,`alignContentXxl`]};var classMap={align:`align`,justify:`justify`,alignContent:`align-content`};function breakpointClass(type,prop,val){let className=classMap[type];if(val==null)return;if(prop){const breakpoint=prop.replace(type,``);className+=`-${breakpoint}`}className+=`-${val}`;return className.toLowerCase()}var makeVRowProps=propsFactory({dense:Boolean,align:{type:String,default:null,validator:alignValidator},alignSm:{type:String,default:null,validator:alignValidator},alignMd:{type:String,default:null,validator:alignValidator},alignLg:{type:String,default:null,validator:alignValidator},alignXl:{type:String,default:null,validator:alignValidator},alignXxl:{type:String,default:null,validator:alignValidator},justify:{type:String,default:null,validator:justifyValidator},justifySm:{type:String,default:null,validator:justifyValidator},justifyMd:{type:String,default:null,validator:justifyValidator},justifyLg:{type:String,default:null,validator:justifyValidator},justifyXl:{type:String,default:null,validator:justifyValidator},justifyXxl:{type:String,default:null,validator:justifyValidator},alignContent:{type:String,default:null,validator:alignContentValidator},alignContentSm:{type:String,default:null,validator:alignContentValidator},alignContentMd:{type:String,default:null,validator:alignContentValidator},alignContentLg:{type:String,default:null,validator:alignContentValidator},alignContentXl:{type:String,default:null,validator:alignContentValidator},alignContentXxl:{type:String,default:null,validator:alignContentValidator},noGutters:Boolean,gap:[Number,String,Array],size:[Number,String],...makeComponentProps(),...makeDensityProps(),...makeTagProps()},`VRow`);var VRow=genericComponent()({name:`VRow`,props:makeVRowProps(),setup(props,{slots}){if(props.dense)deprecate(`dense`,`density="compact"`);const classes=computed(()=>{const classList=[];let type;for(type in propMap)propMap[type].forEach(prop=>{const value=props[prop];const className=breakpointClass(type,prop,value);if(className)classList.push(className)});classList.push({"v-row--no-gutters":props.noGutters,"v-row--density-default":props.density==="default"&&!props.noGutters&&!props.dense,"v-row--density-compact":props.density===`compact`||props.dense,"v-row--density-comfortable":props.density===`comfortable`,[`align-${props.align}`]:props.align,[`justify-${props.justify}`]:props.justify,[`align-content-${props.alignContent}`]:props.alignContent});return classList});const horizontalGap=computed(()=>{return Array.isArray(props.gap)?convertToUnit(props.gap[0]||0):convertToUnit(props.gap)});const verticalGap=computed(()=>{return Array.isArray(props.gap)?convertToUnit(props.gap[1]||0):horizontalGap.value});return()=>h(props.tag,{class:[`v-row`,classes.value,props.class],style:[{"--v-col-gap-x":horizontalGap.value,"--v-col-gap-y":verticalGap.value,"--v-row-columns":props.size},props.style]},slots.default?.())}});export{VCol as n,VRow as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Cn as toRaw,D as createVNode,E as createTextVNode,En as toValue,H as hasInjectionContext,Ht as watch,J as inject,On as unref,Pt as useId,Ut as watchEffect,Zn as normalizeClass,_ as createBaseVNode,_n as readonly,bn as shallowReadonly,ct as onMounted,er as normalizeStyle,et as mergeProps,g as computed,gt as provide,o as Fragment,pn as onScopeDispose,tt as nextTick,un as isRef,vn as ref,wn as toRef,xn as shallowRef,yn as shallowReactive}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{At as getCurrentInstance,B as useTextColor,Bn as isFunction,Ct as defineComponent,Dn as wrapInArray,F as makeTransitionProps,Fn as findMatchRanges,Gn as isString,H as useDimension,Hn as isNullOrUndefined,In as foreground,Jn as mergeDeep,Jt as checkPrintable,Kn as isSymbol,Ln as hexToRgb,Mn as UNSAFE_KEYS,Mt as makeComponentProps,Nn as V0Error,Nt as propsFactory,On as IN_BROWSER$1,Ot as injectNestedDefaults,Pn as clamp$1,Qt as debounce,Rn as isArray,St as deepEqual,U as VDefaultsProvider,Un as isNumber,V as makeDimensionProps,Vn as isNull,Wn as isObject,X as useResizeObserver,Xn as resolveIds,Xt as clamp,Y as makeTagProps,Zn as useId$1,Zt as convertToUnit,_n as matchesSelector,_t as useRender,bn as omit,cn as getActiveElement,dt as useProxiedModel,ft as useToggleScope,h as VIcon,lt as useLocale,mt as IconValue,ot as useDisplay,qn as isUndefined,qt as camelizeProps,sn as focusableChildren,tn as ensureValidVNode,un as getPropertyFromItem,wt as genericComponent,zn as isBoolean}from"./ripple-EFNA8EBu.js";import{l as forwardRefs,u as getScrollParent}from"./VOverlay-Cp4rFk6g.js";import{a as useItems,n as VList,o as VListSubheader,r as makeItemsProps,s as VListItem,t as VMenu}from"./VMenu-CDcBLYWR.js";import{t as VChip}from"./VChip-VVdtjfq-.js";import{h as useInputIcon,n as makeVTextFieldProps,p as useForm,t as VTextField}from"./VTextField-C0b_0cSa.js";import{t as VDialogTransition}from"./dialog-transition-D2vqGksQ.js";import{t as VAvatar}from"./VAvatar-DvRBcmqv.js";import{t as VCheckboxBtn}from"./VCheckboxBtn-DYcQU2Pn.js";import{t as VDivider}from"./VDivider-Dq25WsKu.js";import{t as VSheet}from"./VSheet-DxYEFfnM.js";var IN_BROWSER=typeof window!==`undefined`;var SUPPORTS_TOUCH=IN_BROWSER&&(`ontouchstart`in window||window.navigator.maxTouchPoints>0);var SUPPORTS_MATCH_MEDIA=IN_BROWSER&&`matchMedia`in window&&typeof window.matchMedia===`function`;var SUPPORTS_OBSERVER=IN_BROWSER&&`ResizeObserver`in window;var SUPPORTS_INTERSECTION_OBSERVER=IN_BROWSER&&`IntersectionObserver`in window;var SUPPORTS_MUTATION_OBSERVER=IN_BROWSER&&`MutationObserver`in window;var __LOGGER_ENABLED__=typeof{}.VITE_LOGGER_ENABLED!==`undefined`&&{}.VITE_LOGGER_ENABLED===`true`;var makeVVirtualScrollItemProps=propsFactory({renderless:Boolean,...makeComponentProps()},`VVirtualScrollItem`);var VVirtualScrollItem=genericComponent()({name:`VVirtualScrollItem`,inheritAttrs:false,props:makeVVirtualScrollItemProps(),emits:{"update:height":height=>true},setup(props,{attrs,emit,slots}){const{resizeRef,contentRect}=useResizeObserver(void 0,`border`);watch(()=>contentRect.value?.height,height=>{if(height!=null)emit(`update:height`,height)});useRender(()=>props.renderless?createBaseVNode(Fragment,null,[slots.default?.({itemRef:resizeRef})]):createBaseVNode(`div`,mergeProps({"ref":resizeRef,"class":[`v-virtual-scroll__item`,props.class],"style":props.style},attrs),[slots.default?.()]))}});var UP=-1;var DOWN=1;var BUFFER_PX=100;var makeVirtualProps=propsFactory({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function useVirtual(props,items){const display=useDisplay();const itemHeight=shallowRef(0);watchEffect(()=>{itemHeight.value=parseFloat(props.itemHeight||0)});const first=shallowRef(0);const last=shallowRef(Math.ceil((parseInt(props.height)||display.height.value)/(itemHeight.value||16))||1);const paddingTop=shallowRef(0);const paddingBottom=shallowRef(0);const containerRef=ref();const markerRef=ref();let markerOffset=0;const{resizeRef,contentRect}=useResizeObserver();watchEffect(()=>{resizeRef.value=containerRef.value});const viewportHeight=computed(()=>{return containerRef.value===document.documentElement?display.height.value:contentRect.value?.height||parseInt(props.height)||0});const hasInitialRender=computed(()=>{return!!(containerRef.value&&markerRef.value&&viewportHeight.value&&itemHeight.value)});let sizes=Array.from({length:items.value.length});let offsets=Array.from({length:items.value.length});let heights=new Map;const updateTime=shallowRef(0);let targetScrollIndex=-1;let targetScrollPosition=`start`;let targetScrollHeight=0;function getSize(index){return sizes[index]||itemHeight.value}const updateOffsets=debounce(()=>{const start=performance.now();offsets[0]=0;const length=items.value.length;for(let i=1;i<=length;i++)offsets[i]=(offsets[i-1]||0)+getSize(i-1);updateTime.value=Math.max(updateTime.value,performance.now()-start);calculateVisibleItems()},updateTime);const unwatch=watch(hasInitialRender,v=>{if(!v)return;unwatch();markerOffset=markerRef.value.offsetTop;updateOffsets.immediate();calculateVisibleItems();if(!~targetScrollIndex)return;nextTick(()=>{IN_BROWSER$1&&window.requestAnimationFrame(()=>{if(~targetScrollIndex)scrollToIndex(targetScrollIndex,targetScrollPosition)})})});onScopeDispose(()=>{updateOffsets.clear()});function estimateItemHeight(){let total=0;for(const count of heights.values())total+=count;let seen=0;for(const height of[...heights.keys()].sort((a,b)=>a-b)){seen+=heights.get(height);if(seen*2>=total)return height}return itemHeight.value}function handleItemResize(index,height){const prevHeight=sizes[index];const prevItemHeight=itemHeight.value;if(height>0){if(prevHeight){const count=heights.get(prevHeight)-1;count?heights.set(prevHeight,count):heights.delete(prevHeight)}heights.set(height,(heights.get(height)??0)+1);itemHeight.value=estimateItemHeight()}if(prevHeight!==height||prevItemHeight!==itemHeight.value){sizes[index]=height;updateOffsets()}}function calculateOffset(index){index=clamp(index,0,items.value.length);const whole=Math.floor(index);const fraction=index%1;const next=whole+1;const wholeOffset=offsets[whole]||0;return wholeOffset+((offsets[next]||wholeOffset)-wholeOffset)*fraction}function calculateIndex(scrollTop){return binaryClosest(offsets,scrollTop)}let lastScrollTop=0;let scrollVelocity=0;let lastScrollTime=0;watch(viewportHeight,(val,oldVal)=>{calculateVisibleItems();if(val<oldVal)requestAnimationFrame(()=>{scrollVelocity=0;calculateVisibleItems()})});let scrollTimeout=-1;function handleScroll(){if(!containerRef.value||!markerRef.value)return;const scrollTop=containerRef.value.scrollTop;const scrollTime=performance.now();if(scrollTime-lastScrollTime>500){scrollVelocity=Math.sign(scrollTop-lastScrollTop);markerOffset=markerRef.value.offsetTop}else scrollVelocity=scrollTop-lastScrollTop;lastScrollTop=scrollTop;lastScrollTime=scrollTime;window.clearTimeout(scrollTimeout);scrollTimeout=window.setTimeout(handleScrollend,500);calculateVisibleItems()}function handleScrollend(){if(!containerRef.value||!markerRef.value)return;scrollVelocity=0;lastScrollTime=0;window.clearTimeout(scrollTimeout);calculateVisibleItems()}let raf=-1;function calculateVisibleItems(){cancelAnimationFrame(raf);raf=requestAnimationFrame(_calculateVisibleItems)}function _calculateVisibleItems(){if(!containerRef.value||!viewportHeight.value||!itemHeight.value)return;const scrollTop=lastScrollTop-markerOffset;const direction=Math.sign(scrollVelocity);const startPx=Math.max(0,scrollTop-BUFFER_PX);const start=clamp(calculateIndex(startPx),0,items.value.length);const endPx=scrollTop+viewportHeight.value+BUFFER_PX;const end=clamp(calculateIndex(endPx)+1,start+1,items.value.length);if((direction!==UP||start<first.value)&&(direction!==DOWN||end>last.value)){const topOverflow=calculateOffset(first.value)-calculateOffset(start);const bottomOverflow=calculateOffset(end)-calculateOffset(last.value);if(Math.max(topOverflow,bottomOverflow)>BUFFER_PX){first.value=start;last.value=end}else{if(start<=0)first.value=start;if(end>=items.value.length){last.value=end;first.value=start}}}paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value)}function calculateScrollTop(index,position){const offset=calculateOffset(index);if(position===`center`)return Math.max(0,offset-viewportHeight.value/2+getSize(index)/2);if(position===`end`){const scrollport=containerRef.value?.clientHeight||viewportHeight.value;return Math.max(0,offset+markerOffset-scrollport+getSize(index))}return offset}function scrollToIndex(index,position=`start`){if(targetScrollIndex!==index)targetScrollHeight=0;const offset=calculateOffset(index);if(!containerRef.value||index&&!offset){targetScrollIndex=index;targetScrollPosition=position;return}const itemSize=itemHeight.value||16;const buffer=Math.ceil(BUFFER_PX/itemSize);const viewport=Math.max(1,Math.ceil((viewportHeight.value||0)/itemSize));const lead=position===`center`?Math.ceil(viewport/2):position===`end`?viewport:0;first.value=clamp(index-lead-buffer,0,Math.max(0,items.value.length-1));last.value=clamp(index-lead+viewport+buffer,first.value+1,items.value.length);paddingTop.value=calculateOffset(first.value);paddingBottom.value=calculateOffset(items.value.length)-calculateOffset(last.value);scrollVelocity=0;lastScrollTime=0;targetScrollIndex=index;targetScrollPosition=position;nextTick(()=>{const el=containerRef.value;if(!el||!~targetScrollIndex||targetScrollIndex!==index)return;const top=calculateScrollTop(index,position);el.scrollTop=top;lastScrollTop=el.scrollTop;if(index&&el.scrollTop<top-1&&el.scrollHeight>targetScrollHeight){targetScrollHeight=el.scrollHeight;IN_BROWSER$1&&requestAnimationFrame(()=>{if(targetScrollIndex===index)scrollToIndex(index,position)})}else{targetScrollIndex=-1;targetScrollPosition=`start`;calculateVisibleItems()}})}const computedItems=computed(()=>{return items.value.slice(first.value,last.value).map((item,index)=>{const _index=index+first.value;return{raw:item,index:_index,key:getPropertyFromItem(item,props.itemKey,_index)}})});watch(items,()=>{sizes=Array.from({length:items.value.length});offsets=Array.from({length:items.value.length});heights=new Map;updateOffsets.immediate();calculateVisibleItems()},{deep:1});return{calculateVisibleItems,containerRef,markerRef,computedItems,paddingTop,paddingBottom,scrollToIndex,handleScroll,handleScrollend,handleItemResize}}function binaryClosest(arr,val){let high=arr.length-1;let low=0;let mid=0;let item=null;let target=-1;if(arr[high]<val)return high;while(low<=high){mid=low+high>>1;item=arr[mid];if(item>val)high=mid-1;else if(item<val){target=mid;low=mid+1}else if(item===val)return mid;else return low}return target}var makeVVirtualScrollProps=propsFactory({items:{type:Array,default:()=>[]},renderless:Boolean,...makeVirtualProps(),...makeComponentProps(),...makeDimensionProps()},`VVirtualScroll`);var VVirtualScroll=genericComponent()({name:`VVirtualScroll`,props:makeVVirtualScrollProps(),setup(props,{slots}){const vm=getCurrentInstance(`VVirtualScroll`);const{dimensionStyles}=useDimension(props);const{calculateVisibleItems,containerRef,markerRef,handleScroll,handleScrollend,handleItemResize,scrollToIndex,paddingTop,paddingBottom,computedItems}=useVirtual(props,toRef(()=>props.items));useToggleScope(()=>props.renderless,()=>{function handleListeners(add=false){const method=add?`addEventListener`:`removeEventListener`;if(!IN_BROWSER$1)return;if(containerRef.value===document.documentElement){document[method](`scroll`,handleScroll,{passive:true});document[method](`scrollend`,handleScrollend)}else{containerRef.value?.[method](`scroll`,handleScroll,{passive:true});containerRef.value?.[method](`scrollend`,handleScrollend)}}onMounted(()=>{containerRef.value=getScrollParent(vm.vnode.el,true);handleListeners(true)});onScopeDispose(handleListeners)});useRender(()=>{const children=computedItems.value.map(item=>createVNode(VVirtualScrollItem,{"key":item.key,"renderless":props.renderless,"onUpdate:height":height=>handleItemResize(item.index,height)},{default:slotProps=>slots.default?.({item:item.raw,index:item.index,...slotProps})}));return props.renderless?createBaseVNode(Fragment,null,[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__spacer`,"style":{paddingTop:convertToUnit(paddingTop.value)}},null),children,createBaseVNode(`div`,{"class":`v-virtual-scroll__spacer`,"style":{paddingBottom:convertToUnit(paddingBottom.value)}},null)]):createBaseVNode(`div`,{"ref":containerRef,"class":normalizeClass([`v-virtual-scroll`,props.class]),"onScrollPassive":handleScroll,"onScrollend":handleScrollend,"style":normalizeStyle([dimensionStyles.value,props.style])},[createBaseVNode(`div`,{"ref":markerRef,"class":`v-virtual-scroll__container`,"style":{paddingTop:convertToUnit(paddingTop.value),paddingBottom:convertToUnit(paddingBottom.value)}},[children])])});return{calculateVisibleItems,scrollToIndex}}});function useContext(key,defaultValue){const context=inject(key,defaultValue);if(isUndefined(context))throw new V0Error(`Context "${String(key)}" not found. Ensure it's provided by an ancestor.`,{code:`V0_CONTEXT_MISSING`,key});return context}function provideContext(key,context,app){if(app)app.provide(key,context);else provide(key,context);return context}function createContext(keyOrOptions,defaultValue){if(isString(keyOrOptions)||isSymbol(keyOrOptions)){const _key=keyOrOptions;function _provideContext(context,app){return provideContext(_key,context,app)}function _useContext(){return useContext(_key,defaultValue)}return[_useContext,_provideContext]}const suffix=isObject(keyOrOptions)?keyOrOptions.suffix:void 0;function _provideContext(key,context,app){return provideContext(suffix?`${key}:${suffix}`:key,context,app)}function _useContext(key,defaultValue){return useContext(suffix?`${key}:${suffix}`:key,defaultValue)}return[_useContext,_provideContext]}function createTrinity(keyOrUseContext,provideContextOrContext,maybeContext){if(isString(keyOrUseContext)){const[useContext,provideContext]=createContext(keyOrUseContext);const context=provideContextOrContext;return[useContext,(_context=context,app)=>provideContext(_context,app),context]}const provideContext=provideContextOrContext;const context=maybeContext;return[keyOrUseContext,(_context=context,app)=>provideContext(_context,app),context]}var INSTALLED=Symbol.for(`v0:installed-plugins`);function getInstalled(app){const ctx=app._context;return ctx[INSTALLED]??=new Set}function createPlugin(options){return{install(app){app.runWithContext(()=>{const installed=getInstalled(app);if(installed.has(options.namespace))return;installed.add(options.namespace);options.provide(app);options.setup?.(app)})}}}function deriveKey(namespace){return namespace.startsWith(`v0:`)?namespace.slice(3):namespace}function getPersistedStorage(){return useContext(`v0:storage`)}function createPluginContext(defaultNamespace,factory,config){function createXContext(_options={}){const{namespace=defaultNamespace,persist:_persist,...options}=_options;const context=factory(options);return createTrinity(namespace,context)}function createXPlugin(_options={}){const{namespace=defaultNamespace,persist:shouldPersist,...options}=_options;let context;return createPlugin({namespace,provide:app=>{const[,provide,ctx]=createXContext({...options,namespace});context=ctx;provide(context,app);if(shouldPersist&&config?.restore){const storage=getPersistedStorage();const key=deriveKey(namespace);const saved=storage.get(key);if(!isNullOrUndefined(saved.value))config.restore(context,saved.value)}},setup:config?.setup||shouldPersist?app=>{const ctx=context;config?.setup?.(ctx,app,options);if(shouldPersist&&config?.persist){const storage=getPersistedStorage();const key=deriveKey(namespace);const stored=storage.get(key);const stop=watch(()=>config.persist(ctx),val=>{stored.value=val});app.onUnmount(stop)}}:void 0})}function useX(namespace=defaultNamespace){if(config?.fallback){if(!hasInjectionContext())return config.fallback(namespace);const provided=inject(namespace,void 0);if(!isUndefined(provided))return provided;return config.fallback(namespace)}return useContext(namespace)}return[createXContext,createXPlugin,useX]}var LoggerAdapter=class{};var V0LoggerAdapter=class extends LoggerAdapter{prefix;colors;timestamps;constructor(options={}){super();this.prefix=options.prefix||`v0`;this.colors=options.colors!==false;this.timestamps=options.timestamps!==false}debug(message,...args){this.log(`debug`,`debug`,message,...args)}info(message,...args){this.log(`info`,`info`,message,...args)}warn(message,...args){this.log(`warn`,`warn`,message,...args)}error(message,...args){this.log(`error`,`error`,message,...args)}trace(message,...args){this.log(`trace`,`trace`,message,...args)}fatal(message,...args){this.log(`fatal`,`error`,message,...args)}format(level,message,...args){return[[this.timestamps?this.timestamp():``,`[${this.prefix} ${level.toLowerCase()}]`,message].filter(Boolean).join(` `),...args]}timestamp(){if(!IN_BROWSER)return new Date().toISOString();return new Date().toTimeString().split(` `)[0]??``}style(level){if(!this.colors||!IN_BROWSER)return``;return{trace:`color: #64748b`,debug:`color: #3b82f6`,info:`color: #10b981`,warn:`color: #f59e0b`,error:`color: #ef4444`,fatal:`color: #dc2626; font-weight: bold`,silent:``}[level]||``}log(level,method,message,...args){const[formattedMessage,...restArgs]=this.format(level,message,...args);const style=this.style(level);if(IN_BROWSER&&style&&isFunction(console[method]))console[method](`%c${formattedMessage}`,style,...restArgs);else if(isFunction(console[method]))console[method](formattedMessage,...restArgs)}};function createLogger(options={}){const{adapter=new V0LoggerAdapter({prefix:options.prefix}),level:initialLevel=`info`,enabled:initialEnabled=__LOGGER_ENABLED__}=options;let currentLevel=initialLevel;let isEnabled=initialEnabled;function value(level){return{trace:0,debug:1,info:2,warn:3,error:4,fatal:5,silent:6}[level]??2}function can(level){if(!isEnabled)return false;return value(level)>=value(currentLevel)}function format(message){return message}function debug(message,...args){if(can(`debug`))adapter.debug(format(message),...args)}function info(message,...args){if(can(`info`))adapter.info(format(message),...args)}function warn(message,...args){if(can(`warn`))adapter.warn(format(message),...args)}function error(message,...args){if(can(`error`))adapter.error(format(message),...args)}function trace(message,...args){if(can(`trace`))adapter.trace?.(format(message),...args)}function fatal(message,...args){if(can(`fatal`))adapter.fatal?.(format(message),...args)}function level(newLevel){currentLevel=newLevel}function current(){return currentLevel}function enabled(){return isEnabled}function enable(){isEnabled=true}function disable(){isEnabled=false}return{debug,info,warn,error,trace,fatal,level,current,enabled,enable,disable}}var NAMESPACE=`v0:logger`;function createFallbackLogger(namespace=NAMESPACE){function format(message,type){return`[${namespace} ${type}] ${message}`}return{debug:(message,...args)=>console.debug(format(message,`debug`),...args),info:(message,...args)=>console.info(format(message,`info`),...args),warn:(message,...args)=>console.warn(format(message,`warn`),...args),error:(message,...args)=>console.error(format(message,`error`),...args),trace:(message,...args)=>console.trace(format(message,`trace`),...args),fatal:(message,...args)=>console.error(format(message,`fatal`),...args),level:()=>{},current:()=>`info`,enabled:()=>true,enable:()=>{},disable:()=>{}}}var[createLoggerContext,createLoggerPlugin,useLoggerContext]=createPluginContext(NAMESPACE,options=>createLogger(options),{fallback:ns=>createFallbackLogger(ns),setup:(context,_app,_options)=>{}});function createScopedLogger(logger,scope){const tag=`[${scope}]`;function wrap(method){return(message,...args)=>method(`${tag} ${message}`,...args)}return{...logger,debug:wrap(logger.debug),info:wrap(logger.info),warn:wrap(logger.warn),error:wrap(logger.error),trace:wrap(logger.trace),fatal:wrap(logger.fatal)}}function useLogger(scope){const logger=useLoggerContext();return isUndefined(scope)||!scope.trim()?logger:createScopedLogger(logger,scope)}function createRegistry(options){const logger=useLogger();const events=options?.events??false;const reactive=options?.reactive??false;const collection=reactive?shallowReactive(new Map):new Map;const catalog=new Map;const directory=new Map;const cache=new Map;const listeners=new Map;const minted=new WeakSet;const order=[];const version=shallowRef(0);let indexDependentCount=0;let needsReindex=false;let minDirtyIndex=Infinity;let maxDirtyIndex=-Infinity;let isBatching=false;let structural=false;let batched=[];function dispatch(event,data){const cbs=listeners.get(event);if(!cbs)return;for(const cb of cbs)cb(data)}function emit(event,data=void 0){if(!events)return;if(isBatching){batched.push({event,data});return}dispatch(event,data)}function on(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}if(!listeners.has(event))listeners.set(event,new Set);listeners.get(event).add(cb)}function off(event,cb){if(!events){logger.warn(`Events are disabled. Initialize with \`createRegistry({ events: true })\` to enable.`);return}listeners.get(event)?.delete(cb)}function dispose(){listeners.clear();clear()}function get(id){return collection.get(id)}function upsert(id,patch={},event){if(needsReindex)reindex();const existing=get(id);if(!existing)return register({...patch,id});const hasValue=Object.hasOwn(patch,`value`);let value=existing.value;let valueIsIndex=existing.valueIsIndex;if(hasValue){if(isUndefined(patch.value)){value=existing.index;valueIsIndex=true}else{value=patch.value;valueIsIndex=false}if(valueIsIndex!==existing.valueIsIndex){if(valueIsIndex)indexDependentCount++;else indexDependentCount--}if(!Object.is(value,existing.value)){unassign(existing.value,id);assign(value,id)}}Object.assign(existing,patch,{id,index:existing.index,value,valueIsIndex});collection.set(id,existing);cache.clear();emit(`update:ticket`,existing);if(event)emit(event,existing);return existing}function browse(value){if(needsReindex)reindex();const bucket=catalog.get(value);return bucket?bucket.slice():void 0}function lookup(index){if(needsReindex)reindex();return directory.get(index)}function has(id){return collection.has(id)}function assign(value,id){const bucket=catalog.get(value);if(bucket){if(!bucket.includes(id))bucket.push(id)}else catalog.set(value,[id])}function unassign(value,id){const bucket=catalog.get(value);if(!bucket)return;const next=bucket.filter(v=>v!==id);if(next.length===0)catalog.delete(value);else catalog.set(value,next)}function keys(){if(reactive)version.value;const cached=cache.get(`keys`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>ticket.id);cache.set(`keys`,out);return out}function values(){if(reactive)version.value;const cached=cache.get(`values`);if(!isUndefined(cached))return cached;const out=order.slice();cache.set(`values`,out);return out}function entries(){if(reactive)version.value;const cached=cache.get(`entries`);if(!isUndefined(cached))return cached;const out=order.map(ticket=>[ticket.id,ticket]);cache.set(`entries`,out);return out}function clear(){order.length=0;collection.clear();catalog.clear();directory.clear();invalidate();indexDependentCount=0;needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`clear:registry`)}function invalidate(){cache.clear();if(isBatching){structural=true;return}version.value++}function batch(fn){if(isBatching)return fn();isBatching=true;structural=false;batched=[];try{return fn()}finally{isBatching=false;const queue=batched;batched=[];cache.clear();try{for(const{event,data}of queue)dispatch(event,data)}finally{if(structural)version.value++}}}function reindex(){const size=order.length;const start=minDirtyIndex===Infinity?0:minDirtyIndex;const end=maxDirtyIndex===-Infinity?size-1:Math.min(maxDirtyIndex,size-1);const full=start===0&&end===size-1;invalidate();if(full){catalog.clear();directory.clear()}else for(let i=start;i<=end;i++){const ticket=order[i];directory.delete(ticket.index);if(ticket.valueIsIndex)unassign(ticket.value,ticket.id)}for(let i=start;i<=end;i++){const ticket=order[i];if(ticket.valueIsIndex){ticket.value=i;assign(ticket.value,ticket.id)}else if(full)assign(ticket.value,ticket.id);ticket.index=i;directory.set(i,ticket.id)}needsReindex=false;minDirtyIndex=Infinity;maxDirtyIndex=-Infinity;emit(`reindex:registry`)}function register(registration={}){if(needsReindex)reindex();const size=collection.size;const auto=isNullOrUndefined(registration.id);const id=registration.id??useId$1();if(has(id)){logger.warn(`Ticket "${id}" already exists. Use \`upsert()\` to update or check \`has()\` before registering.`);return get(id)}const valueIsUndefined=isUndefined(registration.value);const index=size;const value=valueIsUndefined?index:registration.value;const valueIsIndex=registration.valueIsIndex??valueIsUndefined;if(valueIsIndex)indexDependentCount++;const input={unregister:()=>unregister(id),...registration,id,index,value,valueIsIndex};const ticket=reactive?shallowReactive(input):input;if(auto)minted.add(ticket);collection.set(ticket.id,ticket);order.push(ticket);directory.set(ticket.index,ticket.id);assign(ticket.value,ticket.id);invalidate();emit(`register:ticket`,ticket);return ticket}function unregister(id){const ticket=collection.get(id);if(!ticket)return;if(ticket.valueIsIndex)indexDependentCount--;let orderPos=ticket.index;if(order[orderPos]!==ticket)orderPos=order.indexOf(ticket);if(orderPos!==-1)order.splice(orderPos,1);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id);const willReindex=indexDependentCount>0&&ticket.index<collection.size;if(!willReindex)invalidate();minDirtyIndex=Math.min(minDirtyIndex,ticket.index);if(willReindex)reindex();else needsReindex=true;emit(`unregister:ticket`,ticket)}function onboard(registrations){return batch(()=>registrations.map(registration=>register(registration)))}function toInput(ticket){const input={...ticket};delete input.index;delete input.valueIsIndex;delete input.unregister;if(minted.has(ticket))delete input.id;if(ticket.valueIsIndex)delete input.value;return input}function offboard(ids){const removed=[];const removedIds=new Set;for(const id of ids){if(removedIds.has(id))continue;const ticket=collection.get(id);if(ticket){removed.push(ticket);removedIds.add(id)}}if(removed.length===0)return[];batch(()=>{let w=0;for(const ticket of order)if(!removedIds.has(ticket.id))order[w++]=ticket;order.length=w;invalidate();for(const ticket of removed){if(ticket.valueIsIndex)indexDependentCount--;minDirtyIndex=Math.min(minDirtyIndex,ticket.index);collection.delete(ticket.id);directory.delete(ticket.index);unassign(ticket.value,ticket.id)}for(const ticket of removed)emit(`unregister:ticket`,ticket);if(indexDependentCount>0&&minDirtyIndex<collection.size)reindex();else needsReindex=true});return removed.map(ticket=>toInput(ticket))}function move(id,toIndex){if(needsReindex)reindex();const ticket=collection.get(id);if(!ticket)return void 0;const size=collection.size;const target=clamp$1(toIndex,0,size-1);const from=ticket.index;if(from===target)return ticket;return batch(()=>{order.splice(from,1);order.splice(target,0,ticket);minDirtyIndex=Math.min(from,target);maxDirtyIndex=Math.max(from,target);reindex();emit(`update:ticket`,ticket);return ticket})}function reorder(ids){if(needsReindex)reindex();if(ids.length!==collection.size)return;const seen=new Set;const next=[];for(const id of ids){if(seen.has(id))return;const ticket=collection.get(id);if(!ticket)return;seen.add(id);next.push(ticket)}batch(()=>{for(const[i,ticket]of next.entries())order[i]=ticket;minDirtyIndex=0;maxDirtyIndex=-Infinity;reindex()})}function seek(direction=`first`,from,predicate){if(collection.size===0)return void 0;if(needsReindex)reindex();const n=order.length;if(!predicate&&isUndefined(from))return direction===`first`?order[0]:order.at(-1);const index=isUndefined(from)?void 0:clamp$1(from,0,n-1);if(direction===`last`){const start=isUndefined(index)?n-1:index;for(let i=start;i>=0;i--){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}else{const start=isUndefined(index)?0:index;for(let i=start;i<n;i++){const ticket=order[i];if(!predicate||predicate(ticket))return ticket}}}return{collection,emit,on,off,dispose,has,keys,clear,browse,entries,values,lookup,get,upsert,register,unregister,reindex,move,reorder,seek,batch,onboard,offboard,get size(){return collection.size}}}function createModel(_options={}){const{disabled=false,enroll=true,multiple=false,...options}=_options;const registry=createRegistry(options);const selectedIds=shallowReactive(new Set);const selectedItems=computed(()=>new Set(resolveIds(selectedIds,registry.get)));const selectedValues=computed(()=>{const out=new Set;for(const item of selectedItems.value)out.add(toValue(item.value));return out});function select(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;if(!toValue(multiple))selectedIds.clear();selectedIds.add(id)}function unselect(id){if(toValue(disabled))return;const item=registry.get(id);if(!item||toValue(item.disabled))return;selectedIds.delete(id)}function toggle(id){if(toValue(disabled))return;if(selected(id))unselect(id);else select(id)}function selected(id){return selectedIds.has(id)}function apply(values,_options){const value=values[0];let written=false;for(const id of selectedIds){const item=registry.get(id);if(!item||!isRef(item.value))continue;if(!isUndefined(value))item.value.value=value;written=true}if(written)return;if(!toValue(multiple))selectedIds.clear();if(isUndefined(value))return;const id=registry.browse(toRaw(value))?.values().next().value;if(!isUndefined(id))select(id)}function register(registration={}){const id=registration.id??useId$1();const item={disabled:false,unregister:()=>unregister(id),...registration,isSelected:toRef(()=>selected(id)),id};const ticket=registry.register(item);if(toValue(enroll)&&!toValue(disabled)&&!toValue(ticket.disabled))select(id);return ticket}function unregister(id){selectedIds.delete(id);registry.unregister(id)}function onboard(registrations){return registry.batch(()=>registrations.map(r=>register(r)))}function offboard(ids){for(const id of ids)selectedIds.delete(id);return registry.offboard(ids)}function reset(){selectedIds.clear()}function clear(){reset();registry.clear()}function dispose(){reset();registry.dispose()}return{...registry,disabled,selectedIds,selectedItems,selectedValues,register,onboard,unregister,offboard,clear,dispose,reset,select,unselect,toggle,selected,apply,get size(){return registry.size}}}function createSelection(_options={}){const{enroll=false,mandatory=false,multiple=false,...options}=_options;const model=createModel({...options,multiple,enroll:false});function seek(direction=`first`,from){return model.seek(direction,from,ticket=>!toValue(ticket.disabled))}function mandate(){if(!toValue(mandatory)||model.size===0||model.selectedIds.size>0)return;const ticket=seek(`first`);if(ticket)model.select(ticket.id)}function drain(id){if(toValue(model.disabled))return;if(toValue(mandatory)&&model.selectedIds.size===1)return;model.selectedIds.delete(id)}function unselect(id){if(toValue(model.disabled))return;const item=model.get(id);if(!item||toValue(item.disabled))return;drain(id)}function toggle(id){if(toValue(model.disabled))return;if(model.selectedIds.has(id))unselect(id);else model.select(id)}function apply(values,options){const isMultiple=options?.multiple??toValue(multiple);const currentIds=new Set(model.selectedIds);const targetIds=new Set;if(isMultiple){for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids){const ticket=model.get(id);if(!ticket||toValue(ticket.disabled))continue;targetIds.add(id)}}if(toValue(mandatory)&&targetIds.size===0)return;for(const id of currentIds)if(!targetIds.has(id))model.selectedIds.delete(id);for(const id of targetIds)model.selectedIds.add(id)}else{for(const value of values){const ids=model.browse(toRaw(value));if(isUndefined(ids))continue;for(const id of ids)targetIds.add(id)}const next=targetIds.values().next().value;const last=currentIds.values().next().value;if(!isUndefined(last))drain(last);if(!isUndefined(next))model.select(next)}}function register(registration={}){const id=registration.id??useId$1();const decorated={select:()=>model.select(id),unselect:()=>unselect(id),toggle:()=>toggle(id),...registration,id};const ticket=model.register(decorated);if(toValue(enroll)&&!toValue(model.disabled)&&!toValue(ticket.disabled))model.select(ticket.id);if(toValue(mandatory)===`force`)mandate();return ticket}function onboard(registrations){const tickets=model.batch(()=>registrations.map(registration=>register(registration)));if(toValue(mandatory)===`force`)mandate();return tickets}return{...model,multiple,register,onboard,unselect,toggle,apply,mandate,seek,get size(){return model.size}}}function createSingle(_options={}){const{mandatory=false,...options}=_options;const registry=createSelection({...options,mandatory,multiple:false});const selectedId=toRef(()=>registry.selectedIds.values().next().value);const selectedItem=toRef(()=>registry.selectedItems.value.values().next().value);const selectedIndex=toRef(()=>selectedItem.value?.index??-1);const selectedValue=toRef(()=>selectedItem.value?.value);return{...registry,selectedId,selectedItem,selectedIndex,selectedValue,get size(){return registry.size}}}function createTokens(tokens={},options={}){const logger=useLogger();const registry=createRegistry({...options,events:true});const cache=new Map;function invalidate(){cache.clear()}registry.on(`register:ticket`,invalidate);registry.on(`unregister:ticket`,invalidate);registry.on(`update:ticket`,invalidate);registry.on(`reindex:registry`,invalidate);registry.on(`clear:registry`,invalidate);registry.onboard(flatten(tokens,options.prefix,!!options.flat));function isAlias(token){return isString(token)&&token.length>2&&token[0]===`{`&&token.at(-1)===`}`}function isTokenAlias(value){return isObject(value)&&`$value`in value}function resolve(token,visited=new Set){const cacheKey=isString(token)?token:JSON.stringify(token);if(cache.has(cacheKey))return cache.get(cacheKey);const reference=isTokenAlias(token)?token.$value:token;const isAliasReference=isString(reference)&&isAlias(reference);if(isTokenAlias(token)&&!isAliasReference){cache.set(cacheKey,reference);return reference}const clean=isAliasReference?reference.slice(1,-1):String(reference);if(visited.has(clean)){logger.warn(`Circular alias detected for "${clean}"`);cache.set(cacheKey,void 0);return}visited.add(clean);let found=registry.get(clean);let segments=[];if(!found&&clean.includes(`.`)){const parts=clean.split(`.`);for(let i=parts.length-1;i>0;i--){const prefix=parts.slice(0,i).join(`.`);const suffix=parts.slice(i);const candidate=registry.get(prefix);if(!isUndefined(candidate?.value)){found=candidate;segments=suffix;break}}}if(isUndefined(found?.value)){if(isAliasReference)logger.warn(`Alias not found for "${String(reference)}"`);cache.set(cacheKey,void 0);return}let current=found.value;if(segments.length>0){if(isTokenAlias(current))current=current.$value;for(const segment of segments){if(!isObject(current)||UNSAFE_KEYS.has(segment)||!Object.prototype.hasOwnProperty.call(current,segment)){current=void 0;break}current=current[segment];if(isTokenAlias(current))current=current.$value}if(isUndefined(current)){logger.warn(`Path not found inside "${clean}": ${segments.join(`.`)}`);cache.set(cacheKey,void 0);return}}else if(isTokenAlias(current))current=current.$value;const result=isString(current)&&isAlias(current)?resolve(current,visited):current;cache.set(cacheKey,result);return result}return{...registry,resolve,isAlias,get size(){return registry.size}}}function flatten(tokens,prefix=``,flat=false){const flattened=[];const stack=[{tokens,prefix,flat}];while(stack.length>0){const{tokens:currentTokens,prefix:currentPrefix,flat}=stack.pop();const meta={};for(const k in currentTokens){if(!Object.hasOwn(currentTokens,k))continue;if(k.startsWith(`$`))meta[k]=currentTokens[k]}if(Object.keys(meta).length>0&¤tPrefix)flattened.push({id:currentPrefix,value:meta});for(const key in currentTokens){if(!Object.hasOwn(currentTokens,key))continue;if(UNSAFE_KEYS.has(key))continue;if(key.startsWith(`$`))continue;const value=currentTokens[key];const id=currentPrefix?`${currentPrefix}.${key}`:key;if(!isObject(value)){flattened.push({id,value});continue}if(`$value`in value){flattened.push({id,value});const inner=value.$value;if(isObject(inner)&&!flat)for(const innerKey in inner){if(!Object.hasOwn(inner,innerKey))continue;if(UNSAFE_KEYS.has(innerKey))continue;if(innerKey.startsWith(`$`))continue;const child=inner[innerKey];const childId=`${id}.${innerKey}`;if(!isObject(child))flattened.push({id:childId,value:child});else if(`$value`in child)flattened.push({id:childId,value:child});else stack.push({tokens:child,prefix:childId,flat})}continue}if(flat){flattened.push({id,value});continue}stack.push({tokens:value,prefix:id,flat})}}return flattened}function toArray(value){return isNullOrUndefined(value)?[]:isArray(value)?value:[value]}function useEventListener(target,event,listener,options){const cleanups=[];function cleanup(){for(const fn of cleanups)fn();cleanups.length=0}function register(el,event,listener,options){el.addEventListener(event,listener,options);return()=>el.removeEventListener(event,listener,options)}const stopWatcher=watch(()=>[toValue(target),toValue(event),unref(listener),toValue(options)],([el,events,listeners,opts])=>{cleanup();if(!el)return;const eventList=toArray(events);const listenerList=toArray(listeners);for(const event of eventList)for(const listenerFn of listenerList)cleanups.push(register(el,event,listenerFn,opts))},{immediate:true,flush:`post`});function stop(){stopWatcher();cleanup()}onScopeDispose(stop,true);return stop}function useWindowEventListener(event,listener,options){return IN_BROWSER?useEventListener(window,event,listener,options):()=>{}}var ThemeAdapter=class ThemeAdapter{static SAFE_IDENT=/^[a-zA-Z0-9_-]+$/;static UNSAFE_CSS=/url\s*\(|src\s*\(|image\s*\(|image-set\s*\(|cross-fade\s*\(|@import|expression\s*\(|[;{}<>\\]|\/\*/i;stylesheetId=`v0-theme-stylesheet`;prefix;rgb=false;dispose;constructor(prefix){if(!ThemeAdapter.SAFE_IDENT.test(prefix))throw new V0Error(`Invalid theme prefix: "${prefix}". Expected an identifier matching ${ThemeAdapter.SAFE_IDENT}.`,{code:`V0_THEME_INVALID_PREFIX`,prefix});this.prefix=prefix}generate(colors,isDark){let css=``;for(const theme in colors){const themeColors=colors[theme];if(!themeColors)continue;if(!ThemeAdapter.SAFE_IDENT.test(theme))continue;const vars=Object.entries(themeColors).filter(([key,val])=>ThemeAdapter.SAFE_IDENT.test(key)&&!ThemeAdapter.UNSAFE_CSS.test(val)).map(([key,val])=>` --${this.prefix}-${key}: ${this.rgb?this.decompose(val):val};`).join(`
|
|
2
|
+
`);css+=`[data-theme="${theme}"] {\n${vars}\n}\n`}if(!isUndefined(isDark))css+=`:root {\n color-scheme: ${isDark?`dark`:`light`};\n}\n`;return css}decompose(hex){const{r,g,b,a}=hexToRgb(hex);return isUndefined(a)?`${r}, ${g}, ${b}`:`${r}, ${g}, ${b}, ${a}`}};var V0StyleSheetThemeAdapter=class extends ThemeAdapter{cspNonce;sheet;constructor(options={}){super(options.prefix??`v0`);this.cspNonce=options.cspNonce;this.stylesheetId=options.stylesheetId??this.stylesheetId}setup(app,context,target){if(IN_BROWSER){this.update(context.colors.value,context.isDark.value);const stopWatch=watch([context.colors,context.isDark],([colors,isDark])=>{this.update(colors,isDark)});if(isNull(target)){this.dispose=()=>{stopWatch();this.detach()};return}const targetEl=target instanceof HTMLElement?target:isString(target)?document.querySelector(target):app._container||document.querySelector(`#app`)||document.body;if(!targetEl){this.dispose=()=>{stopWatch();this.detach()};return}if(context.selectedId.value)targetEl.dataset.theme=String(context.selectedId.value);const stopTheme=watch(context.selectedId,id=>{if(!id)return;targetEl.dataset.theme=String(id)});this.dispose=()=>{stopWatch();stopTheme();this.detach()}}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const id=context.selectedId.value;const entry=head.push({htmlAttrs:{"data-theme":id?String(id):``},style:[{innerHTML:this.generate(context.colors.value,context.isDark.value),id:this.stylesheetId,...this.cspNonce?{nonce:this.cspNonce}:{}}]});const stop=watch([context.selectedId,context.colors,context.isDark],([themeId,colors,isDark])=>{entry.patch?.({htmlAttrs:{"data-theme":themeId?String(themeId):``},style:[{innerHTML:this.generate(colors,isDark),id:this.stylesheetId,...this.cspNonce?{nonce:this.cspNonce}:{}}]})});this.dispose=()=>{stop();entry.dispose?.()}}}}update(colors,isDark){if(!IN_BROWSER)return;this.upsert(this.generate(colors,isDark))}upsert(styles){if(!IN_BROWSER)return;if(!this.sheet){this.sheet=new CSSStyleSheet;document.adoptedStyleSheets=[...document.adoptedStyleSheets,this.sheet]}this.sheet.replaceSync(styles)}detach(){if(!IN_BROWSER)return;document.adoptedStyleSheets=document.adoptedStyleSheets.filter(s=>s!==this.sheet);this.sheet=void 0}};function createHydration(){const isHydrated=shallowRef(false);const isSettled=shallowRef(false);function hydrate(){isHydrated.value=true}function settle(){isSettled.value=true}return{isHydrated:shallowReadonly(isHydrated),isSettled:shallowReadonly(isSettled),hydrate,settle}}function createFallbackHydration(){return{isHydrated:shallowReadonly(shallowRef(true)),isSettled:shallowReadonly(shallowRef(true)),hydrate:()=>{},settle:()=>{}}}var[createHydrationContext,createHydrationPlugin,useHydration]=createPluginContext(`v0:hydration`,()=>createHydration(),{fallback:()=>createFallbackHydration(),setup:(context,app)=>{const{mount}=app;app.mount=(...args)=>{const vm=mount(...args);nextTick().then(()=>{context.hydrate();nextTick().then(()=>context.settle())});app.mount=mount;return vm}}});function useMediaQuery(query){const resolvedQuery=toRef(()=>toValue(query));const initialQuery=toValue(query);const initialMql=IN_BROWSER&&SUPPORTS_MATCH_MEDIA?window.matchMedia(initialQuery):null;const matches=shallowRef(initialMql?.matches??false);const mediaQueryList=shallowRef(initialMql);const hydration=useHydration();let cleanup=null;function listen(){if(!IN_BROWSER||!SUPPORTS_MATCH_MEDIA)return;cleanup?.();cleanup=null;const mql=window.matchMedia(resolvedQuery.value);mediaQueryList.value=mql;matches.value=mql.matches;function handler(e){matches.value=e.matches}mql.addEventListener(`change`,handler);cleanup=()=>mql.removeEventListener(`change`,handler)}const stopWatch=watch([resolvedQuery,()=>hydration.isHydrated.value],([_,hydrated])=>{if(hydrated)listen()},{immediate:true});function stop(){stopWatch();cleanup?.();cleanup=null}onScopeDispose(stop,true);return{matches:shallowReadonly(matches),query:resolvedQuery,mediaQueryList:shallowReadonly(mediaQueryList),stop}}function usePrefersDark(){return useMediaQuery(`(prefers-color-scheme: dark)`)}function usePrefersReducedMotion(){return useMediaQuery(`(prefers-reduced-motion: reduce)`)}function createTheme(_options={}){const{themes={},palette={},foreground:genForeground,system,...options}=_options;const tokens=createTokens({palette,...themes},{flat:true});const registry=createSingle({...options,reactive:true});const logger=useLogger();for(const id in themes){const{colors:value,...theme}=themes[id];register({id,value,...theme})}const pair=resolveSystemPair(system,registry,logger);const following=shallowRef(Boolean(pair));if(!pair&&options.default&&!registry.selectedId.value)registry.select(options.default);const names=toRef(()=>registry.keys());const colors=computed(()=>{const resolved={};const currentId=registry.selectedId.value;for(const theme of registry.values()){if(theme.lazy&&theme.id!==currentId)continue;const themeColors=resolve(theme.value);if(genForeground)for(const[key,value]of Object.entries(themeColors)){const onKey=`on-${key}`;if(!key.startsWith(`on-`)&&!(onKey in themeColors))themeColors[onKey]=foreground(value)}resolved[theme.id]=themeColors}return resolved});const isDark=toRef(()=>registry.selectedItem.value?.dark??false);const isSystem=toRef(()=>following.value);const media=pair?usePrefersDark():void 0;function follow(){if(!pair||!media)return;const id=media.matches.value?pair.dark:pair.light;if(registry.has(id))registry.select(id)}if(pair){if(IN_BROWSER)follow();else if(options.default&&!registry.selectedId.value)registry.select(options.default);watch(()=>media.matches.value,()=>{if(following.value)follow()})}function select(id){following.value=false;registry.select(id)}function reset(){if(pair){following.value=true;follow();return}if(options.default)registry.select(options.default)}function cycle(themes=names.value){const current=themes.indexOf(registry.selectedId.value??``);select(themes[current===-1?0:(current+1)%themes.length])}function resolve(colors){const resolved={};for(const[key,value]of Object.entries(colors))resolved[key]=tokens.isAlias(value)?tokens.resolve(value):value;return resolved}function register(registration={}){const{colors,...rest}=registration;if(colors&&rest.id&&!registry.has(rest.id))tokens.onboard(flatten({[rest.id]:{colors}},``,true));const item={lazy:false,dark:false,...rest,...colors?{value:colors}:{}};return registry.register(item)}function onboard(registrations){return registry.batch(()=>registrations.map(registration=>register(registration)))}return{...registry,colors,isDark,isSystem,select,reset,register,onboard,cycle,dispose:()=>{media?.stop()},get size(){return registry.size}}}function resolveSystemPair(system,registry,logger){if(!system)return void 0;const light=registry.get(system.light);const dark=registry.get(system.dark);if(!light){logger.warn(`[v0:theme] system.light "${String(system.light)}" is not registered`);return}if(!dark){logger.warn(`[v0:theme] system.dark "${String(system.dark)}" is not registered`);return}if(!dark.dark)logger.warn(`[v0:theme] system.dark "${String(system.dark)}" should have dark: true`);return system}function createThemeFallback(){return{size:0,colors:computed(()=>({})),isDark:shallowRef(false),isSystem:shallowRef(false),cycle:()=>{},reset:()=>{},onboard:()=>[],dispose:()=>{}}}var[createThemeContext,createThemePlugin,useTheme]=createPluginContext(`v0:theme`,options=>createTheme(options),{fallback:()=>createThemeFallback(),setup:(context,app,{adapter=new V0StyleSheetThemeAdapter,target,rgb})=>{if(rgb)adapter.rgb=true;adapter.setup(app,context,target);app.onUnmount(()=>adapter.dispose?.())},persist:ctx=>ctx.isSystem.value?null:ctx.selectedId.value,restore:(ctx,saved)=>{if(isString(saved)||isNumber(saved))ctx.select(saved)}});function merge(ranges){const sorted=ranges.filter(span=>span[0]<span[1]).toSorted((a,b)=>a[0]-b[0]);const merged=[];for(const span of sorted){const last=merged.at(-1);if(last&&span[0]<=last[1])last[1]=Math.max(last[1],span[1]);else merged.push([span[0],span[1]])}return merged}function chunk(text,ranges){const chunks=[];let cursor=0;for(const[start,end]of ranges){if(cursor<start)chunks.push({text:text.slice(cursor,start),match:false});chunks.push({text:text.slice(start,end),match:true});cursor=end}if(cursor<text.length)chunks.push({text:text.slice(cursor),match:false});return chunks}function find(text,query,options){const spans=[];for(const term of toArray(query).filter(Boolean))spans.push(...findMatchRanges(text,term,options));return merge(spans)}function toHighlight(text,query,options={}){const _text=toValue(text);const _query=toValue(query);const _matches=toValue(options.matches);const matchAll=toValue(options.matchAll)??false;const ignoreCase=toValue(options.ignoreCase)??false;const ignoreAccents=toValue(options.ignoreAccents)??false;if(_matches?.length)return chunk(_text,merge(_matches));if(_query){const ranges=find(_text,_query,{matchAll,ignoreCase,ignoreAccents});return ranges.length>0?chunk(_text,ranges):[{text:_text,match:false}]}return[{text:_text,match:false}]}function createDefaultBreakpoints(){return{mobileBreakpoint:`lg`,breakpoints:{xs:0,sm:600,md:840,lg:1145,xl:1545,xxl:2138}}}function createBreakpoints(_options={}){const{ssr,...options}=_options;const defaults=createDefaultBreakpoints();const{mobileBreakpoint,breakpoints}=mergeDeep(defaults,options);const sorted=Object.entries(breakpoints).toSorted((a,b)=>a[1]-b[1]);const names=sorted.map(([n])=>n);const mb=isNumber(mobileBreakpoint)?mobileBreakpoint:breakpoints[mobileBreakpoint]??breakpoints.md;const initialWidth=ssr?ssr.clientWidth:IN_BROWSER?window.innerWidth:0;const initialHeight=ssr?ssr.clientHeight??0:IN_BROWSER?window.innerHeight:0;const name=shallowRef(`xs`);const width=shallowRef(initialWidth);const height=shallowRef(initialHeight);const isMobile=shallowRef(false);const xs=shallowRef(false);const sm=shallowRef(false);const md=shallowRef(false);const lg=shallowRef(false);const xl=shallowRef(false);const xxl=shallowRef(false);const smAndUp=shallowRef(false);const mdAndUp=shallowRef(false);const lgAndUp=shallowRef(false);const xlAndUp=shallowRef(false);const smAndDown=shallowRef(false);const mdAndDown=shallowRef(false);const lgAndDown=shallowRef(false);const xlAndDown=shallowRef(false);function resolve(value,media){let current=`xs`;for(let i=sorted.length-1;i>=0;i--){const px=sorted[i][1];if(media?window.matchMedia(`(min-width: ${px}px)`).matches:value>=px){current=sorted[i][0];break}}const index=names.indexOf(current);const mobile=isNumber(mb)?media?!window.matchMedia(`(min-width: ${mb}px)`).matches:value<mb:index<names.indexOf(mobileBreakpoint);return{current,index,mobile}}function apply({current,index,mobile}){name.value=current;isMobile.value=mobile;xs.value=index===0;sm.value=index===1;md.value=index===2;lg.value=index===3;xl.value=index===4;xxl.value=index===5;smAndUp.value=index>=1;mdAndUp.value=index>=2;lgAndUp.value=index>=3;xlAndUp.value=index>=4;smAndDown.value=index<=1;mdAndDown.value=index<=2;lgAndDown.value=index<=3;xlAndDown.value=index<=4}apply(resolve(initialWidth,!ssr&&IN_BROWSER&&SUPPORTS_MATCH_MEDIA));function update(){if(!IN_BROWSER)return;width.value=window.innerWidth;height.value=window.innerHeight;apply(resolve(width.value,SUPPORTS_MATCH_MEDIA))}return{breakpoints,mobileBreakpoint,name:readonly(name),width:readonly(width),height:readonly(height),isMobile:readonly(isMobile),xs:readonly(xs),sm:readonly(sm),md:readonly(md),lg:readonly(lg),xl:readonly(xl),xxl:readonly(xxl),smAndUp:readonly(smAndUp),mdAndUp:readonly(mdAndUp),lgAndUp:readonly(lgAndUp),xlAndUp:readonly(xlAndUp),smAndDown:readonly(smAndDown),mdAndDown:readonly(mdAndDown),lgAndDown:readonly(lgAndDown),xlAndDown:readonly(xlAndDown),ssr:!!ssr,update}}function createBreakpointsFallback(options={}){if(options.ssr)return createBreakpoints(options);const defaults=createDefaultBreakpoints();return{breakpoints:defaults.breakpoints,mobileBreakpoint:defaults.mobileBreakpoint,name:readonly(shallowRef(`xs`)),width:readonly(shallowRef(0)),height:readonly(shallowRef(0)),isMobile:readonly(shallowRef(true)),xs:readonly(shallowRef(true)),sm:readonly(shallowRef(false)),md:readonly(shallowRef(false)),lg:readonly(shallowRef(false)),xl:readonly(shallowRef(false)),xxl:readonly(shallowRef(false)),smAndUp:readonly(shallowRef(false)),mdAndUp:readonly(shallowRef(false)),lgAndUp:readonly(shallowRef(false)),xlAndUp:readonly(shallowRef(false)),smAndDown:readonly(shallowRef(true)),mdAndDown:readonly(shallowRef(true)),lgAndDown:readonly(shallowRef(true)),xlAndDown:readonly(shallowRef(true)),ssr:false,update:()=>{}}}var[createBreakpointsContext,createBreakpointsPlugin,useBreakpoints]=createPluginContext(`v0:breakpoints`,options=>createBreakpoints(options),{fallback:()=>createBreakpointsFallback(),setup:(context,app,_options)=>{if(IN_BROWSER&&!_options?.ssr)context.update();const{mount}=app;app.mount=(...args)=>{const vm=mount(...args);const hydration=useHydration();function listener(){context.update()}const unwatch=watch(hydration.isHydrated,hydrated=>{if(hydrated)listener()},{immediate:true});const cleanup=useWindowEventListener(`resize`,listener,{passive:true});onScopeDispose(()=>{cleanup();unwatch()},true);app.mount=mount;return vm}}});var isMac=IN_BROWSER&&/mac|iphone|ipad|ipod/i.test(navigator?.userAgent??``);var ReducedMotionAdapter=class{dispose};function payload(reduced){return reduced?`reduce`:`no-preference`}var V0ReducedMotionAdapter=class extends ReducedMotionAdapter{setup(app,context){if(IN_BROWSER){function sync(reduced){document.body.dataset.reducedMotion=payload(reduced)}sync(context.isReduced.value);this.dispose=watch(context.isReduced,sync)}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const entry=head.push({bodyAttrs:{"data-reduced-motion":payload(context.isReduced.value)}});const stop=watch(context.isReduced,reduced=>entry.patch?.({bodyAttrs:{"data-reduced-motion":payload(reduced)}}));this.dispose=()=>{stop();entry.dispose?.()}}}}};function createReducedMotion(options={}){const selectedMode=shallowRef(options.mode??`system`);const media=usePrefersReducedMotion();const isReduced=toRef(()=>{if(selectedMode.value===`always`)return true;if(selectedMode.value===`never`)return false;return media.matches.value});function select(value){selectedMode.value=value}return{selectedMode:shallowReadonly(selectedMode),isReduced,select,dispose:media.stop}}function createReducedMotionFallback(){return{selectedMode:shallowReadonly(shallowRef(`system`)),isReduced:shallowReadonly(shallowRef(false)),select:()=>{},dispose:()=>{}}}var[createReducedMotionContext,createReducedMotionPlugin,useReducedMotion]=createPluginContext(`v0:reduced-motion`,options=>createReducedMotion(options),{fallback:()=>createReducedMotionFallback(),persist:context=>context.selectedMode.value,restore:(context,saved)=>{if(saved===`system`||saved===`always`||saved===`never`)context.select(saved)},setup:(context,app,{adapter=new V0ReducedMotionAdapter})=>{app.onUnmount(()=>context.dispose());adapter.setup(app,context);app.onUnmount(()=>adapter.dispose?.())}});var RtlAdapter=class{dispose};var V0RtlAdapter=class extends RtlAdapter{setup(app,context,target){if(IN_BROWSER){if(isNull(target))return;const targetEl=target instanceof HTMLElement?target:isString(target)?document.querySelector(target):document.documentElement;if(!targetEl)return;targetEl.dir=context.isRtl.value?`rtl`:`ltr`;this.dispose=watch(context.isRtl,value=>{targetEl.dir=value?`rtl`:`ltr`})}else{const head=app._context?.provides?.usehead??app._context?.provides?.head;if(head?.push){const entry=head.push({htmlAttrs:{dir:context.isRtl.value?`rtl`:`ltr`}});const stop=watch(context.isRtl,rtl=>entry.patch?.({htmlAttrs:{dir:rtl?`rtl`:`ltr`}}));this.dispose=()=>{stop();entry.dispose?.()}}}}};function createRtl(options={}){const isRtl=shallowRef(options.default??false);function toggle(){isRtl.value=!isRtl.value}return{isRtl,toggle,dispose:()=>{}}}function createRtlFallback(){return{isRtl:shallowRef(false),toggle:()=>{},dispose:()=>{}}}var[createRtlContext,createRtlPlugin,useRtl]=createPluginContext(`v0:rtl`,options=>createRtl(options),{fallback:()=>createRtlFallback(),setup:(context,app,{adapter=new V0RtlAdapter,target})=>{adapter.setup(app,context,target);app.onUnmount(()=>adapter.dispose?.())},persist:ctx=>ctx.isRtl.value,restore:(ctx,saved)=>{if(isBoolean(saved))ctx.isRtl.value=saved}});var makeVHighlightProps=propsFactory({text:{type:String,default:``},query:[String,Array],matches:Array,matchAll:Boolean,ignoreCase:Boolean,ignoreAccents:[Boolean,String],color:String,opacity:[String,Number],markClass:String,...makeTagProps({tag:`span`})},`VHighlight`);var VHighlight=defineComponent({name:`VHighlight`,props:makeVHighlightProps(),setup(props){const chunks=computed(()=>toHighlight(()=>props.text,()=>props.query,{matches:()=>props.matches,matchAll:()=>props.matchAll,ignoreCase:()=>props.ignoreCase,ignoreAccents:()=>props.ignoreAccents??false}));const{textColorClasses,textColorStyles}=useTextColor(()=>props.color);return()=>createVNode(props.tag,{"class":`v-highlight`},{default:()=>[chunks.value.map((chunk,i)=>chunk.match?createBaseVNode(`mark`,{"key":i,"class":normalizeClass([`v-highlight__mark`,textColorClasses.value,props.markClass]),"style":normalizeStyle([textColorStyles.value,{"--v-highlight-opacity":props.opacity}])},[chunk.text]):createBaseVNode(`span`,{"key":i},[chunk.text]))]})}});function useFocusRepair(active,content,fallback){return function repairOrphanedFocus(e){if(!e.relatedTarget&&document.activeElement===document.body&&active.value){requestAnimationFrame(()=>{if(!active.value)return;const el=content();((el&&focusableChildren(el)[0])??fallback())?.focus({preventScroll:true})});return true}return false}}function isNavigable(item){return!!item&&item.type!==`divider`&&item.type!==`subheader`&&!item.props?.disabled}function findNavigableIndex(items,from,step){const count=items.length;for(let offset=0;offset<count;offset++){const index=((from+offset*step)%count+count)%count;if(isNavigable(items[index]))return index}return-1}function useScrolling(listRef,textFieldRef,virtualScrollRef,displayItems,options={}){const isScrolling=shallowRef(false);let scrollTimeout;let focusToken=0;let pendingOpenStep=null;function onListScroll(e){cancelAnimationFrame(scrollTimeout);isScrolling.value=true;scrollTimeout=requestAnimationFrame(()=>{scrollTimeout=requestAnimationFrame(()=>{isScrolling.value=false})})}async function finishScrolling(){await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>requestAnimationFrame(resolve));await new Promise(resolve=>{if(isScrolling.value){const stop=watch(isScrolling,()=>{stop();resolve()})}else resolve()})}function getListEl(){return listRef.value?.$el}function findItemEl(index){return getListEl()?.querySelector(`[aria-posinset="${index+1}"]`)??null}async function focusItem(index,scroll=true,position=`center`){if(index<0)return false;if(!scroll){const mounted=findItemEl(index);mounted?.focus({preventScroll:true});return!!mounted}const token=++focusToken;const listEl=getListEl();if(listEl?.contains(getActiveElement()))listEl.focus({preventScroll:true});virtualScrollRef.value?.scrollToIndex(index,position);let el=findItemEl(index);const deadline=performance.now()+500;while(!el&&performance.now()<deadline){await new Promise(resolve=>requestAnimationFrame(resolve));if(token!==focusToken)return true;el=findItemEl(index)}el?.focus({preventScroll:true});if(el&&listEl)alignItem(listEl,el,position);return!!el}function alignItem(listEl,el,position){const viewTop=listEl.getBoundingClientRect().top+listEl.clientTop;const viewHeight=listEl.clientHeight;const{top,height}=el.getBoundingClientRect();const delta=position===`start`?top-viewTop:position===`end`?top+height-(viewTop+viewHeight):top+height/2-(viewTop+viewHeight/2);if(Math.abs(delta)>1)listEl.scrollTop+=delta}async function focusFirstItem(){if(!await focusItem(findNavigableIndex(toValue(displayItems),0,1)))listRef.value?.focus(`first`)}async function focusLastItem(){const items=toValue(displayItems);if(!await focusItem(findNavigableIndex(items,items.length-1,-1)))listRef.value?.focus(`last`)}async function focusFromActivator(step,landOnSelected=false){if(!toValue(options.noAutoScroll)){const selected=options.selectedIndex?.()??-1;if(selected>=0){const target=landOnSelected?selected:findNavigableIndex(toValue(displayItems),selected+step,step);return await focusItem(target,false)||focusItem(target)}}if(step===1){const header=options.headerEl?.();const firstInHeader=header&&focusableChildren(header)[0];if(firstInHeader)return firstInHeader.focus()}if(findNavigableIndex(toValue(displayItems),0,1)<0){const content=options.menuContentEl?.();const children=content?focusableChildren(content):[];return(step===1?children[0]:children.at(-1))?.focus()}return step===1?focusFirstItem():focusLastItem()}function onActivatorKeydown(e,menu){const step=e.key===`ArrowDown`?1:e.key===`ArrowUp`?-1:null;if(!step)return false;const wasOpen=menu.value;menu.value=true;if(getListEl()?.contains(getActiveElement()))return false;if(!wasOpen){setPendingFocus(step);return false}e.stopImmediatePropagation();focusFromActivator(step);return true}function setPendingFocus(step){pendingOpenStep=step}function flushPendingFocus(){if(!pendingOpenStep)return false;const step=pendingOpenStep;pendingOpenStep=null;focusFromActivator(step,true);return true}function onListKeydownCapture(e){if(e.key!==`ArrowUp`&&e.key!==`ArrowDown`)return;const listEl=getListEl();const active=getActiveElement();if(!listEl||!active||!listEl.contains(active))return;const itemEl=active.closest(`[aria-posinset]`);if(!itemEl||!listEl.contains(itemEl))return;const mounted=listEl.querySelectorAll(`[aria-posinset]`);if(!(itemEl===(e.key===`ArrowUp`?mounted[0]:mounted[mounted.length-1])))return;const position=Number(itemEl.getAttribute(`aria-posinset`));if(!position)return;const step=e.key===`ArrowUp`?-1:1;const index=findNavigableIndex(toValue(displayItems),position-1+step,step);if(index<0||index===position-1)return;e.preventDefault();e.stopImmediatePropagation();focusItem(index,true,step===1?`end`:`start`)}async function onListKeydown(e){if(e.key===`Tab`){textFieldRef.value?.focus();return}if(e.key===`Home`||e.key===`End`){e.preventDefault();e.stopImmediatePropagation();await(e.key===`Home`?focusFirstItem():focusLastItem());return}if(e.key!==`PageDown`&&e.key!==`PageUp`)return;const list=getListEl();if(!list)return;await finishScrolling();const children=list.querySelectorAll(`:scope > :not(.v-virtual-scroll__spacer)`);if(e.key===`PageDown`){const top=list.getBoundingClientRect().top;for(const child of children)if(child.getBoundingClientRect().top>=top){child.focus();break}}else{const bottom=list.getBoundingClientRect().bottom;for(const child of[...children].reverse())if(child.getBoundingClientRect().bottom<=bottom){child.focus();break}}}return{listEvents:{onScrollPassive:onListScroll,onKeydownCapture:onListKeydownCapture,onKeydown:onListKeydown},focusItem,focusFirstItem,focusLastItem,focusFromActivator,onActivatorKeydown,setPendingFocus,flushPendingFocus}}function useOpenOnFocus(menu,isFocused,enabled){let returningFocus=false;watch(menu,val=>{if(val)return;returningFocus=true;nextTick(()=>returningFocus=false)});watch(isFocused,val=>{if(!val||returningFocus)returningFocus=false;else if(toValue(enabled))menu.value=true})}function useSelectionMenu(props,options){const _menu=useProxiedModel(props,`menu`);const menu=computed({get:()=>_menu.value,set:v=>{if(_menu.value&&!v&&options.vMenuRef.value?.ΨopenChildren.size)return;if(!v&&props.menuProps?.persistent)return;if(v&&toValue(options.menuDisabled))return;_menu.value=v}});useOpenOnFocus(menu,options.isFocused,()=>props.openOnFocus);function closeOnSelect(){if(props.multiple||props.menuProps?.closeOnContentClick===false)return;menu.value=false}return{menu,closeOnSelect}}function useFocusGroups({groups,onLeave}){function getContentRef(group){return group.type===`list`?group.contentRef.value?.$el:group.contentRef.value}function getChildren(group){const contentRef=getContentRef(group);return contentRef?focusableChildren(contentRef):[]}function onTabKeydown(e){const target=e.target;const direction=e.shiftKey?`backward`:`forward`;const children=groups.map(getChildren);const currentGroupIndex=groups.map(g=>g.type===`list`?g.contentRef.value?.$el:g.contentRef.value).findIndex(el=>el?.contains(target));const nextIndex=nextFocusGroup(children,currentGroupIndex,direction,target);if(isNull(nextIndex)){const originGroup=groups[currentGroupIndex];const origin=children[currentGroupIndex];if(originGroup.type===`list`||(direction===`forward`?origin.at(-1)===e.target:origin.at(0)===e.target)){onLeave();const refocused=getActiveElement();if(refocused){const relayed=new KeyboardEvent(`keydown`,{key:`Tab`,shiftKey:e.shiftKey,bubbles:true,cancelable:true});refocused.dispatchEvent(relayed);if(relayed.defaultPrevented)e.preventDefault()}}}else{e.preventDefault();e.stopImmediatePropagation();const nextGroup=groups[nextIndex];if(nextGroup.type===`list`&&toValue(nextGroup.displayItemsCount)>0)nextGroup.contentRef.value?.focus(0);else{const fromBefore=direction===`forward`;children[nextIndex].at(fromBefore?0:-1).focus()}}}function nextFocusGroup(children,currentIndex,direction,target){const originGroup=groups[currentIndex];const origin=children[currentIndex];if(originGroup.type!==`list`){if(!(direction===`forward`?origin.at(-1)===target:origin.at(0)===target))return null}const step=direction===`forward`?1:-1;for(let i=currentIndex+step;i>=0&&i<groups.length;i+=step){const group=groups[i];if(children[i].length>0||group.type===`list`&&toValue(group.displayItemsCount)>0)return i}return null}return{onTabKeydown}}function createDefaultFilter(ignoreAccents){return(value,query)=>{if(isNullOrUndefined(value)||isNullOrUndefined(query))return-1;if(!query.length)return 0;const ranges=findMatchRanges(value.toString(),query.toString(),{ignoreCase:true,ignoreAccents,matchAll:true});return ranges.length?ranges:-1}}var defaultFilter=createDefaultFilter();function normaliseMatch(match,query){if(isNullOrUndefined(match)||isBoolean(match)||match===-1)return;if(isNumber(match))return[[match,match+query.length]];if(Array.isArray(match[0]))return match;return[match]}var makeFilterProps=propsFactory({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:`intersection`},ignoreAccents:[Boolean,String],noFilter:Boolean},`filter`);function filterItems(items,query,options){const array=[];const filter=options?.default??createDefaultFilter(options?.ignoreAccents);const keys=options?.filterKeys?wrapInArray(options.filterKeys):false;const customFiltersLength=Object.keys(options?.customKeyFilter??{}).length;if(!items?.length)return array;let lookAheadItems=[];loop:for(let i=0;i<items.length;i++){const[item,transformed=item]=wrapInArray(items[i]);const customMatches={};const defaultMatches={};let match=-1;if((query||customFiltersLength>0)&&!options?.noFilter){let hasOnlyCustomFilters=false;if(isObject(item)){if(item.type===`divider`||item.type===`subheader`){if(lookAheadItems.at(-1)?.type!==`divider`||item.type!==`subheader`)lookAheadItems=[];lookAheadItems.push({index:i,matches:{},type:item.type});continue}const filterKeys=keys||Object.keys(transformed);hasOnlyCustomFilters=filterKeys.length===customFiltersLength;for(const key of filterKeys){const value=getPropertyFromItem(transformed,key);const keyFilter=options?.customKeyFilter?.[key];match=keyFilter?keyFilter(value,query,item):filter(value,query,item);if(match!==-1&&match!==false){if(keyFilter)customMatches[key]=normaliseMatch(match,query);else defaultMatches[key]=normaliseMatch(match,query)}else if(options?.filterMode===`every`)continue loop}}else{match=filter(item,query,item);if(match!==-1&&match!==false)defaultMatches.title=normaliseMatch(match,query)}const defaultMatchesLength=Object.keys(defaultMatches).length;const customMatchesLength=Object.keys(customMatches).length;if(!defaultMatchesLength&&!customMatchesLength)continue;if(options?.filterMode===`union`&&customMatchesLength!==customFiltersLength&&!defaultMatchesLength)continue;if(options?.filterMode===`intersection`&&(customMatchesLength!==customFiltersLength||!defaultMatchesLength&&customFiltersLength>0&&!hasOnlyCustomFilters))continue}if(lookAheadItems.length){array.push(...lookAheadItems);lookAheadItems=[]}array.push({index:i,matches:{...defaultMatches,...customMatches}})}return array}function useFilter(props,items,query,options){const filteredItems=shallowRef([]);const filteredMatches=shallowRef(new Map);const transformedItems=computed(()=>options?.transform?unref(items).map(item=>[item,options.transform(item)]):unref(items));watchEffect(()=>{const _query=isFunction(query)?query():unref(query);const strQuery=!isString(_query)&&!isNumber(_query)?``:String(_query);const results=filterItems(transformedItems.value,strQuery,{customKeyFilter:{...props.customKeyFilter,...unref(options?.customKeyFilter)},default:props.customFilter,filterKeys:props.filterKeys,filterMode:props.filterMode,ignoreAccents:props.ignoreAccents,noFilter:props.noFilter});const originalItems=unref(items);const _filteredItems=[];const _filteredMatches=new Map;results.forEach(({index,matches})=>{const item=originalItems[index];_filteredItems.push(item);if(!isUndefined(item.value))_filteredMatches.set(item.value,matches)});filteredItems.value=_filteredItems;filteredMatches.value=_filteredMatches});function getMatches(item){return filteredMatches.value.get(item.value)}return{filteredItems,filteredMatches,getMatches}}var makeMenuActivatorProps=propsFactory({closeText:{type:String,default:`$vuetify.close`},openText:{type:String,default:`$vuetify.open`}},`autocomplete`);function useMenuActivator(props,isOpen){const uid=useId();const menuId=computed(()=>`menu-${uid}`);return{menuId,ariaExpanded:toRef(()=>toValue(isOpen)),ariaControls:toRef(()=>menuId.value)}}var makeSelectProps=propsFactory({chips:Boolean,closableChips:Boolean,eager:Boolean,form:String,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:IconValue,default:`$dropdown`},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:`$vuetify.noDataText`},openOnClear:Boolean,openOnFocus:Boolean,itemColor:String,noAutoScroll:Boolean,...makeMenuActivatorProps(),...makeItemsProps({itemChildren:false})},`Select`);var makeVSelectProps=propsFactory({search:String,...makeFilterProps({filterKeys:[`title`]}),...makeSelectProps(),...omit(makeVTextFieldProps({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`]),...makeTransitionProps({transition:{component:VDialogTransition}})},`VSelect`);var VSelect=genericComponent()({name:`VSelect`,props:makeVSelectProps(),emits:{"update:focused":focused=>true,"update:modelValue":value=>true,"update:menu":ue=>true,"update:search":value=>true,"item:added":item=>true,"item:removed":item=>true},setup(props,{emit,slots}){const{t}=useLocale();const vTextFieldRef=ref();const vMenuRef=ref();const listRef=ref();const headerRef=ref();const footerRef=ref();const vVirtualScrollRef=ref();const{items,transformIn,transformOut}=useItems(props);const search=useProxiedModel(props,`search`,``);const{filteredItems,getMatches}=useFilter(props,items,()=>search.value);const model=useProxiedModel(props,`modelValue`,[],v=>transformIn(v===null?[null]:wrapInArray(v)),v=>{const transformed=transformOut(v);return props.multiple?transformed:transformed[0]??null});const counterValue=computed(()=>{return isFunction(props.counterValue)?props.counterValue(model.value):isNumber(props.counterValue)?props.counterValue:model.value.length});const form=useForm(props);const selectedValues=computed(()=>model.value.map(selection=>selection.value));const isFocused=shallowRef(false);const closableChips=toRef(()=>props.closableChips&&!form.isReadonly.value&&!form.isDisabled.value);const chipDefaults=injectNestedDefaults(`VChip`);const{InputIcon}=useInputIcon(props);let keyboardLookupPrefix=``;let keyboardLookupIndex=0;let keyboardLookupLastTime;let openedByKeyboard=false;const displayItems=computed(()=>{const baseItems=search.value?filteredItems.value:items.value;if(props.hideSelected)return baseItems.filter(item=>!model.value.some(s=>(props.valueComparator||deepEqual)(s,item)));return baseItems});const menuDisabled=computed(()=>props.hideNoData&&!displayItems.value.length||form.isReadonly.value||form.isDisabled.value);const{menu,closeOnSelect}=useSelectionMenu(props,{vMenuRef,menuDisabled,isFocused});const{menuId,ariaExpanded,ariaControls}=useMenuActivator(props,menu);const computedMenuProps=computed(()=>{return{...props.menuProps,activatorProps:{...props.menuProps?.activatorProps||{},"aria-haspopup":`listbox`}}});const{listEvents,focusItem,focusFirstItem,focusLastItem,onActivatorKeydown,setPendingFocus,flushPendingFocus}=useScrolling(listRef,vTextFieldRef,vVirtualScrollRef,displayItems,{selectedIndex:getSelectedIndex,menuContentEl:()=>vMenuRef.value?.contentEl,noAutoScroll:()=>props.noAutoScroll});const repairOrphanedFocus=useFocusRepair(menu,()=>vMenuRef.value?.contentEl,()=>vTextFieldRef.value?.controlRef);const{onTabKeydown}=useFocusGroups({groups:[{type:`element`,contentRef:headerRef},{type:`list`,contentRef:listRef,displayItemsCount:()=>displayItems.value.length},{type:`element`,contentRef:footerRef}],onLeave:()=>{menu.value=false;vTextFieldRef.value?.focus()}});function onClear(e){if(props.openOnClear)menu.value=true}function onMousedownControl(){if(menuDisabled.value)return;openedByKeyboard=false;setPendingFocus(null);menu.value=!menu.value}function onMenuKeydown(e){if(e.key===`Tab`)onTabKeydown(e);if(listRef.value?.$el.contains(e.target)&&checkPrintable(e))onKeydown(e)}function onKeydown(e){if(!e.key||form.isReadonly.value)return;switch(e.key){case`Escape`:case`Tab`:menu.value=false;break;case`Enter`:case` `:e.preventDefault();openedByKeyboard=true;menu.value=true;break;case`ArrowDown`:case`ArrowUp`:e.preventDefault();openedByKeyboard=true;if(onActivatorKeydown(e,menu))return;break;case`Home`:e.preventDefault();if(menu.value)focusFirstItem();break;case`End`:e.preventDefault();if(menu.value)focusLastItem();break;case`Backspace`:if(!props.clearable)break;e.preventDefault();for(const item of model.value)emit(`item:removed`,item);model.value=[];onClear(e);return}const KEYBOARD_LOOKUP_THRESHOLD=1e3;if(!checkPrintable(e))return;const now=performance.now();if(now-keyboardLookupLastTime>KEYBOARD_LOOKUP_THRESHOLD){keyboardLookupPrefix=``;keyboardLookupIndex=0}keyboardLookupPrefix+=e.key.toLowerCase();keyboardLookupLastTime=now;const items=displayItems.value;function findItem(){let result=findItemBase();if(result)return result;if(keyboardLookupPrefix.at(-1)===keyboardLookupPrefix.at(-2)){keyboardLookupPrefix=keyboardLookupPrefix.slice(0,-1);keyboardLookupIndex++;result=findItemBase();if(result)return result}keyboardLookupIndex=0;result=findItemBase();if(result)return result;keyboardLookupPrefix=e.key.toLowerCase();return findItemBase()}function findItemBase(){for(let i=keyboardLookupIndex;i<items.length;i++){const _item=items[i];if(_item.title.toLowerCase().startsWith(keyboardLookupPrefix))return[_item,i]}}const result=findItem();if(!result)return;const[item,index]=result;keyboardLookupIndex=index;if(menu.value){if(!props.multiple)select(item,true,false);focusItem(index)}else if(!props.multiple)select(item,true)}function select(item,set=true,closeMenu=true){if(item.props.disabled)return;const comparator=props.valueComparator||deepEqual;if(props.multiple){const index=model.value.findIndex(selection=>comparator(selection.value,item.value));const add=set==null?!~index:set;if(~index){const value=add?[...model.value,item]:[...model.value];const[removed]=value.splice(index,1);if(!add)emit(`item:removed`,removed);model.value=value}else if(add){emit(`item:added`,item);model.value=[...model.value,item]}}else{const add=set!==false;const old=model.value[0];if(add){if(old&&!comparator(old.value,item.value)){emit(`item:removed`,old);emit(`item:added`,item)}else if(!old)emit(`item:added`,item);model.value=[item]}else{if(old)emit(`item:removed`,old);model.value=[]}if(closeMenu)nextTick(()=>closeOnSelect())}}let mousedownInsideContentAt=0;function onMousedownContent(){mousedownInsideContentAt=performance.now()}function onBlur(e){const target=e.target;if(!vTextFieldRef.value?.$el.contains(target))menu.value=false;const next=e.relatedTarget;if(vMenuRef.value?.contentEl?.contains(next)||!next&&performance.now()-mousedownInsideContentAt<10)isFocused.value=true}function getSelectedIndex(){return displayItems.value.findIndex(item=>model.value.some(s=>(props.valueComparator||deepEqual)(s.value,item.value)))}async function onAfterEnter(){if(props.eager)vVirtualScrollRef.value?.calculateVisibleItems();if(!listRef.value||!isFocused.value)return;if(flushPendingFocus())return;if(listRef.value.$el?.contains(getActiveElement()))return;const selected=getSelectedIndex();if(selected>=0&&await focusItem(selected,!props.noAutoScroll))return;if(openedByKeyboard)focusFirstItem()}function onAfterLeave(){search.value=``;if(isFocused.value){if(vMenuRef.value?.contentEl?._clickOutside?.lastMousedownWasOutside)isFocused.value=false;else vTextFieldRef.value?.focus()}}function onFocusin(e){isFocused.value=true}function onFocusout(e){if(!vTextFieldRef.value?.$el.contains(e.relatedTarget)&&!e.currentTarget.contains(e.relatedTarget)){if(repairOrphanedFocus(e))return;isFocused.value=false}}function onModelUpdate(v){if(v==null){for(const item of model.value)emit(`item:removed`,item);model.value=[]}else if(matchesSelector(vTextFieldRef.value,`:autofill`)||matchesSelector(vTextFieldRef.value,`:-webkit-autofill`)){const item=items.value.find(item=>item.title===v);if(item)select(item)}else if(vTextFieldRef.value)vTextFieldRef.value.value=``}watch(menu,val=>{if(!val){openedByKeyboard=false;setPendingFocus(null)}if(!props.hideSelected&&menu.value&&model.value.length){const index=getSelectedIndex();IN_BROWSER$1&&!props.noAutoScroll&&window.requestAnimationFrame(()=>{index>=0&&vVirtualScrollRef.value?.scrollToIndex(index,`center`)})}});watch(items,(newVal,oldVal)=>{if(menu.value)return;if(isFocused.value&&props.hideNoData&&!oldVal.length&&newVal.length)menu.value=true});useRender(()=>{const hasChips=!!(props.chips||slots.chip);const hasList=!!(!props.hideNoData||displayItems.value.length||slots[`prepend-item`]||slots[`append-item`]||slots[`no-data`]);const isDirty=model.value.length>0;const textFieldProps=VTextField.filterProps(props);const placeholder=isDirty||!isFocused.value&&props.label&&!props.persistentPlaceholder?void 0:props.placeholder;const menuSlotProps={search,filteredItems:filteredItems.value};return createVNode(VTextField,mergeProps({"ref":vTextFieldRef},textFieldProps,{"modelValue":model.value.map(v=>v.props.title).join(`, `),"name":void 0,"onUpdate:modelValue":onModelUpdate,"focused":isFocused.value,"onUpdate:focused":$event=>isFocused.value=$event,"validationValue":model.externalValue,"counterValue":counterValue.value,"dirty":isDirty,"class":[`v-select`,{"v-select--active-menu":menu.value,"v-select--chips":!!props.chips,[`v-select--${props.multiple?`multiple`:`single`}`]:true,"v-select--selected":model.value.length,"v-select--selection-slot":!!slots.selection},props.class],"style":props.style,"inputmode":`none`,"placeholder":placeholder,"onClick:clear":onClear,"onMousedown:control":onMousedownControl,"onBlur":onBlur,"onKeydown":onKeydown,"aria-expanded":ariaExpanded.value,"aria-controls":ariaControls.value}),{...slots,default:({id})=>createBaseVNode(Fragment,null,[selectedValues.value.map((value,i)=>createBaseVNode(`input`,{"key":i,"type":`hidden`,"name":props.name,"value":value,"form":props.form},null)),createVNode(VMenu,mergeProps({"id":menuId.value,"ref":vMenuRef,"modelValue":menu.value,"onUpdate:modelValue":$event=>menu.value=$event,"activator":`parent`,"captureFocus":false,"openOnArrow":false,"disabled":menuDisabled.value,"_disableKeys":true,"eager":props.eager,"maxHeight":310,"openOnClick":false,"closeOnContentClick":false,"transition":props.transition,"onAfterEnter":onAfterEnter,"onAfterLeave":onAfterLeave},computedMenuProps.value,{"contentClass":[`v-select__content`,computedMenuProps.value.contentClass]}),{default:()=>[createVNode(VSheet,{"elevation":props.menuElevation,"onFocusin":onFocusin,"onFocusout":onFocusout,"onKeydown":onMenuKeydown,"onMousedown":onMousedownContent},{default:()=>[slots[`menu-header`]&&createBaseVNode(`header`,{"ref":headerRef},[slots[`menu-header`](menuSlotProps)]),hasList&&createVNode(VList,mergeProps({"key":`select-list`,"ref":listRef,"class":`v-list--navigable`,"selected":selectedValues.value,"selectStrategy":props.multiple?`independent`:`single-independent`,"tabindex":`-1`,"selectable":!!displayItems.value.length,"aria-live":`polite`,"aria-labelledby":`${id.value}-label`,"aria-multiselectable":props.multiple,"color":props.itemColor??props.color},listEvents,props.listProps),{default:()=>[slots[`prepend-item`]?.(),!displayItems.value.length&&!props.hideNoData&&(slots[`no-data`]?.()??createVNode(VListItem,{"key":`no-data`,"title":t(props.noDataText)},null)),createVNode(VVirtualScroll,{"ref":vVirtualScrollRef,"renderless":true,"items":displayItems.value,"itemKey":`value`},{default:({item,index,itemRef})=>{const camelizedProps=camelizeProps(item.props);const itemProps=mergeProps(item.props,{ref:itemRef,key:item.value,onClick:()=>select(item,null),"aria-posinset":index+1,"aria-setsize":displayItems.value.length});if(item.type===`divider`)return slots.divider?.({props:item.raw,index})??createVNode(VDivider,mergeProps(item.props,{"ref":itemRef,"key":`divider-${index}`}),null);if(item.type===`subheader`)return slots.subheader?.({props:item.raw,index})??createVNode(VListSubheader,mergeProps(item.props,{"ref":itemRef,"key":`subheader-${index}`}),null);return slots.item?.({item:item.raw,internalItem:item,index,props:itemProps})??createVNode(VListItem,mergeProps(itemProps,{"role":`option`}),{prepend:({isSelected})=>createBaseVNode(Fragment,null,[props.multiple&&!props.hideSelected?createVNode(VCheckboxBtn,{"key":item.value,"modelValue":isSelected,"ripple":false,"tabindex":`-1`,"aria-hidden":true,"onClick":event=>event.preventDefault()},null):void 0,camelizedProps.prependAvatar&&createVNode(VAvatar,{"image":camelizedProps.prependAvatar},null),camelizedProps.prependIcon&&createVNode(VIcon,{"icon":camelizedProps.prependIcon},null)]),title:()=>{return search.value?createVNode(VHighlight,{"text":item.title,"matches":getMatches(item)?.title,"markClass":`v-select__mask`,"matchAll":true,"ignoreCase":true},null):item.title}})}}),slots[`append-item`]?.()]}),slots[`menu-footer`]&&createBaseVNode(`footer`,{"ref":footerRef},[slots[`menu-footer`](menuSlotProps)])]})]}),model.value.map((item,index)=>{function onChipClose(e){e.stopPropagation();e.preventDefault();select(item,false)}const slotProps=mergeProps(VChip.filterProps(item.props),{"onClick:close":onChipClose,onKeydown(e){if(e.key!==`Enter`&&e.key!==` `)return;e.preventDefault();e.stopPropagation();onChipClose(e)},onMousedown(e){e.preventDefault();e.stopPropagation()},modelValue:true,"onUpdate:modelValue":void 0});const hasSlot=hasChips?!!slots.chip:!!slots.selection;const slotContent=hasSlot?ensureValidVNode(hasChips?slots.chip({item:item.raw,internalItem:item,index,props:slotProps}):slots.selection({item:item.raw,internalItem:item,index})):void 0;if(hasSlot&&!slotContent)return void 0;return createBaseVNode(`div`,{"key":item.value,"class":`v-select__selection`},[hasChips?!slots.chip?createVNode(VChip,mergeProps({"key":`chip`,"closable":closableChips.value,"size":chipDefaults.value?.size??`small`,"text":item.title,"disabled":item.props.disabled},slotProps),null):createVNode(VDefaultsProvider,{"key":`chip-defaults`,"defaults":{VChip:{closable:closableChips.value,size:chipDefaults.value?.size??`small`,text:item.title}}},{default:()=>[slotContent]}):slotContent??createBaseVNode(`span`,{"class":`v-select__selection-text`},[item.title,props.multiple&&index<model.value.length-1&&createBaseVNode(`span`,{"class":`v-select__selection-comma`},[createTextVNode(`,`)])])])})]),"append-inner":(...args)=>createBaseVNode(Fragment,null,[slots[`append-inner`]?.(...args),props.menuIcon?createVNode(VIcon,{"class":`v-select__menu-icon`,"color":vTextFieldRef.value?.fieldIconColor,"icon":props.menuIcon,"aria-hidden":true},null):void 0,props.appendInnerIcon&&createVNode(InputIcon,{"key":`append-icon`,"name":`appendInner`,"color":args[0].iconColor.value},null)])})});return forwardRefs({isFocused,menu,search,filteredItems,select},vTextFieldRef)}});export{useFilter as a,useScrolling as c,VVirtualScroll as d,makeFilterProps as i,useFocusRepair as l,makeSelectProps as n,useFocusGroups as o,useMenuActivator as r,useSelectionMenu as s,VSelect as t,VHighlight as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as createVNode,Zn as normalizeClass,er as normalizeStyle}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{$ as makeThemeProps,A as useElevation,D as makeLocationProps,H as useDimension,I as makeRoundedProps,L as useRounded,M as useBorder,Mt as makeComponentProps,Nt as propsFactory,O as useLocation,R as useBackgroundColor,V as makeDimensionProps,Y as makeTagProps,_t as useRender,et as provideTheme,j as makeBorderProps,k as makeElevationProps,o as makePositionProps,s as usePosition,wt as genericComponent}from"./ripple-EFNA8EBu.js";var makeVSheetProps=propsFactory({color:String,...makeBorderProps(),...makeComponentProps(),...makeDimensionProps(),...makeElevationProps(),...makeLocationProps(),...makePositionProps(),...makeRoundedProps(),...makeTagProps(),...makeThemeProps()},`VSheet`);var VSheet=genericComponent()({name:`VSheet`,props:makeVSheetProps(),setup(props,{slots}){const{themeClasses}=provideTheme(props);const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.color);const{borderClasses}=useBorder(props);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{locationStyles}=useLocation(props);const{positionClasses}=usePosition(props);const{roundedClasses,roundedStyles}=useRounded(props);useRender(()=>createVNode(props.tag,{"class":normalizeClass([`v-sheet`,themeClasses.value,backgroundColorClasses.value,borderClasses.value,elevationClasses.value,positionClasses.value,roundedClasses.value,props.class]),"style":normalizeStyle([backgroundColorStyles.value,dimensionStyles.value,locationStyles.value,roundedStyles.value,props.style])},slots));return{}}});export{makeVSheetProps as n,VSheet as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Zn as normalizeClass,_ as createBaseVNode,et as mergeProps,g as computed,o as Fragment}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{$ as makeThemeProps,$n as consoleWarn,A as useElevation,Dn as wrapInArray,H as useDimension,Nt as propsFactory,R as useBackgroundColor,V as makeDimensionProps,_t as useRender,et as provideTheme,k as makeElevationProps,lt as useLocale,wt as genericComponent}from"./ripple-EFNA8EBu.js";var rootTypes={actions:`button@2`,article:`heading, paragraph`,avatar:`avatar`,button:`button`,card:`image, heading`,"card-avatar":`image, list-item-avatar`,chip:`chip`,"chip-group":`chip@8`,"date-picker":`list-item, heading, divider, date-picker-options, date-picker-days, actions`,"date-picker-options":`text, avatar@2`,"date-picker-days":`avatar@28`,divider:`divider`,heading:`heading`,image:`image`,"list-item":`text`,"list-item-avatar":`avatar, text`,"list-item-two-line":`sentences`,"list-item-avatar-two-line":`avatar, sentences`,"list-item-three-line":`paragraph`,"list-item-avatar-three-line":`avatar, paragraph`,ossein:`ossein`,paragraph:`text@3`,sentences:`text@2`,subtitle:`text`,table:`table-heading, table-thead, table-tbody, table-tfoot`,"table-heading":`heading, text`,"table-thead":`heading@6`,"table-tbody":`table-row-divider@6`,"table-row-divider":`table-row, divider`,"table-row":`table-cell@6`,"table-cell":`text`,"table-tfoot":`text@2, avatar@2`,text:`text`};function genBone(type,children=[]){return createBaseVNode(`div`,{"class":normalizeClass([`v-skeleton-loader__bone`,`v-skeleton-loader__${type}`])},[children])}function genBones(bone,types){const[type,length]=bone.split(`@`);return Array.from({length}).map(()=>genStructure(type,types))}function genStructure(type,types){if(!type)return[];if(type.includes(`,`))return mapBones(type,types);if(type.includes(`@`))return genBones(type,types);if(!(type in types)){consoleWarn(`Unknown skeleton type "${type}", register it with the types prop`);return[genBone(type)]}const bone=types[type];let children=[];if(type===bone){}else if(bone.includes(`,`))children=mapBones(bone,types);else if(bone.includes(`@`))children=genBones(bone,types);else children.push(genStructure(bone,types));return[genBone(type,children)]}function mapBones(bones,types){return bones.replace(/\s/g,``).split(`,`).map(bone=>genStructure(bone,types))}var makeVSkeletonLoaderProps=propsFactory({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:`$vuetify.loading`},type:{type:[String,Array],default:`ossein`},types:Object,...makeDimensionProps(),...makeElevationProps(),...makeThemeProps()},`VSkeletonLoader`);var VSkeletonLoader=genericComponent()({name:`VSkeletonLoader`,inheritAttrs:false,props:makeVSkeletonLoaderProps(),setup(props,{attrs,slots}){const{backgroundColorClasses,backgroundColorStyles}=useBackgroundColor(()=>props.color);const{dimensionStyles}=useDimension(props);const{elevationClasses}=useElevation(props);const{themeClasses}=provideTheme(props);const{t}=useLocale();const items=computed(()=>genStructure(wrapInArray(props.type).join(`,`),{...rootTypes,...props.types}));useRender(()=>{const isLoading=!slots.default||props.loading;const loadingProps=props.boilerplate||!isLoading?{}:{ariaLive:`polite`,ariaLabel:t(props.loadingText),role:`alert`};return isLoading?createBaseVNode(`div`,mergeProps({"class":[`v-skeleton-loader`,{"v-skeleton-loader--boilerplate":props.boilerplate},themeClasses.value,backgroundColorClasses.value,elevationClasses.value],"style":[backgroundColorStyles.value,dimensionStyles.value]},loadingProps,attrs),[items.value]):createBaseVNode(Fragment,null,[slots.default?.()])});return{}}});export{VSkeletonLoader as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as createSimpleFunctional}from"./createSimpleFunctional-zlXZooQW.js";var VSpacer=createSimpleFunctional(`v-spacer`,`div`,`VSpacer`);export{VSpacer as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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{C as makeSizeProps,Gn as isString,Nt as propsFactory,R as useBackgroundColor,U as VDefaultsProvider,_t as useRender,bn as omit,c as LoaderSlot,dt as useProxiedModel,h as VIcon,in as filterInputAttrs,jn as SUPPORTS_MATCH_MEDIA,q as VScaleTransition,u as useLoader,wt as genericComponent}from"./ripple-EFNA8EBu.js";import{l as forwardRefs}from"./VOverlay-Cp4rFk6g.js";import{l as VInput,m as useFocus,u as makeVInputProps}from"./VTextField-C0b_0cSa.js";import{r as VProgressCircular}from"./VBtn-BhVEwXLX.js";import{i as makeVSelectionControlProps,r as VSelectionControl}from"./VCheckboxBtn-DYcQU2Pn.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{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,rt as onBeforeMount,tt as nextTick,vn as ref,wn as toRef,xn as shallowRef}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{$ as makeThemeProps,$n as consoleWarn,At as getCurrentInstance,B as useTextColor,Bn as isFunction,Dn as wrapInArray,E as useDensity,F as makeTransitionProps,G as VExpandXTransition,Gn as isString,Gt as EventProp,H as useDimension,I as makeRoundedProps,J as VSlideYTransition,Kt as callEvent,L as useRounded,Mt as makeComponentProps,N as Intersect,Nt as propsFactory,P as MaybeTransition,Pt as Box,R as useBackgroundColor,Sn as pick,T as makeDensityProps,U as VDefaultsProvider,Un as isNumber,V as makeDimensionProps,Zt as convertToUnit,_t as useRender,ar as vShow,bn as omit,c as LoaderSlot,cn as getActiveElement,dt as useProxiedModel,et as provideTheme,ft as useToggleScope,h as VIcon,in as filterInputAttrs,jt as getCurrentInstanceName,kn as PREFERS_REDUCED_MOTION,l as makeLoaderProps,lt as useLocale,mt as IconValue,qn as isUndefined,u as useLoader,ut as useRtl,wt as genericComponent,xt as standardEasing}from"./ripple-EFNA8EBu.js";import{d as animate,f as nullifyTransforms,l as forwardRefs}from"./VOverlay-Cp4rFk6g.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{}}});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{useAutocomplete as a,VCounter as c,createForm as d,makeFormProps as f,VLabel 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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer vuetify-components{.v-label{color:inherit;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:1rem;display:inline-flex;overflow:hidden}.v-label--clickable{cursor:pointer}.v-input{flex:auto;font-size:1rem;font-weight:400;line-height:1.5;display:grid}.v-input--disabled{pointer-events:none}.v-input--indent-details .v-input__details{padding-inline:16px}.v-input--density-default{--v-input-control-height:56px;--v-input-padding-top:16px}.v-input--density-comfortable{--v-input-control-height:48px;--v-input-padding-top:12px}.v-input--density-compact{--v-input-control-height:40px;--v-input-padding-top:8px}.v-input--vertical{grid-template:"append"max-content"control""prepend"max-content/min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template:"prepend control append"1fr"a messages b"/max-content minmax(0,1fr) max-content}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{letter-spacing:.0333333em;interpolate-size:allow-keywords;grid-area:messages;justify-content:space-between;align-items:flex-end;min-height:22px;padding-top:6px;font-size:.75rem;font-weight:400;line-height:normal;transition:height .15s cubic-bezier(.4,0,.2,1),min-height .15s cubic-bezier(.4,0,.2,1),padding-top .15s cubic-bezier(.4,0,.2,1),opacity .15s cubic-bezier(.4,0,.2,1),visibility .15s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}@media (prefers-reduced-motion:reduce){.v-input__details{transition-duration:0s}}.v-input__details--hidden{visibility:hidden;opacity:0;height:0;min-height:0;padding-top:0}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages,.v-input--glow.v-input--focused .v-input__details>.v-icon,.v-input--glow.v-input--focused .v-input__prepend>.v-icon,.v-input--glow.v-input--focused .v-input__append>.v-icon{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{padding-top:var(--v-input-padding-top);align-items:flex-start;display:flex}.v-input--center-affix .v-input__prepend,.v-input--center-affix .v-input__append{align-items:center;padding-top:0}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{grid-area:control;display:flex}.v-input--hide-spin-buttons input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.v-input--hide-spin-buttons input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-input--hide-spin-buttons input[type=number]{-moz-appearance:textfield}.v-input--plain-underlined .v-input__prepend,.v-input--plain-underlined .v-input__append{align-items:flex-start}.v-input--density-default.v-input--plain-underlined .v-input__prepend,.v-input--density-default.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 4px)}.v-input--density-comfortable.v-input--plain-underlined .v-input__prepend,.v-input--density-comfortable.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 2px)}.v-input--density-compact.v-input--plain-underlined .v-input__prepend,.v-input--density-compact.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 0px)}.v-messages{min-width:1px;min-height:14px;opacity:var(--v-medium-emphasis-opacity);flex:auto;font-size:12px;position:relative}.v-messages__message{word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;line-height:12px;transition-duration:.15s}.v-text-field input{color:inherit;flex:1;min-width:0;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field:not(.v-field--reverse) .v-field__input{--v-field-padding-start:6px}.v-text-field--suffixed.v-text-field .v-field:not(.v-field--reverse) .v-field__input{--v-field-padding-end:0}.v-text-field--prefixed.v-text-field .v-field.v-field--reverse .v-field__input{--v-field-padding-end:6px}.v-text-field--suffixed.v-text-field .v-field.v-field--reverse .v-field__input{--v-field-padding-start:0}.v-text-field .v-field:not(.v-field--no-label,.v-field--active) input::placeholder{opacity:0}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{color:color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-medium-emphasis-opacity) * 100%), transparent);cursor:default;opacity:0;white-space:nowrap;min-height:max(var(--v-input-control-height,56px), 1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));padding-top:calc(var(--v-field-padding-top,4px) + var(--v-input-padding-top,0));padding-bottom:var(--v-field-padding-bottom,6px);align-items:center;transition:inherit;display:flex}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-disabled-opacity) * 100%), transparent)}.v-field:not(.v-field--reverse) .v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-field.v-field--reverse .v-text-field__prefix,.v-field:not(.v-field--reverse) .v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-field.v-field--reverse .v-text-field__suffix{padding-inline-start:var(--v-field-padding-start)}.v-counter{opacity:var(--v-medium-emphasis-opacity);white-space:nowrap;flex:0 auto;font-size:12px;transition-duration:.15s}.v-field{letter-spacing:.009375em;--v-theme-overlay-multiplier:1;--v-field-padding-start:16px;--v-field-padding-end:16px;--v-field-padding-top:8px;--v-field-padding-bottom:4px;--v-field-input-padding-top:calc(var(--v-field-padding-top,8px) + var(--v-input-padding-top,0px));--v-field-input-padding-bottom:var(--v-field-padding-bottom,4px);border-radius:4px;flex:1 0;grid-area:control;grid-template-columns:min-content minmax(0,1fr) min-content min-content;grid-template-areas:"prepend-inner field clear append-inner";max-width:100%;font-size:16px;display:grid;position:relative}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field .v-chip{--v-chip-height:24px}.v-field--prepended{padding-inline-start:12px}.v-field--appended{padding-inline-end:12px}.v-field--variant-solo,.v-field--variant-solo-filled,.v-field--variant-solo-inverted{background:rgb(var(--v-theme-surface));color:color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 1px 3px 1px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 2%, transparent);border-color:#0000}.v-field--variant-solo-inverted.v-field--focused{color:rgb(var(--v-theme-on-surface-variant))}.v-field--variant-filled{border-bottom-right-radius:0;border-bottom-left-radius:0}.v-input--density-default .v-field--variant-solo,.v-input--density-default .v-field--variant-solo-inverted,.v-input--density-default .v-field--variant-solo-filled,.v-input--density-default .v-field--variant-filled{--v-input-control-height:56px;--v-field-padding-bottom:4px}.v-input--density-comfortable .v-field--variant-solo,.v-input--density-comfortable .v-field--variant-solo-inverted,.v-input--density-comfortable .v-field--variant-solo-filled,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height:48px;--v-field-padding-bottom:0px}.v-input--density-compact .v-field--variant-solo,.v-input--density-compact .v-field--variant-solo-inverted,.v-input--density-compact .v-field--variant-solo-filled,.v-input--density-compact .v-field--variant-filled{--v-input-control-height:40px;--v-field-padding-bottom:0px}.v-field--variant-outlined,.v-field--single-line,.v-field--no-label{--v-field-padding-top:0px}.v-input--density-default .v-field--variant-outlined,.v-input--density-default .v-field--single-line,.v-input--density-default .v-field--no-label{--v-field-padding-bottom:16px}.v-input--density-comfortable .v-field--variant-outlined,.v-input--density-comfortable .v-field--single-line,.v-input--density-comfortable .v-field--no-label{--v-field-padding-bottom:12px}.v-input--density-compact .v-field--variant-outlined,.v-input--density-compact .v-field--single-line,.v-input--density-compact .v-field--no-label{--v-field-padding-bottom:8px}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0}.v-field--variant-plain.v-field,.v-field--variant-underlined.v-field{--v-field-padding-start:0px;--v-field-padding-end:0px}.v-input--density-default .v-field--variant-plain,.v-input--density-default .v-field--variant-underlined{--v-input-control-height:48px;--v-field-padding-top:4px;--v-field-padding-bottom:4px}.v-input--density-comfortable .v-field--variant-plain,.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height:40px;--v-field-padding-top:2px;--v-field-padding-bottom:0px}.v-input--density-compact .v-field--variant-plain,.v-input--density-compact .v-field--variant-underlined{--v-input-control-height:32px;--v-field-padding-top:0px;--v-field-padding-bottom:0px}.v-field--flat{box-shadow:none}.v-field--rounded{border-radius:24px}.v-field.v-field--prepended{--v-field-padding-start:6px}.v-field.v-field--appended{--v-field-padding-end:6px}.v-field__input{color:inherit;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);min-height:max(var(--v-input-control-height,56px), 1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));min-width:0;padding-inline:var(--v-field-padding-start) var(--v-field-padding-end);padding-top:var(--v-field-input-padding-top);padding-bottom:var(--v-field-input-padding-bottom);flex-wrap:wrap;align-items:center;column-gap:2px;width:100%;display:flex;position:relative}.v-input--density-default .v-field__input{row-gap:8px}.v-input--density-comfortable .v-field__input{row-gap:6px}.v-input--density-compact .v-field__input{row-gap:4px}.v-field__input input{letter-spacing:inherit}:where(.v-field__input input,input.v-field__input,textarea.v-field__input,select.v-field__input){background-color:#0000;border-style:none;margin:0;padding:0}:where(.v-field__input input,input.v-field__input,textarea.v-field__input,select.v-field__input)::placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;grid-area:field;align-items:flex-start;display:flex;position:relative}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__append-inner,.v-field__clearable,.v-field__prepend-inner{padding-top:var(--v-input-padding-top,8px);align-items:flex-start;display:flex}.v-field--center-affix .v-field__append-inner,.v-field--center-affix .v-field__clearable,.v-field--center-affix .v-field__prepend-inner{align-items:center;padding-top:0}.v-field.v-field--variant-underlined .v-field__append-inner,.v-field.v-field--variant-underlined .v-field__clearable,.v-field.v-field--variant-underlined .v-field__prepend-inner,.v-field.v-field--variant-plain .v-field__append-inner,.v-field.v-field--variant-plain .v-field__clearable,.v-field.v-field--variant-plain .v-field__prepend-inner{padding-top:calc(var(--v-field-padding-top,8px) + var(--v-input-padding-top,0px));padding-bottom:var(--v-field-padding-bottom,4px);align-items:flex-start}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--glow.v-field--focused .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--glow.v-field--focused .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon,.v-field--glow.v-field--focused .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;margin-inline:4px;transition:opacity .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1),width .15s cubic-bezier(.4,0,.2,1);overflow:hidden}@media (prefers-reduced-motion:reduce){.v-field__clearable{transition-property:opacity}}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover:hover){.v-field:hover .v-field__clearable{opacity:1}}@media (hover:none){.v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;top:var(--v-input-padding-top);transform-origin:0;z-index:1;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.v-label.v-field-label{transition:opacity .15s cubic-bezier(.4,0,.2,1),transform .15s cubic-bezier(.4,0,.2,1)}}.v-field--variant-underlined .v-label.v-field-label,.v-field--variant-plain .v-label.v-field-label{top:calc(var(--v-input-padding-top) + var(--v-field-padding-top))}.v-field--center-affix .v-label.v-field-label{top:50%;transform:translateY(-50%)}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale:.75em;font-size:var(--v-field-label-scale);visibility:hidden}.v-field--variant-outlined .v-label.v-field-label--floating{max-width:100%}.v-field--center-affix .v-label.v-field-label--floating{transform:none}.v-field.v-field--active .v-label.v-field-label--floating{visibility:unset}.v-input--density-default .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{top:var(--v-input-padding-top);margin:0;transform:translateY(-16px)}.v-field--variant-outlined .v-label.v-field-label--floating{transform-origin:50%;margin:0 4px;position:static;transform:translateY(-50%)}.v-field__outline{--v-field-border-width:1px;--v-field-border-opacity:.38;contain:layout;pointer-events:none;align-items:stretch;width:100%;height:100%;display:flex;position:absolute;left:0;right:0}@media (hover:hover){.v-field:hover .v-field__outline{--v-field-border-opacity:var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity:1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width:2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-style:solid;border-color:currentColor;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);content:"";width:100%;height:100%;transition:opacity .25s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{content:"";border:0 solid;border-bottom-width:2px;width:100%;height:100%;transition:transform .15s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;transform:scaleX(0)}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{opacity:var(--v-field-border-opacity);border:0 solid}@media (prefers-reduced-motion:no-preference){.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{transition:opacity .25s cubic-bezier(.4,0,.2,1)}}.v-field--variant-outlined .v-field__outline__start{border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width);border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit;flex:0 0 12px}.v-field--rounded.v-field--variant-outlined .v-field__outline__start,[class^=rounded-].v-field--variant-outlined .v-field__outline__start,[class*=\ rounded-].v-field--variant-outlined .v-field__outline__start{flex-basis:calc(var(--v-input-control-height) / 2 + 2px)}.v-field--reverse.v-field--variant-outlined .v-field__outline__start{border-inline-end-width:var(--v-field-border-width);border-inline-start-width:0;border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0}.v-field--variant-outlined .v-field__outline__notch{flex:none;max-width:calc(100% - 24px);position:relative}.v-field--rounded.v-field--variant-outlined .v-field__outline__notch,[class^=rounded-].v-field--variant-outlined .v-field__outline__notch,[class*=\ rounded-].v-field--variant-outlined .v-field__outline__notch{max-width:calc(100% - var(--v-input-control-height))}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);content:"";width:100%;height:100%;position:absolute;top:0;left:0}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{border-width:0 0 var(--v-field-border-width);bottom:0}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width);border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0;flex:1}.v-field--reverse.v-field--variant-outlined .v-field__outline__end{border-inline-end-width:0;border-inline-start-width:var(--v-field-border-width);border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit}.v-field__loader{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;width:100%;position:absolute;top:calc(100% - 2px);left:0;right:0;overflow:hidden}.v-field--variant-outlined .v-field__loader{width:calc(100% - 2px);top:calc(100% - 3px);left:1px}.v-field__overlay{border-radius:inherit;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.v-field--variant-filled .v-field__overlay{opacity:.04;background-color:currentColor;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover:hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-filled .v-field__overlay{opacity:.04;background-color:currentColor;transition:opacity .25s cubic-bezier(.4,0,.2,1)}@media (hover:hover){.v-field--variant-solo-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-inverted .v-field__overlay{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-solo-inverted.v-field--has-background .v-field__overlay{opacity:0}@media (hover:hover){.v-field--variant-solo-inverted:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-inverted.v-field--focused .v-field__overlay{background-color:rgb(var(--v-theme-surface-variant));opacity:1}.v-field--reverse .v-field__field,.v-field--reverse .v-field__input,.v-field--reverse .v-field__outline{flex-direction:row-reverse}.v-field--reverse .v-field__input,.v-field--reverse input{text-align:end}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{border-image:repeating-linear-gradient(to right, color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-disabled-opacity) * 100%), transparent) 0px, color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-disabled-opacity) * 100%), transparent) 2px, transparent 2px, transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}@media (forced-colors:active){.v-field .v-progress-linear{border:none}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
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{Bn as isFunction,Gn as isString,Kt as callEvent,N as Intersect,Nt as propsFactory,Un as isNumber,Xt as clamp,Zt as convertToUnit,_t as useRender,bn as omit,cn as getActiveElement,dt as useProxiedModel,in as filterInputAttrs,ir as vModelText,ot as useDisplay,wt as genericComponent}from"./ripple-EFNA8EBu.js";import{l as forwardRefs}from"./VOverlay-Cp4rFk6g.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-C0b_0cSa.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};
|
package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
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{h as VIcon}from"./ripple-EFNA8EBu.js";import{f as mdiAlertCircleOutline}from"./mdi-Bt90Ns76.js";import{t as VBtn}from"./VBtn-BhVEwXLX.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-Cync3lZZ.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};
|