vibe64 0.1.34 → 0.1.36

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.
Files changed (207) hide show
  1. package/bin/run.js +1919 -1660
  2. package/bin/server.js +158 -111
  3. package/bin/upgrade-state.js +5783 -5605
  4. package/dist/assets/GithubBrowserTabs-BzJF4k9Y.js +1 -0
  5. package/dist/assets/{StudioErrorNotice-sQfmeR-z.js → StudioErrorNotice-BdllGqRy.js} +1 -1
  6. package/dist/assets/{Vibe64AsyncModuleState-Dx7YKRPp.js → Vibe64AsyncModuleState-Bi0TqlIu.js} +1 -1
  7. package/dist/assets/Vibe64AuthSettingsButton-BuvmwGiT.js +5 -0
  8. package/dist/assets/Vibe64AuthSettingsButton-M44SSmZ9.css +1 -0
  9. package/dist/assets/{Vibe64DashboardBackButton-yE6cyYg2.js → Vibe64DashboardBackButton-Ccd4hpD6.js} +1 -1
  10. package/dist/assets/Vibe64DashboardShell-D67m4aWz.js +1 -0
  11. package/dist/assets/{Vibe64DashboardShell-MBkUHjs-.css → Vibe64DashboardShell-De2mbdpI.css} +1 -1
  12. package/dist/assets/{Vibe64DatabaseWorkspace-BONJdxBS.js → Vibe64DatabaseWorkspace-D3uK1gDm.js} +3 -3
  13. package/dist/assets/{Vibe64DatabaseWorkspace-CR4pzzcf.css → Vibe64DatabaseWorkspace-DPDMxhAW.css} +1 -1
  14. package/dist/assets/Vibe64OutputControls-BfESn5kJ.js +8 -0
  15. package/dist/assets/Vibe64OutputControls-D2CCECo5.css +1 -0
  16. package/dist/assets/{Vibe64RepositoryWorkspace-ByQlZbyO.js → Vibe64RepositoryWorkspace-0jAxvdA8.js} +2 -2
  17. package/dist/assets/{Vibe64RepositoryWorkspace-CVHcT93M.css → Vibe64RepositoryWorkspace-Agyt4O-V.css} +1 -1
  18. package/dist/assets/Vibe64SessionFiles-B3ONZrBL.css +1 -0
  19. package/dist/assets/Vibe64SessionFiles-BCOJ4QmR.js +41 -0
  20. package/dist/assets/{Vibe64TemporaryAiFixAction-BGlcrq4d.js → Vibe64TemporaryAiFixAction-DM2jpPbQ.js} +1 -1
  21. package/dist/assets/{Vibe64UiStoryboardView-Brlwdvqi.js → Vibe64UiStoryboardView-DP5af46a.js} +1 -1
  22. package/dist/assets/{Vibe64UnavailableSessions-zwlWlcZD.js → Vibe64UnavailableSessions-C7XwH1SS.js} +1 -1
  23. package/dist/assets/{_sessionId_-CvOkQbVy.js → _sessionId_-B1Ymr7c_.js} +1 -1
  24. package/dist/assets/{_sessionTool_-Dwod5ns9.js → _sessionTool_-DVYdREoI.js} +1 -1
  25. package/dist/assets/_slug_-CQseA9pt.css +1 -0
  26. package/dist/assets/_slug_-CYO2vjCd.js +24 -0
  27. package/dist/assets/{access-BVu5XYm2.js → access-Cb7dkN53.js} +1 -1
  28. package/dist/assets/app-BvgY7oVf.js +1 -0
  29. package/dist/assets/app-CZu7oxUO.css +1 -0
  30. package/dist/assets/{assistantRouting-CwbwfkwB.js → assistantRouting-B38ujQ7x.js} +1 -1
  31. package/dist/assets/{changes-olY8cnFK.js → changes-lsBcuikn.js} +1 -1
  32. package/dist/assets/client-CRI5CNKl.js +2 -0
  33. package/dist/assets/client-TGaWwOhc.css +1 -0
  34. package/dist/assets/conversation-CDEt9jBx.js +17 -0
  35. package/dist/assets/conversation-vxJGwmtW.css +1 -0
  36. package/dist/assets/{dashboard-BnXD-H4R.js → dashboard-D8HOAw46.js} +1 -1
  37. package/dist/assets/definitions-DLTX17nI.js +1 -0
  38. package/dist/assets/{env-DJhnLOH7.css → env-BzRtyO0w.css} +1 -1
  39. package/dist/assets/env-DJezQixO.js +1 -0
  40. package/dist/assets/health-BJvooRnJ.css +1 -0
  41. package/dist/assets/health-CtKdN_Nf.js +1 -0
  42. package/dist/assets/{history-BxlpB-YH.js → history-BdZFOtz4.js} +1 -1
  43. package/dist/assets/{incoming-BOxRVlOM.js → incoming-VsQNnL9m.js} +1 -1
  44. package/dist/assets/index-C-osVUKw.css +1 -0
  45. package/dist/assets/index-C4K3ntms.js +138 -0
  46. package/dist/assets/{integrations-BFltGDVI.js → integrations-CMQ9EDmt.js} +2 -2
  47. package/dist/assets/issues-DHpY5hSr.js +1 -0
  48. package/dist/assets/learning-DXlMuwzh.js +1 -0
  49. package/dist/assets/mdi-yXT-CQ6u.js +1 -0
  50. package/dist/assets/placement-NpX2s7u8.js +1 -0
  51. package/dist/assets/pull-requests-BcKNEUYH.js +1 -0
  52. package/dist/assets/{repository-JWLVST3D.js → repository-ClEgntHW.js} +1 -1
  53. package/dist/assets/roboto-latin-wght-normal-ccAYIvAh.woff2 +0 -0
  54. package/dist/assets/{session-C5Nj8Dlq.js → session-BlD46q-d.js} +1 -1
  55. package/dist/assets/settings-BwukeIKe.js +1 -0
  56. package/dist/assets/shared-BM2SV6fi.js +2 -0
  57. package/dist/assets/studioGateApi-DcCqiD9V.js +1 -0
  58. package/dist/assets/studioUrls-DmMMIScP.js +1 -0
  59. package/dist/assets/useArchivedVibe64Sessions-D5zUA-BC.js +1 -0
  60. package/dist/assets/useCommand-Bqxb-naz.js +1 -0
  61. package/dist/assets/useEndpointResource-DWoQ2keu.js +1 -0
  62. package/dist/assets/useRealtimeEvent-Bwapstla.js +1 -0
  63. package/dist/assets/{useUiFeedback-0FqKuZRP.js → useUiFeedback-BPBF_0bp.js} +1 -1
  64. package/dist/assets/useVibe64ConversationLog-Dy6YTPQn.js +1 -0
  65. package/dist/assets/useVibe64DatabaseTools-d6L09ugW.js +1 -0
  66. package/dist/assets/useVibe64Learning-cNKTv64W.js +1 -0
  67. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +1 -0
  68. package/dist/assets/useVibe64SessionData-C_jqncih.js +1 -0
  69. package/dist/assets/useVibe64SessionSelection-uCEIWd3b.js +1 -0
  70. package/dist/assets/useVibe64SystemGraph-B4RmsC9Y.js +1 -0
  71. package/dist/assets/{useVibe64Terminal-BPnN25WH.js → useVibe64Terminal-BbghGR4x.js} +1 -1
  72. package/dist/assets/vibe64AssistantHost-BL1bnKm8.js +1 -0
  73. package/dist/assets/{vibe64SessionFocus-kqPOPaOH.js → vibe64SessionFocus-DSJKVuRN.js} +1 -1
  74. package/dist/assets/{vibe64SessionInfo-BHxtTrLX.js → vibe64SessionInfo-B_r1OMN0.js} +1 -1
  75. package/dist/assets/{vibe64SessionPanelModel-BMf64fv7.js → vibe64SessionPanelModel-DDorOuiL.js} +1 -1
  76. package/dist/assets/{vibe64SessionToolDefinitions-NfLd1HZI.js → vibe64SessionToolDefinitions-BualCK_5.js} +1 -1
  77. package/dist/index.html +21 -20
  78. package/docs/colleague-usage/account-profile-and-appearance.md +8 -2
  79. package/docs/colleague-usage/ai-accounts-and-routing.md +123 -15
  80. package/docs/colleague-usage/ai-onboarding.md +230 -0
  81. package/docs/colleague-usage/coding-agent-goal-pause.md +5 -5
  82. package/docs/colleague-usage/coding-agents.md +17 -0
  83. package/docs/colleague-usage/colleague-watches.md +4 -23
  84. package/docs/colleague-usage/colleague.md +10 -2
  85. package/docs/colleague-usage/connected-projects.md +2 -2
  86. package/docs/colleague-usage/conversation-context.md +2 -0
  87. package/docs/colleague-usage/dashboard-navigation.md +19 -27
  88. package/docs/colleague-usage/database.md +6 -11
  89. package/docs/colleague-usage/development-copies.md +2 -1
  90. package/docs/colleague-usage/development-env.md +6 -0
  91. package/docs/colleague-usage/github-work.md +9 -0
  92. package/docs/colleague-usage/health-checks.md +11 -5
  93. package/docs/colleague-usage/integrations.md +3 -1
  94. package/docs/colleague-usage/learning-code-questions.md +23 -51
  95. package/docs/colleague-usage/learning-course-catalogue.md +8 -6
  96. package/docs/colleague-usage/learning-environment.md +345 -0
  97. package/docs/colleague-usage/learning-history.md +70 -101
  98. package/docs/colleague-usage/learning-mode-ui.md +122 -214
  99. package/docs/colleague-usage/learning-practice-projects.md +168 -78
  100. package/docs/colleague-usage/learning-teacher-guide.md +48 -26
  101. package/docs/colleague-usage/learning-with-colleague.md +171 -216
  102. package/docs/colleague-usage/lesson-authoring.md +32 -24
  103. package/docs/colleague-usage/managed-app-access.md +7 -0
  104. package/docs/colleague-usage/message-delivery-recovery.md +7 -6
  105. package/docs/colleague-usage/preview-browser-checks.md +9 -1
  106. package/docs/colleague-usage/preview-starting-application.md +0 -1
  107. package/docs/colleague-usage/preview.md +9 -1
  108. package/docs/colleague-usage/project-messages.md +2 -2
  109. package/docs/colleague-usage/project-setup.md +9 -2
  110. package/docs/colleague-usage/running-vibe64-on-your-computer.md +61 -0
  111. package/docs/colleague-usage/sessions.md +25 -33
  112. package/docs/colleague-usage/teaching-content.md +11 -40
  113. package/docs/colleague-usage/temporary-chats.md +23 -2
  114. package/docs/colleague-usage/voice-chat.md +5 -10
  115. package/docs/colleague-usage/voice-face-and-speaking-voice.md +6 -8
  116. package/docs/colleague-usage/voice-recovery.md +3 -2
  117. package/docs/templates/learn-topic/README.md +6 -6
  118. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +28 -7
  119. package/docs/templates/learn-topic/training/lessons/TOPIC-01/notes.md +19 -0
  120. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/check-understanding.md +3 -0
  121. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/explain-idea.md +3 -0
  122. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/try-it.md +3 -0
  123. package/docs/templates/learn-topic/training/outline.md +1 -1
  124. package/docs/training-content.md +179 -65
  125. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  126. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  127. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md +3 -2
  128. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/example/integrations.json +3 -2
  129. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  130. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  131. package/node_modules/@jskit-ai/connectors-catalog/patterns/ai-connections/PATTERN.md +4 -3
  132. package/node_modules/@jskit-ai/connectors-catalog/src/shared/ai-models.json +0 -1
  133. package/node_modules/@local/vibe64-accounts/package.json +1 -0
  134. package/node_modules/@local/vibe64-colleague/package.json +2 -1
  135. package/node_modules/@local/vibe64-core/package.json +3 -0
  136. package/node_modules/@local/vibe64-execution/package.json +1 -0
  137. package/node_modules/@local/vibe64-execution/src/server/engines/stdioBridge.js +9 -9
  138. package/node_modules/@local/vibe64-genesis/README.md +10 -37
  139. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +790 -779
  140. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  141. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +255 -0
  142. package/node_modules/@local/vibe64-genesis/src/server/index.js +473 -450
  143. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +148 -148
  144. package/node_modules/@local/vibe64-project/package.json +2 -1
  145. package/node_modules/@local/vibe64-runtime/package.json +1 -2
  146. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +526 -512
  147. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +0 -1
  148. package/node_modules/@local/vibe64-source-editor/package.json +1 -0
  149. package/node_modules/@local/vibe64-terminals/package.json +1 -0
  150. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +129 -131
  151. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1508 -1456
  152. package/node_modules/@local/vibe64-training/package.json +13 -27
  153. package/package.json +7 -7
  154. package/server.bundle.mjs +40946 -41456
  155. package/dist/assets/GithubBrowserTabs-DO5PHon-.js +0 -1
  156. package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +0 -3
  157. package/dist/assets/GithubMarkdown-U7-j-qNI.css +0 -1
  158. package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +0 -1
  159. package/dist/assets/Vibe64OutputControls-DAAmA09l.js +0 -8
  160. package/dist/assets/Vibe64OutputControls-DPBsyDZM.css +0 -1
  161. package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +0 -107
  162. package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +0 -1
  163. package/dist/assets/_slug_-B31c15cc.css +0 -1
  164. package/dist/assets/_slug_-Dy35qLo1.js +0 -1
  165. package/dist/assets/app-DRXCcv05.css +0 -1
  166. package/dist/assets/app-zt7HwQKT.js +0 -1
  167. package/dist/assets/client-BrV4QPwG.js +0 -2
  168. package/dist/assets/client-C1bwIlu6.css +0 -1
  169. package/dist/assets/definitions-DaOPIkyB.js +0 -1
  170. package/dist/assets/env-DN0vW4EI.js +0 -1
  171. package/dist/assets/health-7oIQODer.css +0 -1
  172. package/dist/assets/health-Z6m96GDr.js +0 -1
  173. package/dist/assets/index-BUq-MczL.js +0 -86
  174. package/dist/assets/index-DtmBqE3h.css +0 -1
  175. package/dist/assets/issues-1iS5zoed.js +0 -1
  176. package/dist/assets/layout-BkWVNT37.js +0 -1
  177. package/dist/assets/mdi-C54lQ0i_.js +0 -1
  178. package/dist/assets/placement-DLsU3pCW.js +0 -1
  179. package/dist/assets/pull-requests-BJOwNL4k.js +0 -1
  180. package/dist/assets/settings-c273Ikrm.js +0 -1
  181. package/dist/assets/shared-YZb7ocaK.js +0 -2
  182. package/dist/assets/studioGateApi-DhA9IJGZ.js +0 -1
  183. package/dist/assets/studioUrls-Dj8rXeXO.js +0 -1
  184. package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +0 -1
  185. package/dist/assets/useCommand-DWuxfAV0.js +0 -1
  186. package/dist/assets/useEndpointResource-MWVNfmMa.js +0 -1
  187. package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +0 -1
  188. package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +0 -1
  189. package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +0 -28
  190. package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +0 -1
  191. package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +0 -1
  192. package/dist/assets/useVibe64SessionData-DFTyLzci.js +0 -1
  193. package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +0 -1
  194. package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +0 -1
  195. package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +0 -1
  196. package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +0 -1
  197. package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +0 -1
  198. package/docs/colleague-usage/learning-chat-retention.md +0 -74
  199. package/docs/colleague-usage/learning-diagrams-and-voice.md +0 -97
  200. package/docs/colleague-usage/learning-lesson-watch.md +0 -95
  201. package/docs/colleague-usage/learning-native-session.md +0 -206
  202. package/docs/colleague-usage/learning-practical-exercises.md +0 -71
  203. package/docs/colleague-usage/learning-practical-gestures.md +0 -48
  204. package/docs/colleague-usage/learning-session-creation.md +0 -95
  205. package/docs/colleague-usage/lesson-practical-assessment.md +0 -54
  206. package/docs/colleague-usage/preview-lesson-presentation.md +0 -56
  207. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.md +0 -44
