@loicngr/kobo 2.1.15 → 2.1.16
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/AGENTS.md +9 -0
- package/CHANGELOG.md +4 -0
- package/CONFIGURATION.md +13 -1
- package/README.md +3 -1
- package/dist/mcp-server/kobo-tasks-server.js +19 -104
- package/dist/mcp-server/workspace-dialogue-client.js +15 -3
- package/dist/server/db/migrations.js +2 -0
- package/dist/server/db/schema.js +2 -0
- package/dist/server/db/workspace-message-batch-schema.js +9 -0
- package/dist/server/index.js +6 -0
- package/dist/server/routes/mcp.js +69 -3
- package/dist/server/routes/workspace-messages.js +22 -0
- package/dist/server/routes/workspaces.js +58 -3
- package/dist/server/services/agent/orchestrator.js +1 -2
- package/dist/server/services/agent/session-controller.js +4 -1
- package/dist/server/services/pr-checkout-rollback-service.js +51 -0
- package/dist/server/services/pr-checkout-service.js +21 -1
- package/dist/server/services/workspace-creation-mcp-service.js +198 -0
- package/dist/server/services/workspace-group-message-mcp-service.js +58 -0
- package/dist/server/services/workspace-group-message-service.js +182 -0
- package/dist/server/services/workspace-lifecycle-mcp-service.js +72 -0
- package/dist/server/services/workspace-message-service.js +5 -0
- package/dist/shared/pr-checkout-steps.js +86 -0
- package/dist/shared/workspace-creation-tools.js +182 -0
- package/dist/shared/workspace-group-message-tools.js +134 -0
- package/dist/shared/workspace-group-messages.js +27 -0
- package/dist/shared/workspace-lifecycle-tools.js +112 -0
- package/package.json +1 -1
- package/src/client/dist/pwa/assets/ActivityFeed-tJmJhmtl.js +2 -0
- package/src/client/dist/pwa/assets/{AutoLoopFinalReviewSettings-lKjfaC6V.js → AutoLoopFinalReviewSettings-Bbrq02Xt.js} +1 -1
- package/src/client/dist/pwa/assets/{ChangelogPage-BplM7qEB.js → ChangelogPage-BJfkAVYp.js} +1 -1
- package/src/client/dist/pwa/assets/{ComparisonPanel-DxK5v9w_.js → ComparisonPanel-BfP8APKY.js} +1 -1
- package/src/client/dist/pwa/assets/CreatePage-BbtNfo0x.js +2 -0
- package/src/client/dist/pwa/assets/{DashboardPage-BsP-MATS.js → DashboardPage-DZYsAh5y.js} +1 -1
- package/src/client/dist/pwa/assets/DiffViewer-4Q-GJgyA.js +8 -0
- package/src/client/dist/pwa/assets/{DocumentsPanel-CGrf8Q3H.js → DocumentsPanel-BfPlfiwU.js} +1 -1
- package/src/client/dist/pwa/assets/{DrawerToggleButton-BANeLSsR.js → DrawerToggleButton-DG1Qjqk1.js} +1 -1
- package/src/client/dist/pwa/assets/GitPanel-ECnbb_rx.js +3 -0
- package/src/client/dist/pwa/assets/{HealthPage-BVTNx-92.js → HealthPage-_VXG1Zeo.js} +1 -1
- package/src/client/dist/pwa/assets/MainLayout-BH6grTuW.js +2 -0
- package/src/client/dist/pwa/assets/{MainLayout-C6nvIQjU.css → MainLayout-DnmUxNk7.css} +1 -1
- package/src/client/dist/pwa/assets/{MemoryPanel-C71rTpv9.js → MemoryPanel-CVlvGZXZ.js} +1 -1
- package/src/client/dist/pwa/assets/{MemoryProposalList-CoqhUGrv.js → MemoryProposalList-SJsnzUAM.js} +1 -1
- package/src/client/dist/pwa/assets/{QBtnDropdown-U9Ey5W8h.js → QBtnDropdown-DBgGsN-D.js} +1 -1
- package/src/client/dist/pwa/assets/{QExpansionItem-Be_A1MT1.js → QExpansionItem-DKgaMJ_l.js} +1 -1
- package/src/client/dist/pwa/assets/{QScrollArea-D4lYzAPQ.js → QScrollArea-D3OCsq3g.js} +1 -1
- package/src/client/dist/pwa/assets/QSelect-Cb_s_nox.js +1 -0
- package/src/client/dist/pwa/assets/{QTooltip-kStOgY0X.js → QTooltip-X5ps8Opw.js} +1 -1
- package/src/client/dist/pwa/assets/{SchedulePanel-C7nTGdWE.js → SchedulePanel-Ww_FVlW5.js} +1 -1
- package/src/client/dist/pwa/assets/{SearchPage-C6J72pkQ.js → SearchPage-B87WEHf3.js} +1 -1
- package/src/client/dist/pwa/assets/SettingsPage-BAZLGUyg.js +9 -0
- package/src/client/dist/pwa/assets/{SplitWorkspacePage-Bqn4gdVw.js → SplitWorkspacePage-B99AJUbG.js} +1 -1
- package/src/client/dist/pwa/assets/{TerminalPanel-zLeDCReI.js → TerminalPanel-DnA1MXwu.js} +10 -10
- package/src/client/dist/pwa/assets/{ToolCallItem-B8b_Sagj.js → ToolCallItem-2vFggaur.js} +3 -3
- package/src/client/dist/pwa/assets/{TouchPan-Bl8VzIDK.js → TouchPan-BSU3z0aO.js} +1 -1
- package/src/client/dist/pwa/assets/{TourReplayButton-pL0HCboU.js → TourReplayButton-DQwS2xdD.js} +1 -1
- package/src/client/dist/pwa/assets/{WorkspaceAttentionLabels-9Eomx0rQ.js → WorkspaceAttentionLabels-CM1tGDje.js} +1 -1
- package/src/client/dist/pwa/assets/WorkspacePage-CQN6EKIn.js +4 -0
- package/src/client/dist/pwa/assets/{browser-C-PJ4alw.js → browser-DPsupI9Q.js} +1 -1
- package/src/client/dist/pwa/assets/{build-path-tree-SW9rj7B_.js → build-path-tree-CbIdt-p9.js} +1 -1
- package/src/client/dist/pwa/assets/{custom-sounds-toz-4drX.js → custom-sounds-DR68eyF8.js} +1 -1
- package/src/client/dist/pwa/assets/{de-Ddxe8cc6.js → de-D3Ycvf_F.js} +2 -2
- package/src/client/dist/pwa/assets/{editor.api-BJTPhnh8.js → editor.api-DvgAtnOj.js} +1 -1
- package/src/client/dist/pwa/assets/{efforts-BO9xGn9q.js → efforts-nmxfTVQD.js} +1 -1
- package/src/client/dist/pwa/assets/es-TgeS5898.js +17 -0
- package/src/client/dist/pwa/assets/{expand-template-BOZMtWau.js → expand-template-Brn5O4a1.js} +1 -1
- package/src/client/dist/pwa/assets/{format-hEnpRyit.js → format-DfJ3Fv1i.js} +1 -1
- package/src/client/dist/pwa/assets/{formatters-DD_eFc4z.js → formatters-B30bNFhq.js} +1 -1
- package/src/client/dist/pwa/assets/fr-CJafryNb.js +17 -0
- package/src/client/dist/pwa/assets/{freemarker2-B6nUofvT.js → freemarker2-DnZe74tc.js} +1 -1
- package/src/client/dist/pwa/assets/{handlebars-4P3gtM8p.js → handlebars-CmuMfxzO.js} +1 -1
- package/src/client/dist/pwa/assets/{html-C9ZzWo-y.js → html-BD7OJFGX.js} +1 -1
- package/src/client/dist/pwa/assets/i18n-BY4JeBjk.js +1 -0
- package/src/client/dist/pwa/assets/index-C5fAw9ll.js +20 -0
- package/src/client/dist/pwa/assets/it-C5mN8Y61.js +17 -0
- package/src/client/dist/pwa/assets/{javascript-BGEC5ggd.js → javascript-Y-OrgcmW.js} +1 -1
- package/src/client/dist/pwa/assets/{liquid-DNtF630O.js → liquid-BqOkKePH.js} +1 -1
- package/src/client/dist/pwa/assets/{mdx-CICwyOd0.js → mdx-D-58x2h0.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco-contributions-BkuwvgrT.js → monaco-contributions-BW4ZMKO6.js} +1 -1
- package/src/client/dist/pwa/assets/{monaco.contribution-GX8XA-PE.js → monaco.contribution-DJWqzNG-.js} +2 -2
- package/src/client/dist/pwa/assets/network-auth-BGPRhUa6.js +1 -0
- package/src/client/dist/pwa/assets/notify-theme-DZDzfxph.js +1 -0
- package/src/client/dist/pwa/assets/{project-color-B1SMFjSe.js → project-color-gB5yeZPN.js} +1 -1
- package/src/client/dist/pwa/assets/{python-n5uPdTVS.js → python-BkBj1wDC.js} +1 -1
- package/src/client/dist/pwa/assets/{razor-AOj0nsUt.js → razor-DOOJ_0b8.js} +1 -1
- package/src/client/dist/pwa/assets/{typescript-Uhkrqihh.js → typescript-Bheo43G5.js} +1 -1
- package/src/client/dist/pwa/assets/{use-search-index-status-CW0BdpBZ.js → use-search-index-status-CBpnyV-R.js} +1 -1
- package/src/client/dist/pwa/assets/use-tours-BHNasCvg.js +2 -0
- package/src/client/dist/pwa/assets/{use-worktree-restore-BZxibZS5.js → use-worktree-restore-CgABsWno.js} +1 -1
- package/src/client/dist/pwa/assets/{workspace-templates-W557e1-m.js → workspace-templates-BnFkigYg.js} +1 -1
- package/src/client/dist/pwa/assets/{xml-B-hnMgEs.js → xml-vHt2BD26.js} +1 -1
- package/src/client/dist/pwa/assets/{yaml-DqXkTvgm.js → yaml-BvhLPzP9.js} +1 -1
- package/src/client/dist/pwa/index.html +1 -1
- package/src/client/dist/pwa/sw.js +1 -1
- package/src/mcp-server/README.md +130 -12
- package/src/mcp-server/kobo-tasks-server.ts +27 -105
- package/src/mcp-server/workspace-dialogue-client.ts +18 -3
- package/src/client/dist/pwa/assets/ActivityFeed-D7jouiuP.js +0 -2
- package/src/client/dist/pwa/assets/CreatePage-D5ilP5kt.js +0 -2
- package/src/client/dist/pwa/assets/DiffViewer-Cd15vFWj.js +0 -8
- package/src/client/dist/pwa/assets/GitPanel-CEPV5Qw0.js +0 -3
- package/src/client/dist/pwa/assets/MainLayout-DBKtwilW.js +0 -2
- package/src/client/dist/pwa/assets/QSelect-fS0DLOd1.js +0 -1
- package/src/client/dist/pwa/assets/SettingsPage-SuH-aIzv.js +0 -9
- package/src/client/dist/pwa/assets/WorkspacePage-B6clgURl.js +0 -4
- package/src/client/dist/pwa/assets/es-DBJIQeWW.js +0 -17
- package/src/client/dist/pwa/assets/fr-yBzIIPaQ.js +0 -17
- package/src/client/dist/pwa/assets/i18n-2-ULabk2.js +0 -1
- package/src/client/dist/pwa/assets/index-Vk99jtxD.js +0 -20
- package/src/client/dist/pwa/assets/it-D44U-PT1.js +0 -17
- package/src/client/dist/pwa/assets/network-auth-KnWzjYIc.js +0 -1
- package/src/client/dist/pwa/assets/notify-theme-CWuZTz4Z.js +0 -1
- package/src/client/dist/pwa/assets/use-tours-CndFlyL-.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{pt as e,v as t}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as n,J as r,L as i,O as a,P as o,T as s,X as c,Y as l,_ as u,b as d,d as f,f as p,g as m,j as h,l as g,p as _,r as v,u as y,y as b,z as x}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{d as S,m as C,x as ee,y as te,z as w}from"./dom-BtYTvLeN.js";import{c as T,l as E,t as D,u as O}from"./QBtn-BUSdPaf4.js";import{n as k,t as ne}from"./use-dark-BHObfh0O.js";import{C as re,a as ie,b as A,o as ae,v as oe,y as j}from"./detached-fullscreen-Du3TcYdX.js";import{$t as se,K as M,Q as N,Rt as P,Vt as F,Wt as I,Z as ce,Zt as le,gn as L,kt as R,mn as ue,nn as de,pn as fe,q as z,zt as B}from"./index-Vk99jtxD.js";import{t as V}from"./QList-Cx1UfaUm.js";import{i as H}from"./QSelect-fS0DLOd1.js";import{n as U,t as W}from"./QItemSection-MdJ1_ZK7.js";import{i as G}from"./use-tours-CndFlyL-.js";import{t as K}from"./TouchPan-Bl8VzIDK.js";import{t as q}from"./ClosePopup-CRV2hxHS.js";import{t as J}from"./QBanner-BT2ZemYu.js";var pe=150;function me(e,t){e.value!==t&&(e.value=t)}var Y=w({name:`QDrawer`,inheritAttrs:!1,props:{...A,...k,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...j,`onLayout`,`miniState`,`escapeKey`,`pan`],setup(e,{slots:i,emit:l,attrs:u}){let f=d(),p=S(),m=ne(e,p),{preventBodyScroll:_}=de(),{registerTimeout:v,removeTimeout:y}=re(),b=s(ee,te);if(b===te)return console.error(`QDrawer needs to be child of QLayout`),te;let x,w=null,T,E=t(e.behavior===`mobile`||e.behavior!==`desktop`&&b.totalWidth.value<=e.breakpoint),D=g(()=>e.mini&&!E.value),O=g(()=>D.value?e.miniWidth:e.width),k=g(()=>e.overlay||e.miniToOverlay||b.view.value.includes(B.value?`R`:`L`)||p.platform.is.ios&&b.isContainer.value),A=t(e.showIfAbove&&!E.value||e.modelValue===!0),j=g(()=>!e.overlay&&A.value&&!E.value),se=g(()=>e.overlay&&A.value&&!E.value),M=g(()=>!e.persistent&&(E.value||se.value));function N(e,t){if(ce(),e!==!1&&b.animate(),Z(0),E.value){let e=b.instances[J.value];e?.belowBreakpoint.value&&e.hide(!1),Q(1),b.isContainer.value||_(!0)}else Q(0),e!==!1&&Ee(!1);v(()=>{e!==!1&&Ee(!0),t||l(`show`,e)},pe)}function P(e,t){le(),e!==!1&&b.animate(),Q(0),Z(V.value*O.value),Ae(),t?y():v(()=>{l(`hide`,e)},pe)}let{show:F,hide:I}=oe({showing:A,hideOnRouteChange:M,handleShow:N,handleHide:P}),{addToHistory:ce,removeFromHistory:le}=fe(A,I,M),L=g(()=>A.value&&M.value);function R(e){l(`escapeKey`),I(e)}function ue(e){e?ie(R):ae(R)}let z={belowBreakpoint:E,hide:I},B=g(()=>e.side===`right`),V=g(()=>(p.lang.rtl?-1:1)*(B.value?1:-1)),U=t(0),W=t(!1),G=t(!1),q=t(O.value*V.value),J=g(()=>B.value?`left`:`right`),Y=g(()=>A.value&&!E.value&&!e.overlay?e.miniToOverlay?e.miniWidth:O.value:0),he=g(()=>`fullscreen q-drawer__backdrop`+(!A.value&&!W.value?` hidden`:``)),ge=g(()=>({backgroundColor:`rgba(0,0,0,${U.value*.4})`})),_e=g(()=>B.value?b.rows.value.top[2]===`r`:b.rows.value.top[0]===`l`),ve=g(()=>B.value?b.rows.value.bottom[2]===`r`:b.rows.value.bottom[0]===`l`),X=g(()=>{let e={};return b.header.space&&!_e.value&&(k.value?e.top=`${b.header.offset}px`:b.header.space&&(e.top=`${b.header.size}px`)),b.footer.space&&!ve.value&&(k.value?e.bottom=`${b.footer.offset}px`:b.footer.space&&(e.bottom=`${b.footer.size}px`)),e}),ye=g(()=>{let e={"--q-drawer-width":`${O.value}px`,transform:`translateX(${q.value}px)`};return E.value?e:Object.assign(e,X.value)}),be=g(()=>`q-drawer__content fit `+(b.isContainer.value?`overflow-auto`:`scroll`)),xe=g(()=>`q-drawer q-drawer--${e.side}`+(G.value?` q-drawer--mini-animate`:``)+(e.bordered?` q-drawer--bordered`:``)+(m()?` q-drawer--dark q-dark`:``)+(W.value?` no-transition`:A.value?``:` q-layout--prevent-focus`)+(E.value?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${D.value?`mini`:`standard`}`+(k.value||!j.value?` fixed`:``)+(e.overlay||e.miniToOverlay?` q-drawer--on-top`:``)+(_e.value?` q-drawer--top-padding`:``))),Se=g(()=>{let t=p.lang.rtl?e.side:J.value;return[[K,Oe,void 0,{[t]:!0,mouse:!0,prevent:!0}]]}),Ce=g(()=>{let t=p.lang.rtl?J.value:e.side;return[[K,E.value&&!e.noSwipeClose?ke:void 0,void 0,{[t]:!0,mouse:!0}]]}),we=g(()=>{let t=p.lang.rtl?J.value:e.side;return[[K,A.value&&!e.noSwipeBackdrop?ke:void 0,void 0,{[t]:!0,mouse:!0,mouseAllDir:!0,prevent:!0}]]});function Te(){me(E,e.behavior===`mobile`||e.behavior!==`desktop`&&b.totalWidth.value<=e.breakpoint)}r(E,t=>{t?(x=A.value,A.value&&I(!1)):A.value?(Z(0),Q(0),Ae()):!e.overlay&&e.behavior!==`mobile`&&x!==!1&&F(!1)}),r(()=>e.side,(e,t)=>{b.instances[t]===z&&(b.instances[t]=void 0,b[t].space=!1,b[t].offset=0),b.instances[e]=z,b[e].size=O.value,b[e].space=j.value,b[e].offset=Y.value}),r(b.totalWidth,()=>{(b.isContainer.value||!document.qScrollPrevented)&&Te()}),r(()=>e.behavior+e.breakpoint,Te),r(b.isContainer,e=>{A.value&&_(!e),e&&Te()}),r(b.scrollbarWidth,()=>{Z(A.value?0:void 0)}),r(Y,e=>{$(`offset`,e)}),r(j,e=>{l(`onLayout`,e),$(`space`,e)}),r(B,()=>{Z()}),r(O,t=>{Z(),je(e.miniToOverlay,t)}),r(()=>e.miniToOverlay,e=>{je(e,O.value)}),r(()=>p.lang.rtl,()=>{Z()}),r(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue&&(De(),b.animate())}),r(D,e=>{l(`miniState`,e)});function Z(e){e===void 0?a(()=>{e=A.value?0:O.value,Z(V.value*e)}):(b.isContainer.value&&B.value&&(E.value||Math.abs(e)===O.value)&&(e+=V.value*b.scrollbarWidth.value),q.value=e)}function Q(e){U.value=e}function Ee(e){let t=e?`remove`:b.isContainer.value?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function De(){w!==null&&clearTimeout(w),f.proxy&&f.proxy.$el&&f.proxy.$el.classList.add(`q-drawer--mini-animate`),G.value=!0,w=setTimeout(()=>{w=null,G.value=!1,f?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function Oe(e){if(A.value)return;let t=O.value,n=H(e.distance.x,0,t);if(e.isFinal){n>=Math.min(75,t)?(F(),l(`pan`,{type:`open`,stage:`end`})):(b.animate(),Q(0),Z(V.value*t),l(`pan`,{type:`open`,stage:`cancel`})),W.value=!1;return}Z((p.lang.rtl?!B.value:B.value)?Math.max(t-n,0):Math.min(0,n-t)),Q(H(n/t,0,1)),e.isFirst&&(W.value=!0,l(`pan`,{type:`open`,stage:`start`}))}function ke(t){if(!A.value)return;let n=O.value,r=t.direction===e.side,i=(p.lang.rtl?!r:r)?H(t.distance.x,0,n):0;if(t.isFinal){Math.abs(i)<Math.min(75,n)?(b.animate(),Q(1),Z(0),l(`pan`,{type:`close`,stage:`cancel`})):(I(),l(`pan`,{type:`close`,stage:`end`})),W.value=!1;return}Z(V.value*i),Q(H(1-i/n,0,1)),t.isFirst&&(W.value=!0,l(`pan`,{type:`close`,stage:`start`}))}function Ae(){_(!1),Ee(!0)}function $(t,n){b.update(e.side,t,n)}function je(t,n){$(`size`,t?e.miniWidth:n)}return b.instances[e.side]=z,je(e.miniToOverlay,O.value),$(`space`,j.value),$(`offset`,Y.value),e.showIfAbove&&!e.modelValue&&A.value&&e[`onUpdate:modelValue`]!==void 0&&l(`update:modelValue`,!0),o(()=>{l(`onLayout`,j.value),l(`miniState`,D.value),r(L,ue,{immediate:!0}),x=e.showIfAbove;let t=()=>{(A.value?N:P)(!1,!0)};if(b.totalWidth.value!==0){a(t);return}T=r(b.totalWidth,()=>{T(),T=void 0,!A.value&&e.showIfAbove&&!E.value?F(!1):t()})}),h(()=>{T?.(),ae(R),w!==null&&(clearTimeout(w),w=null),A.value&&Ae(),b.instances[e.side]===z&&(b.instances[e.side]=void 0,$(`size`,0),$(`offset`,0),$(`space`,!1))}),()=>{let t=[];E.value&&(e.noSwipeOpen||t.push(c(n(`div`,{key:`open`,class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":`true`}),Se.value)),t.push(c(n(`div`,{ref:`backdrop`,class:he.value,style:ge.value,"aria-hidden":`true`,onClick:I}),we.value)));let r={},a={};for(let e in u)e===`role`||e.startsWith(`aria-`)?r[e]=u[e]:a[e]=u[e];let o=D.value&&i.mini!==void 0,s=[n(`div`,{...a,key:String(o),class:[be.value,u.class]},o?i.mini():C(i.default))];return e.elevated&&A.value&&s.push(n(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),t.push(c(n(`aside`,{ref:`content`,class:xe.value,style:ye.value,...r},s),Ce.value)),n(`div`,{class:`q-drawer-container`},t)}}}),he={class:`text-h6`},ge=[`title`],_e={key:1,class:`row justify-center q-mt-sm`},ve=b({__name:`FolderPickerDialog`,props:{modelValue:{type:Boolean},initialPath:{}},emits:[`update:modelValue`,`select`],setup(n,{emit:a}){let o=n,s=a,d=t(``),h=t(null),g=t([]),b=t(!1),S=t(``);async function C(e){b.value=!0,S.value=``;try{let t=e?`?path=${encodeURIComponent(e)}`:``,n=await F(`/api/fs/list-dirs${t}`),r=await n.json();if(!n.ok){S.value=r?.error??`HTTP ${n.status}`;return}d.value=r.path??``,h.value=r.parent??null,g.value=Array.isArray(r.entries)?r.entries:[]}catch(e){S.value=e instanceof Error?e.message:String(e)}finally{b.value=!1}}function ee(){d.value&&(s(`select`,d.value),s(`update:modelValue`,!1))}return r(()=>o.modelValue,e=>{e&&C(o.initialPath||void 0)}),(t,r)=>(i(),f(se,{"model-value":n.modelValue,"onUpdate:modelValue":r[1]||=e=>t.$emit(`update:modelValue`,e)},{default:l(()=>[u(ue,{class:`text-kobo-1`,style:{"min-width":`480px`,"max-width":`90vw`,background:`var(--kobo-surface)`}},{default:l(()=>[u(L,{class:`row items-center q-pb-none`},{default:l(()=>[y(`div`,he,e(t.$t(`folderPicker.title`)),1),u(G),c(u(D,{flat:``,dense:``,round:``,icon:`close`,color:`kobo-2`},null,512),[[q]])]),_:1}),u(L,null,{default:l(()=>[y(`div`,{class:`text-caption text-kobo-3 ellipsis q-mb-sm`,style:{"font-family":`monospace`},title:d.value},e(d.value||`…`),9,ge),S.value?(i(),f(J,{key:0,dense:``,class:`bg-red-9 text-white q-mb-sm rounded-borders`},{default:l(()=>[m(e(S.value),1)]),_:1})):p(``,!0),u(V,{bordered:``,separator:``,class:`rounded-borders`,style:{"max-height":`320px`,"overflow-y":`auto`}},{default:l(()=>[h.value?c((i(),f(U,{key:0,clickable:``,onClick:r[0]||=e=>C(h.value)},{default:l(()=>[u(W,{avatar:``},{default:l(()=>[u(E,{name:`arrow_upward`,color:`kobo-2`})]),_:1}),u(W,null,{default:l(()=>[m(e(t.$t(`folderPicker.parent`)),1)]),_:1})]),_:1})),[[T]]):p(``,!0),(i(!0),_(v,null,x(g.value,t=>c((i(),f(U,{key:t.path,clickable:``,onClick:e=>C(t.path)},{default:l(()=>[u(W,{avatar:``},{default:l(()=>[u(E,{name:`folder`,color:`amber-6`})]),_:1}),u(W,null,{default:l(()=>[m(e(t.name),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[T]])),128)),!b.value&&g.value.length===0?(i(),f(U,{key:1},{default:l(()=>[u(W,{class:`text-kobo-3`},{default:l(()=>[m(e(t.$t(`folderPicker.empty`)),1)]),_:1})]),_:1})):p(``,!0)]),_:1}),b.value?(i(),_(`div`,_e,[u(O,{size:`20px`,color:`kobo-2`})])):p(``,!0)]),_:1}),u(R,{align:`right`},{default:l(()=>[c(u(D,{flat:``,label:t.$t(`common.cancel`),color:`kobo-2`},null,8,[`label`]),[[q]]),u(D,{flat:``,label:t.$t(`folderPicker.select`),color:`primary`,disable:!d.value||b.value,onClick:ee},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),X=new Map;function ye(e){let t=X.get(e);t&&URL.revokeObjectURL(t),X.delete(e)}async function be(e){if(!X.has(e))try{let t=await F(M(e));if(!t.ok)throw await I(t);let n=URL.createObjectURL(await t.blob());if(X.has(e)||!z(e)){URL.revokeObjectURL(n);return}X.set(e,n),ce(e,n)}catch(e){console.error(`[custom-sounds store] preload failed:`,e)}}var xe=le(`customSounds`,{state:()=>({sounds:[],loaded:!1,busy:!1}),getters:{options:e=>e.sounds.map(e=>({label:e.name,value:e.reference}))},actions:{apply(e){this.sounds=e,N(e.map(e=>e.reference));for(let t of X.keys())e.some(e=>e.reference===t)||ye(t);for(let t of e)be(t.reference)},async fetchSounds(){if(!this.busy){this.busy=!0;try{this.apply((await B(`/api/sounds`)).sounds),this.loaded=!0}catch(e){console.error(`[custom-sounds store] fetchSounds failed:`,e)}finally{this.busy=!1}}},async uploadSound(e){let t=new FormData;t.append(`sound`,e),this.busy=!0;try{let e=await B(`/api/sounds`,{method:`POST`,body:t});return this.apply([...this.sounds,e]),e}finally{this.busy=!1}},async removeSound(e){this.busy=!0;try{await B(`/api/sounds/${encodeURIComponent(e)}`,{method:`DELETE`})}catch(e){if(!(e instanceof P)||e.status!==404)throw e}finally{this.busy=!1}this.apply(this.sounds.filter(t=>t.id!==e))}}});export{ve as n,Y as r,xe as t};
|
|
1
|
+
import{pt as e,v as t}from"./reactivity.esm-bundler-DY1JkAEA.js";import{C as n,J as r,L as i,O as a,P as o,T as s,X as c,Y as l,_ as u,b as d,d as f,f as p,g as m,j as h,l as g,p as _,r as v,u as y,y as b,z as x}from"./runtime-core.esm-bundler-Bqg71Vll.js";import{d as S,m as C,x as ee,y as te,z as w}from"./dom-BtYTvLeN.js";import{c as T,l as E,t as D,u as O}from"./QBtn-BUSdPaf4.js";import{n as k,t as ne}from"./use-dark-BHObfh0O.js";import{C as re,a as ie,b as A,o as ae,v as oe,y as j}from"./detached-fullscreen-Du3TcYdX.js";import{At as se,Bt as M,Gt as N,Ht as P,K as F,Q as I,Qt as ce,Z as le,_n as L,en as R,hn as ue,mn as de,q as z,rn as fe,zt as B}from"./index-C5fAw9ll.js";import{t as V}from"./QList-Cx1UfaUm.js";import{i as H}from"./QSelect-Cb_s_nox.js";import{n as U,t as W}from"./QItemSection-MdJ1_ZK7.js";import{i as G}from"./use-tours-BHNasCvg.js";import{t as K}from"./TouchPan-BSU3z0aO.js";import{t as q}from"./ClosePopup-CRV2hxHS.js";import{t as J}from"./QBanner-BT2ZemYu.js";var pe=150;function me(e,t){e.value!==t&&(e.value=t)}var Y=w({name:`QDrawer`,inheritAttrs:!1,props:{...A,...k,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...j,`onLayout`,`miniState`,`escapeKey`,`pan`],setup(e,{slots:i,emit:l,attrs:u}){let f=d(),p=S(),m=ne(e,p),{preventBodyScroll:_}=fe(),{registerTimeout:v,removeTimeout:y}=re(),b=s(ee,te);if(b===te)return console.error(`QDrawer needs to be child of QLayout`),te;let x,w=null,T,E=t(e.behavior===`mobile`||e.behavior!==`desktop`&&b.totalWidth.value<=e.breakpoint),D=g(()=>e.mini&&!E.value),O=g(()=>D.value?e.miniWidth:e.width),k=g(()=>e.overlay||e.miniToOverlay||b.view.value.includes(B.value?`R`:`L`)||p.platform.is.ios&&b.isContainer.value),A=t(e.showIfAbove&&!E.value||e.modelValue===!0),j=g(()=>!e.overlay&&A.value&&!E.value),se=g(()=>e.overlay&&A.value&&!E.value),M=g(()=>!e.persistent&&(E.value||se.value));function N(e,t){if(ce(),e!==!1&&b.animate(),Z(0),E.value){let e=b.instances[J.value];e?.belowBreakpoint.value&&e.hide(!1),Q(1),b.isContainer.value||_(!0)}else Q(0),e!==!1&&Ee(!1);v(()=>{e!==!1&&Ee(!0),t||l(`show`,e)},pe)}function P(e,t){le(),e!==!1&&b.animate(),Q(0),Z(V.value*O.value),Ae(),t?y():v(()=>{l(`hide`,e)},pe)}let{show:F,hide:I}=oe({showing:A,hideOnRouteChange:M,handleShow:N,handleHide:P}),{addToHistory:ce,removeFromHistory:le}=de(A,I,M),L=g(()=>A.value&&M.value);function R(e){l(`escapeKey`),I(e)}function ue(e){e?ie(R):ae(R)}let z={belowBreakpoint:E,hide:I},B=g(()=>e.side===`right`),V=g(()=>(p.lang.rtl?-1:1)*(B.value?1:-1)),U=t(0),W=t(!1),G=t(!1),q=t(O.value*V.value),J=g(()=>B.value?`left`:`right`),Y=g(()=>A.value&&!E.value&&!e.overlay?e.miniToOverlay?e.miniWidth:O.value:0),he=g(()=>`fullscreen q-drawer__backdrop`+(!A.value&&!W.value?` hidden`:``)),ge=g(()=>({backgroundColor:`rgba(0,0,0,${U.value*.4})`})),_e=g(()=>B.value?b.rows.value.top[2]===`r`:b.rows.value.top[0]===`l`),ve=g(()=>B.value?b.rows.value.bottom[2]===`r`:b.rows.value.bottom[0]===`l`),X=g(()=>{let e={};return b.header.space&&!_e.value&&(k.value?e.top=`${b.header.offset}px`:b.header.space&&(e.top=`${b.header.size}px`)),b.footer.space&&!ve.value&&(k.value?e.bottom=`${b.footer.offset}px`:b.footer.space&&(e.bottom=`${b.footer.size}px`)),e}),ye=g(()=>{let e={"--q-drawer-width":`${O.value}px`,transform:`translateX(${q.value}px)`};return E.value?e:Object.assign(e,X.value)}),be=g(()=>`q-drawer__content fit `+(b.isContainer.value?`overflow-auto`:`scroll`)),xe=g(()=>`q-drawer q-drawer--${e.side}`+(G.value?` q-drawer--mini-animate`:``)+(e.bordered?` q-drawer--bordered`:``)+(m()?` q-drawer--dark q-dark`:``)+(W.value?` no-transition`:A.value?``:` q-layout--prevent-focus`)+(E.value?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${D.value?`mini`:`standard`}`+(k.value||!j.value?` fixed`:``)+(e.overlay||e.miniToOverlay?` q-drawer--on-top`:``)+(_e.value?` q-drawer--top-padding`:``))),Se=g(()=>{let t=p.lang.rtl?e.side:J.value;return[[K,Oe,void 0,{[t]:!0,mouse:!0,prevent:!0}]]}),Ce=g(()=>{let t=p.lang.rtl?J.value:e.side;return[[K,E.value&&!e.noSwipeClose?ke:void 0,void 0,{[t]:!0,mouse:!0}]]}),we=g(()=>{let t=p.lang.rtl?J.value:e.side;return[[K,A.value&&!e.noSwipeBackdrop?ke:void 0,void 0,{[t]:!0,mouse:!0,mouseAllDir:!0,prevent:!0}]]});function Te(){me(E,e.behavior===`mobile`||e.behavior!==`desktop`&&b.totalWidth.value<=e.breakpoint)}r(E,t=>{t?(x=A.value,A.value&&I(!1)):A.value?(Z(0),Q(0),Ae()):!e.overlay&&e.behavior!==`mobile`&&x!==!1&&F(!1)}),r(()=>e.side,(e,t)=>{b.instances[t]===z&&(b.instances[t]=void 0,b[t].space=!1,b[t].offset=0),b.instances[e]=z,b[e].size=O.value,b[e].space=j.value,b[e].offset=Y.value}),r(b.totalWidth,()=>{(b.isContainer.value||!document.qScrollPrevented)&&Te()}),r(()=>e.behavior+e.breakpoint,Te),r(b.isContainer,e=>{A.value&&_(!e),e&&Te()}),r(b.scrollbarWidth,()=>{Z(A.value?0:void 0)}),r(Y,e=>{$(`offset`,e)}),r(j,e=>{l(`onLayout`,e),$(`space`,e)}),r(B,()=>{Z()}),r(O,t=>{Z(),je(e.miniToOverlay,t)}),r(()=>e.miniToOverlay,e=>{je(e,O.value)}),r(()=>p.lang.rtl,()=>{Z()}),r(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue&&(De(),b.animate())}),r(D,e=>{l(`miniState`,e)});function Z(e){e===void 0?a(()=>{e=A.value?0:O.value,Z(V.value*e)}):(b.isContainer.value&&B.value&&(E.value||Math.abs(e)===O.value)&&(e+=V.value*b.scrollbarWidth.value),q.value=e)}function Q(e){U.value=e}function Ee(e){let t=e?`remove`:b.isContainer.value?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function De(){w!==null&&clearTimeout(w),f.proxy&&f.proxy.$el&&f.proxy.$el.classList.add(`q-drawer--mini-animate`),G.value=!0,w=setTimeout(()=>{w=null,G.value=!1,f?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function Oe(e){if(A.value)return;let t=O.value,n=H(e.distance.x,0,t);if(e.isFinal){n>=Math.min(75,t)?(F(),l(`pan`,{type:`open`,stage:`end`})):(b.animate(),Q(0),Z(V.value*t),l(`pan`,{type:`open`,stage:`cancel`})),W.value=!1;return}Z((p.lang.rtl?!B.value:B.value)?Math.max(t-n,0):Math.min(0,n-t)),Q(H(n/t,0,1)),e.isFirst&&(W.value=!0,l(`pan`,{type:`open`,stage:`start`}))}function ke(t){if(!A.value)return;let n=O.value,r=t.direction===e.side,i=(p.lang.rtl?!r:r)?H(t.distance.x,0,n):0;if(t.isFinal){Math.abs(i)<Math.min(75,n)?(b.animate(),Q(1),Z(0),l(`pan`,{type:`close`,stage:`cancel`})):(I(),l(`pan`,{type:`close`,stage:`end`})),W.value=!1;return}Z(V.value*i),Q(H(1-i/n,0,1)),t.isFirst&&(W.value=!0,l(`pan`,{type:`close`,stage:`start`}))}function Ae(){_(!1),Ee(!0)}function $(t,n){b.update(e.side,t,n)}function je(t,n){$(`size`,t?e.miniWidth:n)}return b.instances[e.side]=z,je(e.miniToOverlay,O.value),$(`space`,j.value),$(`offset`,Y.value),e.showIfAbove&&!e.modelValue&&A.value&&e[`onUpdate:modelValue`]!==void 0&&l(`update:modelValue`,!0),o(()=>{l(`onLayout`,j.value),l(`miniState`,D.value),r(L,ue,{immediate:!0}),x=e.showIfAbove;let t=()=>{(A.value?N:P)(!1,!0)};if(b.totalWidth.value!==0){a(t);return}T=r(b.totalWidth,()=>{T(),T=void 0,!A.value&&e.showIfAbove&&!E.value?F(!1):t()})}),h(()=>{T?.(),ae(R),w!==null&&(clearTimeout(w),w=null),A.value&&Ae(),b.instances[e.side]===z&&(b.instances[e.side]=void 0,$(`size`,0),$(`offset`,0),$(`space`,!1))}),()=>{let t=[];E.value&&(e.noSwipeOpen||t.push(c(n(`div`,{key:`open`,class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":`true`}),Se.value)),t.push(c(n(`div`,{ref:`backdrop`,class:he.value,style:ge.value,"aria-hidden":`true`,onClick:I}),we.value)));let r={},a={};for(let e in u)e===`role`||e.startsWith(`aria-`)?r[e]=u[e]:a[e]=u[e];let o=D.value&&i.mini!==void 0,s=[n(`div`,{...a,key:String(o),class:[be.value,u.class]},o?i.mini():C(i.default))];return e.elevated&&A.value&&s.push(n(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),t.push(c(n(`aside`,{ref:`content`,class:xe.value,style:ye.value,...r},s),Ce.value)),n(`div`,{class:`q-drawer-container`},t)}}}),he={class:`text-h6`},ge=[`title`],_e={key:1,class:`row justify-center q-mt-sm`},ve=b({__name:`FolderPickerDialog`,props:{modelValue:{type:Boolean},initialPath:{}},emits:[`update:modelValue`,`select`],setup(n,{emit:a}){let o=n,s=a,d=t(``),h=t(null),g=t([]),b=t(!1),S=t(``);async function C(e){b.value=!0,S.value=``;try{let t=e?`?path=${encodeURIComponent(e)}`:``,n=await P(`/api/fs/list-dirs${t}`),r=await n.json();if(!n.ok){S.value=r?.error??`HTTP ${n.status}`;return}d.value=r.path??``,h.value=r.parent??null,g.value=Array.isArray(r.entries)?r.entries:[]}catch(e){S.value=e instanceof Error?e.message:String(e)}finally{b.value=!1}}function ee(){d.value&&(s(`select`,d.value),s(`update:modelValue`,!1))}return r(()=>o.modelValue,e=>{e&&C(o.initialPath||void 0)}),(t,r)=>(i(),f(R,{"model-value":n.modelValue,"onUpdate:modelValue":r[1]||=e=>t.$emit(`update:modelValue`,e)},{default:l(()=>[u(ue,{class:`text-kobo-1`,style:{"min-width":`480px`,"max-width":`90vw`,background:`var(--kobo-surface)`}},{default:l(()=>[u(L,{class:`row items-center q-pb-none`},{default:l(()=>[y(`div`,he,e(t.$t(`folderPicker.title`)),1),u(G),c(u(D,{flat:``,dense:``,round:``,icon:`close`,color:`kobo-2`},null,512),[[q]])]),_:1}),u(L,null,{default:l(()=>[y(`div`,{class:`text-caption text-kobo-3 ellipsis q-mb-sm`,style:{"font-family":`monospace`},title:d.value},e(d.value||`…`),9,ge),S.value?(i(),f(J,{key:0,dense:``,class:`bg-red-9 text-white q-mb-sm rounded-borders`},{default:l(()=>[m(e(S.value),1)]),_:1})):p(``,!0),u(V,{bordered:``,separator:``,class:`rounded-borders`,style:{"max-height":`320px`,"overflow-y":`auto`}},{default:l(()=>[h.value?c((i(),f(U,{key:0,clickable:``,onClick:r[0]||=e=>C(h.value)},{default:l(()=>[u(W,{avatar:``},{default:l(()=>[u(E,{name:`arrow_upward`,color:`kobo-2`})]),_:1}),u(W,null,{default:l(()=>[m(e(t.$t(`folderPicker.parent`)),1)]),_:1})]),_:1})),[[T]]):p(``,!0),(i(!0),_(v,null,x(g.value,t=>c((i(),f(U,{key:t.path,clickable:``,onClick:e=>C(t.path)},{default:l(()=>[u(W,{avatar:``},{default:l(()=>[u(E,{name:`folder`,color:`amber-6`})]),_:1}),u(W,null,{default:l(()=>[m(e(t.name),1)]),_:2},1024)]),_:2},1032,[`onClick`])),[[T]])),128)),!b.value&&g.value.length===0?(i(),f(U,{key:1},{default:l(()=>[u(W,{class:`text-kobo-3`},{default:l(()=>[m(e(t.$t(`folderPicker.empty`)),1)]),_:1})]),_:1})):p(``,!0)]),_:1}),b.value?(i(),_(`div`,_e,[u(O,{size:`20px`,color:`kobo-2`})])):p(``,!0)]),_:1}),u(se,{align:`right`},{default:l(()=>[c(u(D,{flat:``,label:t.$t(`common.cancel`),color:`kobo-2`},null,8,[`label`]),[[q]]),u(D,{flat:``,label:t.$t(`folderPicker.select`),color:`primary`,disable:!d.value||b.value,onClick:ee},null,8,[`label`,`disable`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),X=new Map;function ye(e){let t=X.get(e);t&&URL.revokeObjectURL(t),X.delete(e)}async function be(e){if(!X.has(e))try{let t=await P(F(e));if(!t.ok)throw await N(t);let n=URL.createObjectURL(await t.blob());if(X.has(e)||!z(e)){URL.revokeObjectURL(n);return}X.set(e,n),le(e,n)}catch(e){console.error(`[custom-sounds store] preload failed:`,e)}}var xe=ce(`customSounds`,{state:()=>({sounds:[],loaded:!1,busy:!1}),getters:{options:e=>e.sounds.map(e=>({label:e.name,value:e.reference}))},actions:{apply(e){this.sounds=e,I(e.map(e=>e.reference));for(let t of X.keys())e.some(e=>e.reference===t)||ye(t);for(let t of e)be(t.reference)},async fetchSounds(){if(!this.busy){this.busy=!0;try{this.apply((await M(`/api/sounds`)).sounds),this.loaded=!0}catch(e){console.error(`[custom-sounds store] fetchSounds failed:`,e)}finally{this.busy=!1}}},async uploadSound(e){let t=new FormData;t.append(`sound`,e),this.busy=!0;try{let e=await M(`/api/sounds`,{method:`POST`,body:t});return this.apply([...this.sounds,e]),e}finally{this.busy=!1}},async removeSound(e){this.busy=!0;try{await M(`/api/sounds/${encodeURIComponent(e)}`,{method:`DELETE`})}catch(e){if(!(e instanceof B)||e.status!==404)throw e}finally{this.busy=!1}this.apply(this.sounds.filter(t=>t.id!==e))}}});export{ve as n,Y as r,xe as t};
|