contentrain 0.1.0 → 0.1.4
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/README.md +10 -3
- package/dist/index.mjs +2 -1
- package/dist/serve-ui/assets/{AgentPromptGroup.vue_vue_type_script_setup_true_lang-Dy-5bpEY.js → AgentPromptGroup.vue_vue_type_script_setup_true_lang-Ulb-9Tr3.js} +1 -1
- package/dist/serve-ui/assets/AppLayout-C91DN08z.js +21 -0
- package/dist/serve-ui/assets/{BranchDetailPage-DzSu3JlE.js → BranchDetailPage-BokOnhE7.js} +1 -1
- package/dist/serve-ui/assets/{BranchesPage-ZSG-l44J.js → BranchesPage-CSwikNkd.js} +1 -1
- package/dist/serve-ui/assets/{CollapsibleTrigger.vue_vue_type_script_setup_true_lang-C4oejwcu.js → CollapsibleTrigger.vue_vue_type_script_setup_true_lang-BRzXVXDG.js} +1 -1
- package/dist/serve-ui/assets/{Collection-zzx9pNd2.js → Collection-DTB4xCCE.js} +1 -1
- package/dist/serve-ui/assets/ConfigProvider-Dvd7YoEV.js +1 -0
- package/dist/serve-ui/assets/ContentListPage-DF-LjAaS.js +109 -0
- package/dist/serve-ui/assets/ContentListPage-tCu3OQw5.css +1 -0
- package/dist/serve-ui/assets/{ContentPage-4sQsAlY2.js → ContentPage-BABg8pgn.js} +1 -1
- package/dist/serve-ui/assets/{DashboardPage-CZDlnvAE.js → DashboardPage-BFLFEJNZ.js} +1 -1
- package/dist/serve-ui/assets/{DialogTitle.vue_vue_type_script_setup_true_lang-CBu_dmA6.js → DialogTitle.vue_vue_type_script_setup_true_lang-2sQAJn_Y.js} +1 -1
- package/dist/serve-ui/assets/{Input.vue_vue_type_script_setup_true_lang-otPltlZG.js → Input.vue_vue_type_script_setup_true_lang-BveqfZsR.js} +1 -1
- package/dist/serve-ui/assets/{ModelDetailPage-BMquKCtH.js → ModelDetailPage-_TIV9itx.js} +1 -1
- package/dist/serve-ui/assets/{ModelsPage-C_K-aWXf.js → ModelsPage-DrQemHQ-.js} +1 -1
- package/dist/serve-ui/assets/{NormalizePage-CHkT6yLV.js → NormalizePage-Cde8vdk2.js} +1 -1
- package/dist/serve-ui/assets/{PageHeader.vue_vue_type_script_setup_true_lang-C7aWxNSw.js → PageHeader.vue_vue_type_script_setup_true_lang-CEnjONvd.js} +1 -1
- package/dist/serve-ui/assets/{Presence-cbB6AqkQ.js → Presence-BXKCIfUk.js} +1 -1
- package/dist/serve-ui/assets/{Separator.vue_vue_type_script_setup_true_lang-fePFl24S.js → Separator.vue_vue_type_script_setup_true_lang-1pFZ2PR2.js} +1 -1
- package/dist/serve-ui/assets/{StudioHint.vue_vue_type_script_setup_true_lang-B45TG2r1.js → StudioHint.vue_vue_type_script_setup_true_lang-C6JN5tPq.js} +1 -1
- package/dist/serve-ui/assets/{TrustBadge.vue_vue_type_script_setup_true_lang-CgoQGS6k.js → TrustBadge.vue_vue_type_script_setup_true_lang-KRiTnLVk.js} +1 -1
- package/dist/serve-ui/assets/{ValidatePage-BW8DO6WC.js → ValidatePage-DRFAySNR.js} +1 -1
- package/dist/serve-ui/assets/{arrow-down-DqOfGL7C.js → arrow-down-BAJwpryD.js} +1 -1
- package/dist/serve-ui/assets/{arrow-left-BRvgeveW.js → arrow-left-DANf_wrK.js} +1 -1
- package/dist/serve-ui/assets/{book-marked-D8StxRZP.js → book-marked-DS8FXgjz.js} +1 -1
- package/dist/serve-ui/assets/{book-open-BrGAe3tk.js → book-open-DnH5T78M.js} +1 -1
- package/dist/serve-ui/assets/{box-7olVZr5D.js → box-UJk5SvJJ.js} +1 -1
- package/dist/serve-ui/assets/{chevron-down-B9YdCtsj.js → chevron-down-C1nYx5Eu.js} +1 -1
- package/dist/serve-ui/assets/{chevron-right-DFKsmZVd.js → chevron-right-XnJVrezx.js} +1 -1
- package/dist/serve-ui/assets/{content-BQE3NEm5.js → content-Ctqretwl.js} +1 -1
- package/dist/serve-ui/assets/{database-BGEFn4Oq.js → database-Wd_i2bM1.js} +1 -1
- package/dist/serve-ui/assets/{file-code-BGiS4dun.js → file-code-ScWZN40B.js} +1 -1
- package/dist/serve-ui/assets/{file-text-BDHXQ95W.js → file-text-J3Wzwieh.js} +1 -1
- package/dist/serve-ui/assets/{git-branch-DdE7bk9-.js → git-branch-DqEFTZDt.js} +1 -1
- package/dist/serve-ui/assets/{git-merge-iStuJS69.js → git-merge-Bmz-MVBm.js} +1 -1
- package/dist/serve-ui/assets/{hash-B-ibLpM1.js → hash-pCwLSzjB.js} +1 -1
- package/dist/serve-ui/assets/index-CG5NtNtt.css +1 -0
- package/dist/serve-ui/assets/{index-WHgvdYOs.js → index-De_z0714.js} +1 -1
- package/dist/serve-ui/assets/{index-CoUshYEB.js → index-RDdffBTh.js} +2 -2
- package/dist/serve-ui/assets/{languages-BTcd2Rl1.js → languages-CQqNMim-.js} +1 -1
- package/dist/serve-ui/assets/{plus-D8Nd3YnG.js → plus-Cw1OnTR2.js} +1 -1
- package/dist/serve-ui/assets/{project-B1qSm0Fz.js → project-BlZcHJw6.js} +1 -1
- package/dist/serve-ui/assets/{scan-search-DGPL_VJu.js → scan-search-UJ-_oiOR.js} +1 -1
- package/dist/serve-ui/assets/{settings-DL-0RaxD.js → settings-Dnm4yTIj.js} +1 -1
- package/dist/serve-ui/assets/{shield-check-CUL7KkSA.js → shield-check-B67ELGUT.js} +1 -1
- package/dist/serve-ui/assets/{trash-2-83QhL6-T.js → trash-2-B1QgZW1G.js} +1 -1
- package/dist/serve-ui/assets/useDirection-B4S5kPsI.js +1 -0
- package/dist/serve-ui/assets/{useId-C0uR6mdj.js → useId-CPFWZ4Bo.js} +1 -1
- package/dist/serve-ui/assets/{useNonce-DTGvzOJz.js → useNonce-BffIzuhE.js} +1 -1
- package/dist/serve-ui/assets/{useWatch-COpVIQvm.js → useWatch-B2FLRWr8.js} +1 -1
- package/dist/serve-ui/index.html +2 -2
- package/package.json +12 -8
- package/dist/serve-ui/assets/AppLayout-CJFq2ApF.js +0 -16
- package/dist/serve-ui/assets/ConfigProvider-BGjDLViI.js +0 -1
- package/dist/serve-ui/assets/ContentListPage-DTFaQB8N.js +0 -51
- package/dist/serve-ui/assets/ContentListPage-vXxAeSg8.css +0 -1
- package/dist/serve-ui/assets/index-C-RjMzFm.css +0 -1
- package/dist/serve-ui/assets/useDirection-Cd3C7VdT.js +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
# `contentrain`
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/contentrain)
|
|
4
|
+
[](https://github.com/Contentrain/ai/tree/main/packages/cli)
|
|
5
|
+
|
|
3
6
|
CLI for Contentrain.
|
|
4
7
|
|
|
5
8
|
`contentrain` is the local operations surface for a Contentrain project:
|
|
@@ -13,9 +16,9 @@ CLI for Contentrain.
|
|
|
13
16
|
|
|
14
17
|
This package is the human-facing companion to:
|
|
15
18
|
|
|
16
|
-
- [`@contentrain/mcp`](https://github.com/
|
|
17
|
-
- [`@contentrain/query`](https://github.com/
|
|
18
|
-
- [`@contentrain/rules`](https://github.com/
|
|
19
|
+
- [`@contentrain/mcp`](https://github.com/Contentrain/ai/tree/main/packages/mcp) for deterministic content operations
|
|
20
|
+
- [`@contentrain/query`](https://github.com/Contentrain/ai/tree/main/packages/sdk/js) for generated runtime queries
|
|
21
|
+
- [`@contentrain/rules`](https://github.com/Contentrain/ai/tree/main/packages/rules) and [`@contentrain/skills`](https://github.com/Contentrain/ai/tree/main/packages/skills) for agent guidance
|
|
19
22
|
|
|
20
23
|
## 🚀 Install
|
|
21
24
|
|
|
@@ -157,6 +160,10 @@ to understand:
|
|
|
157
160
|
|
|
158
161
|
If the target file already exists, Contentrain appends its rules instead of overwriting unrelated content where possible.
|
|
159
162
|
|
|
163
|
+
## 📚 Documentation
|
|
164
|
+
|
|
165
|
+
Full documentation at **[ai.contentrain.io/packages/cli](https://ai.contentrain.io/packages/cli)**.
|
|
166
|
+
|
|
160
167
|
## 🛠 Development
|
|
161
168
|
|
|
162
169
|
From the monorepo root:
|
package/dist/index.mjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { defineCommand, runMain } from "citty";
|
|
3
|
+
//#endregion
|
|
3
4
|
//#region src/index.ts
|
|
4
5
|
runMain(defineCommand({
|
|
5
6
|
meta: {
|
|
6
7
|
name: "contentrain",
|
|
7
|
-
version: "0.1.
|
|
8
|
+
version: "0.1.4",
|
|
8
9
|
description: "Contentrain CLI — AI content governance infrastructure"
|
|
9
10
|
},
|
|
10
11
|
subCommands: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as i,a as p,o as t,p as o,q as s,j as u,u as a,B as n,g as m,b as l,r as x,E as d,f as g}from"./index-
|
|
1
|
+
import{c as i,a as p,o as t,p as o,q as s,j as u,u as a,B as n,g as m,b as l,r as x,E as d,f as g}from"./index-RDdffBTh.js";/**
|
|
2
2
|
* @license lucide-vue-next v0.474.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import{c as G,d as Ae,r as w,w as F,a as E,t as le,o as v,b as S,e as b,f as k,n as K,u as t,m as A,g as M,h as C,i as O,j as x,k as X,l as Y,p as $,q as _,s as V,F as J,v as Z,x as ae,R as ve,y as H,z,A as he,B as P,C as Le,D as de}from"./index-RDdffBTh.js";import{u as Pe,S as $e,_ as Re}from"./Input.vue_vue_type_script_setup_true_lang-BveqfZsR.js";import{u as Q}from"./project-BlZcHJw6.js";import{_ as re}from"./index-De_z0714.js";import{B as be}from"./box-UJk5SvJJ.js";import{F as me}from"./file-text-J3Wzwieh.js";import{S as _e}from"./shield-check-B67ELGUT.js";import{G as ge}from"./git-branch-DqEFTZDt.js";import{S as Te}from"./scan-search-UJ-_oiOR.js";import{B as De}from"./book-open-DnH5T78M.js";import{u as R,c as ne,a as q,P as ee,b as se,d as Se,w as Ie}from"./Presence-BXKCIfUk.js";import{u as ze}from"./useDirection-B4S5kPsI.js";import{P as W,r as ye,d as ie,u as xe}from"./useWatch-B2FLRWr8.js";import{c as He,u as Oe}from"./useNonce-BffIzuhE.js";import"./ConfigProvider-Dvd7YoEV.js";/**
|
|
2
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const Be=G("GithubIcon",[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]]);/**
|
|
7
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const we=G("LayoutDashboardIcon",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/**
|
|
12
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const Ne=G("MoonIcon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
|
|
17
|
+
* @license lucide-vue-next v0.474.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const Me=G("SunIcon",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),Ve="/icon-color.svg",qe="/logo/color-icon-black-text.svg",We="/logo/color-icon-white-text.svg",Xe=Ae("ui",()=>{const u=Pe({attribute:"class"}),e=w(!1),o=w(JSON.parse(localStorage.getItem("cr-dismissed-hints")??"{}"));function a(){u.value=u.value==="dark"?"light":"dark"}function n(l){o.value[l]=Date.now(),localStorage.setItem("cr-dismissed-hints",JSON.stringify(o.value))}function s(l){const r=o.value[l];if(!r)return!1;const c=10080*60*1e3;return Date.now()-r<c}return F(e,l=>{localStorage.setItem("cr-sidebar-collapsed",String(l))}),localStorage.getItem("cr-sidebar-collapsed")==="true"&&(e.value=!0),{colorMode:u,sidebarCollapsed:e,toggleTheme:a,dismissHint:n,isHintDismissed:s}}),[T,Ye]=ne("ScrollAreaRoot");var je=E({__name:"ScrollAreaRoot",props:{type:{type:String,required:!1,default:"hover"},dir:{type:String,required:!1},scrollHideDelay:{type:Number,required:!1,default:600},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u,{expose:e}){const o=u,a=w(0),n=w(0),s=w(),i=w(),l=w(),r=w(),c=w(!1),d=w(!1),{type:m,dir:f,scrollHideDelay:y}=le(o),L=ze(f);function D(){var h;(h=s.value)==null||h.scrollTo({top:0})}function I(){var h;(h=s.value)==null||h.scrollTo({top:0,left:0})}e({viewport:s,scrollTop:D,scrollTopLeft:I});const{forwardRef:p,currentElement:g}=R();return Ye({type:m,dir:L,scrollHideDelay:y,scrollArea:g,viewport:s,onViewportChange:h=>{s.value=h||void 0},content:i,onContentChange:h=>{i.value=h},scrollbarX:l,scrollbarXEnabled:c,scrollbarY:r,scrollbarYEnabled:d,onScrollbarXChange:h=>{l.value=h||void 0},onScrollbarYChange:h=>{r.value=h||void 0},onScrollbarXEnabledChange:h=>{c.value=h},onScrollbarYEnabledChange:h=>{d.value=h},onCornerWidthChange:h=>{a.value=h},onCornerHeightChange:h=>{n.value=h}}),(h,B)=>(v(),S(t(W),{ref:t(p),"as-child":o.asChild,as:h.as,dir:t(L),style:K({position:"relative","--reka-scroll-area-corner-width":`${a.value}px`,"--reka-scroll-area-corner-height":`${n.value}px`})},{default:b(()=>[k(h.$slots,"default")]),_:3},8,["as-child","as","dir","style"]))}}),Ue=je,Fe=E({__name:"ScrollAreaCornerImpl",setup(u){const e=T(),o=w(0),a=w(0),n=C(()=>!!o.value&&!!a.value);function s(){var r;const l=((r=e.scrollbarX.value)==null?void 0:r.offsetHeight)||0;e.onCornerHeightChange(l),a.value=l}function i(){var r;const l=((r=e.scrollbarY.value)==null?void 0:r.offsetWidth)||0;e.onCornerWidthChange(l),o.value=l}return q(e.scrollbarX.value,s),q(e.scrollbarY.value,i),F(()=>e.scrollbarX.value,s),F(()=>e.scrollbarY.value,i),(l,r)=>{var c;return n.value?(v(),S(t(W),A({key:0,style:{width:`${o.value}px`,height:`${a.value}px`,position:"absolute",right:t(e).dir.value==="ltr"?0:void 0,left:t(e).dir.value==="rtl"?0:void 0,bottom:0}},(c=l.$parent)==null?void 0:c.$props),{default:b(()=>[k(l.$slots,"default")]),_:3},16,["style"])):M("v-if",!0)}}}),Ge=Fe,Ke=E({__name:"ScrollAreaCorner",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const e=u,{forwardRef:o}=R(),a=T(),n=C(()=>!!a.scrollbarX.value&&!!a.scrollbarY.value),s=C(()=>a.type.value!=="scroll"&&n.value);return(i,l)=>s.value?(v(),S(Ge,A({key:0},e,{ref:t(o)}),{default:b(()=>[k(i.$slots,"default")]),_:3},16)):M("v-if",!0)}}),Je=Ke;function Ce(u,e){return o=>{if(u[0]===u[1]||e[0]===e[1])return e[0];const a=(e[1]-e[0])/(u[1]-u[0]);return e[0]+a*(o-u[0])}}function te(u){const e=ke(u.viewport,u.content),o=u.scrollbar.paddingStart+u.scrollbar.paddingEnd,a=(u.scrollbar.size-o)*e;return Math.max(a,18)}function ke(u,e){const o=u/e;return Number.isNaN(o)?0:o}function Ze(u,e=()=>{}){let o={left:u.scrollLeft,top:u.scrollTop},a=0;return(function n(){const s={left:u.scrollLeft,top:u.scrollTop},i=o.left!==s.left,l=o.top!==s.top;(i||l)&&e(),o=s,a=window.requestAnimationFrame(n)})(),()=>window.cancelAnimationFrame(a)}function pe(u,e,o="ltr"){const a=te(e),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,s=e.scrollbar.size-n,i=e.content-e.viewport,l=s-a,r=o==="ltr"?[0,i]:[i*-1,0],c=He(u,r[0],r[1]);return Ce([0,i],[0,l])(c)}function U(u){return u?Number.parseInt(u,10):0}function Qe(u,e,o,a="ltr"){const n=te(o),s=n/2,i=e||s,l=n-i,r=o.scrollbar.paddingStart+i,c=o.scrollbar.size-o.scrollbar.paddingEnd-l,d=o.content-o.viewport,m=a==="ltr"?[0,d]:[d*-1,0];return Ce([r,c],m)(u)}function fe(u,e){return u>0&&u<e}var et=E({__name:"ScrollAreaScrollbarX",setup(u){const e=T(),o=oe(),{forwardRef:a,currentElement:n}=R();O(()=>{n.value&&e.onScrollbarXChange(n.value)});const s=C(()=>o.sizes.value);return(i,l)=>(v(),S(Ee,{ref:t(a),"is-horizontal":!0,"data-orientation":"horizontal",style:K({bottom:0,left:t(e).dir.value==="rtl"?"var(--reka-scroll-area-corner-width)":0,right:t(e).dir.value==="ltr"?"var(--reka-scroll-area-corner-width)":0,"--reka-scroll-area-thumb-width":s.value?`${t(te)(s.value)}px`:void 0}),onOnDragScroll:l[0]||(l[0]=r=>t(o).onDragScroll(r.x))},{default:b(()=>[k(i.$slots,"default")]),_:3},8,["style"]))}}),tt=et,ot=E({__name:"ScrollAreaScrollbarY",setup(u){const e=T(),o=oe(),{forwardRef:a,currentElement:n}=R();O(()=>{n.value&&e.onScrollbarYChange(n.value)});const s=C(()=>o.sizes.value);return(i,l)=>(v(),S(Ee,{ref:t(a),"is-horizontal":!1,"data-orientation":"vertical",style:K({top:0,right:t(e).dir.value==="ltr"?0:void 0,left:t(e).dir.value==="rtl"?0:void 0,bottom:"var(--reka-scroll-area-corner-height)","--reka-scroll-area-thumb-height":s.value?`${t(te)(s.value)}px`:void 0}),onOnDragScroll:l[0]||(l[0]=r=>t(o).onDragScroll(r.y))},{default:b(()=>[k(i.$slots,"default")]),_:3},8,["style"]))}}),rt=ot,lt=E({__name:"ScrollAreaScrollbarAuto",props:{forceMount:{type:Boolean,required:!1}},setup(u){const e=T(),o=j(),{forwardRef:a}=R(),n=w(!1),s=se(()=>{if(e.viewport.value){const i=e.viewport.value.offsetWidth<e.viewport.value.scrollWidth,l=e.viewport.value.offsetHeight<e.viewport.value.scrollHeight;n.value=o.isHorizontal.value?i:l}},10);return O(()=>s()),q(e.viewport,s),q(e.content,s),(i,l)=>(v(),S(t(ee),{present:i.forceMount||n.value},{default:b(()=>[x(ue,A(i.$attrs,{ref:t(a),"data-state":n.value?"visible":"hidden"}),{default:b(()=>[k(i.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),ce=lt,at=E({inheritAttrs:!1,__name:"ScrollAreaScrollbarGlimpse",props:{forceMount:{type:Boolean,required:!1}},setup(u){const e=T(),o=j(),{forwardRef:a}=R(),{state:n,dispatch:s}=Se("hidden",{hidden:{POINTER_ENTER:"glimpse",SCROLL:"scrolling"},glimpse:{HIDE:"hidden",POINTER_LEAVE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"glimpse"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}}),i=C(()=>n.value!=="hidden");function l(){s("POINTER_ENTER")}function r(){s("POINTER_LEAVE")}const c=se(()=>s("SCROLL_END"),100);return X(d=>{if(n.value==="glimpse"){const m=window.setTimeout(()=>s("HIDE"),e.scrollHideDelay.value);d(()=>{window.clearTimeout(m)})}}),X(d=>{if(n.value==="idle"){const m=window.setTimeout(()=>s("HIDE"),e.scrollHideDelay.value);d(()=>{window.clearTimeout(m)})}}),X(d=>{const m=e.viewport.value,f=o.isHorizontal.value?"scrollLeft":"scrollTop";if(m){let y=m[f];const L=()=>{const D=m[f];y!==D&&(s("SCROLL"),c()),y=D};m.addEventListener("scroll",L),d(()=>{m.removeEventListener("scroll",L)})}}),O(()=>{const d=e.scrollArea.value;d&&(d.addEventListener("pointerenter",l),d.addEventListener("pointerleave",r))}),Y(()=>{const d=e.scrollArea.value;d&&(d.removeEventListener("pointerenter",l),d.removeEventListener("pointerleave",r))}),(d,m)=>(v(),S(t(ee),{present:d.forceMount||i.value},{default:b(()=>[x(ce,A(d.$attrs,{ref:t(a),"data-state":i.value?"visible":"hidden"}),{default:b(()=>[k(d.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),nt=at,st=E({inheritAttrs:!1,__name:"ScrollAreaScrollbarHover",props:{forceMount:{type:Boolean,required:!1}},setup(u){const e=T(),{forwardRef:o}=R();let a;const n=w(!1);function s(){window.clearTimeout(a),n.value=!0}function i(){a=window.setTimeout(()=>{n.value=!1},e.scrollHideDelay.value)}return O(()=>{const l=e.scrollArea.value;l&&(l.addEventListener("pointerenter",s),l.addEventListener("pointerleave",i))}),Y(()=>{const l=e.scrollArea.value;l&&(window.clearTimeout(a),l.removeEventListener("pointerenter",s),l.removeEventListener("pointerleave",i))}),(l,r)=>(v(),S(t(ee),{present:l.forceMount||n.value},{default:b(()=>[x(ce,A(l.$attrs,{ref:t(o),"data-state":n.value?"visible":"hidden"}),{default:b(()=>[k(l.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),it=st,ct=E({__name:"ScrollAreaScrollbarScroll",props:{forceMount:{type:Boolean,required:!1}},setup(u){const e=T(),o=j(),{forwardRef:a}=R(),{state:n,dispatch:s}=Se("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}}),i=C(()=>n.value!=="hidden");X(r=>{if(n.value==="idle"){const c=window.setTimeout(()=>s("HIDE"),e.scrollHideDelay.value);r(()=>{window.clearTimeout(c)})}});const l=se(()=>s("SCROLL_END"),100);return X(r=>{const c=e.viewport.value,d=o.isHorizontal.value?"scrollLeft":"scrollTop";if(c){let m=c[d];const f=()=>{const y=c[d];m!==y&&(s("SCROLL"),l()),m=y};c.addEventListener("scroll",f),r(()=>{c.removeEventListener("scroll",f)})}}),(r,c)=>(v(),S(t(ee),{present:r.forceMount||i.value},{default:b(()=>[x(ue,A(r.$attrs,{ref:t(a),"data-state":i.value?"visible":"hidden"}),{default:b(()=>[k(r.$slots,"default")]),_:3},16,["data-state"])]),_:3},8,["present"]))}}),ut=ct;const[j,dt]=ne("ScrollAreaScrollbar");var pt=E({inheritAttrs:!1,__name:"ScrollAreaScrollbar",props:{orientation:{type:String,required:!1,default:"vertical"},forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"div"}},setup(u){const e=u,{forwardRef:o}=R(),a=T(),n=C(()=>e.orientation==="horizontal");F(n,()=>{n.value?a.onScrollbarXEnabledChange(!0):a.onScrollbarYEnabledChange(!0)},{immediate:!0}),Y(()=>{a.onScrollbarXEnabledChange(!1),a.onScrollbarYEnabledChange(!1)});const{orientation:s,forceMount:i,asChild:l,as:r}=le(e);return dt({orientation:s,forceMount:i,isHorizontal:n,as:r,asChild:l}),(c,d)=>t(a).type.value==="hover"?(v(),S(it,A({key:0},c.$attrs,{ref:t(o),"force-mount":t(i)}),{default:b(()=>[k(c.$slots,"default")]),_:3},16,["force-mount"])):t(a).type.value==="scroll"?(v(),S(ut,A({key:1},c.$attrs,{ref:t(o),"force-mount":t(i)}),{default:b(()=>[k(c.$slots,"default")]),_:3},16,["force-mount"])):t(a).type.value==="glimpse"?(v(),S(nt,A({key:2},c.$attrs,{ref:t(o),"force-mount":t(i)}),{default:b(()=>[k(c.$slots,"default")]),_:3},16,["force-mount"])):t(a).type.value==="auto"?(v(),S(ce,A({key:3},c.$attrs,{ref:t(o),"force-mount":t(i)}),{default:b(()=>[k(c.$slots,"default")]),_:3},16,["force-mount"])):t(a).type.value==="always"?(v(),S(ue,A({key:4},c.$attrs,{ref:t(o),"data-state":"visible"}),{default:b(()=>[k(c.$slots,"default")]),_:3},16)):M("v-if",!0)}}),ft=pt;const[oe,vt]=ne("ScrollAreaScrollbarVisible");var ht=E({__name:"ScrollAreaScrollbarVisible",setup(u){const e=T(),o=j(),{forwardRef:a}=R(),n=w({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),s=C(()=>{const p=ke(n.value.viewport,n.value.content);return p>0&&p<1}),i=w(),l=w(0);function r(p,g){if(y.value){const h=e.viewport.value.scrollLeft+p.deltaY;e.viewport.value.scrollLeft=h,fe(h,g)&&p.preventDefault()}else{const h=e.viewport.value.scrollTop+p.deltaY;e.viewport.value.scrollTop=h,fe(h,g)&&p.preventDefault()}}function c(p,g){y.value?l.value=g.x:l.value=g.y}function d(p){l.value=0}function m(p){n.value=p}function f(p,g){return Qe(p,l.value,n.value,g)}const y=C(()=>o.isHorizontal.value);function L(p){y.value?e.viewport.value.scrollLeft=f(p,e.dir.value):e.viewport.value.scrollTop=f(p)}function D(){if(y.value){if(e.viewport.value&&i.value){const p=e.viewport.value.scrollLeft,g=pe(p,n.value,e.dir.value);i.value.style.transform=`translate3d(${g}px, 0, 0)`}}else if(e.viewport.value&&i.value){const p=e.viewport.value.scrollTop,g=pe(p,n.value);i.value.style.transform=`translate3d(0, ${g}px, 0)`}}function I(p){i.value=p}return vt({sizes:n,hasThumb:s,handleWheelScroll:r,handleThumbDown:c,handleThumbUp:d,handleSizeChange:m,onThumbPositionChange:D,onThumbChange:I,onDragScroll:L}),(p,g)=>y.value?(v(),S(tt,A({key:0},p.$attrs,{ref:t(a)}),{default:b(()=>[k(p.$slots,"default")]),_:3},16)):(v(),S(rt,A({key:1},p.$attrs,{ref:t(a)}),{default:b(()=>[k(p.$slots,"default")]),_:3},16))}}),ue=ht,bt=E({__name:"ScrollAreaScrollbarImpl",props:{isHorizontal:{type:Boolean,required:!0}},emits:["onDragScroll","onWheelScroll","onThumbPointerDown"],setup(u,{emit:e}){const o=u,a=e,n=T(),s=oe(),i=j(),{forwardRef:l,currentElement:r}=R(),c=w(""),d=w();function m(p){var g,h;if(d.value){const B=p.clientX-((g=d.value)==null?void 0:g.left),N=p.clientY-((h=d.value)==null?void 0:h.top);a("onDragScroll",{x:B,y:N})}}function f(p){p.button===0&&(p.target.setPointerCapture(p.pointerId),d.value=r.value.getBoundingClientRect(),c.value=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",n.viewport&&(n.viewport.value.style.scrollBehavior="auto"),m(p))}function y(p){m(p)}function L(p){const g=p.target;g.hasPointerCapture(p.pointerId)&&g.releasePointerCapture(p.pointerId),document.body.style.webkitUserSelect=c.value,n.viewport&&(n.viewport.value.style.scrollBehavior=""),d.value=void 0}function D(p){var N;const g=p.target,h=(N=r.value)==null?void 0:N.contains(g),B=s.sizes.value.content-s.sizes.value.viewport;h&&s.handleWheelScroll(p,B)}O(()=>{document.addEventListener("wheel",D,{passive:!1})}),Y(()=>{document.removeEventListener("wheel",D)});function I(){var p,g,h,B,N;r.value&&(o.isHorizontal?s.handleSizeChange({content:((p=n.viewport.value)==null?void 0:p.scrollWidth)??0,viewport:((g=n.viewport.value)==null?void 0:g.offsetWidth)??0,scrollbar:{size:r.value.clientWidth??0,paddingStart:U(getComputedStyle(r.value).paddingLeft),paddingEnd:U(getComputedStyle(r.value).paddingRight)}}):s.handleSizeChange({content:((h=n.viewport.value)==null?void 0:h.scrollHeight)??0,viewport:((B=n.viewport.value)==null?void 0:B.offsetHeight)??0,scrollbar:{size:((N=r.value)==null?void 0:N.clientHeight)??0,paddingStart:U(getComputedStyle(r.value).paddingTop),paddingEnd:U(getComputedStyle(r.value).paddingBottom)}}),s.onThumbPositionChange())}return q(r,I),q(n.content,I),(p,g)=>(v(),S(t(W),{ref:t(l),style:{position:"absolute"},"data-scrollbarimpl":"",as:t(i).as.value,"as-child":t(i).asChild.value,onPointerdown:f,onPointermove:y,onPointerup:L},{default:b(()=>[k(p.$slots,"default")]),_:3},8,["as","as-child"]))}}),Ee=bt,mt=E({__name:"ScrollAreaThumb",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u){const e=u,o=T(),a=oe();function n(f){const L=f.target.getBoundingClientRect(),D=f.clientX-L.left,I=f.clientY-L.top;a.handleThumbDown(f,{x:D,y:I})}function s(f){a.handleThumbUp(f)}const{forwardRef:i,currentElement:l}=R(),r=w(),c=C(()=>o.viewport.value);function d(){if(!r.value){const f=Ze(c.value,a.onThumbPositionChange);r.value=f,a.onThumbPositionChange()}}const m=C(()=>a.sizes.value);return Ie(m,()=>{a.onThumbChange(l.value),c.value&&(a.onThumbPositionChange(),c.value.addEventListener("scroll",d))}),Y(()=>{var f;c.value.removeEventListener("scroll",d),(f=o.viewport.value)==null||f.removeEventListener("scroll",d)}),(f,y)=>(v(),S(t(W),{ref:t(i),"data-state":t(a).hasThumb?"visible":"hidden",style:{width:"var(--reka-scroll-area-thumb-width)",height:"var(--reka-scroll-area-thumb-height)"},"as-child":e.asChild,as:f.as,onPointerdown:n,onPointerup:s},{default:b(()=>[k(f.$slots,"default")]),_:3},8,["data-state","as-child","as"]))}}),_t=mt,gt=E({inheritAttrs:!1,__name:"ScrollAreaViewport",props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(u,{expose:e}){const o=u,{nonce:a}=le(o),n=Oe(a),s=T(),i=w();O(()=>{s.onViewportChange(i.value),s.onContentChange(r.value)}),e({viewportElement:i});const{forwardRef:l,currentElement:r}=R();return(c,d)=>(v(),$(J,null,[_("div",A({ref_key:"viewportElement",ref:i,"data-reka-scroll-area-viewport":"",style:{overflowX:t(s).scrollbarXEnabled.value?"scroll":"hidden",overflowY:t(s).scrollbarYEnabled.value?"scroll":"hidden"}},c.$attrs,{tabindex:0}),[x(t(W),{ref:t(l),style:K({minWidth:t(s).scrollbarXEnabled.value?"fit-content":void 0}),"as-child":o.asChild,as:c.as},{default:b(()=>[k(c.$slots,"default")]),_:3},8,["style","as-child","as"])],16),x(t(W),{as:"style",nonce:t(n)},{default:b(()=>d[0]||(d[0]=[V(" /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-scroll-area-viewport] { scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; } [data-reka-scroll-area-viewport]::-webkit-scrollbar { display:none; } ")])),_:1,__:[0]},8,["nonce"])],64))}}),St=gt;const yt={class:"group flex h-screen w-18 min-w-18 flex-col overflow-hidden border-r border-border bg-card transition-all duration-200 ease-in-out hover:w-55 hover:min-w-55 xl:w-55 xl:min-w-55"},xt={class:"flex flex-1 flex-col gap-1 px-3 pt-4"},wt={class:"truncate opacity-0 transition-opacity duration-200 group-hover:opacity-100 xl:opacity-100"},Ct={class:"flex flex-col gap-1 px-3 mt-auto"},kt={class:"flex items-center gap-3 px-3 pb-4"},Et={class:"truncate opacity-0 transition-opacity duration-200 group-hover:opacity-100 xl:opacity-100"},At=E({__name:"PrimarySidebar",setup(u){const e=Z(),o=Xe(),a=Q(),n=[{icon:we,label:"Dashboard",to:"/",exact:!0},{icon:be,label:"Models",to:"/models"},{icon:me,label:"Content",to:"/content"},{icon:_e,label:"Validate",to:"/validate"},{icon:ge,label:"Branches",to:"/branches"},{icon:Te,label:"Normalize",to:"/normalize"}];function s(r){return r.exact?e.path===r.to:e.path.startsWith(r.to)}const i=C(()=>{var r,c;return((c=(r=a.status)==null?void 0:r.branches)==null?void 0:c.unmerged)??0}),l=C(()=>{var c;const r=(c=a.status)==null?void 0:c.validation;return r?r.errors+r.warnings:0});return(r,c)=>(v(),$("aside",yt,[c[3]||(c[3]=_("div",{class:"flex h-14 items-center px-4 shrink-0"},[_("img",{src:Ve,alt:"Contentrain",class:"size-8 shrink-0 block group-hover:hidden xl:hidden"}),_("img",{src:qe,alt:"Contentrain",class:"h-7 shrink-0 hidden group-hover:block xl:block dark:hidden"}),_("img",{src:We,alt:"Contentrain",class:"h-7 shrink-0 hidden dark:group-hover:block dark:xl:block"})],-1)),_("nav",xt,[(v(),$(J,null,ae(n,d=>x(t(ve),{key:d.to,to:d.to,class:H(t(z)("flex items-center gap-3 rounded-lg px-3 py-2.5 text-sm transition-all duration-150",s(d)?"bg-background text-primary font-medium shadow-sm border border-border":"text-muted-foreground hover:bg-background/60 hover:text-foreground"))},{default:b(()=>[(v(),S(he(d.icon),{class:"size-5 shrink-0"})),_("span",wt,P(d.label),1),d.to==="/branches"&&i.value>0?(v(),S(t(re),{key:0,variant:"secondary",class:"ml-auto text-[10px] h-5 px-1.5 opacity-0 group-hover:opacity-100 xl:opacity-100 transition-opacity"},{default:b(()=>[V(P(i.value),1)]),_:1})):M("",!0),d.to==="/validate"&&l.value>0?(v(),S(t(re),{key:1,class:"ml-auto text-[10px] h-5 px-1.5 bg-status-error/10 text-status-error border-0 opacity-0 group-hover:opacity-100 xl:opacity-100 transition-opacity"},{default:b(()=>[V(P(l.value),1)]),_:1})):M("",!0)]),_:2},1032,["to","class"])),64))]),_("div",Ct,[_("a",{href:"https://ai.contentrain.io",target:"_blank",rel:"noopener",class:H(t(z)("flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-all duration-150","text-muted-foreground hover:bg-background/60 hover:text-foreground"))},[x(t(De),{class:"size-5 shrink-0"}),c[1]||(c[1]=_("span",{class:"truncate opacity-0 transition-opacity duration-200 group-hover:opacity-100 xl:opacity-100"}," Docs ",-1))],2),_("a",{href:"https://github.com/Contentrain/ai",target:"_blank",rel:"noopener",class:H(t(z)("flex items-center gap-3 rounded-lg px-3 py-2 text-sm transition-all duration-150","text-muted-foreground hover:bg-background/60 hover:text-foreground"))},[x(t(Be),{class:"size-5 shrink-0"}),c[2]||(c[2]=_("span",{class:"truncate opacity-0 transition-opacity duration-200 group-hover:opacity-100 xl:opacity-100"}," GitHub ",-1))],2)]),_("div",kt,[_("button",{class:H(t(z)("flex items-center gap-3 rounded-lg px-3 py-2.5 text-sm w-full transition-all duration-150","text-muted-foreground hover:bg-background/60 hover:text-foreground")),onClick:c[0]||(c[0]=d=>t(o).toggleTheme())},[t(o).colorMode==="dark"?(v(),S(t(Me),{key:0,class:"size-5 shrink-0"})):(v(),S(t(Ne),{key:1,class:"size-5 shrink-0"})),_("span",Et,P(t(o).colorMode==="dark"?"Light mode":"Dark mode"),1)],2)])]))}}),Lt=E({__name:"ScrollBar",props:{orientation:{default:"vertical"},forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(u){const e=u,o=ye(e,"class");return(a,n)=>(v(),S(t(ft),A({"data-slot":"scroll-area-scrollbar"},t(o),{class:t(z)("flex touch-none p-px transition-colors select-none",u.orientation==="vertical"&&"h-full w-2.5 border-l border-l-transparent",u.orientation==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent",e.class)}),{default:b(()=>[x(t(_t),{"data-slot":"scroll-area-thumb",class:"bg-border relative flex-1 rounded-full"})]),_:1},16,["class"]))}}),Pt=E({__name:"ScrollArea",props:{type:{},dir:{},scrollHideDelay:{},asChild:{type:Boolean},as:{},class:{type:[Boolean,null,String,Object,Array]}},setup(u){const e=u,o=ye(e,"class");return(a,n)=>(v(),S(t(Ue),A({"data-slot":"scroll-area"},t(o),{class:t(z)("relative",e.class)}),{default:b(()=>[x(t(St),{"data-slot":"scroll-area-viewport",class:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"},{default:b(()=>[k(a.$slots,"default")]),_:3}),x(Lt),x(t(Je))]),_:3},16,["class"]))}}),$t={class:"flex h-full"},Rt={class:"hidden w-55 shrink-0 flex-col border-r border-border sidebar-gradient lg:flex"},Tt={class:"p-3"},Dt={class:"relative"},It=["onClick"],zt={class:"truncate flex-1"},Ht={key:0,class:"px-3 py-6 text-center text-xs text-muted-foreground"},Ot={class:"flex-1 min-w-0 overflow-y-auto custom-scrollbar"},Bt=E({__name:"SubSidebarLayout",props:{basePath:{},paramKey:{}},setup(u){const e=ie("serve-ui-texts").locale("en").get(),o=u,a=Z(),n=Le(),s=Q(),i=w(""),l=C(()=>{var f;const d=((f=s.status)==null?void 0:f.models)??[];if(!i.value)return d;const m=i.value.toLowerCase();return d.filter(y=>y.id.toLowerCase().includes(m)||y.domain.toLowerCase().includes(m))}),r=C(()=>a.params[o.paramKey]),c={collection:"bg-primary/10 text-primary",singleton:"bg-status-info/10 text-status-info",document:"bg-status-success/10 text-status-success",dictionary:"bg-status-warning/10 text-status-warning"};return(d,m)=>(v(),$("div",$t,[_("aside",Rt,[_("div",Tt,[_("div",Dt,[x(t($e),{class:"absolute left-2.5 top-2.5 size-3.5 text-muted-foreground"}),x(t(Re),{modelValue:i.value,"onUpdate:modelValue":m[0]||(m[0]=f=>i.value=f),placeholder:t(e)["sub-sidebar-layout.search"],class:"h-8 bg-background pl-8 text-xs"},null,8,["modelValue","placeholder"])])]),x(t(Pt),{class:"flex-1 px-1.5"},{default:b(()=>[(v(!0),$(J,null,ae(l.value,f=>{var y;return v(),$("button",{key:f.id,class:H(t(z)("flex w-full items-center gap-2 rounded-md px-3 py-2 text-left text-sm transition-colors",r.value===f.id?"bg-background font-medium text-primary shadow-sm border border-border":"text-muted-foreground hover:bg-background/60 hover:text-foreground")),onClick:L=>t(n).push(`${u.basePath}/${f.id}`)},[_("span",{class:H(t(z)("size-1.5 rounded-full shrink-0",((y=c[f.kind])==null?void 0:y.split(" ")[0])??"bg-muted"))},null,2),_("span",zt,P(f.id),1),x(t(re),{variant:"secondary",class:"text-[10px] shrink-0 h-4 px-1"},{default:b(()=>[V(P(f.kind==="singleton"?"1":f.fields),1)]),_:2},1024)],10,It)}),128)),l.value.length===0?(v(),$("div",Ht,P(t(e)["sub-sidebar-layout.no-models-found"]),1)):M("",!0)]),_:1})]),_("div",Ot,[k(d.$slots,"default")])]))}}),Nt={class:"flex items-center gap-4 border-t border-border bg-background px-6 py-1.5 text-xs text-muted-foreground"},Mt={class:"flex items-center gap-1.5"},Vt={key:0,class:"ml-auto"},qt=E({__name:"StatusBar",setup(u){const e=ie("serve-ui-texts").locale("en").get(),o=Q(),{connected:a,lastUpdate:n}=xe(),s=C(()=>{var r;return((r=o.status)==null?void 0:r.models.length)??0}),i=C(()=>{var r,c;return((c=(r=o.status)==null?void 0:r.config)==null?void 0:c.locales.supported.length)??0}),l=C(()=>{if(!n.value)return"";const r=Date.now()-n.value.getTime();return r<5e3?"just now":r<6e4?`${Math.floor(r/1e3)}s ago`:r<36e5?`${Math.floor(r/6e4)}m ago`:n.value.toLocaleTimeString()});return(r,c)=>(v(),$("footer",Nt,[_("span",Mt,[_("span",{class:H(["size-1.5 rounded-full",t(a)?"bg-status-success":"bg-status-error"])},null,2),V(" "+P(t(a)?"watching":"disconnected"),1)]),c[0]||(c[0]=_("span",{class:"h-3 w-px bg-border"},null,-1)),_("span",null,P(s.value)+" "+P(t(e)["status-bar.models"]),1),c[1]||(c[1]=_("span",{class:"h-3 w-px bg-border"},null,-1)),_("span",null,P(i.value)+" "+P(t(e)["status-bar.locales"]),1),l.value?(v(),$("span",Vt,P(l.value),1)):M("",!0)]))}}),Wt={class:"fixed bottom-0 left-0 right-0 z-50 border-t border-border bg-background"},Xt={class:"flex items-center justify-around py-2"},Yt=E({__name:"MobileNav",setup(u){const e=ie("serve-ui-texts").locale("en").get(),o=Z(),a=[{icon:we,label:e["mobile-nav.dash"],to:"/",exact:!0},{icon:be,label:e["mobile-nav.models"],to:"/models"},{icon:me,label:e["mobile-nav.content"],to:"/content"},{icon:_e,label:e["mobile-nav.valid"],to:"/validate"},{icon:ge,label:e["mobile-nav.branch"],to:"/branches"}];function n(s){return s.exact?o.path===s.to:o.path.startsWith(s.to)}return(s,i)=>(v(),$("nav",Wt,[_("div",Xt,[(v(),$(J,null,ae(a,l=>x(t(ve),{key:l.to,to:l.to,class:H(t(z)("flex flex-col items-center gap-0.5 px-3 py-1 text-[10px]",n(l)?"text-primary":"text-muted-foreground"))},{default:b(()=>[(v(),S(he(l.icon),{class:"size-5"})),V(" "+P(l.label),1)]),_:2},1032,["to","class"])),64))])]))}}),jt={class:"flex h-screen max-h-screen w-full max-w-480 mx-auto"},Ut={class:"flex flex-1 flex-col min-w-0"},Ft={class:"flex-1 overflow-hidden pb-16 md:pb-0"},Gt={key:1,class:"h-full overflow-y-auto custom-scrollbar"},po=E({__name:"AppLayout",setup(u){const e=Z(),o=Q(),a=C(()=>e.meta.subSidebar===!0),n=C(()=>e.meta.basePath??""),s=C(()=>e.meta.paramKey??"");return xe(i=>{(i.type==="config:changed"||i.type==="model:changed"||i.type==="context:changed")&&o.fetchStatus()}),O(()=>{o.fetchStatus()}),(i,l)=>(v(),$("div",jt,[x(At,{class:"hidden md:flex"}),_("div",Ut,[_("main",Ft,[a.value?(v(),S(Bt,{key:0,"base-path":n.value,"param-key":s.value},{default:b(()=>[x(t(de))]),_:1},8,["base-path","param-key"])):(v(),$("div",Gt,[x(t(de))]))]),x(qt,{class:"hidden md:flex"})]),x(Yt,{class:"md:hidden"})]))}});export{po as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as M,a as w,o as n,b as m,e as s,f as j,m as N,u as e,i as te,z as O,p as f,y as L,j as t,s as d,g as z,E as D,q as u,B as o,L as R,F as T,x as E,h as k,r as A,X as V,C as ue,v as de}from"./index-
|
|
1
|
+
import{c as M,a as w,o as n,b as m,e as s,f as j,m as N,u as e,i as te,z as O,p as f,y as L,j as t,s as d,g as z,E as D,q as u,B as o,L as R,F as T,x as E,h as k,r as A,X as V,C as ue,v as de}from"./index-RDdffBTh.js";import{u as pe}from"./content-Ctqretwl.js";import{a as C,_ as fe}from"./PageHeader.vue_vue_type_script_setup_true_lang-CEnjONvd.js";import{_ as me,C as _e,a as W}from"./AgentPromptGroup.vue_vue_type_script_setup_true_lang-Ulb-9Tr3.js";import{_ as he}from"./TrustBadge.vue_vue_type_script_setup_true_lang-KRiTnLVk.js";import{_ as G,a as ve,b as ge,c as ye,d as be}from"./CollapsibleTrigger.vue_vue_type_script_setup_true_lang-BRzXVXDG.js";import{_ as xe}from"./Separator.vue_vue_type_script_setup_true_lang-1pFZ2PR2.js";import{i as se,D as ke,_ as U,b as X,c as H,d as Z}from"./DialogTitle.vue_vue_type_script_setup_true_lang-2sQAJn_Y.js";import{b as ze,u as Ce}from"./useId-CPFWZ4Bo.js";import{u as ae}from"./Presence-BXKCIfUk.js";import{P as le,r as we,d as $e}from"./useWatch-B2FLRWr8.js";import{A as Be}from"./arrow-left-DANf_wrK.js";import{G as J}from"./git-merge-Bmz-MVBm.js";import{G as K}from"./git-branch-DqEFTZDt.js";import{P as De,M as je}from"./plus-Cw1OnTR2.js";import{F as Fe}from"./file-text-J3Wzwieh.js";import"./shield-check-B67ELGUT.js";import"./getActiveElement-FUKBWQwh.js";import"./ConfigProvider-Dvd7YoEV.js";/**
|
|
2
2
|
* @license lucide-vue-next v0.474.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as he,a as I,t as J,o as d,b as C,e as c,j as p,u as e,f as k,r as $,i as W,l as _e,h as T,K as ye,U as xe,M as we,n as Ce,g as Y,P as Se,H as Te,m as O,z as F,I as Ie,J as ke,p as S,q as m,E as Be,L as K,s as R,B as w,F as U,x as H,y as z,A as X,C as Fe}from"./index-
|
|
1
|
+
import{c as he,a as I,t as J,o as d,b as C,e as c,j as p,u as e,f as k,r as $,i as W,l as _e,h as T,K as ye,U as xe,M as we,n as Ce,g as Y,P as Se,H as Te,m as O,z as F,I as Ie,J as ke,p as S,q as m,E as Be,L as K,s as R,B as w,F as U,x as H,y as z,A as X,C as Fe}from"./index-RDdffBTh.js";import{u as qe}from"./content-Ctqretwl.js";import{P as A,r as D,d as Re,u as $e}from"./useWatch-B2FLRWr8.js";import{_ as Ae,a as Z}from"./PageHeader.vue_vue_type_script_setup_true_lang-CEnjONvd.js";import{_ as Ve}from"./StudioHint.vue_vue_type_script_setup_true_lang-C6JN5tPq.js";import{_ as ee,a as E}from"./AgentPromptGroup.vue_vue_type_script_setup_true_lang-Ulb-9Tr3.js";import{_ as N}from"./index-De_z0714.js";import{b as le,a as Me,u as ze}from"./useId-CPFWZ4Bo.js";import{f as ie,c as ue,u as L,P as Pe}from"./Presence-BXKCIfUk.js";import{u as de}from"./useDirection-B4S5kPsI.js";import{u as ce,R as Ee}from"./Collection-DTB4xCCE.js";import{g as te}from"./getActiveElement-FUKBWQwh.js";import{G}from"./git-branch-DqEFTZDt.js";import{C as Oe}from"./chevron-right-XnJVrezx.js";import{S as De}from"./shield-check-B67ELGUT.js";import{S as Le}from"./scan-search-UJ-_oiOR.js";import{D as je}from"./database-Wd_i2bM1.js";import{F as ae}from"./file-text-J3Wzwieh.js";import{S as se}from"./settings-Dnm4yTIj.js";import{L as Ke,T as Ue}from"./trash-2-B1QgZW1G.js";import{G as He}from"./git-merge-Bmz-MVBm.js";import{B as Ne}from"./box-UJk5SvJJ.js";import"./ConfigProvider-Dvd7YoEV.js";/**
|
|
2
2
|
* @license lucide-vue-next v0.474.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d,t as N,o as u,b as m,e as c,f as p,u as e,r as v,w as F,i as I,j as M,m as y,g as D,h as w,K as E,p as R,y as x,z as P,I as H,J as j}from"./index-
|
|
1
|
+
import{a as d,t as N,o as u,b as m,e as c,f as p,u as e,r as v,w as F,i as I,j as M,m as y,g as D,h as w,K as E,p as R,y as x,z as P,I as H,J as j}from"./index-RDdffBTh.js";import{b as S,a as V}from"./useId-CPFWZ4Bo.js";import{f as z,u as B,c as J,k as K,P as L}from"./Presence-BXKCIfUk.js";import{P as $}from"./useWatch-B2FLRWr8.js";const[T,G]=J("CollapsibleRoot");var Q=d({__name:"CollapsibleRoot",props:{defaultOpen:{type:Boolean,required:!1,default:!1},open:{type:Boolean,required:!1,default:void 0},disabled:{type:Boolean,required:!1},unmountOnHide:{type:Boolean,required:!1,default:!0},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["update:open"],setup(n,{expose:l,emit:a}){const o=n,r=z(o,"open",a,{defaultValue:o.defaultOpen,passive:o.open===void 0}),{disabled:i,unmountOnHide:f}=N(o);return G({contentId:"",disabled:i,open:r,unmountOnHide:f,onOpenToggle:()=>{i.value||(r.value=!r.value)}}),l({open:r}),B(),(_,C)=>(u(),m(e($),{as:_.as,"as-child":o.asChild,"data-state":e(r)?"open":"closed","data-disabled":e(i)?"":void 0},{default:c(()=>[p(_.$slots,"default",{open:e(r)})]),_:3},8,["as","as-child","data-state","data-disabled"]))}}),U=Q,W=d({inheritAttrs:!1,__name:"CollapsibleContent",props:{forceMount:{type:Boolean,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:["contentFound"],setup(n,{emit:l}){const a=n,o=l,s=T();s.contentId||(s.contentId=S(void 0,"reka-collapsible-content"));const r=v(),{forwardRef:i,currentElement:f}=B(),_=v(0),C=v(0),O=w(()=>s.open.value),h=v(O.value),b=v();F(()=>{var t;return[O.value,(t=r.value)==null?void 0:t.present]},async()=>{await E();const t=f.value;if(!t)return;b.value=b.value||{transitionDuration:t.style.transitionDuration,animationName:t.style.animationName},t.style.transitionDuration="0s",t.style.animationName="none";const g=t.getBoundingClientRect();C.value=g.height,_.value=g.width,h.value||(t.style.transitionDuration=b.value.transitionDuration,t.style.animationName=b.value.animationName)},{immediate:!0});const A=w(()=>h.value&&s.open.value);return I(()=>{requestAnimationFrame(()=>{h.value=!1})}),K(f,"beforematch",t=>{requestAnimationFrame(()=>{s.onOpenToggle(),o("contentFound")})}),(t,g)=>(u(),m(e(L),{ref_key:"presentRef",ref:r,present:t.forceMount||e(s).open.value,"force-mount":!0},{default:c(({present:k})=>{var q;return[M(e($),y(t.$attrs,{id:e(s).contentId,ref:e(i),"as-child":a.asChild,as:t.as,hidden:k?void 0:e(s).unmountOnHide.value?"":"until-found","data-state":A.value?void 0:e(s).open.value?"open":"closed","data-disabled":(q=e(s).disabled)!=null&&q.value?"":void 0,style:{"--reka-collapsible-content-height":`${C.value}px`,"--reka-collapsible-content-width":`${_.value}px`}}),{default:c(()=>[!e(s).unmountOnHide.value||k?p(t.$slots,"default",{key:0}):D("v-if",!0)]),_:2},1040,["id","as-child","as","hidden","data-state","data-disabled","style"])]}),_:3},8,["present"]))}}),X=W,Y=d({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:"button"}},setup(n){const l=n;B();const a=T();return(o,s)=>{var r,i;return u(),m(e($),{type:o.as==="button"?"button":void 0,as:o.as,"as-child":l.asChild,"aria-controls":e(a).contentId,"aria-expanded":e(a).open.value,"data-state":e(a).open.value?"open":"closed","data-disabled":(r=e(a).disabled)!=null&&r.value?"":void 0,disabled:(i=e(a).disabled)==null?void 0:i.value,onClick:e(a).onOpenToggle},{default:c(()=>[p(o.$slots,"default")]),_:3},8,["type","as","as-child","aria-controls","aria-expanded","data-state","data-disabled","disabled","onClick"])}}}),Z=Y;const se=d({__name:"Card",props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){const l=n;return(a,o)=>(u(),R("div",{"data-slot":"card",class:x(e(P)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",l.class))},[p(a.$slots,"default")],2))}}),ne=d({__name:"CardContent",props:{class:{type:[Boolean,null,String,Object,Array]}},setup(n){const l=n;return(a,o)=>(u(),R("div",{"data-slot":"card-content",class:x(e(P)("px-6",l.class))},[p(a.$slots,"default")],2))}}),le=d({__name:"Collapsible",props:{defaultOpen:{type:Boolean},open:{type:Boolean},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},emits:["update:open"],setup(n,{emit:l}){const s=V(n,l);return(r,i)=>(u(),m(e(U),y({"data-slot":"collapsible"},e(s)),{default:c(f=>[p(r.$slots,"default",H(j(f)))]),_:3},16))}}),re=d({__name:"CollapsibleContent",props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{}},setup(n){const l=n;return(a,o)=>(u(),m(e(X),y({"data-slot":"collapsible-content"},l),{default:c(()=>[p(a.$slots,"default")]),_:3},16))}}),ie=d({__name:"CollapsibleTrigger",props:{asChild:{type:Boolean},as:{}},setup(n){const l=n;return(a,o)=>(u(),m(e(Z),y({"data-slot":"collapsible-trigger"},l),{default:c(()=>[p(a.$slots,"default")]),_:3},16))}});export{se as _,ne as a,ie as b,re as c,le as d};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as I,h as f,r as v,Z as w,a as d,k as S,_ as p,w as x,$,a0 as T}from"./index-
|
|
1
|
+
import{c as I,h as f,r as v,Z as w,a as d,k as S,_ as p,w as x,$,a0 as T}from"./index-RDdffBTh.js";import{S as h}from"./useWatch-B2FLRWr8.js";import{e as _}from"./Presence-BXKCIfUk.js";/**
|
|
2
2
|
* @license lucide-vue-next v0.474.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{c as o}from"./Presence-BXKCIfUk.js";const[e]=o("ConfigProvider");export{e as i};
|