UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

1 lines 34.4 kB
import{Bt as e,Et as t,Jt as n,L as r,Lt as i,M as a,O as o,Rn as s,Ut as c,V as l,_t as u,a as d,at as f,bt as p,cn as m,dn as h,fn as g,i as _,j as v,m as y,nt as b,o as x,on as S,p as C,pn as w,qt as T,r as E,t as D,u as O,un as ee,yn as te,yt as ne}from"./ErrorBlock-CuwX01Wv.js";import{A as k,D as A,F as j,H as M,M as N,S as P,U as re,V as ie,a as F,c as I,d as ae,h as oe,j as L,m as R,o as z,r as se,s as B,u as V,w as H,x as U,y as W}from"./web-BWdORzMO.js";import{n as G,p as ce,t as K}from"./userStore-BExk_Pfb.js";import{t as q}from"./permissions-kIH5Rv10.js";import{ht as le,un as ue,yt as de}from"./Form-Cbz3dIAq.js";var J=s(h(),1),fe=R(`<span class="flex items-center text-body hover:text-primaryDark text-sm">`),pe=R(`<nav><div class="block lg:hidden"></div><ul class="hidden lg:flex items-center">`),me=R(`<li class="flex items-center">`),he=e=>{let t=L(()=>(e.breadcrumbs??[]).filter(e=>e.include!==!1)),n=L(()=>{let e=t();return e.length?e[e.length-1]:void 0});return A(P,{get when(){return e.breadcrumbs},get children(){var t=pe(),i=t.firstChild,a=i.nextSibling;return B(i,A(P,{get when(){return n()},children:e=>A(P,{get when(){return e().link},get children(){return A(G,{get href(){return e().link||``},class:`flex items-center text-body hover:text-primaryDark text-sm`,get children(){return e().label}})}})}),null),B(i,A(P,{get when(){return I(()=>!!n())()&&!n()?.link},get children(){var e=fe();return B(e,()=>n()?.label),e}}),null),B(a,A(W,{get each(){return e.breadcrumbs},children:(t,n)=>A(P,{get when(){return t.include!==!1},get children(){var i=me();return B(i,A(P,{get when(){return t.link},get children(){return A(G,{get href(){return t.link||``},class:`flex items-center text-body hover:text-primaryDark text-sm`,get children(){return t.label}})}}),null),B(i,A(P,{get when(){return!t.link},get children(){var e=fe();return B(e,()=>t.label),e}}),null),B(i,A(P,{get when(){return I(()=>!!e.breadcrumbs)()&&n()<e.breadcrumbs.length-1},get children(){return A(r,{class:`mx-2 text-sm`})}}),null),i}})})),N(()=>F(t,(0,J.default)(`block`,{"border-b border-border":e.options?.noBorder!==!0,"px-4 md:px-6 py-4":e.options?.noPadding!==!0}))),t}})},ge=`/lucid/assets/no-permission-BA73AWmb.svg`,_e=R(`<div>`),ve=()=>(()=>{var e=_e();return B(e,A(_,{size:`md`})),N(()=>F(e,(0,J.default)(`flex items-center justify-center`))),e})(),ye=R(`<div><div class="text-center flex flex-col items-center"><h2 class=mb-2></h2><p class="max-w-96 text-sm">`),be=e=>(()=>{var t=ye(),n=t.firstChild,r=n.firstChild,i=r.nextSibling;return B(r,()=>e.copy?.title||g()(`empty.states.entries.title`)),B(i,()=>e.copy?.description||g()(`empty.states.entries.description`)),B(n,A(P,{get when(){return e.callbacks?.action!==void 0},get children(){return A(E,{theme:`primary`,size:`medium`,classes:`mt-6`,get onClick(){return e.callbacks?.action},get permission(){return e.permissions?.create},get children(){return e.copy?.button||g()(`actions.create.entry`)}})}}),null),N(()=>F(t,(0,J.default)(`flex items-center justify-center p-4 md:p-6`,e.class,{grow:e.options?.grow}))),t})(),Y=R(`<div class="flex-1 flex items-center justify-center">`),xe=R(`<div>`),Se=e=>[(()=>{var t=xe();return B(t,A(H,{get fallback(){return e.children},get children(){return[A(U,{get when(){return e.state?.isError},get children(){var t=Y();return B(t,A(D,{get content(){return{image:d,title:e.copy?.error?.title,description:e.copy?.error?.description}}})),t}}),A(U,{get when(){return I(()=>!!e.state?.isEmpty)()&&e.options?.hideNoEntries!==!0},get children(){var t=Y();return B(t,A(P,{get when(){return!e.state?.searchParams?.hasFiltersApplied()},get children(){return A(be,{get copy(){return{title:e.copy?.noEntries?.title,description:e.copy?.noEntries?.description,button:e.copy?.noEntries?.button}},get callbacks(){return{action:e.callback?.createEntry}},get permissions(){return{create:e.permissions?.create}}})}}),null),B(t,A(P,{get when(){return e.state?.searchParams?.hasFiltersApplied()},get children(){return A(D,{get content(){return{title:g()(`empty.states.results.title`),description:g()(`empty.states.results.description`)}},get children(){return A(E,{type:`submit`,theme:`primary`,size:`medium`,onClick:()=>{e.callback?.resetFilters?e.callback.resetFilters():e.state?.searchParams?.resetFilters()},get children(){return g()(`actions.reset.filters`)}})}})}}),null),t}}),A(U,{get when(){return e.state?.isLoading},get children(){var e=Y();return B(e,A(ve,{})),e}}),A(U,{get when(){return e.state?.hasPermission===!1},get children(){return A(D,{get content(){return{image:ge,title:g()(`permissions.denied.title`),description:g()(`permissions.denied.description`)}}})}}),A(U,{get when(){return e.state?.isSuccess},get children(){return e.children}})]}})),N(()=>F(t,(0,J.default)(`flex flex-col`,e.class,{"p-4 md:p-6":e.options?.padding===`24`,"p-4":e.options?.padding===`16`,"flex-1 h-full":e.options?.inline!==!0}))),t})(),I(()=>e.slot?.footer)],X=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%201708%20400'%3e%3ctitle%3eLucid%20CMS%3c/title%3e%3cpath%20fill='%23739847'%20d='M187.213%20149.404c28.049%200%2050.787%2022.738%2050.787%2050.787s-22.738%2050.788-50.787%2050.788h-3.074V149.404z'/%3e%3cpath%20fill='url(%23a)'%20d='M117.901%20199.909s-22.396-23.538-25.71-26.19-11.426-12.205-34.799-13.222-35.058%205.358-46.225%2017.024C0%20189.186%200%20199.909%200%20199.909z'/%3e%3cpath%20fill='url(%23b)'%20d='M117.901%20199.909s-22.396%2023.536-25.71%2026.189-11.426%2012.204-34.799%2013.221c-23.372%201.018-35.058-5.357-46.225-17.023C0%20210.631%200%20199.909%200%20199.909z'/%3e%3cpath%20fill='url(%23c)'%20d='M103.273%207.782c57.202%2021.384%2065.582%2094.596%2065.582%2094.596v89.888s-8.38-.822-14.938-3.258c-6.559-2.435-13.846-9.791-13.846-9.791L31.132%2071.569S19.838%2059.981%2018.38%2052.002c-1.457-7.979-3.279-14.87%201.093-26.102%204.373-11.23%2026.598-39.502%2083.8-18.118'/%3e%3cpath%20fill='url(%23d)'%20d='M103.273%20392.058c57.202-21.384%2065.582-94.596%2065.582-94.596v-89.888s-8.38.822-14.938%203.258c-6.559%202.435-13.845%209.791-13.845%209.791L31.132%20328.271s-11.294%2011.588-12.752%2019.567c-1.457%207.979-3.279%2014.87%201.093%2026.102%204.373%2011.231%2026.598%2039.502%2083.8%2018.118'/%3e%3cpath%20fill='%23fff'%20d='M1545.19%20363.372h-125.78V36.315h124.5q50.445%200%2087.15%2019.642c24.59%2012.989%2043.53%2031.726%2056.83%2056.213%2013.41%2024.38%2020.11%2053.605%2020.11%2087.673q0%2051.102-19.95%2087.833c-13.3%2024.38-32.14%2043.118-56.51%2056.213-24.36%2012.988-53.15%2019.483-86.35%2019.483m-37.03-75.377H1542q24.255%200%2041.34-7.825c11.49-5.217%2020.22-14.213%2026.18-26.989q9.09-19.163%209.09-53.338c0-22.783-3.08-40.563-9.25-53.338q-9.105-19.164-26.82-26.989c-11.7-5.217-26.07-7.825-43.09-7.825h-31.29zM1377.36%2036.315v327.057h-88.75V36.315zM1248.34%20158.958h-90.03c-.63-7.453-2.34-14.213-5.1-20.282-2.66-6.068-6.39-11.285-11.18-15.65-4.68-4.471-10.37-7.878-17.08-10.22-6.7-2.449-14.31-3.673-22.82-3.673q-22.35%200-37.83%2010.859c-10.21%207.239-17.98%2017.62-23.3%2031.141-5.22%2013.521-7.82%2029.756-7.82%2048.707q0%2030.022%207.98%2050.304%208.13%2020.122%2023.46%2030.342%2015.33%2010.06%2036.87%2010.061c8.19%200%2015.54-1.011%2022.03-3.034q9.735-3.194%2016.92-9.103c4.79-3.939%208.67-8.677%2011.65-14.213%203.09-5.642%205.16-11.977%206.22-19.004l90.03.639c-1.07%2013.841-4.95%2027.947-11.65%2042.32-6.71%2014.266-16.23%2027.467-28.58%2039.604-12.23%2012.031-27.4%2021.719-45.49%2029.065s-39.1%2011.019-63.04%2011.019c-30.01%200-56.93-6.441-80.77-19.323q-35.594-19.323-56.345-56.852-20.59-37.528-20.59-91.825%200-54.616%2021.069-91.985%2021.07-37.528%2056.826-56.692c23.83-12.882%2050.44-19.323%2079.81-19.323%2020.64%200%2039.63%202.821%2056.98%208.464%2017.34%205.642%2032.56%2013.893%2045.65%2024.753%2013.09%2010.752%2023.62%2024.007%2031.6%2039.764%207.98%2015.756%2012.83%2033.802%2014.53%2054.137M812.226%2036.304h88.746v209.521q0%2037.368-17.876%2064.676-17.718%2027.149-49.481%2042-31.764%2014.692-73.743%2014.692-42.298%200-74.062-14.692-31.764-14.851-49.481-42-17.558-27.308-17.558-64.676V36.304h88.747v201.855q0%2015.171%206.704%2027.149%206.704%2011.817%2018.515%2018.524%2011.971%206.707%2027.135%206.707%2015.322%200%2027.135-6.707%2011.811-6.707%2018.515-18.524%206.704-11.978%206.704-27.149zM362%20363.361V36.304h88.746v255.513h132.162v71.544z'/%3e%3cdefs%3e%3cradialGradient%20id='a'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='matrix(169.845%200%200%20302.973%2014.392%20199.599)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23c1fe77'/%3e%3cstop%20offset='1'%20stop-color='%23739847'/%3e%3c/radialGradient%3e%3cradialGradient%20id='b'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='matrix(169.845%200%200%20302.973%2014.392%20199.599)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23c1fe77'/%3e%3cstop%20offset='1'%20stop-color='%23739847'/%3e%3c/radialGradient%3e%3cradialGradient%20id='c'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='matrix(169.845%200%200%20302.973%2014.392%20199.599)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23c1fe77'/%3e%3cstop%20offset='1'%20stop-color='%23739847'/%3e%3c/radialGradient%3e%3cradialGradient%20id='d'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='matrix(169.845%200%200%20302.973%2014.392%20199.599)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23c1fe77'/%3e%3cstop%20offset='1'%20stop-color='%23739847'/%3e%3c/radialGradient%3e%3c/defs%3e%3c/svg%3e`,Ce=R(`<span class="block text-sm font-medium">`),we=R(`<button type=button tabindex=0><span class="block text-sm font-medium">`),Te=R(`<li class="mb-1 last:mb-0">`),Z=r=>{let s=(0,J.default)(`size-3.5 text-current`),l=()=>A(H,{get children(){return[A(U,{get when(){return r.icon===`dashboard`},get children(){return A(p,{class:s})}}),A(U,{get when(){return r.icon===`collection-multiple`},get children(){return A(a,{class:s})}}),A(U,{get when(){return r.icon===`collection-single`},get children(){return A(v,{class:s})}}),A(U,{get when(){return r.icon===`media`},get children(){return A(e,{class:s})}}),A(U,{get when(){return r.icon===`users`},get children(){return A(m,{class:s})}}),A(U,{get when(){return r.icon===`overview`},get children(){return A(i,{class:s})}}),A(U,{get when(){return r.icon===`roles`},get children(){return A(S,{class:s})}}),A(U,{get when(){return r.icon===`email`},get children(){return A(f,{class:s})}}),A(U,{get when(){return r.icon===`logout`},get children(){return A(c,{class:s})}}),A(U,{get when(){return r.icon===`queue`},get children(){return A(o,{class:s})}}),A(U,{get when(){return r.icon===`client-integrations`},get children(){return A(b,{class:s})}}),A(U,{get when(){return r.icon===`license`},get children(){return A(t,{class:s})}}),A(U,{get when(){return r.icon===`settings`},get children(){return A(u,{class:s})}}),A(U,{get when(){return r.icon===`release-requests`},get children(){return A(n,{class:s})}})]}});return A(P,{get when(){return r.permission!==!1},get children(){var e=Te();return B(e,A(H,{get children(){return[A(U,{get when(){return r.type===`link`},get children(){return A(G,{get title(){return r.title},get href(){return r.href||`/`},get class(){return(0,J.default)(`h-8 w-full text-title flex items-center gap-2 px-2 rounded-md bg-sidebar-base fill-title hover:bg-card-hover transition-colors duration-200 ease-in-out`,{"bg-secondary-base! text-secondary-contrast! fill-secondary-base-contrast!":r.active,"animate-pulse pointer-events-none":r.loading})},get activeClass(){return(0,J.default)(`bg-secondary-base! text-secondary-contrast! fill-secondary-base-contrast!`)},get end(){return r.href===`/lucid`},get children(){return[A(l,{}),(()=>{var e=Ce();return B(e,()=>r.title),e})()]}})}}),A(U,{get when(){return r.type===`button`},get children(){var e=we(),t=e.firstChild;return se(e,`click`,r.onClick,!0),B(e,A(l,{}),t),B(t,()=>r.title),N(t=>{var n=(0,J.default)(`h-8 w-full text-title flex items-center gap-2 px-2 rounded-md bg-sidebar-base fill-title hover:bg-card-hover transition-colors duration-200 ease-in-out`,{"bg-secondary-base text-secondary-contrast fill-secondary-base-contrast":r.active,"animate-pulse pointer-events-none":r.loading}),i=r.loading;return n!==t.e&&F(e,t.e=n),i!==t.t&&(e.disabled=t.t=i),t},{e:void 0,t:void 0}),e}})]}})),e}})};z([`click`]);var Q=(e,t)=>e===`create`?`/lucid/collections/${t.collectionKey}/latest/create`:t.version===`revision`?`/lucid/collections/${t.collectionKey}/revision/${t.documentId}/${t.versionId}`:t.version===`snapshot`?`/lucid/collections/${t.collectionKey}/snapshot/${t.documentId}/${t.versionId}`:`/lucid/collections/${t.collectionKey}/${t.version??`latest`}/${t.documentId}`,Ee=e=>{let t=L(()=>e.collection.mode===`multiple`?`/lucid/collections/${e.collection.key}`:e.collection.documentId?Q(`edit`,{collectionKey:e.collection.key,documentId:e.collection.documentId}):Q(`create`,{collectionKey:e.collection.key}));return A(Z,{type:`link`,get href(){return t()},get icon(){return e.collection.mode===`multiple`?`collection-multiple`:`collection-single`},get title(){return y.getLocaleValue({value:e.collection.details.name})}})},De={name:`@lucidcms/core`,version:`0.17.0-alpha.0`,description:`The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.`,type:`module`,types:`./dist/index.d.mts`,module:`dist/index.mjs`,exports:{".":{import:`./dist/index.mjs`,types:`./dist/index.d.mts`},"./cli":{types:`./dist/libs/cli/index.d.mts`,default:`./dist/libs/cli/index.mjs`},"./build":{types:`./dist/build.d.mts`,default:`./dist/build.mjs`},"./plugin":{types:`./dist/plugin.d.mts`,default:`./dist/plugin.mjs`},"./toolkit":{types:`./dist/toolkit.d.mts`,default:`./dist/toolkit.mjs`},"./runtime":{types:`./dist/runtime.d.mts`,default:`./dist/runtime.mjs`},"./types":{types:`./dist/types.d.mts`,default:`./dist/types.mjs`},"./queue":{types:`./dist/libs/queue/index.d.mts`,default:`./dist/libs/queue/index.mjs`},"./db":{types:`./dist/libs/db/index.d.mts`,default:`./dist/libs/db/index.mjs`},"./email":{types:`./dist/libs/email/index.d.mts`,default:`./dist/libs/email/index.mjs`},"./image-processor":{types:`./dist/libs/image-processor/index.d.mts`,default:`./dist/libs/image-processor/index.mjs`},"./kv":{types:`./dist/libs/kv/index.d.mts`,default:`./dist/libs/kv/index.mjs`},"./media":{types:`./dist/libs/media/index.d.mts`,default:`./dist/libs/media/index.mjs`},"./package.json":`./package.json`},scripts:{build:`NODE_OPTIONS=--max-old-space-size=4096 tsc && tsdown`,dev:`tsdown --watch --no-clean`,format:`biome format ./src`,"format:fix":`biome format --write ./src`,lint:`biome lint ./src`,"lint:fix":`biome lint --write ./src`,check:`biome check ./src`,"check:fix":`biome check --write ./src`},files:[`dist`,`templates`,`public`,`spa`],author:`Build Lucid Ltd`,repository:{type:`git`,url:`git+https://github.com/buildlucid/lucid-cms.git`,directory:`packages/core`},keywords:[`CMS`,`Headless`,`Node`,`Typescript`,`ESM`,`Hono`,`Kysely`,`Cloudflare`,`Lucid CMS`,`Lucid`],devDependencies:{"@biomejs/biome":`^2.5.1`,"@types/mime-types":`^3.0.1`,"@types/mustache":`^4.2.6`,"@types/node":`^24.13.2`,"@types/semver":`^7.7.1`,"@types/slug":`^5.0.9`,tsdown:`^0.22.3`},dependencies:{"@hono/standard-validator":`^0.2.2`,"@inquirer/prompts":`^8.5.2`,"@lucidcms/rich-text":`1.1.0`,"@lucidcms/types":`^0.4.0`,"@noble/hashes":`^2.2.0`,"@scalar/hono-api-reference":`^0.11.5`,boxen:`^8.0.1`,chokidar:`^5.0.0`,commander:`^15.0.0`,"date-fns":`^4.4.0`,"file-type":`^22.0.1`,hono:`^4.12.27`,"hono-openapi":`^1.3.0`,immer:`^11.1.8`,jiti:`^2.7.0`,kysely:`0.29.2`,"mime-types":`^3.0.2`,mustache:`^4.2.0`,"node-object-hash":`^3.1.1`,picocolors:`^1.1.1`,semver:`^7.8.5`,slug:`^11.0.1`,typescript:`^6.0.3`,zod:`^4.4.3`},volta:{node:`24.11.1`},engines:{node:`^24.0.0`},bin:{lucidcms:`dist/libs/cli/index.mjs`},sideEffects:!1,license:`BUSL-1.1`,publishConfig:{access:`public`}},$=R(`<div class="w-full mt-4 mb-2"><span class=text-xs>`),Oe=R(`<span class="skeleton block h-8 w-full mb-1">`),ke=R(`<div class="bg-background-base rounded-md p-2"><p class="text-xs text-center">`),Ae=R(`<li>`),je=R(`<ul class="flex flex-col border-t border-border pt-6">`),Me=R(`<span class="flex size-5 shrink-0 items-center justify-center rounded-md text-icon-base">`),Ne=R(`<span class="flex min-w-0 flex-col"><span class="text-xs font-medium leading-4 text-title"></span><span class="text-[11px] leading-4 text-body">`),Pe=R(`<div><div class="pt-4 lg:pt-6 px-4"><ul class=pb-6></ul></div><div class="pb-6 px-4"><div><small class="text-xs leading-none bg-background-base rounded-md px-2 py-2 block text-center">v`),Fe=R(`<div class="w-full mt-4 mb-2"><span>`),Ie=R(`<div class="flex w-full min-w-0 items-start gap-1 rounded-md border border-warning-base/20 bg-warning-base/10 px-2 py-1.5"><span class="flex size-5 shrink-0 items-center justify-center rounded-md text-icon-base"></span><span class="flex min-w-0 flex-col"><span class="text-xs font-medium leading-4 text-title"></span><span class="text-[11px] leading-4 text-body">`),Le=e=>{let n=()=>{e.onNavigate?.()},r=L(()=>e.canReadSystemOverview||e.canReadClientIntegrations||e.canManageLicense||e.canReadJobs||e.canReadAiUsage),i=L(()=>[...e.multiCollections,...e.singleCollections]),a=L(()=>i().filter(e=>!e.group)),o=L(()=>e.collectionsIsLoading||e.collectionsIsError||a().length>0),s=L(()=>{let e=[],t=new Map;for(let n of i()){let r=n.group;if(!r)continue;let i=t.get(r.key);if(i){!i.name&&r.name&&(i.name=r.name),i.order===null&&r.order!==null&&(i.order=r.order),i.collections.push(n);continue}let a={key:r.key,name:r.name,order:r.order,collections:[n]};e.push(a),t.set(r.key,a)}return[...e].sort((e,t)=>e.order===null&&t.order===null?0:e.order===null?1:t.order===null?-1:e.order-t.order)}),c=e=>e.name?y.getLocaleValue({value:e.name}):``,l=e=>c(e)||e.key,u=e=>c(e).length===0;return(()=>{var i=Pe(),c=i.firstChild,d=c.firstChild,f=c.nextSibling,p=f.firstChild,m=p.firstChild;return m.firstChild,B(d,A(Z,{type:`link`,href:`/lucid`,icon:`dashboard`,get title(){return g()(`common.dashboard`)}}),null),B(d,A(Z,{type:`link`,href:`/lucid/media`,icon:`media`,get title(){return g()(`media.library.title`)},get permission(){return e.canReadMedia}}),null),B(d,A(Z,{type:`link`,href:`/lucid/emails`,icon:`email`,get title(){return g()(`email.activity`)},get permission(){return e.canReadEmails}}),null),B(d,A(Z,{type:`link`,href:`/lucid/release-requests`,icon:`release-requests`,get title(){return g()(`publish.requests.list.title`)},get permission(){return e.canReadPublishRequests}}),null),B(d,A(P,{get when(){return e.canReadDocuments},get children(){return[A(P,{get when(){return I(()=>!e.collectionsIsLoading)()&&!e.collectionsIsError},get children(){return A(W,{get each(){return s()},children:e=>[(()=>{var t=Fe(),n=t.firstChild;return B(n,()=>l(e)),N(()=>F(n,(0,J.default)(`text-xs`,{capitalize:u(e)}))),t})(),A(W,{get each(){return e.collections},children:e=>A(Ee,{collection:e})})]})}}),A(P,{get when(){return o()},get children(){return[(()=>{var e=$(),t=e.firstChild;return B(t,()=>g()(`common.collections`)),e})(),A(H,{get children(){return[A(U,{get when(){return e.collectionsIsLoading},get children(){return[Oe(),Oe(),Oe()]}}),A(U,{get when(){return e.collectionsIsError},get children(){var e=ke(),t=e.firstChild;return B(t,()=>g()(`errors.collections.load.failed`)),e}}),A(U,{when:!0,get children(){return A(W,{get each(){return a()},children:e=>A(Ee,{collection:e})})}})]}})]}})]}}),null),B(d,A(P,{get when(){return e.showAccessAndPermissions},get children(){var e=$(),t=e.firstChild;return B(t,()=>g()(`permissions.groups.access.and`)),e}}),null),B(d,A(Z,{type:`link`,href:`/lucid/users`,icon:`users`,get title(){return g()(`users.accounts`)},get permission(){return e.canReadUsers}}),null),B(d,A(Z,{type:`link`,href:`/lucid/roles`,icon:`roles`,get title(){return g()(`roles.management`)},get permission(){return e.canReadRoles}}),null),B(d,A(P,{get when(){return r()},get children(){var e=$(),t=e.firstChild;return B(t,()=>g()(`common.system`)),e}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/overview`,icon:`overview`,get title(){return g()(`common.overview`)},get permission(){return e.canReadSystemOverview}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/operations`,icon:`settings`,get title(){return g()(`common.operations`)},get permission(){return e.canReadSystemOverview}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/integrations`,icon:`client-integrations`,get title(){return g()(`routes.system.client.integrations.title`)},get permission(){return e.canReadClientIntegrations}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/ai-usage`,icon:`overview`,get title(){return g()(`common.ai.usage`)},get permission(){return e.canReadAiUsage}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/license`,icon:`license`,get title(){return g()(`common.license`)},get permission(){return e.canManageLicense}}),null),B(d,A(Z,{type:`link`,href:`/lucid/system/queue-observability`,icon:`queue`,get title(){return g()(`queue.observability`)},get permission(){return e.canReadJobs}}),null),B(f,A(P,{get when(){return e.showFooterActions!==!1},get children(){var t=je();return B(t,A(Z,{type:`button`,icon:`logout`,get loading(){return e.logoutPending},get onClick(){return e.onLogout},get title(){return g()(`common.logout`)}}),null),B(t,A(P,{get when(){return e.user?.username},get children(){var t=Ae();return B(t,A(G,{href:`/lucid/account`,class:`flex items-center justify-center mt-6`,onClick:n,get children(){return A(ue,{get user(){return{username:e.user?.username||``,firstName:e.user?.firstName,lastName:e.user?.lastName,profilePicture:e.user?.profilePicture}},mode:`long`})}})),t}}),null),t}}),p),B(p,A(P,{get when(){return e.showLicenseAlert},get children(){return A(P,{get when(){return e.canManageLicense},get fallback(){return(()=>{var e=Ie(),n=e.firstChild,r=n.nextSibling.firstChild,i=r.nextSibling;return B(n,A(t,{class:`size-3`})),B(r,()=>g()(`license.banner.nav.title`)),B(i,()=>g()(`license.banner.nav.status`)),e})()},get children(){return A(G,{href:`/lucid/system/license`,class:`flex w-full min-w-0 items-start gap-1 rounded-md border border-warning-base/20 bg-warning-base/10 px-2 py-1.5 text-left transition-colors hover:bg-warning-base/10 focus:outline-none focus-visible:ring-1 ring-primary-base`,onClick:n,get children(){return[(()=>{var e=Me();return B(e,A(t,{class:`size-3`})),e})(),(()=>{var e=Ne(),t=e.firstChild,n=t.nextSibling;return B(t,()=>g()(`license.banner.nav.title`)),B(n,()=>g()(`license.banner.nav.status`)),e})()]}})}})}}),m),B(m,()=>De.version,null),N(t=>{var n=(0,J.default)(`h-full flex justify-between flex-col`,e.class),r=(0,J.default)(`mt-4 flex flex-col gap-2`,{"border-t border-border pt-4":e.showFooterActions===!1});return n!==t.e&&F(i,t.e=n),r!==t.t&&F(p,t.t=r),t},{e:void 0,t:void 0}),i})()},Re=R(`<span class="flex min-w-0 flex-col"><span class="text-[11px] leading-none text-body"></span><span class="mt-1 truncate text-sm font-medium leading-tight text-title">`),ze=R(`<ul class="flex flex-col gap-0.5">`),Be=R(`<div>`),Ve=R(`<li><button type=button><span class=truncate>`),He=e=>{let[t,n]=j(!1),r=L(()=>C.get.tenants),i=L(()=>r().length>1),a=L(()=>r().find(e=>e.key===C.get.tenant)),o=L(()=>{let e=a();return e?te(e.name):``});return A(P,{get when(){return i()},get children(){var i=Be();return B(i,A(de.Root,{sameWidth:!0,get open(){return t()},onOpenChange:n,flip:!0,gutter:6,get children(){return[A(de.Trigger,{get"aria-label"(){return g()(`common.switch.tenant`)},class:`group border border-border w-full flex items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left transition-colors duration-200 hover:bg-white/5 focus:outline-hidden focus-visible:ring-1 focus-visible:ring-primary-base`,get children(){return[(()=>{var e=Re(),t=e.firstChild,n=t.nextSibling;return B(t,()=>g()(`common.workspace`)),B(n,o),e})(),A(T,{size:13,class:`shrink-0 text-body transition-colors group-hover:text-subtitle`})]}}),A(le,{options:{anchorWidth:!0,rounded:!0,class:`z-70 p-1.5!`,maxHeight:`md`,noMargin:!0},get children(){var e=ze();return B(e,A(W,{get each(){return r()},children:e=>{let t=L(()=>te(e.name)),r=L(()=>e.key===C.get.tenant);return(()=>{var i=Ve(),a=i.firstChild,o=a.firstChild;return a.$$click=()=>{C.get.setTenant(e.key),n(!1)},B(o,t),B(a,A(P,{get when(){return r()},get children(){return A(l,{size:13,class:`shrink-0 text-primary-base`})}}),null),N(()=>F(a,(0,J.default)(`w-full flex items-center justify-between gap-2 rounded-md px-2 py-1.5 text-left text-sm font-medium transition-colors hover:bg-card-hover hover:text-title focus:outline-hidden focus-visible:bg-card-hover`,{"text-title":r(),"text-subtitle":!r()}))),i})()}})),e}})]}})),N(()=>F(i,e.class)),i}})};z([`click`]);var Ue=()=>{let e=L(()=>w());return{direction:e,isLTR:L(()=>e()===`ltr`),isRTL:L(()=>e()===`rtl`)}},We=R(`<img alt="Lucid CMS Logo"class=h-5>`),Ge=R(`<span class="h-4 flex items-center justify-center">`),Ke=R(`<header class="md:hidden z-32 px-4"><div class="px-2 py-4 bg-sidebar-base flex items-center justify-between gap-2"><div class="flex items-center gap-4"><button type=button class="h-9 rounded-lg text-icon-base hover:text-icon-hover flex items-center justify-center transition-colors"><span class="h-4 flex items-center justify-center"></span></button><button type=button class="h-9 rounded-lg text-icon-base hover:text-icon-hover flex items-center justify-center transition-colors">`),qe=R(`<div class="hidden md:flex bg-sidebar-base max-h-screen sticky top-0 z-10"><div class="w-55 h-full flex flex-col overflow-y-auto scrollbar"><div class="pt-6 px-4"><div class="flex items-center pl-2"><img alt="Lucid CMS Logo"class=h-5>`),Je=R(`<div><div class="relative h-full w-full"><button type=button></button><div><div class="h-full flex flex-col overflow-y-auto scrollbar"><div class="px-6 pt-4"><div class="flex items-center justify-between"><div class="flex items-center gap-2"><img alt="Lucid CMS Logo"class=h-5 loading=lazy></div><button type=button class="h-9 w-9 rounded-lg text-title/80 hover:text-title flex items-center justify-center transition-colors">`,!0,!1,!1),Ye=()=>{let e=ce(),t=Ue(),n=x.auth.useLogout(),r=L(()=>K.get.user),[i,a]=j(!1),o=L(()=>K.get.hasPermission([q.MediaRead]).all),s=L(()=>K.get.hasPermission([q.EmailRead]).all),l=L(()=>K.get.hasPermission([q.UsersRead]).all),u=L(()=>K.get.hasPermission([q.RolesRead]).all),d=L(()=>K.get.hasPermission([q.JobsRead]).all),f=L(()=>K.get.hasPermission([q.PublishOperationsRead]).all),p=L(()=>K.get.hasPermission([q.LicenseUpdate]).all),m=L(()=>K.get.hasPermission([q.IntegrationsRead]).all),h=L(()=>K.get.hasPermission([q.SettingsRead]).all),_=L(()=>h()&&O.get.hasAnyAiFeatureEnabled()),v=L(()=>l()||u()),y=x.collections.useGetAll({queryParams:{}}),b=L(()=>O.get.license?.valid===!1),S=L(()=>y.isLoading),C=L(()=>y.isError),w=L(()=>y.data?.data.filter(e=>e.mode===`multiple`)||[]),T=L(()=>y.data?.data.filter(e=>e.mode===`single`&&K.get.hasPermission([e.permissions.read,e.documentId?e.permissions.update:e.permissions.create]).all)||[]),E=L(()=>S()||C()||w().length>0||T().length>0),D=L(()=>f()&&(y.data?.data??[]).some(e=>(e.review?.requiredFor?.length??0)>0&&K.get.hasPermission([e.permissions.review]).all));return k(()=>{e.pathname,a(!1)}),k(()=>{if(typeof document>`u`||!i())return;let e=document.body.style.overflow;document.body.style.overflow=`hidden`,M(()=>{document.body.style.overflow=e})}),k(()=>{if(typeof window>`u`)return;let e=e=>{e.key===`Escape`&&a(!1)};window.addEventListener(`keydown`,e),M(()=>window.removeEventListener(`keydown`,e))}),[(()=>{var e=Ke(),t=e.firstChild,o=t.firstChild,s=o.firstChild,l=s.firstChild,u=s.nextSibling;return B(t,A(G,{href:`/lucid`,class:`flex items-center min-w-0`,get children(){var e=We();return V(e,`src`,X),e}}),o),B(o,A(P,{get when(){return r()},children:e=>A(G,{href:`/lucid/account`,class:`h-8 px-0.5 rounded-lg flex items-center text-title/80 hover:text-title transition-colors`,"aria-label":`Account`,get children(){return A(ue,{get user(){return{username:e().username||``,firstName:e().firstName,lastName:e().lastName,profilePicture:e().profilePicture}},mode:`icon`,size:`small`})}})}),s),s.$$click=()=>n.action.mutate({}),B(l,A(c,{class:`size-3`})),u.$$click=()=>a(e=>!e),B(u,A(P,{get when(){return i()},get fallback(){return(()=>{var e=Ge();return B(e,A(ne,{class:`size-4`})),e})()},get children(){var e=Ge();return B(e,A(ee,{class:`size-4`})),e}})),N(e=>{var t=n.action.isPending,r=g()(`common.logout`),a=g()(`common.logout`),o=i()?g()(`common.close`):`Open menu`,c=i()?g()(`common.close`):`Open menu`;return t!==e.e&&(s.disabled=e.e=t),r!==e.t&&V(s,`aria-label`,e.t=r),a!==e.a&&V(s,`title`,e.a=a),o!==e.o&&V(u,`aria-label`,e.o=o),c!==e.i&&V(u,`title`,e.i=c),e},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0}),e})(),(()=>{var e=qe(),t=e.firstChild,i=t.firstChild,a=i.firstChild.firstChild;return V(a,`src`,X),B(i,A(He,{class:`mt-5`}),null),B(t,A(Le,{class:`w-55 flex-1`,get showLicenseAlert(){return b()},get logoutPending(){return n.action.isPending},onLogout:()=>n.action.mutate({}),get user(){return r()||void 0},get canReadDocuments(){return E()},get canReadPublishRequests(){return D()},get canReadMedia(){return o()},get canReadEmails(){return s()},get canReadUsers(){return l()},get canReadRoles(){return u()},get canReadJobs(){return d()},get canReadAiUsage(){return _()},get canManageLicense(){return p()},get canReadClientIntegrations(){return m()},get canReadSystemOverview(){return h()},get showAccessAndPermissions(){return v()},get collectionsIsLoading(){return S()},get collectionsIsError(){return C()},get multiCollections(){return w()},get singleCollections(){return T()}}),null),e})(),(()=>{var e=Je(),n=e.firstChild.firstChild,r=n.nextSibling,c=r.firstChild,f=c.firstChild,y=f.firstChild.firstChild,x=y.firstChild,O=y.nextSibling;return n.$$click=()=>a(!1),V(x,`src`,X),O.$$click=()=>a(!1),B(O,A(ee,{class:`size-3.5`})),B(f,A(He,{class:`mt-4`}),null),B(c,A(Le,{class:`flex-1`,showFooterActions:!1,onNavigate:()=>a(!1),get showLicenseAlert(){return b()},get canReadDocuments(){return E()},get canReadPublishRequests(){return D()},get canReadMedia(){return o()},get canReadEmails(){return s()},get canReadUsers(){return l()},get canReadRoles(){return u()},get canReadJobs(){return d()},get canReadAiUsage(){return _()},get canManageLicense(){return p()},get canReadClientIntegrations(){return m()},get canReadSystemOverview(){return h()},get showAccessAndPermissions(){return v()},get collectionsIsLoading(){return S()},get collectionsIsError(){return C()},get multiCollections(){return w()},get singleCollections(){return T()}}),null),N(a=>{var o=(0,J.default)(`md:hidden fixed inset-0 z-50 transition-[visibility] duration-200`,{visible:i(),"invisible pointer-events-none":!i()}),s=!i(),c=(0,J.default)(`absolute inset-0 bg-black/55 backdrop-blur-[2px] transition-opacity duration-200`,{"opacity-100":i(),"opacity-0":!i()}),l=g()(`common.close`),u=(0,J.default)(`relative h-full w-full max-w-[320px] border-border bg-sidebar-base shadow-[0_20px_70px_rgba(0,0,0,0.45)] transition-transform duration-300 ease-out`,{"translate-x-0":i(),"border-r -translate-x-full":t.isLTR()&&!i(),"border-r":t.isLTR()&&i(),"border-l translate-x-full":t.isRTL()&&!i(),"border-l":t.isRTL()&&i(),"ml-auto":t.isRTL()}),d=g()(`common.close`);return o!==a.e&&F(e,a.e=o),s!==a.t&&V(e,`aria-hidden`,a.t=s),c!==a.a&&F(n,a.a=c),l!==a.o&&V(n,`aria-label`,a.o=l),u!==a.i&&F(r,a.i=u),d!==a.n&&V(O,`aria-label`,a.n=d),a},{e:void 0,t:void 0,a:void 0,o:void 0,i:void 0,n:void 0}),e})()]};z([`click`]);var Xe=R(`<nav class="hidden px-4 pb-4 md:px-6 lg:block"><div class="relative flex max-w-max flex-row items-center rounded-md border border-border bg-card-base p-1"role=tablist><span aria-hidden=true></span><ul class="relative z-10 flex flex-row flex-wrap items-center">`),Ze=R(`<li>`),Qe=e=>{let t=ce(),[n,r]=j({left:0,width:0}),[i,a]=j(!1),[o,s]=j(null),[c,l]=j(!1),u,d=[],f,p=[],m,h=L(()=>e.tabs.filter(e=>e.permission!==!1&&e.show!==!1)),g=e=>e.replace(/^\/lucid(?=\/|$)/,``),_=L(()=>{let e=g(t.pathname),n=h().findIndex(t=>t.href&&g(t.href)===e);return n>=0?n:0}),v=()=>c()&&o()!==null?o():_(),y=()=>{f!==void 0&&(cancelAnimationFrame(f),f=void 0);for(let e of p)clearTimeout(e);p=[]},b=e=>{let t=d[e];if(!t||!u)return!1;let n=u.getBoundingClientRect(),i=t.getBoundingClientRect();return n.width===0||i.width===0?!1:(r({left:i.left-n.left,width:i.width}),!0)},x=(e=v())=>{f&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{f=void 0,b(e)})},S=()=>{y(),x();for(let e of[50,150,300])p.push(setTimeout(()=>{x()},e))},C=e=>{l(!0),s(e),x(e)},w=()=>{l(!1),s(null),x(_())};return re(()=>{S(),typeof ResizeObserver<`u`&&(m=new ResizeObserver(()=>{x()}),m.observe(u)),requestAnimationFrame(()=>{requestAnimationFrame(()=>a(!0))})}),M(()=>{y(),m?.disconnect()}),k(ie(()=>[_(),h().length],()=>{S()},{defer:!0})),(()=>{var e=Xe(),t=e.firstChild,r=t.firstChild,a=r.nextSibling;t.addEventListener(`mouseleave`,w);var s=u;return typeof s==`function`?oe(s,t):u=t,B(a,A(W,{get each(){return h()},children:(e,t)=>(()=>{var n=Ze();return B(n,A(G,{ref:e=>{d[t()]=e},get class(){return(0,J.default)(`exclude-default flex h-8 items-center rounded px-3 text-sm font-medium whitespace-nowrap transition-colors duration-200 focus:outline-hidden focus-visible:ring-1 focus-visible:ring-primary-base`,{"text-secondary-contrast":(c()?o():_())===t(),"text-body hover:text-title":(c()?o():_())!==t()})},get href(){return e.href||`#`},get onClick(){return e.onClick},onMouseEnter:()=>C(t()),onFocus:()=>C(t()),onBlur:w,end:!0,role:`tab`,get"aria-selected"(){return _()===t()},get children(){return e.label}})),n})()})),N(e=>{var t=(0,J.default)(`absolute top-1 bottom-1 rounded`,{"transition-none":!i(),"transition-all duration-200 ease-out":i(),"bg-secondary-base":!c(),"bg-secondary-hover":c()}),a=`${n().left}px`,o=`${n().width}px`;return t!==e.e&&F(r,e.e=t),a!==e.t&&ae(r,`left`,e.t=a),o!==e.a&&ae(r,`width`,e.a=o),e},{e:void 0,t:void 0,a:void 0}),e})()},$e=R(`<div class="flex flex-col min-h-[calc(100vh-15px)] border-t border-x border-border rounded-t-xl overflow-x-hidden"><div>`),et=e=>(()=>{var t=$e(),n=t.firstChild;return B(t,()=>e.slots?.topBar,n),B(t,()=>e.slots?.header,n),B(n,()=>e.children),B(t,()=>e.slots?.footer,null),N(()=>F(n,(0,J.default)(`flex grow flex-col justify-between bg-background-base`,e.class))),t})();export{Q as a,he as c,Ue as i,Qe as n,Se as o,Ye as r,be as s,et as t};