@@ -0,0 +1 @@
1
+ import{D as createVNode,E as createTextVNode,On as unref,g as computed,mt as openBlock,qt as withCtx,v as createBlock}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{g as useRoute}from"./useApi-BPuI6ZR9-CFWU1m37.js";import{c as projectSlugFromRoute,o as projectAppPath}from"./useRealtimeEvent-Bwapstla.js";import{In as mdiRecordCircleOutline,tr as mdiSourcePull}from"./mdi-yXT-CQ6u.js";import{Kt as VTabs,qt as VTab}from"./index-C4K3ntms.js";var _sfc_main={__name:`GithubBrowserTabs`,setup(__props){const route=useRoute();const projectSlug=computed(()=>projectSlugFromRoute(route));const selected=computed(()=>route.path.endsWith(`/pull-requests`)?`pull-requests`:`issues`);return(_ctx,_cache)=>{return openBlock(),createBlock(VTabs,{"model-value":selected.value,color:`primary`,density:`compact`,"aria-label":`Issues and pull requests`},{default:withCtx(()=>[createVNode(VTab,{value:`issues`,"prepend-icon":unref(mdiRecordCircleOutline),to:{path:unref(projectAppPath)(projectSlug.value,`/dashboard/issues`),query:{...unref(route).query,issue:void 0}}},{default:withCtx(()=>[..._cache[0]||(_cache[0]=[createTextVNode(` Issues `,-1)])]),_:1},8,[`prepend-icon`,`to`]),createVNode(VTab,{value:`pull-requests`,"prepend-icon":unref(mdiSourcePull),to:{path:unref(projectAppPath)(projectSlug.value,`/dashboard/pull-requests`),query:{...unref(route).query,pr:void 0,createPullRequest:void 0}}},{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createTextVNode(` Pull requests `,-1)])]),_:1},8,[`prepend-icon`,`to`])]),_:1},8,[`model-value`])}}};export{_sfc_main as t};
@@ -1 +1 @@
1
- import{Wn as vShow,h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,On as unref,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,g as computed,mt as openBlock,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{s as VExpandTransition}from"./VAvatar-DPzqDH4r.js";import{t as VChip}from"./VChip-CcI-Oo2J.js";import{B as mdiClose,P as mdiChevronUp,et as mdiContentCopy,j as mdiChevronDown,l as mdiAlertCircleOutline}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1={class:`studio-error-notice__icon`};var _hoisted_2={class:`studio-error-notice__body`};var _hoisted_3={class:`studio-error-notice__header`};var _hoisted_4={key:0,class:`studio-error-notice__message`};var _hoisted_5={key:1,class:`studio-error-notice__actions`};var _hoisted_6={key:2,class:`studio-error-notice__repair`};var _hoisted_7={key:3,class:`studio-error-notice__details`};var _hoisted_8={key:4,class:`studio-error-notice__copy-status`};var _sfc_main={__name:`StudioErrorNotice`,props:{code:{type:String,default:``},compact:{type:Boolean,default:false},details:{type:[String,Object,Array],default:``},dismissible:{type:Boolean,default:false},error:{type:[String,Object],default:``},message:{type:String,default:``},overlay:{type:Boolean,default:false},repairCommand:{type:String,default:``},title:{type:String,default:``}},emits:[`dismiss`],setup(__props){const props=__props;const detailsOpen=ref(false);const copyStatus=ref(``);const errorObject=computed(()=>{return props.error&&typeof props.error===`object`&&!Array.isArray(props.error)?props.error:{}});const displayCode=computed(()=>String(props.code||errorObject.value.code||``).trim());const displayTitle=computed(()=>{const title=String(props.title||errorObject.value.title||``).trim();if(title)return title;if(displayCode.value)return displayCode.value.replace(/[_-]+/gu,` `).replace(/\b\w/gu,letter=>letter.toUpperCase());return`Something needs attention`});const displayMessage=computed(()=>{return String(props.message||errorObject.value.message||(typeof props.error===`string`?props.error:``)||``).trim()});const displayRepairCommand=computed(()=>{return String(props.repairCommand||errorObject.value.repairCommand||``).trim()});const displayDetails=computed(()=>{const details=props.details||errorObject.value.details||errorObject.value.output||errorObject.value.stderr||errorObject.value.stdout||``;if(!details)return``;if(typeof details===`string`)return details.trim();try{return JSON.stringify(details,null,2)}catch{return String(details||``).trim()}});async function copyRepairCommand(){const value=displayRepairCommand.value;if(!value)return;try{await navigator.clipboard.writeText(value);copyStatus.value=`Repair command copied.`}catch{copyStatus.value=`Copy failed.`}}return(_ctx,_cache)=>{return openBlock(),createBlock(VSheet,{border:``,rounded:`lg`,role:`alert`,class:normalizeClass([`studio-error-notice`,{"studio-error-notice--compact":__props.compact,"studio-error-notice--overlay":__props.overlay}])},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1,[createVNode(VIcon,{icon:unref(mdiAlertCircleOutline),size:`22`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_2,[createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`strong`,null,toDisplayString(displayTitle.value),1),displayCode.value?(openBlock(),createBlock(VChip,{key:0,color:`error`,size:`x-small`,variant:`tonal`},{default:withCtx(()=>[createTextVNode(toDisplayString(displayCode.value),1)]),_:1})):createCommentVNode(``,true),__props.dismissible?(openBlock(),createBlock(VBtn,{key:1,icon:unref(mdiClose),"aria-label":`Dismiss`,class:`studio-error-notice__dismiss`,density:`comfortable`,size:`small`,variant:`text`,onClick:_cache[0]||(_cache[0]=$event=>_ctx.$emit(`dismiss`))},null,8,[`icon`])):createCommentVNode(``,true)]),displayMessage.value?(openBlock(),createElementBlock(`p`,_hoisted_4,toDisplayString(displayMessage.value),1)):createCommentVNode(``,true),_ctx.$slots.actions?(openBlock(),createElementBlock(`div`,_hoisted_5,[renderSlot(_ctx.$slots,`actions`,{},void 0,true)])):createCommentVNode(``,true),displayRepairCommand.value?(openBlock(),createElementBlock(`div`,_hoisted_6,[createBaseVNode(`code`,null,toDisplayString(displayRepairCommand.value),1),createVNode(VBtn,{icon:unref(mdiContentCopy),"aria-label":`Copy repair command`,size:`x-small`,variant:`text`,onClick:copyRepairCommand},null,8,[`icon`])])):createCommentVNode(``,true),displayDetails.value?(openBlock(),createElementBlock(`div`,_hoisted_7,[createVNode(VBtn,{"append-icon":detailsOpen.value?unref(mdiChevronUp):unref(mdiChevronDown),color:`error`,size:`small`,variant:`text`,onClick:_cache[1]||(_cache[1]=$event=>detailsOpen.value=!detailsOpen.value)},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Details `,-1)])]),_:1},8,[`append-icon`]),createVNode(VExpandTransition,null,{default:withCtx(()=>[withDirectives(createBaseVNode(`pre`,null,toDisplayString(displayDetails.value),513),[[vShow,detailsOpen.value]])]),_:1})])):createCommentVNode(``,true),copyStatus.value?(openBlock(),createElementBlock(`p`,_hoisted_8,toDisplayString(copyStatus.value),1)):createCommentVNode(``,true)])]),_:3},8,[`class`])}}};var StudioErrorNotice_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-8217c0e2`]]);export{StudioErrorNotice_default as t};
1
+ import{Wn as vShow,h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,On as unref,Yt as withDirectives,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,g as computed,mt as openBlock,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{s as VExpandTransition}from"./VAvatar-DPzqDH4r.js";import{t as VChip}from"./VChip-CcI-Oo2J.js";import{L as mdiChevronUp,P as mdiChevronDown,U as mdiClose,l as mdiAlertCircleOutline,rt as mdiContentCopy}from"./mdi-yXT-CQ6u.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1={class:`studio-error-notice__icon`};var _hoisted_2={class:`studio-error-notice__body`};var _hoisted_3={class:`studio-error-notice__header`};var _hoisted_4={key:0,class:`studio-error-notice__message`};var _hoisted_5={key:1,class:`studio-error-notice__actions`};var _hoisted_6={key:2,class:`studio-error-notice__repair`};var _hoisted_7={key:3,class:`studio-error-notice__details`};var _hoisted_8={key:4,class:`studio-error-notice__copy-status`};var _sfc_main={__name:`StudioErrorNotice`,props:{code:{type:String,default:``},compact:{type:Boolean,default:false},details:{type:[String,Object,Array],default:``},dismissible:{type:Boolean,default:false},error:{type:[String,Object],default:``},message:{type:String,default:``},overlay:{type:Boolean,default:false},repairCommand:{type:String,default:``},title:{type:String,default:``}},emits:[`dismiss`],setup(__props){const props=__props;const detailsOpen=ref(false);const copyStatus=ref(``);const errorObject=computed(()=>{return props.error&&typeof props.error===`object`&&!Array.isArray(props.error)?props.error:{}});const displayCode=computed(()=>String(props.code||errorObject.value.code||``).trim());const displayTitle=computed(()=>{const title=String(props.title||errorObject.value.title||``).trim();if(title)return title;if(displayCode.value)return displayCode.value.replace(/[_-]+/gu,` `).replace(/\b\w/gu,letter=>letter.toUpperCase());return`Something needs attention`});const displayMessage=computed(()=>{return String(props.message||errorObject.value.message||(typeof props.error===`string`?props.error:``)||``).trim()});const displayRepairCommand=computed(()=>{return String(props.repairCommand||errorObject.value.repairCommand||``).trim()});const displayDetails=computed(()=>{const details=props.details||errorObject.value.details||errorObject.value.output||errorObject.value.stderr||errorObject.value.stdout||``;if(!details)return``;if(typeof details===`string`)return details.trim();try{return JSON.stringify(details,null,2)}catch{return String(details||``).trim()}});async function copyRepairCommand(){const value=displayRepairCommand.value;if(!value)return;try{await navigator.clipboard.writeText(value);copyStatus.value=`Repair command copied.`}catch{copyStatus.value=`Copy failed.`}}return(_ctx,_cache)=>{return openBlock(),createBlock(VSheet,{border:``,rounded:`lg`,role:`alert`,class:normalizeClass([`studio-error-notice`,{"studio-error-notice--compact":__props.compact,"studio-error-notice--overlay":__props.overlay}])},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_1,[createVNode(VIcon,{icon:unref(mdiAlertCircleOutline),size:`22`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_2,[createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`strong`,null,toDisplayString(displayTitle.value),1),displayCode.value?(openBlock(),createBlock(VChip,{key:0,color:`error`,size:`x-small`,variant:`tonal`},{default:withCtx(()=>[createTextVNode(toDisplayString(displayCode.value),1)]),_:1})):createCommentVNode(``,true),__props.dismissible?(openBlock(),createBlock(VBtn,{key:1,icon:unref(mdiClose),"aria-label":`Dismiss`,class:`studio-error-notice__dismiss`,density:`comfortable`,size:`small`,variant:`text`,onClick:_cache[0]||(_cache[0]=$event=>_ctx.$emit(`dismiss`))},null,8,[`icon`])):createCommentVNode(``,true)]),displayMessage.value?(openBlock(),createElementBlock(`p`,_hoisted_4,toDisplayString(displayMessage.value),1)):createCommentVNode(``,true),_ctx.$slots.actions?(openBlock(),createElementBlock(`div`,_hoisted_5,[renderSlot(_ctx.$slots,`actions`,{},void 0,true)])):createCommentVNode(``,true),displayRepairCommand.value?(openBlock(),createElementBlock(`div`,_hoisted_6,[createBaseVNode(`code`,null,toDisplayString(displayRepairCommand.value),1),createVNode(VBtn,{icon:unref(mdiContentCopy),"aria-label":`Copy repair command`,size:`x-small`,variant:`text`,onClick:copyRepairCommand},null,8,[`icon`])])):createCommentVNode(``,true),displayDetails.value?(openBlock(),createElementBlock(`div`,_hoisted_7,[createVNode(VBtn,{"append-icon":detailsOpen.value?unref(mdiChevronUp):unref(mdiChevronDown),color:`error`,size:`small`,variant:`text`,onClick:_cache[1]||(_cache[1]=$event=>detailsOpen.value=!detailsOpen.value)},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Details `,-1)])]),_:1},8,[`append-icon`]),createVNode(VExpandTransition,null,{default:withCtx(()=>[withDirectives(createBaseVNode(`pre`,null,toDisplayString(displayDetails.value),513),[[vShow,detailsOpen.value]])]),_:1})])):createCommentVNode(``,true),copyStatus.value?(openBlock(),createElementBlock(`p`,_hoisted_8,toDisplayString(copyStatus.value),1)):createCommentVNode(``,true)])]),_:3},8,[`class`])}}};var StudioErrorNotice_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-8217c0e2`]]);export{StudioErrorNotice_default as t};
@@ -1 +1 @@
1
- import{h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,er as normalizeStyle,g as computed,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as mdiAlertCircleOutline}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-CttxM1tw.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1=[`aria-busy`];var _hoisted_2={class:`vibe64-async-module-state__icon`};var _hoisted_3={class:`vibe64-async-module-state__copy`};var _hoisted_4={key:0,class:`vibe64-async-module-state__hint`};var _hoisted_5={class:`vibe64-async-module-state__actions`};var _sfc_main={__name:`Vibe64AsyncModuleState`,props:{label:{default:`Vibe64 module`,type:String},loading:{default:false,type:Boolean},message:{default:``,type:String},minHeight:{default:``,type:String},stale:{default:false,type:Boolean}},emits:[`reload`,`retry`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const title=computed(()=>props.loading?`Loading ${props.label}...`:`${props.label} could not load`);const stateStyle=computed(()=>props.minHeight?{minHeight:props.minHeight}:{});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`vibe64-async-module-state`,{"vibe64-async-module-state--loading":__props.loading}]),style:normalizeStyle(stateStyle.value),"aria-busy":__props.loading},[__props.loading?(openBlock(),createBlock(VSkeletonLoader,{key:0,"aria-label":title.value,class:`vibe64-async-module-state__skeleton`,type:`article`},null,8,[`aria-label`])):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_2,[createVNode(VIcon,{icon:unref(mdiAlertCircleOutline),color:`warning`,size:`30`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`h2`,null,toDisplayString(title.value),1),createBaseVNode(`p`,null,toDisplayString(__props.message),1),__props.stale?(openBlock(),createElementBlock(`p`,_hoisted_4,` If retry keeps failing, reload Vibe64 to pick up the current app files. `)):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_5,[createVNode(VBtn,{color:`primary`,size:`small`,type:`button`,variant:`flat`,onClick:_cache[0]||(_cache[0]=$event=>emit(`retry`))},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Retry `,-1)])]),_:1}),createVNode(VBtn,{size:`small`,type:`button`,variant:`tonal`,onClick:_cache[1]||(_cache[1]=$event=>emit(`reload`))},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(` Reload Vibe64 `,-1)])]),_:1})])])],64))],14,_hoisted_1)}}};var Vibe64AsyncModuleState_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c1fdb9ea`]]);export{Vibe64AsyncModuleState_default as t};
1
+ import{h as VIcon}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,er as normalizeStyle,g as computed,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{l as mdiAlertCircleOutline}from"./mdi-yXT-CQ6u.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VSkeletonLoader}from"./VSkeletonLoader-CttxM1tw.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _hoisted_1=[`aria-busy`];var _hoisted_2={class:`vibe64-async-module-state__icon`};var _hoisted_3={class:`vibe64-async-module-state__copy`};var _hoisted_4={key:0,class:`vibe64-async-module-state__hint`};var _hoisted_5={class:`vibe64-async-module-state__actions`};var _sfc_main={__name:`Vibe64AsyncModuleState`,props:{label:{default:`Vibe64 module`,type:String},loading:{default:false,type:Boolean},message:{default:``,type:String},minHeight:{default:``,type:String},stale:{default:false,type:Boolean}},emits:[`reload`,`retry`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const title=computed(()=>props.loading?`Loading ${props.label}...`:`${props.label} could not load`);const stateStyle=computed(()=>props.minHeight?{minHeight:props.minHeight}:{});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`vibe64-async-module-state`,{"vibe64-async-module-state--loading":__props.loading}]),style:normalizeStyle(stateStyle.value),"aria-busy":__props.loading},[__props.loading?(openBlock(),createBlock(VSkeletonLoader,{key:0,"aria-label":title.value,class:`vibe64-async-module-state__skeleton`,type:`article`},null,8,[`aria-label`])):(openBlock(),createElementBlock(Fragment,{key:1},[createBaseVNode(`div`,_hoisted_2,[createVNode(VIcon,{icon:unref(mdiAlertCircleOutline),color:`warning`,size:`30`},null,8,[`icon`])]),createBaseVNode(`div`,_hoisted_3,[createBaseVNode(`h2`,null,toDisplayString(title.value),1),createBaseVNode(`p`,null,toDisplayString(__props.message),1),__props.stale?(openBlock(),createElementBlock(`p`,_hoisted_4,` If retry keeps failing, reload Vibe64 to pick up the current app files. `)):createCommentVNode(``,true),createBaseVNode(`div`,_hoisted_5,[createVNode(VBtn,{color:`primary`,size:`small`,type:`button`,variant:`flat`,onClick:_cache[0]||(_cache[0]=$event=>emit(`retry`))},{default:withCtx(()=>[..._cache[2]||(_cache[2]=[createTextVNode(` Retry `,-1)])]),_:1}),createVNode(VBtn,{size:`small`,type:`button`,variant:`tonal`,onClick:_cache[1]||(_cache[1]=$event=>emit(`reload`))},{default:withCtx(()=>[..._cache[3]||(_cache[3]=[createTextVNode(` Reload Vibe64 `,-1)])]),_:1})])])],64))],14,_hoisted_1)}}};var Vibe64AsyncModuleState_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c1fdb9ea`]]);export{Vibe64AsyncModuleState_default as t};
@@ -0,0 +1,5 @@
1
+ import{Gn as withKeys,Kn as withModifiers,q as useTheme}from"./ripple-BVltMmyV.js";import{D as createVNode,E as createTextVNode,Ht as watch,J as inject,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,bt as renderList,ct as onMounted,et as mergeProps,g as computed,it as onBeforeUnmount,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,tt as nextTick,v as createBlock,vn as ref,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{g as useDisplay}from"./VAvatar-DPzqDH4r.js";import{n as VList,s as VListItem,t as VMenu}from"./VMenu-C_x18lwb.js";import{t as useVibe64Learning}from"./useVibe64Learning-cNKTv64W.js";import{t as VTextField}from"./VTextField-BR2eZeFT.js";import{o as VIBE64_COLLEAGUE_LAUNCHER_KEY}from"./vibe64AssistantHost-BL1bnKm8.js";import{Cr as mdiWeatherSunny,Rt as mdiGithub,S as mdiAutoFix,Sr as mdiWeatherNight,U as mdiClose,Un as mdiRobotOutline,n as mdiAccountCogOutline,o as mdiAccountOutline,wn as mdiMonitor}from"./mdi-yXT-CQ6u.js";import{i as VBtnToggle,t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as VDivider}from"./VDivider-BMEqUoAB.js";import{t as VDialog}from"./VDialog-Bu3EfKb1.js";import{i as VCardTitle,n as VCardText,t as VCard}from"./VCard-mXy0k4aS.js";import{t as VSpacer}from"./VSpacer-Dhmsvk4t.js";import{c as aiOnboardingNeeded,d as AiSetup_default,l as onVibe64AiOnboardingRequested,m as ProviderAccountsSetup_default,n as accountRowsForStatus,o as aiOnboardingAvailable,p as useVibe64Accounts,r as AiOnboardingSetUpPill_default,s as aiOnboardingBlocked,u as requestVibe64AiOnboarding}from"./client-CRI5CNKl.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{Kt as VTabs,Xt as VContainer,Yt as VMain,b as onVibe64AccountConnectionsDialogRequested,en as VAppBar,n as writeAppearance,o as _sfc_main$4,qt as VTab,t as readAppearance}from"./index-C4K3ntms.js";var _sfc_main$3={__name:`Vibe64ColleagueLauncherTarget`,setup(__props){const target=inject(VIBE64_COLLEAGUE_LAUNCHER_KEY,null);const enabled=Boolean(target);let currentElement;function setTarget(element){if(element)target.value=element;else if(target.value===currentElement)target.value=null;currentElement=element}return(_ctx,_cache)=>{return unref(enabled)?(openBlock(),createElementBlock(`div`,{key:0,ref:setTarget,class:`vibe64-colleague-launcher-target`},null,512)):createCommentVNode(``,true)}}};var Vibe64ColleagueLauncherTarget_default=_plugin_vue_export_helper_default(_sfc_main$3,[[`__scopeId`,`data-v-8e7b0e92`]]);var _sfc_main$2=Object.assign({inheritAttrs:false},{__name:`Vibe64LearningButton`,setup(__props){const learning=useVibe64Learning();const available=computed(()=>Boolean(learning?.state.actorKey));const learn=computed(()=>Boolean(learning?.learnMode));const switching=computed(()=>learning?.state.modeBusy===`set`);const title=computed(()=>learn.value?`Back to Develop (your projects)`:`Switch to Learn`);return(_ctx,_cache)=>{return available.value?(openBlock(),createBlock(VBtn,mergeProps({key:0},_ctx.$attrs,{class:[`vibe64-learning-button`,{"vibe64-learning-button--active":learn.value}],"aria-label":`Learn mode`,"aria-pressed":learn.value,title:title.value,"data-vibe64-guide":`learning`,density:`comfortable`,icon:``,size:`small`,disabled:switching.value,variant:learn.value?`flat`:`outlined`,onClick:_cache[0]||(_cache[0]=$event=>unref(learning).toggleMode())}),{default:withCtx(()=>[..._cache[1]||(_cache[1]=[createBaseVNode(`span`,{"aria-hidden":`true`},`L`,-1)])]),_:1},16,[`class`,`aria-pressed`,`title`,`disabled`,`variant`])):createCommentVNode(``,true)}}});var Vibe64LearningButton_default=_plugin_vue_export_helper_default(_sfc_main$2,[[`__scopeId`,`data-v-b7f22fcd`]]);var _hoisted_1$1={class:`studio-app-shell-layout__top-right`};var SWIPE_MIN_DISTANCE_PX=64;var SWIPE_INTENT_DISTANCE_PX=12;var SWIPE_MAX_DURATION_MS=700;var SWIPE_HORIZONTAL_RATIO=2;var BROWSER_GESTURE_EDGE_PX=24;var _sfc_main$1={__name:`StudioAppShellLayout`,props:{mobilePaneSwipeEnabled:Boolean,chatCollapsed:Boolean,fillViewport:Boolean},emits:[`update:chatCollapsed`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;let paneSwipe=null;watch(()=>[props.mobilePaneSwipeEnabled,props.chatCollapsed],cancelPaneSwipe);function cancelPaneSwipe(){paneSwipe=null}function startPaneSwipe(event,header=false){cancelPaneSwipe();if(!props.mobilePaneSwipeEnabled||event.defaultPrevented||event.touches.length!==1||window.getSelection()?.isCollapsed===false)return;const target=event.target;if(target.closest(`
2
+ input, textarea, select, [contenteditable]:not([contenteditable="false"]),
3
+ [role="textbox"], [role="slider"], [role="separator"], [role="dialog"], [role="menu"],
4
+ [draggable="true"], canvas, iframe, video, audio, .cm-editor, .xterm, [data-pane-swipe-ignore]
5
+ `))return;if(!header&&target.closest(`a, button, [role="button"], svg`))return;for(let node=target;node;node=node.parentElement){const style=window.getComputedStyle(node);if(style.touchAction===`none`||style.touchAction.startsWith(`pan-`))return;if(node.scrollWidth>node.clientWidth+1&&/^(auto|scroll)$/u.test(style.overflowX))return;if(node===event.currentTarget)break}const touch=event.touches[0];if(touch.clientX<BROWSER_GESTURE_EDGE_PX||touch.clientX>window.innerWidth-BROWSER_GESTURE_EDGE_PX)return;paneSwipe={id:touch.identifier,x:touch.clientX,y:touch.clientY,startedAt:event.timeStamp,chatCollapsed:props.chatCollapsed}}function movePaneSwipe(event){if(!paneSwipe)return;if(!props.mobilePaneSwipeEnabled||event.defaultPrevented||event.touches.length!==1||event.timeStamp-paneSwipe.startedAt>SWIPE_MAX_DURATION_MS){cancelPaneSwipe();return}const touch=event.touches[0];const horizontalDistance=Math.abs(touch.clientX-paneSwipe.x);const verticalDistance=Math.abs(touch.clientY-paneSwipe.y);if(touch.identifier!==paneSwipe.id||verticalDistance>SWIPE_INTENT_DISTANCE_PX&&horizontalDistance<verticalDistance*SWIPE_HORIZONTAL_RATIO){cancelPaneSwipe();return}if(!(horizontalDistance>SWIPE_INTENT_DISTANCE_PX&&horizontalDistance>=verticalDistance*SWIPE_HORIZONTAL_RATIO))return;if(!event.cancelable){cancelPaneSwipe();return}event.preventDefault()}function endPaneSwipe(event){const swipe=paneSwipe;cancelPaneSwipe();if(!swipe||!props.mobilePaneSwipeEnabled||event.defaultPrevented||event.touches.length||props.chatCollapsed!==swipe.chatCollapsed||event.timeStamp-swipe.startedAt>SWIPE_MAX_DURATION_MS||window.getSelection()?.isCollapsed===false)return;const touch=Array.from(event.changedTouches).find(item=>item.identifier===swipe.id);if(!touch)return;const dx=touch.clientX-swipe.x;const horizontalDistance=Math.abs(dx);const verticalDistance=Math.abs(touch.clientY-swipe.y);if(horizontalDistance<SWIPE_MIN_DISTANCE_PX||horizontalDistance<verticalDistance*SWIPE_HORIZONTAL_RATIO)return;if(event.cancelable)event.preventDefault();emit(`update:chatCollapsed`,dx<0)}return(_ctx,_cache)=>{return openBlock(),createElementBlock(Fragment,null,[createVNode(VAppBar,{border:``,class:`shell-layout__app-bar bg-surface`,density:`comfortable`,elevation:`0`,"data-testid":`jskit-shell-app-bar`,onTouchstartPassive:_cache[0]||(_cache[0]=$event=>startPaneSwipe($event,true)),onTouchmove:movePaneSwipe,onTouchend:endPaneSwipe,onTouchcancel:cancelPaneSwipe},{default:withCtx(()=>[createVNode(Vibe64LearningButton_default,{class:`studio-app-shell-layout__learning-plate`}),renderSlot(_ctx.$slots,`top-left`,{},void 0,true),createVNode(VSpacer),createBaseVNode(`div`,_hoisted_1$1,[createVNode(unref(_sfc_main$4),{target:`shell-layout:top-right`}),renderSlot(_ctx.$slots,`top-right`,{},void 0,true),createVNode(Vibe64ColleagueLauncherTarget_default)])]),_:3}),createVNode(VMain,{class:normalizeClass([`bg-background`,{"studio-app-shell-layout--fill-viewport":__props.fillViewport}])},{default:withCtx(()=>[createVNode(VContainer,{fluid:``,class:normalizeClass([`shell-layout__content studio-app-shell-layout__content`,{"studio-app-shell-layout__content--fill-viewport":__props.fillViewport}]),onTouchstartPassive:startPaneSwipe,onTouchmove:movePaneSwipe,onTouchend:endPaneSwipe,onTouchcancel:cancelPaneSwipe},{default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},void 0,true)]),_:3},8,[`class`])]),_:3},8,[`class`])],64)}}};var StudioAppShellLayout_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-9bb3215c`]]);var VIBE64_PREFERRED_NAME_MAX_LENGTH=80;function normalizePreferredNameDraft(value=``){return String(value||``).normalize(`NFC`).replace(/\s+/gu,` `).trim()}function preferredNameDraftState(value=``){const preferredName=normalizePreferredNameDraft(value);const length=[...preferredName].length;let error=``;if(/\p{Cc}/u.test(preferredName))error=`Name cannot contain control characters.`;else if(length>80)error=`Name cannot exceed ${80} characters.`;return{error,length,preferredName,valid:!error}}var _hoisted_1={key:0,class:`vibe64-auth-settings__provider-attention`,"aria-label":`Needs attention`};var _hoisted_2={key:0,class:`vibe64-personal-profile`,"aria-labelledby":`vibe64-personal-profile-title`};var _hoisted_3={class:`vibe64-personal-profile__actions`};var _sfc_main={__name:`Vibe64AuthSettingsButton`,setup(__props){const accountProviderOptions=Object.freeze([{icon:mdiRobotOutline,id:`ai`,label:`AI Accounts`},{icon:mdiGithub,id:`github`,label:`GitHub`}]);const providerOptions=computed(()=>[...personalProfileAvailable.value?[{icon:mdiAccountOutline,id:`profile`,label:`You`}]:[],...accountProviderOptions]);const dialogOpen=ref(false);const root=ref(null);const theme=useTheme();const{smAndDown,xs}=useDisplay();const appearance=ref(readAppearance());const appearanceChoices=Object.freeze([{icon:mdiWeatherSunny,label:`Light`,value:`light`},{icon:mdiWeatherNight,label:`Dark`,value:`dark`},{icon:mdiMonitor,label:`System`,value:`system`}]);function chooseAppearance(value){if(!value)return;appearance.value=value;theme.change(value);writeAppearance(value)}const selectedProviderId=ref(`ai`);const aiSetup=ref(null);const aiConnectionsBusy=ref(false);const accounts=useVibe64Accounts();const preferredNameField=ref(null);const preferredNameDraft=ref(``);const preferredNameSaving=computed(()=>accounts.savePersonalAiProfileCommand.isRunning===true);const personalProfile=computed(()=>accounts.status.value?.personalProfile||null);const personalProfileAvailable=computed(()=>personalProfile.value?.available===true);const preferredNameValidation=computed(()=>preferredNameDraftState(preferredNameDraft.value));const preferredNameChanged=computed(()=>preferredNameValidation.value.preferredName!==String(personalProfile.value?.preferredName||``));const statusLoaded=computed(()=>{return Boolean(accounts.status.value&&Array.isArray(accounts.status.value.accounts))});const allAccountRows=computed(()=>{return accountRowsForStatus(accounts.status.value,[`github`],{includeFallbackRows:false})});const selectedAccountRows=computed(()=>{return accountRowsForStatus(accounts.status.value,[selectedProviderId.value],{includeFallbackRows:true})});const selectedProvider=computed(()=>{return providerOptions.value.find(provider=>provider.id===selectedProviderId.value)||providerOptions.value[0]});const selectedProviderTitle=computed(()=>{return`${selectedProvider.value.label} Connection`});const selectedProviderLede=computed(()=>{if(selectedProvider.value.id===`github`)return`Configure the GitHub account and Git identity used by this local Vibe64 editor.`;return`Connect the AI accounts used by this Vibe64 editor.`});const credentialsNeedAttention=computed(()=>{if(!statusLoaded.value||aiOnboardingNeeded.value)return false;return allAccountRows.value.some(account=>account.connected!==true)});function normalizeProviderId(providerId=``){const normalized=String(providerId||``).trim();return providerOptions.value.some(provider=>provider.id===normalized)?normalized:``}async function openDialog(options={}){const profileRequested=String(options.section||``).trim()===`profile`;const requestedAi=options.codexReconnectRequired===true?`codex`:String(options.providerId||``).trim();const requestedProviderId=normalizeProviderId(requestedAi)||(requestedAi?`ai`:``);if(requestedProviderId)selectedProviderId.value=requestedProviderId;dialogOpen.value=true;if(profileRequested)await accounts.reloadLocalStatus();else if(options.codexReconnectRequired===true)await accounts.reloadLocalStatus();else if(options.refresh!==false)await accounts.refresh();if(profileRequested&&personalProfileAvailable.value){selectedProviderId.value=`profile`;await focusPreferredName();return}if(requestedProviderId){selectedProviderId.value=requestedProviderId;await nextTick();if(requestedProviderId===`ai`&&requestedAi!==`ai`)aiSetup.value?.openProvider(requestedAi,options);return}selectedProviderId.value=`ai`}async function focusPreferredName(){await nextTick();preferredNameField.value?.focus?.()}async function savePreferredName(){if(preferredNameSaving.value||!preferredNameChanged.value||!preferredNameValidation.value.valid)return;await accounts.savePersonalAiProfile({preferredName:preferredNameValidation.value.preferredName})}function providerNeedsAttention(providerId=``){return allAccountRows.value.some(account=>account.id===providerId&&account.connected!==true)}function handleAccountConnectionsDialogRequest(event){openDialog(event?.detail||{})}function activatorElement(){return root.value?.querySelector(`.vibe64-auth-settings__button`)||null}function redoOnboarding(){requestVibe64AiOnboarding({start:`choose`,redo:true,returnFocus:activatorElement()})}function handleAiOnboardingRequest(event){if(!dialogOpen.value)return;dialogOpen.value=false;if(event?.detail&&!event.detail.returnFocus)event.detail.returnFocus=activatorElement()}let disposeAccountConnectionsDialogRequest=()=>null;let disposeAiOnboardingRequest=()=>null;onMounted(()=>{disposeAccountConnectionsDialogRequest=onVibe64AccountConnectionsDialogRequested(handleAccountConnectionsDialogRequest);disposeAiOnboardingRequest=onVibe64AiOnboardingRequested(handleAiOnboardingRequest)});onBeforeUnmount(()=>{disposeAccountConnectionsDialogRequest();disposeAiOnboardingRequest();aiOnboardingBlocked.value=false});watch(()=>dialogOpen.value&&aiConnectionsBusy.value,blocked=>{aiOnboardingBlocked.value=blocked});watch(()=>personalProfile.value?.preferredName,preferredName=>{preferredNameDraft.value=String(preferredName||``)},{immediate:true});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`div`,{ref_key:`root`,ref:root,class:`vibe64-auth-settings`},[createVNode(unref(AiOnboardingSetUpPill_default)),createVNode(VMenu,{location:`bottom end`},{activator:withCtx(({props:menuProps})=>[createVNode(VBtn,mergeProps(menuProps,{class:[`vibe64-auth-settings__button`,credentialsNeedAttention.value?`vibe64-auth-settings__button--needs-attention`:``],density:`comfortable`,icon:unref(mdiAccountCogOutline),size:`large`,title:`Account`,type:`button`,variant:`tonal`,"aria-label":`Account menu`}),null,16,[`class`,`icon`])]),default:withCtx(()=>[createVNode(VList,{class:`vibe64-auth-settings__menu`,density:`comfortable`},{default:withCtx(()=>[createVNode(VListItem,{"prepend-icon":unref(mdiAccountCogOutline),title:`Account settings`,onClick:_cache[0]||(_cache[0]=$event=>openDialog())},null,8,[`prepend-icon`]),unref(aiOnboardingAvailable)?(openBlock(),createBlock(VListItem,{key:0,"prepend-icon":unref(mdiAutoFix),subtitle:`Choose or switch your AI`,title:`Redo onboarding`,onClick:redoOnboarding},null,8,[`prepend-icon`])):createCommentVNode(``,true)]),_:1})]),_:1}),createVNode(VDialog,{modelValue:dialogOpen.value,"onUpdate:modelValue":_cache[5]||(_cache[5]=$event=>dialogOpen.value=$event),fullscreen:unref(smAndDown),persistent:aiConnectionsBusy.value,"max-width":`1120`,scrollable:``},{default:withCtx(()=>[createVNode(VCard,{class:normalizeClass([`vibe64-auth-settings__dialog`,{"vibe64-auth-settings__dialog--fullscreen":unref(smAndDown)}]),rounded:unref(smAndDown)?0:`lg`},{default:withCtx(()=>[createVNode(VCardTitle,{class:`vibe64-auth-settings__dialog-title`},{default:withCtx(()=>[_cache[6]||(_cache[6]=createBaseVNode(`div`,null,[createBaseVNode(`h2`,null,`Account settings`),createBaseVNode(`p`,null,`Choose how Vibe64 identifies you and connect its coding tools.`)],-1)),createVNode(VBtn,{density:`comfortable`,icon:unref(mdiClose),title:`Close account settings`,disabled:aiConnectionsBusy.value,type:`button`,variant:`text`,"aria-label":`Close account settings`,onClick:_cache[1]||(_cache[1]=$event=>dialogOpen.value=false)},null,8,[`icon`,`disabled`])]),_:1}),createVNode(VTabs,{modelValue:selectedProviderId.value,"onUpdate:modelValue":_cache[2]||(_cache[2]=$event=>selectedProviderId.value=$event),class:`vibe64-auth-settings__provider-tabs`,color:`primary`,density:`comfortable`,grow:unref(xs),"show-arrows":!unref(xs),stacked:unref(xs)},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(providerOptions.value,provider=>{return openBlock(),createBlock(VTab,{key:provider.id,class:`vibe64-auth-settings__provider-tab`,"prepend-icon":provider.icon,value:provider.id,disabled:aiConnectionsBusy.value},{default:withCtx(()=>[createTextVNode(toDisplayString(provider.label)+` `,1),providerNeedsAttention(provider.id)?(openBlock(),createElementBlock(`span`,_hoisted_1)):createCommentVNode(``,true)]),_:2},1032,[`prepend-icon`,`value`,`disabled`])}),128))]),_:1},8,[`modelValue`,`grow`,`show-arrows`,`stacked`]),createVNode(VDivider),createVNode(VCardText,{class:`vibe64-auth-settings__dialog-body`},{default:withCtx(()=>[selectedProviderId.value===`profile`?(openBlock(),createElementBlock(`section`,_hoisted_2,[_cache[7]||(_cache[7]=createBaseVNode(`div`,{class:`vibe64-personal-profile__heading`},[createBaseVNode(`h3`,{id:`vibe64-personal-profile-title`},`Your profile`),createBaseVNode(`p`,null,`You — all projects`)],-1)),createVNode(VTextField,{ref_key:`preferredNameField`,ref:preferredNameField,modelValue:preferredNameDraft.value,"onUpdate:modelValue":_cache[3]||(_cache[3]=$event=>preferredNameDraft.value=$event),"data-vibe64-personal-profile":``,density:`comfortable`,"error-messages":preferredNameValidation.value.error?[preferredNameValidation.value.error]:[],"hide-details":`auto`,label:`What should Vibe64 call you?`,variant:`outlined`,onKeydown:withKeys(withModifiers(savePreferredName,[`prevent`]),[`enter`])},null,8,[`modelValue`,`error-messages`,`onKeydown`]),_cache[8]||(_cache[8]=createBaseVNode(`p`,{class:`vibe64-personal-profile__supporting-text`},` This name is used in Vibe64 welcomes and collaboration cues across this installation. Leave it blank to use your computer account name. `,-1)),createBaseVNode(`div`,_hoisted_3,[createVNode(VBtn,{class:`vibe64-personal-profile__save`,color:`primary`,disabled:preferredNameSaving.value||!preferredNameChanged.value||!preferredNameValidation.value.valid,type:`button`,variant:`flat`,onClick:savePreferredName},{default:withCtx(()=>[createTextVNode(toDisplayString(preferredNameSaving.value?`Saving…`:`Save name`),1)]),_:1},8,[`disabled`])]),_cache[9]||(_cache[9]=createBaseVNode(`div`,{class:`vibe64-personal-profile__heading vibe64-personal-profile__appearance`},[createBaseVNode(`h3`,{id:`vibe64-appearance-title`},`Appearance`),createBaseVNode(`p`,null,`This browser`)],-1)),createVNode(VBtnToggle,{"model-value":appearance.value,"aria-labelledby":`vibe64-appearance-title`,class:`vibe64-personal-profile__appearance-choice`,color:`primary`,"data-vibe64-appearance":``,density:`comfortable`,divided:``,mandatory:``,rounded:`xl`,variant:`outlined`,"onUpdate:modelValue":chooseAppearance},{default:withCtx(()=>[(openBlock(true),createElementBlock(Fragment,null,renderList(unref(appearanceChoices),choice=>{return openBlock(),createBlock(VBtn,{key:choice.value,"prepend-icon":choice.icon,value:choice.value},{default:withCtx(()=>[createTextVNode(toDisplayString(choice.label),1)]),_:2},1032,[`prepend-icon`,`value`])}),128))]),_:1},8,[`model-value`]),_cache[10]||(_cache[10]=createBaseVNode(`p`,{class:`vibe64-personal-profile__supporting-text`},` System follows your device's light or dark setting. `,-1))])):createCommentVNode(``,true),selectedProviderId.value===`ai`?(openBlock(),createBlock(unref(AiSetup_default),{key:1,ref_key:`aiSetup`,ref:aiSetup,inline:``,"can-configure":``,onBusy:_cache[4]||(_cache[4]=$event=>aiConnectionsBusy.value=$event)},null,512)):createCommentVNode(``,true),selectedProviderId.value===`github`?(openBlock(),createBlock(unref(ProviderAccountsSetup_default),{key:2,accounts:unref(accounts),"account-rows":selectedAccountRows.value,"status-loaded":statusLoaded.value,title:selectedProviderTitle.value,lede:selectedProviderLede.value,"needed-label":`Connection needed`,"ready-label":`Connection ready`,"show-continue":false},null,8,[`accounts`,`account-rows`,`status-loaded`,`title`,`lede`])):createCommentVNode(``,true)]),_:1})]),_:1},8,[`class`,`rounded`])]),_:1},8,[`modelValue`,`fullscreen`,`persistent`])],512)}}};var Vibe64AuthSettingsButton_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-06491fb3`]]);export{StudioAppShellLayout_default as n,Vibe64AuthSettingsButton_default as t};
@@ -0,0 +1 @@
1
+ .vibe64-colleague-launcher-target[data-v-8e7b0e92]{flex:none;min-width:48px;height:48px;display:flex}.vibe64-learning-button[data-v-b7f22fcd]{--v64-plate-ink:#1d1600;border-radius:var(--v64-shape-sm);margin-left:var(--v64-space-3);transition:background-color var(--v64-duration-short) var(--v64-ease-standard), border-color var(--v64-duration-short) var(--v64-ease-standard), box-shadow var(--v64-duration-medium) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard), transform var(--v64-duration-short) var(--v64-ease-standard);flex:none;font-family:system-ui,sans-serif;font-size:1.05rem;font-weight:850;line-height:1;position:relative;background:var(--v64-surface-container-low)!important;border:1.5px solid var(--v64-outline)!important;color:var(--v64-on-surface-variant)!important}@media (hover:hover){.vibe64-learning-button[data-v-b7f22fcd]:hover{background:var(--v64-learning-container)!important;border-color:var(--v64-learning-strong)!important;color:var(--v64-on-learning-container)!important}}.vibe64-learning-button[data-v-b7f22fcd]:active{transform:scale(.94)}.vibe64-learning-button--active[data-v-b7f22fcd],.vibe64-learning-button--active[data-v-b7f22fcd]:hover{animation:vibe64-learning-button-pop-b7f22fcd var(--v64-duration-long) var(--v64-ease-emphasized-decelerate);box-shadow:0 0 0 3px var(--v64-learning-glow), var(--v64-elevation-1);background:linear-gradient(150deg, #ffe680 0%, var(--v64-learning) 55%, #f0b400 100%)!important;border-color:var(--v64-plate-ink)!important;color:var(--v64-plate-ink)!important}.vibe64-learning-button[data-v-b7f22fcd]:focus-visible{outline:var(--v64-focus-ring-width) solid var(--v64-focus-ring-color);outline-offset:3px}@keyframes vibe64-learning-button-pop-b7f22fcd{0%{transform:scale(.82)rotate(-8deg)}60%{transform:scale(1.08)rotate(2deg)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.vibe64-learning-button[data-v-b7f22fcd],.vibe64-learning-button--active[data-v-b7f22fcd]{transition:none;animation:none}}@media (width<=600px){.vibe64-learning-button[data-v-b7f22fcd]{height:2.5rem;margin-left:var(--v64-space-1);width:2.5rem}}body.studio-home-shell-active{overflow:hidden}body.studio-home-shell-active .v-application,body.studio-home-shell-active .v-application__wrap{height:100dvh;min-height:100dvh;overflow:hidden}body.studio-home-shell-active .v-main{min-height:0;overflow:hidden}body.studio-home-shell-active .shell-layout__content{box-sizing:border-box;height:calc(100dvh - var(--v-layout-top,0px) - var(--v-layout-bottom,0px));flex-direction:column;min-height:0;padding:.35rem 0 0;display:flex;overflow:hidden}body.studio-home-shell-active .shell-error-host__banners{width:min(30rem,100vw);left:auto;right:0}body.studio-home-shell-active .shell-error-host__banner-stack{width:100%}.studio-app-shell-layout__content[data-v-9bb3215c]{padding:.75rem .75rem 0}.studio-app-shell-layout--fill-viewport[data-v-9bb3215c]{height:100dvh;overflow:hidden}.studio-app-shell-layout__content--fill-viewport[data-v-9bb3215c]{box-sizing:border-box;height:calc(100dvh - var(--v-layout-top,0px) - var(--v-layout-bottom,0px));flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden}.shell-layout__app-bar[data-v-9bb3215c]{border-bottom-color:var(--v64-outline-variant)!important}@media (width<=600px){.studio-app-shell-layout__top-right[data-v-9bb3215c]{gap:0;margin-left:auto}.shell-layout__app-bar .v-spacer[data-v-9bb3215c]{display:none}.studio-app-shell-layout__top-right[data-v-9bb3215c]>button:disabled{width:1rem!important}.studio-app-shell-layout__top-right[data-v-9bb3215c] .vibe64-auth-settings{margin-inline-end:var(--v64-space-1)}.studio-app-shell-layout__top-right[data-v-9bb3215c] .vibe64-auth-settings__button,.studio-app-shell-layout__top-right[data-v-9bb3215c] .vibe64-colleague-launcher-target>.v-btn{flex-basis:2.5rem;min-width:2.5rem;min-height:2.5rem;width:2.5rem!important;height:2.5rem!important}}.studio-app-shell-layout__top-right[data-v-9bb3215c]{flex:none;align-items:center;gap:.25rem;min-width:0;display:flex}.vibe64-auth-settings[data-v-06491fb3]{flex:none;justify-content:center;align-items:center;margin-inline-end:.75rem;display:inline-flex}.vibe64-auth-settings__button[data-v-06491fb3]{border:1px solid var(--studio-control-border,rgba(var(--v-theme-on-surface), .12));box-shadow:none;width:2.75rem;min-width:2.75rem;height:2.75rem;min-height:2.75rem;position:relative;overflow:visible;background:var(--studio-control-rest-bg,rgb(var(--v-theme-surface-variant)))!important;color:var(--studio-control-text,rgb(var(--v-theme-on-surface)))!important}.vibe64-auth-settings__button[data-v-06491fb3] .v-btn__overlay,.vibe64-auth-settings__button[data-v-06491fb3] .v-btn__underlay{border-radius:50%}.vibe64-auth-settings__button--needs-attention[data-v-06491fb3]{border-color:rgb(var(--v-theme-warning));background:rgba(var(--v-theme-warning), .18)!important;color:rgb(var(--v-theme-warning))!important}.vibe64-auth-settings__button--needs-attention[data-v-06491fb3]:after{border-radius:inherit;content:"";opacity:0;pointer-events:none;transform-origin:50%;will-change:opacity, transform;border:2px solid;animation:6s ease-out infinite vibe64-auth-settings-pulse-06491fb3;position:absolute;inset:-.2rem;transform:scale(1)translateZ(0)}.vibe64-auth-settings__dialog[data-v-06491fb3]{flex-direction:column;max-height:min(88vh,54rem);display:flex;overflow:hidden}.vibe64-auth-settings__dialog--fullscreen[data-v-06491fb3]{max-height:none}.vibe64-auth-settings__dialog-title[data-v-06491fb3]{white-space:normal;justify-content:flex-end;align-items:start;gap:1rem;padding:1rem 1rem .75rem;display:flex;overflow:visible}.vibe64-auth-settings__dialog-title>div[data-v-06491fb3]{flex:auto;min-width:0}.vibe64-auth-settings__dialog-title h2[data-v-06491fb3]{letter-spacing:0;margin:0;font-size:1.08rem;font-weight:760;line-height:1.2}.vibe64-auth-settings__dialog-title p[data-v-06491fb3]{color:rgba(var(--v-theme-on-surface), .66);margin:.18rem 0 0;font-size:.86rem;font-weight:400;line-height:1.35}.vibe64-auth-settings__provider-tabs[data-v-06491fb3]{flex:none;padding-inline:.75rem}.vibe64-auth-settings__provider-tab[data-v-06491fb3]{min-width:8.5rem}.vibe64-auth-settings__provider-attention[data-v-06491fb3]{background:rgb(var(--v-theme-warning));border-radius:999px;width:.48rem;height:.48rem;margin-inline-start:.45rem;display:inline-block}.vibe64-auth-settings__dialog-body[data-v-06491fb3]{flex:auto;padding:1rem;overflow:auto}.vibe64-personal-profile__appearance[data-v-06491fb3]{margin-top:1.5rem}.vibe64-personal-profile__appearance-choice[data-v-06491fb3]{margin-top:.5rem}.vibe64-personal-profile[data-v-06491fb3]{gap:1rem;max-width:38rem;display:grid}.vibe64-personal-profile__heading h3[data-v-06491fb3]{margin:0;font-size:1rem;font-weight:720;line-height:1.35}.vibe64-personal-profile__heading p[data-v-06491fb3],.vibe64-personal-profile__supporting-text[data-v-06491fb3]{color:rgba(var(--v-theme-on-surface), .66);margin:.2rem 0 0;font-size:.82rem;line-height:1.4}.vibe64-personal-profile__actions[data-v-06491fb3]{justify-content:flex-end;display:flex}.vibe64-personal-profile__save[data-v-06491fb3]{min-width:7.5rem;min-height:3rem}@media (pointer:coarse){.vibe64-auth-settings__button[data-v-06491fb3],.vibe64-auth-settings__provider-tab[data-v-06491fb3]{min-height:3rem}}@keyframes vibe64-auth-settings-pulse-06491fb3{0%{opacity:.5;transform:scale(1)translateZ(0)}14%{opacity:0;transform:scale(1.34)translateZ(0)}to{opacity:0;transform:scale(1.34)translateZ(0)}}@media (prefers-reduced-motion:reduce){.vibe64-auth-settings__button--needs-attention[data-v-06491fb3]:after{animation:none}}@media (width<=720px){.vibe64-auth-settings__dialog[data-v-06491fb3]{max-height:100vh}.vibe64-auth-settings__provider-tab[data-v-06491fb3]{min-width:7.25rem}.vibe64-auth-settings__dialog-body[data-v-06491fb3]{padding:.85rem}}@media (width<=599.98px){.vibe64-auth-settings__provider-tabs[data-v-06491fb3]{padding-inline:0}.vibe64-auth-settings__provider-tab[data-v-06491fb3]{min-width:0;position:relative}.vibe64-auth-settings__provider-attention[data-v-06491fb3]{margin:0;position:absolute;top:.55rem;left:calc(50% + .6rem)}}
@@ -1 +1 @@
1
- import{E as createTextVNode,On as unref,mt as openBlock,qt as withCtx,v as createBlock,xt as renderSlot}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{g as mdiArrowLeft}from"./mdi-C54lQ0i_.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _sfc_main={__name:`Vibe64DashboardBackButton`,setup(__props){return(_ctx,_cache)=>{return openBlock(),createBlock(VBtn,{class:`dashboard-back`,color:`primary`,"prepend-icon":unref(mdiArrowLeft),rounded:`pill`,type:`button`,variant:`text`},{default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},()=>[_cache[0]||(_cache[0]=createTextVNode(`Back to dashboard`,-1))],true)]),_:3},8,[`prepend-icon`])}}};var Vibe64DashboardBackButton_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c4bce62a`]]);export{Vibe64DashboardBackButton_default as t};
1
+ import{E as createTextVNode,On as unref,mt as openBlock,qt as withCtx,v as createBlock,xt as renderSlot}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{_ as mdiArrowLeft}from"./mdi-yXT-CQ6u.js";import{t as VBtn}from"./VBtn-B2MBK2DL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";var _sfc_main={__name:`Vibe64DashboardBackButton`,setup(__props){return(_ctx,_cache)=>{return openBlock(),createBlock(VBtn,{class:`dashboard-back`,color:`primary`,"prepend-icon":unref(mdiArrowLeft),rounded:`pill`,type:`button`,variant:`text`},{default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},()=>[_cache[0]||(_cache[0]=createTextVNode(`Back to dashboard`,-1))],true)]),_:3},8,[`prepend-icon`])}}};var Vibe64DashboardBackButton_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-c4bce62a`]]);export{Vibe64DashboardBackButton_default as t};
@@ -0,0 +1 @@
1
+ import{D as createVNode,Lt as useSlots,On as unref,Zn as normalizeClass,_ as createBaseVNode,b as createElementBlock,bt as renderList,ct as onMounted,g as computed,gt as provide,it as onBeforeUnmount,mt as openBlock,o as Fragment,qt as withCtx,tr as toDisplayString,v as createBlock,vn as ref,xt as renderSlot,y as createCommentVNode}from"./runtime-core.esm-bundler-DGXg_mpN.js";import{t as useEndpointResource}from"./useEndpointResource-DWoQ2keu.js";import{_ as useRouter,g as useRoute}from"./useApi-BPuI6ZR9-CFWU1m37.js";import{c as projectSlugFromRoute,o as projectAppPath}from"./useRealtimeEvent-Bwapstla.js";import{t as VSelect}from"./VSelect-DL3HaA5m.js";import{n as VList,s as VListItem}from"./VMenu-C_x18lwb.js";import{r as scopedDevelopmentApiUrl}from"./studioUrls-DmMMIScP.js";import{t as VSheet}from"./VSheet-DZWsu0kL.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper-DNW4j-dv.js";import{a as VIBE64_ACTIVE_SESSION_NAV_KEY,o as _sfc_main$2}from"./index-C4K3ntms.js";import{t as getPlacements}from"./placement-NpX2s7u8.js";function normalizeRoutePath(pathValue=``){const path=String(pathValue||``).trim();if(!path||path===`/`)return path||`/`;return path.replace(/\/+$/u,``)}function routePathContainsSection(routePathValue=``,sectionPathValue=``){const routePath=normalizeRoutePath(routePathValue);const sectionPath=normalizeRoutePath(sectionPathValue);return Boolean(sectionPath&&sectionPath!==`/`&&(routePath===sectionPath||routePath.startsWith(`${sectionPath}/`)))}var _hoisted_1$1={key:0,class:`section-container-shell__heading`};var _hoisted_2={key:0,class:`section-container-shell__title`};var _hoisted_3={key:1,class:`text-body-2 text-medium-emphasis mb-0`};var _hoisted_4={class:`section-container-shell__body`};var _hoisted_5=[`data-vibe64-guide-pane`];var _hoisted_6={class:`section-container-shell__content`};var MOBILE_SECTION_MEDIA_QUERY=`(max-width: 760px)`;var _sfc_main$1={__name:`SectionContainerShell`,props:{navigationCollapsed:{type:Boolean,default:false},navigationGuidePane:{type:String,default:``},title:{type:String,default:``},subtitle:{type:String,default:``},mobileSectionLinks:{type:Array,default:()=>[]}},setup(__props){const props=__props;const slots=useSlots();const route=useRoute();const router=useRouter();const mobileSectionLayout=ref(initialMobileSectionLayout());let mobileSectionMediaQuery=null;const resolvedTitle=computed(()=>String(props.title||``).trim());const resolvedSubtitle=computed(()=>String(props.subtitle||``).trim());const hasHeading=computed(()=>Boolean(resolvedTitle.value||resolvedSubtitle.value));const hasTabs=computed(()=>Boolean(slots.tabs));const mobileSectionLinks=computed(()=>{return props.mobileSectionLinks.map(link=>({disabled:link?.disabled===true,icon:String(link?.icon||``),id:String(link?.id||link?.to||link?.label||``),label:String(link?.label||``),to:normalizeRoutePath(link?.to||``)})).filter(link=>Boolean(link.id&&link.label&&link.to))});const mobileSectionsActive=computed(()=>Boolean(mobileSectionLayout.value&&mobileSectionLinks.value.length));const activeMobileSection=computed(()=>{return mobileSectionLinks.value.find(link=>routePathContainsSection(route.path||``,link.to))||null});const activeMobileSectionValue=computed(()=>activeMobileSection.value?.to||null);function initialMobileSectionLayout(){if(typeof window===`undefined`||typeof window.matchMedia!==`function`)return false;return window.matchMedia(MOBILE_SECTION_MEDIA_QUERY).matches}function syncMobileSectionLayout(){mobileSectionLayout.value=Boolean(mobileSectionMediaQuery?.matches)}function selectMobileSection(value=``){const targetPath=normalizeRoutePath(value||``);if(!targetPath||targetPath===activeMobileSectionValue.value)return;const targetLink=mobileSectionLinks.value.find(link=>link.to===targetPath);if(!targetLink||targetLink.disabled)return;router.push(targetLink.to)}onMounted(()=>{if(typeof window===`undefined`||typeof window.matchMedia!==`function`)return;mobileSectionMediaQuery=window.matchMedia(MOBILE_SECTION_MEDIA_QUERY);syncMobileSectionLayout();if(typeof mobileSectionMediaQuery.addEventListener===`function`)mobileSectionMediaQuery.addEventListener(`change`,syncMobileSectionLayout);else mobileSectionMediaQuery.addListener?.(syncMobileSectionLayout)});onBeforeUnmount(()=>{if(typeof mobileSectionMediaQuery?.removeEventListener===`function`)mobileSectionMediaQuery.removeEventListener(`change`,syncMobileSectionLayout);else mobileSectionMediaQuery?.removeListener?.(syncMobileSectionLayout);mobileSectionMediaQuery=null});return(_ctx,_cache)=>{return openBlock(),createElementBlock(`section`,{class:normalizeClass([`section-container-shell`,{"section-container-shell--with-heading":hasHeading.value,"section-container-shell--collapsed":__props.navigationCollapsed}])},[hasHeading.value?(openBlock(),createElementBlock(`header`,_hoisted_1$1,[resolvedTitle.value?(openBlock(),createElementBlock(`h1`,_hoisted_2,toDisplayString(resolvedTitle.value),1)):createCommentVNode(``,true),resolvedSubtitle.value?(openBlock(),createElementBlock(`p`,_hoisted_3,toDisplayString(resolvedSubtitle.value),1)):createCommentVNode(``,true)])):createCommentVNode(``,true),createVNode(VSheet,{rounded:__props.navigationCollapsed?0:`xl`,border:!__props.navigationCollapsed,class:`section-container-shell__panel`},{default:withCtx(()=>[createBaseVNode(`div`,_hoisted_4,[mobileSectionsActive.value&&!__props.navigationCollapsed?(openBlock(),createBlock(VSelect,{key:0,class:`section-container-shell__mobile-select`,"data-vibe64-guide-pane":__props.navigationGuidePane||void 0,"model-value":activeMobileSectionValue.value,items:mobileSectionLinks.value,"item-title":`label`,"item-value":`to`,"item-props":item=>({disabled:item.disabled,prependIcon:item.icon||void 0}),"prepend-inner-icon":activeMobileSection.value?.icon||void 0,label:`Dashboard section`,rounded:`lg`,variant:`outlined`,"hide-details":``,"onUpdate:modelValue":selectMobileSection},null,8,[`data-vibe64-guide-pane`,`model-value`,`items`,`item-props`,`prepend-inner-icon`])):createCommentVNode(``,true),hasTabs.value&&!mobileSectionsActive.value&&!__props.navigationCollapsed?(openBlock(),createElementBlock(`nav`,{key:1,class:`section-container-shell__nav`,"data-vibe64-guide-pane":__props.navigationGuidePane||void 0,"aria-label":`Dashboard sections`},[createVNode(VList,{nav:``,"bg-color":`transparent`,density:`compact`},{default:withCtx(()=>[renderSlot(_ctx.$slots,`tabs`,{},void 0,true)]),_:3})],8,_hoisted_5)):createCommentVNode(``,true),createBaseVNode(`main`,_hoisted_6,[renderSlot(_ctx.$slots,`default`,{},void 0,true)])])]),_:3},8,[`rounded`,`border`])],2)}}};var SectionContainerShell_default=_plugin_vue_export_helper_default(_sfc_main$1,[[`__scopeId`,`data-v-25df3993`]]);function useVibe64DashboardPage({dashboardContext=null}={}){const route=useRoute();const projectSlug=computed(()=>projectSlugFromRoute(route));const projectBasePath=computed(()=>projectAppPath(projectSlug.value));return{dashboardSectionLinks:computed(()=>getPlacements().filter(placement=>placement?.kind===`link`&&placement?.owner===`app-dashboard`&&placement?.target===`page.section-nav`&&dashboardPlacementVisible(placement,dashboardContext)).sort((left,right)=>Number(left?.order||0)-Number(right?.order||0)).map(placement=>({disabled:placement?.props?.disabled===true,icon:placement?.props?.icon||``,id:placement?.id||``,label:placement?.props?.label||``,to:`${projectBasePath.value}${dashboardSectionSuffix(placement)}`})))}}function dashboardPlacementVisible(placement={},dashboardContext=null){const predicate=placement?.props?.visibleWhen;if(typeof predicate!==`function`)return true;const context=typeof dashboardContext===`function`?dashboardContext():dashboardContext?.value??dashboardContext;return predicate(context&&typeof context===`object`?context:{})===true}function activeSessionMobileSectionLinks(activeSessionNav=null){if(!activeSessionNav?.visible||!Array.isArray(activeSessionNav.tools))return[];return activeSessionNav.tools.map(tool=>({disabled:tool?.disabled===true,icon:String(tool?.icon||``),id:`active-session:${String(tool?.id||tool?.to||tool?.label||``)}`,label:String(tool?.label||``),to:String(tool?.to||``)})).filter(tool=>Boolean(tool.id!==`active-session:`&&tool.label&&tool.to))}function dashboardSectionSuffix(placement={}){const suffix=String(placement?.props?.scopedSuffix||placement?.props?.unscopedSuffix||``).trim();if(!suffix)return``;const projectRelativeSuffix=suffix.replace(/^\/+/u,``).replace(/^project\/\[slug\](?=\/|$)/u,``).replace(/^\[slug\](?=\/|$)/u,``).replace(/^\/+/u,``);return projectRelativeSuffix?`/${projectRelativeSuffix}`:``}var _hoisted_1={key:0,class:`vibe64-dashboard-nav-group-label`};var _sfc_main={__name:`Vibe64DashboardShell`,props:{dashboardContext:{default:()=>({}),type:Object},noProject:Boolean,section:{default:``,type:String}},emits:[`select`],setup(__props,{emit:__emit}){const props=__props;const emit=__emit;const route=useRoute();const incomingPath=computed(()=>scopedDevelopmentApiUrl(`/api/vibe64/incoming`,projectSlugFromRoute(route)));const incomingQuery=computed(()=>({sessionId:props.dashboardContext.sessionId,state:`pending`,limit:1}));const incoming=useEndpointResource({path:incomingPath,readQuery:incomingQuery,queryKey:computed(()=>[`vibe64.incoming`,incomingPath.value,`badge`,incomingQuery.value]),enabled:computed(()=>props.dashboardContext.active!==false&&Boolean(props.dashboardContext.sessionId)&&props.dashboardContext.projectContext?.repositoryMode===`github`),queryOptions:{retry:false,staleTime:3e4,refetchInterval:6e4}});const incomingCount=computed(()=>incoming.loadError.value?null:incoming.data.value?.pendingCount??null);provide(`vibe64.incoming.pendingCount`,incomingCount);const githubBrowserOpen=computed(()=>/\/dashboard\/(issues|pull-requests)\/?$/u.test(route.path));const{dashboardSectionLinks}=useVibe64DashboardPage({dashboardContext:()=>props.dashboardContext});const activeSessionNav=computed(()=>{const nav=props.dashboardContext?.activeSessionNav||null;return nav&&typeof nav===`object`?nav:null});const mobileDashboardSectionLinks=computed(()=>props.noProject?[]:[...dashboardSectionLinks.value.map(link=>link.id===`vibe64.incoming.link`&&incomingCount.value>0?{...link,label:`${link.label} (${incomingCount.value})`}:link),...activeSessionMobileSectionLinks(activeSessionNav.value)]);provide(VIBE64_ACTIVE_SESSION_NAV_KEY,activeSessionNav);return(_ctx,_cache)=>{return openBlock(),createBlock(SectionContainerShell_default,{"mobile-section-links":mobileDashboardSectionLinks.value,"navigation-collapsed":githubBrowserOpen.value,"navigation-guide-pane":`dashboard`},{tabs:withCtx(()=>[unref(dashboardSectionLinks).length?(openBlock(),createElementBlock(`span`,_hoisted_1,`Project`)):createCommentVNode(``,true),__props.noProject?(openBlock(true),createElementBlock(Fragment,{key:1},renderList(unref(dashboardSectionLinks),(link,index)=>{return openBlock(),createBlock(VListItem,{key:link.id,active:link.id===__props.section||!__props.section&&index===0,"prepend-icon":link.icon||void 0,title:link.label,"data-dashboard-section":link.id,onClick:$event=>emit(`select`,link.id)},null,8,[`active`,`prepend-icon`,`title`,`data-dashboard-section`,`onClick`])}),128)):(openBlock(),createBlock(unref(_sfc_main$2),{key:2,target:`app-dashboard:primary-menu`,context:__props.dashboardContext},null,8,[`context`])),!__props.noProject?(openBlock(),createBlock(unref(_sfc_main$2),{key:3,target:`app-dashboard:active-session-menu`,context:{activeSessionNav:activeSessionNav.value||{}}},null,8,[`context`])):createCommentVNode(``,true)]),default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},void 0,true)]),_:3},8,[`mobile-section-links`,`navigation-collapsed`])}}};var Vibe64DashboardShell_default=_plugin_vue_export_helper_default(_sfc_main,[[`__scopeId`,`data-v-1c300fc7`]]);export{Vibe64DashboardShell_default as t};
@@ -1 +1 @@
1
- .section-container-shell[data-v-4976d7b0]{grid-template-rows:minmax(0,1fr);gap:.85rem;min-width:0;height:100%;min-height:0;display:grid}.section-container-shell--with-heading[data-v-4976d7b0]{grid-template-rows:auto minmax(0,1fr)}.section-container-shell__heading[data-v-4976d7b0]{min-width:0}.section-container-shell__title[data-v-4976d7b0]{font:var(--v64-type-title-lg);letter-spacing:0;margin:0 0 var(--v64-space-1)}.section-container-shell__panel[data-v-4976d7b0]{background:var(--v64-surface-container-lowest);min-height:0;display:grid;overflow:hidden;border-color:var(--v64-outline-variant)!important}.section-container-shell__body[data-v-4976d7b0]{gap:var(--v64-space-3);height:100%;min-height:0;padding:var(--v64-space-2);grid-template-columns:minmax(10rem,11.5rem) minmax(0,1fr);display:grid;overflow:hidden}.section-container-shell__nav[data-v-4976d7b0]{background:var(--v64-surface-container-low);border-radius:var(--v64-shape-lg);min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-1);overflow-y:auto}.section-container-shell__nav[data-v-4976d7b0] .v-list{gap:2px;padding:0;display:grid}.section-container-shell__nav[data-v-4976d7b0] .v-list-item{border-radius:var(--v64-shape-full);color:var(--v64-on-surface-variant);min-height:40px;padding-inline:var(--v64-space-3) var(--v64-space-4);transition:background-color var(--v64-duration-short) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard);margin:0}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__overlay{display:none}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:not(.v-list-item--active):not(.v-list-item--disabled):hover{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-hover) * 100%), transparent);color:var(--v64-on-surface)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:focus-visible{outline:2px solid var(--v64-primary);outline-offset:-2px}.section-container-shell__nav[data-v-4976d7b0] .v-list-item:not(.v-list-item--disabled):active{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-pressed) * 100% + 4%), transparent)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item.v-list-item--active{background:var(--v64-primary-container);color:var(--v64-on-primary-container);font-weight:650}.section-container-shell__nav[data-v-4976d7b0] .v-list-item.v-list-item--active .v-list-item__prepend>.v-icon{color:var(--v64-primary);opacity:1}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__prepend{margin-inline-end:0}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__prepend>.v-icon{opacity:.86;margin-inline-end:0;font-size:20px}.section-container-shell__nav[data-v-4976d7b0] .v-list-item__spacer{min-width:var(--v64-space-3);width:var(--v64-space-3)}.section-container-shell__nav[data-v-4976d7b0] .v-list-item-title{font:var(--v64-type-label-lg);font-weight:inherit;letter-spacing:0;line-height:1.2}.section-container-shell__content[data-v-4976d7b0]{min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-2) var(--v64-space-4);scrollbar-gutter:stable;padding-left:.75rem;overflow-y:auto}.section-container-shell--collapsed .section-container-shell__body[data-v-4976d7b0]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);padding:0}.section-container-shell--collapsed .section-container-shell__content[data-v-4976d7b0]{padding:0}@media (prefers-reduced-motion:reduce){.section-container-shell__nav[data-v-4976d7b0] .v-list-item{transition:none}}@media (width<=760px){.section-container-shell__body[data-v-4976d7b0]{gap:var(--v64-space-2);padding:var(--v64-space-3) var(--v64-space-3) 0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.section-container-shell__mobile-select[data-v-4976d7b0] .v-field{background:var(--v64-surface-container-low);min-height:48px}.section-container-shell__content[data-v-4976d7b0]{padding:var(--v64-space-1) 0 var(--v64-space-4)}}.vibe64-dashboard-nav-group-label[data-v-afa88091]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.06em;padding:var(--v64-space-1) var(--v64-space-4) var(--v64-space-1);text-transform:uppercase}
1
+ .section-container-shell[data-v-25df3993]{grid-template-rows:minmax(0,1fr);gap:.85rem;min-width:0;height:100%;min-height:0;display:grid}.section-container-shell--with-heading[data-v-25df3993]{grid-template-rows:auto minmax(0,1fr)}.section-container-shell__heading[data-v-25df3993]{min-width:0}.section-container-shell__title[data-v-25df3993]{font:var(--v64-type-title-lg);letter-spacing:0;margin:0 0 var(--v64-space-1)}.section-container-shell__panel[data-v-25df3993]{background:var(--v64-surface-container-lowest);min-height:0;display:grid;overflow:hidden;border-color:var(--v64-outline-variant)!important}.section-container-shell__body[data-v-25df3993]{gap:var(--v64-space-3);height:100%;min-height:0;padding:var(--v64-space-2);grid-template-columns:minmax(10rem,11.5rem) minmax(0,1fr);display:grid;overflow:hidden}.section-container-shell__nav[data-v-25df3993]{background:var(--v64-surface-container-low);border-radius:var(--v64-shape-lg);min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-1);overflow-y:auto}.section-container-shell__nav[data-v-25df3993] .v-list{gap:2px;padding:0;display:grid}.section-container-shell__nav[data-v-25df3993] .v-list-item{border-radius:var(--v64-shape-full);color:var(--v64-on-surface-variant);min-height:40px;padding-inline:var(--v64-space-3) var(--v64-space-4);transition:background-color var(--v64-duration-short) var(--v64-ease-standard), color var(--v64-duration-short) var(--v64-ease-standard);margin:0}.section-container-shell__nav[data-v-25df3993] .v-list-item__overlay{display:none}.section-container-shell__nav[data-v-25df3993] .v-list-item:not(.v-list-item--active):not(.v-list-item--disabled):hover{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-hover) * 100%), transparent);color:var(--v64-on-surface)}.section-container-shell__nav[data-v-25df3993] .v-list-item:focus-visible{outline:2px solid var(--v64-primary);outline-offset:-2px}.section-container-shell__nav[data-v-25df3993] .v-list-item:not(.v-list-item--disabled):active{background:color-mix(in srgb, var(--v64-on-surface) calc(var(--v64-state-pressed) * 100% + 4%), transparent)}.section-container-shell__nav[data-v-25df3993] .v-list-item.v-list-item--active{background:var(--v64-primary-container);color:var(--v64-on-primary-container);font-weight:650}.section-container-shell__nav[data-v-25df3993] .v-list-item.v-list-item--active .v-list-item__prepend>.v-icon{color:var(--v64-primary);opacity:1}.section-container-shell__nav[data-v-25df3993] .v-list-item__prepend{margin-inline-end:0}.section-container-shell__nav[data-v-25df3993] .v-list-item__prepend>.v-icon{opacity:.86;margin-inline-end:0;font-size:20px}.section-container-shell__nav[data-v-25df3993] .v-list-item__spacer{min-width:var(--v64-space-3);width:var(--v64-space-3)}.section-container-shell__nav[data-v-25df3993] .v-list-item-title{font:var(--v64-type-label-lg);font-weight:inherit;letter-spacing:0;line-height:1.2}.section-container-shell__content[data-v-25df3993]{min-width:0;min-height:0;padding:var(--v64-space-2) var(--v64-space-2) var(--v64-space-4);scrollbar-gutter:stable;padding-left:.75rem;overflow-y:auto}.section-container-shell--collapsed .section-container-shell__body[data-v-25df3993]{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);padding:0}.section-container-shell--collapsed .section-container-shell__content[data-v-25df3993]{padding:0}@media (prefers-reduced-motion:reduce){.section-container-shell__nav[data-v-25df3993] .v-list-item{transition:none}}@media (width<=760px){.section-container-shell__body[data-v-25df3993]{gap:var(--v64-space-2);padding:var(--v64-space-3) var(--v64-space-3) 0;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.section-container-shell__mobile-select[data-v-25df3993] .v-field{background:var(--v64-surface-container-low);min-height:48px}.section-container-shell__content[data-v-25df3993]{padding:var(--v64-space-1) 0 var(--v64-space-4)}}.vibe64-dashboard-nav-group-label[data-v-1c300fc7]{color:var(--v64-on-surface-variant);font:var(--v64-type-label-md);letter-spacing:.06em;padding:var(--v64-space-1) var(--v64-space-4) var(--v64-space-1);text-transform:uppercase}